emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] nick.lloyd-bytecode-jit 3dcb25d 1/3: Merge branch 'master'


From: Nickolas Lloyd
Subject: [Emacs-diffs] nick.lloyd-bytecode-jit 3dcb25d 1/3: Merge branch 'master' into nick.lloyd-bytecode-jit
Date: Thu, 2 Feb 2017 03:32:52 +0000 (UTC)

branch: nick.lloyd-bytecode-jit
commit 3dcb25deaefb52c9d314c4eddb93a3a815a58ec0
Merge: 3ccffad f3c77d1
Author: Nickolas Lloyd <address@hidden>
Commit: Nickolas Lloyd <address@hidden>

    Merge branch 'master' into nick.lloyd-bytecode-jit
---
 .gitattributes                                     |    2 +-
 .gitignore                                         |    3 +-
 ChangeLog.1                                        |    2 +-
 ChangeLog.2                                        |  309 +-
 ChangeLog.3                                        |    2 +-
 GNUmakefile                                        |    2 +-
 INSTALL                                            |    2 +-
 INSTALL.REPO                                       |    2 +-
 Makefile.in                                        |   10 +-
 README                                             |    2 +-
 admin/ChangeLog.1                                  |    2 +-
 admin/README                                       |    2 +-
 admin/admin.el                                     |    2 +-
 admin/alloc-colors.c                               |    2 +-
 admin/authors.el                                   |    2 +-
 admin/build-configs                                |    2 +-
 admin/bzrmerge.el                                  |    2 +-
 admin/charsets/Makefile.in                         |    2 +-
 admin/charsets/mapconv                             |    2 +-
 admin/charsets/mapfiles/README                     |    2 +-
 admin/cus-test.el                                  |    2 +-
 admin/diff-tar-files                               |    2 +-
 admin/find-gc.el                                   |    2 +-
 admin/gitmerge.el                                  |    2 +-
 admin/grammars/Makefile.in                         |    2 +-
 admin/grammars/c.by                                |    2 +-
 admin/grammars/grammar.wy                          |    2 +-
 admin/grammars/java-tags.wy                        |    2 +-
 admin/grammars/js.wy                               |    2 +-
 admin/grammars/make.by                             |    2 +-
 admin/grammars/python.wy                           |    2 +-
 admin/grammars/scheme.by                           |    2 +-
 admin/grammars/srecode-template.wy                 |    2 +-
 admin/last-chance.el                               |  123 +
 admin/ldefs-clean.el                               |   10 +-
 admin/make-emacs                                   |    2 +-
 admin/merge-gnulib                                 |    4 +-
 admin/merge-pkg-config                             |    2 +-
 admin/notes/copyright                              |    2 +-
 admin/notes/font-backend                           |    2 +-
 admin/notes/hydra                                  |    2 +-
 admin/notes/multi-tty                              |    2 +-
 admin/notes/unicode                                |    2 +-
 admin/notes/www                                    |    2 +-
 admin/nt/README-UNDUMP.W32                         |    2 +-
 admin/nt/README-ftp-server                         |    2 +-
 admin/quick-install-emacs                          |    2 +-
 admin/unidata/Makefile.in                          |    2 +-
 admin/unidata/blocks.awk                           |    2 +-
 admin/unidata/unidata-gen.el                       |    2 +-
 admin/unidata/uvs.el                               |    2 +-
 admin/update-copyright                             |    2 +-
 admin/update_autogen                               |    2 +-
 autogen.sh                                         |  104 +-
 build-aux/git-hooks/commit-msg                     |    2 +-
 build-aux/git-hooks/pre-commit                     |    2 +-
 build-aux/gitlog-to-changelog                      |    2 +-
 build-aux/gitlog-to-emacslog                       |    2 +-
 build-aux/make-info-dir                            |    2 +-
 build-aux/move-if-change                           |    2 +-
 build-aux/msys-to-w32                              |    2 +-
 build-aux/snippet/arg-nonnull.h                    |    2 +-
 build-aux/snippet/c++defs.h                        |    2 +-
 build-aux/snippet/warn-on-use.h                    |    2 +-
 build-aux/update-copyright                         |    2 +-
 build-aux/update-subdirs                           |    2 +-
 config.bat                                         |    2 +-
 configure.ac                                       |   28 +-
 doc/emacs/ChangeLog.1                              |    2 +-
 doc/emacs/Makefile.in                              |    2 +-
 doc/emacs/abbrevs.texi                             |    2 +-
 doc/emacs/ack.texi                                 |    2 +-
 doc/emacs/anti.texi                                |    2 +-
 doc/emacs/arevert-xtra.texi                        |    2 +-
 doc/emacs/basic.texi                               |    2 +-
 doc/emacs/buffers.texi                             |    2 +-
 doc/emacs/building.texi                            |    2 +-
 doc/emacs/cal-xtra.texi                            |    2 +-
 doc/emacs/calendar.texi                            |    2 +-
 doc/emacs/cmdargs.texi                             |    2 +-
 doc/emacs/commands.texi                            |    2 +-
 doc/emacs/custom.texi                              |    2 +-
 doc/emacs/dired-xtra.texi                          |    2 +-
 doc/emacs/dired.texi                               |    2 +-
 doc/emacs/display.texi                             |    2 +-
 doc/emacs/emacs-xtra.texi                          |    2 +-
 doc/emacs/emacs.texi                               |    2 +-
 doc/emacs/emerge-xtra.texi                         |    2 +-
 doc/emacs/entering.texi                            |    2 +-
 doc/emacs/files.texi                               |   10 +-
 doc/emacs/fixit.texi                               |    2 +-
 doc/emacs/fortran-xtra.texi                        |    2 +-
 doc/emacs/frames.texi                              |    2 +-
 doc/emacs/glossary.texi                            |    2 +-
 doc/emacs/gnu.texi                                 |    2 +-
 doc/emacs/help.texi                                |    2 +-
 doc/emacs/indent.texi                              |    2 +-
 doc/emacs/killing.texi                             |    2 +-
 doc/emacs/kmacro.texi                              |    2 +-
 doc/emacs/m-x.texi                                 |    2 +-
 doc/emacs/macos.texi                               |    2 +-
 doc/emacs/maintaining.texi                         |    2 +-
 doc/emacs/mark.texi                                |    2 +-
 doc/emacs/mini.texi                                |    2 +-
 doc/emacs/misc.texi                                |    2 +-
 doc/emacs/modes.texi                               |    2 +-
 doc/emacs/msdos-xtra.texi                          |    2 +-
 doc/emacs/msdos.texi                               |    8 +-
 doc/emacs/mule.texi                                |    9 +-
 doc/emacs/package.texi                             |    2 +-
 doc/emacs/picture-xtra.texi                        |    2 +-
 doc/emacs/programs.texi                            |    2 +-
 doc/emacs/regs.texi                                |    2 +-
 doc/emacs/rmail.texi                               |    2 +-
 doc/emacs/screen.texi                              |    2 +-
 doc/emacs/search.texi                              |    2 +-
 doc/emacs/sending.texi                             |    2 +-
 doc/emacs/text.texi                                |    2 +-
 doc/emacs/trouble.texi                             |    2 +-
 doc/emacs/vc-xtra.texi                             |    2 +-
 doc/emacs/vc1-xtra.texi                            |    2 +-
 doc/emacs/windows.texi                             |    2 +-
 doc/emacs/xresources.texi                          |    2 +-
 doc/lispintro/ChangeLog.1                          |    2 +-
 doc/lispintro/Makefile.in                          |    2 +-
 doc/lispintro/README                               |    2 +-
 doc/lispintro/cons-1.eps                           |    2 +-
 doc/lispintro/cons-2.eps                           |    2 +-
 doc/lispintro/cons-2a.eps                          |    2 +-
 doc/lispintro/cons-3.eps                           |    2 +-
 doc/lispintro/cons-4.eps                           |    2 +-
 doc/lispintro/cons-5.eps                           |    2 +-
 doc/lispintro/drawers.eps                          |    2 +-
 doc/lispintro/emacs-lisp-intro.texi                |    2 +-
 doc/lispintro/lambda-1.eps                         |    2 +-
 doc/lispintro/lambda-2.eps                         |    2 +-
 doc/lispintro/lambda-3.eps                         |    2 +-
 doc/lispref/ChangeLog.1                            |    2 +-
 doc/lispref/Makefile.in                            |    2 +-
 doc/lispref/README                                 |    2 +-
 doc/lispref/abbrevs.texi                           |    2 +-
 doc/lispref/anti.texi                              |    2 +-
 doc/lispref/back.texi                              |    2 +-
 doc/lispref/backups.texi                           |    2 +-
 doc/lispref/buffers.texi                           |    2 +-
 doc/lispref/commands.texi                          |    2 +-
 doc/lispref/compile.texi                           |    2 +-
 doc/lispref/control.texi                           |    2 +-
 doc/lispref/customize.texi                         |    2 +-
 doc/lispref/debugging.texi                         |    2 +-
 doc/lispref/display.texi                           |    2 +-
 doc/lispref/edebug.texi                            |    2 +-
 doc/lispref/elisp.texi                             |    2 +-
 doc/lispref/errors.texi                            |    2 +-
 doc/lispref/eval.texi                              |    2 +-
 doc/lispref/files.texi                             |    2 +-
 doc/lispref/frames.texi                            |    2 +-
 doc/lispref/functions.texi                         |    2 +-
 doc/lispref/hash.texi                              |    2 +-
 doc/lispref/help.texi                              |    2 +-
 doc/lispref/hooks.texi                             |    2 +-
 doc/lispref/internals.texi                         |    8 +-
 doc/lispref/intro.texi                             |    2 +-
 doc/lispref/keymaps.texi                           |    2 +-
 doc/lispref/lay-flat.texi                          |    2 +-
 doc/lispref/lists.texi                             |   35 +-
 doc/lispref/loading.texi                           |    2 +-
 doc/lispref/macros.texi                            |    2 +-
 doc/lispref/maps.texi                              |    2 +-
 doc/lispref/markers.texi                           |    2 +-
 doc/lispref/minibuf.texi                           |    2 +-
 doc/lispref/modes.texi                             |    2 +-
 doc/lispref/nonascii.texi                          |    2 +-
 doc/lispref/numbers.texi                           |    2 +-
 doc/lispref/objects.texi                           |    2 +-
 doc/lispref/os.texi                                |    2 +-
 doc/lispref/package.texi                           |    2 +-
 doc/lispref/positions.texi                         |    2 +-
 doc/lispref/processes.texi                         |   10 +-
 doc/lispref/searching.texi                         |    8 +-
 doc/lispref/sequences.texi                         |    2 +-
 doc/lispref/streams.texi                           |    4 +-
 doc/lispref/strings.texi                           |    2 +-
 doc/lispref/symbols.texi                           |    2 +-
 doc/lispref/syntax.texi                            |    2 +-
 doc/lispref/text.texi                              |    2 +-
 doc/lispref/threads.texi                           |   13 +-
 doc/lispref/tips.texi                              |    4 +-
 doc/lispref/two-volume-cross-refs.txt              |    2 +-
 doc/lispref/two-volume.make                        |    2 +-
 doc/lispref/variables.texi                         |   55 +-
 doc/lispref/windows.texi                           |    2 +-
 doc/man/ChangeLog.1                                |    2 +-
 doc/man/ebrowse.1                                  |    2 +-
 doc/man/emacs.1.in                                 |    2 +-
 doc/man/etags.1                                    |    2 +-
 doc/misc/ChangeLog.1                               |    2 +-
 doc/misc/Makefile.in                               |    2 +-
 doc/misc/ada-mode.texi                             |    2 +-
 doc/misc/auth.texi                                 |    2 +-
 doc/misc/autotype.texi                             |    2 +-
 doc/misc/bovine.texi                               |    2 +-
 doc/misc/calc.texi                                 |    2 +-
 doc/misc/cc-mode.texi                              |    2 +-
 doc/misc/cl.texi                                   |    9 +-
 doc/misc/dbus.texi                                 |    2 +-
 doc/misc/dired-x.texi                              |    2 +-
 doc/misc/ebrowse.texi                              |    2 +-
 doc/misc/ede.texi                                  |    2 +-
 doc/misc/ediff.texi                                |   13 +-
 doc/misc/edt.texi                                  |    2 +-
 doc/misc/efaq-w32.texi                             |    2 +-
 doc/misc/efaq.texi                                 |    2 +-
 doc/misc/eieio.texi                                |    2 +-
 doc/misc/emacs-gnutls.texi                         |    2 +-
 doc/misc/emacs-mime.texi                           |    9 +-
 doc/misc/epa.texi                                  |    2 +-
 doc/misc/erc.texi                                  |    2 +-
 doc/misc/ert.texi                                  |    2 +-
 doc/misc/eshell.texi                               |    2 +-
 doc/misc/eudc.texi                                 |    2 +-
 doc/misc/eww.texi                                  |    2 +-
 doc/misc/flymake.texi                              |    2 +-
 doc/misc/forms.texi                                |    2 +-
 doc/misc/gnus-coding.texi                          |    2 +-
 doc/misc/gnus-faq.texi                             |    2 +-
 doc/misc/gnus-news.el                              |    4 +-
 doc/misc/gnus-news.texi                            |    2 +-
 doc/misc/gnus.texi                                 |   38 +-
 doc/misc/htmlfontify.texi                          |    2 +-
 doc/misc/idlwave.texi                              |    2 +-
 doc/misc/ido.texi                                  |    2 +-
 doc/misc/info.texi                                 |    2 +-
 doc/misc/mairix-el.texi                            |    2 +-
 doc/misc/message.texi                              |    2 +-
 doc/misc/mh-e.texi                                 |    2 +-
 doc/misc/newsticker.texi                           |    2 +-
 doc/misc/nxml-mode.texi                            |    2 +-
 doc/misc/octave-mode.texi                          |    2 +-
 doc/misc/org.texi                                  |    4 +-
 doc/misc/pcl-cvs.texi                              |    2 +-
 doc/misc/pgg.texi                                  |    2 +-
 doc/misc/rcirc.texi                                |    2 +-
 doc/misc/reftex.texi                               |    2 +-
 doc/misc/remember.texi                             |    2 +-
 doc/misc/sasl.texi                                 |    2 +-
 doc/misc/sc.texi                                   |    2 +-
 doc/misc/sem-user.texi                             |    2 +-
 doc/misc/semantic.texi                             |    2 +-
 doc/misc/ses.texi                                  |    2 +-
 doc/misc/sieve.texi                                |    2 +-
 doc/misc/smtpmail.texi                             |    2 +-
 doc/misc/speedbar.texi                             |    2 +-
 doc/misc/srecode.texi                              |    2 +-
 doc/misc/todo-mode.texi                            |    2 +-
 doc/misc/tramp.texi                                |    2 +-
 doc/misc/trampver.texi                             |    4 +-
 doc/misc/url.texi                                  |    2 +-
 doc/misc/vhdl-mode.texi                            |    2 +-
 doc/misc/vip.texi                                  |    2 +-
 doc/misc/viper.texi                                |    2 +-
 doc/misc/widget.texi                               |    2 +-
 doc/misc/wisent.texi                               |    2 +-
 doc/misc/woman.texi                                |    2 +-
 etc/AUTHORS                                        |    6 +-
 etc/CALC-NEWS                                      |    2 +-
 etc/ChangeLog.1                                    |    2 +-
 etc/DEBUG                                          |    6 +-
 etc/DISTRIB                                        |    2 +-
 etc/ERC-NEWS                                       |    2 +-
 etc/ETAGS.EBNF                                     |    2 +-
 etc/ETAGS.README                                   |    2 +-
 etc/GNUS-NEWS                                      |    2 +-
 etc/HELLO                                          |    2 +-
 etc/MACHINES                                       |    2 +-
 etc/MH-E-NEWS                                      |    2 +-
 etc/NEWS                                           |   57 +-
 etc/NEWS.1-17                                      |    2 +-
 etc/NEWS.18                                        |    2 +-
 etc/NEWS.19                                        |    2 +-
 etc/NEWS.20                                        |    2 +-
 etc/NEWS.21                                        |    2 +-
 etc/NEWS.22                                        |    2 +-
 etc/NEWS.23                                        |    2 +-
 etc/NEWS.24                                        |    2 +-
 etc/NEWS.25                                        |    2 +-
 etc/NEXTSTEP                                       |    2 +-
 etc/NXML-NEWS                                      |    2 +-
 etc/ORG-NEWS                                       |    2 +-
 etc/PROBLEMS                                       |    2 +-
 etc/README                                         |    2 +-
 etc/TERMS                                          |    2 +-
 etc/TODO                                           |    2 +-
 etc/charsets/README                                |    2 +-
 etc/compilation.txt                                |    2 +-
 etc/edt-user.el                                    |    2 +-
 etc/emacs-buffer.gdb                               |    2 +-
 etc/emacs.appdata.xml                              |    2 +-
 etc/enriched.txt                                   |    2 +-
 etc/forms/forms-d2.el                              |    2 +-
 etc/gnus-tut.txt                                   |    2 +-
 etc/grep.txt                                       |    2 +-
 etc/images/README                                  |    8 +-
 etc/images/checked.xpm                             |    2 +-
 etc/images/custom/README                           |    2 +-
 etc/images/ezimage/README                          |    2 +-
 etc/images/gnus/README                             |    6 +-
 etc/images/gnus/gnus.svg                           |    2 +-
 etc/images/gud/README                              |    6 +-
 etc/images/icons/README                            |    8 +-
 etc/images/icons/hicolor/scalable/apps/emacs.svg   |    2 +-
 etc/images/icons/hicolor/scalable/apps/emacs23.svg |    2 +-
 .../scalable/mimetypes/emacs-document23.svg        |    2 +-
 etc/images/mh-logo.xpm                             |    2 +-
 etc/images/mpc/README                              |    2 +-
 etc/images/newsticker/README                       |    2 +-
 etc/images/smilies/README                          |    2 +-
 etc/images/smilies/grayscale/README                |    2 +-
 etc/images/smilies/medium/README                   |    2 +-
 etc/images/splash.svg                              |    2 +-
 etc/images/tree-widget/default/README              |    2 +-
 etc/images/tree-widget/folder/README               |    2 +-
 etc/images/unchecked.xpm                           |    2 +-
 etc/org/README                                     |    2 +-
 etc/ps-prin0.ps                                    |    2 +-
 etc/ps-prin1.ps                                    |    2 +-
 etc/refcards/Makefile                              |    2 +-
 etc/refcards/README                                |    4 +-
 etc/refcards/calccard.tex                          |    2 +-
 etc/refcards/cs-dired-ref.tex                      |    2 +-
 etc/refcards/cs-refcard.tex                        |    2 +-
 etc/refcards/cs-survival.tex                       |    2 +-
 etc/refcards/de-refcard.tex                        |    2 +-
 etc/refcards/dired-ref.tex                         |    2 +-
 etc/refcards/emacsver.tex.in                       |    2 +-
 etc/refcards/fr-dired-ref.tex                      |    2 +-
 etc/refcards/fr-refcard.tex                        |    2 +-
 etc/refcards/fr-survival.tex                       |    2 +-
 etc/refcards/gnus-logo.eps                         |    2 +-
 etc/refcards/gnus-refcard.tex                      |    2 +-
 etc/refcards/orgcard.tex                           |    2 +-
 etc/refcards/pdflayout.sty                         |    2 +-
 etc/refcards/pl-refcard.tex                        |    2 +-
 etc/refcards/pt-br-refcard.tex                     |    2 +-
 etc/refcards/refcard.tex                           |    2 +-
 etc/refcards/ru-refcard.tex                        |    4 +-
 etc/refcards/sk-dired-ref.tex                      |    2 +-
 etc/refcards/sk-refcard.tex                        |    2 +-
 etc/refcards/sk-survival.tex                       |    2 +-
 etc/refcards/survival.tex                          |    2 +-
 etc/refcards/vipcard.tex                           |    2 +-
 etc/refcards/viperCard.tex                         |    2 +-
 etc/schema/locate.rnc                              |    2 +-
 etc/schema/relaxng.rnc                             |    2 +-
 etc/schema/schemas.xml                             |    2 +-
 etc/ses-example.ses                                |    2 +-
 etc/srecode/c.srt                                  |    2 +-
 etc/srecode/cpp.srt                                |    2 +-
 etc/srecode/default.srt                            |    2 +-
 etc/srecode/doc-cpp.srt                            |    2 +-
 etc/srecode/doc-default.srt                        |    2 +-
 etc/srecode/doc-java.srt                           |    2 +-
 etc/srecode/ede-autoconf.srt                       |    2 +-
 etc/srecode/ede-make.srt                           |    2 +-
 etc/srecode/el.srt                                 |    2 +-
 etc/srecode/getset-cpp.srt                         |    2 +-
 etc/srecode/java.srt                               |    2 +-
 etc/srecode/make.srt                               |    2 +-
 etc/srecode/template.srt                           |    2 +-
 etc/srecode/test.srt                               |    2 +-
 etc/srecode/texi.srt                               |    2 +-
 etc/srecode/wisent.srt                             |    2 +-
 etc/themes/adwaita-theme.el                        |    2 +-
 etc/themes/deeper-blue-theme.el                    |    2 +-
 etc/themes/dichromacy-theme.el                     |    2 +-
 etc/themes/leuven-theme.el                         |    2 +-
 etc/themes/light-blue-theme.el                     |    2 +-
 etc/themes/manoj-dark-theme.el                     |    2 +-
 etc/themes/misterioso-theme.el                     |    2 +-
 etc/themes/tango-dark-theme.el                     |    2 +-
 etc/themes/tango-theme.el                          |    2 +-
 etc/themes/tsdh-dark-theme.el                      |    2 +-
 etc/themes/tsdh-light-theme.el                     |    2 +-
 etc/themes/wheatgrass-theme.el                     |    2 +-
 etc/themes/whiteboard-theme.el                     |    2 +-
 etc/themes/wombat-theme.el                         |    2 +-
 etc/tutorials/TUTORIAL                             |    2 +-
 etc/tutorials/TUTORIAL.bg                          |    2 +-
 etc/tutorials/TUTORIAL.cn                          |    4 +-
 etc/tutorials/TUTORIAL.cs                          |    2 +-
 etc/tutorials/TUTORIAL.de                          |    2 +-
 etc/tutorials/TUTORIAL.eo                          |    2 +-
 etc/tutorials/TUTORIAL.es                          |    2 +-
 etc/tutorials/TUTORIAL.fr                          |    2 +-
 etc/tutorials/TUTORIAL.he                          |    2 +-
 etc/tutorials/TUTORIAL.it                          |    2 +-
 etc/tutorials/TUTORIAL.ja                          |    2 +-
 etc/tutorials/TUTORIAL.ko                          |    2 +-
 etc/tutorials/TUTORIAL.nl                          |    4 +-
 etc/tutorials/TUTORIAL.pl                          |    2 +-
 etc/tutorials/TUTORIAL.pt_BR                       |    2 +-
 etc/tutorials/TUTORIAL.ro                          |    4 +-
 etc/tutorials/TUTORIAL.ru                          |    2 +-
 etc/tutorials/TUTORIAL.sk                          |    2 +-
 etc/tutorials/TUTORIAL.sl                          |    2 +-
 etc/tutorials/TUTORIAL.sv                          |    2 +-
 etc/tutorials/TUTORIAL.th                          |    2 +-
 etc/tutorials/TUTORIAL.zh                          |    2 +-
 leim/ChangeLog.1                                   |    2 +-
 leim/Makefile.in                                   |    2 +-
 leim/README                                        |    2 +-
 leim/leim-ext.el                                   |    2 +-
 lib-src/ChangeLog.1                                |    2 +-
 lib-src/Makefile.in                                |    2 +-
 lib-src/ebrowse.c                                  |    2 +-
 lib-src/emacsclient.c                              |    2 +-
 lib-src/etags.c                                    |    2 +-
 lib-src/hexl.c                                     |    2 +-
 lib-src/make-docfile.c                             |    2 +-
 lib-src/movemail.c                                 |    2 +-
 lib-src/ntlib.c                                    |    2 +-
 lib-src/ntlib.h                                    |    2 +-
 lib-src/pop.c                                      |    2 +-
 lib-src/pop.h                                      |    2 +-
 lib-src/profile.c                                  |    2 +-
 lib-src/rcs2log                                    |    4 +-
 lib-src/update-game-score.c                        |    2 +-
 lib/Makefile.am                                    |    2 +-
 lib/acl-errno-valid.c                              |    2 +-
 lib/acl-internal.c                                 |    2 +-
 lib/acl-internal.h                                 |    2 +-
 lib/acl.h                                          |    2 +-
 lib/acl_entries.c                                  |    2 +-
 lib/alloca.in.h                                    |    2 +-
 lib/allocator.h                                    |    2 +-
 lib/at-func.c                                      |    2 +-
 lib/binary-io.h                                    |    2 +-
 lib/byteswap.in.h                                  |    2 +-
 lib/c-ctype.h                                      |    2 +-
 lib/c-strcase.h                                    |    2 +-
 lib/c-strcasecmp.c                                 |    2 +-
 lib/c-strncasecmp.c                                |    2 +-
 lib/careadlinkat.c                                 |    2 +-
 lib/careadlinkat.h                                 |    2 +-
 lib/close-stream.c                                 |    2 +-
 lib/count-one-bits.h                               |    2 +-
 lib/count-trailing-zeros.h                         |    2 +-
 lib/dirent.in.h                                    |    2 +-
 lib/dirfd.c                                        |    2 +-
 lib/dosname.h                                      |    2 +-
 lib/dtotimespec.c                                  |    2 +-
 lib/dup2.c                                         |    2 +-
 lib/errno.in.h                                     |    2 +-
 lib/euidaccess.c                                   |    2 +-
 lib/execinfo.in.h                                  |    2 +-
 lib/faccessat.c                                    |    2 +-
 lib/fcntl.c                                        |    2 +-
 lib/fcntl.in.h                                     |    2 +-
 lib/fdatasync.c                                    |    2 +-
 lib/fdopendir.c                                    |    2 +-
 lib/filemode.c                                     |    2 +-
 lib/filemode.h                                     |    2 +-
 lib/filevercmp.c                                   |    2 +-
 lib/filevercmp.h                                   |    2 +-
 lib/flexmember.h                                   |    2 +-
 lib/fpending.c                                     |    4 +-
 lib/fpending.h                                     |    2 +-
 lib/fstatat.c                                      |    2 +-
 lib/fsync.c                                        |    2 +-
 lib/ftoastr.c                                      |    2 +-
 lib/ftoastr.h                                      |    2 +-
 lib/get-permissions.c                              |    2 +-
 lib/getdtablesize.c                                |    2 +-
 lib/getgroups.c                                    |    2 +-
 lib/getloadavg.c                                   |    2 +-
 lib/getopt.c                                       |    2 +-
 lib/getopt.in.h                                    |   24 +-
 lib/getopt1.c                                      |    2 +-
 lib/getopt_.h                                      |    4 +-
 lib/getopt_int.h                                   |    2 +-
 lib/gettext.h                                      |    2 +-
 lib/gettime.c                                      |    2 +-
 lib/gettimeofday.c                                 |    2 +-
 lib/gnulib.mk                                      |    5 +-
 lib/group-member.c                                 |    2 +-
 lib/ignore-value.h                                 |    2 +-
 lib/intprops.h                                     |   12 +-
 lib/inttypes.in.h                                  |    2 +-
 lib/limits.in.h                                    |    2 +-
 lib/lstat.c                                        |    2 +-
 lib/md5.c                                          |    2 +-
 lib/md5.h                                          |    2 +-
 lib/memrchr.c                                      |    2 +-
 lib/mkostemp.c                                     |    2 +-
 lib/mktime-internal.h                              |    2 +-
 lib/mktime.c                                       |    4 +-
 lib/openat-priv.h                                  |    2 +-
 lib/openat-proc.c                                  |    2 +-
 lib/openat.h                                       |    2 +-
 lib/pathmax.h                                      |    2 +-
 lib/pipe2.c                                        |    2 +-
 lib/pselect.c                                      |    2 +-
 lib/pthread_sigmask.c                              |    2 +-
 lib/putenv.c                                       |    2 +-
 lib/qcopy-acl.c                                    |    2 +-
 lib/readlink.c                                     |    2 +-
 lib/readlinkat.c                                   |    2 +-
 lib/root-uid.h                                     |    2 +-
 lib/save-cwd.c                                     |    2 +-
 lib/save-cwd.h                                     |    2 +-
 lib/secure_getenv.c                                |    2 +-
 lib/set-permissions.c                              |    2 +-
 lib/sha1.c                                         |    2 +-
 lib/sha1.h                                         |    2 +-
 lib/sha256.c                                       |    2 +-
 lib/sha256.h                                       |    2 +-
 lib/sha512.c                                       |    2 +-
 lib/sha512.h                                       |    2 +-
 lib/sig2str.c                                      |    2 +-
 lib/sig2str.h                                      |    2 +-
 lib/signal.in.h                                    |    2 +-
 lib/stat-time.h                                    |    4 +-
 lib/stat.c                                         |    2 +-
 lib/stdalign.in.h                                  |    2 +-
 lib/stddef.in.h                                    |    2 +-
 lib/stdint.in.h                                    |   11 +-
 lib/stdio-impl.h                                   |    6 +-
 lib/stdio.in.h                                     |   22 +-
 lib/stdlib.in.h                                    |    2 +-
 lib/stpcpy.c                                       |    2 +-
 lib/strftime.c                                     |    2 +-
 lib/strftime.h                                     |    2 +-
 lib/string.in.h                                    |    2 +-
 lib/strtoimax.c                                    |    2 +-
 lib/strtol.c                                       |    2 +-
 lib/strtoll.c                                      |    2 +-
 lib/strtoul.c                                      |    2 +-
 lib/strtoull.c                                     |    2 +-
 lib/symlink.c                                      |    2 +-
 lib/sys_select.in.h                                |    2 +-
 lib/sys_stat.in.h                                  |    2 +-
 lib/sys_time.in.h                                  |    2 +-
 lib/sys_types.in.h                                 |    2 +-
 lib/tempname.c                                     |    2 +-
 lib/tempname.h                                     |    2 +-
 lib/time-internal.h                                |    2 +-
 lib/time.in.h                                      |    4 +-
 lib/time_r.c                                       |    2 +-
 lib/time_rz.c                                      |    2 +-
 lib/timegm.c                                       |    2 +-
 lib/timespec-add.c                                 |    2 +-
 lib/timespec-sub.c                                 |    2 +-
 lib/timespec.h                                     |    8 +-
 lib/u64.h                                          |    2 +-
 lib/unistd.in.h                                    |    8 +-
 lib/unsetenv.c                                     |    2 +-
 lib/utimens.c                                      |   12 +-
 lib/utimens.h                                      |    2 +-
 lib/verify.h                                       |    2 +-
 lib/vla.h                                          |    2 +-
 lib/xalloc-oversized.h                             |   14 +-
 lisp/ChangeLog.1                                   |    2 +-
 lisp/ChangeLog.10                                  |    2 +-
 lisp/ChangeLog.11                                  |    2 +-
 lisp/ChangeLog.12                                  |    2 +-
 lisp/ChangeLog.13                                  |    2 +-
 lisp/ChangeLog.14                                  |    2 +-
 lisp/ChangeLog.15                                  |    2 +-
 lisp/ChangeLog.16                                  |    2 +-
 lisp/ChangeLog.17                                  |    2 +-
 lisp/ChangeLog.2                                   |    2 +-
 lisp/ChangeLog.3                                   |    2 +-
 lisp/ChangeLog.4                                   |    2 +-
 lisp/ChangeLog.5                                   |    2 +-
 lisp/ChangeLog.6                                   |    2 +-
 lisp/ChangeLog.7                                   |    2 +-
 lisp/ChangeLog.8                                   |    2 +-
 lisp/ChangeLog.9                                   |    2 +-
 lisp/Makefile.in                                   |    2 +-
 lisp/abbrev.el                                     |   10 +-
 lisp/align.el                                      |    2 +-
 lisp/allout-widgets.el                             |    2 +-
 lisp/allout.el                                     |    2 +-
 lisp/ansi-color.el                                 |    2 +-
 lisp/apropos.el                                    |    2 +-
 lisp/arc-mode.el                                   |    2 +-
 lisp/array.el                                      |    2 +-
 lisp/auth-source.el                                |    2 +-
 lisp/autoarg.el                                    |    2 +-
 lisp/autoinsert.el                                 |    2 +-
 lisp/autorevert.el                                 |   13 +-
 lisp/avoid.el                                      |    2 +-
 lisp/battery.el                                    |    5 +-
 lisp/bindings.el                                   |    2 +-
 lisp/bookmark.el                                   |   37 +-
 lisp/bs.el                                         |    2 +-
 lisp/buff-menu.el                                  |    2 +-
 lisp/button.el                                     |    2 +-
 lisp/calc/calc-aent.el                             |    2 +-
 lisp/calc/calc-alg.el                              |    2 +-
 lisp/calc/calc-arith.el                            |    2 +-
 lisp/calc/calc-bin.el                              |    2 +-
 lisp/calc/calc-comb.el                             |    2 +-
 lisp/calc/calc-cplx.el                             |    2 +-
 lisp/calc/calc-embed.el                            |    2 +-
 lisp/calc/calc-ext.el                              |    2 +-
 lisp/calc/calc-fin.el                              |    2 +-
 lisp/calc/calc-forms.el                            |    2 +-
 lisp/calc/calc-frac.el                             |    2 +-
 lisp/calc/calc-funcs.el                            |    2 +-
 lisp/calc/calc-graph.el                            |    2 +-
 lisp/calc/calc-help.el                             |    2 +-
 lisp/calc/calc-incom.el                            |    2 +-
 lisp/calc/calc-keypd.el                            |    2 +-
 lisp/calc/calc-lang.el                             |    2 +-
 lisp/calc/calc-macs.el                             |    2 +-
 lisp/calc/calc-map.el                              |    2 +-
 lisp/calc/calc-math.el                             |    2 +-
 lisp/calc/calc-menu.el                             |    2 +-
 lisp/calc/calc-misc.el                             |    4 +-
 lisp/calc/calc-mode.el                             |    2 +-
 lisp/calc/calc-mtx.el                              |    2 +-
 lisp/calc/calc-nlfit.el                            |    2 +-
 lisp/calc/calc-poly.el                             |    2 +-
 lisp/calc/calc-prog.el                             |    2 +-
 lisp/calc/calc-rewr.el                             |    2 +-
 lisp/calc/calc-rules.el                            |    2 +-
 lisp/calc/calc-sel.el                              |    2 +-
 lisp/calc/calc-stat.el                             |    2 +-
 lisp/calc/calc-store.el                            |    2 +-
 lisp/calc/calc-stuff.el                            |    2 +-
 lisp/calc/calc-trail.el                            |    2 +-
 lisp/calc/calc-undo.el                             |    2 +-
 lisp/calc/calc-units.el                            |    2 +-
 lisp/calc/calc-vec.el                              |    2 +-
 lisp/calc/calc-yank.el                             |    2 +-
 lisp/calc/calc.el                                  |    2 +-
 lisp/calc/calcalg2.el                              |    2 +-
 lisp/calc/calcalg3.el                              |    2 +-
 lisp/calc/calccomp.el                              |    2 +-
 lisp/calc/calcsel2.el                              |    2 +-
 lisp/calculator.el                                 |    2 +-
 lisp/calendar/appt.el                              |    2 +-
 lisp/calendar/cal-bahai.el                         |    2 +-
 lisp/calendar/cal-china.el                         |    2 +-
 lisp/calendar/cal-coptic.el                        |    2 +-
 lisp/calendar/cal-dst.el                           |    2 +-
 lisp/calendar/cal-french.el                        |    2 +-
 lisp/calendar/cal-hebrew.el                        |    2 +-
 lisp/calendar/cal-html.el                          |    2 +-
 lisp/calendar/cal-islam.el                         |    2 +-
 lisp/calendar/cal-iso.el                           |    2 +-
 lisp/calendar/cal-julian.el                        |    2 +-
 lisp/calendar/cal-mayan.el                         |    2 +-
 lisp/calendar/cal-menu.el                          |    2 +-
 lisp/calendar/cal-move.el                          |    2 +-
 lisp/calendar/cal-persia.el                        |    2 +-
 lisp/calendar/cal-tex.el                           |    2 +-
 lisp/calendar/cal-x.el                             |    2 +-
 lisp/calendar/calendar.el                          |    2 +-
 lisp/calendar/diary-lib.el                         |    2 +-
 lisp/calendar/holidays.el                          |    2 +-
 lisp/calendar/icalendar.el                         |    2 +-
 lisp/calendar/lunar.el                             |    2 +-
 lisp/calendar/parse-time.el                        |   28 +-
 lisp/calendar/solar.el                             |    2 +-
 lisp/calendar/time-date.el                         |    2 +-
 lisp/calendar/timeclock.el                         |    2 +-
 lisp/calendar/todo-mode.el                         |    2 +-
 lisp/case-table.el                                 |    2 +-
 lisp/cdl.el                                        |    2 +-
 lisp/cedet/ChangeLog.1                             |    2 +-
 lisp/cedet/cedet-cscope.el                         |    2 +-
 lisp/cedet/cedet-files.el                          |    2 +-
 lisp/cedet/cedet-global.el                         |    2 +-
 lisp/cedet/cedet-idutils.el                        |    2 +-
 lisp/cedet/cedet.el                                |    2 +-
 lisp/cedet/data-debug.el                           |    2 +-
 lisp/cedet/ede.el                                  |    2 +-
 lisp/cedet/ede/auto.el                             |    2 +-
 lisp/cedet/ede/autoconf-edit.el                    |    2 +-
 lisp/cedet/ede/base.el                             |    2 +-
 lisp/cedet/ede/config.el                           |    2 +-
 lisp/cedet/ede/cpp-root.el                         |    2 +-
 lisp/cedet/ede/custom.el                           |    2 +-
 lisp/cedet/ede/detect.el                           |    2 +-
 lisp/cedet/ede/dired.el                            |    2 +-
 lisp/cedet/ede/emacs.el                            |    2 +-
 lisp/cedet/ede/files.el                            |    2 +-
 lisp/cedet/ede/generic.el                          |    2 +-
 lisp/cedet/ede/linux.el                            |    2 +-
 lisp/cedet/ede/locate.el                           |    2 +-
 lisp/cedet/ede/make.el                             |    2 +-
 lisp/cedet/ede/makefile-edit.el                    |    2 +-
 lisp/cedet/ede/pconf.el                            |    2 +-
 lisp/cedet/ede/pmake.el                            |    2 +-
 lisp/cedet/ede/proj-archive.el                     |    2 +-
 lisp/cedet/ede/proj-aux.el                         |    2 +-
 lisp/cedet/ede/proj-comp.el                        |    2 +-
 lisp/cedet/ede/proj-elisp.el                       |    2 +-
 lisp/cedet/ede/proj-info.el                        |    2 +-
 lisp/cedet/ede/proj-misc.el                        |    2 +-
 lisp/cedet/ede/proj-obj.el                         |    2 +-
 lisp/cedet/ede/proj-prog.el                        |    2 +-
 lisp/cedet/ede/proj-scheme.el                      |    2 +-
 lisp/cedet/ede/proj-shared.el                      |    2 +-
 lisp/cedet/ede/proj.el                             |    2 +-
 lisp/cedet/ede/project-am.el                       |    2 +-
 lisp/cedet/ede/shell.el                            |    2 +-
 lisp/cedet/ede/simple.el                           |    2 +-
 lisp/cedet/ede/source.el                           |    2 +-
 lisp/cedet/ede/speedbar.el                         |    2 +-
 lisp/cedet/ede/srecode.el                          |    2 +-
 lisp/cedet/ede/system.el                           |    2 +-
 lisp/cedet/ede/util.el                             |    2 +-
 lisp/cedet/inversion.el                            |    2 +-
 lisp/cedet/mode-local.el                           |    4 +-
 lisp/cedet/pulse.el                                |    2 +-
 lisp/cedet/semantic.el                             |    2 +-
 lisp/cedet/semantic/analyze.el                     |    2 +-
 lisp/cedet/semantic/analyze/complete.el            |    2 +-
 lisp/cedet/semantic/analyze/debug.el               |    2 +-
 lisp/cedet/semantic/analyze/fcn.el                 |    2 +-
 lisp/cedet/semantic/analyze/refs.el                |    2 +-
 lisp/cedet/semantic/bovine.el                      |    2 +-
 lisp/cedet/semantic/bovine/c.el                    |    2 +-
 lisp/cedet/semantic/bovine/debug.el                |    2 +-
 lisp/cedet/semantic/bovine/el.el                   |    2 +-
 lisp/cedet/semantic/bovine/gcc.el                  |    2 +-
 lisp/cedet/semantic/bovine/grammar.el              |    2 +-
 lisp/cedet/semantic/bovine/make.el                 |    2 +-
 lisp/cedet/semantic/bovine/scm.el                  |    2 +-
 lisp/cedet/semantic/chart.el                       |    2 +-
 lisp/cedet/semantic/complete.el                    |    2 +-
 lisp/cedet/semantic/ctxt.el                        |    2 +-
 lisp/cedet/semantic/db-debug.el                    |    2 +-
 lisp/cedet/semantic/db-ebrowse.el                  |    2 +-
 lisp/cedet/semantic/db-el.el                       |    2 +-
 lisp/cedet/semantic/db-file.el                     |    2 +-
 lisp/cedet/semantic/db-find.el                     |    2 +-
 lisp/cedet/semantic/db-global.el                   |    4 +-
 lisp/cedet/semantic/db-javascript.el               |    2 +-
 lisp/cedet/semantic/db-mode.el                     |    2 +-
 lisp/cedet/semantic/db-ref.el                      |    2 +-
 lisp/cedet/semantic/db-typecache.el                |    2 +-
 lisp/cedet/semantic/db.el                          |    2 +-
 lisp/cedet/semantic/debug.el                       |    2 +-
 lisp/cedet/semantic/decorate.el                    |    2 +-
 lisp/cedet/semantic/decorate/include.el            |    2 +-
 lisp/cedet/semantic/decorate/mode.el               |    2 +-
 lisp/cedet/semantic/dep.el                         |    2 +-
 lisp/cedet/semantic/doc.el                         |    2 +-
 lisp/cedet/semantic/ede-grammar.el                 |    2 +-
 lisp/cedet/semantic/edit.el                        |    2 +-
 lisp/cedet/semantic/find.el                        |    2 +-
 lisp/cedet/semantic/format.el                      |    2 +-
 lisp/cedet/semantic/fw.el                          |    2 +-
 lisp/cedet/semantic/grammar-wy.el                  |    2 +-
 lisp/cedet/semantic/grammar.el                     |    2 +-
 lisp/cedet/semantic/html.el                        |    2 +-
 lisp/cedet/semantic/ia-sb.el                       |    2 +-
 lisp/cedet/semantic/ia.el                          |    2 +-
 lisp/cedet/semantic/idle.el                        |    2 +-
 lisp/cedet/semantic/imenu.el                       |    2 +-
 lisp/cedet/semantic/java.el                        |    2 +-
 lisp/cedet/semantic/lex-spp.el                     |    2 +-
 lisp/cedet/semantic/lex.el                         |    2 +-
 lisp/cedet/semantic/mru-bookmark.el                |    2 +-
 lisp/cedet/semantic/sb.el                          |    2 +-
 lisp/cedet/semantic/scope.el                       |    2 +-
 lisp/cedet/semantic/senator.el                     |    2 +-
 lisp/cedet/semantic/sort.el                        |    2 +-
 lisp/cedet/semantic/symref.el                      |    2 +-
 lisp/cedet/semantic/symref/cscope.el               |    2 +-
 lisp/cedet/semantic/symref/filter.el               |    2 +-
 lisp/cedet/semantic/symref/global.el               |    2 +-
 lisp/cedet/semantic/symref/grep.el                 |    2 +-
 lisp/cedet/semantic/symref/idutils.el              |    2 +-
 lisp/cedet/semantic/symref/list.el                 |    2 +-
 lisp/cedet/semantic/tag-file.el                    |    2 +-
 lisp/cedet/semantic/tag-ls.el                      |    2 +-
 lisp/cedet/semantic/tag-write.el                   |    2 +-
 lisp/cedet/semantic/tag.el                         |    2 +-
 lisp/cedet/semantic/texi.el                        |    2 +-
 lisp/cedet/semantic/util-modes.el                  |    2 +-
 lisp/cedet/semantic/util.el                        |    2 +-
 lisp/cedet/semantic/wisent.el                      |    2 +-
 lisp/cedet/semantic/wisent/comp.el                 |    2 +-
 lisp/cedet/semantic/wisent/grammar.el              |    2 +-
 lisp/cedet/semantic/wisent/java-tags.el            |    2 +-
 lisp/cedet/semantic/wisent/javascript.el           |    2 +-
 lisp/cedet/semantic/wisent/python.el               |    2 +-
 lisp/cedet/semantic/wisent/wisent.el               |    2 +-
 lisp/cedet/srecode.el                              |    2 +-
 lisp/cedet/srecode/args.el                         |    2 +-
 lisp/cedet/srecode/compile.el                      |    2 +-
 lisp/cedet/srecode/cpp.el                          |    2 +-
 lisp/cedet/srecode/ctxt.el                         |    2 +-
 lisp/cedet/srecode/dictionary.el                   |    2 +-
 lisp/cedet/srecode/document.el                     |    2 +-
 lisp/cedet/srecode/el.el                           |    2 +-
 lisp/cedet/srecode/expandproto.el                  |    2 +-
 lisp/cedet/srecode/extract.el                      |    2 +-
 lisp/cedet/srecode/fields.el                       |    2 +-
 lisp/cedet/srecode/filters.el                      |    2 +-
 lisp/cedet/srecode/find.el                         |    2 +-
 lisp/cedet/srecode/getset.el                       |    2 +-
 lisp/cedet/srecode/insert.el                       |    2 +-
 lisp/cedet/srecode/java.el                         |    2 +-
 lisp/cedet/srecode/map.el                          |    2 +-
 lisp/cedet/srecode/mode.el                         |    2 +-
 lisp/cedet/srecode/semantic.el                     |    2 +-
 lisp/cedet/srecode/srt-mode.el                     |    2 +-
 lisp/cedet/srecode/srt.el                          |    2 +-
 lisp/cedet/srecode/table.el                        |    2 +-
 lisp/cedet/srecode/template.el                     |    2 +-
 lisp/cedet/srecode/texi.el                         |    2 +-
 lisp/char-fold.el                                  |    2 +-
 lisp/chistory.el                                   |    2 +-
 lisp/cmuscheme.el                                  |    2 +-
 lisp/color.el                                      |    2 +-
 lisp/comint.el                                     |   13 +-
 lisp/completion.el                                 |    2 +-
 lisp/composite.el                                  |    2 +-
 lisp/cus-dep.el                                    |    2 +-
 lisp/cus-edit.el                                   |    2 +-
 lisp/cus-face.el                                   |    2 +-
 lisp/cus-start.el                                  |    2 +-
 lisp/cus-theme.el                                  |    2 +-
 lisp/custom.el                                     |    2 +-
 lisp/dabbrev.el                                    |    2 +-
 lisp/delim-col.el                                  |    2 +-
 lisp/delsel.el                                     |    2 +-
 lisp/descr-text.el                                 |    2 +-
 lisp/desktop.el                                    |   11 +-
 lisp/dframe.el                                     |    2 +-
 lisp/dired-aux.el                                  |    4 +-
 lisp/dired-x.el                                    |    2 +-
 lisp/dired.el                                      |    2 +-
 lisp/dirtrack.el                                   |    2 +-
 lisp/disp-table.el                                 |    2 +-
 lisp/dnd.el                                        |    2 +-
 lisp/doc-view.el                                   |    2 +-
 lisp/dom.el                                        |    2 +-
 lisp/dos-fns.el                                    |    2 +-
 lisp/dos-vars.el                                   |    2 +-
 lisp/dos-w32.el                                    |    2 +-
 lisp/double.el                                     |    2 +-
 lisp/dynamic-setting.el                            |    2 +-
 lisp/ebuff-menu.el                                 |    2 +-
 lisp/echistory.el                                  |    2 +-
 lisp/ecomplete.el                                  |    2 +-
 lisp/edmacro.el                                    |    2 +-
 lisp/ehelp.el                                      |    2 +-
 lisp/elec-pair.el                                  |    2 +-
 lisp/electric.el                                   |    2 +-
 lisp/elide-head.el                                 |    2 +-
 lisp/emacs-lisp/advice.el                          |    2 +-
 lisp/emacs-lisp/autoload.el                        |    2 +-
 lisp/emacs-lisp/avl-tree.el                        |    2 +-
 lisp/emacs-lisp/backquote.el                       |   12 +-
 lisp/emacs-lisp/benchmark.el                       |    2 +-
 lisp/emacs-lisp/bindat.el                          |    2 +-
 lisp/emacs-lisp/byte-opt.el                        |    2 +-
 lisp/emacs-lisp/byte-run.el                        |    4 +-
 lisp/emacs-lisp/bytecomp.el                        |    2 +-
 lisp/emacs-lisp/cconv.el                           |    2 +-
 lisp/emacs-lisp/chart.el                           |    2 +-
 lisp/emacs-lisp/check-declare.el                   |    2 +-
 lisp/emacs-lisp/checkdoc.el                        |   61 +-
 lisp/emacs-lisp/cl-extra.el                        |    2 +-
 lisp/emacs-lisp/cl-generic.el                      |   17 +-
 lisp/emacs-lisp/cl-indent.el                       |    2 +-
 lisp/emacs-lisp/cl-lib.el                          |  145 +-
 lisp/emacs-lisp/cl-macs.el                         |   36 +-
 lisp/emacs-lisp/cl-preloaded.el                    |    2 +-
 lisp/emacs-lisp/cl-seq.el                          |    2 +-
 lisp/emacs-lisp/cl.el                              |   26 +-
 lisp/emacs-lisp/copyright.el                       |    2 +-
 lisp/emacs-lisp/crm.el                             |    2 +-
 lisp/emacs-lisp/cursor-sensor.el                   |    2 +-
 lisp/emacs-lisp/debug.el                           |   56 +-
 lisp/emacs-lisp/derived.el                         |    4 +-
 lisp/emacs-lisp/disass.el                          |    2 +-
 lisp/emacs-lisp/easy-mmode.el                      |    2 +-
 lisp/emacs-lisp/easymenu.el                        |    2 +-
 lisp/emacs-lisp/edebug.el                          |    5 +-
 lisp/emacs-lisp/eieio-base.el                      |    2 +-
 lisp/emacs-lisp/eieio-compat.el                    |    2 +-
 lisp/emacs-lisp/eieio-core.el                      |    2 +-
 lisp/emacs-lisp/eieio-custom.el                    |    2 +-
 lisp/emacs-lisp/eieio-datadebug.el                 |    2 +-
 lisp/emacs-lisp/eieio-opt.el                       |    2 +-
 lisp/emacs-lisp/eieio-speedbar.el                  |    2 +-
 lisp/emacs-lisp/eieio.el                           |    2 +-
 lisp/emacs-lisp/eldoc.el                           |    2 +-
 lisp/emacs-lisp/elint.el                           |    2 +-
 lisp/emacs-lisp/elp.el                             |    2 +-
 lisp/emacs-lisp/ert-x.el                           |    2 +-
 lisp/emacs-lisp/ert.el                             |    2 +-
 lisp/emacs-lisp/ewoc.el                            |    2 +-
 lisp/emacs-lisp/find-func.el                       |    2 +-
 lisp/emacs-lisp/float-sup.el                       |    2 +-
 lisp/emacs-lisp/generator.el                       |    2 +-
 lisp/emacs-lisp/generic.el                         |    2 +-
 lisp/emacs-lisp/gv.el                              |    2 +-
 lisp/emacs-lisp/helper.el                          |    2 +-
 lisp/emacs-lisp/inline.el                          |    8 +-
 lisp/emacs-lisp/let-alist.el                       |    2 +-
 lisp/emacs-lisp/lisp-mnt.el                        |    2 +-
 lisp/emacs-lisp/lisp-mode.el                       |    2 +-
 lisp/emacs-lisp/lisp.el                            |    2 +-
 lisp/emacs-lisp/macroexp.el                        |    2 +-
 lisp/emacs-lisp/map-ynp.el                         |    2 +-
 lisp/emacs-lisp/map.el                             |    2 +-
 lisp/emacs-lisp/nadvice.el                         |    2 +-
 lisp/emacs-lisp/package-x.el                       |    2 +-
 lisp/emacs-lisp/package.el                         |    2 +-
 lisp/emacs-lisp/pcase.el                           |    2 +-
 lisp/emacs-lisp/pp.el                              |    2 +-
 lisp/emacs-lisp/radix-tree.el                      |    2 +-
 lisp/emacs-lisp/re-builder.el                      |    2 +-
 lisp/emacs-lisp/regexp-opt.el                      |    2 +-
 lisp/emacs-lisp/regi.el                            |    2 +-
 lisp/emacs-lisp/ring.el                            |    2 +-
 lisp/emacs-lisp/rx.el                              |    2 +-
 lisp/emacs-lisp/seq.el                             |    2 +-
 lisp/emacs-lisp/shadow.el                          |    2 +-
 lisp/emacs-lisp/smie.el                            |    2 +-
 lisp/emacs-lisp/subr-x.el                          |    2 +-
 lisp/emacs-lisp/syntax.el                          |    2 +-
 lisp/emacs-lisp/tabulated-list.el                  |   11 +-
 lisp/emacs-lisp/tcover-ses.el                      |    2 +-
 lisp/emacs-lisp/tcover-unsafep.el                  |    2 +-
 lisp/emacs-lisp/testcover.el                       |    2 +-
 lisp/emacs-lisp/thunk.el                           |    2 +-
 lisp/emacs-lisp/timer-list.el                      |    2 +-
 lisp/emacs-lisp/timer.el                           |    2 +-
 lisp/emacs-lisp/tq.el                              |    2 +-
 lisp/emacs-lisp/trace.el                           |    2 +-
 lisp/emacs-lisp/unsafep.el                         |    2 +-
 lisp/emacs-lisp/warnings.el                        |    2 +-
 lisp/emacs-lock.el                                 |    2 +-
 lisp/emulation/cua-base.el                         |    2 +-
 lisp/emulation/cua-gmrk.el                         |    2 +-
 lisp/emulation/cua-rect.el                         |    2 +-
 lisp/emulation/edt-lk201.el                        |    2 +-
 lisp/emulation/edt-mapper.el                       |  527 +-
 lisp/emulation/edt-pc.el                           |    2 +-
 lisp/emulation/edt-vt100.el                        |    2 +-
 lisp/emulation/edt.el                              |   10 +-
 lisp/emulation/keypad.el                           |    2 +-
 lisp/emulation/viper-cmd.el                        |    2 +-
 lisp/emulation/viper-ex.el                         |    2 +-
 lisp/emulation/viper-init.el                       |    2 +-
 lisp/emulation/viper-keym.el                       |    2 +-
 lisp/emulation/viper-macs.el                       |    2 +-
 lisp/emulation/viper-mous.el                       |    2 +-
 lisp/emulation/viper-util.el                       |    2 +-
 lisp/emulation/viper.el                            |    2 +-
 lisp/env.el                                        |    2 +-
 lisp/epa-dired.el                                  |    2 +-
 lisp/epa-file.el                                   |    2 +-
 lisp/epa-hook.el                                   |    2 +-
 lisp/epa-mail.el                                   |    2 +-
 lisp/epa.el                                        |    2 +-
 lisp/epg-config.el                                 |    2 +-
 lisp/epg.el                                        |    2 +-
 lisp/erc/ChangeLog.1                               |    2 +-
 lisp/erc/ChangeLog.2                               |    2 +-
 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                                    |    2 +-
 lisp/eshell/em-alias.el                            |    2 +-
 lisp/eshell/em-banner.el                           |    2 +-
 lisp/eshell/em-basic.el                            |    2 +-
 lisp/eshell/em-cmpl.el                             |    2 +-
 lisp/eshell/em-dirs.el                             |    2 +-
 lisp/eshell/em-glob.el                             |    2 +-
 lisp/eshell/em-hist.el                             |    2 +-
 lisp/eshell/em-ls.el                               |    2 +-
 lisp/eshell/em-pred.el                             |    2 +-
 lisp/eshell/em-prompt.el                           |    2 +-
 lisp/eshell/em-rebind.el                           |    2 +-
 lisp/eshell/em-script.el                           |    2 +-
 lisp/eshell/em-smart.el                            |    2 +-
 lisp/eshell/em-term.el                             |    2 +-
 lisp/eshell/em-tramp.el                            |    2 +-
 lisp/eshell/em-unix.el                             |    2 +-
 lisp/eshell/em-xtra.el                             |    2 +-
 lisp/eshell/esh-arg.el                             |    2 +-
 lisp/eshell/esh-cmd.el                             |    2 +-
 lisp/eshell/esh-ext.el                             |    2 +-
 lisp/eshell/esh-io.el                              |    6 +-
 lisp/eshell/esh-mode.el                            |    2 +-
 lisp/eshell/esh-module.el                          |    2 +-
 lisp/eshell/esh-opt.el                             |    2 +-
 lisp/eshell/esh-proc.el                            |    2 +-
 lisp/eshell/esh-util.el                            |    2 +-
 lisp/eshell/esh-var.el                             |    2 +-
 lisp/eshell/eshell.el                              |    2 +-
 lisp/expand.el                                     |    2 +-
 lisp/ezimage.el                                    |    2 +-
 lisp/face-remap.el                                 |    2 +-
 lisp/facemenu.el                                   |    2 +-
 lisp/faces.el                                      |    2 +-
 lisp/ffap.el                                       |  110 +-
 lisp/filecache.el                                  |    2 +-
 lisp/filenotify.el                                 |    2 +-
 lisp/files-x.el                                    |    2 +-
 lisp/files.el                                      |   28 +-
 lisp/filesets.el                                   |    2 +-
 lisp/find-cmd.el                                   |    2 +-
 lisp/find-dired.el                                 |    2 +-
 lisp/find-file.el                                  |    2 +-
 lisp/find-lisp.el                                  |    2 +-
 lisp/finder.el                                     |    2 +-
 lisp/flow-ctrl.el                                  |    2 +-
 lisp/foldout.el                                    |    2 +-
 lisp/follow.el                                     |    2 +-
 lisp/font-core.el                                  |    2 +-
 lisp/font-lock.el                                  |    2 +-
 lisp/format-spec.el                                |    2 +-
 lisp/format.el                                     |    2 +-
 lisp/forms.el                                      |    2 +-
 lisp/frame.el                                      |    2 +-
 lisp/frameset.el                                   |    2 +-
 lisp/fringe.el                                     |    2 +-
 lisp/generic-x.el                                  |    2 +-
 lisp/gnus/ChangeLog.1                              |    2 +-
 lisp/gnus/ChangeLog.2                              |    2 +-
 lisp/gnus/ChangeLog.3                              |    2 +-
 lisp/gnus/canlock.el                               |    2 +-
 lisp/gnus/deuglify.el                              |    2 +-
 lisp/gnus/gmm-utils.el                             |    2 +-
 lisp/gnus/gnus-agent.el                            |    2 +-
 lisp/gnus/gnus-art.el                              |   22 +-
 lisp/gnus/gnus-async.el                            |    2 +-
 lisp/gnus/gnus-bcklg.el                            |    2 +-
 lisp/gnus/gnus-bookmark.el                         |    2 +-
 lisp/gnus/gnus-cache.el                            |    2 +-
 lisp/gnus/gnus-cite.el                             |    2 +-
 lisp/gnus/gnus-cloud.el                            |    2 +-
 lisp/gnus/gnus-cus.el                              |    2 +-
 lisp/gnus/gnus-delay.el                            |    2 +-
 lisp/gnus/gnus-demon.el                            |    2 +-
 lisp/gnus/gnus-diary.el                            |    2 +-
 lisp/gnus/gnus-dired.el                            |    2 +-
 lisp/gnus/gnus-draft.el                            |    2 +-
 lisp/gnus/gnus-dup.el                              |    2 +-
 lisp/gnus/gnus-eform.el                            |    2 +-
 lisp/gnus/gnus-fun.el                              |    2 +-
 lisp/gnus/gnus-gravatar.el                         |    2 +-
 lisp/gnus/gnus-group.el                            |    2 +-
 lisp/gnus/gnus-html.el                             |    2 +-
 lisp/gnus/gnus-icalendar.el                        |    2 +-
 lisp/gnus/gnus-int.el                              |    2 +-
 lisp/gnus/gnus-kill.el                             |    2 +-
 lisp/gnus/gnus-logic.el                            |    2 +-
 lisp/gnus/gnus-mh.el                               |    2 +-
 lisp/gnus/gnus-ml.el                               |    2 +-
 lisp/gnus/gnus-mlspl.el                            |    2 +-
 lisp/gnus/gnus-msg.el                              |   11 +-
 lisp/gnus/gnus-notifications.el                    |    2 +-
 lisp/gnus/gnus-picon.el                            |    2 +-
 lisp/gnus/gnus-range.el                            |    2 +-
 lisp/gnus/gnus-registry.el                         |    2 +-
 lisp/gnus/gnus-rfc1843.el                          |    2 +-
 lisp/gnus/gnus-salt.el                             |    6 +-
 lisp/gnus/gnus-score.el                            |    2 +-
 lisp/gnus/gnus-sieve.el                            |    2 +-
 lisp/gnus/gnus-spec.el                             |    2 +-
 lisp/gnus/gnus-srvr.el                             |    2 +-
 lisp/gnus/gnus-start.el                            |   11 +-
 lisp/gnus/gnus-sum.el                              |   32 +-
 lisp/gnus/gnus-topic.el                            |    4 +-
 lisp/gnus/gnus-undo.el                             |    2 +-
 lisp/gnus/gnus-util.el                             |    2 +-
 lisp/gnus/gnus-uu.el                               |    2 +-
 lisp/gnus/gnus-vm.el                               |    2 +-
 lisp/gnus/gnus-win.el                              |    2 +-
 lisp/gnus/gnus.el                                  |    6 +-
 lisp/gnus/gssapi.el                                |    2 +-
 lisp/gnus/legacy-gnus-agent.el                     |    2 +-
 lisp/gnus/mail-source.el                           |    4 +-
 lisp/gnus/message.el                               |  136 +-
 lisp/gnus/mm-archive.el                            |    2 +-
 lisp/gnus/mm-bodies.el                             |    2 +-
 lisp/gnus/mm-decode.el                             |    8 +-
 lisp/gnus/mm-encode.el                             |    2 +-
 lisp/gnus/mm-extern.el                             |    2 +-
 lisp/gnus/mm-partial.el                            |    2 +-
 lisp/gnus/mm-url.el                                |    2 +-
 lisp/gnus/mm-util.el                               |    2 +-
 lisp/gnus/mm-uu.el                                 |    3 +-
 lisp/gnus/mm-view.el                               |    2 +-
 lisp/gnus/mml-sec.el                               |    2 +-
 lisp/gnus/mml-smime.el                             |    2 +-
 lisp/gnus/mml.el                                   |  100 +-
 lisp/gnus/mml1991.el                               |    2 +-
 lisp/gnus/mml2015.el                               |    2 +-
 lisp/gnus/nnagent.el                               |    2 +-
 lisp/gnus/nnbabyl.el                               |    2 +-
 lisp/gnus/nndiary.el                               |    2 +-
 lisp/gnus/nndir.el                                 |    2 +-
 lisp/gnus/nndoc.el                                 |   26 +-
 lisp/gnus/nndraft.el                               |    2 +-
 lisp/gnus/nneething.el                             |    2 +-
 lisp/gnus/nnfolder.el                              |    2 +-
 lisp/gnus/nngateway.el                             |    2 +-
 lisp/gnus/nnheader.el                              |    2 +-
 lisp/gnus/nnimap.el                                |    8 +-
 lisp/gnus/nnir.el                                  |   88 +-
 lisp/gnus/nnmail.el                                |    2 +-
 lisp/gnus/nnmairix.el                              |    2 +-
 lisp/gnus/nnmbox.el                                |    2 +-
 lisp/gnus/nnmh.el                                  |    2 +-
 lisp/gnus/nnml.el                                  |    2 +-
 lisp/gnus/nnoo.el                                  |    2 +-
 lisp/gnus/nnregistry.el                            |    2 +-
 lisp/gnus/nnrss.el                                 |    2 +-
 lisp/gnus/nnspool.el                               |    2 +-
 lisp/gnus/nntp.el                                  |    2 +-
 lisp/gnus/nnvirtual.el                             |    2 +-
 lisp/gnus/nnweb.el                                 |    2 +-
 lisp/gnus/score-mode.el                            |    2 +-
 lisp/gnus/smiley.el                                |    2 +-
 lisp/gnus/smime.el                                 |   32 +-
 lisp/gnus/spam-report.el                           |    2 +-
 lisp/gnus/spam-stat.el                             |    2 +-
 lisp/gnus/spam-wash.el                             |    2 +-
 lisp/gnus/spam.el                                  |    2 +-
 lisp/help-at-pt.el                                 |    2 +-
 lisp/help-fns.el                                   |   44 +-
 lisp/help-macro.el                                 |    2 +-
 lisp/help-mode.el                                  |    4 +-
 lisp/help.el                                       |    2 +-
 lisp/hex-util.el                                   |    2 +-
 lisp/hexl.el                                       |    2 +-
 lisp/hfy-cmap.el                                   |    2 +-
 lisp/hi-lock.el                                    |    2 +-
 lisp/hilit-chg.el                                  |    2 +-
 lisp/hippie-exp.el                                 |    2 +-
 lisp/hl-line.el                                    |    5 +-
 lisp/htmlfontify.el                                |   14 +-
 lisp/ibuf-ext.el                                   |    2 +-
 lisp/ibuf-macs.el                                  |    2 +-
 lisp/ibuffer.el                                    |    2 +-
 lisp/icomplete.el                                  |    2 +-
 lisp/ido.el                                        |    2 +-
 lisp/ielm.el                                       |    2 +-
 lisp/iimage.el                                     |    2 +-
 lisp/image-dired.el                                |   10 +-
 lisp/image-file.el                                 |    2 +-
 lisp/image-mode.el                                 |    2 +-
 lisp/image.el                                      |    2 +-
 lisp/image/compface.el                             |    2 +-
 lisp/image/gravatar.el                             |    2 +-
 lisp/imenu.el                                      |    2 +-
 lisp/indent.el                                     |   34 +-
 lisp/info-look.el                                  |   31 +-
 lisp/info-xref.el                                  |    2 +-
 lisp/info.el                                       |    2 +-
 lisp/informat.el                                   |    2 +-
 lisp/international/ccl.el                          |    2 +-
 lisp/international/characters.el                   |    2 +-
 lisp/international/fontset.el                      |    2 +-
 lisp/international/isearch-x.el                    |    2 +-
 lisp/international/iso-ascii.el                    |    2 +-
 lisp/international/iso-cvt.el                      |    2 +-
 lisp/international/iso-transl.el                   |    2 +-
 lisp/international/ja-dic-cnv.el                   |    2 +-
 lisp/international/kinsoku.el                      |    2 +-
 lisp/international/kkc.el                          |    2 +-
 lisp/international/latexenc.el                     |    2 +-
 lisp/international/latin1-disp.el                  |    2 +-
 lisp/international/mule-cmds.el                    |    2 +-
 lisp/international/mule-conf.el                    |    2 +-
 lisp/international/mule-diag.el                    |    2 +-
 lisp/international/mule-util.el                    |    2 +-
 lisp/international/mule.el                         |   15 +-
 lisp/international/ogonek.el                       |    2 +-
 lisp/international/quail.el                        |    2 +-
 lisp/international/rfc1843.el                      |    2 +-
 lisp/international/titdic-cnv.el                   |    2 +-
 lisp/international/ucs-normalize.el                |    2 +-
 lisp/international/utf-7.el                        |    2 +-
 lisp/international/utf7.el                         |    2 +-
 lisp/isearch.el                                    |    5 +-
 lisp/isearchb.el                                   |    2 +-
 lisp/jit-lock.el                                   |    2 +-
 lisp/jka-cmpr-hook.el                              |    2 +-
 lisp/jka-compr.el                                  |    2 +-
 lisp/json.el                                       |   17 +-
 lisp/kermit.el                                     |    2 +-
 lisp/kmacro.el                                     |    2 +-
 lisp/language/china-util.el                        |    2 +-
 lisp/language/chinese.el                           |    2 +-
 lisp/language/cyril-util.el                        |    2 +-
 lisp/language/cyrillic.el                          |    2 +-
 lisp/language/czech.el                             |    2 +-
 lisp/language/english.el                           |    2 +-
 lisp/language/ethio-util.el                        |    2 +-
 lisp/language/ethiopic.el                          |    2 +-
 lisp/language/european.el                          |    2 +-
 lisp/language/georgian.el                          |    2 +-
 lisp/language/greek.el                             |    2 +-
 lisp/language/hanja-util.el                        |    2 +-
 lisp/language/hebrew.el                            |    2 +-
 lisp/language/ind-util.el                          |    2 +-
 lisp/language/indian.el                            |    2 +-
 lisp/language/japan-util.el                        |    2 +-
 lisp/language/japanese.el                          |    2 +-
 lisp/language/korea-util.el                        |    2 +-
 lisp/language/korean.el                            |    2 +-
 lisp/language/lao-util.el                          |    2 +-
 lisp/language/lao.el                               |    2 +-
 lisp/language/romanian.el                          |    2 +-
 lisp/language/slovak.el                            |    2 +-
 lisp/language/tai-viet.el                          |    2 +-
 lisp/language/thai-util.el                         |    2 +-
 lisp/language/thai.el                              |    2 +-
 lisp/language/tibet-util.el                        |    2 +-
 lisp/language/tibetan.el                           |    2 +-
 lisp/language/utf-8-lang.el                        |    2 +-
 lisp/language/viet-util.el                         |    2 +-
 lisp/language/vietnamese.el                        |    2 +-
 lisp/ldefs-boot-auto.el                            |   34 +
 lisp/ldefs-boot.el                                 |38062 --------------------
 lisp/leim/quail/arabic.el                          |    2 +-
 lisp/leim/quail/croatian.el                        |    2 +-
 lisp/leim/quail/cyril-jis.el                       |    2 +-
 lisp/leim/quail/cyrillic.el                        |    2 +-
 lisp/leim/quail/czech.el                           |    2 +-
 lisp/leim/quail/georgian.el                        |    2 +-
 lisp/leim/quail/greek.el                           |    2 +-
 lisp/leim/quail/hangul.el                          |    2 +-
 lisp/leim/quail/hanja.el                           |    2 +-
 lisp/leim/quail/hanja3.el                          |    2 +-
 lisp/leim/quail/indian.el                          |    2 +-
 lisp/leim/quail/ipa-praat.el                       |    2 +-
 lisp/leim/quail/ipa.el                             |    2 +-
 lisp/leim/quail/japanese.el                        |    2 +-
 lisp/leim/quail/latin-alt.el                       |    2 +-
 lisp/leim/quail/latin-ltx.el                       |    2 +-
 lisp/leim/quail/latin-post.el                      |    2 +-
 lisp/leim/quail/latin-pre.el                       |    2 +-
 lisp/leim/quail/lrt.el                             |    2 +-
 lisp/leim/quail/persian.el                         |    2 +-
 lisp/leim/quail/programmer-dvorak.el               |    2 +-
 lisp/leim/quail/py-punct.el                        |    2 +-
 lisp/leim/quail/rfc1345.el                         |    2 +-
 lisp/leim/quail/sgml-input.el                      |    2 +-
 lisp/leim/quail/sisheng.el                         |    2 +-
 lisp/leim/quail/slovak.el                          |    2 +-
 lisp/leim/quail/symbol-ksc.el                      |    2 +-
 lisp/leim/quail/tamil-dvorak.el                    |    2 +-
 lisp/leim/quail/tibetan.el                         |    2 +-
 lisp/leim/quail/uni-input.el                       |    2 +-
 lisp/leim/quail/vntelex.el                         |    2 +-
 lisp/leim/quail/vnvni.el                           |    2 +-
 lisp/leim/quail/welsh.el                           |    2 +-
 lisp/linum.el                                      |    2 +-
 lisp/loadhist.el                                   |    2 +-
 lisp/loadup.el                                     |    2 +-
 lisp/locate.el                                     |    2 +-
 lisp/lpr.el                                        |    2 +-
 lisp/ls-lisp.el                                    |    2 +-
 lisp/macros.el                                     |    2 +-
 lisp/mail/binhex.el                                |    2 +-
 lisp/mail/blessmail.el                             |    2 +-
 lisp/mail/emacsbug.el                              |    2 +-
 lisp/mail/feedmail.el                              |    2 +-
 lisp/mail/flow-fill.el                             |    2 +-
 lisp/mail/footnote.el                              |    2 +-
 lisp/mail/hashcash.el                              |    2 +-
 lisp/mail/ietf-drums.el                            |   28 +-
 lisp/mail/mail-extr.el                             |    2 +-
 lisp/mail/mail-hist.el                             |    2 +-
 lisp/mail/mail-parse.el                            |    3 +-
 lisp/mail/mail-prsvr.el                            |    2 +-
 lisp/mail/mail-utils.el                            |    2 +-
 lisp/mail/mailabbrev.el                            |    2 +-
 lisp/mail/mailalias.el                             |    2 +-
 lisp/mail/mailclient.el                            |    2 +-
 lisp/mail/mailheader.el                            |    2 +-
 lisp/mail/metamail.el                              |    2 +-
 lisp/mail/mspools.el                               |    2 +-
 lisp/mail/qp.el                                    |    2 +-
 lisp/mail/reporter.el                              |    2 +-
 lisp/mail/rfc2045.el                               |    2 +-
 lisp/mail/rfc2047.el                               |   14 +-
 lisp/mail/rfc2231.el                               |    2 +-
 lisp/mail/rfc2368.el                               |    2 +-
 lisp/mail/rfc822.el                                |    2 +-
 lisp/mail/rmail-spam-filter.el                     |    2 +-
 lisp/mail/rmail.el                                 |    2 +-
 lisp/mail/rmailedit.el                             |    2 +-
 lisp/mail/rmailkwd.el                              |    2 +-
 lisp/mail/rmailmm.el                               |    2 +-
 lisp/mail/rmailmsc.el                              |    2 +-
 lisp/mail/rmailout.el                              |    2 +-
 lisp/mail/rmailsort.el                             |    2 +-
 lisp/mail/rmailsum.el                              |    2 +-
 lisp/mail/sendmail.el                              |    5 +-
 lisp/mail/smtpmail.el                              |    2 +-
 lisp/mail/supercite.el                             |    2 +-
 lisp/mail/uce.el                                   |    2 +-
 lisp/mail/undigest.el                              |   18 +-
 lisp/mail/unrmail.el                               |    2 +-
 lisp/mail/uudecode.el                              |    2 +-
 lisp/mail/yenc.el                                  |    2 +-
 lisp/makesum.el                                    |    2 +-
 lisp/man.el                                        |    2 +-
 lisp/master.el                                     |    2 +-
 lisp/mb-depth.el                                   |   20 +-
 lisp/md4.el                                        |    4 +-
 lisp/menu-bar.el                                   |   16 +-
 lisp/mh-e/ChangeLog.1                              |    2 +-
 lisp/mh-e/ChangeLog.2                              |    2 +-
 lisp/mh-e/mh-acros.el                              |    2 +-
 lisp/mh-e/mh-alias.el                              |    2 +-
 lisp/mh-e/mh-buffers.el                            |    2 +-
 lisp/mh-e/mh-comp.el                               |    2 +-
 lisp/mh-e/mh-compat.el                             |   12 +-
 lisp/mh-e/mh-e.el                                  |    4 +-
 lisp/mh-e/mh-folder.el                             |    2 +-
 lisp/mh-e/mh-funcs.el                              |    2 +-
 lisp/mh-e/mh-gnus.el                               |    2 +-
 lisp/mh-e/mh-identity.el                           |    2 +-
 lisp/mh-e/mh-inc.el                                |    2 +-
 lisp/mh-e/mh-junk.el                               |    2 +-
 lisp/mh-e/mh-letter.el                             |    2 +-
 lisp/mh-e/mh-limit.el                              |    2 +-
 lisp/mh-e/mh-mime.el                               |    9 +-
 lisp/mh-e/mh-print.el                              |    2 +-
 lisp/mh-e/mh-scan.el                               |    2 +-
 lisp/mh-e/mh-search.el                             |    2 +-
 lisp/mh-e/mh-seq.el                                |    2 +-
 lisp/mh-e/mh-show.el                               |    2 +-
 lisp/mh-e/mh-speed.el                              |    2 +-
 lisp/mh-e/mh-thread.el                             |    2 +-
 lisp/mh-e/mh-tool-bar.el                           |    2 +-
 lisp/mh-e/mh-utils.el                              |    2 +-
 lisp/mh-e/mh-xface.el                              |    2 +-
 lisp/midnight.el                                   |    2 +-
 lisp/minibuf-eldef.el                              |    2 +-
 lisp/minibuffer.el                                 |    2 +-
 lisp/misc.el                                       |    2 +-
 lisp/misearch.el                                   |    2 +-
 lisp/mouse-copy.el                                 |    2 +-
 lisp/mouse-drag.el                                 |    2 +-
 lisp/mouse.el                                      |    2 +-
 lisp/mpc.el                                        |    2 +-
 lisp/msb.el                                        |    2 +-
 lisp/mwheel.el                                     |    2 +-
 lisp/net/ange-ftp.el                               |    2 +-
 lisp/net/browse-url.el                             |    2 +-
 lisp/net/dbus.el                                   |    2 +-
 lisp/net/dig.el                                    |    2 +-
 lisp/net/dns.el                                    |    2 +-
 lisp/net/eudc-bob.el                               |    2 +-
 lisp/net/eudc-export.el                            |    2 +-
 lisp/net/eudc-hotlist.el                           |    2 +-
 lisp/net/eudc-vars.el                              |    2 +-
 lisp/net/eudc.el                                   |    2 +-
 lisp/net/eudcb-bbdb.el                             |    2 +-
 lisp/net/eudcb-ldap.el                             |    2 +-
 lisp/net/eudcb-mab.el                              |    2 +-
 lisp/net/eww.el                                    |   73 +-
 lisp/net/gnutls.el                                 |    2 +-
 lisp/net/goto-addr.el                              |    2 +-
 lisp/net/hmac-def.el                               |    2 +-
 lisp/net/hmac-md5.el                               |    2 +-
 lisp/net/html2text.el                              |    2 +-
 lisp/net/imap.el                                   |    2 +-
 lisp/net/ldap.el                                   |   11 +-
 lisp/net/mailcap.el                                |    2 +-
 lisp/net/mairix.el                                 |    2 +-
 lisp/net/net-utils.el                              |    2 +-
 lisp/net/netrc.el                                  |    2 +-
 lisp/net/network-stream.el                         |    6 +-
 lisp/net/newst-backend.el                          |   17 +-
 lisp/net/newst-plainview.el                        |    2 +-
 lisp/net/newst-reader.el                           |    2 +-
 lisp/net/newst-ticker.el                           |    2 +-
 lisp/net/newst-treeview.el                         |    2 +-
 lisp/net/newsticker.el                             |    2 +-
 lisp/net/nsm.el                                    |    2 +-
 lisp/net/ntlm.el                                   |    2 +-
 lisp/net/pinentry.el                               |    2 +-
 lisp/net/pop3.el                                   |    2 +-
 lisp/net/puny.el                                   |    2 +-
 lisp/net/quickurl.el                               |    2 +-
 lisp/net/rcirc.el                                  |    2 +-
 lisp/net/rfc2104.el                                |    2 +-
 lisp/net/rlogin.el                                 |    2 +-
 lisp/net/sasl-cram.el                              |    2 +-
 lisp/net/sasl-digest.el                            |    2 +-
 lisp/net/sasl-ntlm.el                              |    2 +-
 lisp/net/sasl-scram-rfc.el                         |    2 +-
 lisp/net/sasl.el                                   |    2 +-
 lisp/net/secrets.el                                |    2 +-
 lisp/net/shr-color.el                              |    2 +-
 lisp/net/shr.el                                    |   34 +-
 lisp/net/sieve-manage.el                           |    2 +-
 lisp/net/sieve-mode.el                             |    2 +-
 lisp/net/sieve.el                                  |    2 +-
 lisp/net/snmp-mode.el                              |    2 +-
 lisp/net/soap-client.el                            |    2 +-
 lisp/net/soap-inspect.el                           |    2 +-
 lisp/net/socks.el                                  |    2 +-
 lisp/net/starttls.el                               |    2 +-
 lisp/net/telnet.el                                 |    2 +-
 lisp/net/tls.el                                    |    2 +-
 lisp/net/tramp-adb.el                              |    2 +-
 lisp/net/tramp-cache.el                            |    2 +-
 lisp/net/tramp-cmds.el                             |    2 +-
 lisp/net/tramp-compat.el                           |   49 +-
 lisp/net/tramp-ftp.el                              |    2 +-
 lisp/net/tramp-gvfs.el                             |    2 +-
 lisp/net/tramp-sh.el                               |   31 +-
 lisp/net/tramp-smb.el                              |    2 +-
 lisp/net/tramp-uu.el                               |    2 +-
 lisp/net/tramp.el                                  |   12 +-
 lisp/net/trampver.el                               |    8 +-
 lisp/net/webjump.el                                |    2 +-
 lisp/net/zeroconf.el                               |   54 +-
 lisp/newcomment.el                                 |    2 +-
 lisp/notifications.el                              |    2 +-
 lisp/novice.el                                     |    2 +-
 lisp/nxml/nxml-enc.el                              |    2 +-
 lisp/nxml/nxml-maint.el                            |    2 +-
 lisp/nxml/nxml-mode.el                             |    2 +-
 lisp/nxml/nxml-ns.el                               |    2 +-
 lisp/nxml/nxml-outln.el                            |    2 +-
 lisp/nxml/nxml-parse.el                            |    2 +-
 lisp/nxml/nxml-rap.el                              |    2 +-
 lisp/nxml/nxml-util.el                             |    2 +-
 lisp/nxml/rng-cmpct.el                             |    2 +-
 lisp/nxml/rng-dt.el                                |    2 +-
 lisp/nxml/rng-loc.el                               |    2 +-
 lisp/nxml/rng-maint.el                             |    2 +-
 lisp/nxml/rng-match.el                             |    2 +-
 lisp/nxml/rng-nxml.el                              |    2 +-
 lisp/nxml/rng-parse.el                             |    2 +-
 lisp/nxml/rng-pttrn.el                             |    2 +-
 lisp/nxml/rng-uri.el                               |    2 +-
 lisp/nxml/rng-util.el                              |    2 +-
 lisp/nxml/rng-valid.el                             |    2 +-
 lisp/nxml/rng-xsd.el                               |    2 +-
 lisp/nxml/xmltok.el                                |    2 +-
 lisp/nxml/xsd-regexp.el                            |    2 +-
 lisp/obarray.el                                    |    2 +-
 lisp/obsolete/abbrevlist.el                        |    2 +-
 lisp/obsolete/assoc.el                             |    2 +-
 lisp/obsolete/bruce.el                             |    2 +-
 lisp/obsolete/cc-compat.el                         |    2 +-
 lisp/obsolete/cl-compat.el                         |    2 +-
 lisp/obsolete/complete.el                          |    2 +-
 lisp/obsolete/crisp.el                             |    2 +-
 lisp/obsolete/cust-print.el                        |    2 +-
 lisp/obsolete/erc-hecomplete.el                    |    2 +-
 lisp/obsolete/eudcb-ph.el                          |    2 +-
 lisp/obsolete/fast-lock.el                         |    2 +-
 lisp/obsolete/gs.el                                |    2 +-
 lisp/obsolete/gulp.el                              |    2 +-
 lisp/obsolete/iswitchb.el                          |    2 +-
 lisp/obsolete/landmark.el                          |    2 +-
 lisp/obsolete/lazy-lock.el                         |    2 +-
 lisp/obsolete/ledit.el                             |    2 +-
 lisp/obsolete/levents.el                           |    2 +-
 lisp/obsolete/lmenu.el                             |    2 +-
 lisp/obsolete/longlines.el                         |    2 +-
 lisp/obsolete/lucid.el                             |    2 +-
 lisp/obsolete/messcompat.el                        |    2 +-
 lisp/obsolete/mouse-sel.el                         |    2 +-
 lisp/obsolete/old-emacs-lock.el                    |    2 +-
 lisp/obsolete/old-whitespace.el                    |    2 +-
 lisp/obsolete/options.el                           |    2 +-
 lisp/obsolete/otodo-mode.el                        |    2 +-
 lisp/obsolete/pc-mode.el                           |    2 +-
 lisp/obsolete/pc-select.el                         |    2 +-
 lisp/obsolete/pgg-def.el                           |    2 +-
 lisp/obsolete/pgg-gpg.el                           |    2 +-
 lisp/obsolete/pgg-parse.el                         |    2 +-
 lisp/obsolete/pgg-pgp.el                           |    2 +-
 lisp/obsolete/pgg-pgp5.el                          |    2 +-
 lisp/obsolete/pgg.el                               |    2 +-
 lisp/obsolete/rcompile.el                          |    2 +-
 lisp/obsolete/s-region.el                          |    2 +-
 lisp/obsolete/sregex.el                            |    2 +-
 lisp/obsolete/sup-mouse.el                         |    2 +-
 lisp/obsolete/terminal.el                          |    2 +-
 lisp/obsolete/tpu-edt.el                           |    2 +-
 lisp/obsolete/tpu-extras.el                        |    2 +-
 lisp/obsolete/tpu-mapper.el                        |    2 +-
 lisp/obsolete/vc-arch.el                           |    2 +-
 lisp/obsolete/vip.el                               |    2 +-
 lisp/obsolete/ws-mode.el                           |    2 +-
 lisp/obsolete/xesam.el                             |    2 +-
 lisp/obsolete/yow.el                               |    2 +-
 lisp/org/ChangeLog.1                               |    2 +-
 lisp/org/ob-C.el                                   |    2 +-
 lisp/org/ob-R.el                                   |    2 +-
 lisp/org/ob-asymptote.el                           |    2 +-
 lisp/org/ob-awk.el                                 |    2 +-
 lisp/org/ob-calc.el                                |    2 +-
 lisp/org/ob-clojure.el                             |    2 +-
 lisp/org/ob-comint.el                              |    2 +-
 lisp/org/ob-core.el                                |    2 +-
 lisp/org/ob-css.el                                 |    2 +-
 lisp/org/ob-ditaa.el                               |    2 +-
 lisp/org/ob-dot.el                                 |    2 +-
 lisp/org/ob-emacs-lisp.el                          |    2 +-
 lisp/org/ob-eval.el                                |    2 +-
 lisp/org/ob-exp.el                                 |    2 +-
 lisp/org/ob-fortran.el                             |    2 +-
 lisp/org/ob-gnuplot.el                             |    2 +-
 lisp/org/ob-haskell.el                             |    2 +-
 lisp/org/ob-io.el                                  |    2 +-
 lisp/org/ob-java.el                                |    2 +-
 lisp/org/ob-js.el                                  |    2 +-
 lisp/org/ob-keys.el                                |    2 +-
 lisp/org/ob-latex.el                               |    2 +-
 lisp/org/ob-ledger.el                              |    2 +-
 lisp/org/ob-lilypond.el                            |    2 +-
 lisp/org/ob-lisp.el                                |    2 +-
 lisp/org/ob-lob.el                                 |    2 +-
 lisp/org/ob-makefile.el                            |    2 +-
 lisp/org/ob-matlab.el                              |    2 +-
 lisp/org/ob-maxima.el                              |    2 +-
 lisp/org/ob-mscgen.el                              |    2 +-
 lisp/org/ob-ocaml.el                               |    2 +-
 lisp/org/ob-octave.el                              |    2 +-
 lisp/org/ob-org.el                                 |    2 +-
 lisp/org/ob-perl.el                                |    2 +-
 lisp/org/ob-picolisp.el                            |    2 +-
 lisp/org/ob-plantuml.el                            |    2 +-
 lisp/org/ob-python.el                              |    2 +-
 lisp/org/ob-ref.el                                 |    2 +-
 lisp/org/ob-ruby.el                                |    2 +-
 lisp/org/ob-sass.el                                |    2 +-
 lisp/org/ob-scala.el                               |    2 +-
 lisp/org/ob-scheme.el                              |    2 +-
 lisp/org/ob-screen.el                              |    2 +-
 lisp/org/ob-sh.el                                  |    2 +-
 lisp/org/ob-shen.el                                |    2 +-
 lisp/org/ob-sql.el                                 |    2 +-
 lisp/org/ob-sqlite.el                              |    2 +-
 lisp/org/ob-table.el                               |    2 +-
 lisp/org/ob-tangle.el                              |    2 +-
 lisp/org/ob.el                                     |    2 +-
 lisp/org/org-agenda.el                             |    4 +-
 lisp/org/org-archive.el                            |    7 +-
 lisp/org/org-attach.el                             |    2 +-
 lisp/org/org-bbdb.el                               |    2 +-
 lisp/org/org-bibtex.el                             |    2 +-
 lisp/org/org-capture.el                            |    2 +-
 lisp/org/org-clock.el                              |    2 +-
 lisp/org/org-colview.el                            |    2 +-
 lisp/org/org-compat.el                             |    2 +-
 lisp/org/org-crypt.el                              |    2 +-
 lisp/org/org-ctags.el                              |    2 +-
 lisp/org/org-datetree.el                           |    2 +-
 lisp/org/org-docview.el                            |    2 +-
 lisp/org/org-element.el                            |    2 +-
 lisp/org/org-entities.el                           |    2 +-
 lisp/org/org-eshell.el                             |    2 +-
 lisp/org/org-faces.el                              |    2 +-
 lisp/org/org-feed.el                               |    2 +-
 lisp/org/org-footnote.el                           |    2 +-
 lisp/org/org-gnus.el                               |    2 +-
 lisp/org/org-habit.el                              |    2 +-
 lisp/org/org-id.el                                 |    2 +-
 lisp/org/org-indent.el                             |    2 +-
 lisp/org/org-info.el                               |    2 +-
 lisp/org/org-inlinetask.el                         |    2 +-
 lisp/org/org-irc.el                                |    2 +-
 lisp/org/org-list.el                               |    2 +-
 lisp/org/org-macro.el                              |    2 +-
 lisp/org/org-macs.el                               |    2 +-
 lisp/org/org-mhe.el                                |    2 +-
 lisp/org/org-mobile.el                             |    2 +-
 lisp/org/org-mouse.el                              |    2 +-
 lisp/org/org-pcomplete.el                          |    2 +-
 lisp/org/org-plot.el                               |    2 +-
 lisp/org/org-protocol.el                           |    2 +-
 lisp/org/org-rmail.el                              |    2 +-
 lisp/org/org-src.el                                |    2 +-
 lisp/org/org-table.el                              |    2 +-
 lisp/org/org-timer.el                              |    2 +-
 lisp/org/org-w3m.el                                |    2 +-
 lisp/org/org.el                                    |    2 +-
 lisp/org/ox-ascii.el                               |    2 +-
 lisp/org/ox-beamer.el                              |    2 +-
 lisp/org/ox-html.el                                |    2 +-
 lisp/org/ox-icalendar.el                           |    2 +-
 lisp/org/ox-latex.el                               |    2 +-
 lisp/org/ox-man.el                                 |    2 +-
 lisp/org/ox-md.el                                  |    2 +-
 lisp/org/ox-odt.el                                 |    2 +-
 lisp/org/ox-org.el                                 |    2 +-
 lisp/org/ox-publish.el                             |   23 +-
 lisp/org/ox-texinfo.el                             |    2 +-
 lisp/org/ox.el                                     |    2 +-
 lisp/outline.el                                    |    2 +-
 lisp/paren.el                                      |    2 +-
 lisp/password-cache.el                             |    2 +-
 lisp/pcmpl-cvs.el                                  |    2 +-
 lisp/pcmpl-gnu.el                                  |    2 +-
 lisp/pcmpl-linux.el                                |    2 +-
 lisp/pcmpl-rpm.el                                  |    2 +-
 lisp/pcmpl-unix.el                                 |    2 +-
 lisp/pcmpl-x.el                                    |    2 +-
 lisp/pcomplete.el                                  |    2 +-
 lisp/play/5x5.el                                   |    2 +-
 lisp/play/animate.el                               |    2 +-
 lisp/play/blackbox.el                              |    2 +-
 lisp/play/bubbles.el                               |    2 +-
 lisp/play/cookie1.el                               |    2 +-
 lisp/play/decipher.el                              |    2 +-
 lisp/play/dissociate.el                            |    2 +-
 lisp/play/doctor.el                                |    2 +-
 lisp/play/dunnet.el                                |  121 +-
 lisp/play/fortune.el                               |    2 +-
 lisp/play/gamegrid.el                              |    2 +-
 lisp/play/gametree.el                              |    2 +-
 lisp/play/gomoku.el                                |    2 +-
 lisp/play/handwrite.el                             |    2 +-
 lisp/play/life.el                                  |    2 +-
 lisp/play/morse.el                                 |    2 +-
 lisp/play/mpuz.el                                  |    2 +-
 lisp/play/pong.el                                  |    2 +-
 lisp/play/snake.el                                 |    2 +-
 lisp/play/solitaire.el                             |    2 +-
 lisp/play/spook.el                                 |    2 +-
 lisp/play/tetris.el                                |    2 +-
 lisp/play/zone.el                                  |    2 +-
 lisp/plstore.el                                    |    2 +-
 lisp/printing.el                                   |    2 +-
 lisp/proced.el                                     |    2 +-
 lisp/profiler.el                                   |    2 +-
 lisp/progmodes/ada-mode.el                         |    2 +-
 lisp/progmodes/ada-prj.el                          |   47 +-
 lisp/progmodes/ada-stmt.el                         |    2 +-
 lisp/progmodes/ada-xref.el                         |   94 +-
 lisp/progmodes/antlr-mode.el                       |    2 +-
 lisp/progmodes/asm-mode.el                         |    2 +-
 lisp/progmodes/autoconf.el                         |    2 +-
 lisp/progmodes/bat-mode.el                         |    2 +-
 lisp/progmodes/bug-reference.el                    |    2 +-
 lisp/progmodes/cc-align.el                         |    2 +-
 lisp/progmodes/cc-awk.el                           |    2 +-
 lisp/progmodes/cc-bytecomp.el                      |    2 +-
 lisp/progmodes/cc-cmds.el                          |    2 +-
 lisp/progmodes/cc-defs.el                          |    4 +-
 lisp/progmodes/cc-engine.el                        |  227 +-
 lisp/progmodes/cc-fonts.el                         |   44 +-
 lisp/progmodes/cc-guess.el                         |    2 +-
 lisp/progmodes/cc-langs.el                         |   45 +-
 lisp/progmodes/cc-menus.el                         |    2 +-
 lisp/progmodes/cc-mode.el                          |    8 +-
 lisp/progmodes/cc-styles.el                        |    2 +-
 lisp/progmodes/cc-vars.el                          |    2 +-
 lisp/progmodes/cfengine.el                         |    2 +-
 lisp/progmodes/cmacexp.el                          |    2 +-
 lisp/progmodes/compile.el                          |    2 +-
 lisp/progmodes/cperl-mode.el                       |    2 +-
 lisp/progmodes/cpp.el                              |    2 +-
 lisp/progmodes/cwarn.el                            |    2 +-
 lisp/progmodes/dcl-mode.el                         |    2 +-
 lisp/progmodes/ebnf-abn.el                         |    2 +-
 lisp/progmodes/ebnf-bnf.el                         |    2 +-
 lisp/progmodes/ebnf-dtd.el                         |    2 +-
 lisp/progmodes/ebnf-ebx.el                         |    2 +-
 lisp/progmodes/ebnf-iso.el                         |    2 +-
 lisp/progmodes/ebnf-otz.el                         |    2 +-
 lisp/progmodes/ebnf-yac.el                         |    2 +-
 lisp/progmodes/ebnf2ps.el                          |    2 +-
 lisp/progmodes/ebrowse.el                          |    2 +-
 lisp/progmodes/elisp-mode.el                       |    2 +-
 lisp/progmodes/etags.el                            |    2 +-
 lisp/progmodes/executable.el                       |    2 +-
 lisp/progmodes/f90.el                              |    2 +-
 lisp/progmodes/flymake.el                          |    2 +-
 lisp/progmodes/fortran.el                          |    2 +-
 lisp/progmodes/gdb-mi.el                           |    2 +-
 lisp/progmodes/glasses.el                          |    2 +-
 lisp/progmodes/grep.el                             |    2 +-
 lisp/progmodes/gud.el                              |    2 +-
 lisp/progmodes/hideif.el                           |    2 +-
 lisp/progmodes/hideshow.el                         |    4 +-
 lisp/progmodes/icon.el                             |    2 +-
 lisp/progmodes/idlw-complete-structtag.el          |    2 +-
 lisp/progmodes/idlw-help.el                        |    2 +-
 lisp/progmodes/idlw-shell.el                       |    4 +-
 lisp/progmodes/idlw-toolbar.el                     |    2 +-
 lisp/progmodes/idlwave.el                          |    2 +-
 lisp/progmodes/inf-lisp.el                         |    2 +-
 lisp/progmodes/js.el                               |  127 +-
 lisp/progmodes/ld-script.el                        |    2 +-
 lisp/progmodes/m4-mode.el                          |    2 +-
 lisp/progmodes/make-mode.el                        |    2 +-
 lisp/progmodes/mantemp.el                          |    2 +-
 lisp/progmodes/meta-mode.el                        |    2 +-
 lisp/progmodes/mixal-mode.el                       |    2 +-
 lisp/progmodes/octave.el                           |    2 +-
 lisp/progmodes/opascal.el                          |    2 +-
 lisp/progmodes/pascal.el                           |    2 +-
 lisp/progmodes/perl-mode.el                        |    2 +-
 lisp/progmodes/prog-mode.el                        |    2 +-
 lisp/progmodes/project.el                          |    2 +-
 lisp/progmodes/prolog.el                           |    2 +-
 lisp/progmodes/ps-mode.el                          |    2 +-
 lisp/progmodes/python.el                           |   39 +-
 lisp/progmodes/ruby-mode.el                        |    2 +-
 lisp/progmodes/scheme.el                           |    2 +-
 lisp/progmodes/sh-script.el                        |    5 +-
 lisp/progmodes/simula.el                           |    2 +-
 lisp/progmodes/sql.el                              |   18 +-
 lisp/progmodes/subword.el                          |    2 +-
 lisp/progmodes/tcl.el                              |    2 +-
 lisp/progmodes/vera-mode.el                        |    2 +-
 lisp/progmodes/verilog-mode.el                     |   75 +-
 lisp/progmodes/vhdl-mode.el                        |   45 +-
 lisp/progmodes/which-func.el                       |    2 +-
 lisp/progmodes/xref.el                             |    6 +-
 lisp/progmodes/xscheme.el                          |    2 +-
 lisp/ps-bdf.el                                     |    2 +-
 lisp/ps-def.el                                     |    2 +-
 lisp/ps-mule.el                                    |    2 +-
 lisp/ps-print.el                                   |    2 +-
 lisp/ps-samp.el                                    |    2 +-
 lisp/recentf.el                                    |    4 +-
 lisp/rect.el                                       |    2 +-
 lisp/register.el                                   |    2 +-
 lisp/registry.el                                   |    2 +-
 lisp/repeat.el                                     |    2 +-
 lisp/replace.el                                    |    2 +-
 lisp/reposition.el                                 |    2 +-
 lisp/reveal.el                                     |    2 +-
 lisp/rfn-eshadow.el                                |    2 +-
 lisp/rot13.el                                      |    2 +-
 lisp/rtree.el                                      |    2 +-
 lisp/ruler-mode.el                                 |    2 +-
 lisp/savehist.el                                   |    2 +-
 lisp/saveplace.el                                  |    2 +-
 lisp/sb-image.el                                   |    2 +-
 lisp/scroll-all.el                                 |    2 +-
 lisp/scroll-bar.el                                 |    2 +-
 lisp/scroll-lock.el                                |    2 +-
 lisp/select.el                                     |    2 +-
 lisp/server.el                                     |    2 +-
 lisp/ses.el                                        |    2 +-
 lisp/shadowfile.el                                 |    2 +-
 lisp/shell.el                                      |   17 +-
 lisp/simple.el                                     |   11 +-
 lisp/skeleton.el                                   |   14 +-
 lisp/sort.el                                       |    2 +-
 lisp/soundex.el                                    |    2 +-
 lisp/speedbar.el                                   |    2 +-
 lisp/startup.el                                    |    2 +-
 lisp/strokes.el                                    |    2 +-
 lisp/subr.el                                       |  127 +-
 lisp/svg.el                                        |    2 +-
 lisp/t-mouse.el                                    |    2 +-
 lisp/tabify.el                                     |    2 +-
 lisp/talk.el                                       |    2 +-
 lisp/tar-mode.el                                   |   33 +-
 lisp/tempo.el                                      |    2 +-
 lisp/term.el                                       |   58 +-
 lisp/term/AT386.el                                 |    2 +-
 lisp/term/README                                   |    2 +-
 lisp/term/common-win.el                            |    2 +-
 lisp/term/internal.el                              |    2 +-
 lisp/term/iris-ansi.el                             |    2 +-
 lisp/term/news.el                                  |    2 +-
 lisp/term/ns-win.el                                |    2 +-
 lisp/term/pc-win.el                                |    4 +-
 lisp/term/rxvt.el                                  |    2 +-
 lisp/term/screen.el                                |    2 +-
 lisp/term/sun.el                                   |    2 +-
 lisp/term/tmux.el                                  |   25 +
 lisp/term/tty-colors.el                            |    2 +-
 lisp/term/tvi970.el                                |    2 +-
 lisp/term/vt100.el                                 |    2 +-
 lisp/term/w32-win.el                               |    2 +-
 lisp/term/w32console.el                            |    2 +-
 lisp/term/wyse50.el                                |    2 +-
 lisp/term/x-win.el                                 |    2 +-
 lisp/term/xterm.el                                 |    2 +-
 lisp/textmodes/artist.el                           |    2 +-
 lisp/textmodes/bib-mode.el                         |    2 +-
 lisp/textmodes/bibtex-style.el                     |    2 +-
 lisp/textmodes/bibtex.el                           |    2 +-
 lisp/textmodes/conf-mode.el                        |    2 +-
 lisp/textmodes/css-mode.el                         |  119 +-
 lisp/textmodes/dns-mode.el                         |    9 +-
 lisp/textmodes/enriched.el                         |    2 +-
 lisp/textmodes/fill.el                             |    2 +-
 lisp/textmodes/flyspell.el                         |    2 +-
 lisp/textmodes/ispell.el                           |   15 +-
 lisp/textmodes/makeinfo.el                         |    2 +-
 lisp/textmodes/nroff-mode.el                       |    2 +-
 lisp/textmodes/page-ext.el                         |    2 +-
 lisp/textmodes/page.el                             |    2 +-
 lisp/textmodes/paragraphs.el                       |    2 +-
 lisp/textmodes/picture.el                          |    2 +-
 lisp/textmodes/po.el                               |    2 +-
 lisp/textmodes/refbib.el                           |    2 +-
 lisp/textmodes/refer.el                            |    2 +-
 lisp/textmodes/refill.el                           |    2 +-
 lisp/textmodes/reftex-auc.el                       |    2 +-
 lisp/textmodes/reftex-cite.el                      |    2 +-
 lisp/textmodes/reftex-dcr.el                       |    2 +-
 lisp/textmodes/reftex-global.el                    |    2 +-
 lisp/textmodes/reftex-index.el                     |    2 +-
 lisp/textmodes/reftex-parse.el                     |    7 +-
 lisp/textmodes/reftex-ref.el                       |    2 +-
 lisp/textmodes/reftex-sel.el                       |    2 +-
 lisp/textmodes/reftex-toc.el                       |    2 +-
 lisp/textmodes/reftex-vars.el                      |   20 +-
 lisp/textmodes/reftex.el                           |    6 +-
 lisp/textmodes/remember.el                         |    2 +-
 lisp/textmodes/rst.el                              | 3157 +-
 lisp/textmodes/sgml-mode.el                        |    2 +-
 lisp/textmodes/table.el                            |    2 +-
 lisp/textmodes/tex-mode.el                         |   16 +-
 lisp/textmodes/texinfmt.el                         |    2 +-
 lisp/textmodes/texinfo.el                          |    2 +-
 lisp/textmodes/texnfo-upd.el                       |    2 +-
 lisp/textmodes/text-mode.el                        |    2 +-
 lisp/textmodes/tildify.el                          |    2 +-
 lisp/textmodes/two-column.el                       |    2 +-
 lisp/textmodes/underline.el                        |    2 +-
 lisp/thingatpt.el                                  |    2 +-
 lisp/thumbs.el                                     |    2 +-
 lisp/time-stamp.el                                 |    2 +-
 lisp/time.el                                       |    2 +-
 lisp/timezone.el                                   |    2 +-
 lisp/tmm.el                                        |    2 +-
 lisp/tool-bar.el                                   |    2 +-
 lisp/tooltip.el                                    |    2 +-
 lisp/tree-widget.el                                |    2 +-
 lisp/tutorial.el                                   |    2 +-
 lisp/type-break.el                                 |    2 +-
 lisp/uniquify.el                                   |    2 +-
 lisp/url/ChangeLog.1                               |    2 +-
 lisp/url/url-about.el                              |    2 +-
 lisp/url/url-auth.el                               |    2 +-
 lisp/url/url-cache.el                              |    2 +-
 lisp/url/url-cid.el                                |    2 +-
 lisp/url/url-cookie.el                             |    2 +-
 lisp/url/url-dav.el                                |    2 +-
 lisp/url/url-dired.el                              |    2 +-
 lisp/url/url-domsuf.el                             |    2 +-
 lisp/url/url-expand.el                             |    2 +-
 lisp/url/url-file.el                               |    2 +-
 lisp/url/url-ftp.el                                |    2 +-
 lisp/url/url-future.el                             |    2 +-
 lisp/url/url-gw.el                                 |    2 +-
 lisp/url/url-handlers.el                           |    2 +-
 lisp/url/url-history.el                            |    2 +-
 lisp/url/url-http.el                               |    2 +-
 lisp/url/url-imap.el                               |    2 +-
 lisp/url/url-irc.el                                |    2 +-
 lisp/url/url-ldap.el                               |    2 +-
 lisp/url/url-mailto.el                             |    2 +-
 lisp/url/url-methods.el                            |    2 +-
 lisp/url/url-misc.el                               |    2 +-
 lisp/url/url-news.el                               |    2 +-
 lisp/url/url-nfs.el                                |    2 +-
 lisp/url/url-ns.el                                 |    2 +-
 lisp/url/url-parse.el                              |    2 +-
 lisp/url/url-privacy.el                            |    2 +-
 lisp/url/url-proxy.el                              |    2 +-
 lisp/url/url-queue.el                              |    2 +-
 lisp/url/url-tramp.el                              |    2 +-
 lisp/url/url-util.el                               |    2 +-
 lisp/url/url-vars.el                               |    2 +-
 lisp/url/url.el                                    |    2 +-
 lisp/userlock.el                                   |    2 +-
 lisp/vc/add-log.el                                 |    2 +-
 lisp/vc/compare-w.el                               |    2 +-
 lisp/vc/cvs-status.el                              |    2 +-
 lisp/vc/diff-mode.el                               |  239 +-
 lisp/vc/diff.el                                    |    2 +-
 lisp/vc/ediff-diff.el                              |    2 +-
 lisp/vc/ediff-help.el                              |    2 +-
 lisp/vc/ediff-hook.el                              |    2 +-
 lisp/vc/ediff-init.el                              |   50 +-
 lisp/vc/ediff-merg.el                              |    2 +-
 lisp/vc/ediff-mult.el                              |    2 +-
 lisp/vc/ediff-ptch.el                              |   10 +-
 lisp/vc/ediff-util.el                              |    4 +-
 lisp/vc/ediff-vers.el                              |    2 +-
 lisp/vc/ediff-wind.el                              |    2 +-
 lisp/vc/ediff.el                                   |    2 +-
 lisp/vc/log-edit.el                                |    2 +-
 lisp/vc/log-view.el                                |    2 +-
 lisp/vc/pcvs-defs.el                               |    2 +-
 lisp/vc/pcvs-info.el                               |    2 +-
 lisp/vc/pcvs-parse.el                              |    2 +-
 lisp/vc/pcvs-util.el                               |    2 +-
 lisp/vc/pcvs.el                                    |    2 +-
 lisp/vc/smerge-mode.el                             |    2 +-
 lisp/vc/vc-annotate.el                             |    2 +-
 lisp/vc/vc-bzr.el                                  |    6 +-
 lisp/vc/vc-cvs.el                                  |    2 +-
 lisp/vc/vc-dav.el                                  |    2 +-
 lisp/vc/vc-dir.el                                  |    2 +-
 lisp/vc/vc-dispatcher.el                           |    2 +-
 lisp/vc/vc-filewise.el                             |    2 +-
 lisp/vc/vc-git.el                                  |    6 +-
 lisp/vc/vc-hg.el                                   |    4 +-
 lisp/vc/vc-hooks.el                                |    2 +-
 lisp/vc/vc-mtn.el                                  |    2 +-
 lisp/vc/vc-rcs.el                                  |    2 +-
 lisp/vc/vc-sccs.el                                 |    2 +-
 lisp/vc/vc-src.el                                  |    2 +-
 lisp/vc/vc-svn.el                                  |    2 +-
 lisp/vc/vc.el                                      |    2 +-
 lisp/vcursor.el                                    |    2 +-
 lisp/version.el                                    |    2 +-
 lisp/view.el                                       |    2 +-
 lisp/vt-control.el                                 |    2 +-
 lisp/vt100-led.el                                  |    2 +-
 lisp/w32-fns.el                                    |    2 +-
 lisp/w32-vars.el                                   |    2 +-
 lisp/wdired.el                                     |    2 +-
 lisp/whitespace.el                                 |  301 +-
 lisp/wid-browse.el                                 |    2 +-
 lisp/wid-edit.el                                   |    2 +-
 lisp/widget.el                                     |    2 +-
 lisp/windmove.el                                   |    2 +-
 lisp/window.el                                     |    2 +-
 lisp/winner.el                                     |    2 +-
 lisp/woman.el                                      |    2 +-
 lisp/x-dnd.el                                      |    2 +-
 lisp/xml.el                                        |    8 +-
 lisp/xt-mouse.el                                   |    2 +-
 lisp/xwidget.el                                    |    2 +-
 lwlib/ChangeLog.1                                  |    2 +-
 lwlib/Makefile.in                                  |    3 +-
 lwlib/deps.mk                                      |    2 +-
 lwlib/lwlib-Xaw.c                                  |    2 +-
 lwlib/lwlib-Xlw.c                                  |    2 +-
 lwlib/lwlib-Xm.c                                   |    2 +-
 lwlib/lwlib-int.h                                  |    2 +-
 lwlib/lwlib-utils.c                                |    2 +-
 lwlib/lwlib-widget.h                               |    2 +-
 lwlib/lwlib.c                                      |    2 +-
 lwlib/lwlib.h                                      |    2 +-
 lwlib/xlwmenu.c                                    |    2 +-
 lwlib/xlwmenu.h                                    |    2 +-
 lwlib/xlwmenuP.h                                   |    2 +-
 m4/00gnulib.m4                                     |    2 +-
 m4/absolute-header.m4                              |    2 +-
 m4/acl.m4                                          |    2 +-
 m4/alloca.m4                                       |    2 +-
 m4/byteswap.m4                                     |    2 +-
 m4/c-strtod.m4                                     |    2 +-
 m4/clock_time.m4                                   |    2 +-
 m4/close-stream.m4                                 |    2 +-
 m4/count-one-bits.m4                               |    2 +-
 m4/count-trailing-zeros.m4                         |    2 +-
 m4/dirent_h.m4                                     |    2 +-
 m4/dirfd.m4                                        |    2 +-
 m4/dup2.m4                                         |    2 +-
 m4/environ.m4                                      |    2 +-
 m4/errno_h.m4                                      |    2 +-
 m4/euidaccess.m4                                   |    2 +-
 m4/execinfo.m4                                     |    2 +-
 m4/extensions.m4                                   |    2 +-
 m4/extern-inline.m4                                |    2 +-
 m4/faccessat.m4                                    |    2 +-
 m4/fcntl.m4                                        |    2 +-
 m4/fcntl_h.m4                                      |    2 +-
 m4/fdatasync.m4                                    |    2 +-
 m4/fdopendir.m4                                    |    2 +-
 m4/filemode.m4                                     |    2 +-
 m4/flexmember.m4                                   |    2 +-
 m4/fpending.m4                                     |    2 +-
 m4/fstatat.m4                                      |    2 +-
 m4/fsync.m4                                        |    2 +-
 m4/getdtablesize.m4                                |    2 +-
 m4/getgroups.m4                                    |    2 +-
 m4/getloadavg.m4                                   |    2 +-
 m4/getopt.m4                                       |    2 +-
 m4/gettime.m4                                      |    2 +-
 m4/gettimeofday.m4                                 |    2 +-
 m4/gnulib-common.m4                                |    2 +-
 m4/gnulib-comp.m4                                  |    4 +-
 m4/gnulib-tool.m4                                  |    2 +-
 m4/group-member.m4                                 |    2 +-
 m4/include_next.m4                                 |    2 +-
 m4/inttypes.m4                                     |    2 +-
 m4/largefile.m4                                    |    2 +-
 m4/limits-h.m4                                     |    2 +-
 m4/longlong.m4                                     |    2 +-
 m4/lstat.m4                                        |    2 +-
 m4/manywarnings.m4                                 |    2 +-
 m4/md5.m4                                          |    2 +-
 m4/memrchr.m4                                      |    2 +-
 m4/mkostemp.m4                                     |    2 +-
 m4/mktime.m4                                       |    2 +-
 m4/multiarch.m4                                    |    2 +-
 m4/nocrash.m4                                      |    2 +-
 m4/off_t.m4                                        |    2 +-
 m4/pathmax.m4                                      |    2 +-
 m4/pipe2.m4                                        |    2 +-
 m4/pselect.m4                                      |    2 +-
 m4/pthread_sigmask.m4                              |    2 +-
 m4/putenv.m4                                       |    2 +-
 m4/readlink.m4                                     |    2 +-
 m4/readlinkat.m4                                   |    2 +-
 m4/secure_getenv.m4                                |    2 +-
 m4/setenv.m4                                       |    2 +-
 m4/sha1.m4                                         |    2 +-
 m4/sha256.m4                                       |    2 +-
 m4/sha512.m4                                       |    2 +-
 m4/sig2str.m4                                      |    2 +-
 m4/signal_h.m4                                     |    2 +-
 m4/socklen.m4                                      |    2 +-
 m4/ssize_t.m4                                      |    2 +-
 m4/st_dm_mode.m4                                   |    2 +-
 m4/stat-time.m4                                    |    2 +-
 m4/stat.m4                                         |    2 +-
 m4/std-gnu11.m4                                    |    2 +-
 m4/stdalign.m4                                     |    2 +-
 m4/stddef_h.m4                                     |    2 +-
 m4/stdint.m4                                       |    9 +-
 m4/stdio_h.m4                                      |    2 +-
 m4/stdlib_h.m4                                     |    2 +-
 m4/stpcpy.m4                                       |    2 +-
 m4/strftime.m4                                     |    2 +-
 m4/string_h.m4                                     |    2 +-
 m4/strtoimax.m4                                    |    2 +-
 m4/strtoll.m4                                      |    2 +-
 m4/strtoull.m4                                     |    2 +-
 m4/strtoumax.m4                                    |    2 +-
 m4/symlink.m4                                      |    2 +-
 m4/sys_select_h.m4                                 |    2 +-
 m4/sys_socket_h.m4                                 |    2 +-
 m4/sys_stat_h.m4                                   |    2 +-
 m4/sys_time_h.m4                                   |    2 +-
 m4/sys_types_h.m4                                  |    2 +-
 m4/tempname.m4                                     |    2 +-
 m4/time_h.m4                                       |    2 +-
 m4/time_r.m4                                       |    2 +-
 m4/time_rz.m4                                      |    2 +-
 m4/timegm.m4                                       |    2 +-
 m4/timer_time.m4                                   |    2 +-
 m4/timespec.m4                                     |    2 +-
 m4/tm_gmtoff.m4                                    |    2 +-
 m4/unistd_h.m4                                     |    5 +-
 m4/utimbuf.m4                                      |    2 +-
 m4/utimens.m4                                      |    2 +-
 m4/utimes.m4                                       |    2 +-
 m4/vararrays.m4                                    |    2 +-
 m4/warnings.m4                                     |    2 +-
 m4/wchar_t.m4                                      |    2 +-
 make-dist                                          |   60 +-
 modules/mod-test/Makefile                          |    2 +-
 modules/mod-test/mod-test.c                        |    2 +-
 modules/mod-test/test.el                           |    2 +-
 modules/modhelp.py                                 |    2 +-
 msdos/ChangeLog.1                                  |    2 +-
 msdos/INSTALL                                      |    2 +-
 msdos/README                                       |    4 +-
 msdos/autogen/Makefile.in                          |    6 +-
 msdos/autogen/config.in                            |    2 +-
 msdos/depfiles.bat                                 |    2 +-
 msdos/inttypes.h                                   |    2 +-
 msdos/mainmake.v2                                  |    2 +-
 msdos/sed1v2.inp                                   |    2 +-
 msdos/sed1x.inp                                    |    2 +-
 msdos/sed2v2.inp                                   |    4 +-
 msdos/sed2x.inp                                    |    2 +-
 msdos/sed3v2.inp                                   |    2 +-
 msdos/sed4.inp                                     |    2 +-
 msdos/sed5x.inp                                    |    2 +-
 msdos/sed6.inp                                     |    2 +-
 msdos/sedadmin.inp                                 |    2 +-
 msdos/sedalloc.inp                                 |    2 +-
 msdos/sedleim.inp                                  |    2 +-
 msdos/sedlibcf.inp                                 |    2 +-
 msdos/sedlibmk.inp                                 |    2 +-
 msdos/sedlisp.inp                                  |    2 +-
 nextstep/ChangeLog.1                               |    2 +-
 nextstep/INSTALL                                   |    2 +-
 nextstep/Makefile.in                               |    3 +-
 nextstep/README                                    |    2 +-
 nextstep/templates/Info.plist.in                   |    2 +-
 nt/ChangeLog.1                                     |    2 +-
 nt/INSTALL                                         |    2 +-
 nt/INSTALL.W64                                     |    2 +-
 nt/Makefile.in                                     |   12 +-
 nt/README                                          |    2 +-
 nt/README.W32                                      |    2 +-
 nt/addpm.c                                         |    2 +-
 nt/cmdproxy.c                                      |    2 +-
 nt/configure.bat                                   |    2 +-
 nt/ddeclient.c                                     |    2 +-
 nt/emacs.rc.in                                     |    2 +-
 nt/emacsclient.rc.in                               |    2 +-
 nt/epaths.nt                                       |    2 +-
 nt/gnulib-modules-to-delete.cfg                    |   66 +
 nt/gnulib.mk                                       | 1150 -
 nt/icons/README                                    |    6 +-
 nt/inc/grp.h                                       |    2 +-
 nt/inc/inttypes.h                                  |    2 +-
 nt/inc/langinfo.h                                  |    2 +-
 nt/inc/ms-w32.h                                    |    2 +-
 nt/inc/nl_types.h                                  |    2 +-
 nt/inc/stdint.h                                    |    2 +-
 nt/inc/sys/resource.h                              |    2 +-
 nt/inc/sys/socket.h                                |    2 +-
 nt/inc/sys/stat.h                                  |    2 +-
 nt/inc/sys/wait.h                                  |    2 +-
 nt/preprep.c                                       |    2 +-
 nt/runemacs.c                                      |    2 +-
 oldXMenu/Activate.c                                |    2 +-
 oldXMenu/ChangeLog.1                               |    2 +-
 oldXMenu/Create.c                                  |    2 +-
 oldXMenu/FindSel.c                                 |    2 +-
 oldXMenu/Internal.c                                |    2 +-
 oldXMenu/Makefile.in                               |    2 +-
 oldXMenu/deps.mk                                   |    2 +-
 oldXMenu/insque.c                                  |    2 +-
 src/.gdbinit                                       |   17 +-
 src/ChangeLog.1                                    |    2 +-
 src/ChangeLog.10                                   |    2 +-
 src/ChangeLog.11                                   |    2 +-
 src/ChangeLog.12                                   |    2 +-
 src/ChangeLog.13                                   |    4 +-
 src/ChangeLog.2                                    |    2 +-
 src/ChangeLog.3                                    |    4 +-
 src/ChangeLog.4                                    |    2 +-
 src/ChangeLog.5                                    |    2 +-
 src/ChangeLog.6                                    |    2 +-
 src/ChangeLog.7                                    |    2 +-
 src/ChangeLog.8                                    |    2 +-
 src/ChangeLog.9                                    |    2 +-
 src/Makefile.in                                    |    5 +-
 src/README                                         |    2 +-
 src/alloc.c                                        |  124 +-
 src/atimer.c                                       |    3 +-
 src/atimer.h                                       |    2 +-
 src/bidi.c                                         |    2 +-
 src/blockinput.h                                   |    2 +-
 src/buffer.c                                       |   16 +-
 src/buffer.h                                       |   21 +-
 src/bytecode.c                                     |  154 +-
 src/callint.c                                      |    4 +-
 src/callproc.c                                     |   19 +-
 src/casefiddle.c                                   |    2 +-
 src/casetab.c                                      |    2 +-
 src/category.c                                     |    4 +-
 src/ccl.c                                          |    4 +-
 src/character.c                                    |   14 +-
 src/character.h                                    |    1 +
 src/charset.c                                      |    4 +-
 src/charset.h                                      |    2 +-
 src/cm.c                                           |    2 +-
 src/cm.h                                           |    2 +-
 src/cmds.c                                         |    2 +-
 src/coding.c                                       |    8 +-
 src/coding.h                                       |    2 +-
 src/commands.h                                     |    2 +-
 src/composite.c                                    |    7 +-
 src/composite.h                                    |    2 +-
 src/conf_post.h                                    |    2 +-
 src/cygw32.c                                       |    2 +-
 src/cygw32.h                                       |    2 +-
 src/data.c                                         |  186 +-
 src/dbusbind.c                                     |    2 +-
 src/decompress.c                                   |    4 +-
 src/deps.mk                                        |    2 +-
 src/dired.c                                        |   13 +-
 src/dispextern.h                                   |    2 +-
 src/dispnew.c                                      |    2 +-
 src/disptab.h                                      |    2 +-
 src/doc.c                                          |    2 +-
 src/doprnt.c                                       |    2 +-
 src/dosfns.c                                       |    2 +-
 src/dosfns.h                                       |    2 +-
 src/dynlib.c                                       |    2 +-
 src/dynlib.h                                       |    2 +-
 src/editfns.c                                      |   20 +-
 src/emacs-icon.h                                   |    2 +-
 src/emacs-module.c                                 |   34 +-
 src/emacs-module.h                                 |    2 +-
 src/emacs.c                                        |   31 +-
 src/emacsgtkfixed.c                                |    2 +-
 src/emacsgtkfixed.h                                |    2 +-
 src/epaths.in                                      |    2 +-
 src/eval.c                                         |   97 +-
 src/fileio.c                                       |   86 +-
 src/filelock.c                                     |    4 +-
 src/firstfile.c                                    |    2 +-
 src/floatfns.c                                     |    2 +-
 src/fns.c                                          |  412 +-
 src/font.c                                         |    2 +-
 src/font.h                                         |    2 +-
 src/fontset.c                                      |   10 +-
 src/fontset.h                                      |    2 +-
 src/frame.c                                        |   39 +-
 src/frame.h                                        |    2 +-
 src/fringe.c                                       |    2 +-
 src/ftcrfont.c                                     |    2 +-
 src/ftfont.c                                       |    2 +-
 src/ftxfont.c                                      |    2 +-
 src/getpagesize.h                                  |    2 +-
 src/gfilenotify.c                                  |   34 +-
 src/gmalloc.c                                      |    2 +-
 src/gnutls.c                                       |   15 +-
 src/gnutls.h                                       |    2 +-
 src/gtkutil.c                                      |    2 +-
 src/gtkutil.h                                      |    2 +-
 src/image.c                                        |    5 +-
 src/indent.c                                       |    8 +-
 src/indent.h                                       |    2 +-
 src/inotify.c                                      |    4 +-
 src/insdel.c                                       |   14 +-
 src/intervals.c                                    |    2 +-
 src/intervals.h                                    |    5 +-
 src/keyboard.c                                     |   26 +-
 src/keyboard.h                                     |    4 +-
 src/keymap.c                                       |   14 +-
 src/keymap.h                                       |    2 +-
 src/kqueue.c                                       |    4 +-
 src/lastfile.c                                     |    2 +-
 src/lisp.h                                         |  954 +-
 src/lread.c                                        |   20 +-
 src/macfont.h                                      |    2 +-
 src/macfont.m                                      |    2 +-
 src/macros.c                                       |    4 +-
 src/macros.h                                       |    2 +-
 src/marker.c                                       |    2 +-
 src/menu.c                                         |    2 +-
 src/menu.h                                         |    2 +-
 src/minibuf.c                                      |    4 +-
 src/msdos.c                                        |    2 +-
 src/msdos.h                                        |    2 +-
 src/nsfns.m                                        |    2 +-
 src/nsfont.m                                       |    2 +-
 src/nsgui.h                                        |    2 +-
 src/nsimage.m                                      |    2 +-
 src/nsmenu.m                                       |    2 +-
 src/nsselect.m                                     |    2 +-
 src/nsterm.h                                       |    2 +-
 src/nsterm.m                                       |  115 +-
 src/print.c                                        |   18 +-
 src/process.c                                      |   50 +-
 src/process.h                                      |   21 +-
 src/profiler.c                                     |    8 +-
 src/puresize.h                                     |    2 +-
 src/ralloc.c                                       |    2 +-
 src/regex.c                                        |  103 +-
 src/regex.h                                        |   23 +-
 src/region-cache.c                                 |    2 +-
 src/region-cache.h                                 |    2 +-
 src/scroll.c                                       |    2 +-
 src/search.c                                       |   52 +-
 src/sheap.c                                        |    2 +-
 src/sheap.h                                        |    2 +-
 src/sound.c                                        |    2 +-
 src/syntax.c                                       |  171 +-
 src/syntax.h                                       |    2 +-
 src/sysdep.c                                       |   35 +-
 src/sysselect.h                                    |    2 +-
 src/syssignal.h                                    |    3 +-
 src/sysstdio.h                                     |    2 +-
 src/systhread.c                                    |    4 +-
 src/systhread.h                                    |    2 +-
 src/systime.h                                      |    2 +-
 src/systty.h                                       |    2 +-
 src/syswait.h                                      |    2 +-
 src/term.c                                         |    2 +-
 src/termcap.c                                      |    2 +-
 src/termchar.h                                     |    2 +-
 src/termhooks.h                                    |   15 +-
 src/terminal.c                                     |    2 +-
 src/terminfo.c                                     |    2 +-
 src/termopts.h                                     |    2 +-
 src/textprop.c                                     |    4 +-
 src/thread.c                                       |  157 +-
 src/thread.h                                       |   74 +-
 src/tparam.c                                       |    2 +-
 src/tparam.h                                       |    2 +-
 src/undo.c                                         |    2 +-
 src/unexaix.c                                      |   12 +-
 src/unexcoff.c                                     |    2 +-
 src/unexcw.c                                       |    2 +-
 src/unexelf.c                                      |    2 +-
 src/unexmacosx.c                                   |    2 +-
 src/unexw32.c                                      |    2 +-
 src/vm-limit.c                                     |    2 +-
 src/w16select.c                                    |    2 +-
 src/w32.c                                          |   46 +-
 src/w32.h                                          |    4 +-
 src/w32common.h                                    |    2 +-
 src/w32console.c                                   |    2 +-
 src/w32fns.c                                       |   13 +-
 src/w32font.c                                      |    2 +-
 src/w32font.h                                      |    2 +-
 src/w32gui.h                                       |    2 +-
 src/w32heap.c                                      |    2 +-
 src/w32heap.h                                      |    2 +-
 src/w32inevt.c                                     |    2 +-
 src/w32inevt.h                                     |    2 +-
 src/w32menu.c                                      |    2 +-
 src/w32notify.c                                    |    6 +-
 src/w32proc.c                                      |    4 +-
 src/w32reg.c                                       |    2 +-
 src/w32select.c                                    |    2 +-
 src/w32select.h                                    |    2 +-
 src/w32term.c                                      |    2 +-
 src/w32term.h                                      |    2 +-
 src/w32uniscribe.c                                 |    2 +-
 src/w32xfns.c                                      |    2 +-
 src/widget.c                                       |   12 +-
 src/widget.h                                       |    2 +-
 src/widgetprv.h                                    |    2 +-
 src/window.c                                       |   11 +-
 src/window.h                                       |   21 +-
 src/xdisp.c                                        |   40 +-
 src/xfaces.c                                       |    2 +-
 src/xfns.c                                         |    2 +-
 src/xfont.c                                        |    2 +-
 src/xftfont.c                                      |    2 +-
 src/xgselect.c                                     |   13 +-
 src/xgselect.h                                     |    5 +-
 src/xmenu.c                                        |    2 +-
 src/xml.c                                          |    2 +-
 src/xrdb.c                                         |    2 +-
 src/xselect.c                                      |    6 +-
 src/xsettings.c                                    |   21 +-
 src/xsettings.h                                    |    2 +-
 src/xsmfns.c                                       |    2 +-
 src/xterm.c                                        |   71 +-
 src/xterm.h                                        |    2 +-
 src/xwidget.c                                      |    2 +-
 src/xwidget.h                                      |    2 +-
 test/ChangeLog.1                                   |    2 +-
 test/Makefile.in                                   |    2 +-
 test/README                                        |    2 +-
 test/lisp/abbrev-tests.el                          |    5 +-
 test/lisp/auth-source-tests.el                     |    2 +-
 test/lisp/autorevert-tests.el                      |    2 +-
 test/lisp/buff-menu-tests.el                       |    4 +-
 test/lisp/calc/calc-tests.el                       |    2 +-
 test/lisp/calendar/icalendar-tests.el              |    2 +-
 test/lisp/calendar/parse-time-tests.el             |   20 +-
 test/lisp/char-fold-tests.el                       |    2 +-
 test/lisp/comint-tests.el                          |    2 +-
 test/lisp/dabbrev-tests.el                         |    2 +-
 test/lisp/descr-text-tests.el                      |    2 +-
 test/lisp/dired-tests.el                           |    2 +-
 test/lisp/dom-tests.el                             |    2 +-
 test/lisp/electric-tests.el                        |    2 +-
 test/lisp/emacs-lisp/bytecomp-tests.el             |    2 +-
 test/lisp/emacs-lisp/checkdoc-tests.el             |   53 +
 test/lisp/emacs-lisp/cl-generic-tests.el           |    2 +-
 test/lisp/emacs-lisp/cl-lib-tests.el               |    2 +-
 test/lisp/emacs-lisp/cl-seq-tests.el               |    8 +-
 .../eieio-tests/eieio-test-methodinvoke.el         |    2 +-
 .../emacs-lisp/eieio-tests/eieio-test-persist.el   |    2 +-
 test/lisp/emacs-lisp/eieio-tests/eieio-tests.el    |    2 +-
 test/lisp/emacs-lisp/ert-tests.el                  |    2 +-
 test/lisp/emacs-lisp/ert-x-tests.el                |    2 +-
 test/lisp/emacs-lisp/generator-tests.el            |    2 +-
 test/lisp/emacs-lisp/let-alist-tests.el            |    7 +-
 test/lisp/emacs-lisp/lisp-tests.el                 |    2 +-
 test/lisp/emacs-lisp/map-tests.el                  |    2 +-
 test/lisp/emacs-lisp/nadvice-tests.el              |    2 +-
 test/lisp/emacs-lisp/package-tests.el              |    2 +-
 test/lisp/emacs-lisp/pcase-tests.el                |    2 +-
 test/lisp/emacs-lisp/regexp-opt-tests.el           |    2 +-
 test/lisp/emacs-lisp/ring-tests.el                 |    2 +-
 test/lisp/emacs-lisp/rx-tests.el                   |    2 +-
 test/lisp/emacs-lisp/seq-tests.el                  |    2 +-
 test/lisp/emacs-lisp/subr-x-tests.el               |    2 +-
 test/lisp/emacs-lisp/tabulated-list-test.el        |    2 +-
 test/lisp/emacs-lisp/thunk-tests.el                |    2 +-
 test/lisp/emacs-lisp/timer-tests.el                |    2 +-
 test/lisp/emulation/viper-tests.el                 |    2 +-
 test/lisp/epg-tests.el                             |    2 +-
 test/lisp/erc/erc-track-tests.el                   |    2 +-
 test/lisp/eshell/eshell.el                         |    2 +-
 test/lisp/faces-tests.el                           |   11 +-
 test/lisp/ffap-tests.el                            |   71 +
 test/lisp/filenotify-tests.el                      |  242 +-
 test/lisp/files-tests.el                           |    2 +-
 test/lisp/files-x-tests.el                         |    2 +-
 test/lisp/gnus/gnus-tests.el                       |    2 +-
 test/lisp/gnus/message-tests.el                    |    2 +-
 test/lisp/help-fns-tests.el                        |    2 +-
 test/lisp/htmlfontify-tests.el                     |   14 +-
 test/lisp/ibuffer-tests.el                         |   11 +-
 test/lisp/imenu-tests.el                           |    2 +-
 test/lisp/info-xref-tests.el                       |    2 +-
 test/lisp/international/mule-util-tests.el         |    2 +-
 test/lisp/international/ucs-normalize-tests.el     |    2 +-
 test/lisp/isearch-tests.el                         |    2 +-
 test/lisp/jit-lock-tests.el                        |    2 +-
 test/lisp/json-tests.el                            |    5 +-
 test/lisp/mail/rmail-tests.el                      |    2 +-
 test/lisp/man-tests.el                             |    2 +-
 test/lisp/md4-tests.el                             |   61 +
 test/lisp/minibuffer-tests.el                      |    4 +-
 test/lisp/mouse-tests.el                           |    2 +-
 test/lisp/net/dbus-tests.el                        |    5 +-
 test/lisp/net/network-stream-tests.el              |    6 +-
 test/lisp/net/newsticker-tests.el                  |    2 +-
 test/lisp/net/sasl-scram-rfc-tests.el              |    2 +-
 test/lisp/net/shr-tests.el                         |    2 +-
 test/lisp/net/tramp-tests.el                       |   73 +-
 test/lisp/obarray-tests.el                         |    2 +-
 test/lisp/progmodes/cc-mode-tests.el               |    2 +-
 test/lisp/progmodes/compile-tests.el               |    2 +-
 test/lisp/progmodes/elisp-mode-tests.el            |    2 +-
 test/lisp/progmodes/etags-tests.el                 |    2 +-
 test/lisp/progmodes/f90.el                         |    2 +-
 test/lisp/progmodes/flymake-tests.el               |    2 +-
 test/lisp/progmodes/js-tests.el                    |   90 +
 test/lisp/progmodes/python-tests.el                |   37 +-
 test/lisp/progmodes/ruby-mode-tests.el             |    2 +-
 test/lisp/progmodes/sql-tests.el                   |    2 +-
 test/lisp/progmodes/subword-tests.el               |    2 +-
 test/lisp/progmodes/xref-tests.el                  |    2 +-
 test/lisp/ps-print-tests.el                        |    2 +-
 test/lisp/replace-tests.el                         |    2 +-
 test/lisp/rot13-tests.el                           |    2 +-
 test/lisp/shell-tests.el                           |    2 +-
 test/lisp/simple-tests.el                          |    8 +-
 test/lisp/sort-tests.el                            |    2 +-
 test/lisp/subr-tests.el                            |   12 +-
 test/lisp/textmodes/css-mode-tests.el              |   17 +-
 test/lisp/textmodes/reftex-tests.el                |    2 +-
 test/lisp/textmodes/sgml-mode-tests.el             |    2 +-
 test/lisp/textmodes/tildify-tests.el               |    4 +-
 test/lisp/thingatpt-tests.el                       |    2 +-
 test/lisp/url/url-auth-tests.el                    |    2 +-
 test/lisp/url/url-expand-tests.el                  |    2 +-
 test/lisp/url/url-future-tests.el                  |    2 +-
 test/lisp/url/url-parse-tests.el                   |    2 +-
 test/lisp/url/url-util-tests.el                    |    2 +-
 test/lisp/vc/add-log-tests.el                      |    2 +-
 test/lisp/vc/ediff-ptch-tests.el                   |    2 +-
 test/lisp/vc/vc-bzr-tests.el                       |    2 +-
 test/lisp/vc/vc-hg.el                              |    2 +-
 test/lisp/vc/vc-tests.el                           |    4 +-
 test/lisp/whitespace-tests.el                      |   52 +
 test/lisp/xml-tests.el                             |   17 +-
 test/lisp/xt-mouse-tests.el                        |    2 +-
 test/make-test-deps.emacs-lisp                     |    2 +-
 test/manual/biditest.el                            |    2 +-
 test/manual/cedet/cedet-utests.el                  |    2 +-
 test/manual/cedet/ede-tests.el                     |    2 +-
 test/manual/cedet/semantic-ia-utest.el             |    2 +-
 test/manual/cedet/semantic-tests.el                |    2 +-
 test/manual/cedet/semantic-utest-c.el              |    2 +-
 test/manual/cedet/semantic-utest.el                |    2 +-
 test/manual/cedet/srecode-tests.el                 |    2 +-
 test/manual/cedet/tests/test.c                     |    2 +-
 test/manual/cedet/tests/test.el                    |    2 +-
 test/manual/cedet/tests/test.make                  |    2 +-
 test/manual/cedet/tests/testdoublens.cpp           |    2 +-
 test/manual/cedet/tests/testdoublens.hpp           |    2 +-
 test/manual/cedet/tests/testjavacomp.java          |    2 +-
 test/manual/cedet/tests/testpolymorph.cpp          |    2 +-
 test/manual/cedet/tests/testspp.c                  |    2 +-
 test/manual/cedet/tests/testsppreplace.c           |    2 +-
 test/manual/cedet/tests/testsppreplaced.c          |    2 +-
 test/manual/cedet/tests/testsubclass.cpp           |    2 +-
 test/manual/cedet/tests/testsubclass.hh            |    2 +-
 test/manual/cedet/tests/testtypedefs.cpp           |    2 +-
 test/manual/cedet/tests/testvarnames.c             |    2 +-
 test/manual/etags/c-src/abbrev.c                   |    2 +-
 test/manual/etags/c-src/emacs/src/gmalloc.c        |    2 +-
 test/manual/etags/c-src/emacs/src/keyboard.c       |    2 +-
 test/manual/etags/c-src/emacs/src/lisp.h           |    2 +-
 test/manual/etags/c-src/emacs/src/regex.h          |    2 +-
 test/manual/etags/c-src/etags.c                    |    2 +-
 test/manual/etags/c-src/exit.c                     |    2 +-
 test/manual/etags/c-src/exit.strange_suffix        |    2 +-
 test/manual/etags/c-src/getopt.h                   |    2 +-
 test/manual/etags/c-src/sysdep.h                   |    2 +-
 .../etags/el-src/emacs/lisp/progmodes/etags.el     |    2 +-
 test/manual/etags/tex-src/texinfo.tex              |    2 +-
 test/manual/etags/y-src/cccp.c                     |    2 +-
 test/manual/etags/y-src/parse.c                    |    3 +-
 test/manual/etags/y-src/parse.y                    |    3 +-
 test/manual/indent/Makefile                        |    2 +-
 test/manual/indent/js-chain.js                     |   29 +
 test/manual/indent/js.js                           |   10 +
 test/manual/indent/pascal.pas                      |    2 +-
 test/manual/redisplay-testsuite.el                 |    2 +-
 test/manual/rmailmm.el                             |    2 +-
 test/src/alloc-tests.el                            |    2 +-
 test/src/buffer-tests.el                           |    2 +-
 test/src/callproc-tests.el                         |    2 +-
 test/src/chartab-tests.el                          |    2 +-
 test/src/cmds-tests.el                             |    2 +-
 test/src/coding-tests.el                           |    2 +-
 test/src/data-tests.el                             |    3 +-
 test/src/decompress-tests.el                       |    2 +-
 test/src/doc-tests.el                              |    2 +-
 test/src/editfns-tests.el                          |    2 +-
 test/src/eval-tests.el                             |   12 +-
 test/src/fns-tests.el                              |    2 +-
 test/src/font-tests.el                             |    2 +-
 test/src/inotify-tests.el                          |    2 +-
 test/src/keymap-tests.el                           |    2 +-
 test/src/lread-tests.el                            |   10 +-
 test/src/marker-tests.el                           |    2 +-
 test/src/minibuf-tests.el                          |    2 +-
 test/src/print-tests.el                            |    2 +-
 test/src/process-tests.el                          |    2 +-
 test/src/regex-tests.el                            |    4 +-
 test/src/syntax-tests.el                           |   85 +
 test/src/textprop-tests.el                         |    2 +-
 test/src/thread-tests.el                           |   64 +-
 test/src/undo-tests.el                             |    2 +-
 test/src/xml-tests.el                              |    2 +-
 2560 files changed, 10170 insertions(+), 47059 deletions(-)

diff --git a/.gitattributes b/.gitattributes
index 13e58a8..22cea3d 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,6 +1,6 @@
 # Attributes of Emacs files in the Git repository.
 
-# Copyright 2015-2016 Free Software Foundation, Inc.
+# Copyright 2015-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/.gitignore b/.gitignore
index 1de15a1..e8eb4fd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,6 @@
 # Files that Git should ignore in the Emacs source directory.
 
-# Copyright 2009-2016 Free Software Foundation, Inc.
+# Copyright 2009-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
@@ -288,5 +288,6 @@ lib/SYS/
 /site-lisp/
 nt/emacs.rc
 nt/emacsclient.rc
+nt/gnulib.mk
 src/gdb.ini
 /var/
diff --git a/ChangeLog.1 b/ChangeLog.1
index dee582f..eeb6da4 100644
--- a/ChangeLog.1
+++ b/ChangeLog.1
@@ -14700,7 +14700,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1993-1999, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1993-1999, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/ChangeLog.2 b/ChangeLog.2
index 0b73dc2..b73651d 100644
--- a/ChangeLog.2
+++ b/ChangeLog.2
@@ -1,3 +1,306 @@
+2016-12-30  Alan Mackenzie  <address@hidden>
+
+       Backport: Remove an ambiguity from defvar's doc string.  Fixes bug 
#25292.
+
+       The ambiguity was whether INITVALUE is evaluated when it's not going to 
be
+       used to set SYMBOL's value.
+
+       * src/eval.c (defvar): Rewrite a paragraph of the doc string.
+
+       (cherry picked from commit 8295e97f18490a535d1188a3daf0b0fd1bf4fa0d)
+
+2016-12-28  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/inline.el: Fix apply-conversion (bug#25280)
+
+       (inline--dont-quote): Quote the function with #' when passing it to 
`apply'.
+       Cherry picked from commit e6161f648903d821865b9610b3b6aa0f82a5dcb7.
+
+2016-12-26  Eli Zaretskii  <address@hidden>
+
+       Document 'default-toplevel-value' and 'set-default-toplevel-value'
+
+       * doc/lispref/variables.texi (Default Value): Document
+       'default-toplevel-value' and 'set-default-toplevel-value'.
+
+2016-12-25  Leo Liu  <address@hidden>
+
+       Don't modify minibuffer variables globally
+
+       * lisp/files.el (cd): Use setq-local instead.  (Bug#25260)
+
+2016-12-24  Eli Zaretskii  <address@hidden>
+
+       Revert to pre-25.1 behavior in ffap
+
+       * lisp/ffap.el (ffap-lax-url): Change the default to t, to produce
+       the same behavior as in Emacs 24.x.  (Bug#25264)
+       Explain the trade-offs of customizing this in the doc string.
+
+2016-12-24  Noam Postavsky  <address@hidden>
+
+       * lisp/ffap.el: Fix obsolete comment referencing ffap-bug.
+
+2016-12-23  Eli Zaretskii  <address@hidden>
+
+       Attempt to fix 64-bit AIX build
+
+       * src/unexaix.c (make_hdr, copy_text_and_data, write_segment): Fix
+       type-casts that assumed 32-bit pointers.  (Bug#25141)
+
+2016-12-23  Philipp Stephani  <address@hidden>
+
+       Clarify usage of 'ediff-cleanup-hook' (Bug#24675)
+
+       * doc/misc/ediff.texi (Hooks): Clarify usage of 'ediff-cleanup-hook'
+
+2016-12-23  Philipp Stephani  <address@hidden>
+
+       Document that variable binding order is unspecified
+
+       * doc/lispref/variables.texi (Local Variables):
+       * doc/misc/cl.texi (Modify Macros): Document that binding order in 
'let' and
+       'cl-letf' is unspecified.
+
+2016-12-23  Eli Zaretskii  <address@hidden>
+
+       * lisp/desktop.el (desktop-buffers-not-to-save): Doc fix.
+
+2016-12-23  Stefan Monnier  <address@hidden>
+
+       Fix M-x hints on Mac port
+
+       * lisp/simple.el (execute-extended-command--shorter): Call
+       input-pending-p to trigger input processing on some systems, such
+       as Mac port.  (Bug#23002)
+
+2016-12-22  Martin Rudalics  <address@hidden>
+
+       Work around reporting a dpi change in apply_xft_settings
+
+       * src/xsettings.c (apply_xft_settings): Don't report a change
+       when dpi settings do not differ substantially.
+
+2016-12-20  Alan Mackenzie  <address@hidden>
+
+       Amend the version number of CC Mode 5.33 -> 5.32.99.  Don't merge to 
trunk.
+
+       lisp/progmodes/cc-defs.el: Amend the version number.
+       etc/NEWS: Add an item explaining the change.
+
+2016-12-20  Noam Postavsky  <address@hidden>
+
+       Improve skeleton docstrings
+
+       * lisp/skeleton.el (skeleton-end-newline): Remove mention of
+       `skeleton-end-hook', its default code was moved into `skeleton-insert'.
+       (skeleton-insert): Mention `skeleton-end-newline' and move reference to
+       `skeleton-end-hook' above the explanation of skeleton syntax.
+
+2016-12-19  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'w32-scroll-lock-modifier'
+
+       * doc/emacs/msdos.texi (Windows Keyboard): Document how to set up
+       w32-scroll-lock-modifier so that Scroll Lock toggles the LED.
+
+       * src/w32fns.c (syms_of_w32fns) <w32-scroll-lock-modifier>: Doc
+       fix.  (Bug#25204)
+
+2016-12-19  Eli Zaretskii  <address@hidden>
+
+       Document 'describe-fontset'
+
+       * doc/emacs/mule.texi (Fontsets): Document 'describe-fontset'.
+       (Bug#25216)
+
+2016-12-19  Eli Zaretskii  <address@hidden>
+
+       Document 'describe-fontset'
+
+       * doc/emacs/mule.texi (Fontsets): Document 'describe-fontset'.
+       (Bug#25216)
+
+2016-12-17  Eli Zaretskii  <address@hidden>
+
+       Repair desktop restoration on text terminals
+
+       * lisp/desktop.el (desktop-restoring-frameset-p): Test for the GUI
+       frame here, instead of in desktop-restoring-frameset.  That's
+       because desktop-read wants to know whether frameset will actually
+       be restored, and has fallback procedures up its sleeve when it
+       won't be; these fallbacks need to be invoked when the frameset is
+       not going to be restored.  (Bug#24298)
+
+2016-12-17  Dmitry Gutov  <address@hidden>
+
+       Ignore forward-sexp-function in js-mode indentation code
+
+       * lisp/progmodes/js.el (js--multi-line-declaration-indentation)
+       (js--maybe-goto-declaration-keyword-end):
+       Bind forward-sexp-function to nil (bug#25215).
+
+2016-12-16  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'define-coding-system'
+
+       * lisp/international/mule.el (define-coding-system): Warn against
+       possible infinite recursion in pre-write-conversion and
+       post-read-conversion functions.  (Bug#25203)
+
+2016-12-11  Michael Albinus  <address@hidden>
+
+       Fix Bug#25162
+
+       * doc/emacs/files.texi (Reverting): Document
+       auto-revert-remote-files and auto-revert-verbose.
+
+       * lisp/autorevert.el (auto-revert-verbose, auto-revert-mode)
+       (auto-revert-tail-mode, global-auto-revert-mode): Fix docstring.
+
+2016-12-11  Glenn Morris  <address@hidden>
+
+       Fix a typo in define-abbrev-table
+
+       * lisp/abbrev.el (define-abbrev-table): Fix typo in docstring handling.
+
+2016-12-11  Glenn Morris  <address@hidden>
+
+       Bump makeinfo requirement from 4.7 to 4.13
+
+       * configure.ac: Bump makeinfo version requirement from 4.7 to 4.13.
+       We need at least 4.8, and that may be buggy, so go for the last
+       of the 4 series, which is 8 years old.  (Bug#25108)
+
+2016-12-11  Glenn Morris  <address@hidden>
+
+       Fixes related to select-enable-clipboard
+
+       * lisp/menu-bar.el (clipboard-yank, clipboard-kill-ring-save)
+       (clipboard-kill-region):
+       * lisp/eshell/esh-io.el (eshell-virtual-targets)
+       (eshell-clipboard-append):
+       Replace option gui-select-enable-clipboard with
+       select-enable-clipboard; renamed October 2014.  (Bug#25145)
+
+2016-12-10  Noam Postavsky  <address@hidden>
+
+       Define struct predicate before acccesors
+
+       The accessor functions use the predicate function, which causes problems
+       when reloading after unload-feature: the compiler-macro property is
+       still present on the predicate symbol, and the compiler fails to find
+       the definition when trying to inline it into the accessor
+       function (Bug#25088).
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Move predicate definition
+       before field accessor definitions.
+
+2016-12-08  Glenn Morris  <address@hidden>
+
+       Doc fix for vc-git
+
+       * lisp/vc/vc-git.el (vc-git-region-history): Add a doc string.
+
+2016-12-08  Glenn Morris  <address@hidden>
+
+       Further improve make-dist checking
+
+       * make-dist: Print status messages when checking.
+
+2016-12-08  Glenn Morris  <address@hidden>
+
+       Improve previous make-dist change
+
+       * make-dist: Let make check the info files more thoroughly.
+
+2016-12-08  Glenn Morris  <address@hidden>
+
+       Make make-dist --snapshot do some sanity checks
+
+       * make-dist: Snapshot mode no longer disables checks.
+       Checks now includes checks for freshness.  (Bug#25084)
+       Checks now exits with an error if problems were found.
+
+2016-12-07  Paul Eggert  <address@hidden>
+
+       Fix minor quoting problems in doc strings
+
+2016-12-07  Philipp Stephani  <address@hidden>
+
+       * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Fix docstring
+
+       so that it matches the actual implementation.
+       See 
https://lists.gnu.org/archive/html/help-gnu-emacs/2016-04/msg00071.html
+
+2016-12-07  Noam Postavsky  <address@hidden>
+
+       Don't assume window-point and point are the same
+
+       The function `cursor-sensor--detect' calls `bobp' to decide whether to
+       check properties at (1- (window-point)).  However, (window-point) may be
+       at beginning of buffer, even if (point) is not.  In this case an
+       `args-out-of-range' error will be signaled (Bug#25104).
+
+       * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--detect): Check the
+       value of (window-point) against (point-min), rather than (bobp) to
+       decide if (1- (window-point)) is accessible.
+
+2016-12-02  Nicolas Petton  <address@hidden>
+
+       Fix bug#25087
+
+       * etc/themes/manoj-dark-theme.el: Fix two typos.
+
+       (cherry picked from commit 66d6e7e9ecf5e481f8c2c3a4f88411f66c869a6e)
+
+2016-12-02  Eli Zaretskii  <address@hidden>
+
+       * lisp/vc/ediff-util.el (ediff-janitor): Doc fix.  (Bug#25046)
+
+2016-12-02  Eli Zaretskii  <address@hidden>
+
+       Improve indexing of 'man'
+
+       * doc/emacs/programs.texi (Man Page): Index 'man', not
+       'manual-entry', as the latter is an alias for the former.
+       Suggested by Hong Xu <address@hidden>.  (Bug#25033)
+
+2016-12-02  Paul Eggert  <address@hidden>
+
+       Port to Sun C 5.14
+
+       Backport from master.  Sun C 5.14 supports C11 but not GCC
+       extensions, and so refuses to compile Emacs without this patch.
+       * src/alloc.c (lmalloc, lrealloc): Don't use INT_ADD_WRAPV on
+       size_t, as in general this macro is restricted to signed types.
+
+2016-12-02  Richard Stallman  <address@hidden>
+
+       Fix mail-combine-fields
+
+       * lisp/mail/sendmail.el (mail-combine-fields): Call `save-excursion' to
+       avoid losing our place in the search loop.
+
+       (cherry picked from commit 5fbba6cceaf843cfca449eb000a0a65243b61808)
+
+2016-12-01  Martin Rudalics  <address@hidden>
+
+       Fix documentation of `window-combination-resize'
+
+       * src/window.c (Vwindow_combination_resize): Fix doc-string.
+       * doc/lispref/windows.texi (Recombining Windows): Fix
+       documentation of `window-combination-resize'.
+
+2016-11-29  Bogdan Creanga  <address@hidden>  (tiny change)
+
+       Typo fixes in elisp manual
+
+       * doc/lispref/sequences.texi: Add missing '4' in result (Bug#25047).
+       * doc/lispref/strings.texi (Text Comparison): Avoid duplicate
+       definitions of 'string-prefix-p' and 'string-suffix-p'.
+       * doc/lispref/symbols.texi (Definitions): Pluralize 'definitions'.
+
 2016-11-28  Eli Zaretskii  <address@hidden>
 
        Fix 'expand-file-name' during startup on MS-Windows
@@ -26205,7 +26508,7 @@
 
 2015-08-07  Phillip Lord  <address@hidden>
 
-       Improve error signalling for seq-subseq
+       Improve error signaling for seq-subseq
        * lisp/emacs-lisp/seq.el (seq-subseq): The existing behavior is to error
        when indexes are too large, but to silently ignore numbers which
        are too negative for lists.  String and vector handling errors in
@@ -35010,14 +35313,14 @@
 
 This file records repository revisions from
 commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
-commit 5878abf87b6b3ead1367cbae5cc6b0743349f611 (inclusive).
+commit e8f0d7dcadd2b35f62f7a14b96df15e5314d7f6e (inclusive).
 See ChangeLog.1 for earlier changes.
 
 ;; Local Variables:
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2015-2016 Free Software Foundation, Inc.
+  Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/ChangeLog.3 b/ChangeLog.3
index afd8de5..835ee08 100644
--- a/ChangeLog.3
+++ b/ChangeLog.3
@@ -22606,7 +22606,7 @@ See ChangeLog.1 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2015-2016 Free Software Foundation, Inc.
+  Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/GNUmakefile b/GNUmakefile
index e6941b0..98d31f4 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -1,6 +1,6 @@
 # Build Emacs from a fresh tarball or version-control checkout.
 
-# Copyright (C) 2011-2016 Free Software Foundation, Inc.
+# Copyright (C) 2011-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/INSTALL b/INSTALL
index 76fe87d..10b1756 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 GNU Emacs Installation Guide
-Copyright (C) 1992, 1994, 1996-1997, 2000-2016 Free Software Foundation,
+Copyright (C) 1992, 1994, 1996-1997, 2000-2017 Free Software Foundation,
 Inc.
 See the end of the file for license conditions.
 
diff --git a/INSTALL.REPO b/INSTALL.REPO
index 6fc9857..be4feaf 100644
--- a/INSTALL.REPO
+++ b/INSTALL.REPO
@@ -65,7 +65,7 @@ never platform-specific.
 
 
 
-Copyright (C) 2002-2016 Free Software Foundation, Inc.
+Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/Makefile.in b/Makefile.in
index d7e30a8..60f30b9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 1992-2016 Free Software Foundation, Inc.
+# Copyright (C) 1992-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
@@ -68,9 +68,6 @@ SHELL = @SHELL@
 # current directory.
 CDPATH=
 
-# If Make doesn't predefine MAKE, set it here.
address@hidden@
-
 # ==================== Things 'configure' Might Edit ====================
 
 cache_file = @cache_file@
@@ -451,10 +448,13 @@ $(srcdir)/aclocal.m4: $(ACLOCAL_INPUTS)
        cd $(srcdir) && ACLOCAL_PATH='$(ACLOCAL_PATH)' $(ACLOCAL) -I m4
 
 AUTOMAKE_INPUTS = $(srcdir)/aclocal.m4 $(srcdir)/lib/Makefile.am \
-  $(srcdir)/lib/gnulib.mk
+  $(srcdir)/lib/gnulib.mk $(srcdir)/nt/gnulib.mk
 $(srcdir)/lib/Makefile.in: $(AUTOMAKE_INPUTS)
        cd $(srcdir) && $(AUTOMAKE) --gnu -a -c lib/Makefile
 
+$(srcdir)/nt/gnulib.mk: $(srcdir)/lib/gnulib.mk
+       $(MAKE) -C $(srcdir)/nt gnulib.mk
+
 # Regenerate files that this makefile would have made, if this makefile
 # had been built by Automake.  The name 'am--refresh' is for
 # compatibility with subsidiary Automake-generated makefiles.
diff --git a/README b/README
index 2a69b30..62ce36a 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/admin/ChangeLog.1 b/admin/ChangeLog.1
index c7cae0c..b1aaee7 100644
--- a/admin/ChangeLog.1
+++ b/admin/ChangeLog.1
@@ -2577,7 +2577,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/admin/README b/admin/README
index 7184015..cb6ba85 100644
--- a/admin/README
+++ b/admin/README
@@ -1,4 +1,4 @@
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/admin/admin.el b/admin/admin.el
index 9f3b68e..4892045 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -1,6 +1,6 @@
 ;;; admin.el --- utilities for Emacs administration
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/admin/alloc-colors.c b/admin/alloc-colors.c
index 3158cf4..fa6a639 100644
--- a/admin/alloc-colors.c
+++ b/admin/alloc-colors.c
@@ -1,6 +1,6 @@
 /* Allocate X colors.  Used for testing with dense colormaps.
 
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/admin/authors.el b/admin/authors.el
index 5a97c85..69f1c96 100644
--- a/admin/authors.el
+++ b/admin/authors.el
@@ -1,6 +1,6 @@
 ;;; authors.el --- utility for maintaining Emacs's AUTHORS file
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Gerd Moellmann <address@hidden>
 ;; Maintainer: Kim F. Storm <address@hidden>
diff --git a/admin/build-configs b/admin/build-configs
index 928ea4f..aa62dad 100755
--- a/admin/build-configs
+++ b/admin/build-configs
@@ -1,7 +1,7 @@
 #! /usr/bin/perl
 # Build Emacs in several different configurations.
 
-# Copyright (C) 2001-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/admin/bzrmerge.el b/admin/bzrmerge.el
index 1de7bc4..46a5e42 100644
--- a/admin/bzrmerge.el
+++ b/admin/bzrmerge.el
@@ -1,6 +1,6 @@
 ;;; bzrmerge.el --- help merge one Emacs bzr branch to another
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: maint
diff --git a/admin/charsets/Makefile.in b/admin/charsets/Makefile.in
index 0ca7e14..b154bc1 100644
--- a/admin/charsets/Makefile.in
+++ b/admin/charsets/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 2015-2016 Free Software Foundation, Inc.
+# Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 #   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/admin/charsets/mapconv b/admin/charsets/mapconv
index 5a72fbd..5f62ff9 100755
--- a/admin/charsets/mapconv
+++ b/admin/charsets/mapconv
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# Copyright (C) 2015-2016 Free Software Foundation, Inc.
+# Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 #   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/admin/charsets/mapfiles/README b/admin/charsets/mapfiles/README
index fb200e5..f9dc2ba 100644
--- a/admin/charsets/mapfiles/README
+++ b/admin/charsets/mapfiles/README
@@ -1,4 +1,4 @@
-Copyright (C) 2009-2016 Free Software Foundation, Inc.
+Copyright (C) 2009-2017 Free Software Foundation, Inc.
 Copyright (C) 2009, 2010, 2011
   National Institute of Advanced Industrial Science and Technology (AIST)
   Registration Number H13PRO009
diff --git a/admin/cus-test.el b/admin/cus-test.el
index 3a4fd12..3808a44 100644
--- a/admin/cus-test.el
+++ b/admin/cus-test.el
@@ -1,6 +1,6 @@
 ;;; cus-test.el --- tests for custom types and load problems
 
-;; Copyright (C) 1998, 2000, 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000, 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Markus Rost <address@hidden>
 ;; Maintainer: Markus Rost <address@hidden>
diff --git a/admin/diff-tar-files b/admin/diff-tar-files
index ddb107b..23df9ff 100755
--- a/admin/diff-tar-files
+++ b/admin/diff-tar-files
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-# Copyright (C) 2001-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/admin/find-gc.el b/admin/find-gc.el
index 26bbc54..53ac922 100644
--- a/admin/find-gc.el
+++ b/admin/find-gc.el
@@ -1,6 +1,6 @@
 ;;; find-gc.el --- detect functions that call the garbage collector
 
-;; Copyright (C) 1992, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 
diff --git a/admin/gitmerge.el b/admin/gitmerge.el
index ca28863..00c20ba 100644
--- a/admin/gitmerge.el
+++ b/admin/gitmerge.el
@@ -1,6 +1,6 @@
 ;;; gitmerge.el --- help merge one Emacs branch into another
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Authors: David Engster <address@hidden>
 ;;          Stefan Monnier <address@hidden>
diff --git a/admin/grammars/Makefile.in b/admin/grammars/Makefile.in
index 9037343..fd1d895 100644
--- a/admin/grammars/Makefile.in
+++ b/admin/grammars/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-## Copyright (C) 2013-2016 Free Software Foundation, Inc.
+## Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ## This file is part of GNU Emacs.
 
diff --git a/admin/grammars/c.by b/admin/grammars/c.by
index be41bd8..c312fd6 100644
--- a/admin/grammars/c.by
+++ b/admin/grammars/c.by
@@ -1,5 +1,5 @@
 ;;; c.by -- LL grammar for C/C++ language specification
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Eric M. Ludlam <address@hidden>
 ;;         David Ponce <address@hidden>
diff --git a/admin/grammars/grammar.wy b/admin/grammars/grammar.wy
index 9bac098..ffbe7cc 100644
--- a/admin/grammars/grammar.wy
+++ b/admin/grammars/grammar.wy
@@ -1,6 +1,6 @@
 ;;; semantic-grammar.wy -- LALR grammar of Semantic input grammars
 ;;
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: David Ponce <address@hidden>
diff --git a/admin/grammars/java-tags.wy b/admin/grammars/java-tags.wy
index 7284f02..bbad38d 100644
--- a/admin/grammars/java-tags.wy
+++ b/admin/grammars/java-tags.wy
@@ -1,6 +1,6 @@
 ;;; java-tags.wy -- Semantic LALR grammar for Java
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: David Ponce <address@hidden>
diff --git a/admin/grammars/js.wy b/admin/grammars/js.wy
index a49952f..72b662e 100644
--- a/admin/grammars/js.wy
+++ b/admin/grammars/js.wy
@@ -1,6 +1,6 @@
 ;;; javascript-jv.wy -- LALR grammar for Javascript
 
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1998-2011 Ecma International.
 
 ;; Author: Joakim Verona
diff --git a/admin/grammars/make.by b/admin/grammars/make.by
index a9a8564..0bfde31 100644
--- a/admin/grammars/make.by
+++ b/admin/grammars/make.by
@@ -1,6 +1,6 @@
 ;;; make.by -- BY notation for Makefiles.
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Eric M. Ludlam <address@hidden>
 ;;         David Ponce <address@hidden>
diff --git a/admin/grammars/python.wy b/admin/grammars/python.wy
index 4db3548..23aa65c 100644
--- a/admin/grammars/python.wy
+++ b/admin/grammars/python.wy
@@ -1,6 +1,6 @@
 ;;; python.wy -- LALR grammar for Python
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 ;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
 ;; 2009, 2010 Python Software Foundation; All Rights Reserved
 
diff --git a/admin/grammars/scheme.by b/admin/grammars/scheme.by
index c1613c8..c4d6a39 100644
--- a/admin/grammars/scheme.by
+++ b/admin/grammars/scheme.by
@@ -1,6 +1,6 @@
 ;;; scheme.by -- Scheme BNF language specification
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/admin/grammars/srecode-template.wy 
b/admin/grammars/srecode-template.wy
index 33c8d24..811a324 100644
--- a/admin/grammars/srecode-template.wy
+++ b/admin/grammars/srecode-template.wy
@@ -1,6 +1,6 @@
 ;;; srecode-template.wy --- Semantic Recoder Template parser
 
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/admin/last-chance.el b/admin/last-chance.el
new file mode 100644
index 0000000..cab2d47
--- /dev/null
+++ b/admin/last-chance.el
@@ -0,0 +1,123 @@
+;;; last-chance.el --- dangling deterrence     -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
+
+;; Author: Thien-Thi Nguyen <address@hidden>
+;; Maintainer: address@hidden
+;; Keywords: maint
+;; Package: emacs
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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.
+
+;; GNU Emacs 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 GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Late 2016.  In a recent build, the date in a ChangeLog file
+;; is not fontified.  Turns out the face ‘change-log-date-face’
+;; was declared obsolete since 22.1 and removed 2016-06-23.
+;; (compile "git show c430f7e23fc2c22f251ace4254e37dea1452dfc3")
+;;
+;; This library provides a command ‘last-chance’, which is a small
+;; combination of "git grep" and some regexp filtering.  For example,
+;; if point is on the symbol ‘change-log-date-face’ in the form:
+;;
+;;  (define-obsolete-face-alias 'change-log-date-face ...)
+;;
+;; then:
+;;
+;;  M-x last-chance RET
+;;
+;; will show you any references to ‘change-log-date-face’ in the
+;; *.el files in a new buffer (in Grep mode).  Hopefully you see
+;; only the obsolete declaration and can proceed w/ its removal.
+;; If not, please DTRT and refrain from the removal until those
+;; references are properly transitioned.
+;;
+;; [Insert "nobody reads ChangeLog files" lament, here.  --ttn]
+
+;;; Code:
+
+(require 'grep)
+(require 'thingatpt)
+
+(defvar last-chance-grep-command "git grep -n -H -F -e"
+  "Command that ends in \"-e\" to do the \"git grep\".
+This should include -n, -H, -F.")
+
+(defvar last-chance-uninteresting-regexps
+  '("ChangeLog[.0-9]*:"
+    "NEWS[-.0-9]*:"
+    ;; Add more ‘flush-lines’ args here.
+    )
+  "List of regexps that match uninteresting \"git grep\" hits.")
+
+(defvar-local last-chance-symbol nil
+  "Symbol set by ‘last-chance’ for ‘last-chance-cleanup’ to DTRT.")
+
+(defun last-chance-cleanup (buffer status)
+  "Filter lines in BUFFER; append STATUS and count of removed lines.
+If BUFFER does not seem to be one created by ‘last-chance’, do nothing.
+This function is intended to be added to ‘compilation-finish-functions’."
+  (let ((name (buffer-local-value 'last-chance-symbol buffer))
+        bef aft)
+    (when name
+      (with-current-buffer buffer
+        (setq bef (count-lines (point-min) (point-max)))
+        (goto-char (point-min))
+        (search-forward last-chance-grep-command)
+        (forward-line 1)
+        (let ((inhibit-read-only t))
+          (dolist (re last-chance-uninteresting-regexps)
+            (flush-lines re))
+          (keep-lines (format "\\_<%s\\_>" name)))
+        (setq aft (count-lines (point-min) (point-max)))
+        (goto-char (point-max))
+        (insert (format "(status: %s, lines removed: %d)"
+                        (car (split-string status "\n"))
+                        (- bef aft)))))))
+
+(defun last-chance (symbol)
+  "Grep the repo for SYMBOL, filtering the hits.
+This uses ‘last-chance-grep-command’ to do the grep and the
+regexps in ‘last-chance-uninteresting-regexps’ to filter the hits.
+Grepping is recursive starting under the dir that ‘vc-root-dir’
+finds (or the default directory if ‘vc-root-dir’ finds nothing).
+Output goes to the *grep* buffer.
+
+Interactively, Emacs queries for a symbol,
+defaulting to the one at point."
+  (interactive (list (read (let ((one (symbol-at-point)))
+                             (when one
+                               (setq one (symbol-name one)))
+                             (completing-read
+                              "Symbol: " obarray
+                              nil nil
+                              one nil one)))))
+  (let ((default-directory (or (vc-root-dir)
+                               default-directory)))
+    (grep (format "%s %s"
+                  last-chance-grep-command
+                  symbol)))
+  (setf (buffer-local-value 'last-chance-symbol
+                            (process-buffer
+                             (car compilation-in-progress)))
+        symbol))
+
+(add-to-list 'compilation-finish-functions
+             'last-chance-cleanup)
+
+(provide 'last-chance)
+
+;;; last-chance.el ends here
diff --git a/admin/ldefs-clean.el b/admin/ldefs-clean.el
index 89c77a7..c227a16 100644
--- a/admin/ldefs-clean.el
+++ b/admin/ldefs-clean.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -37,9 +37,11 @@
   "Clean up output from build and turn it into ldefs-boot-auto.el."
   (interactive)
   (goto-char (point-max))
-  ;; We only need the autoloads up till loaddefs.el is
-  ;; generated. After this, ldefs-boot.el is not needed
-  (search-backward "  GEN      loaddefs.el")
+  ;; We need to record autoloads till the point that emacs (as opposed
+  ;; to bootstrap-emacs) is dumped. After this point, we are not
+  ;; bootstrapping any more.
+  (search-backward "-l loadup dump")
+  (beginning-of-line)
   (delete-region (point) (point-max))
   (keep-lines "(autoload" (point-min) (point-max))
   (sort-lines nil (point-min) (point-max))
diff --git a/admin/make-emacs b/admin/make-emacs
index 6a79cdc..4c73506 100755
--- a/admin/make-emacs
+++ b/admin/make-emacs
@@ -2,7 +2,7 @@
 # Build Emacs with various options for profiling, debugging,
 # with and without warnings enabled etc.
 
-# Copyright (C) 2001-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/admin/merge-gnulib b/admin/merge-gnulib
index 29e5e43..20a3240 100755
--- a/admin/merge-gnulib
+++ b/admin/merge-gnulib
@@ -4,7 +4,7 @@
 #
 #      admin/merge-gnulib
 
-# Copyright 2012-2016 Free Software Foundation, Inc.
+# Copyright 2012-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
@@ -96,7 +96,7 @@ test -x "$gnulib_srcdir"/gnulib-tool || {
 "$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES &&
 rm -- "$src"lib/gl_openssl.h "$src"m4/fcntl-o.m4 \
       "$src"m4/gl-openssl.m4 \
-      "$src"m4/gnulib-cache.m4"$src" m4/warn-on-use.m4 &&
+      "$src"m4/gnulib-cache.m4 "$src"m4/warn-on-use.m4 "$src"m4/wint_t.m4 &&
 cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc &&
 cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux &&
 { test -z "$src" || cd "$src"; } &&
diff --git a/admin/merge-pkg-config b/admin/merge-pkg-config
index 2066c9b..363d22d 100755
--- a/admin/merge-pkg-config
+++ b/admin/merge-pkg-config
@@ -4,7 +4,7 @@
 #
 #      admin/merge-pkg-config
 
-# Copyright 2014-2016 Free Software Foundation, Inc.
+# Copyright 2014-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/admin/notes/copyright b/admin/notes/copyright
index 6cfc331..bc427d6 100644
--- a/admin/notes/copyright
+++ b/admin/notes/copyright
@@ -1,4 +1,4 @@
-Copyright (C) 2007-2016 Free Software Foundation, Inc.
+Copyright (C) 2007-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/admin/notes/font-backend b/admin/notes/font-backend
index 5b65ae5..2418966 100644
--- a/admin/notes/font-backend
+++ b/admin/notes/font-backend
@@ -1,4 +1,4 @@
-Copyright (C) 2002-2016 Free Software Foundation, Inc.
+Copyright (C) 2002-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/admin/notes/hydra b/admin/notes/hydra
index aadc169..d595935 100644
--- a/admin/notes/hydra
+++ b/admin/notes/hydra
@@ -1,6 +1,6 @@
 -*- mode: outline; coding: utf-8 -*-
 
-Copyright (C) 2013-2016 Free Software Foundation, Inc.
+Copyright (C) 2013-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA
diff --git a/admin/notes/multi-tty b/admin/notes/multi-tty
index ac1c7b2..b58180e 100644
--- a/admin/notes/multi-tty
+++ b/admin/notes/multi-tty
@@ -1,6 +1,6 @@
 -*- coding: utf-8; mode: text; -*-
 
-Copyright (C) 2007-2016 Free Software Foundation, Inc.
+Copyright (C) 2007-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 From README.multi-tty in the multi-tty branch.
diff --git a/admin/notes/unicode b/admin/notes/unicode
index 7f0ce10..0d6c6af 100644
--- a/admin/notes/unicode
+++ b/admin/notes/unicode
@@ -1,6 +1,6 @@
                                             -*-mode: text; coding: utf-8;-*-
 
-Copyright (C) 2002-2016 Free Software Foundation, Inc.
+Copyright (C) 2002-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Importing a new Unicode Standard version into Emacs
diff --git a/admin/notes/www b/admin/notes/www
index eddaa91..8e911a4 100644
--- a/admin/notes/www
+++ b/admin/notes/www
@@ -1,6 +1,6 @@
 -*- outline -*-
 
-Copyright (C) 2013-2016 Free Software Foundation, Inc.
+Copyright (C) 2013-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 NOTES FOR EMACS WWW PAGES
diff --git a/admin/nt/README-UNDUMP.W32 b/admin/nt/README-UNDUMP.W32
index 3cd25c3..f421416 100644
--- a/admin/nt/README-UNDUMP.W32
+++ b/admin/nt/README-UNDUMP.W32
@@ -1,4 +1,4 @@
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
                           Emacs for Windows
diff --git a/admin/nt/README-ftp-server b/admin/nt/README-ftp-server
index 337be1a..5fd363c 100644
--- a/admin/nt/README-ftp-server
+++ b/admin/nt/README-ftp-server
@@ -1,4 +1,4 @@
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
                      Precompiled Distributions of
diff --git a/admin/quick-install-emacs b/admin/quick-install-emacs
index b1b3793..a5ec696 100755
--- a/admin/quick-install-emacs
+++ b/admin/quick-install-emacs
@@ -1,7 +1,7 @@
 #!/bin/sh
 ### quick-install-emacs --- do a halfway-decent job of installing emacs quickly
 
-## Copyright (C) 2001-2016 Free Software Foundation, Inc.
+## Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ## Author: Miles Bader <address@hidden>
 
diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in
index d46420d..f58303b 100644
--- a/admin/unidata/Makefile.in
+++ b/admin/unidata/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 2012-2016 Free Software Foundation, Inc.
+# Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 # Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
 #   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/admin/unidata/blocks.awk b/admin/unidata/blocks.awk
index bf9a942..7845d02 100755
--- a/admin/unidata/blocks.awk
+++ b/admin/unidata/blocks.awk
@@ -1,6 +1,6 @@
 #!/usr/bin/awk -f
 
-## Copyright (C) 2015-2016 Free Software Foundation, Inc.
+## Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ## Author: Glenn Morris <address@hidden>
 
diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el
index c03f549..3c5119a 100644
--- a/admin/unidata/unidata-gen.el
+++ b/admin/unidata/unidata-gen.el
@@ -1,6 +1,6 @@
 ;; unidata-gen.el -- Create files containing character property data.
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/admin/unidata/uvs.el b/admin/unidata/uvs.el
index bd03621..0b7edc7 100644
--- a/admin/unidata/uvs.el
+++ b/admin/unidata/uvs.el
@@ -1,6 +1,6 @@
 ;;; uvs.el --- utility for UVS (format 14) cmap subtables in OpenType fonts.
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: YAMAMOTO Mitsuharu <address@hidden>
 
diff --git a/admin/update-copyright b/admin/update-copyright
index 2f6dc11..4da327b 100755
--- a/admin/update-copyright
+++ b/admin/update-copyright
@@ -7,7 +7,7 @@
 # By default, this script uses the local-time calendar year.
 # Set the UPDATE_COPYRIGHT_YEAR environment variable to override the default.
 
-# Copyright 2013-2016 Free Software Foundation, Inc.
+# Copyright 2013-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/admin/update_autogen b/admin/update_autogen
index 98be4ed..32dfbec 100755
--- a/admin/update_autogen
+++ b/admin/update_autogen
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 ### update_autogen - update some auto-generated files in the Emacs tree
 
-## Copyright (C) 2011-2016 Free Software Foundation, Inc.
+## Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ## Author: Glenn Morris <address@hidden>
 
diff --git a/autogen.sh b/autogen.sh
index b1bd86b..bb3f818 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 ### autogen.sh - tool to help build Emacs from a repository checkout
 
-## Copyright (C) 2011-2016 Free Software Foundation, Inc.
+## Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ## Author: Glenn Morris <address@hidden>
 ## Maintainer: address@hidden
@@ -103,14 +103,17 @@ check_version ()
     return 2
 }
 
+do_check=true
 do_autoconf=false
-test $# -eq 0 && do_autoconf=true
 do_git=false
 
 for arg; do
     case $arg in
       --help)
-       exec echo "$0: usage: $0 [all|autoconf|git]";;
+       exec echo "$0: usage: $0 [--no-check] [target...]
+  Targets are: all autoconf git";;
+      --no-check)
+        do_check=false;;
       all)
        do_autoconf=true
        test -e .git && do_git=true;;
@@ -123,71 +126,77 @@ for arg; do
     esac
 done
 
+case $do_autoconf,$do_git in
+  false,false)
+    do_autoconf=true;;
+esac
 
 # Generate Autoconf and Automake related files, if requested.
 
 if $do_autoconf; then
 
-  echo 'Checking whether you have the necessary tools...
+  if $do_check; then
+
+    echo 'Checking whether you have the necessary tools...
 (Read INSTALL.REPO for more details on building Emacs)'
 
-  missing=
+    missing=
 
-  for prog in $progs; do
+    for prog in $progs; do
 
-    sprog=`echo "$prog" | sed 's/-/_/g'`
+      sprog=`echo "$prog" | sed 's/-/_/g'`
 
-    eval min=\$${sprog}_min
+      eval min=\$${sprog}_min
 
-    echo "Checking for $prog (need at least version $min)..."
+      printf '%s' "Checking for $prog (need at least version $min) ... "
 
-    check_version $prog $min
+      check_version $prog $min
 
-    retval=$?
+      retval=$?
 
-    case $retval in
-        0) stat="ok" ;;
-        1) stat="missing" ;;
-        2) stat="too old" ;;
-        *) stat="unable to check" ;;
-    esac
+      case $retval in
+          0) stat="ok" ;;
+          1) stat="missing" ;;
+          2) stat="too old" ;;
+          *) stat="unable to check" ;;
+      esac
 
-    echo $stat
+      echo $stat
 
-    if [ $retval -ne 0 ]; then
-        missing="$missing $prog"
-        eval ${sprog}_why=\""$stat"\"
-    fi
+      if [ $retval -ne 0 ]; then
+          missing="$missing $prog"
+          eval ${sprog}_why=\""$stat"\"
+      fi
 
-  done
+    done
 
 
-  if [ x"$missing" != x ]; then
+    if [ x"$missing" != x ]; then
 
-    echo '
+      echo '
 Building Emacs from the repository requires the following specialized 
programs:'
 
-    for prog in $progs; do
-        sprog=`echo "$prog" | sed 's/-/_/g'`
+      for prog in $progs; do
+          sprog=`echo "$prog" | sed 's/-/_/g'`
 
-        eval min=\$${sprog}_min
+          eval min=\$${sprog}_min
 
-        echo "$prog (minimum version $min)"
-    done
+          echo "$prog (minimum version $min)"
+      done
 
 
-    echo '
+      echo '
 Your system seems to be missing the following tool(s):'
 
-    for prog in $missing; do
-        sprog=`echo "$prog" | sed 's/-/_/g'`
+      for prog in $missing; do
+          sprog=`echo "$prog" | sed 's/-/_/g'`
 
-        eval why=\$${sprog}_why
+          eval why=\$${sprog}_why
 
-        echo "$prog ($why)"
-    done
+          echo "$prog ($why)"
+      done
 
-    echo '
+      echo '
 If you think you have the required tools, please add them to your PATH
 and re-run this script.
 
@@ -208,21 +217,28 @@ make install.  Add the installation directory to your 
PATH and re-run
 this script.
 
 If you know that the required versions are in your PATH, but this
-script has made an error, then you can simply run
+script has made an error, then you can simply re-run this script with
+the --no-check option.
+
+Please report any problems with this script to address@hidden .'
 
-autoreconf -fi -I m4
+      exit 1
+    fi
 
-instead of this script.
+    echo 'Your system has the required tools.'
 
-Please report any problems with this script to address@hidden .'
+  fi                            # do_check
 
-    exit 1
+  ## Create nt/gnulib.mk if it doesn't exist, as autoreconf will need it.
+  if test ! -f nt/gnulib.mk; then
+      echo 'Inferring nt/gnulib.mk from lib/gnulib.mk ...'
+      metascript='/^[^#]/s|^.*$|/^## begin  *gnulib module &/,/^## end  
*gnulib module &/d|p'
+      script=`sed -n "$metascript" nt/gnulib-modules-to-delete.cfg` || exit
+      sed "$script" lib/gnulib.mk > nt/gnulib.mk || exit
   fi
 
-  echo 'Your system has the required tools.'
   echo "Running 'autoreconf -fi -I m4' ..."
 
-
   ## Let autoreconf figure out what, if anything, needs doing.
   ## Use autoreconf's -f option in case autoreconf itself has changed.
   autoreconf -fi -I m4 || exit $?
diff --git a/build-aux/git-hooks/commit-msg b/build-aux/git-hooks/commit-msg
index 52f9225..475956e 100755
--- a/build-aux/git-hooks/commit-msg
+++ b/build-aux/git-hooks/commit-msg
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Check the format of GNU Emacs change log entries.
 
-# Copyright 2014-2016 Free Software Foundation, Inc.
+# Copyright 2014-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/build-aux/git-hooks/pre-commit b/build-aux/git-hooks/pre-commit
index 3709784..6483bfc 100755
--- a/build-aux/git-hooks/pre-commit
+++ b/build-aux/git-hooks/pre-commit
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Check file names in git commits for GNU Emacs.
 
-# Copyright 2014-2016 Free Software Foundation, Inc.
+# Copyright 2014-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog
index 83bafdf..cf16425 100755
--- a/build-aux/gitlog-to-changelog
+++ b/build-aux/gitlog-to-changelog
@@ -9,7 +9,7 @@ my $VERSION = '2016-03-22 21:49'; # UTC
 # If you change this file with Emacs, please let the write hook
 # do its job.  Otherwise, update this string manually.
 
-# Copyright (C) 2008-2016 Free Software Foundation, Inc.
+# Copyright (C) 2008-2017 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
diff --git a/build-aux/gitlog-to-emacslog b/build-aux/gitlog-to-emacslog
index 085d2c2..482b8db 100755
--- a/build-aux/gitlog-to-emacslog
+++ b/build-aux/gitlog-to-emacslog
@@ -2,7 +2,7 @@
 
 # Convert git log output to ChangeLog format for GNU Emacs.
 
-# Copyright (C) 2014-2016 Free Software Foundation, Inc.
+# Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 # Author: Paul Eggert
 
diff --git a/build-aux/make-info-dir b/build-aux/make-info-dir
index 3154812..e8c6694 100755
--- a/build-aux/make-info-dir
+++ b/build-aux/make-info-dir
@@ -2,7 +2,7 @@
 
 ### make-info-dir - create info/dir, for systems without install-info
 
-## Copyright (C) 2013-2016 Free Software Foundation, Inc.
+## Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ## Author: Glenn Morris <address@hidden>
 ## Maintainer: address@hidden
diff --git a/build-aux/move-if-change b/build-aux/move-if-change
index e3fe71d..4dd8699 100755
--- a/build-aux/move-if-change
+++ b/build-aux/move-if-change
@@ -8,7 +8,7 @@ VERSION='2016-01-11 22:04'; # UTC
 # If you change this file with Emacs, please let the write hook
 # do its job.  Otherwise, update this string manually.
 
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 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
diff --git a/build-aux/msys-to-w32 b/build-aux/msys-to-w32
index 8b1c970..3f57478 100755
--- a/build-aux/msys-to-w32
+++ b/build-aux/msys-to-w32
@@ -2,7 +2,7 @@
 # Convert a MSYS path list to Windows-native format.
 # Status is zero if successful, nonzero otherwise.
 
-# Copyright (C) 2013-2016 Free Software Foundation, Inc.
+# Copyright (C) 2013-2017 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
diff --git a/build-aux/snippet/arg-nonnull.h b/build-aux/snippet/arg-nonnull.h
index 584649f..1e62cc8 100644
--- a/build-aux/snippet/arg-nonnull.h
+++ b/build-aux/snippet/arg-nonnull.h
@@ -1,5 +1,5 @@
 /* A C macro for declaring that specific arguments must not be NULL.
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2017 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
diff --git a/build-aux/snippet/c++defs.h b/build-aux/snippet/c++defs.h
index 2b819da..f03f359 100644
--- a/build-aux/snippet/c++defs.h
+++ b/build-aux/snippet/c++defs.h
@@ -1,5 +1,5 @@
 /* C++ compatible function declaration macros.
-   Copyright (C) 2010-2016 Free Software Foundation, Inc.
+   Copyright (C) 2010-2017 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
diff --git a/build-aux/snippet/warn-on-use.h b/build-aux/snippet/warn-on-use.h
index 2948b47..3c0eb57 100644
--- a/build-aux/snippet/warn-on-use.h
+++ b/build-aux/snippet/warn-on-use.h
@@ -1,5 +1,5 @@
 /* A C macro for emitting warnings if a function is used.
-   Copyright (C) 2010-2016 Free Software Foundation, Inc.
+   Copyright (C) 2010-2017 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
diff --git a/build-aux/update-copyright b/build-aux/update-copyright
index 17ee6b1..2d20d21 100755
--- a/build-aux/update-copyright
+++ b/build-aux/update-copyright
@@ -5,7 +5,7 @@ eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" "$@"'
 
 my $VERSION = '2016-01-12.23:13'; # UTC
 
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017 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
diff --git a/build-aux/update-subdirs b/build-aux/update-subdirs
index 6b7d0bd..90f1b3c 100755
--- a/build-aux/update-subdirs
+++ b/build-aux/update-subdirs
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Write into $1/subdirs.el a list of subdirs of directory $1.
 
-# Copyright (C) 1994-1995, 1997, 1999, 2001-2016 Free Software
+# Copyright (C) 1994-1995, 1997, 1999, 2001-2017 Free Software
 # Foundation, Inc.
 
 # This file is part of GNU Emacs.
diff --git a/config.bat b/config.bat
index a5bea71..d1f2702 100644
--- a/config.bat
+++ b/config.bat
@@ -1,7 +1,7 @@
 @echo off
 rem   ----------------------------------------------------------------------
 rem   Configuration script for MSDOS
-rem   Copyright (C) 1994-1999, 2001-2016 Free Software Foundation, Inc.
+rem   Copyright (C) 1994-1999, 2001-2017 Free Software Foundation, Inc.
 
 rem   This file is part of GNU Emacs.
 
diff --git a/configure.ac b/configure.ac
index 5a695c8..0c9f703 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@ dnl     autoconf
 dnl in the directory containing this script.
 dnl If you changed any AC_DEFINES, also run autoheader.
 dnl
-dnl Copyright (C) 1994-1996, 1999-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 1994-1996, 1999-2017 Free Software Foundation, Inc.
 dnl
 dnl  This file is part of GNU Emacs.
 dnl
@@ -772,9 +772,6 @@ if test x$GCC = xyes; then
   test "x$GCC_TEST_OPTIONS" != x && CC="$CC $GCC_TEST_OPTIONS"
 fi
 
-dnl This is used in lib/Makefile.am to use nt/gnulib.mk, the
-dnl alternative to lib/gnulib.mk, so as to avoid generating header files
-dnl that clash with MinGW.
 AM_CONDITIONAL([BUILDING_FOR_WINDOWSNT], [test "x$opsys" = "xmingw32"])
 
 # Avoid gnulib's tests for -lcrypto, so that there's no static dependency on 
it.
@@ -793,6 +790,10 @@ ac_func_list=$funcs
 AC_CHECK_FUNCS_ONCE([putenv])
 AC_DEFUN([gl_FUNC_PUTENV],
   [test "$ac_cv_func_putenv" = yes || REPLACE_PUTENV=1])
+# Emacs does not use the wchar or wctype-h modules.
+AC_DEFUN([gt_TYPE_WINT_T],
+  [GNULIB_OVERRIDES_WINT_T=0
+   AC_SUBST([GNULIB_OVERRIDES_WINT_T])])
 
 # Initialize gnulib right after choosing the compiler.
 dnl Amongst other things, this sets AR and ARFLAGS.
@@ -1219,14 +1220,13 @@ esac
 AC_SUBST([PAXCTL_dumped])
 AC_SUBST([PAXCTL_notdumped])
 
-## Need makeinfo >= 4.7 (?) to build the manuals.
+## Require makeinfo >= 4.13 (last of the 4.x series) to build the manuals.
 if test "$MAKEINFO" != "no"; then
   if test "$MAKEINFO" = "${am_missing_run}makeinfo"; then
     MAKEINFO=makeinfo
   fi
   case `($MAKEINFO --version) 2>/dev/null` in
-    *' (GNU texinfo) '4.[[7-9]]* | \
-    *' (GNU texinfo) '4.[[1-9][0-9]]* | \
+    *' (GNU texinfo) '4.1[[3-9]]* | \
     *' (GNU texinfo) '[[5-9]]* | \
     *' (GNU texinfo) '[[1-9][0-9]]* ) ;;
     *) MAKEINFO=no;;
@@ -1249,7 +1249,7 @@ if test "$MAKEINFO" = "no"; then
   if test "x${with_makeinfo}" = "xno"; then
     HAVE_MAKEINFO=no
   elif test ! -e "$srcdir/info/emacs" && test ! -e "$srcdir/info/emacs.info"; 
then
-    AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.7, and your
+    AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.13, and your
 source tree does not seem to have pre-built manuals in the 'info' directory.
 Either install a suitable version of makeinfo, or re-run configure
 with the '--without-makeinfo' option to build without the manuals.] )
@@ -3488,7 +3488,7 @@ elif test "${with_png}" != no; then
   elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
     AC_MSG_CHECKING([for png])
     png_cflags=`(libpng-config --cflags) 2>&AS_MESSAGE_LOG_FD` &&
-    png_libs=`(libpng-config --libs) 2>&AS_MESSAGE_LOG_FD` || {
+    png_ldflags=`(libpng-config --ldflags) 2>&AS_MESSAGE_LOG_FD` || {
       # libpng-config does not work; configure by hand.
       # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
       # in /usr/include/libpng.
@@ -3498,18 +3498,18 @@ elif test "${with_png}" != no; then
       else
        png_cflags=
       fi
-      png_libs='-lpng'
+      png_ldflags='-lpng'
     }
     SAVE_CFLAGS=$CFLAGS
     SAVE_LIBS=$LIBS
     CFLAGS="$CFLAGS $png_cflags"
-    LIBS="$png_libs -lz -lm $LIBS"
+    LIBS="$png_ldflags -lz -lm $LIBS"
     AC_LINK_IFELSE(
       [AC_LANG_PROGRAM([[#include <png.h>]],
         [[return !png_get_channels (0, 0);]])],
       [HAVE_PNG=yes
        PNG_CFLAGS=`AS_ECHO(["$png_cflags"]) | sed -e "$edit_cflags"`
-       LIBPNG=$png_libs
+       LIBPNG=$png_ldflags
        # $LIBPNG requires explicit -lz in some cases.
        # We don't know what those cases are, exactly, so play it safe and
        # append -lz to any nonempty $LIBPNG, unless we're already using LIBZ.
@@ -4875,7 +4875,7 @@ fi
 
 version=$PACKAGE_VERSION
 
-copyright="Copyright (C) 2016 Free Software Foundation, Inc."
+copyright="Copyright (C) 2017 Free Software Foundation, Inc."
 AC_DEFINE_UNQUOTED(COPYRIGHT, ["$copyright"],
   [Short copyright string for this version of Emacs.])
 AC_SUBST(copyright)
@@ -5220,7 +5220,7 @@ AC_SUBST(WINDOW_SYSTEM_OBJ)
 
 AH_TOP([/* GNU Emacs site configuration template file.
 
-Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2016
+Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2017
   Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/doc/emacs/ChangeLog.1 b/doc/emacs/ChangeLog.1
index 3f746eb..3c7aeb0 100644
--- a/doc/emacs/ChangeLog.1
+++ b/doc/emacs/ChangeLog.1
@@ -10919,7 +10919,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1993-1999, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1993-1999, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/doc/emacs/Makefile.in b/doc/emacs/Makefile.in
index aeb80a8..ffcc4ba 100644
--- a/doc/emacs/Makefile.in
+++ b/doc/emacs/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 1994, 1996-2016 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1996-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/doc/emacs/abbrevs.texi b/doc/emacs/abbrevs.texi
index 227fe6f..8cb7a48 100644
--- a/doc/emacs/abbrevs.texi
+++ b/doc/emacs/abbrevs.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Abbrevs
diff --git a/doc/emacs/ack.texi b/doc/emacs/ack.texi
index 6a0a289..1ebe852 100644
--- a/doc/emacs/ack.texi
+++ b/doc/emacs/ack.texi
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8 -*-
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1994-1997, 1999-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1994-1997, 1999-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @c
 @node Acknowledgments
diff --git a/doc/emacs/anti.texi b/doc/emacs/anti.texi
index 68a65a7..87cbe43 100644
--- a/doc/emacs/anti.texi
+++ b/doc/emacs/anti.texi
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8 -*-
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 2005-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2005-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 
 @node Antinews
diff --git a/doc/emacs/arevert-xtra.texi b/doc/emacs/arevert-xtra.texi
index 7b0b6d2..936930e 100644
--- a/doc/emacs/arevert-xtra.texi
+++ b/doc/emacs/arevert-xtra.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 2004-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2004-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @c
 @c This file is included either in emacs-xtra.texi (when producing the
diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi
index b6939be..6b66c18 100644
--- a/doc/emacs/basic.texi
+++ b/doc/emacs/basic.texi
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8 -*-
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Basic
diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi
index c70e583..f3a3c8e 100644
--- a/doc/emacs/buffers.texi
+++ b/doc/emacs/buffers.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Buffers
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index a416734..ba8eae0 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Building
diff --git a/doc/emacs/cal-xtra.texi b/doc/emacs/cal-xtra.texi
index 842c079..da4e9a0 100644
--- a/doc/emacs/cal-xtra.texi
+++ b/doc/emacs/cal-xtra.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.  -*- coding: utf-8 -*-
address@hidden Copyright (C) 2004-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2004-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @c
 @c This file is included either in emacs-xtra.texi (when producing the
diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi
index 60d323b..679bcb4 100644
--- a/doc/emacs/calendar.texi
+++ b/doc/emacs/calendar.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.  -*- coding: utf-8 -*-
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Calendar/Diary
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index 524cd8d..6c86670 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Emacs Invocation
diff --git a/doc/emacs/commands.texi b/doc/emacs/commands.texi
index cf5ce14..143b075 100644
--- a/doc/emacs/commands.texi
+++ b/doc/emacs/commands.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @iftex
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 01637ae..c84f4a9 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8 -*-
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Customization
diff --git a/doc/emacs/dired-xtra.texi b/doc/emacs/dired-xtra.texi
index e91aa8c..b1a587d 100644
--- a/doc/emacs/dired-xtra.texi
+++ b/doc/emacs/dired-xtra.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 2004-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2004-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @c
 @c This file is included either in emacs-xtra.texi (when producing the
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index 2cda51a..22b0fcd 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Dired
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 492dfc6..c6e990d 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8 -*-
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 
 @c See file emacs.texi for copying conditions.
diff --git a/doc/emacs/emacs-xtra.texi b/doc/emacs/emacs-xtra.texi
index 786ba65..d4d4860 100644
--- a/doc/emacs/emacs-xtra.texi
+++ b/doc/emacs/emacs-xtra.texi
@@ -12,7 +12,7 @@
 @copying
 This manual describes specialized features of Emacs.
 
-Copyright @copyright{} 2004--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2004--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index c23c96f..a6f2896 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -27,7 +27,7 @@ This is the @cite{GNU Emacs Manual},
 @end ifnottex
 updated for Emacs version @value{EMACSVER}.
 
-Copyright @copyright{} 1985--1987, 1993--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1985--1987, 1993--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/emacs/emerge-xtra.texi b/doc/emacs/emerge-xtra.texi
index d56fbae..683822b 100644
--- a/doc/emacs/emerge-xtra.texi
+++ b/doc/emacs/emerge-xtra.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 2004-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2004-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @c
 @c This file is included either in emacs-xtra.texi (when producing the
diff --git a/doc/emacs/entering.texi b/doc/emacs/entering.texi
index 7f186cf..103b935 100644
--- a/doc/emacs/entering.texi
+++ b/doc/emacs/entering.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @iftex
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index ef362e9..5c582e5 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Files
@@ -937,6 +937,8 @@ discard your changes.)
 @findex auto-revert-mode
 @findex auto-revert-tail-mode
 @vindex auto-revert-interval
address@hidden auto-revert-remote-files
address@hidden auto-revert-verbose
   You can also tell Emacs to revert buffers periodically.  To do this
 for a specific buffer, enable the minor mode Auto-Revert mode by
 typing @kbd{M-x auto-revert-mode}.  This automatically reverts the
@@ -944,7 +946,8 @@ current buffer every five seconds; you can change the 
interval through
 the variable @code{auto-revert-interval}.  To do the same for all file
 buffers, type @kbd{M-x global-auto-revert-mode} to enable Global
 Auto-Revert mode.  These minor modes do not check or revert remote
-files, because that is usually too slow.
+files, because that is usually too slow.  This behavior can be changed
+by setting the variable @code{auto-revert-remote-files} to address@hidden
 
   One use of Auto-Revert mode is to ``tail'' a file such as a system
 log, so that changes made to that file by other programs are
@@ -955,6 +958,9 @@ the end, use Auto-Revert Tail mode instead
 (@code{auto-revert-tail-mode}).  It is more efficient for this.
 Auto-Revert Tail mode works also for remote files.
 
+  When a buffer is auto-reverted, a message is generated.  This can be
+suppressed by setting @code{auto-revert-verbose} to @code{nil}.
+
   @xref{VC Undo}, for commands to revert to earlier versions of files
 under version control.  @xref{VC Mode Line}, for Auto Revert
 peculiarities when visiting files under version control.
diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi
index 584efc6..2ba3e26 100644
--- a/doc/emacs/fixit.texi
+++ b/doc/emacs/fixit.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Fixit
diff --git a/doc/emacs/fortran-xtra.texi b/doc/emacs/fortran-xtra.texi
index 5763c9f..1125942 100644
--- a/doc/emacs/fortran-xtra.texi
+++ b/doc/emacs/fortran-xtra.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 2004-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2004-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @c
 @c This file is included either in emacs-xtra.texi (when producing the
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index 082de37..d1fd4d0 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Frames
diff --git a/doc/emacs/glossary.texi b/doc/emacs/glossary.texi
index d648939..41899e6 100644
--- a/doc/emacs/glossary.texi
+++ b/doc/emacs/glossary.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Glossary
diff --git a/doc/emacs/gnu.texi b/doc/emacs/gnu.texi
index 282d24d..78f5354 100644
--- a/doc/emacs/gnu.texi
+++ b/doc/emacs/gnu.texi
@@ -1,4 +1,4 @@
address@hidden Copyright (C) 1985-1987, 1993, 1995, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993, 1995, 2001-2017 Free Software
 @c Foundation, Inc.
 @c
 @c Permission is granted to anyone to make or distribute verbatim copies
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index 64da890..548ca6a 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Help
diff --git a/doc/emacs/indent.texi b/doc/emacs/indent.texi
index f9f231d..24a817f 100644
--- a/doc/emacs/indent.texi
+++ b/doc/emacs/indent.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Indentation
diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi
index 107adb9..47de053 100644
--- a/doc/emacs/killing.texi
+++ b/doc/emacs/killing.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 
diff --git a/doc/emacs/kmacro.texi b/doc/emacs/kmacro.texi
index a6344c0..6c3e421 100644
--- a/doc/emacs/kmacro.texi
+++ b/doc/emacs/kmacro.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Keyboard Macros
diff --git a/doc/emacs/m-x.texi b/doc/emacs/m-x.texi
index 4b1165a..0ee4e71 100644
--- a/doc/emacs/m-x.texi
+++ b/doc/emacs/m-x.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node M-x
diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi
index 6e6520b..134646c 100644
--- a/doc/emacs/macos.texi
+++ b/doc/emacs/macos.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 2000-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2000-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Mac OS / GNUstep
 @appendix Emacs and Mac OS / GNUstep
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index 66781ad..faaa960 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual., Abbrevs, This is part of the Emacs 
manual., Top
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Maintaining
diff --git a/doc/emacs/mark.texi b/doc/emacs/mark.texi
index fdba0a4..1e16050 100644
--- a/doc/emacs/mark.texi
+++ b/doc/emacs/mark.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Mark
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi
index 7c97e42..83e7f3b 100644
--- a/doc/emacs/mini.texi
+++ b/doc/emacs/mini.texi
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8 -*-
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Minibuffer
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 2290dec..091ead1 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @iftex
diff --git a/doc/emacs/modes.texi b/doc/emacs/modes.texi
index 63e31ab..0acb82d 100644
--- a/doc/emacs/modes.texi
+++ b/doc/emacs/modes.texi
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8 -*-
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Modes
diff --git a/doc/emacs/msdos-xtra.texi b/doc/emacs/msdos-xtra.texi
index 89c14d2..4ac734e 100644
--- a/doc/emacs/msdos-xtra.texi
+++ b/doc/emacs/msdos-xtra.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 2004-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2004-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @c
 @c This file is included either in emacs-xtra.texi (when producing the
diff --git a/doc/emacs/msdos.texi b/doc/emacs/msdos.texi
index 2793bb9..3569365 100644
--- a/doc/emacs/msdos.texi
+++ b/doc/emacs/msdos.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Microsoft Windows
@@ -612,7 +612,11 @@ variable @code{w32-rwindow-modifier} controls the effect 
of the right
 Windows key, and @code{w32-scroll-lock-modifier} does the same for the
 @key{ScrLock} key.  If these variables are set to @code{nil}, the
 right Windows key produces the symbol @code{rwindow} and @key{ScrLock}
-produces the symbol @code{scroll}.
+produces the symbol @code{scroll}.  If you want @key{ScrLock} to
+produce the same effect as in other applications, i.e.@: toggle the
+Scroll Lock @acronym{LED} indication on the keyboard, set
address@hidden to @code{t} or any address@hidden
+value other than the above modifier symbols.
 
 @vindex w32-pass-alt-to-system
 @cindex Windows system menu
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi
index 882d75f..76bc945 100644
--- a/doc/emacs/mule.texi
+++ b/doc/emacs/mule.texi
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8 -*-
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1997, 1999-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1997, 1999-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node International
 @chapter International Character Set Support
@@ -1369,6 +1369,13 @@ Resources}).
 characters the font does not cover.  The standard fontset is only used if
 explicitly requested, despite its name.
 
address@hidden describe-fontset
+  To show the information about a specific fontset, use the
address@hidden@kbd{M-x describe-fontset}} command.  It prompts for a fontset
+name, defaulting to the one used by the current frame, and then
+displays all the subranges of characters and the fonts assigned to
+them in that fontset.
+
   A fontset does not necessarily specify a font for every character
 code.  If a fontset specifies no font for a certain character, or if
 it specifies a font that does not exist on your system, then it cannot
diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi
index 5662c85..d6f88aa 100644
--- a/doc/emacs/package.texi
+++ b/doc/emacs/package.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Packages
diff --git a/doc/emacs/picture-xtra.texi b/doc/emacs/picture-xtra.texi
index b7d3cb3..c3ea77c 100644
--- a/doc/emacs/picture-xtra.texi
+++ b/doc/emacs/picture-xtra.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 2004-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2004-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @c
 @c This file is included either in emacs-xtra.texi (when producing the
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 3c80228..97751aa 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8 -*-
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Programs
diff --git a/doc/emacs/regs.texi b/doc/emacs/regs.texi
index a62d2b6..7369f6b 100644
--- a/doc/emacs/regs.texi
+++ b/doc/emacs/regs.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Registers
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi
index 84f1296..d463982 100644
--- a/doc/emacs/rmail.texi
+++ b/doc/emacs/rmail.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Rmail
diff --git a/doc/emacs/screen.texi b/doc/emacs/screen.texi
index 46ccca5..6b97958 100644
--- a/doc/emacs/screen.texi
+++ b/doc/emacs/screen.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Screen
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 543d547..b728258 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Search
diff --git a/doc/emacs/sending.texi b/doc/emacs/sending.texi
index 30b8491..5cc09eb 100644
--- a/doc/emacs/sending.texi
+++ b/doc/emacs/sending.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Sending Mail
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index 6c513c9..3c46049 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8 -*-
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Text
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index fbd13c8..ee3fc49 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @iftex
diff --git a/doc/emacs/vc-xtra.texi b/doc/emacs/vc-xtra.texi
index abd29fd..538aeee 100644
--- a/doc/emacs/vc-xtra.texi
+++ b/doc/emacs/vc-xtra.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 2004-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2004-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @c
 @c This file is included in emacs-xtra.texi when producing the printed
diff --git a/doc/emacs/vc1-xtra.texi b/doc/emacs/vc1-xtra.texi
index 9cbe4b5..8e5c5d5 100644
--- a/doc/emacs/vc1-xtra.texi
+++ b/doc/emacs/vc1-xtra.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 2004-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2004-2017 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @c
 @c This file is included either in vc-xtra.texi (when producing the
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index bb8b68b..65454ed 100644
--- a/doc/emacs/windows.texi
+++ b/doc/emacs/windows.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
address@hidden Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Windows
diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi
index 61fdb0a..7e27ddd 100644
--- a/doc/emacs/xresources.texi
+++ b/doc/emacs/xresources.texi
@@ -1,5 +1,5 @@
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 1987, 1993-1995, 1997, 2001-2016 Free Software
address@hidden Copyright (C) 1987, 1993-1995, 1997, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node X Resources
diff --git a/doc/lispintro/ChangeLog.1 b/doc/lispintro/ChangeLog.1
index d00f288..7e5b629 100644
--- a/doc/lispintro/ChangeLog.1
+++ b/doc/lispintro/ChangeLog.1
@@ -782,7 +782,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/doc/lispintro/Makefile.in b/doc/lispintro/Makefile.in
index 58ebd81..d8e203f 100644
--- a/doc/lispintro/Makefile.in
+++ b/doc/lispintro/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 1994-1999, 2001-2016 Free Software Foundation, Inc.
+# Copyright (C) 1994-1999, 2001-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/doc/lispintro/README b/doc/lispintro/README
index aa7d07c..f8134fc 100644
--- a/doc/lispintro/README
+++ b/doc/lispintro/README
@@ -1,4 +1,4 @@
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/doc/lispintro/cons-1.eps b/doc/lispintro/cons-1.eps
index 1dc7aa7..1d4e78c 100644
--- a/doc/lispintro/cons-1.eps
+++ b/doc/lispintro/cons-1.eps
@@ -4,7 +4,7 @@
 %%CreationDate: Wed Mar  8 14:26:58 1995
 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (address@hidden)
 
-% Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 %
 % This file is part of GNU Emacs.
 %
diff --git a/doc/lispintro/cons-2.eps b/doc/lispintro/cons-2.eps
index fbb13f2..af59a0f 100644
--- a/doc/lispintro/cons-2.eps
+++ b/doc/lispintro/cons-2.eps
@@ -4,7 +4,7 @@
 %%CreationDate: Wed Mar  8 14:26:39 1995
 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (address@hidden)
 
-% Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 %
 % This file is part of GNU Emacs.
 %
diff --git a/doc/lispintro/cons-2a.eps b/doc/lispintro/cons-2a.eps
index b91ea17..2edcc21 100644
--- a/doc/lispintro/cons-2a.eps
+++ b/doc/lispintro/cons-2a.eps
@@ -4,7 +4,7 @@
 %%CreationDate: Tue Mar 14 15:09:30 1995
 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (address@hidden)
 
-% Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 %
 % This file is part of GNU Emacs.
 %
diff --git a/doc/lispintro/cons-3.eps b/doc/lispintro/cons-3.eps
index 349a941..f7e37f1 100644
--- a/doc/lispintro/cons-3.eps
+++ b/doc/lispintro/cons-3.eps
@@ -4,7 +4,7 @@
 %%CreationDate: Wed Mar  8 14:25:41 1995
 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (address@hidden)
 
-% Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 %
 % This file is part of GNU Emacs.
 %
diff --git a/doc/lispintro/cons-4.eps b/doc/lispintro/cons-4.eps
index c6e2d44..f9549b9 100644
--- a/doc/lispintro/cons-4.eps
+++ b/doc/lispintro/cons-4.eps
@@ -4,7 +4,7 @@
 %%CreationDate: Wed Mar  8 14:25:06 1995
 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (address@hidden)
 
-% Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 %
 % This file is part of GNU Emacs.
 %
diff --git a/doc/lispintro/cons-5.eps b/doc/lispintro/cons-5.eps
index 7421a5d..83f14df 100644
--- a/doc/lispintro/cons-5.eps
+++ b/doc/lispintro/cons-5.eps
@@ -4,7 +4,7 @@
 %%CreationDate: Wed Mar  8 14:27:28 1995
 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (address@hidden)
 
-% Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 %
 % This file is part of GNU Emacs.
 %
diff --git a/doc/lispintro/drawers.eps b/doc/lispintro/drawers.eps
index 3acf54e..b9efdce 100644
--- a/doc/lispintro/drawers.eps
+++ b/doc/lispintro/drawers.eps
@@ -9,7 +9,7 @@
 %%EndComments
 %%BeginProlog
 
-% Copyright (C) 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 2001-2017 Free Software Foundation, Inc.
 %
 % This file is part of GNU Emacs.
 %
diff --git a/doc/lispintro/emacs-lisp-intro.texi 
b/doc/lispintro/emacs-lisp-intro.texi
index 0a6b775..830c072 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -113,7 +113,7 @@ Edition @value{edition-number}, @value{update-date}
 Distributed with Emacs version @value{EMACSVER}.
 @end ifnottex
 @sp 1
-Copyright @copyright{} 1990--1995, 1997, 2001--2016 Free Software
+Copyright @copyright{} 1990--1995, 1997, 2001--2017 Free Software
 Foundation, Inc.
 @sp 1
 
diff --git a/doc/lispintro/lambda-1.eps b/doc/lispintro/lambda-1.eps
index fb9e41b..47370b2 100644
--- a/doc/lispintro/lambda-1.eps
+++ b/doc/lispintro/lambda-1.eps
@@ -4,7 +4,7 @@
 %%CreationDate: Wed Mar  8 14:31:53 1995
 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (address@hidden)
 
-% Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 %
 % This file is part of GNU Emacs.
 %
diff --git a/doc/lispintro/lambda-2.eps b/doc/lispintro/lambda-2.eps
index 4aa38df..804dbfb 100644
--- a/doc/lispintro/lambda-2.eps
+++ b/doc/lispintro/lambda-2.eps
@@ -4,7 +4,7 @@
 %%CreationDate: Wed Mar  8 14:33:09 1995
 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (address@hidden)
 
-% Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 %
 % This file is part of GNU Emacs.
 %
diff --git a/doc/lispintro/lambda-3.eps b/doc/lispintro/lambda-3.eps
index 0612eb3..95610f6 100644
--- a/doc/lispintro/lambda-3.eps
+++ b/doc/lispintro/lambda-3.eps
@@ -4,7 +4,7 @@
 %%CreationDate: Wed Mar  8 14:33:49 1995
 %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (address@hidden)
 
-% Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 %
 % This file is part of GNU Emacs.
 %
diff --git a/doc/lispref/ChangeLog.1 b/doc/lispref/ChangeLog.1
index 610e754..6ce0065 100644
--- a/doc/lispref/ChangeLog.1
+++ b/doc/lispref/ChangeLog.1
@@ -13989,7 +13989,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1998-2016 Free Software Foundation, Inc.
+  Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/doc/lispref/Makefile.in b/doc/lispref/Makefile.in
index 5bf6e99..89eb810 100644
--- a/doc/lispref/Makefile.in
+++ b/doc/lispref/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 1990-1996, 1998-2016 Free Software Foundation, Inc.
+# Copyright (C) 1990-1996, 1998-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/doc/lispref/README b/doc/lispref/README
index c7dced8..fbc3169 100644
--- a/doc/lispref/README
+++ b/doc/lispref/README
@@ -1,4 +1,4 @@
-Copyright (C) 2001-2016 Free Software Foundation, Inc.  -*- outline -*-
+Copyright (C) 2001-2017 Free Software Foundation, Inc.  -*- outline -*-
 See the end of the file for license conditions.
 
 
diff --git a/doc/lispref/abbrevs.texi b/doc/lispref/abbrevs.texi
index cdea2a8..dfcb173 100644
--- a/doc/lispref/abbrevs.texi
+++ b/doc/lispref/abbrevs.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1994, 1999, 2001-2016 Free Software 
Foundation,
address@hidden Copyright (C) 1990-1994, 1999, 2001-2017 Free Software 
Foundation,
 @c Inc.
 @c See the file elisp.texi for copying conditions.
 @node Abbrevs
diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi
index 17d765d..02d08eb 100644
--- a/doc/lispref/anti.texi
+++ b/doc/lispref/anti.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1999, 2002-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1999, 2002-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 
 @c This node must have no pointers.
diff --git a/doc/lispref/back.texi b/doc/lispref/back.texi
index ecd9c61..9fc5faa 100644
--- a/doc/lispref/back.texi
+++ b/doc/lispref/back.texi
@@ -1,6 +1,6 @@
 \input texinfo  @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 2001-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2001-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @c
 @c %**start of header
diff --git a/doc/lispref/backups.texi b/doc/lispref/backups.texi
index 35a1865..7b6f084 100644
--- a/doc/lispref/backups.texi
+++ b/doc/lispref/backups.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1999, 2001-2016 Free Software 
Foundation,
address@hidden Copyright (C) 1990-1995, 1999, 2001-2017 Free Software 
Foundation,
 @c Inc.
 @c See the file elisp.texi for copying conditions.
 @node Backups and Auto-Saving
diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
index e4ef4d5..cf24a73 100644
--- a/doc/lispref/buffers.texi
+++ b/doc/lispref/buffers.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Buffers
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi
index c4de529..424d25a 100644
--- a/doc/lispref/commands.texi
+++ b/doc/lispref/commands.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Command Loop
diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi
index f6cd022..b1cc04b 100644
--- a/doc/lispref/compile.texi
+++ b/doc/lispref/compile.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1994, 2001-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1990-1994, 2001-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Byte Compilation
 @chapter Byte Compilation
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
index 947c54f..401a999 100644
--- a/doc/lispref/control.texi
+++ b/doc/lispref/control.texi
@@ -1,6 +1,6 @@
 @c -*- mode: texinfo; coding: utf-8 -*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Control Structures
diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi
index 4a6f7f2..5372728 100644
--- a/doc/lispref/customize.texi
+++ b/doc/lispref/customize.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1997-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1997-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Customization
 @chapter Customization Settings
diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi
index 8fb663d..2ca4a0a 100644
--- a/doc/lispref/debugging.texi
+++ b/doc/lispref/debugging.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1994, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1994, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Debugging
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 945a701..aa10c1f 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -1,6 +1,6 @@
 @c -*- mode: texinfo; coding: utf-8 -*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1990-1995, 1998-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Display
 @chapter Emacs Display
diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi
index 65ccb64..f6f73ea 100644
--- a/doc/lispref/edebug.texi
+++ b/doc/lispref/edebug.texi
@@ -1,6 +1,6 @@
 @comment -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1992-1994, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1992-1994, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 494e8fc..e0bd337 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -99,7 +99,7 @@ This is the @cite{GNU Emacs Lisp Reference Manual}
 @end ifnottex
 corresponding to Emacs version @value{EMACSVER}.
 
-Copyright @copyright{} 1990--1996, 1998--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1990--1996, 1998--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi
index 4a0e38c..2ec1a10 100644
--- a/doc/lispref/errors.texi
+++ b/doc/lispref/errors.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1993, 1999, 2001-2016 Free Software 
Foundation,
address@hidden Copyright (C) 1990-1993, 1999, 2001-2017 Free Software 
Foundation,
 @c Inc.
 @c See the file elisp.texi for copying conditions.
 @node Standard Errors
diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi
index d2a8ff5..363d0a1 100644
--- a/doc/lispref/eval.texi
+++ b/doc/lispref/eval.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1994, 1998, 2001-2016 Free Software 
Foundation,
address@hidden Copyright (C) 1990-1994, 1998, 2001-2017 Free Software 
Foundation,
 @c Inc.
 @c See the file elisp.texi for copying conditions.
 @node Evaluation
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 906cd56..853e844 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Files
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index dc1c524..68aa40f 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Frames
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index 8dff1a7..81e3eee 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -1,6 +1,6 @@
 @c -*- mode: texinfo; coding: utf-8 -*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Functions
diff --git a/doc/lispref/hash.texi b/doc/lispref/hash.texi
index 4607bb0..725d19c 100644
--- a/doc/lispref/hash.texi
+++ b/doc/lispref/hash.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1999, 2001-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Hash Tables
 @chapter Hash Tables
diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi
index 1bb2c7c..cb21411 100644
--- a/doc/lispref/help.texi
+++ b/doc/lispref/help.texi
@@ -1,6 +1,6 @@
 @c -*- mode: texinfo; coding: utf-8 -*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Documentation
diff --git a/doc/lispref/hooks.texi b/doc/lispref/hooks.texi
index 1027aa0..0ac5b08 100644
--- a/doc/lispref/hooks.texi
+++ b/doc/lispref/hooks.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1993, 1998, 2001-2016 Free Software 
Foundation,
address@hidden Copyright (C) 1990-1993, 1998, 2001-2017 Free Software 
Foundation,
 @c Inc.
 @c See the file elisp.texi for copying conditions.
 @node Standard Hooks
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi
index fedef3d..663d0fd 100644
--- a/doc/lispref/internals.texi
+++ b/doc/lispref/internals.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1993, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1993, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node GNU Emacs Internals
@@ -672,7 +672,7 @@ usage: (or CONDITIONS...)  */)
       if (!NILP (val))
         break;
       args = XCDR (args);
-      QUIT;
+      maybe_quit ();
     @}
 @end group
 
@@ -792,8 +792,8 @@ their addresses after performing Lisp evaluation.  Lisp 
evaluation can
 occur via calls to @code{eval_sub} or @code{Feval}, either directly or
 indirectly.
 
address@hidden @code{QUIT}, use in Lisp primitives
-  Note the call to the @code{QUIT} macro inside the loop: this macro
address@hidden @code{maybe_quit}, use in Lisp primitives
+  Note the call to @code{maybe_quit} inside the loop: this function
 checks whether the user pressed @kbd{C-g}, and if so, aborts the
 processing.  You should do that in any loop that can potentially
 require a large number of iterations; in this case, the list of
diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi
index 2f84aee..d871d3a 100644
--- a/doc/lispref/intro.texi
+++ b/doc/lispref/intro.texi
@@ -1,6 +1,6 @@
 @c -*-coding: utf-8-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1994, 2001-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1990-1994, 2001-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 
 @node Introduction
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index 29f2c42..73f5572 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -1,6 +1,6 @@
 @c -*- mode: texinfo; coding: utf-8 -*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1994, 1998-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1990-1994, 1998-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Keymaps
 @chapter Keymaps
diff --git a/doc/lispref/lay-flat.texi b/doc/lispref/lay-flat.texi
index 42bc266..4adb03b 100644
--- a/doc/lispref/lay-flat.texi
+++ b/doc/lispref/lay-flat.texi
@@ -1,6 +1,6 @@
 \input texinfo    @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 2001-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2001-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @c
 @comment %**start of header
diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi
index dc4075d..8eab281 100644
--- a/doc/lispref/lists.texi
+++ b/doc/lispref/lists.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Lists
@@ -362,6 +362,39 @@ This is the same as @code{(cdr (cdr @var{cons-cell}))}
 or @code{(nthcdr 2 @var{cons-cell})}.
 @end defun
 
address@hidden caaar
address@hidden caadr
address@hidden cadar
address@hidden caddr
address@hidden cdaar
address@hidden cdadr
address@hidden cddar
address@hidden cdddr
address@hidden caaaar
address@hidden caaadr
address@hidden caadar
address@hidden caaddr
address@hidden cadaar
address@hidden cadadr
address@hidden caddar
address@hidden cadddr
address@hidden cdaaar
address@hidden cdaadr
address@hidden cdadar
address@hidden cdaddr
address@hidden cddaar
address@hidden cddadr
address@hidden cdddar
address@hidden cddddr
+In addition to the above, 24 additional compositions of @code{car} and
address@hidden are defined as @address@hidden and @address@hidden,
+where each @address@hidden is either @code{a} or @code{d}.  @code{cadr},
address@hidden, and @code{cadddr} pick out the second, third or fourth
+elements of a list, respectively.  @file{cl-lib} provides the same
+under the names @code{cl-second}, @code{cl-third}, and
address@hidden  @xref{List Functions,,, cl, Common Lisp
+Extensions}.
+
 @defun butlast x &optional n
 This function returns the list @var{x} with the last element,
 or the last @var{n} elements, removed.  If @var{n} is greater
diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi
index 44ce719..1199cfa 100644
--- a/doc/lispref/loading.texi
+++ b/doc/lispref/loading.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Loading
diff --git a/doc/lispref/macros.texi b/doc/lispref/macros.texi
index 6472bd1..5638dfa 100644
--- a/doc/lispref/macros.texi
+++ b/doc/lispref/macros.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998, 2001-2016 Free Software 
Foundation,
address@hidden Copyright (C) 1990-1995, 1998, 2001-2017 Free Software 
Foundation,
 @c Inc.
 @c See the file elisp.texi for copying conditions.
 @node Macros
diff --git a/doc/lispref/maps.texi b/doc/lispref/maps.texi
index cf2c648..54d279e 100644
--- a/doc/lispref/maps.texi
+++ b/doc/lispref/maps.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1993, 1999, 2001-2016 Free Software 
Foundation,
address@hidden Copyright (C) 1990-1993, 1999, 2001-2017 Free Software 
Foundation,
 @c Inc.
 @c See the file elisp.texi for copying conditions.
 @node Standard Keymaps
diff --git a/doc/lispref/markers.texi b/doc/lispref/markers.texi
index 1b4d74f..214b052 100644
--- a/doc/lispref/markers.texi
+++ b/doc/lispref/markers.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Markers
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index 8d53475..8140255 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Minibuffers
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 3d3122a..0913d74 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Modes
diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi
index 9f805c2..29930c5 100644
--- a/doc/lispref/nonascii.texi
+++ b/doc/lispref/nonascii.texi
@@ -1,6 +1,6 @@
 @c -*- mode: texinfo; coding: utf-8 -*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1998-1999, 2001-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1998-1999, 2001-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Non-ASCII Characters
 @chapter address@hidden Characters
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi
index 28eb6b1..deae5fd 100644
--- a/doc/lispref/numbers.texi
+++ b/doc/lispref/numbers.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Numbers
diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi
index 5e608bc..fbb6658 100644
--- a/doc/lispref/objects.texi
+++ b/doc/lispref/objects.texi
@@ -1,6 +1,6 @@
 @c -*- mode: texinfo; coding: utf-8 -*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Lisp Data Types
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 1a45eac..553bb4a 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node System Interface
diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi
index 67fd45b..6066ea9 100644
--- a/doc/lispref/package.texi
+++ b/doc/lispref/package.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 2010-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2010-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Packaging
 @chapter Preparing Lisp code for distribution
diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi
index a56ab5e..7c30fe9 100644
--- a/doc/lispref/positions.texi
+++ b/doc/lispref/positions.texi
@@ -1,6 +1,6 @@
 @c -*- mode: texinfo; coding: utf-8 -*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1990-1995, 1998-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Positions
 @chapter Positions
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index 064934c..58e04a3 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Processes
@@ -2414,6 +2414,14 @@ If address@hidden, the host's capability string.
 The connection type: @samp{plain} or @samp{tls}.
 @end table
 
address@hidden :shell-command @var{string-or-nil}
+If the connection @code{type} is @code{shell}, this parameter will be
+interpreted as a format-spec string that will be executed to make the
+connection.  The specs available are @samp{%s} for the host name and
address@hidden for the port number.  For instance, if you want to first ssh
+to @samp{gateway} before making a plain connection, then this
+parameter could be something like @samp{ssh gateway nc %s %p}.
+
 @end table
 
 @end defun
diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi
index 4b97aae..67d4c22 100644
--- a/doc/lispref/searching.texi
+++ b/doc/lispref/searching.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Searching and Matching
@@ -553,7 +553,11 @@ characters whose Unicode @samp{general-category} property
 (@pxref{Character Properties}) indicates they are alphabetic
 characters.
 @item [:blank:]
-This matches space and tab only.
+This matches horizontal whitespace, as defined by Annex C of the
+Unicode Technical Standard #18.  In particular, it matches spaces,
+tabs, and other characters whose Unicode @samp{general-category}
+property (@pxref{Character Properties}) indicates they are spacing
+separators.
 @item [:cntrl:]
 This matches any @acronym{ASCII} control character.
 @item [:digit:]
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi
index 4213086..2c88ee3 100644
--- a/doc/lispref/sequences.texi
+++ b/doc/lispref/sequences.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Sequences Arrays Vectors
diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi
index 41bc71e..ccb0847 100644
--- a/doc/lispref/streams.texi
+++ b/doc/lispref/streams.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1994, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1994, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Read and Print
@@ -639,7 +639,7 @@ spacing between calls.
 This function outputs a newline to @var{stream}.  The name stands for
 ``terminate print''.  If @var{ensure} is address@hidden no newline is printed
 if @var{stream} is already at the beginning of a line.  Note in this
-case @var{stream} can not be a function and an error is signalled if
+case @var{stream} can not be a function and an error is signaled if
 it is.  This function returns @code{t} if a newline is printed.
 @end defun
 
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index ff10851..cf47db4 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -1,6 +1,6 @@
 @c -*- mode: texinfo; coding: utf-8 -*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Strings and Characters
diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi
index 36a2795..e6ea8a1 100644
--- a/doc/lispref/symbols.texi
+++ b/doc/lispref/symbols.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Symbols
diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi
index f81c164..e3ae535 100644
--- a/doc/lispref/syntax.texi
+++ b/doc/lispref/syntax.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Syntax Tables
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 0da34d1..438c67b 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1990-1995, 1998-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Text
 @chapter Text
diff --git a/doc/lispref/threads.texi b/doc/lispref/threads.texi
index de1c27b..71742f5 100644
--- a/doc/lispref/threads.texi
+++ b/doc/lispref/threads.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 2012-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2012-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Threads
 @chapter Threads
@@ -127,6 +127,17 @@ Return a list of all the live thread objects.  A new list 
is returned
 by each invocation.
 @end defun
 
+When code run by a thread signals an error that is unhandled, the
+thread exits.  Other threads can access the error form which caused
+the thread to exit using the following function.
+
address@hidden thread-last-error
+This function returns the last error form recorded when a thread
+exited due to an error.  Each thread that exits abnormally overwrites
+the form stored by the previous thread's error with a new value, so
+only the last one can be accessed.
address@hidden defun
+
 @node Mutexes
 @section Mutexes
 
diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi
index b45e68d..4e2a0fa 100644
--- a/doc/lispref/tips.texi
+++ b/doc/lispref/tips.texi
@@ -1,6 +1,6 @@
 @c -*- mode: texinfo; coding: utf-8 -*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1993, 1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1993, 1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Tips
@@ -930,7 +930,7 @@ explains these conventions, starting with an example:
 @group
 ;;; foo.el --- Support for the Foo programming language
 
-;; Copyright (C) 2010-2016 Your Name
+;; Copyright (C) 2010-2017 Your Name
 @end group
 
 ;; Author: Your Name <yourname@@example.com>
diff --git a/doc/lispref/two-volume-cross-refs.txt 
b/doc/lispref/two-volume-cross-refs.txt
index 658ae15..78133e9 100644
--- a/doc/lispref/two-volume-cross-refs.txt
+++ b/doc/lispref/two-volume-cross-refs.txt
@@ -1,4 +1,4 @@
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See end for copying conditions.
 
 Two Volume Cross References
diff --git a/doc/lispref/two-volume.make b/doc/lispref/two-volume.make
index 5023f79..a797750 100644
--- a/doc/lispref/two-volume.make
+++ b/doc/lispref/two-volume.make
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2016 Free Software Foundation, Inc.
+# Copyright (C) 2007-2017 Free Software Foundation, Inc.
 # See end for copying conditions.
 
 # although it would be nice to use tex rather than pdftex to avoid
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
index 40738e6..8a61018 100644
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1990-1995, 1998-2017 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Variables
 @chapter Variables
@@ -223,6 +223,18 @@ Here is an example of this: @code{z} is bound to the old 
value of
      @result{} (1 2)
 @end group
 @end example
+
+On the other hand, the order of @emph{bindings} is unspecified: in the
+following example, either 1 or 2 might be printed.
+
address@hidden
+(let ((x 1)
+      (x 2))
+  (print x))
address@hidden example
+
+Therefore, avoid binding a variable more than once in a single
address@hidden form.
 @end defspec
 
 @defspec let* (address@hidden) address@hidden
@@ -809,7 +821,7 @@ functions.
 
 @subsection Limitations
 
-There are a couple of ways in which a variable could be modifed (or at
+There are a couple of ways in which a variable could be modified (or at
 least appear to be modified) without triggering a watchpoint.
 
 Since watchpoints are attached to symbols, modification to the
@@ -1630,6 +1642,45 @@ an ordinary evaluated argument.
 @end example
 @end defun
 
+  A variable can be let-bound (@pxref{Local Variables}) to a value.
+This makes its global value shadowed by the binding;
address@hidden will then return the value from that binding, not
+the global value, and @code{set-default} will be prevented from
+setting the global value (it will change the let-bound value instead).
+The following two functions allow to reference the global value even
+if it's shadowed by a let-binding.
+
address@hidden top-level default value
address@hidden default-toplevel-value symbol
+This function returns the @dfn{top-level} default value of
address@hidden, which is its value outside of any let-binding.
address@hidden defun
+
address@hidden
address@hidden
+(defvar variable 'global-value)
+    @result{} variable
address@hidden group
address@hidden
+(let ((variable 'let-binding))
+  (default-value 'variable))
+    @result{} let-binding
address@hidden group
address@hidden
+(let ((variable 'let-binding))
+  (default-toplevel-value 'variable))
+    @result{} global-value
address@hidden group
address@hidden example
+
address@hidden set-default-toplevel-value symbol value
+This function sets the top-level default value of @var{symbol} to the
+specified @var{value}.  This comes in handy when you want to set the
+global value of @var{symbol} regardless of whether your code runs in
+the context of @var{symbol}'s let-binding.
address@hidden defun
+
+
 @node File Local Variables
 @section File Local Variables
 @cindex file local variables
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index 4dc671c..6f3de0c 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2016 Free Software
address@hidden Copyright (C) 1990-1995, 1998-1999, 2001-2017 Free Software
 @c Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @node Windows
diff --git a/doc/man/ChangeLog.1 b/doc/man/ChangeLog.1
index d5a2771..aa863ff 100644
--- a/doc/man/ChangeLog.1
+++ b/doc/man/ChangeLog.1
@@ -176,7 +176,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2007-2016 Free Software Foundation, Inc.
+  Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/doc/man/ebrowse.1 b/doc/man/ebrowse.1
index efbb95b..ad347d1 100644
--- a/doc/man/ebrowse.1
+++ b/doc/man/ebrowse.1
@@ -85,7 +85,7 @@ was written by Gerd Moellmann.
 Copyright
 .if t \(co
 .if n (C)
-2008-2016 Free Software Foundation, Inc.
+2008-2017 Free Software Foundation, Inc.
 .PP
 Permission is granted to make and distribute verbatim copies of this
 document provided the copyright notice and this permission notice are
diff --git a/doc/man/emacs.1.in b/doc/man/emacs.1.in
index 73bc38d..6807e86 100644
--- a/doc/man/emacs.1.in
+++ b/doc/man/emacs.1.in
@@ -653,7 +653,7 @@ For detailed credits and acknowledgments, see the GNU Emacs 
manual.
 Copyright
 .if t \(co
 .if n (C)
-1995, 1999-2016 Free Software Foundation, Inc.
+1995, 1999-2017 Free Software Foundation, Inc.
 .PP
 Permission is granted to make and distribute verbatim copies of this
 document provided the copyright notice and this permission notice are
diff --git a/doc/man/etags.1 b/doc/man/etags.1
index 83b970f..ee3971c 100644
--- a/doc/man/etags.1
+++ b/doc/man/etags.1
@@ -284,7 +284,7 @@ Stallman.
 Copyright
 .if t \(co
 .if n (C)
-1992, 1999, 2001-2016 Free Software Foundation, Inc.
+1992, 1999, 2001-2017 Free Software Foundation, Inc.
 .PP
 Permission is granted to make and distribute verbatim copies of this
 document provided the copyright notice and this permission notice are
diff --git a/doc/misc/ChangeLog.1 b/doc/misc/ChangeLog.1
index 93aacb5..b3cb6a5 100644
--- a/doc/misc/ChangeLog.1
+++ b/doc/misc/ChangeLog.1
@@ -12116,7 +12116,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1993-1999, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1993-1999, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index eca74a0..8ff8232 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 1994, 1996-2016 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1996-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/doc/misc/ada-mode.texi b/doc/misc/ada-mode.texi
index 4fc0c05..127a009 100644
--- a/doc/misc/ada-mode.texi
+++ b/doc/misc/ada-mode.texi
@@ -4,7 +4,7 @@
 @include docstyle.texi
 
 @copying
-Copyright @copyright{} 1999--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1999--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/auth.texi b/doc/misc/auth.texi
index fa4be24..29e55ed 100644
--- a/doc/misc/auth.texi
+++ b/doc/misc/auth.texi
@@ -11,7 +11,7 @@
 @copying
 This file describes the Emacs auth-source library.
 
-Copyright @copyright{} 2008--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2008--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi
index 6bdbd34..507a048 100644
--- a/doc/misc/autotype.texi
+++ b/doc/misc/autotype.texi
@@ -11,7 +11,7 @@
 @c  @cindex autotypist
 
 @copying
-Copyright @copyright{} 1994--1995, 1999, 2001--2016
+Copyright @copyright{} 1994--1995, 1999, 2001--2017
 Free Software Foundation, Inc.
 
 @quotation
diff --git a/doc/misc/bovine.texi b/doc/misc/bovine.texi
index 11dbfff..dadf903 100644
--- a/doc/misc/bovine.texi
+++ b/doc/misc/bovine.texi
@@ -24,7 +24,7 @@
 @c %**end of header
 
 @copying
-Copyright @copyright{} 1999--2004, 2012--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1999--2004, 2012--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index b4c69ba..baf46f7 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -95,7 +95,7 @@ This file documents Calc, the GNU Emacs calculator, included 
with
 GNU Emacs @value{EMACSVER}.
 @end ifnotinfo
 
-Copyright @copyright{} 1990--1991, 2001--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1990--1991, 2001--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index 4f77111..68a16c0 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -157,7 +157,7 @@ CC Mode
 @copying
 This manual is for CC Mode in Emacs.
 
-Copyright @copyright{} 1995--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1995--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index 4f15cf5..8baa0bd 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -7,7 +7,7 @@
 @copying
 This file documents the GNU Emacs Common Lisp emulation package.
 
-Copyright @copyright{} 1993, 2001--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1993, 2001--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -1179,6 +1179,11 @@ behavior.  (@code{point} and @code{point-marker} are 
equivalent
 as @code{setf} places; each will accept either an integer or a
 marker as the stored value.)
 
+Like in the case of @code{let}, the @var{value} forms are evaluated in
+the order they appear, but the order of bindings is unspecified.
+Therefore, avoid binding the same @var{place} more than once in a
+single @code{cl-letf} form.
+
 Since generalized variables look like lists, @code{let}'s shorthand
 of using @samp{foo} for @samp{(foo nil)} as a @var{binding} would
 be ambiguous in @code{cl-letf} and is not allowed.
@@ -3689,7 +3694,7 @@ i.e., chains of cons cells.
 
 @defun cl-caddr x
 This function is equivalent to @code{(car (cdr (cdr @var{x})))}.
-Likewise, this package defines all 24 @address@hidden functions
+Likewise, this package aliases all 24 @address@hidden functions
 where @var{xxx} is up to four @samp{a}s and/or @samp{d}s.
 All of these functions are @code{setf}-able, and calls to them
 are expanded inline by the byte-compiler for maximum efficiency.
diff --git a/doc/misc/dbus.texi b/doc/misc/dbus.texi
index f4ebfeb..a2494d3 100644
--- a/doc/misc/dbus.texi
+++ b/doc/misc/dbus.texi
@@ -10,7 +10,7 @@
 @syncodeindex fn cp
 
 @copying
-Copyright @copyright{} 2007--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2007--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/dired-x.texi b/doc/misc/dired-x.texi
index 7ac5bc6..1e6f4b0 100644
--- a/doc/misc/dired-x.texi
+++ b/doc/misc/dired-x.texi
@@ -20,7 +20,7 @@
 @comment %**end of header (This is for running Texinfo on a region.)
 
 @copying
-Copyright @copyright{} 1994--1995, 1999, 2001--2016
+Copyright @copyright{} 1994--1995, 1999, 2001--2017
 Free Software Foundation, Inc.
 
 @quotation
diff --git a/doc/misc/ebrowse.texi b/doc/misc/ebrowse.texi
index 816cb56..61ee04e 100644
--- a/doc/misc/ebrowse.texi
+++ b/doc/misc/ebrowse.texi
@@ -11,7 +11,7 @@
 @copying
 This file documents Ebrowse, a C++ class browser for GNU Emacs.
 
-Copyright @copyright{} 2000--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2000--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index 839b5ac..e87ae95 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -6,7 +6,7 @@
 @copying
 This file describes EDE, the Emacs Development Environment.
 
-Copyright @copyright{} 1998--2001, 2004--2005, 2008--2016
+Copyright @copyright{} 1998--2001, 2004--2005, 2008--2017
 Free Software Foundation, Inc.
 
 @quotation
diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi
index 376aaee..19b7adb 100644
--- a/doc/misc/ediff.texi
+++ b/doc/misc/ediff.texi
@@ -26,7 +26,7 @@
 This file documents Ediff, a comprehensive visual interface to Unix diff
 and patch utilities.
 
-Copyright @copyright{} 1995--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1995--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -1247,9 +1247,14 @@ merged (see @code{ediff-cleanup-hook}, below).
 @vindex ediff-cleanup-hook
 This hook is run just before @code{ediff-quit-hook}.  This is a good
 place to do various cleanups, such as deleting the variant buffers.
-Ediff provides a function, @code{ediff-janitor}, as one such possible
-hook, which you can add to @code{ediff-cleanup-hook} with
address@hidden
+Ediff provides a helper function, @code{ediff-janitor}, that you can
+invoke from a private hook function.  For example:
+
address@hidden
+(defun my-ediff-janitor ()
+  (ediff-janitor nil nil))
+(add-hook 'ediff-cleanup-hook #'my-ediff-janitor)
address@hidden example
 
 @findex ediff-janitor
 This function kills buffers A, B, and, possibly, C, if these buffers aren't
diff --git a/doc/misc/edt.texi b/doc/misc/edt.texi
index cb22b82..9680aa4 100644
--- a/doc/misc/edt.texi
+++ b/doc/misc/edt.texi
@@ -6,7 +6,7 @@
 @copying
 This file documents the EDT emulation package for Emacs.
 
-Copyright @copyright{} 1986, 1992, 1994--1995, 1999--2016
+Copyright @copyright{} 1986, 1992, 1994--1995, 1999--2017
 Free Software Foundation, Inc.
 
 @quotation
diff --git a/doc/misc/efaq-w32.texi b/doc/misc/efaq-w32.texi
index 28c09f6..bb548c9 100644
--- a/doc/misc/efaq-w32.texi
+++ b/doc/misc/efaq-w32.texi
@@ -15,7 +15,7 @@ Answers to Frequently asked Questions about using Emacs on 
Microsoft Windows.
 @include emacsver.texi
 
 @copying
-Copyright @copyright{} 2008, 2010-2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2008, 2010-2017 Free Software Foundation, Inc.
 
 @quotation
 This list of frequently asked questions about GNU Emacs on MS Windows
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 9efe0e7..f7a47f8 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -12,7 +12,7 @@
 @c appreciate a notice if you do).
 
 @copying
-Copyright @copyright{} 2001--2016 Free Software Foundation, address@hidden
+Copyright @copyright{} 2001--2017 Free Software Foundation, address@hidden
 Copyright @copyright{} 1994, 1995, 1996, 1997, 1998, 1999, 2000
 Reuven M. address@hidden
 Copyright @copyright{} 1992, 1993 Steven address@hidden
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi
index 3193002..3820bd5 100644
--- a/doc/misc/eieio.texi
+++ b/doc/misc/eieio.texi
@@ -12,7 +12,7 @@
 @copying
 This manual documents EIEIO, an object framework for Emacs Lisp.
 
-Copyright @copyright{} 2007--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2007--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/emacs-gnutls.texi b/doc/misc/emacs-gnutls.texi
index 9d52508..8716563 100644
--- a/doc/misc/emacs-gnutls.texi
+++ b/doc/misc/emacs-gnutls.texi
@@ -9,7 +9,7 @@
 @copying
 This file describes the Emacs GnuTLS integration.
 
-Copyright @copyright{} 2012--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2012--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index 2b93587..b0cfbc9 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -12,7 +12,7 @@
 @copying
 This file documents the Emacs MIME interface functionality.
 
-Copyright @copyright{} 1998--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1998--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -654,6 +654,10 @@ Each tag can contain zero or more parameters on the form
 but that's not necessary unless the value contains white space.  So
 @samp{filename=/home/user/#hello$^yes} is perfectly valid.
 
+If you want to talk about MML in a message, you need a way to
+``quote'' these tags.  The way to do that is to include an exclamation
+point after the opening two characters; i. e. @samp{<#!part ...>}.
+
 The following parameters have meaning in @acronym{MML}; parameters that have no
 meaning are ignored.  The @acronym{MML} parameter names are the same as the
 @acronym{MIME} parameter names; the things in the parentheses say which
@@ -1536,6 +1540,9 @@ Here's a bunch of time/date/second/day examples:
 (date-to-time "Sat Sep 12 12:21:54 1998 +0200")
 @result{} (13818 19266)
 
+(parse-iso8601-time-string "1998-09-12T12:21:54+0200")
address@hidden (13818 19266)
+
 (float-time '(13818 19266))
 @result{} 905595714.0
 
diff --git a/doc/misc/epa.texi b/doc/misc/epa.texi
index cb177c4..dadd064 100644
--- a/doc/misc/epa.texi
+++ b/doc/misc/epa.texi
@@ -10,7 +10,7 @@
 @copying
 This file describes EasyPG Assistant @value{VERSION}.
 
-Copyright @copyright{} 2007--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2007--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi
index d9b646f..e38ead0 100644
--- a/doc/misc/erc.texi
+++ b/doc/misc/erc.texi
@@ -10,7 +10,7 @@
 @copying
 This manual is for ERC as distributed with Emacs @value{EMACSVER}.
 
-Copyright @copyright{} 2005--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2005--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi
index 144dfd9..b07cb0b 100644
--- a/doc/misc/ert.texi
+++ b/doc/misc/ert.texi
@@ -11,7 +11,7 @@
 @end direntry
 
 @copying
-Copyright @copyright{} 2008, 2010--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2008, 2010--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index a7a3840..bd89b9c 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -10,7 +10,7 @@
 @copying
 This manual is for Eshell, the Emacs shell.
 
-Copyright @copyright{} 1999--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1999--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/eudc.texi b/doc/misc/eudc.texi
index 1bbb108..b7b263d 100644
--- a/doc/misc/eudc.texi
+++ b/doc/misc/eudc.texi
@@ -14,7 +14,7 @@ This file documents EUDC version 1.40.0.
 EUDC is the Emacs Unified Directory Client, a common interface to
 directory servers and contact information.
 
-Copyright @copyright{} 1998, 2000--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1998, 2000--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/eww.texi b/doc/misc/eww.texi
index ea25863..e9b544f 100644
--- a/doc/misc/eww.texi
+++ b/doc/misc/eww.texi
@@ -8,7 +8,7 @@
 @copying
 This file documents the GNU Emacs Web Wowser (EWW) package.
 
-Copyright @copyright{} 2014--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2014--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi
index 6cece30..1bc416f 100644
--- a/doc/misc/flymake.texi
+++ b/doc/misc/flymake.texi
@@ -12,7 +12,7 @@
 This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}),
 which is a universal on-the-fly syntax checker for GNU Emacs.
 
-Copyright @copyright{} 2004--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2004--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/forms.texi b/doc/misc/forms.texi
index 13654ed..85be178 100644
--- a/doc/misc/forms.texi
+++ b/doc/misc/forms.texi
@@ -19,7 +19,7 @@
 @copying
 This file documents Forms mode, a form-editing major mode for GNU Emacs.
 
-Copyright @copyright{} 1989, 1997, 2001--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1989, 1997, 2001--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/gnus-coding.texi b/doc/misc/gnus-coding.texi
index 661e705..542779f 100644
--- a/doc/misc/gnus-coding.texi
+++ b/doc/misc/gnus-coding.texi
@@ -8,7 +8,7 @@
 @syncodeindex pg cp
 
 @copying
-Copyright @copyright{} 2004--2005, 2007--2016 Free Software
+Copyright @copyright{} 2004--2005, 2007--2017 Free Software
 Foundation, Inc.
 
 @quotation
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 5a49f4a..6f5af94 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -1,7 +1,7 @@
 @c \input texinfo @c -*-texinfo-*-
 @c Uncomment 1st line before texing this file alone.
 @c %**start of header
address@hidden Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 @c
 @c @setfilename gnus-faq.info
 @c @settitle Frequently Asked Questions
diff --git a/doc/misc/gnus-news.el b/doc/misc/gnus-news.el
index 5ccd3f4..c7d41c8 100644
--- a/doc/misc/gnus-news.el
+++ b/doc/misc/gnus-news.el
@@ -1,5 +1,5 @@
 ;;; gnus-news.el --- a hack to create GNUS-NEWS from texinfo source
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Reiner Steib  <address@hidden>
 ;; Keywords: tools
@@ -26,7 +26,7 @@
 (defvar gnus-news-header-disclaimer
 "GNUS NEWS -- history of user-visible changes.
 
-Copyright (C) 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1999-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Please send Gnus bug reports to address@hidden
diff --git a/doc/misc/gnus-news.texi b/doc/misc/gnus-news.texi
index d1e83a7..fc10410 100644
--- a/doc/misc/gnus-news.texi
+++ b/doc/misc/gnus-news.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 
address@hidden Copyright (C) 2004-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 @c    Permission is granted to anyone to make or distribute verbatim copies
 @c    of this document as received, in any medium, provided that the
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index c34dd7c..ceeb42b 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -10,7 +10,7 @@
 @syncodeindex pg cp
 
 @copying
-Copyright @copyright{} 1995--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1995--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -10197,6 +10197,11 @@ Sort by lines (@code{gnus-summary-sort-by-lines}).
 @findex gnus-summary-sort-by-chars
 Sort by article length (@code{gnus-summary-sort-by-chars}).
 
address@hidden C-c C-s C-m C-m
address@hidden C-c C-s C-m C-m (Summary)
address@hidden gnus-summary-sort-by-marks
+Sort by article ``readedness'' marks (@code{gnus-summary-sort-by-marks}).
+
 @item C-c C-s C-i
 @kindex C-c C-s C-i (Summary)
 @findex gnus-summary-sort-by-score
@@ -13515,7 +13520,8 @@ Close the connection (if any) to the server
 @kindex D (Server)
 @findex gnus-server-deny-server
 Mark the current server as unreachable
-(@code{gnus-server-deny-server}).
+(@code{gnus-server-deny-server}).  This will effectively disable the
+server.
 
 @item M-o
 @kindex M-o (Server)
@@ -14656,7 +14662,7 @@ an additional mail source for a particular group by 
including the
 @code{group} mail specifier in @code{mail-sources}, and setting a
 @code{mail-source} group parameter (@pxref{Group Parameters}) specifying
 a single mail source.  When this is used, @code{mail-sources} is
-typically just @code{(group)}; the @code{mail-source} parameter for a
+typically just @code{((group))}; the @code{mail-source} parameter for a
 group might look like this:
 
 @lisp
@@ -21857,37 +21863,37 @@ In summary mode:
 
 @table @kbd
 
address@hidden $ m
address@hidden $ m (Summary)
address@hidden G G m
address@hidden G G m (Summary)
 @findex nnmairix-widget-search-from-this-article
 Allows you to create a mairix query or group based on the current
 message using graphical widgets (same as @code{nnmairix-widget-search})
 (@code{nnmairix-widget-search-from-this-article}).
 
address@hidden $ g
address@hidden $ g (Summary)
address@hidden G G g
address@hidden G G g (Summary)
 @findex nnmairix-create-search-group-from-message
 Interactively creates a new search group with query based on the current
 message, but uses the minibuffer instead of graphical widgets
 (@code{nnmairix-create-search-group-from-message}).
 
address@hidden $ t
address@hidden $ t (Summary)
address@hidden G G t
address@hidden G G t (Summary)
 @findex nnmairix-search-thread-this-article
 Searches thread for the current article
 (@code{nnmairix-search-thread-this-article}).  This is effectively a
 shortcut for calling @code{nnmairix-search} with @samp{m:msgid} of the
 current article and enabled threads.
 
address@hidden $ f
address@hidden $ f (Summary)
address@hidden G G f
address@hidden G G f (Summary)
 @findex nnmairix-search-from-this-article
 Searches all messages from sender of the current article
 (@code{nnmairix-search-from-this-article}).  This is a shortcut for
 calling @code{nnmairix-search} with @samp{f:From}.
 
address@hidden $ o
address@hidden $ o (Summary)
address@hidden G G o
address@hidden G G o (Summary)
 @findex nnmairix-goto-original-article
 (Only in @code{nnmairix} groups!) Tries determine the group this article
 originally came from and displays the article in this group, so that,
@@ -21896,8 +21902,8 @@ parameters are applied 
(@code{nnmairix-goto-original-article}).  This
 function will use the registry if available, but can also parse the
 article file name as a fallback method.
 
address@hidden $ u
address@hidden $ u (Summary)
address@hidden G G u
address@hidden G G u (Summary)
 @findex nnmairix-remove-tick-mark-original-article
 Remove possibly existing tick mark from original article
 (@code{nnmairix-remove-tick-mark-original-article}).  (@pxref{nnmairix
@@ -22051,7 +22057,7 @@ activate the always-unread feature by using @kbd{G b r} 
twice.
 
 So far so good---but how do you remove the tick marks in the @code{nnmairix}
 group?  There are two options: You may simply use
address@hidden (bound to @kbd{$ u}) to remove
address@hidden (bound to @kbd{G G u}) to remove
 tick marks from the original article.  The other possibility is to set
 @code{nnmairix-propagate-marks-to-nnmairix-groups} to @code{t}, but see the 
above
 comments about this option.  If it works for you, the tick marks should
diff --git a/doc/misc/htmlfontify.texi b/doc/misc/htmlfontify.texi
index 9cb1d6f..addc3e1 100644
--- a/doc/misc/htmlfontify.texi
+++ b/doc/misc/htmlfontify.texi
@@ -10,7 +10,7 @@
 This manual documents Htmlfontify, a source code -> crosslinked +
 formatted + syntax colorized html transformer.
 
-Copyright @copyright{} 2002-2003, 2013-2016 Free Software Foundation,
+Copyright @copyright{} 2002-2003, 2013-2017 Free Software Foundation,
 Inc.
 
 @quotation
diff --git a/doc/misc/idlwave.texi b/doc/misc/idlwave.texi
index 32b3364..b6a8cc8 100644
--- a/doc/misc/idlwave.texi
+++ b/doc/misc/idlwave.texi
@@ -23,7 +23,7 @@ Emacs, and interacting with an IDL shell run as a subprocess.
 This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE
 @value{VERSION}.
 
-Copyright @copyright{} 1999--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1999--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/ido.texi b/doc/misc/ido.texi
index 0a56bc3..0b215e8 100644
--- a/doc/misc/ido.texi
+++ b/doc/misc/ido.texi
@@ -7,7 +7,7 @@
 @copying
 This file documents the Ido package for GNU Emacs.
 
-Copyright @copyright{} 2013-2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2013-2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/info.texi b/doc/misc/info.texi
index 1b964e6..6f2e53a 100644
--- a/doc/misc/info.texi
+++ b/doc/misc/info.texi
@@ -15,7 +15,7 @@
 This file describes how to use Info, the menu-driven GNU
 documentation system.
 
-Copyright @copyright{} 1989, 1992, 1996--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1989, 1992, 1996--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/mairix-el.texi b/doc/misc/mairix-el.texi
index 69d3fc4..47fa5bc 100644
--- a/doc/misc/mairix-el.texi
+++ b/doc/misc/mairix-el.texi
@@ -5,7 +5,7 @@
 @include docstyle.texi
 
 @copying
-Copyright @copyright{} 2008--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2008--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 6ec7615..27a159d 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -11,7 +11,7 @@
 @copying
 This file documents Message, the Emacs message composition mode.
 
-Copyright @copyright{} 1996--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1996--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi
index 2ff0dac..a113272 100644
--- a/doc/misc/mh-e.texi
+++ b/doc/misc/mh-e.texi
@@ -25,7 +25,7 @@
 This is version @address@hidden of @cite{The MH-E
 Manual}, last updated @value{UPDATED}.
 
-Copyright @copyright{} 1995, 2001--2003, 2005--2016 Free Software
+Copyright @copyright{} 1995, 2001--2003, 2005--2017 Free Software
 Foundation, Inc.
 
 @c This dual license has been agreed upon by the FSF.
diff --git a/doc/misc/newsticker.texi b/doc/misc/newsticker.texi
index f7a7620..6928baa 100644
--- a/doc/misc/newsticker.texi
+++ b/doc/misc/newsticker.texi
@@ -15,7 +15,7 @@ This manual documents Newsticker, a feed reader for Emacs.  It
 corresponds to Emacs version @value{EMACSVER}.
 
 @noindent
-Copyright @copyright{} 2004--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2004--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/nxml-mode.texi b/doc/misc/nxml-mode.texi
index 62bd6bd..c40cfa5 100644
--- a/doc/misc/nxml-mode.texi
+++ b/doc/misc/nxml-mode.texi
@@ -9,7 +9,7 @@
 This manual documents nXML mode, an Emacs major mode for editing
 XML with RELAX NG support.
 
-Copyright @copyright{} 2007--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2007--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/octave-mode.texi b/doc/misc/octave-mode.texi
index 0307873..e7c2ee2 100644
--- a/doc/misc/octave-mode.texi
+++ b/doc/misc/octave-mode.texi
@@ -6,7 +6,7 @@
 @c %**end of header
 
 @copying
-Copyright @copyright{} 1996--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1996--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index a6f9dbd..596300e 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -259,7 +259,7 @@
 @copying
 This manual is for Org version @value{VERSION}.
 
-Copyright @copyright{} 2004--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2004--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -12955,7 +12955,7 @@ Copyright information is printed on the back of the 
title page.
 
   This is a short example of a complete Texinfo file, version 1.0.
 
-  Copyright \copy 2016 Free Software Foundation, Inc.
+  Copyright \copy 2017 Free Software Foundation, Inc.
 @end example
 
 @subsubheading The Top node
diff --git a/doc/misc/pcl-cvs.texi b/doc/misc/pcl-cvs.texi
index 237ba5c..4cf38bd 100644
--- a/doc/misc/pcl-cvs.texi
+++ b/doc/misc/pcl-cvs.texi
@@ -7,7 +7,7 @@
 @c %**end of header
 
 @copying
-Copyright @copyright{} 1991--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1991--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/pgg.texi b/doc/misc/pgg.texi
index 3b31e4b..950df60 100644
--- a/doc/misc/pgg.texi
+++ b/doc/misc/pgg.texi
@@ -12,7 +12,7 @@
 This file describes PGG @value{VERSION}, an Emacs interface to various
 PGP implementations.
 
-Copyright @copyright{} 2001, 2003--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2001, 2003--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi
index cdead72..1b5bdfc 100644
--- a/doc/misc/rcirc.texi
+++ b/doc/misc/rcirc.texi
@@ -6,7 +6,7 @@
 @c %**end of header
 
 @copying
-Copyright @copyright{} 2006--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2006--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/reftex.texi b/doc/misc/reftex.texi
index ff7011c..dfe0ecc 100644
--- a/doc/misc/reftex.texi
+++ b/doc/misc/reftex.texi
@@ -46,7 +46,7 @@ This manual documents @RefTeX{} (version @value{VERSION}), a 
package
 to do labels, references, citations and indices for LaTeX documents
 with Emacs.
 
-Copyright @copyright{} 1997--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1997--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/remember.texi b/doc/misc/remember.texi
index 965962c..3d90d5f 100644
--- a/doc/misc/remember.texi
+++ b/doc/misc/remember.texi
@@ -9,7 +9,7 @@
 @copying
 This manual is for Remember Mode, version 2.0
 
-Copyright @copyright{} 2001, 2004--2005, 2007--2016
+Copyright @copyright{} 2001, 2004--2005, 2007--2017
 Free Software Foundation, Inc.
 
 @quotation
diff --git a/doc/misc/sasl.texi b/doc/misc/sasl.texi
index d012e80..049bae0 100644
--- a/doc/misc/sasl.texi
+++ b/doc/misc/sasl.texi
@@ -11,7 +11,7 @@
 @copying
 This file describes the Emacs SASL library, version @value{VERSION}.
 
-Copyright @copyright{} 2000, 2004--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2000, 2004--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/sc.texi b/doc/misc/sc.texi
index 8051229..79878e9 100644
--- a/doc/misc/sc.texi
+++ b/doc/misc/sc.texi
@@ -15,7 +15,7 @@
 This document describes Supercite, an Emacs package for citing and
 attributing replies to mail and news messages.
 
-Copyright @copyright{} 1993, 2001--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1993, 2001--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/sem-user.texi b/doc/misc/sem-user.texi
index fd88c88..4e395f7 100644
--- a/doc/misc/sem-user.texi
+++ b/doc/misc/sem-user.texi
@@ -1,5 +1,5 @@
 @c This is part of the Semantic manual.
address@hidden Copyright (C) 1999-2005, 2007, 2009-2016 Free Software 
Foundation,
address@hidden Copyright (C) 1999-2005, 2007, 2009-2017 Free Software 
Foundation,
 @c Inc.
 @c See file semantic.texi for copying conditions.
 
diff --git a/doc/misc/semantic.texi b/doc/misc/semantic.texi
index 2023f24..1832017 100644
--- a/doc/misc/semantic.texi
+++ b/doc/misc/semantic.texi
@@ -25,7 +25,7 @@
 @copying
 This manual documents the Semantic library and utilities.
 
-Copyright @copyright{} 1999--2005, 2007, 2009--2016 Free Software
+Copyright @copyright{} 1999--2005, 2007, 2009--2017 Free Software
 Foundation, Inc.
 
 @quotation
diff --git a/doc/misc/ses.texi b/doc/misc/ses.texi
index ba10be9..cac874d 100644
--- a/doc/misc/ses.texi
+++ b/doc/misc/ses.texi
@@ -12,7 +12,7 @@
 @copying
 This file documents @acronym{SES}: the Simple Emacs Spreadsheet.
 
-Copyright @copyright{} 2002--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2002--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/sieve.texi b/doc/misc/sieve.texi
index 5bc38d4..253baf4 100644
--- a/doc/misc/sieve.texi
+++ b/doc/misc/sieve.texi
@@ -12,7 +12,7 @@
 @copying
 This file documents the Emacs Sieve package, for server-side mail filtering.
 
-Copyright @copyright{} 2001--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2001--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/smtpmail.texi b/doc/misc/smtpmail.texi
index d9a68c4..8249458 100644
--- a/doc/misc/smtpmail.texi
+++ b/doc/misc/smtpmail.texi
@@ -4,7 +4,7 @@
 @include docstyle.texi
 @syncodeindex vr fn
 @copying
-Copyright @copyright{} 2003--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2003--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/speedbar.texi b/doc/misc/speedbar.texi
index 27b57c0..ca0bc1f 100644
--- a/doc/misc/speedbar.texi
+++ b/doc/misc/speedbar.texi
@@ -5,7 +5,7 @@
 @syncodeindex fn cp
 
 @copying
-Copyright @copyright{} 1999--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1999--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/srecode.texi b/doc/misc/srecode.texi
index 9a5d717..74904f3 100644
--- a/doc/misc/srecode.texi
+++ b/doc/misc/srecode.texi
@@ -16,7 +16,7 @@
 @c %**end of header
 
 @copying
-Copyright @copyright{} 2007--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2007--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/todo-mode.texi b/doc/misc/todo-mode.texi
index d68af9a..0bdb37c 100644
--- a/doc/misc/todo-mode.texi
+++ b/doc/misc/todo-mode.texi
@@ -9,7 +9,7 @@
 @c %**end of header
 
 @copying
-Copyright @copyright{} 2013-2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2013-2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 1ba22e0..fab2b53 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -32,7 +32,7 @@
 @end macro
 
 @copying
-Copyright @copyright{} 1999--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1999--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi
index 3101dc0..77b6de3 100644
--- a/doc/misc/trampver.texi
+++ b/doc/misc/trampver.texi
@@ -2,13 +2,13 @@
 @c texi/trampver.texi.  Generated from trampver.texi.in by configure.
 
 @c This is part of the Emacs manual.
address@hidden Copyright (C) 2003-2016 Free Software Foundation, Inc.
address@hidden Copyright (C) 2003-2017 Free Software Foundation, Inc.
 @c See file doclicense.texi for copying conditions.
 
 @c In the Tramp GIT, the version number is auto-frobbed from
 @c configure.ac, so you should edit that file and run
 @c "autoconf && ./configure" to change the version number.
address@hidden trampver 2.3.1-pre
address@hidden trampver 2.3.1
 
 @c Other flags from configuration
 @set instprefix /usr/local
diff --git a/doc/misc/url.texi b/doc/misc/url.texi
index 06d2e55..a3c625e 100644
--- a/doc/misc/url.texi
+++ b/doc/misc/url.texi
@@ -21,7 +21,7 @@
 @copying
 This is the manual for the @code{url} Emacs Lisp library.
 
-Copyright @copyright{} 1993--1999, 2002, 2004--2016 Free Software
+Copyright @copyright{} 1993--1999, 2002, 2004--2017 Free Software
 Foundation, Inc.
 
 @quotation
diff --git a/doc/misc/vhdl-mode.texi b/doc/misc/vhdl-mode.texi
index e26ec52..05036c4 100644
--- a/doc/misc/vhdl-mode.texi
+++ b/doc/misc/vhdl-mode.texi
@@ -10,7 +10,7 @@
 @copying
 This file documents VHDL Mode, an Emacs mode for editing VHDL code.
 
-Copyright @copyright{} 1995--2008, 2010, 2012, 2015--2016 Free Software
+Copyright @copyright{} 1995--2008, 2010, 2012, 2015--2017 Free Software
 Foundation, Inc.
 
 @quotation
diff --git a/doc/misc/vip.texi b/doc/misc/vip.texi
index 0f7e8a7..498d9aa 100644
--- a/doc/misc/vip.texi
+++ b/doc/misc/vip.texi
@@ -4,7 +4,7 @@
 @include docstyle.texi
 
 @copying
-Copyright @copyright{} 1987, 2001--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1987, 2001--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/viper.texi b/doc/misc/viper.texi
index 6b82653..3e944d9 100644
--- a/doc/misc/viper.texi
+++ b/doc/misc/viper.texi
@@ -8,7 +8,7 @@
 @include docstyle.texi
 
 @copying
-Copyright @copyright{} 1995--1997, 2001--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1995--1997, 2001--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/widget.texi b/doc/misc/widget.texi
index 953bcae..3c8b4c8 100644
--- a/doc/misc/widget.texi
+++ b/doc/misc/widget.texi
@@ -9,7 +9,7 @@
 @c %**end of header
 
 @copying
-Copyright @copyright{} 2000--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2000--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/wisent.texi b/doc/misc/wisent.texi
index b4efbda..7f2ef0a 100644
--- a/doc/misc/wisent.texi
+++ b/doc/misc/wisent.texi
@@ -24,7 +24,7 @@
 @c %**end of header
 
 @copying
-Copyright @copyright{} 1988--1993, 1995, 1998--2004, 2007, 2012--2016
+Copyright @copyright{} 1988--1993, 1995, 1998--2004, 2007, 2012--2017
 Free Software Foundation, Inc.
 
 @c Since we are both GNU manuals, we do not need to ack each other here.
diff --git a/doc/misc/woman.texi b/doc/misc/woman.texi
index f1fbba6..95cc0d1 100644
--- a/doc/misc/woman.texi
+++ b/doc/misc/woman.texi
@@ -15,7 +15,7 @@
 This file documents WoMan: A program to browse Unix manual pages ``W.O.
 (without) man''.
 
-Copyright @copyright{} 2001--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 2001--2017 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
diff --git a/etc/AUTHORS b/etc/AUTHORS
index 0b300d0..9f951df 100644
--- a/etc/AUTHORS
+++ b/etc/AUTHORS
@@ -488,6 +488,8 @@ Bob Rogers: changed vc-dir.el vc-svn.el cperl-mode.el 
diff.el ewoc.el
 
 Bob Weiner: changed info.el quail.el
 
+Bogdan Creanga: changed sequences.texi strings.texi symbols.texi
+
 Bojan Petrovic: changed pop3.el
 
 Boris Goldowsky: wrote avoid.el descr-text.el enriched.el facemenu.el
@@ -2943,7 +2945,7 @@ Martin Pohlack: changed iimage.el pc-select.el
 Martin Rudalics: changed window.el window.c windows.texi frame.c w32fns.c
   xdisp.c w32term.c xterm.c frames.texi xfns.c frame.el help.el buffer.c
   display.texi cus-start.el dispnew.c mouse.el window.h dired.el nsfns.m
-  frame.h and 177 other files
+  frame.h and 178 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
@@ -3054,7 +3056,7 @@ Michael Albinus: wrote auto-revert-tests.el dbus-tests.el 
dbus.el
   tramp-tests.el url-tramp.el vc-tests.el xesam.el zeroconf.el
 and co-wrote tramp-cache.el tramp-sh.el tramp.el
 and changed tramp.texi dbusbind.c trampver.el trampver.texi tramp-adb.el
-  ange-ftp.el dbus.texi files.el tramp-fish.el autorevert.el files.texi
+  ange-ftp.el dbus.texi files.el autorevert.el tramp-fish.el files.texi
   tramp-imap.el notifications.el os.texi configure.ac lisp.h
   gfilenotify.c tramp-vc.el keyboard.c lisp/Makefile.in simple.el
   and 125 other files
diff --git a/etc/CALC-NEWS b/etc/CALC-NEWS
index 8c116e2..844b976 100644
--- a/etc/CALC-NEWS
+++ b/etc/CALC-NEWS
@@ -1,4 +1,4 @@
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Calc is an advanced desk calculator for GNU Emacs.
diff --git a/etc/ChangeLog.1 b/etc/ChangeLog.1
index b2694d7..e502c65 100644
--- a/etc/ChangeLog.1
+++ b/etc/ChangeLog.1
@@ -6891,7 +6891,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1993-1999, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1993-1999, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/etc/DEBUG b/etc/DEBUG
index ddec7b4..3719c3e 100644
--- a/etc/DEBUG
+++ b/etc/DEBUG
@@ -1,6 +1,6 @@
 Debugging GNU Emacs
 
-Copyright (C) 1985, 2000-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 2000-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 ** Preliminaries
@@ -225,7 +225,7 @@ this command:
    handle SIGINT stop nopass
 
 After this 'handle' command, SIGINT will return control to GDB.  If
-you want the C-g to cause a QUIT within Emacs as well, omit the 'nopass'.
+you want the C-g to cause a quit within Emacs as well, omit the 'nopass'.
 See the GDB manual for more details about signal handling and the
 'handle' command.
 
@@ -313,7 +313,7 @@ type.  Here are these commands:
     xbufobjfwd xkbobjfwd xbuflocal xbuffer xsymbol xstring xvector xframe
     xwinconfig xcompiled xcons xcar xcdr xsubr xprocess xfloat xscrollbar
     xchartable xsubchartable xboolvector xhashtable xlist xcoding
-    xcharset xfontset xfont xbytecode
+    xcharset xfontset xfont
 
 Each one of them applies to a certain type or class of types.
 (Some of these types are not visible in Lisp, because they exist only
diff --git a/etc/DISTRIB b/etc/DISTRIB
index 237e7f2..7e3a351 100644
--- a/etc/DISTRIB
+++ b/etc/DISTRIB
@@ -1,7 +1,7 @@
                                                -*- text -*-
             GNU Emacs availability information
 
-Copyright (C) 1986-1993, 1995, 1998, 2000-2016 Free Software Foundation,
+Copyright (C) 1986-1993, 1995, 1998, 2000-2017 Free Software Foundation,
 Inc.
 See the end of the file for license conditions.
 
diff --git a/etc/ERC-NEWS b/etc/ERC-NEWS
index 69b8468..b140e44 100644
--- a/etc/ERC-NEWS
+++ b/etc/ERC-NEWS
@@ -1,6 +1,6 @@
 ERC NEWS                                                       -*- outline -*-
 
-Copyright (C) 2006-2016 Free Software Foundation, Inc.
+Copyright (C) 2006-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 * For changes after ERC 5.3, see the main Emacs NEWS file
diff --git a/etc/ETAGS.EBNF b/etc/ETAGS.EBNF
index dfbf02b..fc20b9f 100644
--- a/etc/ETAGS.EBNF
+++ b/etc/ETAGS.EBNF
@@ -94,7 +94,7 @@ those.
 
 ===================== end of discussion of tag names =====================
 
-Copyright (C) 2002-2016 Free Software Foundation, Inc.
+Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 COPYING PERMISSIONS:
 
diff --git a/etc/ETAGS.README b/etc/ETAGS.README
index c590d32..f14a102 100644
--- a/etc/ETAGS.README
+++ b/etc/ETAGS.README
@@ -28,7 +28,7 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
LIABILITY, OR TORT
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
-Copyright (C) 1984, 1987-1989, 1993-1995, 1998-2016 Free Software
+Copyright (C) 1984, 1987-1989, 1993-1995, 1998-2017 Free Software
 Foundation, Inc.
 
 This file is not considered part of GNU Emacs.
diff --git a/etc/GNUS-NEWS b/etc/GNUS-NEWS
index c5fb0fe..546686b 100644
--- a/etc/GNUS-NEWS
+++ b/etc/GNUS-NEWS
@@ -1,6 +1,6 @@
 GNUS NEWS -- history of user-visible changes.
 
-Copyright (C) 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1999-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Please send Gnus bug reports to address@hidden
diff --git a/etc/HELLO b/etc/HELLO
index 1dc402a..f5339f2 100644
--- a/etc/HELLO
+++ b/etc/HELLO
@@ -75,7 +75,7 @@ Korean ($(CGQ1[(B)  $(C>H3gGO<<?d(B / $(C>H3gGO=J4O1n(B
 
 
 
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/etc/MACHINES b/etc/MACHINES
index 7f3c979..95073e0 100644
--- a/etc/MACHINES
+++ b/etc/MACHINES
@@ -1,6 +1,6 @@
 Emacs machines list
 
-Copyright (C) 1989-1990, 1992-1993, 1998, 2001-2016 Free Software
+Copyright (C) 1989-1990, 1992-1993, 1998, 2001-2017 Free Software
 Foundation, Inc.
 See the end of the file for license conditions.
 
diff --git a/etc/MH-E-NEWS b/etc/MH-E-NEWS
index efdcaf2..7e852af 100644
--- a/etc/MH-E-NEWS
+++ b/etc/MH-E-NEWS
@@ -1,6 +1,6 @@
 * COPYRIGHT
 
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 * Changes in MH-E 8.6
diff --git a/etc/NEWS b/etc/NEWS
index 7338c0c..18ab162 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1,6 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.
 
-Copyright (C) 2014-2016 Free Software Foundation, Inc.
+Copyright (C) 2014-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Please send Emacs bug reports to address@hidden
@@ -21,6 +21,13 @@ Temporary note:
 --- means no change in the manuals is needed.
 When you add a new item, use the appropriate mark if you are sure it applies,
 
++++
+** The version number of CC Mode has been changed from 5.33 to
+5.32.99, although the software itself hasn't changed.  This aims to
+reduce confusion with the standalone CC Mode 5.33 (available from
+http://cc-mode.sourceforge.net), which is a more mature version than
+the one in Emacs 25.2.
+
 
 * Installation Changes in Emacs 26.1
 
@@ -109,7 +116,16 @@ dired buffer.
 ** Emacs now uses double buffering to reduce flicker when editing and
 resizing graphical Emacs frames on the X Window System.  This support
 requires the DOUBLE-BUFFER extension, which major X servers have
-supported for many years.
+supported for many years.  If your system has this extension, but an
+Emacs built with double buffering misbehaves on some displays you use,
+you can disable the feature by adding
+
+  '(inhibit-double-buffering . t)
+
+to default-frame-parameters.  Or inject this parameter into the
+selected frame by evaluating this form:
+
+  (modify-frame-parameters nil '((inhibit-double-buffering . t)))
 
 ---
 The group 'wp', whose label was "text", is now deprecated.
@@ -312,6 +328,8 @@ the file's actual content before prompting the user.
 
 * Changes in Specialized Modes and Packages in Emacs 26.1
 
+** TeX: Add luatex and xetex as alternatives to pdftex
+
 ** Electric-Buffer-menu
 
 +++
@@ -330,6 +348,16 @@ bound to 'Buffer-menu-unmark-all-buffers'.
 *** Two new commands 'Buffer-menu-unmark-all', bound to 'U' and
 'Buffer-menu-unmark-all-buffers', bound to 'M-DEL'.
 
+** Gnus
+
+---
+*** The .newsrc file will now only be saved if the native select
+method is an NNTP select method.
+
++++
+*** A new command for sorting articles by readedness marks has been
+added: `C-c C-s C-m C-m'.
+
 ** Ibuffer
 
 ---
@@ -510,7 +538,7 @@ instead of shell command strings.  This change affects
 'image-dired-cmd-pngnq-options', 'image-dired-cmd-pngcrush-options',
 'image-dired-cmd-create-standard-thumbnail-options'
 
-*** Recognizes more tools by default, including pngnq-s9, optipng, and gm
+*** Recognizes more tools by default, including pngnq-s9 and OptiPNG
 
 *** 'find-file' and related commands now work on thumbnails and
 displayed images, providing a default argument of the original file name
@@ -585,6 +613,13 @@ HTML tags, classes and IDs using the 'completion-at-point' 
command.
 Completion candidates for HTML classes and IDs are retrieved from open
 HTML mode buffers.
 
+---
+*** CSS mode now binds 'C-h s' to a function that will show
+information about a CSS construct (an at-rule, property, pseudo-class,
+pseudo-element, with the default being guessed from context).  By
+default the information is looked up on the Mozilla Developer Network,
+but this can be customized using 'css-lookup-url-format'.
+
 +++
 ** Emacs now supports character name escape sequences in character and
 string literals.  The syntax variants \N{character name} and
@@ -669,6 +704,7 @@ before running.  This is controlled by the 
'grep-save-buffers'
 variable.
 
 ** Some obsolete functions, variables, and faces have been removed:
+*** make-variable-frame-local.  Variables cannot be frame-local any more.
 *** From subr.el: window-dot, set-window-dot, read-input, show-buffer,
 eval-current-buffer, string-to-int
 *** All the default-FOO variables that hold the default value of the
@@ -700,9 +736,16 @@ of curved quotes in format arguments to functions like 
'message' and
 now generate less chatter and more-compact diagnostics.  The auxiliary
 function 'check-declare-errmsg' has been removed.
 
++++
+** The regular expression character class [:blank:] now matches
+Unicode horizontal whitespace as defined in the Unicode Technical
+Standard #18.  If you only want to match space and tab, use [ \t]
+instead.
+
 
 * Lisp Changes in Emacs 26.1
 
+** string-(to|as|make)-(uni|multi)byte are now declared obsolete.
 ** New variable 'while-no-input-ignore-events' which allow
 setting which special events 'while-no-input' should ignore.
 It is a list of symbols.
@@ -762,6 +805,11 @@ of an arbitrary function.  This generalizes 'subr-arity' 
for functions
 that are not built-in primitives.  We recommend using this new
 function instead of 'subr-arity'.
 
+** New function 'region-bounds' can be used in the interactive spec
+to provide region boundaries (for rectangular regions more than one)
+to an interactively callable function as a single argument instead of
+two separate arguments region-beginning and region-end.
+
 +++
 ** 'parse-partial-sexp' state has a new element.  Element 10 is
 non-nil when the last character scanned might be the first character
@@ -822,6 +870,9 @@ ABBR is a time zone abbreviation.  The affected functions 
are
 collection).
 
 +++
+** 'car' and 'cdr' compositions 'cXXXr' and 'cXXXXr' are now part of Elisp.
+
++++
 ** The new functions 'make-nearby-temp-file' and 'temporary-file-directory'
 can be used for creation of temporary files of remote or mounted directories.
 
diff --git a/etc/NEWS.1-17 b/etc/NEWS.1-17
index 4eacd6d..0a7ca05 100644
--- a/etc/NEWS.1-17
+++ b/etc/NEWS.1-17
@@ -1,6 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.  26-Mar-1986
 
-Copyright (C) 1985-1986, 2006-2016 Free Software Foundation, Inc.
+Copyright (C) 1985-1986, 2006-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/etc/NEWS.18 b/etc/NEWS.18
index ab1ded8..93e07df 100644
--- a/etc/NEWS.18
+++ b/etc/NEWS.18
@@ -1,6 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.  17-Aug-1988
 
-Copyright (C) 1988, 2006-2016 Free Software Foundation, Inc.
+Copyright (C) 1988, 2006-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/etc/NEWS.19 b/etc/NEWS.19
index 3f3b587..70f8673 100644
--- a/etc/NEWS.19
+++ b/etc/NEWS.19
@@ -1,6 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.  1992.
 
-Copyright (C) 1993-1995, 2001, 2006-2016 Free Software Foundation, Inc.
+Copyright (C) 1993-1995, 2001, 2006-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/etc/NEWS.20 b/etc/NEWS.20
index e5cca54..3e829d1 100644
--- a/etc/NEWS.20
+++ b/etc/NEWS.20
@@ -1,6 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.  2006-05-31
 
-Copyright (C) 1999-2001, 2006-2016 Free Software Foundation, Inc.
+Copyright (C) 1999-2001, 2006-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/etc/NEWS.21 b/etc/NEWS.21
index 7dfdc4d..4a214cb 100644
--- a/etc/NEWS.21
+++ b/etc/NEWS.21
@@ -1,6 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.  2006-05-31
 
-Copyright (C) 2000-2016 Free Software Foundation, Inc.
+Copyright (C) 2000-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/etc/NEWS.22 b/etc/NEWS.22
index 5e414f1..689eff9 100644
--- a/etc/NEWS.22
+++ b/etc/NEWS.22
@@ -1,6 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.
 
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Please send Emacs bug reports to address@hidden
diff --git a/etc/NEWS.23 b/etc/NEWS.23
index f74141d..78802d2 100644
--- a/etc/NEWS.23
+++ b/etc/NEWS.23
@@ -1,6 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.
 
-Copyright (C) 2007-2016 Free Software Foundation, Inc.
+Copyright (C) 2007-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Please send Emacs bug reports to address@hidden
diff --git a/etc/NEWS.24 b/etc/NEWS.24
index 08021f4..fc52fff 100644
--- a/etc/NEWS.24
+++ b/etc/NEWS.24
@@ -1,6 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.
 
-Copyright (C) 2010-2016 Free Software Foundation, Inc.
+Copyright (C) 2010-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Please send Emacs bug reports to address@hidden
diff --git a/etc/NEWS.25 b/etc/NEWS.25
index f679243..c5e95d3 100644
--- a/etc/NEWS.25
+++ b/etc/NEWS.25
@@ -1,6 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.
 
-Copyright (C) 2014-2016 Free Software Foundation, Inc.
+Copyright (C) 2014-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Please send Emacs bug reports to address@hidden
diff --git a/etc/NEXTSTEP b/etc/NEXTSTEP
index 60c49ad..d3e4828 100644
--- a/etc/NEXTSTEP
+++ b/etc/NEXTSTEP
@@ -1,4 +1,4 @@
-Copyright (C) 2008-2016 Free Software Foundation, Inc.
+Copyright (C) 2008-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 This file contains information about GNU Emacs on "Nextstep" platforms.
diff --git a/etc/NXML-NEWS b/etc/NXML-NEWS
index 9197777..edf7c13 100644
--- a/etc/NXML-NEWS
+++ b/etc/NXML-NEWS
@@ -1,4 +1,4 @@
-Copyright (C) 2007-2016 Free Software Foundation, Inc.
+Copyright (C) 2007-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 8d8c0c6..38df7b2 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -3,7 +3,7 @@ ORG NEWS -- history of user-visible changes.   -*- mode: org; 
coding: utf-8 -*-
 #+LINK: doc http://orgmode.org/worg/doc.html#%s
 #+LINK: git http://orgmode.org/w/?p=org-mode.git;a=commit;h=%s
 
-Copyright (C) 2012-2016 Free Software Foundation, Inc.
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Please send Org bug reports to address@hidden
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index c9b11fbc5..d033c72 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -1,6 +1,6 @@
 Known Problems with GNU Emacs
 
-Copyright (C) 1987-1989, 1993-1999, 2001-2016 Free Software Foundation,
+Copyright (C) 1987-1989, 1993-1999, 2001-2017 Free Software Foundation,
 Inc.
 See the end of the file for license conditions.
 
diff --git a/etc/README b/etc/README
index e7758fd..23e1f9f 100644
--- a/etc/README
+++ b/etc/README
@@ -7,5 +7,5 @@ COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
 
 File: emacs.icon
   Author: Sun Microsystems, Inc
-  Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1999, 2001-2017 Free Software Foundation, Inc.
   License: GNU General Public License version 3 or later (see COPYING)
diff --git a/etc/TERMS b/etc/TERMS
index 99d6c46..5237972 100644
--- a/etc/TERMS
+++ b/etc/TERMS
@@ -1,4 +1,4 @@
-Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1999, 2001-2017 Free Software Foundation, Inc.
 See the end of the file for copying permissions.
 
 This file describes what you must or might want to do to termcap entries
diff --git a/etc/TODO b/etc/TODO
index 84c1b6d..fc442f9 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -1,6 +1,6 @@
 Emacs TODO List                                                   -*-outline-*-
 
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/etc/charsets/README b/etc/charsets/README
index b159ffe..315c364 100644
--- a/etc/charsets/README
+++ b/etc/charsets/README
@@ -1,6 +1,6 @@
 # README file for charset mapping files in this directory.
 
-# Copyright (C) 2003-2016 Free Software Foundation, Inc.
+# Copyright (C) 2003-2017 Free Software Foundation, Inc.
 # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 #   National Institute of Advanced Industrial Science and Technology (AIST)
 #   Registration Number H13PRO009
diff --git a/etc/compilation.txt b/etc/compilation.txt
index 4e4ba38..85e3632 100644
--- a/etc/compilation.txt
+++ b/etc/compilation.txt
@@ -625,7 +625,7 @@ Compilation segmentation fault at Thu Jul 13 10:55:49
 Compilation finished at Thu Jul 21 15:02:15
 
 
-Copyright (C) 2004-2016 Free Software Foundation, Inc.
+Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 COPYING PERMISSIONS:
 
diff --git a/etc/edt-user.el b/etc/edt-user.el
index cf1acbc..80f3b7e 100644
--- a/etc/edt-user.el
+++ b/etc/edt-user.el
@@ -1,6 +1,6 @@
 ;;; edt-user.el --- Sample user customizations for Emacs EDT emulation
 
-;; Copyright (C) 1986, 1992-1993, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1986, 1992-1993, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Kevin Gallagher <address@hidden>
diff --git a/etc/emacs-buffer.gdb b/etc/emacs-buffer.gdb
index 61b06f2..9659ccd 100644
--- a/etc/emacs-buffer.gdb
+++ b/etc/emacs-buffer.gdb
@@ -1,6 +1,6 @@
 # emacs-buffer.gdb --- gdb macros for recovering buffers from emacs coredumps
 
-# Copyright (C) 2005-2016 Free Software Foundation, Inc.
+# Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 # Author: Noah Friedman <address@hidden>
 # Created: 2005-04-28
diff --git a/etc/emacs.appdata.xml b/etc/emacs.appdata.xml
index 05c5e2a..0ba305c 100644
--- a/etc/emacs.appdata.xml
+++ b/etc/emacs.appdata.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2014-2016 Free Software Foundation, Inc. -->
+<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc. -->
 <application>
  <id type="desktop">emacs.desktop</id>
  <metadata_license>GFDL-1.3</metadata_license>
diff --git a/etc/enriched.txt b/etc/enriched.txt
index 253f3dd..e1f2d6c 100644
--- a/etc/enriched.txt
+++ b/etc/enriched.txt
@@ -239,7 +239,7 @@ it.</indent>
 
 
 
-Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 
 COPYING PERMISSIONS:
 
diff --git a/etc/forms/forms-d2.el b/etc/forms/forms-d2.el
index d219532..edd1a2d 100644
--- a/etc/forms/forms-d2.el
+++ b/etc/forms/forms-d2.el
@@ -1,6 +1,6 @@
 ;;; forms-d2.el --- demo forms-mode
 
-;; Copyright (C) 1991, 1994-1997, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1991, 1994-1997, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Johan Vromans <address@hidden>
diff --git a/etc/gnus-tut.txt b/etc/gnus-tut.txt
index 530b27b..74b110f 100644
--- a/etc/gnus-tut.txt
+++ b/etc/gnus-tut.txt
@@ -24,7 +24,7 @@ was done by moi, yours truly, your humble servant, Lars Magne
 Ingebrigtsen.  If you have a WWW browser, you can investigate to your
 heart's delight at <URL:http://www.ifi.uio.no/~larsi/larsi.html>.
 
-;; Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/etc/grep.txt b/etc/grep.txt
index 3861a7f..582bc5f 100644
--- a/etc/grep.txt
+++ b/etc/grep.txt
@@ -97,7 +97,7 @@ grep -nH -e "xyzxyz" ../info/*
 
 
 
-Copyright (C) 2005-2016 Free Software Foundation, Inc.
+Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 COPYING PERMISSIONS:
 
diff --git a/etc/images/README b/etc/images/README
index 47c797c..c5f6978 100644
--- a/etc/images/README
+++ b/etc/images/README
@@ -27,19 +27,19 @@ COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
 
 File: mh-logo.xpm
   Author: Satyaki Das
-  Copyright (C) 2003-2016 Free Software Foundation, Inc.
+  Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 Files: gnus.pbm
   Author: Luis Fernandes <address@hidden>
-  Copyright (C) 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 Files: splash.png, splash.svg, splash.pbm, splash.xpm
   Author: Francesc Rocher <address@hidden>
-  Copyright (C) 2008-2016 Free Software Foundation, Inc.
+  Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 Files: checked.xpm, unchecked.xpm
   Author: Chong Yidong <address@hidden>
-  Copyright (C) 2010-2016 Free Software Foundation, Inc.
+  Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 
 * The following icons are from GTK+ 2.x. They are not part of Emacs, but
diff --git a/etc/images/checked.xpm b/etc/images/checked.xpm
index f09dd7c..033da68 100644
--- a/etc/images/checked.xpm
+++ b/etc/images/checked.xpm
@@ -1,5 +1,5 @@
 /* XPM */
-/* Copyright (C) 2010-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
  *
  * Author: Chong Yidong <address@hidden>
  *
diff --git a/etc/images/custom/README b/etc/images/custom/README
index c90c555..a8e4102 100644
--- a/etc/images/custom/README
+++ b/etc/images/custom/README
@@ -6,5 +6,5 @@ COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
 
 Files: down.xpm down-pushed.xpm right.xpm right-pushed.xpm
 Author: Juri Linkov
-Copyright (C) 2008-2016 Free Software Foundation, Inc.
+Copyright (C) 2008-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
diff --git a/etc/images/ezimage/README b/etc/images/ezimage/README
index 20c2cca..c166355 100644
--- a/etc/images/ezimage/README
+++ b/etc/images/ezimage/README
@@ -7,5 +7,5 @@ Files: bits.xpm bitsbang.xpm box-minus.xpm box-plus.xpm
        tag-gt.xpm tag-minus.xpm tag-plus.xpm tag-type.xpm tag-v.xpm
        tag.xpm unlock.xpm
 Author: Eric M. Ludlam
-Copyright (C) 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1999-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
diff --git a/etc/images/gnus/README b/etc/images/gnus/README
index ee9d964..f1f8402 100644
--- a/etc/images/gnus/README
+++ b/etc/images/gnus/README
@@ -7,7 +7,7 @@ COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
 
 Files: important.xpm, unimportant.xpm
 Author: Simon Josefsson <address@hidden>
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 Files: catchup.pbm catchup.xpm cu-exit.pbm cu-exit.xpm
   describe-group.pbm describe-group.xpm exit-gnus.pbm exit-gnus.xpm
@@ -21,11 +21,11 @@ Files: catchup.pbm catchup.xpm cu-exit.pbm cu-exit.xpm
   unsubscribe.pbm unsubscribe.xpm uu-decode.pbm uu-decode.xpm
   uu-post.pbm uu-post.xpm
 Author: Luis Fernandes <address@hidden>
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 Files: gnus.png, gnus.svg
   Author: Francesc Rocher <address@hidden>
-  Copyright (C) 2008-2016 Free Software Foundation, Inc.
+  Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 
 * The following icons are from GNOME 2.x. They are not part of Emacs,
diff --git a/etc/images/gnus/gnus.svg b/etc/images/gnus/gnus.svg
index 720dcbb..0d9d863 100644
--- a/etc/images/gnus/gnus.svg
+++ b/etc/images/gnus/gnus.svg
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- Gnu Emacs Logo
 
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
    Author: Francesc Rocher <address@hidden>
 
diff --git a/etc/images/gud/README b/etc/images/gud/README
index 4bc4d0a..054f611 100644
--- a/etc/images/gud/README
+++ b/etc/images/gud/README
@@ -1,7 +1,7 @@
 COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
 
 The following icons were created by Nick Roberts <address@hidden>.
-Copyright (C) 2002-2016 Free Software Foundation, Inc.
+Copyright (C) 2002-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
 
   break.pbm, nexti.pbm, go.pbm, pp.pbm, print.pbm, pstar.pbm, remove.pbm
@@ -31,7 +31,7 @@ their copyright assignment included the icons.
 The following icons are converted from the Insight Windows style icon
 set in src/gdb/gdbtk/library/images2.
 
-Copyright (C) 2002-2016 Free Software Foundation, Inc.
+Copyright (C) 2002-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
 
   cont.pbm and cont.xpm were converted from continue.gif
@@ -47,7 +47,7 @@ License: GNU General Public License version 3 or later (see 
COPYING)
 The following icons are created from the Insight Windows style icon
 set in src/gdb/gdbtk/library/images2.
 
-Copyright (C) 2002-2016 Free Software Foundation, Inc.
+Copyright (C) 2002-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
 
   rcont.xpm rfinish.xpm
diff --git a/etc/images/icons/README b/etc/images/icons/README
index 40fce27..9a1cb5b 100644
--- a/etc/images/icons/README
+++ b/etc/images/icons/README
@@ -6,7 +6,7 @@ Files: hicolor/16x16/apps/emacs.png hicolor/24x24/apps/emacs.png
        hicolor/scalable/mimetypes/emacs-document.svg
 
 Author: Nicolas Petton <address@hidden>
-Copyright (C) 2015-2016 Free Software Foundation, Inc.
+Copyright (C) 2015-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
 
 Files: hicolor/16x16/apps/emacs23.png hicolor/24x24/apps/emacs23.png
@@ -14,7 +14,7 @@ Files: hicolor/16x16/apps/emacs23.png 
hicolor/24x24/apps/emacs23.png
        hicolor/128x128/apps/emacs23.png hicolor/scalable/apps/emacs23.svg
 
 Author: Kentaro Ohkouchi <address@hidden>
-Copyright (C) 2007-2016 Free Software Foundation, Inc.
+Copyright (C) 2007-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
 
 
@@ -22,7 +22,7 @@ Files: hicolor/16x16/apps/emacs22.png 
hicolor/24x24/apps/emacs22.png
        hicolor/32x32/apps/emacs22.png hicolor/48x48/apps/emacs22.png
 
 Author: Andrew Zhilin <address@hidden>
-Copyright (C) 2005-2016 Free Software Foundation, Inc.
+Copyright (C) 2005-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
 
 Files: allout-widgets-dark-bg/closed.png
@@ -71,5 +71,5 @@ Files: allout-widgets-dark-bg/closed.png
        allout-widgets-light-bg/through-descender.xpm
 
 Author: Ken Manheimer <address@hidden>
-Copyright (C) 2011-2016 Free Software Foundation, Inc.
+Copyright (C) 2011-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
diff --git a/etc/images/icons/hicolor/scalable/apps/emacs.svg 
b/etc/images/icons/hicolor/scalable/apps/emacs.svg
index bdf13e6..632d53e 100644
--- a/etc/images/icons/hicolor/scalable/apps/emacs.svg
+++ b/etc/images/icons/hicolor/scalable/apps/emacs.svg
@@ -15,7 +15,7 @@
      id="metadata70"><rdf:RDF><cc:Work
          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage"; 
/><dc:title></dc:title></cc:Work></rdf:RDF></metadata><!-- Gnu Emacs Icon
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
    Author: Nicolas Petton <address@hidden>
 
diff --git a/etc/images/icons/hicolor/scalable/apps/emacs23.svg 
b/etc/images/icons/hicolor/scalable/apps/emacs23.svg
index 0f93f0a..3e2168f 100644
--- a/etc/images/icons/hicolor/scalable/apps/emacs23.svg
+++ b/etc/images/icons/hicolor/scalable/apps/emacs23.svg
@@ -10,7 +10,7 @@
    id="svg4768"
    xml:space="preserve">
 <!-- Gnu Emacs Icon
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
    This file is part of GNU Emacs.
 
diff --git a/etc/images/icons/hicolor/scalable/mimetypes/emacs-document23.svg 
b/etc/images/icons/hicolor/scalable/mimetypes/emacs-document23.svg
index cd338c6..e4f4dc6 100644
--- a/etc/images/icons/hicolor/scalable/mimetypes/emacs-document23.svg
+++ b/etc/images/icons/hicolor/scalable/mimetypes/emacs-document23.svg
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- Gnu Emacs Document Icon
 
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
    This file is part of GNU Emacs.
 
diff --git a/etc/images/mh-logo.xpm b/etc/images/mh-logo.xpm
index 3b5d6eb..b2017c6 100644
--- a/etc/images/mh-logo.xpm
+++ b/etc/images/mh-logo.xpm
@@ -1,7 +1,7 @@
 /* XPM */
 /* MH-E Logo
  *
- * Copyright (C) 2003-2016 Free Software Foundation, Inc.
+ * Copyright (C) 2003-2017 Free Software Foundation, Inc.
  *
  * Author: Satyaki Das
  *
diff --git a/etc/images/mpc/README b/etc/images/mpc/README
index f22bff9..9a9fc04 100644
--- a/etc/images/mpc/README
+++ b/etc/images/mpc/README
@@ -2,5 +2,5 @@ COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
 
 Files: add.xpm ffwd.xpm next.xpm pause.xpm play.xpm prev.xpm rewind.xpm 
stop.xpm
 Author: Stefan Monnier <address@hidden>
-Copyright (C) 2009-2016 Free Software Foundation, Inc.
+Copyright (C) 2009-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
diff --git a/etc/images/newsticker/README b/etc/images/newsticker/README
index d89dbe0..08fc841 100644
--- a/etc/images/newsticker/README
+++ b/etc/images/newsticker/README
@@ -4,5 +4,5 @@ Files: browse-url.xpm get-all.xpm mark-immortal.xpm 
mark-read.xpm
        narrow.xpm next-feed.xpm next-item.xpm prev-feed.xpm
        prev-item.xpm rss-feed.png rss-feed.svg update.xpm
 Author: Ulf Jasper
-Copyright (C) 2011-2016 Free Software Foundation, Inc.
+Copyright (C) 2011-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
diff --git a/etc/images/smilies/README b/etc/images/smilies/README
index 39cfaca..c502ca8 100644
--- a/etc/images/smilies/README
+++ b/etc/images/smilies/README
@@ -3,5 +3,5 @@ Files: blink.pbm blink.xpm braindamaged.xpm cry.xpm dead.xpm 
evil.xpm
        sad.xpm smile.pbm smile.xpm wry.pbm wry.xpm
 Authors: Reiner Steib, Simon Josefsson, Kai Grossjohann, Alex
          Schroeder, Oliver Scholz, Per Abrahamsen, Kim F. Storm.
-Copyright (C) 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1999-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
diff --git a/etc/images/smilies/grayscale/README 
b/etc/images/smilies/grayscale/README
index c75fb9f..1493af0 100644
--- a/etc/images/smilies/grayscale/README
+++ b/etc/images/smilies/grayscale/README
@@ -3,5 +3,5 @@ Files: blink.xpm braindamaged.xpm cry.xpm dead.xpm evil.xpm 
forced.xpm
        frown.xpm grin.xpm indifferent.xpm reverse-smile.xpm sad.xpm
        smile.xpm wry.xpm
 Author: Adam Sjøgren
-Copyright (C) 2007-2016 Free Software Foundation, Inc.
+Copyright (C) 2007-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
diff --git a/etc/images/smilies/medium/README b/etc/images/smilies/medium/README
index c75fb9f..1493af0 100644
--- a/etc/images/smilies/medium/README
+++ b/etc/images/smilies/medium/README
@@ -3,5 +3,5 @@ Files: blink.xpm braindamaged.xpm cry.xpm dead.xpm evil.xpm 
forced.xpm
        frown.xpm grin.xpm indifferent.xpm reverse-smile.xpm sad.xpm
        smile.xpm wry.xpm
 Author: Adam Sjøgren
-Copyright (C) 2007-2016 Free Software Foundation, Inc.
+Copyright (C) 2007-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
diff --git a/etc/images/splash.svg b/etc/images/splash.svg
index 5b50af7..4957d82 100644
--- a/etc/images/splash.svg
+++ b/etc/images/splash.svg
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- Gnu Emacs Logo
 
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
    Author: Francesc Rocher <address@hidden>
    Based on the original work by Luis Fernandes <address@hidden>
diff --git a/etc/images/tree-widget/default/README 
b/etc/images/tree-widget/default/README
index 1969389..e1f17ed 100644
--- a/etc/images/tree-widget/default/README
+++ b/etc/images/tree-widget/default/README
@@ -5,5 +5,5 @@ Files: close.png close.xpm empty.png empty.xpm end-guide.png 
end-guide.xpm
        no-guide.png no-guide.xpm no-handle.png no-handle.xpm open.png
        open.xpm
 Author: David Ponce <address@hidden>
-Copyright (C) 2004-2016 Free Software Foundation, Inc.
+Copyright (C) 2004-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
diff --git a/etc/images/tree-widget/folder/README 
b/etc/images/tree-widget/folder/README
index 23fe5fe..f67c36f 100644
--- a/etc/images/tree-widget/folder/README
+++ b/etc/images/tree-widget/folder/README
@@ -5,5 +5,5 @@ Files:  close.png close.xpm empty.png empty.xpm end-guide.png
         leaf.png leaf.xpm no-guide.png no-guide.xpm no-handle.png
         no-handle.xpm open.png open.xpm
 Author: David Ponce <address@hidden>
-Copyright (C) 2004-2016 Free Software Foundation, Inc.
+Copyright (C) 2004-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
diff --git a/etc/images/unchecked.xpm b/etc/images/unchecked.xpm
index de6a0d9..f7ca860 100644
--- a/etc/images/unchecked.xpm
+++ b/etc/images/unchecked.xpm
@@ -1,5 +1,5 @@
 /* XPM */
-/* Copyright (C) 2010-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
  *
  * Author: Chong Yidong <address@hidden>
  *
diff --git a/etc/org/README b/etc/org/README
index cc1ec73..68905ad 100644
--- a/etc/org/README
+++ b/etc/org/README
@@ -1,7 +1,7 @@
 The files OrgOdtContentTemplate.xml and OrgOdtStyles.xml have the
 following copyright information:
 
-Copyright (C) 2010-2016 Free Software Foundation, Inc.
+Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 These files are part of GNU Emacs.
 
diff --git a/etc/ps-prin0.ps b/etc/ps-prin0.ps
index 9c2c658..66e46ea 100644
--- a/etc/ps-prin0.ps
+++ b/etc/ps-prin0.ps
@@ -1,7 +1,7 @@
 % === BEGIN ps-print prologue 0
 % version: 6.0
 
-% Copyright (C) 2000-2016 Free Software Foundation, Inc.
+% Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 % This file is part of GNU Emacs.
 
diff --git a/etc/ps-prin1.ps b/etc/ps-prin1.ps
index df701bf..c45aa6a 100644
--- a/etc/ps-prin1.ps
+++ b/etc/ps-prin1.ps
@@ -1,7 +1,7 @@
 % === BEGIN ps-print prologue 1
 % version: 6.1
 
-% Copyright (C) 2000-2016 Free Software Foundation, Inc.
+% Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 % This file is part of GNU Emacs.
 
diff --git a/etc/refcards/Makefile b/etc/refcards/Makefile
index 20057cb..e998ab7 100644
--- a/etc/refcards/Makefile
+++ b/etc/refcards/Makefile
@@ -1,6 +1,6 @@
 ### Makefile for Emacs refcards
 
-## Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+## Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 ## This file is part of GNU Emacs.
 #
diff --git a/etc/refcards/README b/etc/refcards/README
index 245078b..178cb92 100644
--- a/etc/refcards/README
+++ b/etc/refcards/README
@@ -1,4 +1,4 @@
-Copyright (C) 2013-2016 Free Software Foundation, Inc.
+Copyright (C) 2013-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
@@ -32,7 +32,7 @@ it is reproduced here for convenience.
 
 File: gnus-logo.eps, gnus-logo.pdf
   Author: Luis Fernandes <address@hidden>
-  Copyright (C) 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 2001-2017 Free Software Foundation, Inc.
   License: GNU General Public License version 3 or later (see COPYING)
 
 
diff --git a/etc/refcards/calccard.tex b/etc/refcards/calccard.tex
index 352c7c2..4507272 100644
--- a/etc/refcards/calccard.tex
+++ b/etc/refcards/calccard.tex
@@ -20,7 +20,7 @@
 % Typical command to format:  tex calccard.tex
 % Typical command to print (3 cols):  dvips -t landscape calccard.dvi
 
-% Copyright (C) 1987, 1992, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1987, 1992, 2001-2017 Free Software Foundation, Inc.
 
 % This document is free software: you can redistribute it and/or modify
 % it under the terms of the GNU General Public License as published by
diff --git a/etc/refcards/cs-dired-ref.tex b/etc/refcards/cs-dired-ref.tex
index 0cab295..8a05bab 100644
--- a/etc/refcards/cs-dired-ref.tex
+++ b/etc/refcards/cs-dired-ref.tex
@@ -1,6 +1,6 @@
 % Reference Card for Dired -*- coding: utf-8 -*-
 
-% Copyright (C) 2000-2016 Free Software Foundation, Inc.
+% Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 % Author: Evgeny Roubinchtein <address@hidden>
 % Czech translation: Pavel Janík <address@hidden>, March 2001
diff --git a/etc/refcards/cs-refcard.tex b/etc/refcards/cs-refcard.tex
index 64590fe..6912893 100644
--- a/etc/refcards/cs-refcard.tex
+++ b/etc/refcards/cs-refcard.tex
@@ -1,6 +1,6 @@
 % Reference Card for GNU Emacs -*- coding: utf-8 -*-
 
-% Copyright (C) 1987, 1993, 1996-1997, 2001-2016 Free Software
+% Copyright (C) 1987, 1993, 1996-1997, 2001-2017 Free Software
 % Foundation, Inc.
 
 % Author: Stephen Gildea <address@hidden>
diff --git a/etc/refcards/cs-survival.tex b/etc/refcards/cs-survival.tex
index 6e15f1f..bb14091 100644
--- a/etc/refcards/cs-survival.tex
+++ b/etc/refcards/cs-survival.tex
@@ -1,6 +1,6 @@
 % Title:  GNU Emacs Survival Card -*- coding: utf-8 -*-
 
-% Copyright (C) 2000-2016 Free Software Foundation, Inc.
+% Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 % Author: Wlodek Bzyl <address@hidden>
 % Czech translation: Pavel Janík <address@hidden>, March 2001
diff --git a/etc/refcards/de-refcard.tex b/etc/refcards/de-refcard.tex
index b6d6c21..b5ca862 100644
--- a/etc/refcards/de-refcard.tex
+++ b/etc/refcards/de-refcard.tex
@@ -1,6 +1,6 @@
 % Reference Card for GNU Emacs
 
-% Copyright (C) 1987, 1993, 1996, 2000-2016 Free Software Foundation,
+% Copyright (C) 1987, 1993, 1996, 2000-2017 Free Software Foundation,
 % Inc.
 
 % Author: Stephen Gildea <address@hidden>
diff --git a/etc/refcards/dired-ref.tex b/etc/refcards/dired-ref.tex
index 4b9f41f..86c53d0 100644
--- a/etc/refcards/dired-ref.tex
+++ b/etc/refcards/dired-ref.tex
@@ -1,6 +1,6 @@
 % Reference Card for Dired
 
-% Copyright (C) 2000-2016 Free Software Foundation, Inc.
+% Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 % Author: Evgeny Roubinchtein <address@hidden>
 
diff --git a/etc/refcards/emacsver.tex.in b/etc/refcards/emacsver.tex.in
index 92f1245..ac68c50 100644
--- a/etc/refcards/emacsver.tex.in
+++ b/etc/refcards/emacsver.tex.in
@@ -2,4 +2,4 @@
 address@hidden@}           % major version of emacs
 %% This one should not be automatically updated;
 %% M-x set-copyright in admin.el handles it.
-\def\year{2016}                             % latest copyright year
+\def\year{2017}                             % latest copyright year
diff --git a/etc/refcards/fr-dired-ref.tex b/etc/refcards/fr-dired-ref.tex
index d04b362..68e492f 100644
--- a/etc/refcards/fr-dired-ref.tex
+++ b/etc/refcards/fr-dired-ref.tex
@@ -1,6 +1,6 @@
 % Reference Card for Dired -*- coding: utf-8 -*-
 
-% Copyright (C) 2000-2016 Free Software Foundation, Inc.
+% Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 % Author: Evgeny Roubinchtein <address@hidden>
 % French translation: Eric Jacoboni
diff --git a/etc/refcards/fr-refcard.tex b/etc/refcards/fr-refcard.tex
index 73e6307..294e3ad 100644
--- a/etc/refcards/fr-refcard.tex
+++ b/etc/refcards/fr-refcard.tex
@@ -1,6 +1,6 @@
 % Reference Card for GNU Emacs
 
-% Copyright (C) 1987, 1993, 1996-1997, 2001-2016 Free Software
+% Copyright (C) 1987, 1993, 1996-1997, 2001-2017 Free Software
 % Foundation, Inc.
 
 % Author: Stephen Gildea <address@hidden>
diff --git a/etc/refcards/fr-survival.tex b/etc/refcards/fr-survival.tex
index e2a338e..f0885e5 100644
--- a/etc/refcards/fr-survival.tex
+++ b/etc/refcards/fr-survival.tex
@@ -1,7 +1,7 @@
 %&tex
 % Title:  GNU Emacs Survival Card
 
-% Copyright (C) 2000-2016 Free Software Foundation, Inc.
+% Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 % Author: Wlodek Bzyl <address@hidden>
 % French translation:  \'Eric Jacoboni <address@hidden>, November 2001
diff --git a/etc/refcards/gnus-logo.eps b/etc/refcards/gnus-logo.eps
index 54deefd..aff7a31 100644
--- a/etc/refcards/gnus-logo.eps
+++ b/etc/refcards/gnus-logo.eps
@@ -1,5 +1,5 @@
 %!PS-Adobe-2.0 EPSF-2.0
-% Copyright (C) 2000-2016 Free Software Foundation, Inc.
+% Copyright (C) 2000-2017 Free Software Foundation, Inc.
 %
 % Author: Luis Fernandes <address@hidden>
 %
diff --git a/etc/refcards/gnus-refcard.tex b/etc/refcards/gnus-refcard.tex
index 6e5f2c3..6768208 100644
--- a/etc/refcards/gnus-refcard.tex
+++ b/etc/refcards/gnus-refcard.tex
@@ -120,7 +120,7 @@
 %% Gnus logo by Luis Fernandes.
 \newcommand{\Copyright}{%
   \begin{center}
-    Copyright \copyright\ 1995, 2000, 2002--2016 Free Software Foundation, 
Inc.\\*
+    Copyright \copyright\ 1995, 2000, 2002--2017 Free Software Foundation, 
Inc.\\*
   \end{center}
 
   Released under the terms of the GNU General Public License version 3 or 
later.
diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex
index d814de5..b12ae7b 100644
--- a/etc/refcards/orgcard.tex
+++ b/etc/refcards/orgcard.tex
@@ -17,7 +17,7 @@
 \pdflayout=(0l)
 
 % Nothing else needs to be changed below this line.
-% Copyright (C) 1987, 1993, 1996-1997, 2001-2016 Free Software
+% Copyright (C) 1987, 1993, 1996-1997, 2001-2017 Free Software
 % Foundation, Inc.
 
 % This document is free software: you can redistribute it and/or modify
diff --git a/etc/refcards/pdflayout.sty b/etc/refcards/pdflayout.sty
index d6a5747..affb475 100644
--- a/etc/refcards/pdflayout.sty
+++ b/etc/refcards/pdflayout.sty
@@ -1,4 +1,4 @@
-% Copyright (C) 2007-2016 Free Software Foundation, Inc.
+% Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 % This file is part of GNU Emacs.
 
diff --git a/etc/refcards/pl-refcard.tex b/etc/refcards/pl-refcard.tex
index 121c79c..0bddea4 100644
--- a/etc/refcards/pl-refcard.tex
+++ b/etc/refcards/pl-refcard.tex
@@ -1,7 +1,7 @@
 %&mex
 % Reference Card for GNU Emacs
 
-% Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1999, 2001-2017 Free Software Foundation, Inc.
 
 % Author: Stephen Gildea <address@hidden>
 % Polish translation: W{\l}odek Bzyl <address@hidden>
diff --git a/etc/refcards/pt-br-refcard.tex b/etc/refcards/pt-br-refcard.tex
index 7f70d8e..1ba50fa 100644
--- a/etc/refcards/pt-br-refcard.tex
+++ b/etc/refcards/pt-br-refcard.tex
@@ -1,6 +1,6 @@
 % Reference Card for GNU Emacs
 
-% Copyright (C) 1987, 1993, 1996-1997, 2002-2004, 2006-2016 Free
+% Copyright (C) 1987, 1993, 1996-1997, 2002-2004, 2006-2017 Free
 % Software Foundation, Inc.
 
 % Author: Stephen Gildea <address@hidden>
diff --git a/etc/refcards/refcard.tex b/etc/refcards/refcard.tex
index afeaeec..0a57fcf 100644
--- a/etc/refcards/refcard.tex
+++ b/etc/refcards/refcard.tex
@@ -1,6 +1,6 @@
 % Reference Card for GNU Emacs
 
-% Copyright (C) 1987, 1993, 1996-1997, 2001-2016 Free Software
+% Copyright (C) 1987, 1993, 1996-1997, 2001-2017 Free Software
 % Foundation, Inc.
 
 % Author: Stephen Gildea <address@hidden>
diff --git a/etc/refcards/ru-refcard.tex b/etc/refcards/ru-refcard.tex
index a72d081..fad75dd 100644
--- a/etc/refcards/ru-refcard.tex
+++ b/etc/refcards/ru-refcard.tex
@@ -1,4 +1,4 @@
-% Copyright (C) 1997, 2002-2016 Free Software Foundation, Inc.
+% Copyright (C) 1997, 2002-2017 Free Software Foundation, Inc.
 
 % Author: Stephen Gildea <address@hidden>
 % Russian translation: Alex Ott <address@hidden>
@@ -41,7 +41,7 @@
 \setlength{\ColThreeWidth}{25mm}
 
 \newcommand{\versionemacs}[0]{26} % version of Emacs this is for
-\newcommand{\cyear}[0]{2016}       % copyright year
+\newcommand{\cyear}[0]{2017}       % copyright year
 
 \newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill
   \centerline{\footnotesize \copyright\ \cyear\ Free Software Foundation, Inc.
diff --git a/etc/refcards/sk-dired-ref.tex b/etc/refcards/sk-dired-ref.tex
index 25f67d0..9af5499 100644
--- a/etc/refcards/sk-dired-ref.tex
+++ b/etc/refcards/sk-dired-ref.tex
@@ -1,6 +1,6 @@
 % Reference Card for Dired -*- coding: utf-8 -*-
 
-% Copyright (C) 2000-2016 Free Software Foundation, Inc.
+% Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 % Author: Evgeny Roubinchtein <address@hidden>
 % Czech translation: Pavel Janík <address@hidden>, March 2001
diff --git a/etc/refcards/sk-refcard.tex b/etc/refcards/sk-refcard.tex
index 83b27ef..dae3d8b 100644
--- a/etc/refcards/sk-refcard.tex
+++ b/etc/refcards/sk-refcard.tex
@@ -1,6 +1,6 @@
 % Reference Card for GNU Emacs -*- coding: utf-8 -*-
 
-% Copyright (C) 1987, 1993, 1996-1997, 2001-2016 Free Software
+% Copyright (C) 1987, 1993, 1996-1997, 2001-2017 Free Software
 % Foundation, Inc.
 
 % Author: Stephen Gildea <address@hidden>
diff --git a/etc/refcards/sk-survival.tex b/etc/refcards/sk-survival.tex
index 27b1a78..52e1eef 100644
--- a/etc/refcards/sk-survival.tex
+++ b/etc/refcards/sk-survival.tex
@@ -1,6 +1,6 @@
 % Title:  GNU Emacs Survival Card -*- coding: utf-8 -*-
 
-% Copyright (C) 2000-2016 Free Software Foundation, Inc.
+% Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 % Author: Wlodek Bzyl <address@hidden>
 % Czech translation: Pavel Janík <address@hidden>, March 2001
diff --git a/etc/refcards/survival.tex b/etc/refcards/survival.tex
index 1bdeb63..81ee44e 100644
--- a/etc/refcards/survival.tex
+++ b/etc/refcards/survival.tex
@@ -1,7 +1,7 @@
 %&tex
 % Title:  GNU Emacs Survival Card
 
-% Copyright (C) 2000-2016 Free Software Foundation, Inc.
+% Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 % Author: Wlodek Bzyl <address@hidden>
 
diff --git a/etc/refcards/vipcard.tex b/etc/refcards/vipcard.tex
index e4edfdb..5913dd4 100644
--- a/etc/refcards/vipcard.tex
+++ b/etc/refcards/vipcard.tex
@@ -1,6 +1,6 @@
 % Quick Reference Card for VIP
 
-% Copyright (C) 1987, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1987, 2001-2017 Free Software Foundation, Inc.
 
 % Author: Masahiko Sato <address@hidden>, <address@hidden>
 
diff --git a/etc/refcards/viperCard.tex b/etc/refcards/viperCard.tex
index 66d65ef..6561a48 100644
--- a/etc/refcards/viperCard.tex
+++ b/etc/refcards/viperCard.tex
@@ -1,6 +1,6 @@
 % ViperCard -- The Reference Card for Viper under GNU Emacs and XEmacs
 
-% Copyright (C) 1995-1997, 2001-2016 Free Software Foundation, Inc.
+% Copyright (C) 1995-1997, 2001-2017 Free Software Foundation, Inc.
 
 % Author: Michael Kifer <address@hidden> (Viper)
 %      Aamod Sane <address@hidden> (VIP 4.3)
diff --git a/etc/schema/locate.rnc b/etc/schema/locate.rnc
index c173bac..9af0198 100644
--- a/etc/schema/locate.rnc
+++ b/etc/schema/locate.rnc
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2004, 2007-2016 Free Software Foundation, Inc.
+# Copyright (C) 2003-2004, 2007-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/etc/schema/relaxng.rnc b/etc/schema/relaxng.rnc
index 3638471..fae2bf1 100644
--- a/etc/schema/relaxng.rnc
+++ b/etc/schema/relaxng.rnc
@@ -1,6 +1,6 @@
 # RELAX NG XML syntax expressed in RELAX NG Compact syntax.
 
-# Copyright (C) 2003-2004, 2007-2016 Free Software Foundation, Inc.
+# Copyright (C) 2003-2004, 2007-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/etc/schema/schemas.xml b/etc/schema/schemas.xml
index 26f2a56..d217d6e 100644
--- a/etc/schema/schemas.xml
+++ b/etc/schema/schemas.xml
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2003-2004, 2007-2016 Free Software Foundation, Inc.
+<!-- Copyright (C) 2003-2004, 2007-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/etc/ses-example.ses b/etc/ses-example.ses
index 07a1d3e..5c0a281 100644
--- a/etc/ses-example.ses
+++ b/etc/ses-example.ses
@@ -205,7 +205,7 @@ Sales summary - Acme fundraising
 ;;; ses--symbolic-formulas: (("Eastern area") ("West-district") 
("North&South") ("Other"))
 ;;; End:
 
-;;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;;; COPYING PERMISSIONS:
 ;;; 
diff --git a/etc/srecode/c.srt b/etc/srecode/c.srt
index b1aa2e9..720da3d 100644
--- a/etc/srecode/c.srt
+++ b/etc/srecode/c.srt
@@ -1,6 +1,6 @@
 ;;; c.srt --- SRecode templates for c-mode
 
-;; Copyright (C) 2007-2010, 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2010, 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/cpp.srt b/etc/srecode/cpp.srt
index 2103c3f..444c14d 100644
--- a/etc/srecode/cpp.srt
+++ b/etc/srecode/cpp.srt
@@ -1,6 +1,6 @@
 ;;; cpp.srt --- SRecode templates for c++-mode
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/default.srt b/etc/srecode/default.srt
index 22f4fca..f7a8f09 100644
--- a/etc/srecode/default.srt
+++ b/etc/srecode/default.srt
@@ -1,6 +1,6 @@
 ;;; default.srt --- SRecode templates for srecode-template-mode
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/doc-cpp.srt b/etc/srecode/doc-cpp.srt
index c729670..486bb63 100644
--- a/etc/srecode/doc-cpp.srt
+++ b/etc/srecode/doc-cpp.srt
@@ -1,6 +1,6 @@
 ;; doc-c.srt --- SRecode templates for "document" applications
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/doc-default.srt b/etc/srecode/doc-default.srt
index 5612965..30a8311 100644
--- a/etc/srecode/doc-default.srt
+++ b/etc/srecode/doc-default.srt
@@ -1,6 +1,6 @@
 ;; doc-default.srt --- SRecode templates for "document" applications
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/doc-java.srt b/etc/srecode/doc-java.srt
index b6f27f5..a3a294d 100644
--- a/etc/srecode/doc-java.srt
+++ b/etc/srecode/doc-java.srt
@@ -1,6 +1,6 @@
 ;; doc-java.srt --- SRecode templates for "document" applications
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/ede-autoconf.srt b/etc/srecode/ede-autoconf.srt
index a3dc378..c25416e 100644
--- a/etc/srecode/ede-autoconf.srt
+++ b/etc/srecode/ede-autoconf.srt
@@ -1,6 +1,6 @@
 ;;; ede/templates/autoconf.srt --- Templates for autoconf used by EDE
 
-;; Copyright (C) 2010, 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010, 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/ede-make.srt b/etc/srecode/ede-make.srt
index 8adc760..4485342 100644
--- a/etc/srecode/ede-make.srt
+++ b/etc/srecode/ede-make.srt
@@ -1,6 +1,6 @@
 ;; ede-make.srt --- SRecode templates for Makefiles used by EDE.
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/el.srt b/etc/srecode/el.srt
index a94f7c6..cc3f1e8 100644
--- a/etc/srecode/el.srt
+++ b/etc/srecode/el.srt
@@ -1,6 +1,6 @@
 ;;; el.srt --- SRecode templates for Emacs Lisp mode
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Ludlam <address@hidden>
 
diff --git a/etc/srecode/getset-cpp.srt b/etc/srecode/getset-cpp.srt
index 7bed097..9f4341d 100644
--- a/etc/srecode/getset-cpp.srt
+++ b/etc/srecode/getset-cpp.srt
@@ -1,6 +1,6 @@
 ;;; getset-cpp.srt --- SRecode templates for C++ class getter/setters.
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/java.srt b/etc/srecode/java.srt
index 1f885b2..db154db 100644
--- a/etc/srecode/java.srt
+++ b/etc/srecode/java.srt
@@ -1,6 +1,6 @@
 ;; java.srt
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/make.srt b/etc/srecode/make.srt
index 761636e..af2e950 100644
--- a/etc/srecode/make.srt
+++ b/etc/srecode/make.srt
@@ -1,6 +1,6 @@
 ;; make.srt
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/template.srt b/etc/srecode/template.srt
index 6b5d1c5..deb901f 100644
--- a/etc/srecode/template.srt
+++ b/etc/srecode/template.srt
@@ -1,6 +1,6 @@
 ;;; template.srt --- Templates for Semantic Recoders
 
-;; Copyright (C) 2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Ludlam <address@hidden>
 
diff --git a/etc/srecode/test.srt b/etc/srecode/test.srt
index 8d39957..4e567ad 100644
--- a/etc/srecode/test.srt
+++ b/etc/srecode/test.srt
@@ -1,6 +1,6 @@
 ;; test.srt --- SRecode templates for testing
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/texi.srt b/etc/srecode/texi.srt
index f7b5bdf..52acb77 100644
--- a/etc/srecode/texi.srt
+++ b/etc/srecode/texi.srt
@@ -1,6 +1,6 @@
 ;; texi.srt --- SRecode templates for Texinfo
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/srecode/wisent.srt b/etc/srecode/wisent.srt
index 69159ab..ac59d77 100644
--- a/etc/srecode/wisent.srt
+++ b/etc/srecode/wisent.srt
@@ -1,6 +1,6 @@
 ;; wisent.srt --- SRecode templates for Emacs/WISENT grammar files.
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/etc/themes/adwaita-theme.el b/etc/themes/adwaita-theme.el
index 1901b2d..5c9df3d 100644
--- a/etc/themes/adwaita-theme.el
+++ b/etc/themes/adwaita-theme.el
@@ -1,6 +1,6 @@
 ;;; adwaita-theme.el --- Tango-based custom theme for faces
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: William Stevenson <address@hidden>
 
diff --git a/etc/themes/deeper-blue-theme.el b/etc/themes/deeper-blue-theme.el
index 08c6182..d1111de 100644
--- a/etc/themes/deeper-blue-theme.el
+++ b/etc/themes/deeper-blue-theme.el
@@ -1,6 +1,6 @@
 ;;; deeper-blue-theme.el --- Custom theme for faces
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Scott Frazer <address@hidden>
 
diff --git a/etc/themes/dichromacy-theme.el b/etc/themes/dichromacy-theme.el
index 1e7c509..c32d18c 100644
--- a/etc/themes/dichromacy-theme.el
+++ b/etc/themes/dichromacy-theme.el
@@ -1,6 +1,6 @@
 ;;; dichromacy-theme.el --- color theme suitable for color-blind users
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Chong Yidong <address@hidden>
 
diff --git a/etc/themes/leuven-theme.el b/etc/themes/leuven-theme.el
index 19d5561..a633962 100644
--- a/etc/themes/leuven-theme.el
+++ b/etc/themes/leuven-theme.el
@@ -1,6 +1,6 @@
 ;;; leuven-theme.el --- Awesome Emacs color theme on white background
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Fabrice Niessen <(concat "fniessen" at-sign "pirilampo.org")>
 ;; URL: https://github.com/fniessen/emacs-leuven-theme
diff --git a/etc/themes/light-blue-theme.el b/etc/themes/light-blue-theme.el
index a2ed71a..319b5f3 100644
--- a/etc/themes/light-blue-theme.el
+++ b/etc/themes/light-blue-theme.el
@@ -1,6 +1,6 @@
 ;;; light-blue-theme.el --- Custom theme for faces
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Drew Adams <address@hidden>
 
diff --git a/etc/themes/manoj-dark-theme.el b/etc/themes/manoj-dark-theme.el
index a8b922d..87a2af7 100644
--- a/etc/themes/manoj-dark-theme.el
+++ b/etc/themes/manoj-dark-theme.el
@@ -1,6 +1,6 @@
 ;;; manoj-dark.el --- A dark theme from Manoj
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Manoj Srivastava <address@hidden>
 ;; Keywords: lisp, faces
diff --git a/etc/themes/misterioso-theme.el b/etc/themes/misterioso-theme.el
index cef0e88..53772fb 100644
--- a/etc/themes/misterioso-theme.el
+++ b/etc/themes/misterioso-theme.el
@@ -1,6 +1,6 @@
 ;;; misterioso-theme.el --- Custom face theme for Emacs
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Sebastian Hermida
 
diff --git a/etc/themes/tango-dark-theme.el b/etc/themes/tango-dark-theme.el
index 407c79b..ba7484c 100644
--- a/etc/themes/tango-dark-theme.el
+++ b/etc/themes/tango-dark-theme.el
@@ -1,6 +1,6 @@
 ;;; tango-dark-theme.el --- Tango-based custom theme for faces
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Authors: Chong Yidong <address@hidden>
 ;;          Jan Moringen <address@hidden>
diff --git a/etc/themes/tango-theme.el b/etc/themes/tango-theme.el
index a2d7c84..50b8a96 100644
--- a/etc/themes/tango-theme.el
+++ b/etc/themes/tango-theme.el
@@ -1,6 +1,6 @@
 ;;; tango-theme.el --- Tango-based custom theme for faces
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Authors: Chong Yidong <address@hidden>
 ;;          Jan Moringen <address@hidden>
diff --git a/etc/themes/tsdh-dark-theme.el b/etc/themes/tsdh-dark-theme.el
index 7908485..cd94a71 100644
--- a/etc/themes/tsdh-dark-theme.el
+++ b/etc/themes/tsdh-dark-theme.el
@@ -1,6 +1,6 @@
 ;;; tsdh-dark-theme.el --- Tassilo's dark custom theme
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/etc/themes/tsdh-light-theme.el b/etc/themes/tsdh-light-theme.el
index 9d618c5..f57bf92 100644
--- a/etc/themes/tsdh-light-theme.el
+++ b/etc/themes/tsdh-light-theme.el
@@ -1,6 +1,6 @@
 ;;; tsdh-light-theme.el --- Tassilo's light custom theme
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/etc/themes/wheatgrass-theme.el b/etc/themes/wheatgrass-theme.el
index a8e5a2a..291e839 100644
--- a/etc/themes/wheatgrass-theme.el
+++ b/etc/themes/wheatgrass-theme.el
@@ -1,6 +1,6 @@
 ;;; wheatgrass-theme.el --- custom theme for faces
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/etc/themes/whiteboard-theme.el b/etc/themes/whiteboard-theme.el
index b321a50..5e2f466 100644
--- a/etc/themes/whiteboard-theme.el
+++ b/etc/themes/whiteboard-theme.el
@@ -1,6 +1,6 @@
 ;;; whiteboard-theme.el --- Custom theme for faces
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Scott Frazer <address@hidden>
 
diff --git a/etc/themes/wombat-theme.el b/etc/themes/wombat-theme.el
index 6768cce..80bac92 100644
--- a/etc/themes/wombat-theme.el
+++ b/etc/themes/wombat-theme.el
@@ -1,6 +1,6 @@
 ;;; wombat-theme.el --- Custom face theme for Emacs
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Kristoffer Grönlund <address@hidden>
 
diff --git a/etc/tutorials/TUTORIAL b/etc/tutorials/TUTORIAL
index af6ab4e..40e1cf8 100644
--- a/etc/tutorials/TUTORIAL
+++ b/etc/tutorials/TUTORIAL
@@ -1111,7 +1111,7 @@ starting with the one written by Stuart Cracraft for the 
original Emacs.
 This version of the tutorial is a part of GNU Emacs.  It is copyrighted
 and comes with permission to distribute copies on certain conditions:
 
-  Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation,
+  Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation,
   Inc.
 
   This file is part of GNU Emacs.
diff --git a/etc/tutorials/TUTORIAL.bg b/etc/tutorials/TUTORIAL.bg
index 7bc062d..ed6f29c 100644
--- a/etc/tutorials/TUTORIAL.bg
+++ b/etc/tutorials/TUTORIAL.bg
@@ -1162,7 +1162,7 @@ Dired ви позволява да гледате списъка от файло
 This version of the tutorial, like GNU Emacs, is copyrighted, and
 comes with permission to distribute copies on certain conditions:
 
-  Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation,
+  Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation,
   Inc.
 
   This file is part of GNU Emacs.
diff --git a/etc/tutorials/TUTORIAL.cn b/etc/tutorials/TUTORIAL.cn
index 28d71a5..fe8f500 100644
--- a/etc/tutorials/TUTORIAL.cn
+++ b/etc/tutorials/TUTORIAL.cn
@@ -997,7 +997,7 @@ starting with the one written by Stuart Cracraft for the 
original Emacs.
 This version of the tutorial is a part of GNU Emacs.  It is copyrighted
 and comes with permission to distribute copies on certain conditions:
 
-  Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation,
+  Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation,
   Inc.
 
   This file is part of GNU Emacs.
@@ -1026,7 +1026,7 @@ using, writing, and sharing free software!
 
 本篇指南是 GNU Emacs 的一部分,并允许在下列条件的约束下发行其拷贝:
 
-   Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation,
+   Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation,
    Inc.
 
    本文件为 GNU Emacs 的一部分。
diff --git a/etc/tutorials/TUTORIAL.cs b/etc/tutorials/TUTORIAL.cs
index 146e73e..7792182 100644
--- a/etc/tutorials/TUTORIAL.cs
+++ b/etc/tutorials/TUTORIAL.cs
@@ -1015,7 +1015,7 @@ tutoriálem napsaným Stuartem Cracraftem pro původní Emacs.
 Tato verze tutoriálu je, podobně jako GNU Emacs, chráněna copyrightem a
 je šířena se svolením distribuovat kopie za jistých podmínek:
 
-Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation, Inc.
 
    Každému je zaručeno právo vytvářet a distribuovat přesné kopie tohoto
    dokumentu tak, jak jej obdržel, na jakémkoliv médiu, s tím, že bude
diff --git a/etc/tutorials/TUTORIAL.de b/etc/tutorials/TUTORIAL.de
index 486f174..8d017c8 100644
--- a/etc/tutorials/TUTORIAL.de
+++ b/etc/tutorials/TUTORIAL.de
@@ -1458,7 +1458,7 @@ Beachten Sie bitte, dass im Zweifelsfalle das englische 
Original
 dieser Urheberrechtsnotiz gültig ist (zu finden in der Datei
 TUTORIAL).
 
-   Copyright (C) 1985, 1996-1997, 2001-2016 Free Software Foundation,
+   Copyright (C) 1985, 1996-1997, 2001-2017 Free Software Foundation,
    Inc.
 
    Diese Datei ist ein Bestandteil von GNU Emacs.
diff --git a/etc/tutorials/TUTORIAL.eo b/etc/tutorials/TUTORIAL.eo
index 35830c6..da7ba73 100644
--- a/etc/tutorials/TUTORIAL.eo
+++ b/etc/tutorials/TUTORIAL.eo
@@ -1081,7 +1081,7 @@ la dosiero verkita de Stuart Cracraft por la originala 
Emakso.
 kopirajton, kaj venas kun permeso por disdoni kopiojn se certaj
 kondiĉoj estas observataj:
 
-   Copyright (C) 1985, 1999, 2001-2002, 2005, 2007-2016 Free Software
+   Copyright (C) 1985, 1999, 2001-2002, 2005, 2007-2017 Free Software
    Foundation, Inc.
 
    Ĉi tiu dosiero estas parto de "GNU Emacs".
diff --git a/etc/tutorials/TUTORIAL.es b/etc/tutorials/TUTORIAL.es
index 04a1ac5..7580232 100644
--- a/etc/tutorials/TUTORIAL.es
+++ b/etc/tutorials/TUTORIAL.es
@@ -1204,7 +1204,7 @@ Por favor, en caso de duda, solo es válido el original en 
inglés de la
 siguiente nota de derechos de reproducción (que puede encontrar en el
 archivo TUTORIAL).
 
-Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation, Inc.
 
    Se permite a cualquiera hacer o distribuir copias literales de este
    documento como se recibe, en cualquier medio, siempre que la nota
diff --git a/etc/tutorials/TUTORIAL.fr b/etc/tutorials/TUTORIAL.fr
index 788400f..75d7c0b 100644
--- a/etc/tutorials/TUTORIAL.fr
+++ b/etc/tutorials/TUTORIAL.fr
@@ -1202,7 +1202,7 @@ Cette version du didacticiel, comme GNU Emacs, est placée 
sous
 droit d'auteur, et vous pouvez en distribuer des copies sous certaines
 conditions :
 
-Copyright (C) 1985, 1996, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1996, 2001-2017 Free Software Foundation, Inc.
 
    Chacun peut créer ou distribuer des copies de ce document tel qu'il
    l'a reçu, sur n'importe quel support, pourvu que la note de
diff --git a/etc/tutorials/TUTORIAL.he b/etc/tutorials/TUTORIAL.he
index 6acb7f2..fefc780 100644
--- a/etc/tutorials/TUTORIAL.he
+++ b/etc/tutorials/TUTORIAL.he
@@ -997,7 +997,7 @@ find-file.
 גירסה זו של השיעור הינה חלק מחבילת GNU Emacs. היא מוגנת בזכויות יוצרים
 וניתנת להעתקה והפצת עותקים בתנאים מסויימים כדלקמן:
 
-                       Copyright (C) 2010-2016 Free Software Foundation, Inc.
+                       Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ‏GNU Emacs הינו תכנה חפשית; זכותכם להפיצו ו\או לשנותו בכפוף לתנאי
 הרשיון GNU General Public License, כפי שהוא יוצא לאור ע״י Free
diff --git a/etc/tutorials/TUTORIAL.it b/etc/tutorials/TUTORIAL.it
index d27b2ee..4e010cb 100644
--- a/etc/tutorials/TUTORIAL.it
+++ b/etc/tutorials/TUTORIAL.it
@@ -1201,7 +1201,7 @@ distribuito con il permesso di farne copie a determinate 
condizioni:
    indicativo, restando comunque inteso il fatto che è quella
    originale a fare fede.
 
-Copyright (C) 2003-2016 Free Software Foundation, Inc.
+Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
    È permesso a chiunque copiare e distribuire attraverso ogni mezzo
    copie fedeli di questo documento così come viene ricevuto, a
diff --git a/etc/tutorials/TUTORIAL.ja b/etc/tutorials/TUTORIAL.ja
index f41b2b5..aca28ed 100644
--- a/etc/tutorials/TUTORIAL.ja
+++ b/etc/tutorials/TUTORIAL.ja
@@ -1062,7 +1062,7 @@ starting with the one written by Stuart Cracraft for the 
original Emacs.
 This version of the tutorial, like GNU Emacs, is copyrighted, and
 comes with permission to distribute copies on certain conditions:
 
-Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation, Inc.
 
    Permission is granted to anyone to make or distribute verbatim copies
    of this document as received, in any medium, provided that the
diff --git a/etc/tutorials/TUTORIAL.ko b/etc/tutorials/TUTORIAL.ko
index f2b9e1f..d618638 100644
--- a/etc/tutorials/TUTORIAL.ko
+++ b/etc/tutorials/TUTORIAL.ko
@@ -981,7 +981,7 @@ C-x C-s와 (META쇠나 EDIT쇠 혹은 교체쇠가 있으면) <ESC>v와 같은 
 GNU 이맥스와 같이 이 지침서 판은 저작권이 있으며 특정한 조건을 만족할
 때에 복사본을 배포할 수 있는 허가를 갖고 나온 것이다:
 
-Copyright (C) 1985, 1996, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1996, 2001-2017 Free Software Foundation, Inc.
 
    이 문서는 이 저작권 공고와 허용 공고가 그대로 유지되고, 배포자가
    수취자에게 이 공고에 따라 허용되는 것처럼 또 재분배하는 것을
diff --git a/etc/tutorials/TUTORIAL.nl b/etc/tutorials/TUTORIAL.nl
index a48a9c3..d0453bd 100644
--- a/etc/tutorials/TUTORIAL.nl
+++ b/etc/tutorials/TUTORIAL.nl
@@ -1209,7 +1209,7 @@ Deze versie van de inleiding is onderdeel van GNU Emacs.  
Het valt
 onder copyright.  Je mag deze inleiding verspreiden onder bepaalde
 voorwaarden:
 
-  Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation,
+  Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation,
   Inc.
 
   Dit bestand is onderdeel van GNU Emacs.
@@ -1239,7 +1239,7 @@ Engels origineel van de copyrightmelding en condities:
 This version of the tutorial is a part of GNU Emacs.  It is copyrighted
 and comes with permission to distribute copies on certain conditions:
 
-  Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/etc/tutorials/TUTORIAL.pl b/etc/tutorials/TUTORIAL.pl
index 6d17c87..516d6eb 100644
--- a/etc/tutorials/TUTORIAL.pl
+++ b/etc/tutorials/TUTORIAL.pl
@@ -1209,7 +1209,7 @@ z pomocą Ryszarda Kubiaka i Janusza S. Bienia 
<address@hidden>.
 Ta wersja samouczka, podobnie jak GNU Emacs, jest chroniona prawem
 autorskim, ale wolno ją kopiować pod następującymi warunkami:
 
-Copyright (C) 1985, 1994, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1994, 2001-2017 Free Software Foundation, Inc.
 
 Zezwala się na wykonywanie lub rozpowszechnianie
 wiernych kopii tego dokumentu w otrzymanej formie, na dowolnym
diff --git a/etc/tutorials/TUTORIAL.pt_BR b/etc/tutorials/TUTORIAL.pt_BR
index d95ae2b..d237fd5 100644
--- a/etc/tutorials/TUTORIAL.pt_BR
+++ b/etc/tutorials/TUTORIAL.pt_BR
@@ -1056,7 +1056,7 @@ Essa versão do tutorial foi originalmente traduzida por 
Marcelo Toledo
 <address@hidden> e como o GNU Emacs, tem um copyright, e vem
 com uma permissão de distribuição de cópias nas seguintes condições:
 
-Copyright (C) 2004-2016 Free Software Foundation, Inc.
+Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
    Permissão é garantida a qualquer um para fazer ou distribuir cópias
    integrais deste documento como recebido, em qualquer meio, deixando
diff --git a/etc/tutorials/TUTORIAL.ro b/etc/tutorials/TUTORIAL.ro
index 4bb180b..c5c25e3 100644
--- a/etc/tutorials/TUTORIAL.ro
+++ b/etc/tutorials/TUTORIAL.ro
@@ -4,7 +4,7 @@ Mulţumiri Aidei Hulubei <address@hidden> pentru corecturi şi 
sugestii.
 
 Această versiune a fost produsă plecând de la versiunea în limba
 engleză, care este
-Copyright (c) 1985, 2013-2016 Free Software Foundation, Inc.
+Copyright (c) 1985, 2013-2017 Free Software Foundation, Inc.
 
 Citiţi acum versiunea românească a tutorialului de Emacs.
 
@@ -1082,7 +1082,7 @@ continuare noţita de copyright originală în limba engleză.
 This version of the tutorial, like GNU Emacs, is copyrighted, and
 comes with permission to distribute copies on certain conditions:
 
-Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 
    Permission is granted to anyone to make or distribute verbatim copies
    of this document as received, in any medium, provided that the
diff --git a/etc/tutorials/TUTORIAL.ru b/etc/tutorials/TUTORIAL.ru
index 8a285bf..b7140e6 100644
--- a/etc/tutorials/TUTORIAL.ru
+++ b/etc/tutorials/TUTORIAL.ru
@@ -1105,7 +1105,7 @@ Dired позволяет вам отображать список файлов 
 (copyrighted) и приходит с ограничениями распространения копий со
 следующими соглашениями:
 
-Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation, Inc.
 
    Permission is granted to anyone to make or distribute verbatim copies
    of this document as received, in any medium, provided that the
diff --git a/etc/tutorials/TUTORIAL.sk b/etc/tutorials/TUTORIAL.sk
index 6ef9042..8c11e8b 100644
--- a/etc/tutorials/TUTORIAL.sk
+++ b/etc/tutorials/TUTORIAL.sk
@@ -1074,7 +1074,7 @@ tútorialom napísaným Stuartom Cracraftom pre pôvodný 
Emacs.
 Táto verzia tútorialu je, podobne ako GNU Emacs, chránená copyrightom
 a je šírená s povolením distribuovať kópie za istých podmienok:
 
-Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation, Inc.
 
    Každému je zaručené právo vytvárať a distribuovať presné kópie tohto
    dokumentu tak, ako ho dostal, na akomkoľvek médiu, s tým, že bude
diff --git a/etc/tutorials/TUTORIAL.sl b/etc/tutorials/TUTORIAL.sl
index 38b15e7..4e59341 100644
--- a/etc/tutorials/TUTORIAL.sl
+++ b/etc/tutorials/TUTORIAL.sl
@@ -1119,7 +1119,7 @@ Emacs. V slovenščino ga je prevedel Primož Peterlin.
 To besedilo, kot sam GNU Emacs, je avtorsko delo, in njegovo
 razmnoževanje in razširjanje je dovoljeno pod naslednjimi pogoji:
 
-Copyright © 1985, 1996, 1998, 2001-2016 Free Software Foundation, Inc.
+Copyright © 1985, 1996, 1998, 2001-2017 Free Software Foundation, Inc.
 
   Ta datoteka je del paketa GNU Emacs.
 
diff --git a/etc/tutorials/TUTORIAL.sv b/etc/tutorials/TUTORIAL.sv
index 11ff9b3..4001748 100644
--- a/etc/tutorials/TUTORIAL.sv
+++ b/etc/tutorials/TUTORIAL.sv
@@ -1117,7 +1117,7 @@ Lidell översatte den till Svenska.
 This version of the tutorial, like GNU Emacs, is copyrighted, and
 comes with permission to distribute copies on certain conditions:
 
-Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/etc/tutorials/TUTORIAL.th b/etc/tutorials/TUTORIAL.th
index ec00c2a..33db463 100644
--- a/etc/tutorials/TUTORIAL.th
+++ b/etc/tutorials/TUTORIAL.th
@@ -964,7 +964,7 @@ starting with the one written by Stuart Cracraft for the 
original Emacs.
 This version of the tutorial, like GNU Emacs, is copyrighted, and
 comes with permission to distribute copies on certain conditions:
 
-Copyright (C) 1985, 1996, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1996, 2001-2017 Free Software Foundation, Inc.
 
    Permission is granted to anyone to make or distribute verbatim copies
    of this document as received, in any medium, provided that the
diff --git a/etc/tutorials/TUTORIAL.zh b/etc/tutorials/TUTORIAL.zh
index 8cfb838..c677cbd 100644
--- a/etc/tutorials/TUTORIAL.zh
+++ b/etc/tutorials/TUTORIAL.zh
@@ -1049,7 +1049,7 @@ issue here>」。
 這個版本的快速指南和 GNU Emacs 一樣都是版權化的,並且允許在某些條件下
 散佈其拷貝:
 
-Copyright (C) 1985, 1996, 1998, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1996, 1998, 2001-2017 Free Software Foundation, Inc.
 
    Permission is granted to anyone to make or distribute verbatim copies
    of this document as received, in any medium, provided that the
diff --git a/leim/ChangeLog.1 b/leim/ChangeLog.1
index 55d5b2c..ec9f051 100644
--- a/leim/ChangeLog.1
+++ b/leim/ChangeLog.1
@@ -2578,7 +2578,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1997-1999, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1997-1999, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/leim/Makefile.in b/leim/Makefile.in
index f000a93..a21c2d9 100644
--- a/leim/Makefile.in
+++ b/leim/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 1997-2016 Free Software Foundation, Inc.
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
 # Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 #   2006, 2007, 2008, 2009, 2010, 2011
 #   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/leim/README b/leim/README
index 31ca72d..7bcdbd3 100644
--- a/leim/README
+++ b/leim/README
@@ -1,4 +1,4 @@
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/leim/leim-ext.el b/leim/leim-ext.el
index d46e1c4..c0779c3 100644
--- a/leim/leim-ext.el
+++ b/leim/leim-ext.el
@@ -1,6 +1,6 @@
 ;; leim-ext.el -- extra leim configuration     -*- coding:utf-8; -*-
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H13PRO009
diff --git a/lib-src/ChangeLog.1 b/lib-src/ChangeLog.1
index 030ef6f..a9783e9 100644
--- a/lib-src/ChangeLog.1
+++ b/lib-src/ChangeLog.1
@@ -8609,7 +8609,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1988-1999, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1988-1999, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index c3693ab..88f6280 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 1985, 1987-1988, 1993-1994, 2001-2016 Free Software
+# Copyright (C) 1985, 1987-1988, 1993-1994, 2001-2017 Free Software
 # Foundation, Inc.
 
 # This file is part of GNU Emacs.
diff --git a/lib-src/ebrowse.c b/lib-src/ebrowse.c
index 7a26200..6239110 100644
--- a/lib-src/ebrowse.c
+++ b/lib-src/ebrowse.c
@@ -1,6 +1,6 @@
 /* ebrowse.c --- parsing files for the ebrowse C++ browser
 
-Copyright (C) 1992-2016 Free Software Foundation, Inc.
+Copyright (C) 1992-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 2909d63..70709ec 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -1,6 +1,6 @@
 /* Client process that communicates with GNU Emacs acting as server.
 
-Copyright (C) 1986-1987, 1994, 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1986-1987, 1994, 1999-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 7baa2a3..1b6ac83 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -28,7 +28,7 @@ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
SOFTWARE, EVEN
 IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
-Copyright (C) 1984, 1987-1989, 1993-1995, 1998-2016 Free Software
+Copyright (C) 1984, 1987-1989, 1993-1995, 1998-2017 Free Software
 Foundation, Inc.
 
 This file is not considered part of GNU Emacs.
diff --git a/lib-src/hexl.c b/lib-src/hexl.c
index 5bd8579..2eef7b3 100644
--- a/lib-src/hexl.c
+++ b/lib-src/hexl.c
@@ -1,5 +1,5 @@
 /* Convert files for Emacs Hexl mode.
-   Copyright (C) 1989, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1989, 2001-2017 Free Software Foundation, Inc.
 
 Author: Keith Gabryelski (according to authors.el)
 
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index 9ba9b6e..53970a0 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -1,6 +1,6 @@
 /* Generate doc-string file for GNU Emacs from source files.
 
-Copyright (C) 1985-1986, 1992-1994, 1997, 1999-2016 Free Software
+Copyright (C) 1985-1986, 1992-1994, 1997, 1999-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/lib-src/movemail.c b/lib-src/movemail.c
index 8111c87..cd12c48 100644
--- a/lib-src/movemail.c
+++ b/lib-src/movemail.c
@@ -1,7 +1,7 @@
 /* movemail foo bar -- move file foo to file bar,
    locking file foo the way /bin/mail respects.
 
-Copyright (C) 1986, 1992-1994, 1996, 1999, 2001-2016 Free Software
+Copyright (C) 1986, 1992-1994, 1996, 1999, 2001-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/lib-src/ntlib.c b/lib-src/ntlib.c
index 2ac0219..4bffc61 100644
--- a/lib-src/ntlib.c
+++ b/lib-src/ntlib.c
@@ -1,6 +1,6 @@
 /* Utility and Unix shadow routines for GNU Emacs support programs on NT.
 
-Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
 Author: Geoff Voelker (address@hidden)
 Created: 10-8-94
diff --git a/lib-src/ntlib.h b/lib-src/ntlib.h
index 4849dcc..32189dc 100644
--- a/lib-src/ntlib.h
+++ b/lib-src/ntlib.h
@@ -1,5 +1,5 @@
 /* Utility and Unix shadow routines for GNU Emacs support programs on NT.
-   Copyright (C) 1994, 2002-2016 Free Software Foundation, Inc.
+   Copyright (C) 1994, 2002-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/lib-src/pop.c b/lib-src/pop.c
index 99424c5..1a85bd2 100644
--- a/lib-src/pop.c
+++ b/lib-src/pop.c
@@ -1,6 +1,6 @@
 /* pop.c: client routines for talking to a POP3-protocol post-office server
 
-Copyright (C) 1991, 1993, 1996-1997, 1999, 2001-2016 Free Software
+Copyright (C) 1991, 1993, 1996-1997, 1999, 2001-2017 Free Software
 Foundation, Inc.
 
 Author: Jonathan Kamens <address@hidden>
diff --git a/lib-src/pop.h b/lib-src/pop.h
index b8c21fc..474cf1a 100644
--- a/lib-src/pop.h
+++ b/lib-src/pop.h
@@ -1,5 +1,5 @@
 /* pop.h: Header file for the "pop.c" client POP3 protocol.
-   Copyright (C) 1991, 1993, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1991, 1993, 2001-2017 Free Software Foundation, Inc.
 
 Author:  Jonathan Kamens <address@hidden>
 
diff --git a/lib-src/profile.c b/lib-src/profile.c
index cfee5b8..253f00e 100644
--- a/lib-src/profile.c
+++ b/lib-src/profile.c
@@ -1,5 +1,5 @@
 /* profile.c --- generate periodic events for profiling of Emacs Lisp code.
-   Copyright (C) 1992, 1994, 1999, 2001-2016 Free Software Foundation,
+   Copyright (C) 1992, 1994, 1999, 2001-2017 Free Software Foundation,
    Inc.
 
 Author: Boaz Ben-Zvi <address@hidden>
diff --git a/lib-src/rcs2log b/lib-src/rcs2log
index ff4d470..1a1771b 100755
--- a/lib-src/rcs2log
+++ b/lib-src/rcs2log
@@ -2,7 +2,7 @@
 
 # RCS to ChangeLog generator
 
-# Copyright (C) 1992-1998, 2001-2016 Free Software Foundation, Inc.
+# Copyright (C) 1992-1998, 2001-2017 Free Software Foundation, Inc.
 
 # Author: Paul Eggert <address@hidden>
 
@@ -20,7 +20,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
-Copyright='Copyright (C) 2016 Free Software Foundation, Inc.
+Copyright='Copyright (C) 2017 Free Software Foundation, Inc.
 This program comes with NO WARRANTY, to the extent permitted by law.
 You may redistribute copies of this program
 under the terms of the GNU General Public License.
diff --git a/lib-src/update-game-score.c b/lib-src/update-game-score.c
index 7e1b332..5edc8e7 100644
--- a/lib-src/update-game-score.c
+++ b/lib-src/update-game-score.c
@@ -1,6 +1,6 @@
 /* update-game-score.c --- Update a score file
 
-Copyright (C) 2002-2016 Free Software Foundation, Inc.
+Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 Author: Colin Walters <address@hidden>
 
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 316c637..e6d90dd 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 2016 Free Software Foundation, Inc.
+# Copyright 2016-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/lib/acl-errno-valid.c b/lib/acl-errno-valid.c
index 086f75f..a633985 100644
--- a/lib/acl-errno-valid.c
+++ b/lib/acl-errno-valid.c
@@ -1,6 +1,6 @@
 /* Test whether ACLs are well supported on this system.
 
-   Copyright 2013-2016 Free Software Foundation, Inc.
+   Copyright 2013-2017 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
diff --git a/lib/acl-internal.c b/lib/acl-internal.c
index 4de60c3..2a2dee9 100644
--- a/lib/acl-internal.c
+++ b/lib/acl-internal.c
@@ -1,6 +1,6 @@
 /* Test whether a file has a nontrivial ACL.  -*- coding: utf-8 -*-
 
-   Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2017 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
diff --git a/lib/acl-internal.h b/lib/acl-internal.h
index 636273e..e7bda0e 100644
--- a/lib/acl-internal.h
+++ b/lib/acl-internal.h
@@ -1,6 +1,6 @@
 /* Internal implementation of access control lists.  -*- coding: utf-8 -*-
 
-   Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2017 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
diff --git a/lib/acl.h b/lib/acl.h
index 491b1ba..b13370c 100644
--- a/lib/acl.h
+++ b/lib/acl.h
@@ -1,6 +1,6 @@
 /* acl.c - access control lists
 
-   Copyright (C) 2002, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2008-2017 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
diff --git a/lib/acl_entries.c b/lib/acl_entries.c
index 9fc9cf5..1df6a84 100644
--- a/lib/acl_entries.c
+++ b/lib/acl_entries.c
@@ -1,6 +1,6 @@
 /* Return the number of entries in an ACL.
 
-   Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2017 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
diff --git a/lib/alloca.in.h b/lib/alloca.in.h
index 6a25ecd..c3dc38a 100644
--- a/lib/alloca.in.h
+++ b/lib/alloca.in.h
@@ -1,6 +1,6 @@
 /* Memory allocation on the stack.
 
-   Copyright (C) 1995, 1999, 2001-2004, 2006-2016 Free Software Foundation,
+   Copyright (C) 1995, 1999, 2001-2004, 2006-2017 Free Software Foundation,
    Inc.
 
    This program is free software; you can redistribute it and/or modify it
diff --git a/lib/allocator.h b/lib/allocator.h
index 1f1eab6..650f8e0 100644
--- a/lib/allocator.h
+++ b/lib/allocator.h
@@ -1,6 +1,6 @@
 /* Memory allocators such as malloc+free.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2017 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
diff --git a/lib/at-func.c b/lib/at-func.c
index 5a8894a..9eaa993 100644
--- a/lib/at-func.c
+++ b/lib/at-func.c
@@ -1,5 +1,5 @@
 /* Define at-style functions like fstatat, unlinkat, fchownat, etc.
-   Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2017 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
diff --git a/lib/binary-io.h b/lib/binary-io.h
index 9f17c0d..f766439 100644
--- a/lib/binary-io.h
+++ b/lib/binary-io.h
@@ -1,5 +1,5 @@
 /* Binary mode I/O.
-   Copyright (C) 2001, 2003, 2005, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2005, 2008-2017 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
diff --git a/lib/byteswap.in.h b/lib/byteswap.in.h
index d965962..5fc0663 100644
--- a/lib/byteswap.in.h
+++ b/lib/byteswap.in.h
@@ -1,5 +1,5 @@
 /* byteswap.h - Byte swapping
-   Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2017 Free Software Foundation, Inc.
    Written by Oskar Liljeblad <address@hidden>, 2005.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/lib/c-ctype.h b/lib/c-ctype.h
index 717ae78..faf2158 100644
--- a/lib/c-ctype.h
+++ b/lib/c-ctype.h
@@ -5,7 +5,7 @@
    <ctype.h> functions' behaviour depends on the current locale set via
    setlocale.
 
-   Copyright (C) 2000-2003, 2006, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003, 2006, 2008-2017 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
diff --git a/lib/c-strcase.h b/lib/c-strcase.h
index 7e570f5..c82dab1 100644
--- a/lib/c-strcase.h
+++ b/lib/c-strcase.h
@@ -1,5 +1,5 @@
 /* Case-insensitive string comparison functions in C locale.
-   Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2016 Free Software
+   Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2017 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
diff --git a/lib/c-strcasecmp.c b/lib/c-strcasecmp.c
index bd113b7..5bce873 100644
--- a/lib/c-strcasecmp.c
+++ b/lib/c-strcasecmp.c
@@ -1,5 +1,5 @@
 /* c-strcasecmp.c -- case insensitive string comparator in C locale
-   Copyright (C) 1998-1999, 2005-2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2006, 2009-2017 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
diff --git a/lib/c-strncasecmp.c b/lib/c-strncasecmp.c
index c316929..ada62d7 100644
--- a/lib/c-strncasecmp.c
+++ b/lib/c-strncasecmp.c
@@ -1,5 +1,5 @@
 /* c-strncasecmp.c -- case insensitive string comparator in C locale
-   Copyright (C) 1998-1999, 2005-2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2006, 2009-2017 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
diff --git a/lib/careadlinkat.c b/lib/careadlinkat.c
index 4180de9..455e00e 100644
--- a/lib/careadlinkat.c
+++ b/lib/careadlinkat.c
@@ -1,6 +1,6 @@
 /* Read symbolic links into a buffer without size limitation, relative to fd.
 
-   Copyright (C) 2001, 2003-2004, 2007, 2009-2016 Free Software Foundation,
+   Copyright (C) 2001, 2003-2004, 2007, 2009-2017 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/lib/careadlinkat.h b/lib/careadlinkat.h
index 84ede3e..528a828 100644
--- a/lib/careadlinkat.h
+++ b/lib/careadlinkat.h
@@ -1,6 +1,6 @@
 /* Read symbolic links into a buffer without size limitation, relative to fd.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2017 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
diff --git a/lib/close-stream.c b/lib/close-stream.c
index 0c4beae..96c1265 100644
--- a/lib/close-stream.c
+++ b/lib/close-stream.c
@@ -1,6 +1,6 @@
 /* Close a stream, with nicer error checking than fclose's.
 
-   Copyright (C) 1998-2002, 2004, 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 1998-2002, 2004, 2006-2017 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
diff --git a/lib/count-one-bits.h b/lib/count-one-bits.h
index 09c2dcb..fb5fb92 100644
--- a/lib/count-one-bits.h
+++ b/lib/count-one-bits.h
@@ -1,5 +1,5 @@
 /* count-one-bits.h -- counts the number of 1-bits in a word.
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2017 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
diff --git a/lib/count-trailing-zeros.h b/lib/count-trailing-zeros.h
index 7e09e64..4a0a109 100644
--- a/lib/count-trailing-zeros.h
+++ b/lib/count-trailing-zeros.h
@@ -1,5 +1,5 @@
 /* count-trailing-zeros.h -- counts the number of trailing 0 bits in a word.
-   Copyright 2013-2016 Free Software Foundation, Inc.
+   Copyright 2013-2017 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
diff --git a/lib/dirent.in.h b/lib/dirent.in.h
index 65482d7..f591787 100644
--- a/lib/dirent.in.h
+++ b/lib/dirent.in.h
@@ -1,5 +1,5 @@
 /* A GNU-like <dirent.h>.
-   Copyright (C) 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006-2017 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
diff --git a/lib/dirfd.c b/lib/dirfd.c
index a325848..6b1a7b2 100644
--- a/lib/dirfd.c
+++ b/lib/dirfd.c
@@ -1,6 +1,6 @@
 /* dirfd.c -- return the file descriptor associated with an open DIR*
 
-   Copyright (C) 2001, 2006, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2006, 2008-2017 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
diff --git a/lib/dosname.h b/lib/dosname.h
index 83a953f..dd5c177 100644
--- a/lib/dosname.h
+++ b/lib/dosname.h
@@ -1,6 +1,6 @@
 /* File names on MS-DOS/Windows systems.
 
-   Copyright (C) 2000-2001, 2004-2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2000-2001, 2004-2006, 2009-2017 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
diff --git a/lib/dtotimespec.c b/lib/dtotimespec.c
index 9028044..9d81b68 100644
--- a/lib/dtotimespec.c
+++ b/lib/dtotimespec.c
@@ -1,6 +1,6 @@
 /* Convert double to timespec.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2017 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
diff --git a/lib/dup2.c b/lib/dup2.c
index 5d026f2..c0c7cad 100644
--- a/lib/dup2.c
+++ b/lib/dup2.c
@@ -1,6 +1,6 @@
 /* Duplicate an open file descriptor to a specified file descriptor.
 
-   Copyright (C) 1999, 2004-2007, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2004-2007, 2009-2017 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
diff --git a/lib/errno.in.h b/lib/errno.in.h
index b8397ee..13194f9 100644
--- a/lib/errno.in.h
+++ b/lib/errno.in.h
@@ -1,6 +1,6 @@
 /* A POSIX-like <errno.h>.
 
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 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
diff --git a/lib/euidaccess.c b/lib/euidaccess.c
index e9eb0e9..da2bda9 100644
--- a/lib/euidaccess.c
+++ b/lib/euidaccess.c
@@ -1,6 +1,6 @@
 /* euidaccess -- check if effective user id can access file
 
-   Copyright (C) 1990-1991, 1995, 1998, 2000, 2003-2006, 2008-2016 Free
+   Copyright (C) 1990-1991, 1995, 1998, 2000, 2003-2006, 2008-2017 Free
    Software Foundation, Inc.
 
    This file is part of the GNU C Library.
diff --git a/lib/execinfo.in.h b/lib/execinfo.in.h
index 09f1ddb..065a78d 100644
--- a/lib/execinfo.in.h
+++ b/lib/execinfo.in.h
@@ -1,6 +1,6 @@
 /* Information about executables.
 
-   Copyright (C) 2012-2016 Free Software Foundation, Inc.
+   Copyright (C) 2012-2017 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
diff --git a/lib/faccessat.c b/lib/faccessat.c
index 1743fa3..f9458e8 100644
--- a/lib/faccessat.c
+++ b/lib/faccessat.c
@@ -1,5 +1,5 @@
 /* Check the access rights of a file relative to an open directory.
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2017 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
diff --git a/lib/fcntl.c b/lib/fcntl.c
index fd17e96..afe1546 100644
--- a/lib/fcntl.c
+++ b/lib/fcntl.c
@@ -1,6 +1,6 @@
 /* Provide file descriptor control.
 
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2017 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
diff --git a/lib/fcntl.in.h b/lib/fcntl.in.h
index b943973..4a1d40a 100644
--- a/lib/fcntl.in.h
+++ b/lib/fcntl.in.h
@@ -1,6 +1,6 @@
 /* Like <fcntl.h>, but with non-working flags defined to 0.
 
-   Copyright (C) 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006-2017 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
diff --git a/lib/fdatasync.c b/lib/fdatasync.c
index 3351a0a..6875fa4 100644
--- a/lib/fdatasync.c
+++ b/lib/fdatasync.c
@@ -1,6 +1,6 @@
 /* Emulate fdatasync on platforms that lack it.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public
diff --git a/lib/fdopendir.c b/lib/fdopendir.c
index c1f4dcb..03be92a 100644
--- a/lib/fdopendir.c
+++ b/lib/fdopendir.c
@@ -1,5 +1,5 @@
 /* provide a replacement fdopendir function
-   Copyright (C) 2004-2016 Free Software Foundation, Inc.
+   Copyright (C) 2004-2017 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
diff --git a/lib/filemode.c b/lib/filemode.c
index 2250ee0..d62f70b 100644
--- a/lib/filemode.c
+++ b/lib/filemode.c
@@ -1,6 +1,6 @@
 /* filemode.c -- make a string describing file modes
 
-   Copyright (C) 1985, 1990, 1993, 1998-2000, 2004, 2006, 2009-2016 Free
+   Copyright (C) 1985, 1990, 1993, 1998-2000, 2004, 2006, 2009-2017 Free
    Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/lib/filemode.h b/lib/filemode.h
index 09f345e..5fbb791 100644
--- a/lib/filemode.h
+++ b/lib/filemode.h
@@ -1,6 +1,6 @@
 /* Make a string describing file modes.
 
-   Copyright (C) 1998-1999, 2003, 2006, 2009-2016 Free Software Foundation,
+   Copyright (C) 1998-1999, 2003, 2006, 2009-2017 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/lib/filevercmp.c b/lib/filevercmp.c
index a75c946..0396867 100644
--- a/lib/filevercmp.c
+++ b/lib/filevercmp.c
@@ -1,7 +1,7 @@
 /*
    Copyright (C) 1995 Ian Jackson <address@hidden>
    Copyright (C) 2001 Anthony Towns <address@hidden>
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 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
diff --git a/lib/filevercmp.h b/lib/filevercmp.h
index 220b71b..d698991 100644
--- a/lib/filevercmp.h
+++ b/lib/filevercmp.h
@@ -1,7 +1,7 @@
 /*
    Copyright (C) 1995 Ian Jackson <address@hidden>
    Copyright (C) 2001 Anthony Towns <address@hidden>
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 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
diff --git a/lib/flexmember.h b/lib/flexmember.h
index 62c556b..c71ea65 100644
--- a/lib/flexmember.h
+++ b/lib/flexmember.h
@@ -1,6 +1,6 @@
 /* Sizes of structs with flexible array members.
 
-   Copyright 2016 Free Software Foundation, Inc.
+   Copyright 2016-2017 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
diff --git a/lib/fpending.c b/lib/fpending.c
index ce93604..c9b7786 100644
--- a/lib/fpending.c
+++ b/lib/fpending.c
@@ -1,5 +1,5 @@
 /* fpending.c -- return the number of pending output bytes on a stream
-   Copyright (C) 2000, 2004, 2006-2007, 2009-2016 Free Software Foundation,
+   Copyright (C) 2000, 2004, 2006-2007, 2009-2017 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -35,7 +35,7 @@ __fpending (FILE *fp)
 #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, 
Linux libc5 */
   return fp->_IO_write_ptr - fp->_IO_write_base;
 #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
-  /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+  /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
   return fp->_p - fp->_bf._base;
 #elif defined __EMX__                /* emx+gcc */
   return fp->_ptr - fp->_buffer;
diff --git a/lib/fpending.h b/lib/fpending.h
index 61008aa..a901dee 100644
--- a/lib/fpending.h
+++ b/lib/fpending.h
@@ -1,6 +1,6 @@
 /* Declare __fpending.
 
-   Copyright (C) 2000, 2003, 2005-2006, 2009-2016 Free Software Foundation,
+   Copyright (C) 2000, 2003, 2005-2006, 2009-2017 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/lib/fstatat.c b/lib/fstatat.c
index ebbecfd..70799be 100644
--- a/lib/fstatat.c
+++ b/lib/fstatat.c
@@ -1,6 +1,6 @@
 /* Work around an fstatat bug on Solaris 9.
 
-   Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2017 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
diff --git a/lib/fsync.c b/lib/fsync.c
index 5df79ba..46dd59b 100644
--- a/lib/fsync.c
+++ b/lib/fsync.c
@@ -7,7 +7,7 @@
 
    Written by Richard W.M. Jones <rjones.at.redhat.com>
 
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public
diff --git a/lib/ftoastr.c b/lib/ftoastr.c
index e3a0138..826340c 100644
--- a/lib/ftoastr.c
+++ b/lib/ftoastr.c
@@ -1,6 +1,6 @@
 /* floating point to accurate string
 
-   Copyright (C) 2010-2016 Free Software Foundation, Inc.
+   Copyright (C) 2010-2017 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
diff --git a/lib/ftoastr.h b/lib/ftoastr.h
index 94816d1..74a855a 100644
--- a/lib/ftoastr.h
+++ b/lib/ftoastr.h
@@ -1,6 +1,6 @@
 /* floating point to accurate string
 
-   Copyright (C) 2010-2016 Free Software Foundation, Inc.
+   Copyright (C) 2010-2017 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
diff --git a/lib/get-permissions.c b/lib/get-permissions.c
index bf40dad..dc77748 100644
--- a/lib/get-permissions.c
+++ b/lib/get-permissions.c
@@ -1,6 +1,6 @@
 /* Get permissions of a file.  -*- coding: utf-8 -*-
 
-   Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2017 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
diff --git a/lib/getdtablesize.c b/lib/getdtablesize.c
index d234055..7fabb51 100644
--- a/lib/getdtablesize.c
+++ b/lib/getdtablesize.c
@@ -1,5 +1,5 @@
 /* getdtablesize() function for platforms that don't have it.
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
    Written by Bruno Haible <address@hidden>, 2008.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/lib/getgroups.c b/lib/getgroups.c
index b040505..dce0f2d 100644
--- a/lib/getgroups.c
+++ b/lib/getgroups.c
@@ -1,6 +1,6 @@
 /* provide consistent interface to getgroups for systems that don't allow N==0
 
-   Copyright (C) 1996, 1999, 2003, 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1999, 2003, 2006-2017 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
diff --git a/lib/getloadavg.c b/lib/getloadavg.c
index a7ffd06..0fe23bb 100644
--- a/lib/getloadavg.c
+++ b/lib/getloadavg.c
@@ -1,6 +1,6 @@
 /* Get the system load averages.
 
-   Copyright (C) 1985-1989, 1991-1995, 1997, 1999-2000, 2003-2016 Free Software
+   Copyright (C) 1985-1989, 1991-1995, 1997, 1999-2000, 2003-2017 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with gnulib.
diff --git a/lib/getopt.c b/lib/getopt.c
index 8ccb901..e40ea8d 100644
--- a/lib/getopt.c
+++ b/lib/getopt.c
@@ -2,7 +2,7 @@
    NOTE: getopt is part of the C library, so if you don't know what
    "Keep this file name-space clean" means, talk to address@hidden
    before changing it!
-   Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2016 Free Software
+   Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2017 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
diff --git a/lib/getopt.in.h b/lib/getopt.in.h
index 0f72182..6cbad8e 100644
--- a/lib/getopt.in.h
+++ b/lib/getopt.in.h
@@ -1,5 +1,5 @@
 /* Declarations for getopt.
-   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2016 Free Software
+   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2017 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -47,15 +47,20 @@
    identifiers so that they do not collide with the system functions
    and variables.  Renaming avoids problems with some compilers and
    linkers.  */
-#if defined __GETOPT_PREFIX && !defined __need_getopt
-# if address@hidden@
-#  define __need_system_stdlib_h
-#  include <stdlib.h>
-#  undef __need_system_stdlib_h
-#  include <stdio.h>
-#  include <unistd.h>
+#if defined __GETOPT_PREFIX
+# if !defined __need_getopt
+#  if address@hidden@
+#   define __need_system_stdlib_h
+#   include <stdlib.h>
+#   undef __need_system_stdlib_h
+#   include <stdio.h>
+#   include <unistd.h>
+#  endif
+#  undef __need_getopt
 # endif
-# undef __need_getopt
+# undef __GETOPT_CONCAT
+# undef __GETOPT_XCONCAT
+# undef __GETOPT_ID
 # undef getopt
 # undef getopt_long
 # undef getopt_long_only
@@ -64,6 +69,7 @@
 # undef optind
 # undef optopt
 # undef option
+# undef _getopt_internal
 # define __GETOPT_CONCAT(x, y) x ## y
 # define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)
 # define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
diff --git a/lib/getopt1.c b/lib/getopt1.c
index 63db74f..4d2e8cb 100644
--- a/lib/getopt1.c
+++ b/lib/getopt1.c
@@ -1,5 +1,5 @@
 /* getopt_long and getopt_long_only entry points for GNU getopt.
-   Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2016 Free Software
+   Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2017 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
diff --git a/lib/getopt_.h b/lib/getopt_.h
index cd6ba05..7c77a1c 100644
--- a/lib/getopt_.h
+++ b/lib/getopt_.h
@@ -1,5 +1,5 @@
 /* Declarations for getopt.
-   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2016 Free
+   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2017 Free
    Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -130,7 +130,7 @@
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
 /* A C macro for declaring that specific arguments must not be NULL.
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2017 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
diff --git a/lib/getopt_int.h b/lib/getopt_int.h
index be4c22e..a7ce0e9 100644
--- a/lib/getopt_int.h
+++ b/lib/getopt_int.h
@@ -1,5 +1,5 @@
 /* Internal declarations for getopt.
-   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2016 Free Software
+   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2017 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
diff --git a/lib/gettext.h b/lib/gettext.h
index 9a232cc..0465d7a 100644
--- a/lib/gettext.h
+++ b/lib/gettext.h
@@ -1,5 +1,5 @@
 /* Convenience header for conditional use of GNU <libintl.h>.
-   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2016 Free Software
+   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2017 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
diff --git a/lib/gettime.c b/lib/gettime.c
index ea58eb0..4ae313e 100644
--- a/lib/gettime.c
+++ b/lib/gettime.c
@@ -1,6 +1,6 @@
 /* gettime -- get the system clock
 
-   Copyright (C) 2002, 2004-2007, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004-2007, 2009-2017 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
diff --git a/lib/gettimeofday.c b/lib/gettimeofday.c
index 224ca6a..18dcbda 100644
--- a/lib/gettimeofday.c
+++ b/lib/gettimeofday.c
@@ -1,6 +1,6 @@
 /* Provide gettimeofday for systems that don't have it or for which it's 
broken.
 
-   Copyright (C) 2001-2003, 2005-2007, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2007, 2009-2017 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
diff --git a/lib/gnulib.mk b/lib/gnulib.mk
index 0399abc..4398fe3 100644
--- a/lib/gnulib.mk
+++ b/lib/gnulib.mk
@@ -1,6 +1,6 @@
 ## DO NOT EDIT! GENERATED AUTOMATICALLY!
 ## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -1054,6 +1054,7 @@ stdint.h: stdint.in.h $(top_builddir)/config.status
              -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
              -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
              -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+             -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' 
\
              < $(srcdir)/stdint.in.h; \
        } > address@hidden && \
        mv address@hidden $@
@@ -1815,7 +1816,6 @@ unistd.h: unistd.in.h $(top_builddir)/config.status 
$(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
              -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \
              -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
-             -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \
              -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
              -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \
              -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \
@@ -1837,6 +1837,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status 
$(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \
              -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \
              -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' 
\
+             -e 's|@''HAVE_DECL_GETLOGIN''@|$(HAVE_DECL_GETLOGIN)|g' \
              -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
              -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
              -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
diff --git a/lib/group-member.c b/lib/group-member.c
index 6bbab89..20f8ee8 100644
--- a/lib/group-member.c
+++ b/lib/group-member.c
@@ -1,6 +1,6 @@
 /* group-member.c -- determine whether group id is in calling user's group list
 
-   Copyright (C) 1994, 1997-1998, 2003, 2005-2006, 2009-2016 Free Software
+   Copyright (C) 1994, 1997-1998, 2003, 2005-2006, 2009-2017 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/lib/ignore-value.h b/lib/ignore-value.h
index 6713d96..2439d95 100644
--- a/lib/ignore-value.h
+++ b/lib/ignore-value.h
@@ -1,6 +1,6 @@
 /* ignore a function return without a compiler warning.  -*- coding: utf-8 -*-
 
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 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
diff --git a/lib/intprops.h b/lib/intprops.h
index 8add5de..85ed61f 100644
--- a/lib/intprops.h
+++ b/lib/intprops.h
@@ -1,6 +1,6 @@
 /* intprops.h -- properties of integer types
 
-   Copyright (C) 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2017 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
@@ -23,10 +23,6 @@
 #include <limits.h>
 #include <verify.h>
 
-#ifndef __has_builtin
-# define __has_builtin(x) 0
-#endif
-
 /* Return a value with the common real type of E and V and the value of V.  */
 #define _GL_INT_CONVERT(e, v) (0 * (e) + (v))
 
@@ -241,12 +237,10 @@ verify (TYPE_WIDTH (unsigned int) == UINT_WIDTH);
    : (max) >> (b) < (a))
 
 /* True if __builtin_add_overflow (A, B, P) works when P is non-null.  */
-#define _GL_HAS_BUILTIN_OVERFLOW \
-  (5 <= __GNUC__ || __has_builtin (__builtin_add_overflow))
+#define _GL_HAS_BUILTIN_OVERFLOW (5 <= __GNUC__)
 
 /* True if __builtin_add_overflow_p (A, B, C) works.  */
-#define _GL_HAS_BUILTIN_OVERFLOW_P \
-  (7 <= __GNUC__ || __has_builtin (__builtin_add_overflow_p))
+#define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__)
 
 /* The _GL*_OVERFLOW macros have the same restrictions as the
    *_RANGE_OVERFLOW macros, except that they do not assume that operands
diff --git a/lib/inttypes.in.h b/lib/inttypes.in.h
index ed09db6..69b12a8 100644
--- a/lib/inttypes.in.h
+++ b/lib/inttypes.in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Derek Price.
    This file is part of gnulib.
 
diff --git a/lib/limits.in.h b/lib/limits.in.h
index a1eae02..a7e307f 100644
--- a/lib/limits.in.h
+++ b/lib/limits.in.h
@@ -1,6 +1,6 @@
 /* A GNU-like <limits.h>.
 
-   Copyright 2016 Free Software Foundation, Inc.
+   Copyright 2016-2017 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
diff --git a/lib/lstat.c b/lib/lstat.c
index 03b0634..f4dc43e 100644
--- a/lib/lstat.c
+++ b/lib/lstat.c
@@ -1,6 +1,6 @@
 /* Work around a bug of lstat on some systems
 
-   Copyright (C) 1997-2006, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 1997-2006, 2008-2017 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
diff --git a/lib/md5.c b/lib/md5.c
index cec62339..e82b051 100644
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -1,6 +1,6 @@
 /* Functions to compute MD5 message digest of files or memory blocks.
    according to the definition of MD5 in RFC 1321 from April 1992.
-   Copyright (C) 1995-1997, 1999-2001, 2005-2006, 2008-2016 Free Software
+   Copyright (C) 1995-1997, 1999-2001, 2005-2006, 2008-2017 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
diff --git a/lib/md5.h b/lib/md5.h
index a0a8c5e..fb20b7b 100644
--- a/lib/md5.h
+++ b/lib/md5.h
@@ -1,6 +1,6 @@
 /* Declaration of functions and data types used for MD5 sum computing
    library functions.
-   Copyright (C) 1995-1997, 1999-2001, 2004-2006, 2008-2016 Free Software
+   Copyright (C) 1995-1997, 1999-2001, 2004-2006, 2008-2017 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
diff --git a/lib/memrchr.c b/lib/memrchr.c
index e6212e5..fefe16c 100644
--- a/lib/memrchr.c
+++ b/lib/memrchr.c
@@ -1,6 +1,6 @@
 /* memrchr -- find the last occurrence of a byte in a memory block
 
-   Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2016 Free Software
+   Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2017 Free Software
    Foundation, Inc.
 
    Based on strlen implementation by Torbjorn Granlund (address@hidden),
diff --git a/lib/mkostemp.c b/lib/mkostemp.c
index 31c3e48..56c22a4 100644
--- a/lib/mkostemp.c
+++ b/lib/mkostemp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2016 Free Software
+/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2017 Free Software
    Foundation, Inc.
    This file is derived from the one in the GNU C Library.
 
diff --git a/lib/mktime-internal.h b/lib/mktime-internal.h
index 2f586ae..6c8b2e7 100644
--- a/lib/mktime-internal.h
+++ b/lib/mktime-internal.h
@@ -1,6 +1,6 @@
 /* mktime variant that also uses an offset guess
 
-   Copyright 2016 Free Software Foundation, Inc.
+   Copyright 2016-2017 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
diff --git a/lib/mktime.c b/lib/mktime.c
index 8ee4e5e..998882f 100644
--- a/lib/mktime.c
+++ b/lib/mktime.c
@@ -1,5 +1,5 @@
 /* Convert a 'struct tm' to a time_t value.
-   Copyright (C) 1993-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993-2017 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Eggert <address@hidden>.
 
@@ -153,7 +153,7 @@ isdst_differ (int a, int b)
 
 /* Return an integer value measuring (YEAR1-YDAY1 HOUR1:MIN1:SEC1) -
    (YEAR0-YDAY0 HOUR0:MIN0:SEC0) in seconds, assuming that the clocks
-   were not adjusted between the time stamps.
+   were not adjusted between the timestamps.
 
    The YEAR values uses the same numbering as TP->tm_year.  Values
    need not be in the usual range.  However, YEAR1 must not overflow
diff --git a/lib/openat-priv.h b/lib/openat-priv.h
index ed763db..2598719 100644
--- a/lib/openat-priv.h
+++ b/lib/openat-priv.h
@@ -1,6 +1,6 @@
 /* Internals for openat-like functions.
 
-   Copyright (C) 2005-2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2017 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
diff --git a/lib/openat-proc.c b/lib/openat-proc.c
index 1712340..101449b 100644
--- a/lib/openat-proc.c
+++ b/lib/openat-proc.c
@@ -1,6 +1,6 @@
 /* Create /proc/self/fd-related names for subfiles of open directories.
 
-   Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2017 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
diff --git a/lib/openat.h b/lib/openat.h
index edee6c5..a036081 100644
--- a/lib/openat.h
+++ b/lib/openat.h
@@ -1,5 +1,5 @@
 /* provide a replacement openat function
-   Copyright (C) 2004-2006, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2004-2006, 2008-2017 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
diff --git a/lib/pathmax.h b/lib/pathmax.h
index aee22f8..aa0730e 100644
--- a/lib/pathmax.h
+++ b/lib/pathmax.h
@@ -1,5 +1,5 @@
 /* Define PATH_MAX somehow.  Requires sys/types.h.
-   Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2016 Free Software
+   Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2017 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
diff --git a/lib/pipe2.c b/lib/pipe2.c
index f8912f2..830f006 100644
--- a/lib/pipe2.c
+++ b/lib/pipe2.c
@@ -1,5 +1,5 @@
 /* Create a pipe, with specific opening flags.
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2017 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
diff --git a/lib/pselect.c b/lib/pselect.c
index 56c2eb3..0c44ca9 100644
--- a/lib/pselect.c
+++ b/lib/pselect.c
@@ -1,6 +1,6 @@
 /* pselect - synchronous I/O multiplexing
 
-   Copyright 2011-2016 Free Software Foundation, Inc.
+   Copyright 2011-2017 Free Software Foundation, Inc.
 
    This file is part of gnulib.
 
diff --git a/lib/pthread_sigmask.c b/lib/pthread_sigmask.c
index f67e442..cb21330 100644
--- a/lib/pthread_sigmask.c
+++ b/lib/pthread_sigmask.c
@@ -1,5 +1,5 @@
 /* POSIX compatible signal blocking for threads.
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2017 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
diff --git a/lib/putenv.c b/lib/putenv.c
index e67712d..b55e262 100644
--- a/lib/putenv.c
+++ b/lib/putenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2016 Free Software
+/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2017 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C
diff --git a/lib/qcopy-acl.c b/lib/qcopy-acl.c
index c7bdfbb..fdf0a05 100644
--- a/lib/qcopy-acl.c
+++ b/lib/qcopy-acl.c
@@ -1,6 +1,6 @@
 /* Copy access control list from one file to another.  -*- coding: utf-8 -*-
 
-   Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2017 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
diff --git a/lib/readlink.c b/lib/readlink.c
index e6c3925..bf0cedc 100644
--- a/lib/readlink.c
+++ b/lib/readlink.c
@@ -1,5 +1,5 @@
 /* Stub for readlink().
-   Copyright (C) 2003-2007, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2003-2007, 2009-2017 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
diff --git a/lib/readlinkat.c b/lib/readlinkat.c
index 7006db8..29a71dd 100644
--- a/lib/readlinkat.c
+++ b/lib/readlinkat.c
@@ -1,5 +1,5 @@
 /* Read a symlink relative to an open directory.
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2017 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
diff --git a/lib/root-uid.h b/lib/root-uid.h
index 23c630b..3a0037a 100644
--- a/lib/root-uid.h
+++ b/lib/root-uid.h
@@ -1,6 +1,6 @@
 /* The user ID that always has appropriate privileges in the POSIX sense.
 
-   Copyright 2012-2016 Free Software Foundation, Inc.
+   Copyright 2012-2017 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
diff --git a/lib/save-cwd.c b/lib/save-cwd.c
index 1fa5d69..c1de48e 100644
--- a/lib/save-cwd.c
+++ b/lib/save-cwd.c
@@ -1,6 +1,6 @@
 /* save-cwd.c -- Save and restore current working directory.
 
-   Copyright (C) 1995, 1997-1998, 2003-2006, 2009-2016 Free Software
+   Copyright (C) 1995, 1997-1998, 2003-2006, 2009-2017 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/lib/save-cwd.h b/lib/save-cwd.h
index 9b296cd..d066a0e 100644
--- a/lib/save-cwd.h
+++ b/lib/save-cwd.h
@@ -1,6 +1,6 @@
 /* Save and restore current working directory.
 
-   Copyright (C) 1995, 1997-1998, 2003, 2009-2016 Free Software
+   Copyright (C) 1995, 1997-1998, 2003, 2009-2017 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/lib/secure_getenv.c b/lib/secure_getenv.c
index 88a60dc..df53dea 100644
--- a/lib/secure_getenv.c
+++ b/lib/secure_getenv.c
@@ -1,6 +1,6 @@
 /* Look up an environment variable, returning NULL in insecure situations.
 
-   Copyright 2013-2016 Free Software Foundation, Inc.
+   Copyright 2013-2017 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
diff --git a/lib/set-permissions.c b/lib/set-permissions.c
index 2c77356..75bb2dc 100644
--- a/lib/set-permissions.c
+++ b/lib/set-permissions.c
@@ -1,6 +1,6 @@
 /* Set permissions of a file.  -*- coding: utf-8 -*-
 
-   Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2017 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
diff --git a/lib/sha1.c b/lib/sha1.c
index 753c088..ea0474f 100644
--- a/lib/sha1.c
+++ b/lib/sha1.c
@@ -1,7 +1,7 @@
 /* sha1.c - Functions to compute SHA1 message digest of files or
    memory blocks according to the NIST specification FIPS-180-1.
 
-   Copyright (C) 2000-2001, 2003-2006, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2000-2001, 2003-2006, 2008-2017 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
diff --git a/lib/sha1.h b/lib/sha1.h
index 2f2f230..7d7e19a 100644
--- a/lib/sha1.h
+++ b/lib/sha1.h
@@ -1,6 +1,6 @@
 /* Declarations of functions and data types used for SHA1 sum
    library functions.
-   Copyright (C) 2000-2001, 2003, 2005-2006, 2008-2016 Free Software
+   Copyright (C) 2000-2001, 2003, 2005-2006, 2008-2017 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
diff --git a/lib/sha256.c b/lib/sha256.c
index 5251e8d..03d3899 100644
--- a/lib/sha256.c
+++ b/lib/sha256.c
@@ -1,7 +1,7 @@
 /* sha256.c - Functions to compute SHA256 and SHA224 message digest of files or
    memory blocks according to the NIST specification FIPS-180-2.
 
-   Copyright (C) 2005-2006, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2008-2017 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
diff --git a/lib/sha256.h b/lib/sha256.h
index fc6d67f..ffb91fa 100644
--- a/lib/sha256.h
+++ b/lib/sha256.h
@@ -1,6 +1,6 @@
 /* Declarations of functions and data types used for SHA256 and SHA224 sum
    library functions.
-   Copyright (C) 2005-2006, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2008-2017 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
diff --git a/lib/sha512.c b/lib/sha512.c
index 71a7eca..6876bfd 100644
--- a/lib/sha512.c
+++ b/lib/sha512.c
@@ -1,7 +1,7 @@
 /* sha512.c - Functions to compute SHA512 and SHA384 message digest of files or
    memory blocks according to the NIST specification FIPS-180-2.
 
-   Copyright (C) 2005-2006, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2008-2017 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
diff --git a/lib/sha512.h b/lib/sha512.h
index b8a8251..121e6c3 100644
--- a/lib/sha512.h
+++ b/lib/sha512.h
@@ -1,6 +1,6 @@
 /* Declarations of functions and data types used for SHA512 and SHA384 sum
    library functions.
-   Copyright (C) 2005-2006, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2008-2017 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
diff --git a/lib/sig2str.c b/lib/sig2str.c
index ca8ac78..c50c612 100644
--- a/lib/sig2str.c
+++ b/lib/sig2str.c
@@ -1,6 +1,6 @@
 /* sig2str.c -- convert between signal names and numbers
 
-   Copyright (C) 2002, 2004, 2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2006, 2009-2017 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
diff --git a/lib/sig2str.h b/lib/sig2str.h
index 2730774..9bec78e 100644
--- a/lib/sig2str.h
+++ b/lib/sig2str.h
@@ -1,6 +1,6 @@
 /* sig2str.h -- convert between signal names and numbers
 
-   Copyright (C) 2002, 2005, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005, 2009-2017 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
diff --git a/lib/signal.in.h b/lib/signal.in.h
index ab0a049..1ffba37 100644
--- a/lib/signal.in.h
+++ b/lib/signal.in.h
@@ -1,6 +1,6 @@
 /* A GNU-like <signal.h>.
 
-   Copyright (C) 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006-2017 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
diff --git a/lib/stat-time.h b/lib/stat-time.h
index f5c4cd2..9402b3f 100644
--- a/lib/stat-time.h
+++ b/lib/stat-time.h
@@ -1,6 +1,6 @@
 /* stat-related time functions.
 
-   Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2017 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
@@ -181,7 +181,7 @@ get_stat_birthtime (struct stat const *st)
      || defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC)
   /* FreeBSD and NetBSD sometimes signal the absence of knowledge by
      using zero.  Attempt to work around this problem.  Alas, this can
-     report failure even for valid time stamps.  Also, NetBSD
+     report failure even for valid timestamps.  Also, NetBSD
      sometimes returns junk in the birth time fields; work around this
      bug if it is detected.  */
   if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000))
diff --git a/lib/stat.c b/lib/stat.c
index 62e9e0b..7e7c2f6 100644
--- a/lib/stat.c
+++ b/lib/stat.c
@@ -1,5 +1,5 @@
 /* Work around platform bugs in stat.
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2017 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
diff --git a/lib/stdalign.in.h b/lib/stdalign.in.h
index 12f8a15..5f56eee 100644
--- a/lib/stdalign.in.h
+++ b/lib/stdalign.in.h
@@ -1,6 +1,6 @@
 /* A substitute for ISO C11 <stdalign.h>.
 
-   Copyright 2011-2016 Free Software Foundation, Inc.
+   Copyright 2011-2017 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
diff --git a/lib/stddef.in.h b/lib/stddef.in.h
index f4c4a10..5b496a6 100644
--- a/lib/stddef.in.h
+++ b/lib/stddef.in.h
@@ -1,6 +1,6 @@
 /* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
 
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2017 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
diff --git a/lib/stdint.in.h b/lib/stdint.in.h
index c86ab09..d899c1e 100644
--- a/lib/stdint.in.h
+++ b/lib/stdint.in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2002, 2004-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2002, 2004-2017 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
    This file is part of gnulib.
 
@@ -83,6 +83,15 @@
    LONG_MIN, LONG_MAX, ULONG_MAX, _GL_INTEGER_WIDTH.  */
 #include <limits.h>
 
+/* Override WINT_MIN and WINT_MAX if gnulib's <wchar.h> or <wctype.h> overrides
+   wint_t.  */
+#if @GNULIB_OVERRIDES_WINT_T@
+# undef WINT_MIN
+# undef WINT_MAX
+# define WINT_MIN 0x0U
+# define WINT_MAX 0xffffffffU
+#endif
+
 #if ! @HAVE_C99_STDINT_H@
 
 /* <sys/types.h> defines some of the stdint.h types as well, on glibc,
diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h
index 766d693..75a945e 100644
--- a/lib/stdio-impl.h
+++ b/lib/stdio-impl.h
@@ -1,5 +1,5 @@
 /* Implementation details of FILE streams.
-   Copyright (C) 2007-2008, 2010-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2008, 2010-2017 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
@@ -29,7 +29,7 @@
 #include <errno.h>                             /* For detecting Plan9.  */
 
 #if defined __sferror || defined __DragonFly__ || defined __ANDROID__
-  /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+  /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
 
 # if defined __DragonFly__          /* DragonFly */
   /* See 
<http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/priv_stdio.h?rev=HEAD&content-type=text/x-cvsweb-markup>.
  */
@@ -58,7 +58,7 @@
 #  define fp_ fp
 # endif
 
-# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined 
__OpenBSD__ || defined __ANDROID__ /* NetBSD >= 1.5ZA, OpenBSD, Android */
+# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined 
__OpenBSD__ || defined __minix || defined __ANDROID__ /* NetBSD >= 1.5ZA, 
OpenBSD, Minix 3, Android */
   /* See 
<http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup>
      and 
<http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup>
 */
   struct __sfileext
diff --git a/lib/stdio.in.h b/lib/stdio.in.h
index 9b31365..d706377 100644
--- a/lib/stdio.in.h
+++ b/lib/stdio.in.h
@@ -1,6 +1,6 @@
 /* A GNU-like <stdio.h>.
 
-   Copyright (C) 2004, 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2007-2017 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
@@ -118,6 +118,26 @@
 # include <unistd.h>
 #endif
 
+/* MSVC declares 'perror' in <stdlib.h>, not in <stdio.h>.  We must include
+   it before we  #define perror rpl_perror.  */
+/* But in any case avoid namespace pollution on glibc systems.  */
+#if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \
+    && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \
+    && ! defined __GLIBC__
+# include <stdlib.h>
+#endif
+
+/* MSVC declares 'remove' in <io.h>, not in <stdio.h>.  We must include
+   it before we  #define remove rpl_remove.  */
+/* MSVC declares 'rename' in <io.h>, not in <stdio.h>.  We must include
+   it before we  #define rename rpl_rename.  */
+/* But in any case avoid namespace pollution on glibc systems.  */
+#if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \
+    && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \
+    && ! defined __GLIBC__
+# include <io.h>
+#endif
+
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h
index db3253b..b5cf9d3 100644
--- a/lib/stdlib.in.h
+++ b/lib/stdlib.in.h
@@ -1,6 +1,6 @@
 /* A GNU-like <stdlib.h>.
 
-   Copyright (C) 1995, 2001-2004, 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001-2004, 2006-2017 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
diff --git a/lib/stpcpy.c b/lib/stpcpy.c
index ec3996e..154d95f 100644
--- a/lib/stpcpy.c
+++ b/lib/stpcpy.c
@@ -1,5 +1,5 @@
 /* stpcpy.c -- copy a string and return pointer to end of new string
-   Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2016 Free Software
+   Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2017 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C 
Library.
diff --git a/lib/strftime.c b/lib/strftime.c
index 2e01083..9aabcc6 100644
--- a/lib/strftime.c
+++ b/lib/strftime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff --git a/lib/strftime.h b/lib/strftime.h
index 17445e1..27a8d62 100644
--- a/lib/strftime.h
+++ b/lib/strftime.h
@@ -1,6 +1,6 @@
 /* declarations for strftime.c
 
-   Copyright (C) 2002, 2004, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2008-2017 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
diff --git a/lib/string.in.h b/lib/string.in.h
index b3213c4..9a6b311 100644
--- a/lib/string.in.h
+++ b/lib/string.in.h
@@ -1,6 +1,6 @@
 /* A GNU-like <string.h>.
 
-   Copyright (C) 1995-1996, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1995-1996, 2001-2017 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
diff --git a/lib/strtoimax.c b/lib/strtoimax.c
index 223412b..3f31fe9 100644
--- a/lib/strtoimax.c
+++ b/lib/strtoimax.c
@@ -1,6 +1,6 @@
 /* Convert string representation of a number into an intmax_t value.
 
-   Copyright (C) 1999, 2001-2004, 2006, 2009-2016 Free Software Foundation,
+   Copyright (C) 1999, 2001-2004, 2006, 2009-2017 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/lib/strtol.c b/lib/strtol.c
index 6ef8a96..751d1e0 100644
--- a/lib/strtol.c
+++ b/lib/strtol.c
@@ -1,6 +1,6 @@
 /* Convert string representation of a number into an integer value.
 
-   Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2016 Free Software
+   Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2017 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C
diff --git a/lib/strtoll.c b/lib/strtoll.c
index d0f7b62..d770e81 100644
--- a/lib/strtoll.c
+++ b/lib/strtoll.c
@@ -1,5 +1,5 @@
 /* Function to parse a 'long long int' from text.
-   Copyright (C) 1995-1997, 1999, 2001, 2009-2016 Free Software Foundation,
+   Copyright (C) 1995-1997, 1999, 2001, 2009-2017 Free Software Foundation,
    Inc.
    This file is part of the GNU C Library.
 
diff --git a/lib/strtoul.c b/lib/strtoul.c
index 6a5d4dd..c4974e0 100644
--- a/lib/strtoul.c
+++ b/lib/strtoul.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1997, 2009-2016 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1997, 2009-2017 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/lib/strtoull.c b/lib/strtoull.c
index 16da823..51ae3ac 100644
--- a/lib/strtoull.c
+++ b/lib/strtoull.c
@@ -1,5 +1,5 @@
 /* Function to parse an 'unsigned long long int' from text.
-   Copyright (C) 1995-1997, 1999, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 1995-1997, 1999, 2009-2017 Free Software Foundation, Inc.
    NOTE: The canonical source of this file is maintained with the GNU C
    Library.  Bugs can be reported to address@hidden
 
diff --git a/lib/symlink.c b/lib/symlink.c
index d8684b6..60d4c14 100644
--- a/lib/symlink.c
+++ b/lib/symlink.c
@@ -1,5 +1,5 @@
 /* Stub for symlink().
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2017 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
diff --git a/lib/sys_select.in.h b/lib/sys_select.in.h
index 9a2622f..616e77d 100644
--- a/lib/sys_select.in.h
+++ b/lib/sys_select.in.h
@@ -1,5 +1,5 @@
 /* Substitute for <sys/select.h>.
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2017 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
diff --git a/lib/sys_stat.in.h b/lib/sys_stat.in.h
index 72d9537..d5ca343 100644
--- a/lib/sys_stat.in.h
+++ b/lib/sys_stat.in.h
@@ -1,5 +1,5 @@
 /* Provide a more complete sys/stat header file.
-   Copyright (C) 2005-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005-2017 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
diff --git a/lib/sys_time.in.h b/lib/sys_time.in.h
index d535a6a..57739bc 100644
--- a/lib/sys_time.in.h
+++ b/lib/sys_time.in.h
@@ -1,6 +1,6 @@
 /* Provide a more complete sys/time.h.
 
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2017 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
diff --git a/lib/sys_types.in.h b/lib/sys_types.in.h
index 8ab0545..30ebfbd 100644
--- a/lib/sys_types.in.h
+++ b/lib/sys_types.in.h
@@ -1,6 +1,6 @@
 /* Provide a more complete sys/types.h.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2017 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
diff --git a/lib/tempname.c b/lib/tempname.c
index b1e9880..2cd9032 100644
--- a/lib/tempname.c
+++ b/lib/tempname.c
@@ -1,6 +1,6 @@
 /* tempname.c - generate the name of a temporary file.
 
-   Copyright (C) 1991-2003, 2005-2007, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 1991-2003, 2005-2007, 2009-2017 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
diff --git a/lib/tempname.h b/lib/tempname.h
index be01c51..1ca9748 100644
--- a/lib/tempname.h
+++ b/lib/tempname.h
@@ -1,6 +1,6 @@
 /* Create a temporary file or directory.
 
-   Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2017 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
diff --git a/lib/time-internal.h b/lib/time-internal.h
index 0635f28..79cb562 100644
--- a/lib/time-internal.h
+++ b/lib/time-internal.h
@@ -1,6 +1,6 @@
 /* Time internal interface
 
-   Copyright 2015-2016 Free Software Foundation, Inc.
+   Copyright 2015-2017 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
diff --git a/lib/time.in.h b/lib/time.in.h
index 865c114..fef8980 100644
--- a/lib/time.in.h
+++ b/lib/time.in.h
@@ -1,6 +1,6 @@
 /* A more-standard <time.h>.
 
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2017 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
@@ -217,7 +217,7 @@ _GL_CXXALIAS_SYS (gmtime, struct tm *, (time_t const 
*__timer));
 _GL_CXXALIASWARN (gmtime);
 # endif
 
-/* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store
+/* Parse BUF as a timestamp, assuming FORMAT specifies its layout, and store
    the resulting broken-down time into TM.  See
    <http://www.opengroup.org/susv3xsh/strptime.html>.  */
 # if @GNULIB_STRPTIME@
diff --git a/lib/time_r.c b/lib/time_r.c
index dc1e161..708a98b 100644
--- a/lib/time_r.c
+++ b/lib/time_r.c
@@ -1,6 +1,6 @@
 /* Reentrant time functions like localtime_r.
 
-   Copyright (C) 2003, 2006-2007, 2010-2016 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 2010-2017 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
diff --git a/lib/time_rz.c b/lib/time_rz.c
index 38afb5f..adb9c1c 100644
--- a/lib/time_rz.c
+++ b/lib/time_rz.c
@@ -1,6 +1,6 @@
 /* Time zone functions such as tzalloc and localtime_rz
 
-   Copyright 2015-2016 Free Software Foundation, Inc.
+   Copyright 2015-2017 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
diff --git a/lib/timegm.c b/lib/timegm.c
index bf61244..957a3b8 100644
--- a/lib/timegm.c
+++ b/lib/timegm.c
@@ -1,6 +1,6 @@
 /* Convert UTC calendar time to simple time.  Like mktime but assumes UTC.
 
-   Copyright (C) 1994, 1997, 2003-2004, 2006-2007, 2009-2016 Free Software
+   Copyright (C) 1994, 1997, 2003-2004, 2006-2007, 2009-2017 Free Software
    Foundation, Inc.  This file is part of the GNU C Library.
 
    This program is free software; you can redistribute it and/or modify
diff --git a/lib/timespec-add.c b/lib/timespec-add.c
index b093946..e6c87c6 100644
--- a/lib/timespec-add.c
+++ b/lib/timespec-add.c
@@ -1,6 +1,6 @@
 /* Add two struct timespec values.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2017 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
diff --git a/lib/timespec-sub.c b/lib/timespec-sub.c
index 63cc142..5d9276d 100644
--- a/lib/timespec-sub.c
+++ b/lib/timespec-sub.c
@@ -1,6 +1,6 @@
 /* Subtract two struct timespec values.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2017 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
diff --git a/lib/timespec.h b/lib/timespec.h
index 601394b..a5eca79 100644
--- a/lib/timespec.h
+++ b/lib/timespec.h
@@ -1,6 +1,6 @@
 /* timespec -- System time interface
 
-   Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2016 Free Software
+   Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2017 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -29,7 +29,7 @@ _GL_INLINE_HEADER_BEGIN
 # define _GL_TIMESPEC_INLINE _GL_INLINE
 #endif
 
-/* Resolution of timespec time stamps (in units per second), and log
+/* Resolution of timespec timestamps (in units per second), and log
    base 10 of the resolution.  */
 
 enum { TIMESPEC_RESOLUTION = 1000000000 };
@@ -48,7 +48,7 @@ make_timespec (time_t s, long int ns)
 
 /* Return negative, zero, positive if A < B, A == B, A > B, respectively.
 
-   For each time stamp T, this code assumes that either:
+   For each timestamp T, this code assumes that either:
 
      * T.tv_nsec is in the range 0..999999999; or
      * T.tv_sec corresponds to a valid leap second on a host that supports
@@ -56,7 +56,7 @@ make_timespec (time_t s, long int ns)
      * T.tv_sec is the minimum time_t value and T.tv_nsec is -1; or
        T.tv_sec is the maximum time_t value and T.tv_nsec is 2000000000.
        This allows for special struct timespec values that are less or
-       greater than all possible valid time stamps.
+       greater than all possible valid timestamps.
 
    In all these cases, it is safe to subtract two tv_nsec values and
    convert the result to integer without worrying about overflow on
diff --git a/lib/u64.h b/lib/u64.h
index 1ece978..a860193 100644
--- a/lib/u64.h
+++ b/lib/u64.h
@@ -1,6 +1,6 @@
 /* uint64_t-like operations that work even on hosts lacking uint64_t
 
-   Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2017 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
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
index c3af07a..d5fa34d 100644
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <unistd.h>.
-   Copyright (C) 2003-2016 Free Software Foundation, Inc.
+   Copyright (C) 2003-2017 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
@@ -55,9 +55,13 @@
 #include <stddef.h>
 
 /* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>.  */
+/* MSVC declares 'unlink' in <stdio.h>, not in <unistd.h>.  We must include
+   it before we  #define unlink rpl_unlink.  */
 /* Cygwin 1.7.1 declares symlinkat in <stdio.h>, not in <unistd.h>.  */
 /* But avoid namespace pollution on glibc systems.  */
 #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \
+     || ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \
+         && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) \
      || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \
          && defined __CYGWIN__)) \
     && ! defined __GLIBC__
@@ -776,7 +780,7 @@ _GL_WARN_ON_USE (gethostname, "gethostname is unportable - "
      ${LOGNAME-$USER}        on Unix platforms,
      $USERNAME               on native Windows platforms.
  */
-# if address@hidden@
+# if address@hidden@
 _GL_FUNCDECL_SYS (getlogin, char *, (void));
 # endif
 _GL_CXXALIAS_SYS (getlogin, char *, (void));
diff --git a/lib/unsetenv.c b/lib/unsetenv.c
index 7f1e65a..6d742c1 100644
--- a/lib/unsetenv.c
+++ b/lib/unsetenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2002, 2005-2016 Free Software Foundation,
+/* Copyright (C) 1992, 1995-2002, 2005-2017 Free Software Foundation,
    Inc.
    This file is part of the GNU C Library.
 
diff --git a/lib/utimens.c b/lib/utimens.c
index ece9b07..3643668 100644
--- a/lib/utimens.c
+++ b/lib/utimens.c
@@ -1,6 +1,6 @@
 /* Set file access and modification times.
 
-   Copyright (C) 2003-2016 Free Software Foundation, Inc.
+   Copyright (C) 2003-2017 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
@@ -154,14 +154,14 @@ update_timespec (struct stat const *statbuf, struct 
timespec *ts[2])
   return false;
 }
 
-/* Set the access and modification time stamps of FD (a.k.a. FILE) to be
+/* Set the access and modification timestamps of FD (a.k.a. FILE) to be
    TIMESPEC[0] and TIMESPEC[1], 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, which means
    use just futimes (or equivalent) instead of utimes (or equivalent),
    and fail if on an old system without futimes (or equivalent).
-   If TIMESPEC is null, set the time stamps to the current time.
+   If TIMESPEC is null, set the timestamps to the current time.
    Return 0 on success, -1 (setting errno) on failure.  */
 
 int
@@ -190,7 +190,7 @@ fdutimens (int fd, char const *file, struct timespec const 
timespec[2])
       return -1;
     }
 
-  /* Some Linux-based NFS clients are buggy, and mishandle time stamps
+  /* Some Linux-based NFS clients are buggy, and mishandle timestamps
      of files in NFS file systems in some cases.  We have no
      configure-time test for this, but please see
      <http://bugs.gentoo.org/show_bug.cgi?id=132673> for references to
@@ -411,7 +411,7 @@ fdutimens (int fd, char const *file, struct timespec const 
timespec[2])
   }
 }
 
-/* Set the access and modification time stamps of FILE to be
+/* Set the access and modification timestamps of FILE to be
    TIMESPEC[0] and TIMESPEC[1], respectively.  */
 int
 utimens (char const *file, struct timespec const timespec[2])
@@ -419,7 +419,7 @@ utimens (char const *file, struct timespec const 
timespec[2])
   return fdutimens (-1, file, timespec);
 }
 
-/* Set the access and modification time stamps of FILE to be
+/* Set the access and modification timestamps of FILE to be
    TIMESPEC[0] and TIMESPEC[1], respectively, without dereferencing
    symlinks.  Fail with ENOSYS if the platform does not support
    changing symlink timestamps, but FILE was a symlink.  */
diff --git a/lib/utimens.h b/lib/utimens.h
index a92cad4..4d9c18e 100644
--- a/lib/utimens.h
+++ b/lib/utimens.h
@@ -1,6 +1,6 @@
 /* Set file access and modification times.
 
-   Copyright 2012-2016 Free Software Foundation, Inc.
+   Copyright 2012-2017 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
diff --git a/lib/verify.h b/lib/verify.h
index 5c8381d..dcaf7ca 100644
--- a/lib/verify.h
+++ b/lib/verify.h
@@ -1,6 +1,6 @@
 /* Compile-time assert-like macros.
 
-   Copyright (C) 2005-2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2017 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
diff --git a/lib/vla.h b/lib/vla.h
index 381de9e..5bbf56b 100644
--- a/lib/vla.h
+++ b/lib/vla.h
@@ -1,6 +1,6 @@
 /* vla.h - variable length arrays
 
-   Copyright 2014-2016 Free Software Foundation, Inc.
+   Copyright 2014-2017 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
diff --git a/lib/xalloc-oversized.h b/lib/xalloc-oversized.h
index 503bb37..ff0efc6 100644
--- a/lib/xalloc-oversized.h
+++ b/lib/xalloc-oversized.h
@@ -1,6 +1,6 @@
 /* xalloc-oversized.h -- memory allocation size checking
 
-   Copyright (C) 1990-2000, 2003-2004, 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 1990-2000, 2003-2004, 2006-2017 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
@@ -21,11 +21,6 @@
 #include <stddef.h>
 #include <stdint.h>
 
-/* Default for (non-Clang) compilers that lack __has_builtin.  */
-#ifndef __has_builtin
-# define __has_builtin(x) 0
-#endif
-
 /* True if N * S would overflow in a size_t calculation,
    or would generate a value larger than PTRDIFF_MAX.
    This expands to a constant expression if N and S are both constants.
@@ -46,13 +41,10 @@ typedef size_t __xalloc_count_type;
    positive and N must be nonnegative.  This is a macro, not a
    function, so that it works correctly even when SIZE_MAX < N.  */
 
-#if 7 <= __GNUC__ || __has_builtin (__builtin_add_overflow_p)
+#if 7 <= __GNUC__
 # define xalloc_oversized(n, s) \
    __builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1)
-#elif ((5 <= __GNUC__ \
-        || (__has_builtin (__builtin_mul_overflow) \
-            && __has_builtin (__builtin_constant_p))) \
-       && !__STRICT_ANSI__)
+#elif 5 <= __GNUC__ && !__STRICT_ANSI__
 # define xalloc_oversized(n, s) \
    (__builtin_constant_p (n) && __builtin_constant_p (s) \
     ? __xalloc_oversized (n, s) \
diff --git a/lisp/ChangeLog.1 b/lisp/ChangeLog.1
index ddfeb08..65997e1 100644
--- a/lisp/ChangeLog.1
+++ b/lisp/ChangeLog.1
@@ -3244,7 +3244,7 @@
                Set current buffer variables from defaults
                in case user's init file has changed them.
 
-  Copyright (C) 1985-1986, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1985-1986, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.10 b/lisp/ChangeLog.10
index 8a93856..918825e 100644
--- a/lisp/ChangeLog.10
+++ b/lisp/ChangeLog.10
@@ -23541,7 +23541,7 @@ See ChangeLog.9 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-    Copyright (C) 2001-2016 Free Software Foundation, Inc.
+    Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.11 b/lisp/ChangeLog.11
index 91cd013..f3d9840 100644
--- a/lisp/ChangeLog.11
+++ b/lisp/ChangeLog.11
@@ -14321,7 +14321,7 @@ See ChangeLog.10 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2003-2011, 2013-2016 Free Software Foundation, Inc.
+  Copyright (C) 2003-2011, 2013-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.12 b/lisp/ChangeLog.12
index 8ca2ff9..9b16255 100644
--- a/lisp/ChangeLog.12
+++ b/lisp/ChangeLog.12
@@ -33334,7 +33334,7 @@ See ChangeLog.11 for earlier changes.
 ;; add-log-time-zone-rule: t
 ;; End:
 
-    Copyright (C) 2005-2016 Free Software Foundation, Inc.
+    Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.13 b/lisp/ChangeLog.13
index d792889..f28c452 100644
--- a/lisp/ChangeLog.13
+++ b/lisp/ChangeLog.13
@@ -16697,7 +16697,7 @@ See ChangeLog.12 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2007-2016 Free Software Foundation, Inc.
+  Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.14 b/lisp/ChangeLog.14
index a6f2824..597b1a1 100644
--- a/lisp/ChangeLog.14
+++ b/lisp/ChangeLog.14
@@ -20547,7 +20547,7 @@ See ChangeLog.13 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-    Copyright (C) 2008-2016 Free Software Foundation, Inc.
+    Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.15 b/lisp/ChangeLog.15
index 46fa01a..118c159 100644
--- a/lisp/ChangeLog.15
+++ b/lisp/ChangeLog.15
@@ -22802,7 +22802,7 @@ See ChangeLog.14 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2009-2016 Free Software Foundation, Inc.
+  Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.16 b/lisp/ChangeLog.16
index 7fdcbd5..00e86ae 100644
--- a/lisp/ChangeLog.16
+++ b/lisp/ChangeLog.16
@@ -25223,7 +25223,7 @@ See ChangeLog.15 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2011-2016 Free Software Foundation, Inc.
+  Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.17 b/lisp/ChangeLog.17
index 1361e7a..a3b081a 100644
--- a/lisp/ChangeLog.17
+++ b/lisp/ChangeLog.17
@@ -26294,7 +26294,7 @@ See ChangeLog.16 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2011-2016 Free Software Foundation, Inc.
+  Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.2 b/lisp/ChangeLog.2
index 3d8bd7a..7a48453 100644
--- a/lisp/ChangeLog.2
+++ b/lisp/ChangeLog.2
@@ -3992,7 +3992,7 @@
 
 See ChangeLog.1 for earlier changes.
 
-    Copyright (C) 1986-1988, 2001-2016 Free Software Foundation, Inc.
+    Copyright (C) 1986-1988, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.3 b/lisp/ChangeLog.3
index d87a6f0..3bac72a 100644
--- a/lisp/ChangeLog.3
+++ b/lisp/ChangeLog.3
@@ -12433,7 +12433,7 @@ See ChangeLog.2 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-    Copyright (C) 1989, 1993, 2001-2016 Free Software Foundation, Inc.
+    Copyright (C) 1989, 1993, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.4 b/lisp/ChangeLog.4
index fa0c281..00ce74e 100644
--- a/lisp/ChangeLog.4
+++ b/lisp/ChangeLog.4
@@ -8934,7 +8934,7 @@ See ChangeLog.3 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-    Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+    Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.5 b/lisp/ChangeLog.5
index 5dbdc95..800277b 100644
--- a/lisp/ChangeLog.5
+++ b/lisp/ChangeLog.5
@@ -9268,7 +9268,7 @@ See ChangeLog.4 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-    Copyright (C) 1994-1995, 2001-2016 Free Software Foundation, Inc.
+    Copyright (C) 1994-1995, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.6 b/lisp/ChangeLog.6
index 147ded7..8482637 100644
--- a/lisp/ChangeLog.6
+++ b/lisp/ChangeLog.6
@@ -8021,7 +8021,7 @@ See ChangeLog.5 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-    Copyright (C) 1995-1996, 2001-2016 Free Software Foundation, Inc.
+    Copyright (C) 1995-1996, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.7 b/lisp/ChangeLog.7
index c072ce4..52a0180 100644
--- a/lisp/ChangeLog.7
+++ b/lisp/ChangeLog.7
@@ -23110,7 +23110,7 @@ See ChangeLog.6 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-       Copyright (C) 1997-1998, 2001-2016 Free Software Foundation,
+       Copyright (C) 1997-1998, 2001-2017 Free Software Foundation,
        Inc.
 
   This file is part of GNU Emacs.
diff --git a/lisp/ChangeLog.8 b/lisp/ChangeLog.8
index eb0cd62..7e4522f 100644
--- a/lisp/ChangeLog.8
+++ b/lisp/ChangeLog.8
@@ -9992,7 +9992,7 @@ See ChangeLog.7 for earlier changes.
 ;; add-log-time-zone-rule: t
 ;; End:
 
-    Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
+    Copyright (C) 1999, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/ChangeLog.9 b/lisp/ChangeLog.9
index b2c3623..e51c0c5 100644
--- a/lisp/ChangeLog.9
+++ b/lisp/ChangeLog.9
@@ -20685,7 +20685,7 @@ See ChangeLog.8 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-    Copyright (C) 2000-2011, 2013-2016 Free Software Foundation, Inc.
+    Copyright (C) 2000-2011, 2013-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 34f2b2c..91b0354 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 2000-2016 Free Software Foundation, Inc.
+# Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/lisp/abbrev.el b/lisp/abbrev.el
index b6d202c..cbc604c 100644
--- a/lisp/abbrev.el
+++ b/lisp/abbrev.el
@@ -1,6 +1,6 @@
 ;;; abbrev.el --- abbrev mode commands for Emacs -*- lexical-binding: t -*-
 
-;; Copyright (C) 1985-1987, 1992, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1985-1987, 1992, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Maintainer: address@hidden
@@ -979,10 +979,10 @@ Properties with special meaning:
   ;; We used to manually add the docstring, but we also want to record this
   ;; location as the definition of the variable (in load-history), so we may
   ;; as well just use `defvar'.
-  (if (and docstring props (symbolp docstring))
-      ;; There is really no docstring, instead the docstring arg
-      ;; is a property name.
-      (push docstring props) (setq docstring nil))
+  (when (and docstring props (symbolp docstring))
+    ;; There is really no docstring, instead the docstring arg
+    ;; is a property name.
+    (push docstring props) (setq docstring nil))
   (eval `(defvar ,tablename nil ,@(if docstring (list docstring))))
   (let ((table (if (boundp tablename) (symbol-value tablename))))
     (unless table
diff --git a/lisp/align.el b/lisp/align.el
index 866aaad..b6a855b 100644
--- a/lisp/align.el
+++ b/lisp/align.el
@@ -1,6 +1,6 @@
 ;;; align.el --- align text to a specific column, by regexp -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/allout-widgets.el b/lisp/allout-widgets.el
index abcfb2c..c07bbd0 100644
--- a/lisp/allout-widgets.el
+++ b/lisp/allout-widgets.el
@@ -1,6 +1,6 @@
 ;; allout-widgets.el --- Visually highlight allout outline structure.
 
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Ken Manheimer <ken dot manheimer at gmail...>
 ;; Maintainer: Ken Manheimer <ken dot manheimer at gmail...>
diff --git a/lisp/allout.el b/lisp/allout.el
index f47213d..4a0aeee 100644
--- a/lisp/allout.el
+++ b/lisp/allout.el
@@ -1,6 +1,6 @@
 ;;; allout.el --- extensive outline mode for use alone and with other modes
 
-;; Copyright (C) 1992-1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Ken Manheimer <ken dot manheimer at gmail...>
 ;; Maintainer: Ken Manheimer <ken dot manheimer at gmail...>
diff --git a/lisp/ansi-color.el b/lisp/ansi-color.el
index 788a7bd..47437bb 100644
--- a/lisp/ansi-color.el
+++ b/lisp/ansi-color.el
@@ -1,6 +1,6 @@
 ;;; ansi-color.el --- translate ANSI escape sequences into faces -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
 ;; Maintainer: Alex Schroeder <address@hidden>
diff --git a/lisp/apropos.el b/lisp/apropos.el
index 7c9ec12..cbd9c71 100644
--- a/lisp/apropos.el
+++ b/lisp/apropos.el
@@ -1,6 +1,6 @@
 ;;; apropos.el --- apropos commands for users and programmers
 
-;; Copyright (C) 1989, 1994-1995, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1989, 1994-1995, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Joe Wells <address@hidden>
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index c42ca81..bd7548b 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -1,6 +1,6 @@
 ;;; arc-mode.el --- simple editing of archives
 
-;; Copyright (C) 1995, 1997-1998, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1995, 1997-1998, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Morten Welinder <address@hidden>
diff --git a/lisp/array.el b/lisp/array.el
index f0960fa..1481ff2 100644
--- a/lisp/array.el
+++ b/lisp/array.el
@@ -1,6 +1,6 @@
 ;;; array.el --- array editing commands for GNU Emacs
 
-;; Copyright (C) 1987, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: David M. Brown
 ;; Maintainer: address@hidden
diff --git a/lisp/auth-source.el b/lisp/auth-source.el
index 62d9a45..c26935f 100644
--- a/lisp/auth-source.el
+++ b/lisp/auth-source.el
@@ -1,6 +1,6 @@
 ;;; auth-source.el --- authentication sources for Gnus and Emacs -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Ted Zlatanov <address@hidden>
 ;; Keywords: news
diff --git a/lisp/autoarg.el b/lisp/autoarg.el
index 4a6d244..7991693 100644
--- a/lisp/autoarg.el
+++ b/lisp/autoarg.el
@@ -1,6 +1,6 @@
 ;;; autoarg.el --- make digit keys supply prefix args
 
-;; Copyright (C) 1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author:  Dave Love <address@hidden>
 ;; Created: 1998-09-04
diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el
index 43fa312..2ca557c 100644
--- a/lisp/autoinsert.el
+++ b/lisp/autoinsert.el
@@ -1,6 +1,6 @@
 ;;; autoinsert.el --- automatic mode-dependent insertion of text into new files
 
-;; Copyright (C) 1985-1987, 1994-1995, 1998, 2000-2016 Free Software
+;; Copyright (C) 1985-1987, 1994-1995, 1998, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Charlie Martin <address@hidden>
diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index 1129af8..7929162 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -1,6 +1,6 @@
 ;;; autorevert.el --- revert buffers when files on disk change  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1997-1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Anders Lindgren
 ;; Keywords: convenience
@@ -174,7 +174,7 @@ Thus, with this setting, Emacs might be non-responsive at 
times."
 
 (defcustom auto-revert-verbose t
   "When nil, Auto-Revert Mode does not generate any messages.
-When non-nil, a message is generated whenever a file is reverted."
+When non-nil, a message is generated whenever a buffer is reverted."
   :group 'auto-revert
   :type 'boolean)
 
@@ -352,6 +352,9 @@ Auto-Revert Mode is a minor mode that affects only the 
current
 buffer.  When enabled, it reverts the buffer when the file on
 disk changes.
 
+When a buffer is reverted, a message is generated.  This can be
+suppressed by setting `auto-revert-verbose' to nil.
+
 Use `global-auto-revert-mode' to automatically revert all buffers.
 Use `auto-revert-tail-mode' if you know that the file will only grow
 without being changed in the part that is already in the buffer."
@@ -400,6 +403,9 @@ You can edit the buffer and turn this mode off and on again 
as
 you please.  But make sure the background process has stopped
 writing before you save the file!
 
+When a buffer is reverted, a message is generated.  This can be
+suppressed by setting `auto-revert-verbose' to nil.
+
 Use `auto-revert-mode' for changes other than appends!"
   :group 'find-file :lighter auto-revert-tail-mode-text
   (when auto-revert-tail-mode
@@ -464,6 +470,9 @@ documentation of that variable.  It ignores buffers with 
modes
 matching `global-auto-revert-ignore-modes', and buffers with a
 non-nil vale of `global-auto-revert-ignore-buffer'.
 
+When a buffer is reverted, a message is generated.  This can be
+suppressed by setting `auto-revert-verbose' to nil.
+
 This function calls the hook `global-auto-revert-mode-hook'.
 It displays the text that `global-auto-revert-mode-text'
 specifies in the mode line."
diff --git a/lisp/avoid.el b/lisp/avoid.el
index 3d43539..a4935c4 100644
--- a/lisp/avoid.el
+++ b/lisp/avoid.el
@@ -1,6 +1,6 @@
 ;;; avoid.el --- make mouse pointer stay out of the way of editing
 
-;; Copyright (C) 1993-1994, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Boris Goldowsky <address@hidden>
 ;; Keywords: mouse
diff --git a/lisp/battery.el b/lisp/battery.el
index 74f06e8..b1834f0 100644
--- a/lisp/battery.el
+++ b/lisp/battery.el
@@ -1,6 +1,6 @@
 ;;; battery.el --- display battery status information
 
-;; Copyright (C) 1997-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Ralph Schleicher <address@hidden>
 ;; Keywords: hardware
@@ -542,6 +542,9 @@ The following %-sequences are provided:
                     (t "N/A"))))))
 
 
+(declare-function dbus-get-property "dbus.el"
+                  (bus service path interface property))
+
 ;;; `upowerd' interface.
 (defsubst battery-upower-prop (pname &optional device)
   (dbus-get-property
diff --git a/lisp/bindings.el b/lisp/bindings.el
index c13f4b1..a77fd4d 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -1,6 +1,6 @@
 ;;; bindings.el --- define standard key bindings and some variables
 
-;; Copyright (C) 1985-1987, 1992-1996, 1999-2016 Free Software
+;; Copyright (C) 1985-1987, 1992-1996, 1999-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index f3c8b2a..02dd8a9 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -1,6 +1,6 @@
 ;;; bookmark.el --- set bookmarks, maybe annotate them, jump to them later
 
-;; Copyright (C) 1993-1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Karl Fogel <address@hidden>
 ;; Maintainer: Karl Fogel <address@hidden>
@@ -267,6 +267,8 @@ or the deprecated form (BOOKMARK-NAME PARAM-ALIST).
 (defvar bookmarks-already-loaded nil
   "Non-nil if and only if bookmarks have been loaded from 
`bookmark-default-file'.")
 
+(defvar bookmark-file-coding-system nil
+  "The coding-system of the last loaded or saved bookmark file.")
 
 ;; more stuff added by db.
 
@@ -689,7 +691,7 @@ This expects to be called from `point-min' in a bookmark 
file."
   (let* ((old-list (bookmark-alist-from-buffer))
          (new-list (bookmark-upgrade-version-0-alist old-list)))
     (delete-region (point-min) (point-max))
-    (bookmark-insert-file-format-version-stamp)
+    (bookmark-insert-file-format-version-stamp buffer-file-coding-system)
     (pp new-list (current-buffer))
     (save-buffer))
   (goto-char (point-min))
@@ -726,11 +728,14 @@ This expects to be called from `point-min' in a bookmark 
file."
       (error "Bookmark file format version strangeness")))))
 
 
-(defun bookmark-insert-file-format-version-stamp ()
-  "Insert text indicating current version of bookmark file format."
+(defun bookmark-insert-file-format-version-stamp (coding)
+  "Insert text indicating current version of bookmark file format.
+CODING is the symbol of the coding-system in which the file is encoded."
+  (if (memq (coding-system-base coding) '(undecided prefer-utf-8))
+      (setq coding 'utf-8-emacs))
   (insert
-   (format ";;;; Emacs Bookmark Format Version %d ;;;;\n"
-           bookmark-file-format-version))
+   (format ";;;; Emacs Bookmark Format Version %d ;;;; -*- coding: %S -*- \n"
+           bookmark-file-format-version (coding-system-base coding)))
   (insert ";;; This format is meant to be slightly human-readable;\n"
           ";;; nevertheless, you probably don't want to edit it.\n"
           ";;; "
@@ -1417,20 +1422,30 @@ for a file, defaulting to the file defined by variable
   (with-current-buffer (get-buffer-create " *Bookmarks*")
     (goto-char (point-min))
     (delete-region (point-min) (point-max))
-    (let ((print-length nil)
+    (let ((coding-system-for-write
+           (or coding-system-for-write
+               bookmark-file-coding-system 'utf-8-emacs))
+          (print-length nil)
           (print-level nil)
           ;; See bug #12503 for why we bind `print-circle'.  Users
           ;; can define their own bookmark types, which can result in
           ;; arbitrary Lisp objects being stored in bookmark records,
           ;; and some users create objects containing circularities.
           (print-circle t))
-      (bookmark-insert-file-format-version-stamp)
       (insert "(")
       ;; Rather than a single call to `pp' we make one per bookmark.
       ;; Apparently `pp' has a poor algorithmic complexity, so this
       ;; scales a lot better.  bug#4485.
       (dolist (i bookmark-alist) (pp i (current-buffer)))
       (insert ")")
+      ;; Make sure the specified encoding can safely encode the
+      ;; bookmarks.  If it cannot, suggest utf-8-emacs as default.
+      (with-coding-priority '(utf-8-emacs)
+        (setq coding-system-for-write
+              (select-safe-coding-system (point-min) (point-max)
+                                         (list t coding-system-for-write))))
+      (goto-char (point-min))
+      (bookmark-insert-file-format-version-stamp coding-system-for-write)
       (let ((version-control
              (cond
               ((null bookmark-version-control) nil)
@@ -1440,6 +1455,7 @@ for a file, defaulting to the file defined by variable
         (condition-case nil
             (write-region (point-min) (point-max) file)
           (file-error (message "Can't write %s" file)))
+        (setq bookmark-file-coding-system coding-system-for-write)
         (kill-buffer (current-buffer))
         (bookmark-maybe-message
          "Saving bookmarks to file %s...done" file)))))
@@ -1521,7 +1537,8 @@ unique numeric suffixes \"<2>\", \"<3>\", etc."
                     (expand-file-name bookmark-default-file))
                    file)
                   (setq bookmarks-already-loaded t))
-              (bookmark-bmenu-surreptitiously-rebuild-list))
+              (bookmark-bmenu-surreptitiously-rebuild-list)
+              (setq bookmark-file-coding-system buffer-file-coding-system))
           (error "Invalid bookmark list in %s" file)))
       (kill-buffer (current-buffer)))
     (if (null no-msg)
@@ -2123,7 +2140,7 @@ To carry out the deletions that you've marked, use 
\\<bookmark-bmenu-mode-map>\\
                            (current-buffer))))
           (read-string "Pattern: ")
           (when timer (cancel-timer timer) (setq timer nil)))
-      (when timer ;; Signalled an error or a `quit'.
+      (when timer ;; Signaled an error or a `quit'.
         (cancel-timer timer)
         (bookmark-bmenu-list)
         (bookmark-bmenu-goto-bookmark bmk)))))
diff --git a/lisp/bs.el b/lisp/bs.el
index d05a568..838e72d 100644
--- a/lisp/bs.el
+++ b/lisp/bs.el
@@ -1,6 +1,6 @@
 ;;; bs.el --- menu for selecting and displaying buffers -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 ;; Author: Olaf Sylvester <address@hidden>
 ;; Maintainer: Olaf Sylvester <address@hidden>
 ;; Keywords: convenience
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index dcf5b0f..77b325f 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -1,6 +1,6 @@
 ;;; buff-menu.el --- Interface for viewing and manipulating buffers
 
-;; Copyright (C) 1985-1987, 1993-1995, 2000-2016 Free Software
+;; Copyright (C) 1985-1987, 1993-1995, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/button.el b/lisp/button.el
index cb08b78..c39e4f9 100644
--- a/lisp/button.el
+++ b/lisp/button.el
@@ -1,6 +1,6 @@
 ;;; button.el --- clickable buttons
 ;;
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Miles Bader <address@hidden>
 ;; Keywords: extensions
diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el
index 37874b2..4e074d6 100644
--- a/lisp/calc/calc-aent.el
+++ b/lisp/calc/calc-aent.el
@@ -1,6 +1,6 @@
 ;;; calc-aent.el --- algebraic entry functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-alg.el b/lisp/calc/calc-alg.el
index bb2ef90..4e63d23 100644
--- a/lisp/calc/calc-alg.el
+++ b/lisp/calc/calc-alg.el
@@ -1,6 +1,6 @@
 ;;; calc-alg.el --- algebraic functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-arith.el b/lisp/calc/calc-arith.el
index 23b6bad..ec08ea4 100644
--- a/lisp/calc/calc-arith.el
+++ b/lisp/calc/calc-arith.el
@@ -1,6 +1,6 @@
 ;;; calc-arith.el --- arithmetic functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-bin.el b/lisp/calc/calc-bin.el
index eb82433..ffca7c3 100644
--- a/lisp/calc/calc-bin.el
+++ b/lisp/calc/calc-bin.el
@@ -1,6 +1,6 @@
 ;;; calc-bin.el --- binary functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-comb.el b/lisp/calc/calc-comb.el
index 132757a..bc1ac31 100644
--- a/lisp/calc/calc-comb.el
+++ b/lisp/calc/calc-comb.el
@@ -1,6 +1,6 @@
 ;;; calc-comb.el --- combinatoric functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-cplx.el b/lisp/calc/calc-cplx.el
index ba31b27..a00adc0 100644
--- a/lisp/calc/calc-cplx.el
+++ b/lisp/calc/calc-cplx.el
@@ -1,6 +1,6 @@
 ;;; calc-cplx.el --- Complex number functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el
index 6ba436a..bb37d7f 100644
--- a/lisp/calc/calc-embed.el
+++ b/lisp/calc/calc-embed.el
@@ -1,6 +1,6 @@
 ;;; calc-embed.el --- embed Calc in a buffer
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el
index cc0972e..d93a86a 100644
--- a/lisp/calc/calc-ext.el
+++ b/lisp/calc/calc-ext.el
@@ -1,6 +1,6 @@
 ;;; calc-ext.el --- various extension functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-fin.el b/lisp/calc/calc-fin.el
index 6d4a522..6475746 100644
--- a/lisp/calc/calc-fin.el
+++ b/lisp/calc/calc-fin.el
@@ -1,6 +1,6 @@
 ;;; calc-fin.el --- financial functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-forms.el b/lisp/calc/calc-forms.el
index 153b904..6aa421e 100644
--- a/lisp/calc/calc-forms.el
+++ b/lisp/calc/calc-forms.el
@@ -1,6 +1,6 @@
 ;;; calc-forms.el --- data format conversion functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-frac.el b/lisp/calc/calc-frac.el
index 4acfcb2..d98cdda 100644
--- a/lisp/calc/calc-frac.el
+++ b/lisp/calc/calc-frac.el
@@ -1,6 +1,6 @@
 ;;; calc-frac.el --- fraction functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-funcs.el b/lisp/calc/calc-funcs.el
index 42bf51b..2bb460d 100644
--- a/lisp/calc/calc-funcs.el
+++ b/lisp/calc/calc-funcs.el
@@ -1,6 +1,6 @@
 ;;; calc-funcs.el --- well-known functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el
index 6357c97..bc05ffe 100644
--- a/lisp/calc/calc-graph.el
+++ b/lisp/calc/calc-graph.el
@@ -1,6 +1,6 @@
 ;;; calc-graph.el --- graph output functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el
index 58a9273..356e571 100644
--- a/lisp/calc/calc-help.el
+++ b/lisp/calc/calc-help.el
@@ -1,6 +1,6 @@
 ;;; calc-help.el --- help display functions for Calc,
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-incom.el b/lisp/calc/calc-incom.el
index 5862653..59b5915 100644
--- a/lisp/calc/calc-incom.el
+++ b/lisp/calc/calc-incom.el
@@ -1,6 +1,6 @@
 ;;; calc-incom.el --- complex data type input functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-keypd.el b/lisp/calc/calc-keypd.el
index 3168862..dc49f28 100644
--- a/lisp/calc/calc-keypd.el
+++ b/lisp/calc/calc-keypd.el
@@ -1,6 +1,6 @@
 ;;; calc-keypd.el --- mouse-capable keypad input for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-lang.el b/lisp/calc/calc-lang.el
index e3f77ae..ce1ddb5 100644
--- a/lisp/calc/calc-lang.el
+++ b/lisp/calc/calc-lang.el
@@ -1,6 +1,6 @@
 ;;; calc-lang.el --- calc language functions
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-macs.el b/lisp/calc/calc-macs.el
index aa42334..b2cd580 100644
--- a/lisp/calc/calc-macs.el
+++ b/lisp/calc/calc-macs.el
@@ -1,6 +1,6 @@
 ;;; calc-macs.el --- important macros for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-map.el b/lisp/calc/calc-map.el
index 319b047..76a58f4 100644
--- a/lisp/calc/calc-map.el
+++ b/lisp/calc/calc-map.el
@@ -1,6 +1,6 @@
 ;;; calc-map.el --- higher-order functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-math.el b/lisp/calc/calc-math.el
index 567635e..2590761 100644
--- a/lisp/calc/calc-math.el
+++ b/lisp/calc/calc-math.el
@@ -1,6 +1,6 @@
 ;;; calc-math.el --- mathematical functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-menu.el b/lisp/calc/calc-menu.el
index ff9a3d3..e0305e3 100644
--- a/lisp/calc/calc-menu.el
+++ b/lisp/calc/calc-menu.el
@@ -1,6 +1,6 @@
 ;;; calc-menu.el --- a menu for Calc
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el
index ccecf13..e6af092 100644
--- a/lisp/calc/calc-misc.el
+++ b/lisp/calc/calc-misc.el
@@ -1,6 +1,6 @@
 ;;; calc-misc.el --- miscellaneous functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
@@ -623,7 +623,7 @@ loaded and the keystroke automatically re-typed."
       (unwind-protect
          (progn
            (sit-for 2)
-           (identity 1)   ; this forces a call to QUIT; in bytecode.c.
+           (identity 1)   ; This forces a call to maybe_quit in bytecode.c.
            (setq okay t))
        (progn
          (delete-region savemax (point-max))
diff --git a/lisp/calc/calc-mode.el b/lisp/calc/calc-mode.el
index a6368e6..3b37881 100644
--- a/lisp/calc/calc-mode.el
+++ b/lisp/calc/calc-mode.el
@@ -1,6 +1,6 @@
 ;;; calc-mode.el --- calculator modes for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-mtx.el b/lisp/calc/calc-mtx.el
index a093832..dc97c45 100644
--- a/lisp/calc/calc-mtx.el
+++ b/lisp/calc/calc-mtx.el
@@ -1,6 +1,6 @@
 ;;; calc-mtx.el --- matrix functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-nlfit.el b/lisp/calc/calc-nlfit.el
index 7683ddd..684d0f1 100644
--- a/lisp/calc/calc-nlfit.el
+++ b/lisp/calc/calc-nlfit.el
@@ -1,6 +1,6 @@
 ;;; calc-nlfit.el --- nonlinear curve fitting for Calc
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/lisp/calc/calc-poly.el b/lisp/calc/calc-poly.el
index 462a3e2..a362130 100644
--- a/lisp/calc/calc-poly.el
+++ b/lisp/calc/calc-poly.el
@@ -1,6 +1,6 @@
 ;;; calc-poly.el --- polynomial functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-prog.el b/lisp/calc/calc-prog.el
index ef5adc7..6e9322f 100644
--- a/lisp/calc/calc-prog.el
+++ b/lisp/calc/calc-prog.el
@@ -1,6 +1,6 @@
 ;;; calc-prog.el --- user programmability functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-rewr.el b/lisp/calc/calc-rewr.el
index 4b8bf73..e50f8e1 100644
--- a/lisp/calc/calc-rewr.el
+++ b/lisp/calc/calc-rewr.el
@@ -1,6 +1,6 @@
 ;;; calc-rewr.el --- rewriting functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-rules.el b/lisp/calc/calc-rules.el
index 1b528aa..bcace46 100644
--- a/lisp/calc/calc-rules.el
+++ b/lisp/calc/calc-rules.el
@@ -1,6 +1,6 @@
 ;;; calc-rules.el --- rules for simplifying algebraic expressions in Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-sel.el b/lisp/calc/calc-sel.el
index 73641ea..d7f87f4 100644
--- a/lisp/calc/calc-sel.el
+++ b/lisp/calc/calc-sel.el
@@ -1,6 +1,6 @@
 ;;; calc-sel.el --- data selection functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-stat.el b/lisp/calc/calc-stat.el
index 48e4bf5..2b79712 100644
--- a/lisp/calc/calc-stat.el
+++ b/lisp/calc/calc-stat.el
@@ -1,6 +1,6 @@
 ;;; calc-stat.el --- statistical functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el
index e8da2bc..67931a7 100644
--- a/lisp/calc/calc-store.el
+++ b/lisp/calc/calc-store.el
@@ -1,6 +1,6 @@
 ;;; calc-store.el --- value storage functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-stuff.el b/lisp/calc/calc-stuff.el
index 884e240..48e3a34 100644
--- a/lisp/calc/calc-stuff.el
+++ b/lisp/calc/calc-stuff.el
@@ -1,6 +1,6 @@
 ;;; calc-stuff.el --- miscellaneous functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-trail.el b/lisp/calc/calc-trail.el
index 374fad7..a9e2943 100644
--- a/lisp/calc/calc-trail.el
+++ b/lisp/calc/calc-trail.el
@@ -1,6 +1,6 @@
 ;;; calc-trail.el --- functions for manipulating the Calc "trail"
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-undo.el b/lisp/calc/calc-undo.el
index b618f1d..06181f8 100644
--- a/lisp/calc/calc-undo.el
+++ b/lisp/calc/calc-undo.el
@@ -1,6 +1,6 @@
 ;;; calc-undo.el --- undo functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el
index 525e3e2..0e3715e 100644
--- a/lisp/calc/calc-units.el
+++ b/lisp/calc/calc-units.el
@@ -1,6 +1,6 @@
 ;;; calc-units.el --- unit conversion functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-vec.el b/lisp/calc/calc-vec.el
index c861c00..0ce0d42 100644
--- a/lisp/calc/calc-vec.el
+++ b/lisp/calc/calc-vec.el
@@ -1,6 +1,6 @@
 ;;; calc-vec.el --- vector functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc-yank.el b/lisp/calc/calc-yank.el
index ed70666..e97d878 100644
--- a/lisp/calc/calc-yank.el
+++ b/lisp/calc/calc-yank.el
@@ -1,6 +1,6 @@
 ;;; calc-yank.el --- kill-ring functionality for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
index 7ae8fdf..6a9af44 100644
--- a/lisp/calc/calc.el
+++ b/lisp/calc/calc.el
@@ -1,6 +1,6 @@
 ;;; calc.el --- the GNU Emacs calculator
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 ;; Keywords: convenience, extensions
diff --git a/lisp/calc/calcalg2.el b/lisp/calc/calcalg2.el
index cd80c24..bb4c30e 100644
--- a/lisp/calc/calcalg2.el
+++ b/lisp/calc/calcalg2.el
@@ -1,6 +1,6 @@
 ;;; calcalg2.el --- more algebraic functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calcalg3.el b/lisp/calc/calcalg3.el
index aa3c0a1..dc6ac93 100644
--- a/lisp/calc/calcalg3.el
+++ b/lisp/calc/calcalg3.el
@@ -1,6 +1,6 @@
 ;;; calcalg3.el --- more algebraic functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calccomp.el b/lisp/calc/calccomp.el
index a36e9e1..7c8013a 100644
--- a/lisp/calc/calccomp.el
+++ b/lisp/calc/calccomp.el
@@ -1,6 +1,6 @@
 ;;; calccomp.el --- composition functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calc/calcsel2.el b/lisp/calc/calcsel2.el
index e1117dd..73497f0 100644
--- a/lisp/calc/calcsel2.el
+++ b/lisp/calc/calcsel2.el
@@ -1,6 +1,6 @@
 ;;; calcsel2.el --- selection functions for Calc
 
-;; Copyright (C) 1990-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <address@hidden>
 
diff --git a/lisp/calculator.el b/lisp/calculator.el
index 523bf98..5366a9b 100644
--- a/lisp/calculator.el
+++ b/lisp/calculator.el
@@ -1,6 +1,6 @@
 ;;; calculator.el --- a calculator for Emacs  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Eli Barzilay <address@hidden>
 ;; Keywords: tools, convenience
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
index 36ebd2d..08f1bf4 100644
--- a/lisp/calendar/appt.el
+++ b/lisp/calendar/appt.el
@@ -1,6 +1,6 @@
 ;;; appt.el --- appointment notification functions
 
-;; Copyright (C) 1989-1990, 1994, 1998, 2001-2016 Free Software
+;; Copyright (C) 1989-1990, 1994, 1998, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Neil Mager <address@hidden>
diff --git a/lisp/calendar/cal-bahai.el b/lisp/calendar/cal-bahai.el
index 1717981..6e62454 100644
--- a/lisp/calendar/cal-bahai.el
+++ b/lisp/calendar/cal-bahai.el
@@ -1,6 +1,6 @@
 ;;; cal-bahai.el --- calendar functions for the Bahá’í calendar.
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 ;; Keywords: calendar
diff --git a/lisp/calendar/cal-china.el b/lisp/calendar/cal-china.el
index 661a818..72e7675 100644
--- a/lisp/calendar/cal-china.el
+++ b/lisp/calendar/cal-china.el
@@ -1,6 +1,6 @@
 ;;; cal-china.el --- calendar functions for the Chinese calendar
 
-;; Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
 ;; Maintainer: Glenn Morris <address@hidden>
diff --git a/lisp/calendar/cal-coptic.el b/lisp/calendar/cal-coptic.el
index 4a55d93..920ec7d 100644
--- a/lisp/calendar/cal-coptic.el
+++ b/lisp/calendar/cal-coptic.el
@@ -1,6 +1,6 @@
 ;;; cal-coptic.el --- calendar functions for the Coptic/Ethiopic calendars
 
-;; Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
 ;; Maintainer: Glenn Morris <address@hidden>
diff --git a/lisp/calendar/cal-dst.el b/lisp/calendar/cal-dst.el
index 84831e7..be709f5 100644
--- a/lisp/calendar/cal-dst.el
+++ b/lisp/calendar/cal-dst.el
@@ -1,6 +1,6 @@
 ;;; cal-dst.el --- calendar functions for daylight saving rules
 
-;; Copyright (C) 1993-1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Paul Eggert <address@hidden>
 ;;         Edward M. Reingold <address@hidden>
diff --git a/lisp/calendar/cal-french.el b/lisp/calendar/cal-french.el
index e808a4b..3ecd90a 100644
--- a/lisp/calendar/cal-french.el
+++ b/lisp/calendar/cal-french.el
@@ -1,6 +1,6 @@
 ;;; cal-french.el --- calendar functions for the French Revolutionary calendar
 
-;; Copyright (C) 1988-1989, 1992, 1994-1995, 1997, 2001-2016 Free
+;; Copyright (C) 1988-1989, 1992, 1994-1995, 1997, 2001-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el
index 4822143..15de7cd 100644
--- a/lisp/calendar/cal-hebrew.el
+++ b/lisp/calendar/cal-hebrew.el
@@ -1,6 +1,6 @@
 ;;; cal-hebrew.el --- calendar functions for the Hebrew calendar
 
-;; Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Nachum Dershowitz <address@hidden>
 ;;         Edward M. Reingold <address@hidden>
diff --git a/lisp/calendar/cal-html.el b/lisp/calendar/cal-html.el
index 392e6a8..f002133 100644
--- a/lisp/calendar/cal-html.el
+++ b/lisp/calendar/cal-html.el
@@ -1,6 +1,6 @@
 ;;; cal-html.el --- functions for printing HTML calendars
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Anna M. Bigatti <address@hidden>
 ;; Keywords: calendar
diff --git a/lisp/calendar/cal-islam.el b/lisp/calendar/cal-islam.el
index 9acbbaa..c647893 100644
--- a/lisp/calendar/cal-islam.el
+++ b/lisp/calendar/cal-islam.el
@@ -1,6 +1,6 @@
 ;;; cal-islam.el --- calendar functions for the Islamic calendar
 
-;; Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
 ;; Maintainer: Glenn Morris <address@hidden>
diff --git a/lisp/calendar/cal-iso.el b/lisp/calendar/cal-iso.el
index d7c9a6d..c802c84 100644
--- a/lisp/calendar/cal-iso.el
+++ b/lisp/calendar/cal-iso.el
@@ -1,6 +1,6 @@
 ;;; cal-iso.el --- calendar functions for the ISO calendar
 
-;; Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
 ;; Maintainer: Glenn Morris <address@hidden>
diff --git a/lisp/calendar/cal-julian.el b/lisp/calendar/cal-julian.el
index d6a9939..40887b4 100644
--- a/lisp/calendar/cal-julian.el
+++ b/lisp/calendar/cal-julian.el
@@ -1,6 +1,6 @@
 ;;; cal-julian.el --- calendar functions for the Julian calendar
 
-;; Copyright (C) 1995, 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
 ;; Maintainer: Glenn Morris <address@hidden>
diff --git a/lisp/calendar/cal-mayan.el b/lisp/calendar/cal-mayan.el
index f97be00..2363cf5 100644
--- a/lisp/calendar/cal-mayan.el
+++ b/lisp/calendar/cal-mayan.el
@@ -1,6 +1,6 @@
 ;;; cal-mayan.el --- calendar functions for the Mayan calendars
 
-;; Copyright (C) 1992-1993, 1995, 1997, 2001-2016 Free Software
+;; Copyright (C) 1992-1993, 1995, 1997, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Stewart M. Clamen <address@hidden>
diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el
index a92abe3..1039b49 100644
--- a/lisp/calendar/cal-menu.el
+++ b/lisp/calendar/cal-menu.el
@@ -1,6 +1,6 @@
 ;;; cal-menu.el --- calendar functions for menu bar and popup menu support
 
-;; Copyright (C) 1994-1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
 ;;         Lara Rios <address@hidden>
diff --git a/lisp/calendar/cal-move.el b/lisp/calendar/cal-move.el
index c0d4631..a845348 100644
--- a/lisp/calendar/cal-move.el
+++ b/lisp/calendar/cal-move.el
@@ -1,6 +1,6 @@
 ;;; cal-move.el --- calendar functions for movement in the calendar
 
-;; Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
 ;; Maintainer: Glenn Morris <address@hidden>
diff --git a/lisp/calendar/cal-persia.el b/lisp/calendar/cal-persia.el
index eb554c5..571b397 100644
--- a/lisp/calendar/cal-persia.el
+++ b/lisp/calendar/cal-persia.el
@@ -1,6 +1,6 @@
 ;;; cal-persia.el --- calendar functions for the Persian calendar
 
-;; Copyright (C) 1996-1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
 ;; Maintainer: Glenn Morris <address@hidden>
diff --git a/lisp/calendar/cal-tex.el b/lisp/calendar/cal-tex.el
index c7729dc..1ea10bf 100644
--- a/lisp/calendar/cal-tex.el
+++ b/lisp/calendar/cal-tex.el
@@ -1,6 +1,6 @@
 ;;; cal-tex.el --- calendar functions for printing calendars with LaTeX
 
-;; Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Steve Fisk <address@hidden>
 ;;         Edward M. Reingold <address@hidden>
diff --git a/lisp/calendar/cal-x.el b/lisp/calendar/cal-x.el
index 9273e93..f7ca369 100644
--- a/lisp/calendar/cal-x.el
+++ b/lisp/calendar/cal-x.el
@@ -1,6 +1,6 @@
 ;;; cal-x.el --- calendar windows in dedicated frames
 
-;; Copyright (C) 1994-1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;;         Edward M. Reingold <address@hidden>
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index 5cea46b..8428220 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -1,6 +1,6 @@
 ;;; calendar.el --- calendar functions
 
-;; Copyright (C) 1988-1995, 1997, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1988-1995, 1997, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index 9ba4e35..4ee6719 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -1,6 +1,6 @@
 ;;; diary-lib.el --- diary functions
 
-;; Copyright (C) 1989-1990, 1992-1995, 2001-2016 Free Software
+;; Copyright (C) 1989-1990, 1992-1995, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el
index 27932aa..5b51b16 100644
--- a/lisp/calendar/holidays.el
+++ b/lisp/calendar/holidays.el
@@ -1,6 +1,6 @@
 ;;; holidays.el --- holiday functions for the calendar package
 
-;; Copyright (C) 1989-1990, 1992-1994, 1997, 2001-2016 Free Software
+;; Copyright (C) 1989-1990, 1992-1994, 1997, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
index 2f557f5..aa092b2 100644
--- a/lisp/calendar/icalendar.el
+++ b/lisp/calendar/icalendar.el
@@ -1,6 +1,6 @@
 ;;; icalendar.el --- iCalendar implementation -*- lexical-binding: t -*-
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author:         Ulf Jasper <address@hidden>
 ;; Created:        August 2002
diff --git a/lisp/calendar/lunar.el b/lisp/calendar/lunar.el
index 9f0c4cd..4d39b15 100644
--- a/lisp/calendar/lunar.el
+++ b/lisp/calendar/lunar.el
@@ -1,6 +1,6 @@
 ;;; lunar.el --- calendar functions for phases of the moon
 
-;; Copyright (C) 1992-1993, 1995, 1997, 2001-2016 Free Software
+;; Copyright (C) 1992-1993, 1995, 1997, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
diff --git a/lisp/calendar/parse-time.el b/lisp/calendar/parse-time.el
index b62f9fa..7651c5d 100644
--- a/lisp/calendar/parse-time.el
+++ b/lisp/calendar/parse-time.el
@@ -1,6 +1,6 @@
 ;;; parse-time.el --- parsing time strings
 
-;; Copyright (C) 1996, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Erik Naggum <address@hidden>
 ;; Keywords: util
@@ -202,7 +202,7 @@ any values that are unknown are returned as nil."
         (time-minute 2digit)
         (time-second 2digit)
         (time-secfrac "\\(\\.[0-9]+\\)?")
-        (time-numoffset (concat "[-+]\\(" time-hour "\\):" time-minute))
+        (time-numoffset (concat "\\([-+]\\)" time-hour ":?" time-minute "?"))
         (time-offset (concat "Z" time-numoffset))
         (partial-time (concat time-hour colon time-minute colon time-second
                               time-secfrac))
@@ -211,19 +211,22 @@ any values that are unknown are returned as nil."
         (date-time (concat full-date "T" full-time)))
     (list (concat "^" full-date)
          (concat "T" partial-time)
-         (concat "Z" time-numoffset)))
+         (concat "\\(Z\\|" time-numoffset "\\)")))
   "List of regular expressions matching ISO 8601 dates.
 1st regular expression matches the date.
 2nd regular expression matches the time.
 3rd regular expression matches the (optional) timezone specification.")
 
 (defun parse-iso8601-time-string (date-string)
+  "Parse an ISO 8601 time string, such as 2016-12-01T23:35:06-05:00.
+If DATE-STRING cannot be parsed, it falls back to
+`parse-time-string'."
   (let* ((date-re (nth 0 parse-time-iso8601-regexp))
         (time-re (nth 1 parse-time-iso8601-regexp))
         (tz-re (nth 2 parse-time-iso8601-regexp))
-        re-start
-        time seconds minute hour fractional-seconds
-        day month year day-of-week dst tz)
+         re-start
+         time seconds minute hour fractional-seconds
+         day month year day-of-week dst tz)
     ;; We need to populate 'time' with
     ;; (SEC MIN HOUR DAY MON YEAR DOW DST TZ)
 
@@ -242,10 +245,19 @@ any values that are unknown are returned as nil."
                                                     "0"))
              re-start (match-end 0))
        (when (string-match tz-re date-string re-start)
-         (setq tz (match-string 1 date-string)))
+          (if (string= "Z" (match-string 1 date-string))
+              (setq tz 0)  ;; UTC timezone indicated by Z
+            (setq tz (+
+                      (* 3600
+                         (string-to-number (match-string 3 date-string)))
+                      (* 60
+                         (string-to-number
+                          (or (match-string 4 date-string) "0")))))
+            (when (string= "-" (match-string 2 date-string))
+              (setq tz (- tz)))))
        (setq time (list seconds minute hour day month year day-of-week dst 
tz))))
 
-    ;; Fall back to having Gnus do fancy things for us.
+    ;; Fall back to having `parse-time-string' do fancy things for us.
     (when (not time)
       (setq time (parse-time-string date-string)))
 
diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el
index 6fec805..f5cde3f 100644
--- a/lisp/calendar/solar.el
+++ b/lisp/calendar/solar.el
@@ -1,6 +1,6 @@
 ;;; solar.el --- calendar functions for solar events
 
-;; Copyright (C) 1992-1993, 1995, 1997, 2001-2016 Free Software
+;; Copyright (C) 1992-1993, 1995, 1997, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Edward M. Reingold <address@hidden>
diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el
index a1d946e..d998623 100644
--- a/lisp/calendar/time-date.el
+++ b/lisp/calendar/time-date.el
@@ -1,6 +1,6 @@
 ;;; time-date.el --- Date and time handling functions
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;;     Masanobu Umeda <address@hidden>
diff --git a/lisp/calendar/timeclock.el b/lisp/calendar/timeclock.el
index 3d9e246..f8de084 100644
--- a/lisp/calendar/timeclock.el
+++ b/lisp/calendar/timeclock.el
@@ -1,6 +1,6 @@
 ;;; timeclock.el --- mode for keeping track of how much you work
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 ;; Created: 25 Mar 1999
diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
index aee101f..5d4fcf8 100644
--- a/lisp/calendar/todo-mode.el
+++ b/lisp/calendar/todo-mode.el
@@ -1,6 +1,6 @@
 ;;; todo-mode.el --- facilities for making and maintaining todo lists
 
-;; Copyright (C) 1997, 1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Oliver Seidel <address@hidden>
 ;;     Stephen Berman <address@hidden>
diff --git a/lisp/case-table.el b/lisp/case-table.el
index c361941..271bb0a 100644
--- a/lisp/case-table.el
+++ b/lisp/case-table.el
@@ -1,6 +1,6 @@
 ;;; case-table.el --- code to extend the character set and support case tables 
 -*- lexical-binding: t -*-
 
-;; Copyright (C) 1988, 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Howard Gayle
 ;; Maintainer: address@hidden
diff --git a/lisp/cdl.el b/lisp/cdl.el
index fcd716a..2fc74de 100644
--- a/lisp/cdl.el
+++ b/lisp/cdl.el
@@ -1,6 +1,6 @@
 ;;; cdl.el --- Common Data Language (CDL) utility functions for GNU Emacs
 
-;; Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: address@hidden (Ata Etemadi)
 ;; Maintainer: address@hidden
diff --git a/lisp/cedet/ChangeLog.1 b/lisp/cedet/ChangeLog.1
index f3a375a..c0223cb 100644
--- a/lisp/cedet/ChangeLog.1
+++ b/lisp/cedet/ChangeLog.1
@@ -3460,7 +3460,7 @@
 ;; coding: utf-8
 ;; End:
 
-       Copyright (C) 2009-2016 Free Software Foundation, Inc.
+       Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/cedet/cedet-cscope.el b/lisp/cedet/cedet-cscope.el
index 373149c..913f960 100644
--- a/lisp/cedet/cedet-cscope.el
+++ b/lisp/cedet/cedet-cscope.el
@@ -1,6 +1,6 @@
 ;;; cedet-cscope.el --- CScope support for CEDET
 
-;;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Package: cedet
diff --git a/lisp/cedet/cedet-files.el b/lisp/cedet/cedet-files.el
index 875c677..0798e7c 100644
--- a/lisp/cedet/cedet-files.el
+++ b/lisp/cedet/cedet-files.el
@@ -1,6 +1,6 @@
 ;;; cedet-files.el --- Common routines dealing with file names.
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Package: cedet
diff --git a/lisp/cedet/cedet-global.el b/lisp/cedet/cedet-global.el
index f1cc3c9..ee2265b 100644
--- a/lisp/cedet/cedet-global.el
+++ b/lisp/cedet/cedet-global.el
@@ -1,6 +1,6 @@
 ;;; cedet-global.el --- GNU Global support for CEDET.
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Package: cedet
diff --git a/lisp/cedet/cedet-idutils.el b/lisp/cedet/cedet-idutils.el
index ee2061b..dbcce2d 100644
--- a/lisp/cedet/cedet-idutils.el
+++ b/lisp/cedet/cedet-idutils.el
@@ -1,6 +1,6 @@
 ;;; cedet-idutils.el --- ID Utils support for CEDET.
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Old-Version: 0.2
diff --git a/lisp/cedet/cedet.el b/lisp/cedet/cedet.el
index 7adca64..a0b06f2 100644
--- a/lisp/cedet/cedet.el
+++ b/lisp/cedet/cedet.el
@@ -1,6 +1,6 @@
 ;;; cedet.el --- Setup CEDET environment
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: Eric M. Ludlam  <address@hidden>
diff --git a/lisp/cedet/data-debug.el b/lisp/cedet/data-debug.el
index 330c775..b12e2a3 100644
--- a/lisp/cedet/data-debug.el
+++ b/lisp/cedet/data-debug.el
@@ -1,6 +1,6 @@
 ;;; data-debug.el --- Data structure debugger
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam  <address@hidden>
 ;; Old-Version: 0.2
diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el
index f013d43..87d73b2 100644
--- a/lisp/cedet/ede.el
+++ b/lisp/cedet/ede.el
@@ -1,6 +1,6 @@
 ;;; ede.el --- Emacs Development Environment gloss
 
-;; Copyright (C) 1998-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project, make
diff --git a/lisp/cedet/ede/auto.el b/lisp/cedet/ede/auto.el
index 5b3befe..6c0e588 100644
--- a/lisp/cedet/ede/auto.el
+++ b/lisp/cedet/ede/auto.el
@@ -1,6 +1,6 @@
 ;;; ede/auto.el --- Autoload features for EDE
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/autoconf-edit.el b/lisp/cedet/ede/autoconf-edit.el
index b098609..c9783ca 100644
--- a/lisp/cedet/ede/autoconf-edit.el
+++ b/lisp/cedet/ede/autoconf-edit.el
@@ -1,6 +1,6 @@
 ;;; ede/autoconf-edit.el --- Keymap for autoconf
 
-;; Copyright (C) 1998-2000, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2000, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project
diff --git a/lisp/cedet/ede/base.el b/lisp/cedet/ede/base.el
index 70c3d5a..13d721a 100644
--- a/lisp/cedet/ede/base.el
+++ b/lisp/cedet/ede/base.el
@@ -1,6 +1,6 @@
 ;;; ede/base.el --- Baseclasses for EDE.
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/config.el b/lisp/cedet/ede/config.el
index a9042e5..a517ed1 100644
--- a/lisp/cedet/ede/config.el
+++ b/lisp/cedet/ede/config.el
@@ -1,6 +1,6 @@
 ;;; ede/config.el --- Configuration Handler baseclass
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/cpp-root.el b/lisp/cedet/ede/cpp-root.el
index d0ff2ae..319854e 100644
--- a/lisp/cedet/ede/cpp-root.el
+++ b/lisp/cedet/ede/cpp-root.el
@@ -1,6 +1,6 @@
 ;;; ede/cpp-root.el --- A simple way to wrap a C++ project with a single root
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/custom.el b/lisp/cedet/ede/custom.el
index 643eff2..1c4e849 100644
--- a/lisp/cedet/ede/custom.el
+++ b/lisp/cedet/ede/custom.el
@@ -1,6 +1,6 @@
 ;;; ede/custom.el --- customization of EDE projects.
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/detect.el b/lisp/cedet/ede/detect.el
index 2b92fc1..54d48a2 100644
--- a/lisp/cedet/ede/detect.el
+++ b/lisp/cedet/ede/detect.el
@@ -1,6 +1,6 @@
 ;;; ede/detect.el --- EDE project detection and file associations
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/dired.el b/lisp/cedet/ede/dired.el
index 5c9fc0a..2555fab 100644
--- a/lisp/cedet/ede/dired.el
+++ b/lisp/cedet/ede/dired.el
@@ -1,6 +1,6 @@
 ;;; ede/dired.el --- EDE extensions to dired.
 
-;; Copyright (C) 1998-2000, 2003, 2009-2016 Free Software Foundation,
+;; Copyright (C) 1998-2000, 2003, 2009-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/ede/emacs.el b/lisp/cedet/ede/emacs.el
index 427f1a4..cac66fa 100644
--- a/lisp/cedet/ede/emacs.el
+++ b/lisp/cedet/ede/emacs.el
@@ -1,6 +1,6 @@
 ;;; ede/emacs.el --- Special project for Emacs
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/files.el b/lisp/cedet/ede/files.el
index 3f23bfc..889cac8 100644
--- a/lisp/cedet/ede/files.el
+++ b/lisp/cedet/ede/files.el
@@ -1,6 +1,6 @@
 ;;; ede/files.el --- Associate projects with files and directories.
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/generic.el b/lisp/cedet/ede/generic.el
index 5a0e394..f7f98e6 100644
--- a/lisp/cedet/ede/generic.el
+++ b/lisp/cedet/ede/generic.el
@@ -1,6 +1,6 @@
 ;;; ede/generic.el --- Base Support for generic build systems
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/linux.el b/lisp/cedet/ede/linux.el
index d7ea35a..22f5c3e 100644
--- a/lisp/cedet/ede/linux.el
+++ b/lisp/cedet/ede/linux.el
@@ -1,6 +1,6 @@
 ;;; ede/linux.el --- Special project for Linux
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/locate.el b/lisp/cedet/ede/locate.el
index 8564719..845a491 100644
--- a/lisp/cedet/ede/locate.el
+++ b/lisp/cedet/ede/locate.el
@@ -1,6 +1,6 @@
 ;;; ede/locate.el --- Locate support
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/make.el b/lisp/cedet/ede/make.el
index 41c6238..13591f6 100644
--- a/lisp/cedet/ede/make.el
+++ b/lisp/cedet/ede/make.el
@@ -1,6 +1,6 @@
 ;;; ede/make.el --- General information about "make"
 
-;;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/makefile-edit.el b/lisp/cedet/ede/makefile-edit.el
index df87d95..90d48fc 100644
--- a/lisp/cedet/ede/makefile-edit.el
+++ b/lisp/cedet/ede/makefile-edit.el
@@ -1,6 +1,6 @@
 ;;; makefile-edit.el --- Makefile editing/scanning commands.
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/pconf.el b/lisp/cedet/ede/pconf.el
index de344c3..f8d9e0b 100644
--- a/lisp/cedet/ede/pconf.el
+++ b/lisp/cedet/ede/pconf.el
@@ -1,6 +1,6 @@
 ;;; ede/pconf.el --- configure.ac maintenance for EDE
 
-;;; Copyright (C) 1998-2000, 2005, 2008-2016 Free Software Foundation,
+;;; Copyright (C) 1998-2000, 2005, 2008-2017 Free Software Foundation,
 ;;; Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/ede/pmake.el b/lisp/cedet/ede/pmake.el
index 264ce61..6feb960 100644
--- a/lisp/cedet/ede/pmake.el
+++ b/lisp/cedet/ede/pmake.el
@@ -1,6 +1,6 @@
 ;;; ede-pmake.el --- EDE Generic Project Makefile code generator.
 
-;; Copyright (C) 1998-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project, make
diff --git a/lisp/cedet/ede/proj-archive.el b/lisp/cedet/ede/proj-archive.el
index 6125615..460df69 100644
--- a/lisp/cedet/ede/proj-archive.el
+++ b/lisp/cedet/ede/proj-archive.el
@@ -1,6 +1,6 @@
 ;;; ede/proj-archive.el --- EDE Generic Project archive support
 
-;;  Copyright (C) 1998-2001, 2009-2016 Free Software Foundation, Inc.
+;;  Copyright (C) 1998-2001, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project, make
diff --git a/lisp/cedet/ede/proj-aux.el b/lisp/cedet/ede/proj-aux.el
index a0cb5b3..3b60eea 100644
--- a/lisp/cedet/ede/proj-aux.el
+++ b/lisp/cedet/ede/proj-aux.el
@@ -1,6 +1,6 @@
 ;;; ede/proj-aux.el --- EDE Generic Project auxiliary file support
 
-;; Copyright (C) 1998-2000, 2007, 2009-2016 Free Software Foundation,
+;; Copyright (C) 1998-2000, 2007, 2009-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/ede/proj-comp.el b/lisp/cedet/ede/proj-comp.el
index 5638310..80950ca 100644
--- a/lisp/cedet/ede/proj-comp.el
+++ b/lisp/cedet/ede/proj-comp.el
@@ -1,6 +1,6 @@
 ;;; ede/proj-comp.el --- EDE Generic Project compiler/rule driver
 
-;; Copyright (C) 1999-2001, 2004-2005, 2007, 2009-2016 Free Software
+;; Copyright (C) 1999-2001, 2004-2005, 2007, 2009-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/ede/proj-elisp.el b/lisp/cedet/ede/proj-elisp.el
index 5c3f0d2..9f4e69f 100644
--- a/lisp/cedet/ede/proj-elisp.el
+++ b/lisp/cedet/ede/proj-elisp.el
@@ -1,6 +1,6 @@
 ;;; ede-proj-elisp.el --- EDE Generic Project Emacs Lisp support
 
-;; Copyright (C) 1998-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project, make
diff --git a/lisp/cedet/ede/proj-info.el b/lisp/cedet/ede/proj-info.el
index 89906af..d430e08 100644
--- a/lisp/cedet/ede/proj-info.el
+++ b/lisp/cedet/ede/proj-info.el
@@ -1,6 +1,6 @@
 ;;; ede-proj-info.el --- EDE Generic Project texinfo support
 
-;;; Copyright (C) 1998-2001, 2004, 2007-2016 Free Software Foundation,
+;;; Copyright (C) 1998-2001, 2004, 2007-2017 Free Software Foundation,
 ;;; Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/ede/proj-misc.el b/lisp/cedet/ede/proj-misc.el
index a114003..6d1070a 100644
--- a/lisp/cedet/ede/proj-misc.el
+++ b/lisp/cedet/ede/proj-misc.el
@@ -1,6 +1,6 @@
 ;;; ede-proj-misc.el --- EDE Generic Project Emacs Lisp support
 
-;; Copyright (C) 1998-2001, 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2001, 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project, make
diff --git a/lisp/cedet/ede/proj-obj.el b/lisp/cedet/ede/proj-obj.el
index 23addcd..e7fa773 100644
--- a/lisp/cedet/ede/proj-obj.el
+++ b/lisp/cedet/ede/proj-obj.el
@@ -1,6 +1,6 @@
 ;;; ede/proj-obj.el --- EDE Generic Project Object code generation support
 
-;;; Copyright (C) 1998-2000, 2005, 2008-2016 Free Software Foundation,
+;;; Copyright (C) 1998-2000, 2005, 2008-2017 Free Software Foundation,
 ;;; Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/ede/proj-prog.el b/lisp/cedet/ede/proj-prog.el
index 7c0ec27..3a14907 100644
--- a/lisp/cedet/ede/proj-prog.el
+++ b/lisp/cedet/ede/proj-prog.el
@@ -1,6 +1,6 @@
 ;;; ede-proj-prog.el --- EDE Generic Project program support
 
-;; Copyright (C) 1998-2001, 2005, 2008-2016 Free Software Foundation,
+;; Copyright (C) 1998-2001, 2005, 2008-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/ede/proj-scheme.el b/lisp/cedet/ede/proj-scheme.el
index 41a77af..5ac2efa 100644
--- a/lisp/cedet/ede/proj-scheme.el
+++ b/lisp/cedet/ede/proj-scheme.el
@@ -1,6 +1,6 @@
 ;;; ede/proj-scheme.el --- EDE Generic Project scheme (guile) support
 
-;; Copyright (C) 1998-2000, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2000, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project, make, scheme
diff --git a/lisp/cedet/ede/proj-shared.el b/lisp/cedet/ede/proj-shared.el
index 5793b66..6c17504 100644
--- a/lisp/cedet/ede/proj-shared.el
+++ b/lisp/cedet/ede/proj-shared.el
@@ -1,6 +1,6 @@
 ;;; ede-proj-shared.el --- EDE Generic Project shared library support
 
-;;; Copyright (C) 1998-2000, 2009-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 1998-2000, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project, make
diff --git a/lisp/cedet/ede/proj.el b/lisp/cedet/ede/proj.el
index d6f5210..a7f64ac 100644
--- a/lisp/cedet/ede/proj.el
+++ b/lisp/cedet/ede/proj.el
@@ -1,6 +1,6 @@
 ;;; ede/proj.el --- EDE Generic Project file driver
 
-;; Copyright (C) 1998-2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project, make
diff --git a/lisp/cedet/ede/project-am.el b/lisp/cedet/ede/project-am.el
index 72c0bc6..86b707a 100644
--- a/lisp/cedet/ede/project-am.el
+++ b/lisp/cedet/ede/project-am.el
@@ -1,6 +1,6 @@
 ;;; project-am.el --- A project management scheme based on automake files.
 
-;; Copyright (C) 1998-2000, 2003, 2005, 2007-2016 Free Software
+;; Copyright (C) 1998-2000, 2003, 2005, 2007-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/ede/shell.el b/lisp/cedet/ede/shell.el
index b36d98a..37beea0 100644
--- a/lisp/cedet/ede/shell.el
+++ b/lisp/cedet/ede/shell.el
@@ -1,6 +1,6 @@
 ;;; ede/shell.el --- A shell controlled by EDE.
 ;;
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/simple.el b/lisp/cedet/ede/simple.el
index 74b6e05..d618b93 100644
--- a/lisp/cedet/ede/simple.el
+++ b/lisp/cedet/ede/simple.el
@@ -1,6 +1,6 @@
 ;;; ede/simple.el --- Overlay an EDE structure on an existing project
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/source.el b/lisp/cedet/ede/source.el
index 03919a4..d72d0db 100644
--- a/lisp/cedet/ede/source.el
+++ b/lisp/cedet/ede/source.el
@@ -1,6 +1,6 @@
 ;; ede/source.el --- EDE source code object
 
-;; Copyright (C) 2000, 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project, make
diff --git a/lisp/cedet/ede/speedbar.el b/lisp/cedet/ede/speedbar.el
index 72b50ee..f938f20 100644
--- a/lisp/cedet/ede/speedbar.el
+++ b/lisp/cedet/ede/speedbar.el
@@ -1,6 +1,6 @@
 ;;; ede/speedbar.el --- Speedbar viewing of EDE projects
 
-;; Copyright (C) 1998-2001, 2003, 2005, 2007-2016 Free Software
+;; Copyright (C) 1998-2001, 2003, 2005, 2007-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/ede/srecode.el b/lisp/cedet/ede/srecode.el
index b321014..4193684 100644
--- a/lisp/cedet/ede/srecode.el
+++ b/lisp/cedet/ede/srecode.el
@@ -1,6 +1,6 @@
 ;;; ede/srecode.el --- EDE utilities on top of SRecoder
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/ede/system.el b/lisp/cedet/ede/system.el
index 3aa91b6..42172ce 100644
--- a/lisp/cedet/ede/system.el
+++ b/lisp/cedet/ede/system.el
@@ -1,6 +1,6 @@
 ;;; ede-system.el --- EDE working with the system (VC, FTP, ETC)
 
-;; Copyright (C) 2001-2003, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2003, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project, make, vc
diff --git a/lisp/cedet/ede/util.el b/lisp/cedet/ede/util.el
index 1d56b3f..eb364d7 100644
--- a/lisp/cedet/ede/util.el
+++ b/lisp/cedet/ede/util.el
@@ -1,6 +1,6 @@
 ;;; ede/util.el --- EDE utilities
 
-;; Copyright (C) 2000, 2005, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2005, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project, make
diff --git a/lisp/cedet/inversion.el b/lisp/cedet/inversion.el
index 26f5268..ec54276 100644
--- a/lisp/cedet/inversion.el
+++ b/lisp/cedet/inversion.el
@@ -1,6 +1,6 @@
 ;;; inversion.el --- When you need something in version XX.XX
 
-;;; Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Version: 1.3
diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el
index 4f42431..ef24e8a 100644
--- a/lisp/cedet/mode-local.el
+++ b/lisp/cedet/mode-local.el
@@ -1,6 +1,6 @@
 ;;; mode-local.el --- Support for mode local facilities
 ;;
-;; Copyright (C) 2004-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2005, 2007-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: David Ponce <address@hidden>
@@ -31,7 +31,7 @@
 ;; This library permits the setting of override functions for tasks of
 ;; that nature, and also provides reasonable defaults.
 ;;
-;; There are buffer local variables, and frame local variables.
+;; There are buffer local variables (and there were frame local variables).
 ;; This library gives the illusion of mode specific variables.
 ;;
 ;; You should use a mode-local variable or override to allow extension
diff --git a/lisp/cedet/pulse.el b/lisp/cedet/pulse.el
index 41b70d5..913c183 100644
--- a/lisp/cedet/pulse.el
+++ b/lisp/cedet/pulse.el
@@ -1,6 +1,6 @@
 ;;; pulse.el --- Pulsing Overlays
 
-;;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Version: 1.0
diff --git a/lisp/cedet/semantic.el b/lisp/cedet/semantic.el
index d95ba5a..bf5bfa8 100644
--- a/lisp/cedet/semantic.el
+++ b/lisp/cedet/semantic.el
@@ -1,6 +1,6 @@
 ;;; semantic.el --- Semantic buffer evaluator.
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax tools
diff --git a/lisp/cedet/semantic/analyze.el b/lisp/cedet/semantic/analyze.el
index 68f5c82..c7062fb 100644
--- a/lisp/cedet/semantic/analyze.el
+++ b/lisp/cedet/semantic/analyze.el
@@ -1,6 +1,6 @@
 ;;; semantic/analyze.el --- Analyze semantic tags against local context
 
-;; Copyright (C) 2000-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/analyze/complete.el 
b/lisp/cedet/semantic/analyze/complete.el
index 698fce8..1ddbe13 100644
--- a/lisp/cedet/semantic/analyze/complete.el
+++ b/lisp/cedet/semantic/analyze/complete.el
@@ -1,6 +1,6 @@
 ;;; semantic/analyze/complete.el --- Smart Completions
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/analyze/debug.el 
b/lisp/cedet/semantic/analyze/debug.el
index 03979f5..fd218b6 100644
--- a/lisp/cedet/semantic/analyze/debug.el
+++ b/lisp/cedet/semantic/analyze/debug.el
@@ -1,6 +1,6 @@
 ;;; semantic/analyze/debug.el --- Debug the analyzer
 
-;;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/analyze/fcn.el 
b/lisp/cedet/semantic/analyze/fcn.el
index 1337f19..1abbca5 100644
--- a/lisp/cedet/semantic/analyze/fcn.el
+++ b/lisp/cedet/semantic/analyze/fcn.el
@@ -1,6 +1,6 @@
 ;;; semantic/analyze/fcn.el --- Analyzer support functions.
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/analyze/refs.el 
b/lisp/cedet/semantic/analyze/refs.el
index f876827..7fbaa2c 100644
--- a/lisp/cedet/semantic/analyze/refs.el
+++ b/lisp/cedet/semantic/analyze/refs.el
@@ -1,6 +1,6 @@
 ;;; semantic/analyze/refs.el --- Analysis of the references between tags.
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/bovine.el b/lisp/cedet/semantic/bovine.el
index f7bb63d..3c33eeb 100644
--- a/lisp/cedet/semantic/bovine.el
+++ b/lisp/cedet/semantic/bovine.el
@@ -1,6 +1,6 @@
 ;;; semantic/bovine.el --- LL Parser/Analyzer core.
 
-;; Copyright (C) 1999-2004, 2006-2007, 2009-2016 Free Software
+;; Copyright (C) 1999-2004, 2006-2007, 2009-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el
index 904410f..bef4b17 100644
--- a/lisp/cedet/semantic/bovine/c.el
+++ b/lisp/cedet/semantic/bovine/c.el
@@ -1,6 +1,6 @@
 ;;; semantic/bovine/c.el --- Semantic details for C
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/bovine/debug.el 
b/lisp/cedet/semantic/bovine/debug.el
index a53efd4..f7bc206 100644
--- a/lisp/cedet/semantic/bovine/debug.el
+++ b/lisp/cedet/semantic/bovine/debug.el
@@ -1,6 +1,6 @@
 ;;; semantic/bovine/debug.el --- Debugger support for bovinator
 
-;; Copyright (C) 2003, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/bovine/el.el b/lisp/cedet/semantic/bovine/el.el
index 93796bd..ba6b05d 100644
--- a/lisp/cedet/semantic/bovine/el.el
+++ b/lisp/cedet/semantic/bovine/el.el
@@ -1,6 +1,6 @@
 ;;; semantic/bovine/el.el --- Semantic details for Emacs Lisp
 
-;; Copyright (C) 1999-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/bovine/gcc.el 
b/lisp/cedet/semantic/bovine/gcc.el
index b56b268..e4864bc 100644
--- a/lisp/cedet/semantic/bovine/gcc.el
+++ b/lisp/cedet/semantic/bovine/gcc.el
@@ -1,6 +1,6 @@
 ;;; semantic/bovine/gcc.el --- gcc querying special code for the C parser
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/bovine/grammar.el 
b/lisp/cedet/semantic/bovine/grammar.el
index 43adc99..d34850f 100644
--- a/lisp/cedet/semantic/bovine/grammar.el
+++ b/lisp/cedet/semantic/bovine/grammar.el
@@ -1,6 +1,6 @@
 ;;; semantic/bovine/grammar.el --- Bovine's input grammar mode
 ;;
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: David Ponce <address@hidden>
diff --git a/lisp/cedet/semantic/bovine/make.el 
b/lisp/cedet/semantic/bovine/make.el
index b550f50..2a224bd 100644
--- a/lisp/cedet/semantic/bovine/make.el
+++ b/lisp/cedet/semantic/bovine/make.el
@@ -1,6 +1,6 @@
 ;;; semantic/bovine/make.el --- Makefile parsing rules.
 
-;; Copyright (C) 2000-2004, 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2004, 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/bovine/scm.el 
b/lisp/cedet/semantic/bovine/scm.el
index 3e9b118..2e87993 100644
--- a/lisp/cedet/semantic/bovine/scm.el
+++ b/lisp/cedet/semantic/bovine/scm.el
@@ -1,6 +1,6 @@
 ;;; semantic/bovine/scm.el --- Semantic details for Scheme (guile)
 
-;;; Copyright (C) 2001-2004, 2008-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2001-2004, 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/chart.el b/lisp/cedet/semantic/chart.el
index eaa0725..4f8ae24 100644
--- a/lisp/cedet/semantic/chart.el
+++ b/lisp/cedet/semantic/chart.el
@@ -1,6 +1,6 @@
 ;;; semantic/chart.el --- Utilities for use with semantic tag tables
 
-;; Copyright (C) 1999-2001, 2003, 2005, 2008-2016 Free Software
+;; Copyright (C) 1999-2001, 2003, 2005, 2008-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el
index 14b5f3f..5bd76f0 100644
--- a/lisp/cedet/semantic/complete.el
+++ b/lisp/cedet/semantic/complete.el
@@ -1,6 +1,6 @@
 ;;; semantic/complete.el --- Routines for performing tag completion
 
-;; Copyright (C) 2003-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/ctxt.el b/lisp/cedet/semantic/ctxt.el
index d24cfe6..01e1562 100644
--- a/lisp/cedet/semantic/ctxt.el
+++ b/lisp/cedet/semantic/ctxt.el
@@ -1,6 +1,6 @@
 ;;; semantic/ctxt.el --- Context calculations for Semantic tools.
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/db-debug.el b/lisp/cedet/semantic/db-debug.el
index df13ab3..9e6d725 100644
--- a/lisp/cedet/semantic/db-debug.el
+++ b/lisp/cedet/semantic/db-debug.el
@@ -1,6 +1,6 @@
 ;;; semantic/db-debug.el --- Extra level debugging routines for Semantic
 
-;;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/db-ebrowse.el 
b/lisp/cedet/semantic/db-ebrowse.el
index 86bb73f..187f722 100644
--- a/lisp/cedet/semantic/db-ebrowse.el
+++ b/lisp/cedet/semantic/db-ebrowse.el
@@ -1,6 +1,6 @@
 ;;; semantic/db-ebrowse.el --- Semanticdb backend using ebrowse.
 
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 ;; Authors: Eric M. Ludlam <address@hidden>
 ;;     Joakim Verona
diff --git a/lisp/cedet/semantic/db-el.el b/lisp/cedet/semantic/db-el.el
index 413996a..89bbd1c 100644
--- a/lisp/cedet/semantic/db-el.el
+++ b/lisp/cedet/semantic/db-el.el
@@ -1,6 +1,6 @@
 ;;; semantic/db-el.el --- Semantic database extensions for Emacs Lisp
 
-;;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: tags
diff --git a/lisp/cedet/semantic/db-file.el b/lisp/cedet/semantic/db-file.el
index 0ae433f..ed8d7bb 100644
--- a/lisp/cedet/semantic/db-file.el
+++ b/lisp/cedet/semantic/db-file.el
@@ -1,6 +1,6 @@
 ;;; semantic/db-file.el --- Save a semanticdb to a cache file.
 
-;;; Copyright (C) 2000-2005, 2007-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2000-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: tags
diff --git a/lisp/cedet/semantic/db-find.el b/lisp/cedet/semantic/db-find.el
index cd95180..c09af59 100644
--- a/lisp/cedet/semantic/db-find.el
+++ b/lisp/cedet/semantic/db-find.el
@@ -1,6 +1,6 @@
 ;;; semantic/db-find.el --- Searching through semantic databases.
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: tags
diff --git a/lisp/cedet/semantic/db-global.el b/lisp/cedet/semantic/db-global.el
index 03a21b0..8cb9dab 100644
--- a/lisp/cedet/semantic/db-global.el
+++ b/lisp/cedet/semantic/db-global.el
@@ -1,6 +1,6 @@
 ;;; semantic/db-global.el --- Semantic database extensions for GLOBAL
 
-;; Copyright (C) 2002-2006, 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2006, 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: tags
@@ -47,7 +47,7 @@ in a GNU Global supported hierarchy.
 
 Two sanity checks are performed to assure (a) that GNU global program exists
 and (b) that the GNU global program version is compatibility with the database
-version.  If optional NOERROR is nil, then an error may be signalled on version
+version.  If optional NOERROR is nil, then an error may be signaled on version
 mismatch.  If NOERROR is not nil, then no error will be signaled.  Instead
 return value will indicate success or failure with non-nil or nil respective
 values."
diff --git a/lisp/cedet/semantic/db-javascript.el 
b/lisp/cedet/semantic/db-javascript.el
index a15454e..e8a3edc 100644
--- a/lisp/cedet/semantic/db-javascript.el
+++ b/lisp/cedet/semantic/db-javascript.el
@@ -1,6 +1,6 @@
 ;;; semantic/db-javascript.el --- Semantic database extensions for javascript
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Joakim Verona
 
diff --git a/lisp/cedet/semantic/db-mode.el b/lisp/cedet/semantic/db-mode.el
index 73cc7b5..3bd991b 100644
--- a/lisp/cedet/semantic/db-mode.el
+++ b/lisp/cedet/semantic/db-mode.el
@@ -1,6 +1,6 @@
 ;;; semantic/db-mode.el --- Semanticdb Minor Mode
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/db-ref.el b/lisp/cedet/semantic/db-ref.el
index 0ea7f40..a75a73c 100644
--- a/lisp/cedet/semantic/db-ref.el
+++ b/lisp/cedet/semantic/db-ref.el
@@ -1,6 +1,6 @@
 ;;; semantic/db-ref.el --- Handle cross-db file references
 
-;;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/db-typecache.el 
b/lisp/cedet/semantic/db-typecache.el
index 76382a3..8c8cf15 100644
--- a/lisp/cedet/semantic/db-typecache.el
+++ b/lisp/cedet/semantic/db-typecache.el
@@ -1,6 +1,6 @@
 ;;; semantic/db-typecache.el --- Manage Datatypes
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/db.el b/lisp/cedet/semantic/db.el
index 1b3f07a..d9eef32 100644
--- a/lisp/cedet/semantic/db.el
+++ b/lisp/cedet/semantic/db.el
@@ -1,6 +1,6 @@
 ;;; semantic/db.el --- Semantic tag database manager
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: tags
diff --git a/lisp/cedet/semantic/debug.el b/lisp/cedet/semantic/debug.el
index 9834659..5c793e4 100644
--- a/lisp/cedet/semantic/debug.el
+++ b/lisp/cedet/semantic/debug.el
@@ -1,6 +1,6 @@
 ;;; semantic/debug.el --- Language Debugger framework
 
-;; Copyright (C) 2003-2005, 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2005, 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/decorate.el b/lisp/cedet/semantic/decorate.el
index 5529f51..fc00a52 100644
--- a/lisp/cedet/semantic/decorate.el
+++ b/lisp/cedet/semantic/decorate.el
@@ -1,6 +1,6 @@
 ;;; semantic/decorate.el --- Utilities for decorating/highlighting tokens.
 
-;;; Copyright (C) 1999-2003, 2005-2007, 2009-2016 Free Software
+;;; Copyright (C) 1999-2003, 2005-2007, 2009-2017 Free Software
 ;;; Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/semantic/decorate/include.el 
b/lisp/cedet/semantic/decorate/include.el
index 3ea2a48..c7b5eb5 100644
--- a/lisp/cedet/semantic/decorate/include.el
+++ b/lisp/cedet/semantic/decorate/include.el
@@ -1,6 +1,6 @@
 ;;; semantic/decorate/include.el --- Decoration modes for include statements
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/decorate/mode.el 
b/lisp/cedet/semantic/decorate/mode.el
index d4385e1..a749fca 100644
--- a/lisp/cedet/semantic/decorate/mode.el
+++ b/lisp/cedet/semantic/decorate/mode.el
@@ -1,6 +1,6 @@
 ;;; semantic/decorate/mode.el --- Minor mode for decorating tags
 
-;; Copyright (C) 2000-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/dep.el b/lisp/cedet/semantic/dep.el
index e783f5c..8c3ec0e 100644
--- a/lisp/cedet/semantic/dep.el
+++ b/lisp/cedet/semantic/dep.el
@@ -1,6 +1,6 @@
 ;;; semantic/dep.el --- Methods for tracking dependencies (include files)
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/doc.el b/lisp/cedet/semantic/doc.el
index 21f6d2b..c8be665 100644
--- a/lisp/cedet/semantic/doc.el
+++ b/lisp/cedet/semantic/doc.el
@@ -1,6 +1,6 @@
 ;;; semantic/doc.el --- Routines for documentation strings
 
-;; Copyright (C) 1999-2003, 2005, 2008-2016 Free Software Foundation,
+;; Copyright (C) 1999-2003, 2005, 2008-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/semantic/ede-grammar.el 
b/lisp/cedet/semantic/ede-grammar.el
index 60b6fef..d982b6e 100644
--- a/lisp/cedet/semantic/ede-grammar.el
+++ b/lisp/cedet/semantic/ede-grammar.el
@@ -1,6 +1,6 @@
 ;;; semantic/ede-grammar.el --- EDE support for Semantic Grammar Files
 
-;; Copyright (C) 2003-2004, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2004, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: project, make
diff --git a/lisp/cedet/semantic/edit.el b/lisp/cedet/semantic/edit.el
index 43ea658..9c7ae69 100644
--- a/lisp/cedet/semantic/edit.el
+++ b/lisp/cedet/semantic/edit.el
@@ -1,6 +1,6 @@
 ;;; semantic/edit.el --- Edit Management for Semantic
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/find.el b/lisp/cedet/semantic/find.el
index 14fda56..bf8eb9d 100644
--- a/lisp/cedet/semantic/find.el
+++ b/lisp/cedet/semantic/find.el
@@ -1,6 +1,6 @@
 ;;; semantic/find.el --- Search routines for Semantic
 
-;; Copyright (C) 1999-2005, 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2005, 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/format.el b/lisp/cedet/semantic/format.el
index b83cce5..b724429 100644
--- a/lisp/cedet/semantic/format.el
+++ b/lisp/cedet/semantic/format.el
@@ -1,6 +1,6 @@
 ;;; semantic/format.el --- Routines for formatting tags
 
-;; Copyright (C) 1999-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/fw.el b/lisp/cedet/semantic/fw.el
index dafab5a..3884cd0 100644
--- a/lisp/cedet/semantic/fw.el
+++ b/lisp/cedet/semantic/fw.el
@@ -1,6 +1,6 @@
 ;;; semantic/fw.el --- Framework for Semantic
 
-;;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/grammar-wy.el 
b/lisp/cedet/semantic/grammar-wy.el
index d417d1c..9b53708 100644
--- a/lisp/cedet/semantic/grammar-wy.el
+++ b/lisp/cedet/semantic/grammar-wy.el
@@ -1,6 +1,6 @@
 ;;; semantic/grammar-wy.el --- Generated parser support file
 
-;; Copyright (C) 2002-2004, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2004, 2009-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/lisp/cedet/semantic/grammar.el b/lisp/cedet/semantic/grammar.el
index 0a259f0..f57c54a 100644
--- a/lisp/cedet/semantic/grammar.el
+++ b/lisp/cedet/semantic/grammar.el
@@ -1,6 +1,6 @@
 ;;; semantic/grammar.el --- Major mode framework for Semantic grammars
 
-;; Copyright (C) 2002-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: David Ponce <address@hidden>
diff --git a/lisp/cedet/semantic/html.el b/lisp/cedet/semantic/html.el
index 81363c7..7901d6a 100644
--- a/lisp/cedet/semantic/html.el
+++ b/lisp/cedet/semantic/html.el
@@ -1,6 +1,6 @@
 ;;; semantic/html.el --- Semantic details for html files
 
-;; Copyright (C) 2004-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/ia-sb.el b/lisp/cedet/semantic/ia-sb.el
index dd2055d..7901dd5 100644
--- a/lisp/cedet/semantic/ia-sb.el
+++ b/lisp/cedet/semantic/ia-sb.el
@@ -1,6 +1,6 @@
 ;;; semantic/ia-sb.el --- Speedbar analysis display interactor
 
-;;; Copyright (C) 2002-2004, 2006, 2008-2016 Free Software Foundation,
+;;; Copyright (C) 2002-2004, 2006, 2008-2017 Free Software Foundation,
 ;;; Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/semantic/ia.el b/lisp/cedet/semantic/ia.el
index a4dabe6..4696388 100644
--- a/lisp/cedet/semantic/ia.el
+++ b/lisp/cedet/semantic/ia.el
@@ -1,6 +1,6 @@
 ;;; semantic/ia.el --- Interactive Analysis functions
 
-;;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/idle.el b/lisp/cedet/semantic/idle.el
index 5f90262..7877486 100644
--- a/lisp/cedet/semantic/idle.el
+++ b/lisp/cedet/semantic/idle.el
@@ -1,6 +1,6 @@
 ;;; idle.el --- Schedule parsing tasks in idle time
 
-;; Copyright (C) 2003-2006, 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2006, 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/imenu.el b/lisp/cedet/semantic/imenu.el
index cfff253..a521f31 100644
--- a/lisp/cedet/semantic/imenu.el
+++ b/lisp/cedet/semantic/imenu.el
@@ -1,6 +1,6 @@
 ;;; semantic/imenu.el --- Use Semantic as an imenu tag generator
 
-;; Copyright (C) 2000-2005, 2007-2008, 2010-2016 Free Software
+;; Copyright (C) 2000-2005, 2007-2008, 2010-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/cedet/semantic/java.el b/lisp/cedet/semantic/java.el
index 9878831..00f9ee7 100644
--- a/lisp/cedet/semantic/java.el
+++ b/lisp/cedet/semantic/java.el
@@ -1,6 +1,6 @@
 ;;; semantic/java.el --- Semantic functions for Java
 
-;;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: David Ponce <address@hidden>
 
diff --git a/lisp/cedet/semantic/lex-spp.el b/lisp/cedet/semantic/lex-spp.el
index b960e7a..8d6467e 100644
--- a/lisp/cedet/semantic/lex-spp.el
+++ b/lisp/cedet/semantic/lex-spp.el
@@ -1,6 +1,6 @@
 ;;; semantic/lex-spp.el --- Semantic Lexical Pre-processor
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/lex.el b/lisp/cedet/semantic/lex.el
index f8372e6..2e8817e 100644
--- a/lisp/cedet/semantic/lex.el
+++ b/lisp/cedet/semantic/lex.el
@@ -1,6 +1,6 @@
 ;;; semantic/lex.el --- Lexical Analyzer builder
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/mru-bookmark.el 
b/lisp/cedet/semantic/mru-bookmark.el
index 1e15773..067439d 100644
--- a/lisp/cedet/semantic/mru-bookmark.el
+++ b/lisp/cedet/semantic/mru-bookmark.el
@@ -1,6 +1,6 @@
 ;;; semantic/mru-bookmark.el --- Automatic bookmark tracking
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/sb.el b/lisp/cedet/semantic/sb.el
index a069550..41fe885 100644
--- a/lisp/cedet/semantic/sb.el
+++ b/lisp/cedet/semantic/sb.el
@@ -1,6 +1,6 @@
 ;;; semantic/sb.el --- Semantic tag display for speedbar
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/scope.el b/lisp/cedet/semantic/scope.el
index ddef510..9bade56 100644
--- a/lisp/cedet/semantic/scope.el
+++ b/lisp/cedet/semantic/scope.el
@@ -1,6 +1,6 @@
 ;;; semantic/scope.el --- Analyzer Scope Calculations
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/senator.el b/lisp/cedet/semantic/senator.el
index 38abc9e..407bb05 100644
--- a/lisp/cedet/semantic/senator.el
+++ b/lisp/cedet/semantic/senator.el
@@ -1,6 +1,6 @@
 ;;; semantic/senator.el --- SEmantic NAvigaTOR
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/cedet/semantic/sort.el b/lisp/cedet/semantic/sort.el
index 6fc6e01..e77b64f 100644
--- a/lisp/cedet/semantic/sort.el
+++ b/lisp/cedet/semantic/sort.el
@@ -1,6 +1,6 @@
 ;;; semantic/sort.el --- Utilities for sorting and re-arranging tag tables.
 
-;;; Copyright (C) 1999-2005, 2007-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 1999-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/symref.el b/lisp/cedet/semantic/symref.el
index 854b72f..a16672e 100644
--- a/lisp/cedet/semantic/symref.el
+++ b/lisp/cedet/semantic/symref.el
@@ -1,6 +1,6 @@
 ;;; semantic/symref.el --- Symbol Reference API
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/symref/cscope.el 
b/lisp/cedet/semantic/symref/cscope.el
index 3abd8b3..181e399 100644
--- a/lisp/cedet/semantic/symref/cscope.el
+++ b/lisp/cedet/semantic/symref/cscope.el
@@ -1,6 +1,6 @@
 ;;; semantic/symref/cscope.el --- Semantic-symref support via cscope.
 
-;;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/symref/filter.el 
b/lisp/cedet/semantic/symref/filter.el
index 81cef98..e386033 100644
--- a/lisp/cedet/semantic/symref/filter.el
+++ b/lisp/cedet/semantic/symref/filter.el
@@ -1,6 +1,6 @@
 ;;; semantic/symref/filter.el --- Filter symbol reference hits for accuracy.
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/symref/global.el 
b/lisp/cedet/semantic/symref/global.el
index a33427e..e91ecf0 100644
--- a/lisp/cedet/semantic/symref/global.el
+++ b/lisp/cedet/semantic/symref/global.el
@@ -1,6 +1,6 @@
 ;;; semantic/symref/global.el --- Use GNU Global for symbol references
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/symref/grep.el 
b/lisp/cedet/semantic/symref/grep.el
index b232e0f..42dc40c 100644
--- a/lisp/cedet/semantic/symref/grep.el
+++ b/lisp/cedet/semantic/symref/grep.el
@@ -1,6 +1,6 @@
 ;;; semantic/symref/grep.el --- Symref implementation using find/grep
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/symref/idutils.el 
b/lisp/cedet/semantic/symref/idutils.el
index db3e9a0..3c94f01 100644
--- a/lisp/cedet/semantic/symref/idutils.el
+++ b/lisp/cedet/semantic/symref/idutils.el
@@ -1,6 +1,6 @@
 ;;; semantic/symref/idutils.el --- Symref implementation for idutils
 
-;;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/symref/list.el 
b/lisp/cedet/semantic/symref/list.el
index fe16443..e1a789d 100644
--- a/lisp/cedet/semantic/symref/list.el
+++ b/lisp/cedet/semantic/symref/list.el
@@ -1,6 +1,6 @@
 ;;; semantic/symref/list.el --- Symref Output List UI.
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/tag-file.el b/lisp/cedet/semantic/tag-file.el
index ce7b139..ac11dbe 100644
--- a/lisp/cedet/semantic/tag-file.el
+++ b/lisp/cedet/semantic/tag-file.el
@@ -1,6 +1,6 @@
 ;;; semantic/tag-file.el --- Routines that find files based on tags.
 
-;; Copyright (C) 1999-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/tag-ls.el b/lisp/cedet/semantic/tag-ls.el
index 4647060..3a66fc7 100644
--- a/lisp/cedet/semantic/tag-ls.el
+++ b/lisp/cedet/semantic/tag-ls.el
@@ -1,6 +1,6 @@
 ;;; semantic/tag-ls.el --- Language Specific override functions for tags
 
-;; Copyright (C) 1999-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/tag-write.el b/lisp/cedet/semantic/tag-write.el
index 38dafd5..76a1d79 100644
--- a/lisp/cedet/semantic/tag-write.el
+++ b/lisp/cedet/semantic/tag-write.el
@@ -1,6 +1,6 @@
 ;;; semantic/tag-write.el --- Write tags to a text stream
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/tag.el b/lisp/cedet/semantic/tag.el
index 9664227..6b2a495 100644
--- a/lisp/cedet/semantic/tag.el
+++ b/lisp/cedet/semantic/tag.el
@@ -1,6 +1,6 @@
 ;;; semantic/tag.el --- tag creation and access
 
-;; Copyright (C) 1999-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/texi.el b/lisp/cedet/semantic/texi.el
index cbb7705..79f8798 100644
--- a/lisp/cedet/semantic/texi.el
+++ b/lisp/cedet/semantic/texi.el
@@ -1,6 +1,6 @@
 ;;; semantic/texi.el --- Semantic details for Texinfo files
 
-;; Copyright (C) 2001-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/semantic/util-modes.el 
b/lisp/cedet/semantic/util-modes.el
index 4f7f051..70f3a34 100644
--- a/lisp/cedet/semantic/util-modes.el
+++ b/lisp/cedet/semantic/util-modes.el
@@ -1,6 +1,6 @@
 ;;; semantic/util-modes.el --- Semantic minor modes
 
-;; Copyright (C) 2000-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Authors: Eric M. Ludlam <address@hidden>
 ;;          David Ponce <address@hidden>
diff --git a/lisp/cedet/semantic/util.el b/lisp/cedet/semantic/util.el
index 2b40e94..f8f12ec 100644
--- a/lisp/cedet/semantic/util.el
+++ b/lisp/cedet/semantic/util.el
@@ -1,6 +1,6 @@
 ;;; semantic/util.el --- Utilities for use with semantic tag tables
 
-;;; Copyright (C) 1999-2005, 2007-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 1999-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/wisent.el b/lisp/cedet/semantic/wisent.el
index d0632f1..90a863b 100644
--- a/lisp/cedet/semantic/wisent.el
+++ b/lisp/cedet/semantic/wisent.el
@@ -1,6 +1,6 @@
 ;;; semantic/wisent.el --- Wisent - Semantic gateway
 
-;; Copyright (C) 2001-2007, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2007, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: David Ponce <address@hidden>
diff --git a/lisp/cedet/semantic/wisent/comp.el 
b/lisp/cedet/semantic/wisent/comp.el
index 3e46f35..cb19b1b 100644
--- a/lisp/cedet/semantic/wisent/comp.el
+++ b/lisp/cedet/semantic/wisent/comp.el
@@ -1,6 +1,6 @@
 ;;; semantic/wisent/comp.el --- GNU Bison for Emacs - Grammar compiler
 
-;; Copyright (C) 1984, 1986, 1989, 1992, 1995, 2000-2007, 2009-2016 Free
+;; Copyright (C) 1984, 1986, 1989, 1992, 1995, 2000-2007, 2009-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Author: David Ponce <address@hidden>
diff --git a/lisp/cedet/semantic/wisent/grammar.el 
b/lisp/cedet/semantic/wisent/grammar.el
index 3cae26e..d0dc3e7 100644
--- a/lisp/cedet/semantic/wisent/grammar.el
+++ b/lisp/cedet/semantic/wisent/grammar.el
@@ -1,6 +1,6 @@
 ;;; semantic/wisent/grammar.el --- Wisent's input grammar mode
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: David Ponce <address@hidden>
diff --git a/lisp/cedet/semantic/wisent/java-tags.el 
b/lisp/cedet/semantic/wisent/java-tags.el
index e5f3815..9deb997 100644
--- a/lisp/cedet/semantic/wisent/java-tags.el
+++ b/lisp/cedet/semantic/wisent/java-tags.el
@@ -1,6 +1,6 @@
 ;;; semantic/wisent/java-tags.el --- Java LALR parser for Emacs
 
-;; Copyright (C) 2001-2006, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2006, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: David Ponce <address@hidden>
diff --git a/lisp/cedet/semantic/wisent/javascript.el 
b/lisp/cedet/semantic/wisent/javascript.el
index d644435..cf1911b 100644
--- a/lisp/cedet/semantic/wisent/javascript.el
+++ b/lisp/cedet/semantic/wisent/javascript.el
@@ -1,6 +1,6 @@
 ;;; semantic/wisent/javascript.el --- javascript parser support
 
-;; Copyright (C) 2005, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Ludlam <address@hidden>
 ;; Keywords: syntax
diff --git a/lisp/cedet/semantic/wisent/python.el 
b/lisp/cedet/semantic/wisent/python.el
index 939086b..4e7ee3d 100644
--- a/lisp/cedet/semantic/wisent/python.el
+++ b/lisp/cedet/semantic/wisent/python.el
@@ -1,6 +1,6 @@
 ;;; wisent-python.el --- Semantic support for Python
 
-;; Copyright (C) 2002, 2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Richard Kim  <address@hidden>
 ;; Maintainer: Richard Kim  <address@hidden>
diff --git a/lisp/cedet/semantic/wisent/wisent.el 
b/lisp/cedet/semantic/wisent/wisent.el
index 2b22573..36dff01 100644
--- a/lisp/cedet/semantic/wisent/wisent.el
+++ b/lisp/cedet/semantic/wisent/wisent.el
@@ -1,6 +1,6 @@
 ;;; semantic/wisent/wisent.el --- GNU Bison for Emacs - Runtime
 
-;;; Copyright (C) 2002-2007, 2009-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2002-2007, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: David Ponce <address@hidden>
diff --git a/lisp/cedet/srecode.el b/lisp/cedet/srecode.el
index bd68d35..e824062 100644
--- a/lisp/cedet/srecode.el
+++ b/lisp/cedet/srecode.el
@@ -1,6 +1,6 @@
 ;;; srecode.el --- Semantic buffer evaluator.
 
-;;; Copyright (C) 2005, 2007-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: codegeneration
diff --git a/lisp/cedet/srecode/args.el b/lisp/cedet/srecode/args.el
index 93cb88e..facf96e 100644
--- a/lisp/cedet/srecode/args.el
+++ b/lisp/cedet/srecode/args.el
@@ -1,6 +1,6 @@
 ;;; srecode/args.el --- Provide some simple template arguments
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/compile.el b/lisp/cedet/srecode/compile.el
index 6f4c7db..1b6cd70 100644
--- a/lisp/cedet/srecode/compile.el
+++ b/lisp/cedet/srecode/compile.el
@@ -1,6 +1,6 @@
 ;;; srecode/compile --- Compilation of srecode template files.
 
-;; Copyright (C) 2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: codegeneration
diff --git a/lisp/cedet/srecode/cpp.el b/lisp/cedet/srecode/cpp.el
index cd41867..8f9c083 100644
--- a/lisp/cedet/srecode/cpp.el
+++ b/lisp/cedet/srecode/cpp.el
@@ -1,6 +1,6 @@
 ;;; srecode/cpp.el --- C++ specific handlers for Semantic Recoder
 
-;; Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;;         Jan Moringen <address@hidden>
diff --git a/lisp/cedet/srecode/ctxt.el b/lisp/cedet/srecode/ctxt.el
index 5c09df3..28dbd36 100644
--- a/lisp/cedet/srecode/ctxt.el
+++ b/lisp/cedet/srecode/ctxt.el
@@ -1,6 +1,6 @@
 ;;; srecode/ctxt.el --- Derive a context from the source buffer.
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/dictionary.el b/lisp/cedet/srecode/dictionary.el
index eeb6fc4..2844c1b 100644
--- a/lisp/cedet/srecode/dictionary.el
+++ b/lisp/cedet/srecode/dictionary.el
@@ -1,6 +1,6 @@
 ;;; srecode/dictionary.el --- Dictionary code for the semantic recoder.
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/document.el b/lisp/cedet/srecode/document.el
index 6483fd1..babd177 100644
--- a/lisp/cedet/srecode/document.el
+++ b/lisp/cedet/srecode/document.el
@@ -1,6 +1,6 @@
 ;;; srecode/document.el --- Documentation (comment) generation
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/el.el b/lisp/cedet/srecode/el.el
index 87a05f4..526a2a2 100644
--- a/lisp/cedet/srecode/el.el
+++ b/lisp/cedet/srecode/el.el
@@ -1,6 +1,6 @@
 ;;; srecode/el.el --- Emacs Lisp specific arguments
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/expandproto.el 
b/lisp/cedet/srecode/expandproto.el
index 3b18cfe..74742f6 100644
--- a/lisp/cedet/srecode/expandproto.el
+++ b/lisp/cedet/srecode/expandproto.el
@@ -1,6 +1,6 @@
 ;;; srecode/expandproto.el --- Expanding prototypes.
 
-;; Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/extract.el b/lisp/cedet/srecode/extract.el
index 8d9d0d5..3477185 100644
--- a/lisp/cedet/srecode/extract.el
+++ b/lisp/cedet/srecode/extract.el
@@ -1,6 +1,6 @@
 ;;; srecode/extract.el --- Extract content from previously inserted macro.
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/fields.el b/lisp/cedet/srecode/fields.el
index e4b54b8..0bef854 100644
--- a/lisp/cedet/srecode/fields.el
+++ b/lisp/cedet/srecode/fields.el
@@ -1,6 +1,6 @@
 ;;; srecode/fields.el --- Handling type-in fields in a buffer.
 ;;
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/filters.el b/lisp/cedet/srecode/filters.el
index dc8be1e..7b9b979 100644
--- a/lisp/cedet/srecode/filters.el
+++ b/lisp/cedet/srecode/filters.el
@@ -1,6 +1,6 @@
 ;;; srecode/filters.el --- Filters for use in template variables.
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/find.el b/lisp/cedet/srecode/find.el
index 4c0b506..913013c 100644
--- a/lisp/cedet/srecode/find.el
+++ b/lisp/cedet/srecode/find.el
@@ -1,6 +1,6 @@
 ;;;; srecode/find.el --- Tools for finding templates in the database.
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/getset.el b/lisp/cedet/srecode/getset.el
index 4c9340d..0b32af2 100644
--- a/lisp/cedet/srecode/getset.el
+++ b/lisp/cedet/srecode/getset.el
@@ -1,6 +1,6 @@
 ;;; srecode/getset.el --- Package for inserting new get/set methods.
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/insert.el b/lisp/cedet/srecode/insert.el
index 66c4b7d..c582e32 100644
--- a/lisp/cedet/srecode/insert.el
+++ b/lisp/cedet/srecode/insert.el
@@ -1,6 +1,6 @@
 ;;; srecode/insert.el --- Insert srecode templates to an output stream.
 
-;; Copyright (C) 2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/java.el b/lisp/cedet/srecode/java.el
index f6b12b3..30734f2 100644
--- a/lisp/cedet/srecode/java.el
+++ b/lisp/cedet/srecode/java.el
@@ -1,6 +1,6 @@
 ;;; srecode/java.el --- Srecode Java support
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/map.el b/lisp/cedet/srecode/map.el
index 0d681ba..d5b4c5f 100644
--- a/lisp/cedet/srecode/map.el
+++ b/lisp/cedet/srecode/map.el
@@ -1,6 +1,6 @@
 ;;; srecode/map.el --- Manage a template file map
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/mode.el b/lisp/cedet/srecode/mode.el
index 9754b8c..566ab5d 100644
--- a/lisp/cedet/srecode/mode.el
+++ b/lisp/cedet/srecode/mode.el
@@ -1,6 +1,6 @@
 ;;; srecode/mode.el --- Minor mode for managing and using SRecode templates
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/semantic.el b/lisp/cedet/srecode/semantic.el
index a76ac40..7e24a32 100644
--- a/lisp/cedet/srecode/semantic.el
+++ b/lisp/cedet/srecode/semantic.el
@@ -1,6 +1,6 @@
 ;;; srecode/semantic.el --- Semantic specific extensions to SRecode.
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/srt-mode.el b/lisp/cedet/srecode/srt-mode.el
index be252c2..d3ce72a 100644
--- a/lisp/cedet/srecode/srt-mode.el
+++ b/lisp/cedet/srecode/srt-mode.el
@@ -1,6 +1,6 @@
 ;;; srecode/srt-mode.el --- Major mode for writing screcode macros
 
-;; Copyright (C) 2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/lisp/cedet/srecode/srt.el b/lisp/cedet/srecode/srt.el
index 7d4e289..070261c 100644
--- a/lisp/cedet/srecode/srt.el
+++ b/lisp/cedet/srecode/srt.el
@@ -1,6 +1,6 @@
 ;;; srecode/srt.el --- argument handlers for SRT files
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/table.el b/lisp/cedet/srecode/table.el
index 4c2fb36..98e0c2d 100644
--- a/lisp/cedet/srecode/table.el
+++ b/lisp/cedet/srecode/table.el
@@ -1,6 +1,6 @@
 ;;; srecode/table.el --- Tables of Semantic Recoders
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/cedet/srecode/template.el b/lisp/cedet/srecode/template.el
index d9c688a..9551077 100644
--- a/lisp/cedet/srecode/template.el
+++ b/lisp/cedet/srecode/template.el
@@ -1,6 +1,6 @@
 ;;; srecode/template.el --- SRecoder template language parser support.
 
-;; Copyright (C) 2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/lisp/cedet/srecode/texi.el b/lisp/cedet/srecode/texi.el
index 104034f..5cc57be 100644
--- a/lisp/cedet/srecode/texi.el
+++ b/lisp/cedet/srecode/texi.el
@@ -1,6 +1,6 @@
 ;;; srecode/texi.el --- Srecode texinfo support.
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/lisp/char-fold.el b/lisp/char-fold.el
index 68bea29..ea44863 100644
--- a/lisp/char-fold.el
+++ b/lisp/char-fold.el
@@ -1,6 +1,6 @@
 ;;; char-fold.el --- match unicode to similar ASCII -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: matching
diff --git a/lisp/chistory.el b/lisp/chistory.el
index be53937..8b6f3d1 100644
--- a/lisp/chistory.el
+++ b/lisp/chistory.el
@@ -1,6 +1,6 @@
 ;;; chistory.el --- list command history
 
-;; Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: K. Shane Hartman
 ;; Maintainer: address@hidden
diff --git a/lisp/cmuscheme.el b/lisp/cmuscheme.el
index f61e720..0a41a40 100644
--- a/lisp/cmuscheme.el
+++ b/lisp/cmuscheme.el
@@ -1,6 +1,6 @@
 ;;; cmuscheme.el --- Scheme process in a buffer. Adapted from tea.el
 
-;; Copyright (C) 1988, 1994, 1997, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1988, 1994, 1997, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Olin Shivers <address@hidden>
diff --git a/lisp/color.el b/lisp/color.el
index ae42987..32c8127 100644
--- a/lisp/color.el
+++ b/lisp/color.el
@@ -1,6 +1,6 @@
 ;;; color.el --- Color manipulation library -*- lexical-binding:t -*-
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Authors: Julien Danjou <address@hidden>
 ;;          Drew Adams <address@hidden>
diff --git a/lisp/comint.el b/lisp/comint.el
index b9c65b0..c82c3d0 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -1,6 +1,6 @@
 ;;; comint.el --- general command interpreter in a window stuff -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1988, 1990, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1990, 1992-2017 Free Software Foundation, Inc.
 
 ;; Author: Olin Shivers <address@hidden>
 ;;     Simon Marshall <address@hidden>
@@ -1879,6 +1879,7 @@ Similarly for Soar, Scheme, etc."
           (let ((echo-len (- comint-last-input-end
                              comint-last-input-start)))
             ;; Wait for all input to be echoed:
+            
             (while (and (> (+ comint-last-input-end echo-len)
                            (point-max))
                         (accept-process-output proc)
@@ -1890,6 +1891,7 @@ Similarly for Soar, Scheme, etc."
                           ;; (+ comint-last-input-start
                           ;;    (- (point-max) comint-last-input-end))
                           nil comint-last-input-end (point-max)))))
+            
             (if (and
                  (<= (+ comint-last-input-end echo-len)
                      (point-max))
@@ -1901,6 +1903,7 @@ Similarly for Soar, Scheme, etc."
                 ;; Certain parts of the text to be deleted may have
                 ;; been mistaken for prompts.  We have to prevent
                 ;; problems when `comint-prompt-read-only' is non-nil.
+                
                 (let ((inhibit-read-only t))
                   (delete-region comint-last-input-end
                                  (+ comint-last-input-end echo-len))
@@ -1909,6 +1912,7 @@ Similarly for Soar, Scheme, etc."
                       (goto-char comint-last-input-end)
                       (comint-update-fence)))))))
 
+        
         ;; This used to call comint-output-filter-functions,
         ;; but that scrolled the buffer in undesirable ways.
         (run-hook-with-args 'comint-output-filter-functions "")))))
@@ -2239,10 +2243,7 @@ the current line with any initial string matching the 
regexp
              (null (get-char-property (setq bof (field-beginning)) 'field)))
        (field-string-no-properties bof)
       (comint-bol)
-      (buffer-substring-no-properties (point)
-                                     (if comint-use-prompt-regexp
-                                         (line-end-position)
-                                       (field-end))))))
+      (buffer-substring-no-properties (point) (line-end-position)))))
 
 (defun comint-copy-old-input ()
   "Insert after prompt old input at point as new input to be edited.
@@ -2669,7 +2670,7 @@ This command is like `M-.' in bash."
   (set-marker comint-insert-previous-argument-last-start-pos (point))
   ;; Insert the argument.
   (let ((input-string (comint-previous-input-string 0)))
-    (when (string-match "[ \t\n]*&" input-string)
+    (when (string-match "[ \t\n]*&[ \t\n]*$" input-string)
       ;; strip terminating '&'
       (setq input-string (substring input-string 0 (match-beginning 0))))
     (insert (comint-arguments input-string index index)))
diff --git a/lisp/completion.el b/lisp/completion.el
index 093740d..d56ea93 100644
--- a/lisp/completion.el
+++ b/lisp/completion.el
@@ -1,6 +1,6 @@
 ;;; completion.el --- dynamic word-completion code
 
-;; Copyright (C) 1990, 1993, 1995, 1997, 2001-2016 Free Software
+;; Copyright (C) 1990, 1993, 1995, 1997, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/composite.el b/lisp/composite.el
index 53013c1..a3e0001 100644
--- a/lisp/composite.el
+++ b/lisp/composite.el
@@ -1,6 +1,6 @@
 ;;; composite.el --- support character composition
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
 ;;   2008, 2009, 2010, 2011
diff --git a/lisp/cus-dep.el b/lisp/cus-dep.el
index 90da4a8..641bf4f 100644
--- a/lisp/cus-dep.el
+++ b/lisp/cus-dep.el
@@ -1,6 +1,6 @@
 ;;; cus-dep.el --- find customization dependencies
 ;;
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <address@hidden>
 ;; Keywords: internal
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index f15161a..2b86051 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -1,6 +1,6 @@
 ;;; cus-edit.el --- tools for customizing Emacs and Lisp packages -*- 
lexical-binding:t -*-
 ;;
-;; Copyright (C) 1996-1997, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1997, 1999-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/cus-face.el b/lisp/cus-face.el
index 6c384f7..aa5ecd2 100644
--- a/lisp/cus-face.el
+++ b/lisp/cus-face.el
@@ -1,6 +1,6 @@
 ;;; cus-face.el --- customization support for faces
 ;;
-;; Copyright (C) 1996-1997, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1997, 1999-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <address@hidden>
 ;; Keywords: help, faces
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index 08dfbdf..a790419 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -1,6 +1,6 @@
 ;;; cus-start.el --- define customization properties of builtins  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1997, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <address@hidden>
 ;; Keywords: internal
diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el
index 5a20b8e..c5682ad 100644
--- a/lisp/cus-theme.el
+++ b/lisp/cus-theme.el
@@ -1,6 +1,6 @@
 ;;; cus-theme.el -- custom theme creation user interface
 ;;
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Alex Schroeder <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/custom.el b/lisp/custom.el
index 056ca34..70b6839 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -1,6 +1,6 @@
 ;;; custom.el --- tools for declaring and initializing options
 ;;
-;; Copyright (C) 1996-1997, 1999, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1996-1997, 1999, 2001-2017 Free Software Foundation,
 ;; Inc.
 ;;
 ;; Author: Per Abrahamsen <address@hidden>
diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el
index 438eda3..3550d75 100644
--- a/lisp/dabbrev.el
+++ b/lisp/dabbrev.el
@@ -1,6 +1,6 @@
 ;;; dabbrev.el --- dynamic abbreviation package  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1985-1986, 1992, 1994, 1996-1997, 2000-2016 Free
+;; Copyright (C) 1985-1986, 1992, 1994, 1996-1997, 2000-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Author: Don Morrison
diff --git a/lisp/delim-col.el b/lisp/delim-col.el
index dc637d5..db89206 100644
--- a/lisp/delim-col.el
+++ b/lisp/delim-col.el
@@ -1,6 +1,6 @@
 ;;; delim-col.el --- prettify all columns in a region or rectangle
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;; Maintainer: Vinicius Jose Latorre <address@hidden>
diff --git a/lisp/delsel.el b/lisp/delsel.el
index da4223f..d5f4736 100644
--- a/lisp/delsel.el
+++ b/lisp/delsel.el
@@ -1,6 +1,6 @@
 ;;; delsel.el --- delete selection if you insert  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1992, 1997-1998, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1992, 1997-1998, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Matthieu Devin <address@hidden>
diff --git a/lisp/descr-text.el b/lisp/descr-text.el
index 6c7983a..3971dbb 100644
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -1,6 +1,6 @@
 ;;; descr-text.el --- describe text mode  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1994-1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Boris Goldowsky <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 9fb8393..39dc92f 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -1,6 +1,6 @@
 ;;; desktop.el --- save partial status of Emacs when killed -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1993-1995, 1997, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1993-1995, 1997, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Morten Welinder <address@hidden>
@@ -380,7 +380,10 @@ modes are restored automatically; they should not be 
listed here."
   :group 'desktop)
 
 (defcustom desktop-buffers-not-to-save "\\` "
-  "Regexp identifying buffers that are to be excluded from saving."
+  "Regexp identifying buffers that are to be excluded from saving.
+This is in effect only for buffers that don't visit files.
+To exclude buffers that visit files, use `desktop-files-not-to-save'
+or `desktop-modes-not-to-save'."
   :type '(choice (const :tag "None" nil)
                 regexp)
   :version "24.4"                  ; skip invisible temporary buffers
@@ -1158,13 +1161,13 @@ This function also sets `desktop-dirname' to nil."
 ;; ----------------------------------------------------------------------------
 (defun desktop-restoring-frameset-p ()
   "True if calling `desktop-restore-frameset' will actually restore it."
-  (and desktop-restore-frames desktop-saved-frameset t))
+  (and desktop-restore-frames desktop-saved-frameset (display-graphic-p) t))
 
 (defun desktop-restore-frameset ()
   "Restore the state of a set of frames.
 This function depends on the value of `desktop-saved-frameset'
 being set (usually, by reading it from the desktop)."
-  (when (and (display-graphic-p) (desktop-restoring-frameset-p))
+  (when (desktop-restoring-frameset-p)
     (frameset-restore desktop-saved-frameset
                      :reuse-frames (eq desktop-restore-reuses-frames t)
                      :cleanup-frames (not (eq desktop-restore-reuses-frames 
'keep))
diff --git a/lisp/dframe.el b/lisp/dframe.el
index b6605d1..f60fffe 100644
--- a/lisp/dframe.el
+++ b/lisp/dframe.el
@@ -1,6 +1,6 @@
 ;;; dframe --- dedicate frame support modes  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: file, tags, tools
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index f94e053..caa3b45 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1,6 +1,6 @@
 ;;; dired-aux.el --- less commonly used parts of dired
 
-;; Copyright (C) 1985-1986, 1992, 1994, 1998, 2000-2016 Free Software
+;; Copyright (C) 1985-1986, 1992, 1994, 1998, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Sebastian Kremer <address@hidden>.
@@ -987,6 +987,8 @@ corresponding command.
 Within CMD, %i denotes the input file(s), and %o denotes the
 output file. %i path(s) are relative, while %o is absolute.")
 
+(declare-function format-spec "format-spec.el" (format specification))
+
 ;;;###autoload
 (defun dired-do-compress-to ()
   "Compress selected files and directories to an archive.
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index bddf1eb..86c9537 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -1,6 +1,6 @@
 ;;; dired-x.el --- extra Dired functionality  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1993-1994, 1997, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1993-1994, 1997, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Sebastian Kremer <address@hidden>
diff --git a/lisp/dired.el b/lisp/dired.el
index 4680604..350f6a7 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1,6 +1,6 @@
 ;;; dired.el --- directory-browsing commands -*- lexical-binding: t -*-
 
-;; Copyright (C) 1985-1986, 1992-1997, 2000-2016 Free Software
+;; Copyright (C) 1985-1986, 1992-1997, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Sebastian Kremer <address@hidden>
diff --git a/lisp/dirtrack.el b/lisp/dirtrack.el
index f0ef98c..6004c7c 100644
--- a/lisp/dirtrack.el
+++ b/lisp/dirtrack.el
@@ -1,6 +1,6 @@
 ;;; dirtrack.el --- Directory Tracking by watching the prompt
 
-;; Copyright (C) 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Peter Breton <address@hidden>
 ;; Created: Sun Nov 17 1996
diff --git a/lisp/disp-table.el b/lisp/disp-table.el
index fe18add..59cc8d6 100644
--- a/lisp/disp-table.el
+++ b/lisp/disp-table.el
@@ -1,6 +1,6 @@
 ;;; disp-table.el --- functions for dealing with char tables
 
-;; Copyright (C) 1987, 1994-1995, 1999, 2001-2016 Free Software
+;; Copyright (C) 1987, 1994-1995, 1999, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Erik Naggum <address@hidden>
diff --git a/lisp/dnd.el b/lisp/dnd.el
index b715eec..3ae5e4f 100644
--- a/lisp/dnd.el
+++ b/lisp/dnd.el
@@ -1,6 +1,6 @@
 ;;; dnd.el --- drag and drop support
 
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Jan Djärv <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index 223565c..2c11cd2 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -1,6 +1,6 @@
 ;;; doc-view.el --- View PDF/PostScript/DVI files in Emacs -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Tassilo Horn <address@hidden>
 ;; Maintainer: Tassilo Horn <address@hidden>
diff --git a/lisp/dom.el b/lisp/dom.el
index 9f5e177..4d0d423 100644
--- a/lisp/dom.el
+++ b/lisp/dom.el
@@ -1,6 +1,6 @@
 ;;; dom.el --- XML/HTML (etc.) DOM manipulation and searching functions -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: xml, html
diff --git a/lisp/dos-fns.el b/lisp/dos-fns.el
index 7188ae0..e1d118a 100644
--- a/lisp/dos-fns.el
+++ b/lisp/dos-fns.el
@@ -1,6 +1,6 @@
 ;;; dos-fns.el --- MS-Dos specific functions
 
-;; Copyright (C) 1991, 1993, 1995-1996, 2001-2016 Free Software
+;; Copyright (C) 1991, 1993, 1995-1996, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: Morten Welinder <address@hidden>
diff --git a/lisp/dos-vars.el b/lisp/dos-vars.el
index 866c784..d552d51 100644
--- a/lisp/dos-vars.el
+++ b/lisp/dos-vars.el
@@ -1,6 +1,6 @@
 ;;; dos-vars.el --- MS-Dos specific user options
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: internal
diff --git a/lisp/dos-w32.el b/lisp/dos-w32.el
index 192cdd8..ff5310e 100644
--- a/lisp/dos-w32.el
+++ b/lisp/dos-w32.el
@@ -1,6 +1,6 @@
 ;; dos-w32.el --- Functions shared among MS-DOS and W32 (NT/95) platforms
 
-;; Copyright (C) 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: Geoff Voelker <address@hidden>
 ;; Keywords: internal
diff --git a/lisp/double.el b/lisp/double.el
index d6ccff8..ab9e23b 100644
--- a/lisp/double.el
+++ b/lisp/double.el
@@ -1,6 +1,6 @@
 ;;; double.el --- support for keyboard remapping with double clicking
 
-;; Copyright (C) 1994, 1997-1998, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1994, 1997-1998, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Per Abrahamsen <address@hidden>
diff --git a/lisp/dynamic-setting.el b/lisp/dynamic-setting.el
index 6021a3b..3d80f9d 100644
--- a/lisp/dynamic-setting.el
+++ b/lisp/dynamic-setting.el
@@ -1,6 +1,6 @@
 ;;; dynamic-setting.el --- Support dynamic changes
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Jan Djärv <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/ebuff-menu.el b/lisp/ebuff-menu.el
index 74a9dd5..b399be5 100644
--- a/lisp/ebuff-menu.el
+++ b/lisp/ebuff-menu.el
@@ -1,6 +1,6 @@
 ;;; ebuff-menu.el --- electric-buffer-list mode
 
-;; Copyright (C) 1985-1986, 1994, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1985-1986, 1994, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Richard Mlynarik <address@hidden>
diff --git a/lisp/echistory.el b/lisp/echistory.el
index 644c5f4..2146faa 100644
--- a/lisp/echistory.el
+++ b/lisp/echistory.el
@@ -1,6 +1,6 @@
 ;;; echistory.el --- Electric Command History Mode
 
-;; Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: K. Shane Hartman
 ;; Maintainer: address@hidden
diff --git a/lisp/ecomplete.el b/lisp/ecomplete.el
index b9f4b1a..70277fa 100644
--- a/lisp/ecomplete.el
+++ b/lisp/ecomplete.el
@@ -1,6 +1,6 @@
 ;;; ecomplete.el --- electric completion of addresses and the like
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: mail
diff --git a/lisp/edmacro.el b/lisp/edmacro.el
index a1750d4..5fefc31 100644
--- a/lisp/edmacro.el
+++ b/lisp/edmacro.el
@@ -1,6 +1,6 @@
 ;;; edmacro.el --- keyboard macro editor
 
-;; Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Gillespie <address@hidden>
 ;; Maintainer: Dave Gillespie <address@hidden>
diff --git a/lisp/ehelp.el b/lisp/ehelp.el
index e494821..a3719f6 100644
--- a/lisp/ehelp.el
+++ b/lisp/ehelp.el
@@ -1,6 +1,6 @@
 ;;; ehelp.el --- bindings for electric-help mode -*- lexical-binding: t -*-
 
-;; Copyright (C) 1986, 1995, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1995, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Richard Mlynarik
 ;; (according to ack.texi and authors.el)
diff --git a/lisp/elec-pair.el b/lisp/elec-pair.el
index 47d44b1..87e82e2 100644
--- a/lisp/elec-pair.el
+++ b/lisp/elec-pair.el
@@ -1,6 +1,6 @@
 ;;; elec-pair.el --- Automatic parenthesis pairing  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: João Távora <address@hidden>
 
diff --git a/lisp/electric.el b/lisp/electric.el
index 3e48737..4078ef8 100644
--- a/lisp/electric.el
+++ b/lisp/electric.el
@@ -1,6 +1,6 @@
 ;;; electric.el --- window maker and Command loop for `electric' modes
 
-;; Copyright (C) 1985-1986, 1995, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1985-1986, 1995, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: K. Shane Hartman
diff --git a/lisp/elide-head.el b/lisp/elide-head.el
index 917e813..3904edd 100644
--- a/lisp/elide-head.el
+++ b/lisp/elide-head.el
@@ -1,6 +1,6 @@
 ;;; elide-head.el --- hide headers in files
 
-;; Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Keywords: outlines tools
diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el
index b621ac5..3342bea 100644
--- a/lisp/emacs-lisp/advice.el
+++ b/lisp/emacs-lisp/advice.el
@@ -1,6 +1,6 @@
 ;;; advice.el --- An overloading mechanism for Emacs Lisp functions  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1993-1994, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Hans Chalupsky <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 1292ea9..ca1d751 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -1,6 +1,6 @@
 ;; autoload.el --- maintain autoloads in loaddefs.el  -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 1991-1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991-1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Roland McGrath <address@hidden>
 ;; Keywords: maint
diff --git a/lisp/emacs-lisp/avl-tree.el b/lisp/emacs-lisp/avl-tree.el
index 707d1cb..17f1ffa 100644
--- a/lisp/emacs-lisp/avl-tree.el
+++ b/lisp/emacs-lisp/avl-tree.el
@@ -1,6 +1,6 @@
 ;;; avl-tree.el --- balanced binary trees, AVL-trees  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1995, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Per Cederqvist <address@hidden>
 ;;         Inge Wallin <address@hidden>
diff --git a/lisp/emacs-lisp/backquote.el b/lisp/emacs-lisp/backquote.el
index c31f25c..bb877dd 100644
--- a/lisp/emacs-lisp/backquote.el
+++ b/lisp/emacs-lisp/backquote.el
@@ -1,6 +1,6 @@
 ;;; backquote.el --- implement the ` Lisp construct
 
-;; Copyright (C) 1990, 1992, 1994, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1990, 1992, 1994, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Rick Sladkey <address@hidden>
@@ -247,4 +247,14 @@ LEVEL is only used internally and indicates the nesting 
level:
        tail))
      (t (cons 'list heads)))))
 
+
+;; Give `,' and `,@' documentation strings which can be examined by C-h f.
+(put '\, 'function-documentation
+     "See `\\=`' (also `pcase') for the usage of `,'.")
+(put '\, 'reader-construct t)
+
+(put '\,@ 'function-documentation
+     "See `\\=`' for the usage of `,@'.")
+(put '\,@ 'reader-construct t)
+
 ;;; backquote.el ends here
diff --git a/lisp/emacs-lisp/benchmark.el b/lisp/emacs-lisp/benchmark.el
index 613cfa2..25eddf5 100644
--- a/lisp/emacs-lisp/benchmark.el
+++ b/lisp/emacs-lisp/benchmark.el
@@ -1,6 +1,6 @@
 ;;; benchmark.el --- support for benchmarking code
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love  <address@hidden>
 ;; Keywords: lisp, extensions
diff --git a/lisp/emacs-lisp/bindat.el b/lisp/emacs-lisp/bindat.el
index 84d62ee..d345151 100644
--- a/lisp/emacs-lisp/bindat.el
+++ b/lisp/emacs-lisp/bindat.el
@@ -1,6 +1,6 @@
 ;;; bindat.el --- binary data structure packing and unpacking.
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Kim F. Storm <address@hidden>
 ;; Assignment name: struct.el
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 610c3b6..13f8854 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -1,6 +1,6 @@
 ;;; byte-opt.el --- the optimization passes of the emacs-lisp byte compiler 
-*- lexical-binding: t -*-
 
-;; Copyright (C) 1991, 1994, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1994, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Jamie Zawinski <address@hidden>
 ;;     Hallvard Furuseth <address@hidden>
diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el
index 9d2a048..4fa31dd 100644
--- a/lisp/emacs-lisp/byte-run.el
+++ b/lisp/emacs-lisp/byte-run.el
@@ -1,6 +1,6 @@
 ;;; byte-run.el --- byte-compiler support for inlining  -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 1992, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Jamie Zawinski <address@hidden>
 ;;     Hallvard Furuseth <address@hidden>
@@ -474,7 +474,7 @@ load time.  In interpreted code, this is entirely 
equivalent to
 `progn', except that the value of the expression may be (but is
 not necessarily) computed at load time if eager macro expansion
 is enabled."
-  (declare (debug t) (indent 0))
+  (declare (debug (&rest def-form)) (indent 0))
   ;; When the byte-compiler expands code, this macro is not used, so we're
   ;; either about to run `body' (plain interpretation) or we're doing eager
   ;; macroexpansion.
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 85daa43..63be7e2 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -1,6 +1,6 @@
 ;;; bytecomp.el --- compilation of Lisp code into byte code -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1985-1987, 1992, 1994, 1998, 2000-2016 Free Software
+;; Copyright (C) 1985-1987, 1992, 1994, 1998, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Jamie Zawinski <address@hidden>
diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el
index 46b5a7f..4507af7 100644
--- a/lisp/emacs-lisp/cconv.el
+++ b/lisp/emacs-lisp/cconv.el
@@ -1,6 +1,6 @@
 ;;; cconv.el --- Closure conversion for statically scoped Emacs lisp. -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Igor Kuzmin <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/emacs-lisp/chart.el b/lisp/emacs-lisp/chart.el
index 962a85e..dc108f9 100644
--- a/lisp/emacs-lisp/chart.el
+++ b/lisp/emacs-lisp/chart.el
@@ -1,6 +1,6 @@
 ;;; chart.el --- Draw charts (bar charts, etc)  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1996, 1998-1999, 2001, 2004-2005, 2007-2016 Free
+;; Copyright (C) 1996, 1998-1999, 2001, 2004-2005, 2007-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam  <address@hidden>
diff --git a/lisp/emacs-lisp/check-declare.el b/lisp/emacs-lisp/check-declare.el
index e1e756b..c46426c 100644
--- a/lisp/emacs-lisp/check-declare.el
+++ b/lisp/emacs-lisp/check-declare.el
@@ -1,6 +1,6 @@
 ;;; check-declare.el --- Check declare-function statements
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Glenn Morris <address@hidden>
 ;; Keywords: lisp, tools, maint
diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el
index 769c2fe..59edbe1 100644
--- a/lisp/emacs-lisp/checkdoc.el
+++ b/lisp/emacs-lisp/checkdoc.el
@@ -1,6 +1,6 @@
 ;;; checkdoc.el --- check documentation strings for style requirements  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Version: 0.6.2
@@ -294,12 +294,6 @@ problem discovered.  This is useful for adding additional 
checks.")
 (defvar checkdoc-diagnostic-buffer "*Style Warnings*"
   "Name of warning message buffer.")
 
-(defvar checkdoc-defun-regexp
-  "^(def\\(un\\|var\\|custom\\|macro\\|const\\|subst\\|advice\\)\
-\\s-+\\(\\(\\sw\\|\\s_\\)+\\)[ \t\n]+"
-  "Regular expression used to identify a defun.
-A search leaves the cursor in front of the parameter list.")
-
 (defcustom checkdoc-verb-check-experimental-flag t
   "Non-nil means to attempt to check the voice of the doc string.
 This check keys off some words which are commonly misused.  See the
@@ -938,13 +932,31 @@ is the starting location.  If this is nil, `point-min' is 
used instead."
 (defun checkdoc-next-docstring ()
   "Move to the next doc string after point, and return t.
 Return nil if there are no more doc strings."
-  (if (not (re-search-forward checkdoc-defun-regexp nil t))
-      nil
-    ;; search drops us after the identifier.  The next sexp is either
-    ;; the argument list or the value of the variable.  skip it.
-    (forward-sexp 1)
-    (skip-chars-forward " \n\t")
-    t))
+  (let (found)
+    (while (and (not (setq found (checkdoc--next-docstring)))
+                (beginning-of-defun -1)))
+    found))
+
+(defun checkdoc--next-docstring ()
+  "When looking at a definition with a doc string, find it.
+Move to the next doc string after point, and return t.  When not
+looking at a definition containing a doc string, return nil and
+don't move point."
+  (pcase (save-excursion (condition-case nil
+                             (read (current-buffer))
+                           ;; Conservatively skip syntax errors.
+                           (invalid-read-syntax)))
+    (`(,(or 'defun 'defvar 'defcustom 'defmacro 'defconst 'defsubst 'defadvice)
+       ,(pred symbolp)
+       ;; Require an initializer, i.e. ignore single-argument `defvar'
+       ;; forms, which never have a doc string.
+       ,_ . ,_)
+     (down-list)
+     ;; Skip over function or macro name, symbol to be defined, and
+     ;; initializer or argument list.
+     (forward-sexp 3)
+     (skip-chars-forward " \n\t")
+     t)))
 
 ;;;###autoload
 (defun checkdoc-comments (&optional take-notes)
@@ -1027,21 +1039,12 @@ space at the end of each line."
   (interactive)
   (save-excursion
     (beginning-of-defun)
-    (if (not (looking-at checkdoc-defun-regexp))
-       ;; I found this more annoying than useful.
-       ;;(if (not no-error)
-       ;;    (message "Cannot check this sexp's doc string."))
-       nil
-      ;; search drops us after the identifier.  The next sexp is either
-      ;; the argument list or the value of the variable.  skip it.
-      (goto-char (match-end 0))
-      (forward-sexp 1)
-      (skip-chars-forward " \n\t")
+    (when (checkdoc--next-docstring)
       (let* ((checkdoc-spellcheck-documentation-flag
-             (car (memq checkdoc-spellcheck-documentation-flag
+              (car (memq checkdoc-spellcheck-documentation-flag
                          '(defun t))))
-            (beg (save-excursion (beginning-of-defun) (point)))
-            (end (save-excursion (end-of-defun) (point))))
+             (beg (save-excursion (beginning-of-defun) (point)))
+             (end (save-excursion (end-of-defun) (point))))
         (dolist (fun (list #'checkdoc-this-string-valid
                            (lambda () (checkdoc-message-text-search beg end))
                            (lambda () (checkdoc-rogue-space-check-engine beg 
end))))
@@ -1049,8 +1052,8 @@ space at the end of each line."
             (if msg (if no-error
                         (message "%s" (checkdoc-error-text msg))
                       (user-error "%s" (checkdoc-error-text msg))))))
-       (if (called-interactively-p 'interactive)
-           (message "Checkdoc: done."))))))
+        (if (called-interactively-p 'interactive)
+            (message "Checkdoc: done."))))))
 
 ;;; Ispell interface for forcing a spell check
 ;;
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index 0033a94..644c35d 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -1,6 +1,6 @@
 ;;; cl-extra.el --- Common Lisp features, part 2  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1993, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Gillespie <address@hidden>
 ;; Keywords: extensions
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
index 61186e1..6cc70c4 100644
--- a/lisp/emacs-lisp/cl-generic.el
+++ b/lisp/emacs-lisp/cl-generic.el
@@ -1,6 +1,6 @@
 ;;; cl-generic.el --- CLOS-style generic functions for Elisp  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Version: 1.0
@@ -226,7 +226,13 @@ DEFAULT-BODY, if present, is used as the body of a default 
method.
     (when (eq 'setf (car-safe name))
       (require 'gv)
       (setq name (gv-setter (cadr name))))
-    `(progn
+    `(prog1
+         (progn
+           (defalias ',name
+             (cl-generic-define ',name ',args ',(nreverse options))
+             ,(help-add-fundoc-usage doc args))
+           ,@(mapcar (lambda (method) `(cl-defmethod ,name ,@method))
+                     (nreverse methods)))
        ,@(mapcar (lambda (declaration)
                    (let ((f (cdr (assq (car declaration)
                                        defun-declarations-alist))))
@@ -235,12 +241,7 @@ DEFAULT-BODY, if present, is used as the body of a default 
method.
                       (t (message "Warning: Unknown defun property `%S' in %S"
                                   (car declaration) name)
                          nil))))
-                 (cdr declarations))
-       (defalias ',name
-         (cl-generic-define ',name ',args ',(nreverse options))
-         ,(help-add-fundoc-usage doc args))
-       ,@(mapcar (lambda (method) `(cl-defmethod ,name ,@method))
-                 (nreverse methods)))))
+                 (cdr declarations)))))
 
 ;;;###autoload
 (defun cl-generic-define (name args options)
diff --git a/lisp/emacs-lisp/cl-indent.el b/lisp/emacs-lisp/cl-indent.el
index 4f1100c..33ecf3f 100644
--- a/lisp/emacs-lisp/cl-indent.el
+++ b/lisp/emacs-lisp/cl-indent.el
@@ -1,6 +1,6 @@
 ;;; cl-indent.el --- enhanced lisp-indent mode
 
-;; Copyright (C) 1987, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Richard Mlynarik <address@hidden>
 ;; Created: July 1987
diff --git a/lisp/emacs-lisp/cl-lib.el b/lisp/emacs-lisp/cl-lib.el
index b401714..5aa8f1b 100644
--- a/lisp/emacs-lisp/cl-lib.el
+++ b/lisp/emacs-lisp/cl-lib.el
@@ -1,6 +1,6 @@
 ;;; cl-lib.el --- Common Lisp extensions for Emacs  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Gillespie <address@hidden>
 ;; Version: 1.0
@@ -413,125 +413,30 @@ Signal an error if X is not a list."
   (declare (gv-setter (lambda (store) `(setcar (nthcdr 9 ,x) ,store))))
   (nth 9 x))
 
-(defun cl-caaar (x)
-  "Return the `car' of the `car' of the `car' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (car (car (car x))))
-
-(defun cl-caadr (x)
-  "Return the `car' of the `car' of the `cdr' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (car (car (cdr x))))
-
-(defun cl-cadar (x)
-  "Return the `car' of the `cdr' of the `car' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (car (cdr (car x))))
-
-(defun cl-caddr (x)
-  "Return the `car' of the `cdr' of the `cdr' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (car (cdr (cdr x))))
-
-(defun cl-cdaar (x)
-  "Return the `cdr' of the `car' of the `car' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (cdr (car (car x))))
-
-(defun cl-cdadr (x)
-  "Return the `cdr' of the `car' of the `cdr' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (cdr (car (cdr x))))
-
-(defun cl-cddar (x)
-  "Return the `cdr' of the `cdr' of the `car' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (cdr (cdr (car x))))
-
-(defun cl-cdddr (x)
-  "Return the `cdr' of the `cdr' of the `cdr' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (cdr (cdr (cdr x))))
-
-(defun cl-caaaar (x)
-  "Return the `car' of the `car' of the `car' of the `car' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (car (car (car (car x)))))
-
-(defun cl-caaadr (x)
-  "Return the `car' of the `car' of the `car' of the `cdr' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (car (car (car (cdr x)))))
-
-(defun cl-caadar (x)
-  "Return the `car' of the `car' of the `cdr' of the `car' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (car (car (cdr (car x)))))
-
-(defun cl-caaddr (x)
-  "Return the `car' of the `car' of the `cdr' of the `cdr' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (car (car (cdr (cdr x)))))
-
-(defun cl-cadaar (x)
-  "Return the `car' of the `cdr' of the `car' of the `car' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (car (cdr (car (car x)))))
-
-(defun cl-cadadr (x)
-  "Return the `car' of the `cdr' of the `car' of the `cdr' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (car (cdr (car (cdr x)))))
-
-(defun cl-caddar (x)
-  "Return the `car' of the `cdr' of the `cdr' of the `car' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (car (cdr (cdr (car x)))))
-
-(defun cl-cadddr (x)
-  "Return the `car' of the `cdr' of the `cdr' of the `cdr' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (car (cdr (cdr (cdr x)))))
-
-(defun cl-cdaaar (x)
-  "Return the `cdr' of the `car' of the `car' of the `car' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (cdr (car (car (car x)))))
-
-(defun cl-cdaadr (x)
-  "Return the `cdr' of the `car' of the `car' of the `cdr' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (cdr (car (car (cdr x)))))
-
-(defun cl-cdadar (x)
-  "Return the `cdr' of the `car' of the `cdr' of the `car' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (cdr (car (cdr (car x)))))
-
-(defun cl-cdaddr (x)
-  "Return the `cdr' of the `car' of the `cdr' of the `cdr' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (cdr (car (cdr (cdr x)))))
-
-(defun cl-cddaar (x)
-  "Return the `cdr' of the `cdr' of the `car' of the `car' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (cdr (cdr (car (car x)))))
-
-(defun cl-cddadr (x)
-  "Return the `cdr' of the `cdr' of the `car' of the `cdr' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (cdr (cdr (car (cdr x)))))
-
-(defun cl-cdddar (x)
-  "Return the `cdr' of the `cdr' of the `cdr' of the `car' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (cdr (cdr (cdr (car x)))))
-
-(defun cl-cddddr (x)
-  "Return the `cdr' of the `cdr' of the `cdr' of the `cdr' of X."
-  (declare (compiler-macro internal--compiler-macro-cXXr))
-  (cdr (cdr (cdr (cdr x)))))
+(defalias 'cl-caaar 'caaar)
+(defalias 'cl-caadr 'caadr)
+(defalias 'cl-cadar 'cadar)
+(defalias 'cl-caddr 'caddr)
+(defalias 'cl-cdaar 'cdaar)
+(defalias 'cl-cdadr 'cdadr)
+(defalias 'cl-cddar 'cddar)
+(defalias 'cl-cdddr 'cdddr)
+(defalias 'cl-caaaar 'caaaar)
+(defalias 'cl-caaadr 'caaadr)
+(defalias 'cl-caadar 'caadar)
+(defalias 'cl-caaddr 'caaddr)
+(defalias 'cl-cadaar 'cadaar)
+(defalias 'cl-cadadr 'cadadr)
+(defalias 'cl-caddar 'caddar)
+(defalias 'cl-cadddr 'cadddr)
+(defalias 'cl-cdaaar 'cdaaar)
+(defalias 'cl-cdaadr 'cdaadr)
+(defalias 'cl-cdadar 'cdadar)
+(defalias 'cl-cdaddr 'cdaddr)
+(defalias 'cl-cddaar 'cddaar)
+(defalias 'cl-cddadr 'cddadr)
+(defalias 'cl-cdddar 'cdddar)
+(defalias 'cl-cddddr 'cddddr)
 
 ;;(defun last* (x &optional n)
 ;;  "Returns the last link in the list LIST.
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 210a208..40342f3 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -1,6 +1,6 @@
 ;;; cl-macs.el --- Common Lisp macros  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Gillespie <address@hidden>
 ;; Old-Version: 2.02
@@ -2708,6 +2708,14 @@ non-nil value, that slot cannot be set via `setf'.
                                   (= safety 1))
                              (cons 'and (cl-cdddr pred-form))
                             `(,predicate cl-x))))
+    (when pred-form
+      (push `(cl-defsubst ,predicate (cl-x)
+               (declare (side-effect-free error-free))
+               ,(if (eq (car pred-form) 'and)
+                    (append pred-form '(t))
+                  `(and ,pred-form t)))
+            forms)
+      (push `(put ',name 'cl-deftype-satisfies ',predicate) forms))
     (let ((pos 0) (descp descs))
       (while descp
        (let* ((desc (pop descp))
@@ -2737,7 +2745,23 @@ non-nil value, that slot cannot be set via `setf'.
                             `(nth ,pos cl-x))))
                     forms)
               (when (cl-oddp (length desc))
-                (error "Invalid options for slot %s in %s" slot name))
+                (push
+                 (macroexp--warn-and-return
+                  (format "Missing value for option `%S' of slot `%s' in 
struct %s!"
+                          (car (last desc)) slot name)
+                  'nil)
+                 forms)
+                (when (and (keywordp (car defaults))
+                           (not (keywordp (car desc))))
+                  (let ((kw (car defaults)))
+                    (push
+                     (macroexp--warn-and-return
+                      (format "  I'll take `%s' to be an option rather than a 
default value."
+                              kw)
+                      'nil)
+                     forms)
+                    (push kw desc)
+                    (setcar defaults nil))))
               (if (plist-get desc ':read-only)
                   (push `(gv-define-expander ,accessor
                            (lambda (_cl-do _cl-x)
@@ -2768,14 +2792,6 @@ non-nil value, that slot cannot be set via `setf'.
        (setq pos (1+ pos))))
     (setq slots (nreverse slots)
          defaults (nreverse defaults))
-    (when pred-form
-      (push `(cl-defsubst ,predicate (cl-x)
-               (declare (side-effect-free error-free))
-               ,(if (eq (car pred-form) 'and)
-                    (append pred-form '(t))
-                  `(and ,pred-form t)))
-            forms)
-      (push `(put ',name 'cl-deftype-satisfies ',predicate) forms))
     (and copier
          (push `(defalias ',copier #'copy-sequence) forms))
     (if constructor
diff --git a/lisp/emacs-lisp/cl-preloaded.el b/lisp/emacs-lisp/cl-preloaded.el
index 2b022c4..0b07941 100644
--- a/lisp/emacs-lisp/cl-preloaded.el
+++ b/lisp/emacs-lisp/cl-preloaded.el
@@ -1,6 +1,6 @@
 ;;; cl-preloaded.el --- Preloaded part of the CL library  -*- lexical-binding: 
t; -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Package: emacs
diff --git a/lisp/emacs-lisp/cl-seq.el b/lisp/emacs-lisp/cl-seq.el
index 3f8b1ee..67ff1a0 100644
--- a/lisp/emacs-lisp/cl-seq.el
+++ b/lisp/emacs-lisp/cl-seq.el
@@ -1,6 +1,6 @@
 ;;; cl-seq.el --- Common Lisp features, part 3  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Gillespie <address@hidden>
 ;; Old-Version: 2.02
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el
index c3d3fea..73eb9a4 100644
--- a/lisp/emacs-lisp/cl.el
+++ b/lisp/emacs-lisp/cl.el
@@ -1,6 +1,6 @@
 ;;; cl.el --- Compatibility aliases for the old CL library.  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: extensions
@@ -258,30 +258,6 @@
                copy-list
                ldiff
                list*
-               cddddr
-               cdddar
-               cddadr
-               cddaar
-               cdaddr
-               cdadar
-               cdaadr
-               cdaaar
-               cadddr
-               caddar
-               cadadr
-               cadaar
-               caaddr
-               caadar
-               caaadr
-               caaaar
-               cdddr
-               cddar
-               cdadr
-               cdaar
-               caddr
-               cadar
-               caadr
-               caaar
                tenth
                ninth
                eighth
diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el
index e7e6905..b693613 100644
--- a/lisp/emacs-lisp/copyright.el
+++ b/lisp/emacs-lisp/copyright.el
@@ -1,6 +1,6 @@
 ;;; copyright.el --- update the copyright notice in current buffer
 
-;; Copyright (C) 1991-1995, 1998, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1991-1995, 1998, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Daniel Pfeiffer <address@hidden>
diff --git a/lisp/emacs-lisp/crm.el b/lisp/emacs-lisp/crm.el
index 035baa0..0fad27c 100644
--- a/lisp/emacs-lisp/crm.el
+++ b/lisp/emacs-lisp/crm.el
@@ -1,6 +1,6 @@
 ;;; crm.el --- read multiple strings with completion
 
-;; Copyright (C) 1985-1986, 1993-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1986, 1993-2017 Free Software Foundation, Inc.
 
 ;; Author: Sen Nagata <address@hidden>
 ;; Keywords: completion, minibuffer, multiple elements
diff --git a/lisp/emacs-lisp/cursor-sensor.el b/lisp/emacs-lisp/cursor-sensor.el
index 28b6188..e68b429 100644
--- a/lisp/emacs-lisp/cursor-sensor.el
+++ b/lisp/emacs-lisp/cursor-sensor.el
@@ -1,6 +1,6 @@
 ;;; cursor-sensor.el --- React to cursor movement  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords:
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
index 5a4b097..faa323f 100644
--- a/lisp/emacs-lisp/debug.el
+++ b/lisp/emacs-lisp/debug.el
@@ -1,6 +1,6 @@
 ;;; debug.el --- debuggers and related commands for Emacs  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1985-1986, 1994, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1985-1986, 1994, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Maintainer: address@hidden
@@ -816,6 +816,60 @@ Redefining FUNCTION also cancels it."
               '((depth . -100)))
   function)
 
+;;;###autoload
+;; (defun debug-on-set (symbol)
+;;   "Request FUNCTION to invoke debugger each time it is called.
+
+;; When called interactively, prompt for FUNCTION in the minibuffer.
+
+;; This works by modifying the definition of FUNCTION.  If you tell the
+;; debugger to continue, FUNCTION's execution proceeds.  If FUNCTION is a
+;; normal function or a macro written in Lisp, you can also step through
+;; its execution.  FUNCTION can also be a primitive that is not a special
+;; form, in which case stepping is not possible.  Break-on-entry for
+;; primitive functions only works when that function is called from Lisp.
+
+;; Use \\[cancel-debug-on-entry] to cancel the effect of this command.
+;; Redefining FUNCTION also cancels it."
+;;   (interactive
+;;    (let ((v (variable-at-point))
+;;      (enable-recursive-minibuffers t)
+;;          (orig-buffer (current-buffer))
+;;      val)
+;;      (setq val (completing-read
+;;                 (if (symbolp v)
+;;                     (format
+;;                      "Debug on set to symbol (default %s): " v)
+;;                   "Debug on set to symbol: ")
+;;                 #'help--symbol-completion-table
+;;                 (lambda (vv)
+;;                   ;; In case the variable only exists in the buffer
+;;                   ;; the command we switch back to that buffer before
+;;                   ;; we examine the variable.
+;;                   (with-current-buffer orig-buffer
+;;                     (or (get vv 'variable-documentation)
+;;                         (and (boundp vv) (not (keywordp vv))))))
+;;                 t nil nil
+;;                 (if (symbolp v) (symbol-name v))))
+;;      (list (if (equal val "")
+;;            v (intern val)))))
+
+
+
+;;   (interactive
+;;    (let* ((var-default (variable-at-point))
+;;           (var (completing-read
+;;             (if var-default
+;;                 (format "Debug on set to symbol (default %s): " var-default)
+;;               "Debug on set to symbol: ")
+;;             nil
+;;             #'boundp
+;;             t nil nil (symbol-name var-default))))
+;;      (list (if (equal var "") var-default (intern var)))))
+;;   (advice-add function :before #'debug--implement-debug-on-entry
+;;               '((depth . -100)))
+;;   function)
+
 (defun debug--function-list ()
   "List of functions currently set for debug on entry."
   (let ((funs '()))
diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el
index 3117027..fffe972 100644
--- a/lisp/emacs-lisp/derived.el
+++ b/lisp/emacs-lisp/derived.el
@@ -1,7 +1,7 @@
 ;;; derived.el --- allow inheritance of major modes
 ;; (formerly mode-clone.el)
 
-;; Copyright (C) 1993-1994, 1999, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1993-1994, 1999, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: David Megginson (address@hidden)
@@ -216,6 +216,7 @@ No problems result if this variable is not bound.
              (purecopy ,(format "Keymap for `%s'." child))))
        ,(if declare-syntax
            `(progn
+               (defvar ,syntax)
               (unless (boundp ',syntax)
                 (put ',syntax 'definition-name ',child)
                 (defvar ,syntax (make-syntax-table)))
@@ -224,6 +225,7 @@ No problems result if this variable is not bound.
                      (purecopy ,(format "Syntax table for `%s'." child))))))
        ,(if declare-abbrev
            `(progn
+               (defvar ,abbrev)
               (unless (boundp ',abbrev)
                 (put ',abbrev 'definition-name ',child)
                 (defvar ,abbrev
diff --git a/lisp/emacs-lisp/disass.el b/lisp/emacs-lisp/disass.el
index 8506ed6..97e45e0 100644
--- a/lisp/emacs-lisp/disass.el
+++ b/lisp/emacs-lisp/disass.el
@@ -1,6 +1,6 @@
 ;;; disass.el --- disassembler for compiled Emacs Lisp code  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1986, 1991, 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1991, 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Doug Cutting <address@hidden>
 ;;     Jamie Zawinski <address@hidden>
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index 38295c3..158b921 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -1,6 +1,6 @@
 ;;; easy-mmode.el --- easy definition for major and minor modes
 
-;; Copyright (C) 1997, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Georges Brun-Cottan <address@hidden>
 ;; Maintainer: Stefan Monnier <address@hidden>
diff --git a/lisp/emacs-lisp/easymenu.el b/lisp/emacs-lisp/easymenu.el
index 189bb6c..603bbcd 100644
--- a/lisp/emacs-lisp/easymenu.el
+++ b/lisp/emacs-lisp/easymenu.el
@@ -1,6 +1,6 @@
 ;;; easymenu.el --- support the easymenu interface for defining a menu  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1994, 1996, 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1996, 1998-2017 Free Software Foundation, Inc.
 
 ;; Keywords: emulations
 ;; Author: Richard Stallman <address@hidden>
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 66117b8..db54d1e 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -1,6 +1,6 @@
 ;;; edebug.el --- a source-level debugger for Emacs Lisp  -*- lexical-binding: 
t -*-
 
-;; Copyright (C) 1988-1995, 1997, 1999-2016 Free Software Foundation,
+;; Copyright (C) 1988-1995, 1997, 1999-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Daniel LaLiberte <address@hidden>
@@ -2170,8 +2170,7 @@ The purpose of this function is so you can properly undo
 subsequent changes to the same binding, by passing the status
 cons cell to `edebug-restore-status'.  The status cons cell
 has the form (LOCUS . VALUE), where LOCUS can be a buffer
-\(for a buffer-local binding), a frame (for a frame-local binding),
-or nil (if the default binding is current)."
+\(for a buffer-local binding), or nil (if the default binding is current)."
   (cons (variable-binding-locus var)
        (symbol-value var)))
 
diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el
index b99905c..986d028 100644
--- a/lisp/emacs-lisp/eieio-base.el
+++ b/lisp/emacs-lisp/eieio-base.el
@@ -1,6 +1,6 @@
 ;;; eieio-base.el --- Base classes for EIEIO.  -*- lexical-binding:t -*-
 
-;;; Copyright (C) 2000-2002, 2004-2005, 2007-2016 Free Software
+;;; Copyright (C) 2000-2002, 2004-2005, 2007-2017 Free Software
 ;;; Foundation, Inc.
 
 ;; Author: Eric M. Ludlam  <address@hidden>
diff --git a/lisp/emacs-lisp/eieio-compat.el b/lisp/emacs-lisp/eieio-compat.el
index 413b94f..888d85f 100644
--- a/lisp/emacs-lisp/eieio-compat.el
+++ b/lisp/emacs-lisp/eieio-compat.el
@@ -1,6 +1,6 @@
 ;;; eieio-compat.el --- Compatibility with Older EIEIO versions  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1995-1996, 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-1996, 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: OO, lisp
diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el
index 624dcce..5cc6d02 100644
--- a/lisp/emacs-lisp/eieio-core.el
+++ b/lisp/emacs-lisp/eieio-core.el
@@ -1,6 +1,6 @@
 ;;; eieio-core.el --- Core implementation for eieio  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1995-1996, 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-1996, 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Version: 1.4
diff --git a/lisp/emacs-lisp/eieio-custom.el b/lisp/emacs-lisp/eieio-custom.el
index d2d87ea..e82eaa2 100644
--- a/lisp/emacs-lisp/eieio-custom.el
+++ b/lisp/emacs-lisp/eieio-custom.el
@@ -1,6 +1,6 @@
 ;;; eieio-custom.el -- eieio object customization  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2001, 2005, 2007-2016 Free Software Foundation,
+;; Copyright (C) 1999-2001, 2005, 2007-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/emacs-lisp/eieio-datadebug.el 
b/lisp/emacs-lisp/eieio-datadebug.el
index 0eaec49..624757f 100644
--- a/lisp/emacs-lisp/eieio-datadebug.el
+++ b/lisp/emacs-lisp/eieio-datadebug.el
@@ -1,6 +1,6 @@
 ;;; eieio-datadebug.el --- EIEIO extensions to the data debugger.  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: OO, lisp
diff --git a/lisp/emacs-lisp/eieio-opt.el b/lisp/emacs-lisp/eieio-opt.el
index 2f1d69f..ba4331f 100644
--- a/lisp/emacs-lisp/eieio-opt.el
+++ b/lisp/emacs-lisp/eieio-opt.el
@@ -1,6 +1,6 @@
 ;;; eieio-opt.el -- eieio optional functions (debug, printing, speedbar)
 
-;; Copyright (C) 1996, 1998-2003, 2005, 2008-2016 Free Software
+;; Copyright (C) 1996, 1998-2003, 2005, 2008-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/emacs-lisp/eieio-speedbar.el 
b/lisp/emacs-lisp/eieio-speedbar.el
index 6f717c8..36ab2c1 100644
--- a/lisp/emacs-lisp/eieio-speedbar.el
+++ b/lisp/emacs-lisp/eieio-speedbar.el
@@ -1,6 +1,6 @@
 ;;; eieio-speedbar.el -- Classes for managing speedbar displays.  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1999-2002, 2005, 2007-2016 Free Software Foundation,
+;; Copyright (C) 1999-2002, 2005, 2007-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index fd77654..6872c0f 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -1,7 +1,7 @@
 ;;; eieio.el --- Enhanced Implementation of Emacs Interpreted Objects  -*- 
lexical-binding:t -*-
 ;;;              or maybe Eric's Implementation of Emacs Interpreted Objects
 
-;; Copyright (C) 1995-1996, 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-1996, 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Version: 1.4
diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el
index 6c2f869..6cb8e6c 100644
--- a/lisp/emacs-lisp/eldoc.el
+++ b/lisp/emacs-lisp/eldoc.el
@@ -1,6 +1,6 @@
 ;;; eldoc.el --- Show function arglist or variable docstring in echo area  -*- 
lexical-binding:t; -*-
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Noah Friedman <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el
index ab0a54c..d68e49f 100644
--- a/lisp/emacs-lisp/elint.el
+++ b/lisp/emacs-lisp/elint.el
@@ -1,6 +1,6 @@
 ;;; elint.el --- Lint Emacs Lisp
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Peter Liljenberg <address@hidden>
 ;; Created: May 1997
diff --git a/lisp/emacs-lisp/elp.el b/lisp/emacs-lisp/elp.el
index ad93e69..d4500f1 100644
--- a/lisp/emacs-lisp/elp.el
+++ b/lisp/emacs-lisp/elp.el
@@ -1,6 +1,6 @@
 ;;; elp.el --- Emacs Lisp Profiler  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1994-1995, 1997-1998, 2001-2016 Free Software
+;; Copyright (C) 1994-1995, 1997-1998, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Barry A. Warsaw
diff --git a/lisp/emacs-lisp/ert-x.el b/lisp/emacs-lisp/ert-x.el
index 2a2418f..7d99cb3 100644
--- a/lisp/emacs-lisp/ert-x.el
+++ b/lisp/emacs-lisp/ert-x.el
@@ -1,6 +1,6 @@
 ;;; ert-x.el --- Staging area for experimental extensions to ERT  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2008, 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Lennart Borgman (lennart O borgman A gmail O com)
 ;;         Christian Ohler <address@hidden>
diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el
index 89f83dd..785f4ac 100644
--- a/lisp/emacs-lisp/ert.el
+++ b/lisp/emacs-lisp/ert.el
@@ -1,6 +1,6 @@
 ;;; ert.el --- Emacs Lisp Regression Testing  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2007-2008, 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2008, 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Christian Ohler <address@hidden>
 ;; Keywords: lisp, tools
diff --git a/lisp/emacs-lisp/ewoc.el b/lisp/emacs-lisp/ewoc.el
index 932b7fb..cc57456 100644
--- a/lisp/emacs-lisp/ewoc.el
+++ b/lisp/emacs-lisp/ewoc.el
@@ -1,6 +1,6 @@
 ;;; ewoc.el --- utility to maintain a view of a list of objects in a buffer  
-*- lexical-binding: t -*-
 
-;; Copyright (C) 1991-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991-2017 Free Software Foundation, Inc.
 
 ;; Author: Per Cederqvist <address@hidden>
 ;;     Inge Wallin <address@hidden>
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index cbb134e..6699e3f 100644
--- a/lisp/emacs-lisp/find-func.el
+++ b/lisp/emacs-lisp/find-func.el
@@ -1,6 +1,6 @@
 ;;; find-func.el --- find the definition of the Emacs Lisp function near point 
 -*- lexical-binding:t -*-
 
-;; Copyright (C) 1997, 1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Jens Petersen <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/emacs-lisp/float-sup.el b/lisp/emacs-lisp/float-sup.el
index a3d89e4..a33937c 100644
--- a/lisp/emacs-lisp/float-sup.el
+++ b/lisp/emacs-lisp/float-sup.el
@@ -1,6 +1,6 @@
 ;;; float-sup.el --- define some constants useful for floating point numbers.
 
-;; Copyright (C) 1985-1987, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1987, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: internal
diff --git a/lisp/emacs-lisp/generator.el b/lisp/emacs-lisp/generator.el
index 49af240..2ab0140 100644
--- a/lisp/emacs-lisp/generator.el
+++ b/lisp/emacs-lisp/generator.el
@@ -1,6 +1,6 @@
 ;;; generator.el --- generators  -*- lexical-binding: t -*-
 
-;;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Daniel Colascione <address@hidden>
 ;; Keywords: extensions, elisp
diff --git a/lisp/emacs-lisp/generic.el b/lisp/emacs-lisp/generic.el
index a6cf12b..165b0d4 100644
--- a/lisp/emacs-lisp/generic.el
+++ b/lisp/emacs-lisp/generic.el
@@ -1,6 +1,6 @@
 ;;; generic.el --- defining simple major modes with comment and font-lock
 ;;
-;; Copyright (C) 1997, 1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2001-2017 Free Software Foundation, Inc.
 ;;
 ;; Author:  Peter Breton <address@hidden>
 ;; Created: Fri Sep 27 1996
diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el
index fa7ac64..c5c12a6 100644
--- a/lisp/emacs-lisp/gv.el
+++ b/lisp/emacs-lisp/gv.el
@@ -1,6 +1,6 @@
 ;;; gv.el --- generalized variables  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: extensions
diff --git a/lisp/emacs-lisp/helper.el b/lisp/emacs-lisp/helper.el
index a35dc09..78611c6 100644
--- a/lisp/emacs-lisp/helper.el
+++ b/lisp/emacs-lisp/helper.el
@@ -1,6 +1,6 @@
 ;;; helper.el --- utility help package supporting help in electric modes
 
-;; Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: K. Shane Hartman
 ;; Maintainer: address@hidden
diff --git a/lisp/emacs-lisp/inline.el b/lisp/emacs-lisp/inline.el
index 058c56c..ce46f66 100644
--- a/lisp/emacs-lisp/inline.el
+++ b/lisp/emacs-lisp/inline.el
@@ -1,6 +1,6 @@
 ;;; inline.el --- Define functions by their inliner  -*- lexical-binding:t; -*-
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 
@@ -191,9 +191,9 @@ After VARS is handled, BODY is evaluated in the new 
environment."
        (while (and (consp exp) (not (eq '\, (car exp))))
          (push (inline--dont-quote (pop exp)) args))
        (setq args (nreverse args))
-       (if exp
-           `(apply ,@args ,(inline--dont-quote exp))
-         args)))
+       (if (null exp)
+           args
+         `(apply #',(car args) ,@(cdr args) ,(inline--dont-quote exp)))))
     (_ exp)))
 
 (defun inline--do-leteval (var-exp &rest body)
diff --git a/lisp/emacs-lisp/let-alist.el b/lisp/emacs-lisp/let-alist.el
index d706917..a45fc0a 100644
--- a/lisp/emacs-lisp/let-alist.el
+++ b/lisp/emacs-lisp/let-alist.el
@@ -1,6 +1,6 @@
 ;;; let-alist.el --- Easily let-bind values of an assoc-list by their names 
-*- lexical-binding: t; -*-
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Artur Malabarba <address@hidden>
 ;; Package-Requires: ((emacs "24.1"))
diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el
index 46373da..fc3caf3 100644
--- a/lisp/emacs-lisp/lisp-mnt.el
+++ b/lisp/emacs-lisp/lisp-mnt.el
@@ -1,6 +1,6 @@
 ;;; lisp-mnt.el --- utility functions for Emacs Lisp maintainers
 
-;; Copyright (C) 1992, 1994, 1997, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1992, 1994, 1997, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Eric S. Raymond <address@hidden>
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index a277d7a..d720e0b 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -1,6 +1,6 @@
 ;;; lisp-mode.el --- Lisp mode, and its idiosyncratic commands  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1985-1986, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1986, 1999-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: lisp, languages
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index ea7cce6..0172e3a 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -1,6 +1,6 @@
 ;;; lisp.el --- Lisp editing commands for Emacs  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1985-1986, 1994, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1985-1986, 1994, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el
index 6d89145..9bc194c 100644
--- a/lisp/emacs-lisp/macroexp.el
+++ b/lisp/emacs-lisp/macroexp.el
@@ -1,6 +1,6 @@
 ;;; macroexp.el --- Additional macro-expansion support -*- lexical-binding: t 
-*-
 ;;
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Miles Bader <address@hidden>
 ;; Keywords: lisp, compiler, macros
diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el
index 02770d5..af7a9ee 100644
--- a/lisp/emacs-lisp/map-ynp.el
+++ b/lisp/emacs-lisp/map-ynp.el
@@ -1,6 +1,6 @@
 ;;; map-ynp.el --- general-purpose boolean question-asker  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1991-1995, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991-1995, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Roland McGrath <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/emacs-lisp/map.el b/lisp/emacs-lisp/map.el
index 0a0f64a..a89457e 100644
--- a/lisp/emacs-lisp/map.el
+++ b/lisp/emacs-lisp/map.el
@@ -1,6 +1,6 @@
 ;;; map.el --- Map manipulation functions  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Petton <address@hidden>
 ;; Keywords: convenience, map, hash-table, alist, array
diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el
index 1b30499..5a100b7 100644
--- a/lisp/emacs-lisp/nadvice.el
+++ b/lisp/emacs-lisp/nadvice.el
@@ -1,6 +1,6 @@
 ;;; nadvice.el --- Light-weight advice primitives for Elisp functions  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: extensions, lisp, tools
diff --git a/lisp/emacs-lisp/package-x.el b/lisp/emacs-lisp/package-x.el
index 32070db..a3d90f4 100644
--- a/lisp/emacs-lisp/package-x.el
+++ b/lisp/emacs-lisp/package-x.el
@@ -1,6 +1,6 @@
 ;;; package-x.el --- Package extras
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Tom Tromey <address@hidden>
 ;; Created: 10 Mar 2007
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index ef129e9..6728f1b 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1,6 +1,6 @@
 ;;; package.el --- Simple package system for Emacs  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Tom Tromey <address@hidden>
 ;;         Daniel Hackney <address@hidden>
diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
index 896ad92..54678c5 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -1,6 +1,6 @@
 ;;; pcase.el --- ML-style pattern-matching macro for Elisp -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords:
diff --git a/lisp/emacs-lisp/pp.el b/lisp/emacs-lisp/pp.el
index 54ea8f3..2938c37 100644
--- a/lisp/emacs-lisp/pp.el
+++ b/lisp/emacs-lisp/pp.el
@@ -1,6 +1,6 @@
 ;;; pp.el --- pretty printer for Emacs Lisp
 
-;; Copyright (C) 1989, 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Randal Schwartz <address@hidden>
 ;; Keywords: lisp
diff --git a/lisp/emacs-lisp/radix-tree.el b/lisp/emacs-lisp/radix-tree.el
index 8146bb3..b5e7589 100644
--- a/lisp/emacs-lisp/radix-tree.el
+++ b/lisp/emacs-lisp/radix-tree.el
@@ -1,6 +1,6 @@
 ;;; radix-tree.el --- A simple library of radix trees  -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2016  Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords:
diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el
index 01e5241..5264dae 100644
--- a/lisp/emacs-lisp/re-builder.el
+++ b/lisp/emacs-lisp/re-builder.el
@@ -1,6 +1,6 @@
 ;;; re-builder.el --- building Regexps with visual feedback -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Detlev Zundel <address@hidden>
 ;; Keywords: matching, lisp, tools
diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el
index 4003318..5feaad8 100644
--- a/lisp/emacs-lisp/regexp-opt.el
+++ b/lisp/emacs-lisp/regexp-opt.el
@@ -1,6 +1,6 @@
 ;;; regexp-opt.el --- generate efficient regexps to match strings -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Marshall <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/emacs-lisp/regi.el b/lisp/emacs-lisp/regi.el
index bbcf501..351dba5 100644
--- a/lisp/emacs-lisp/regi.el
+++ b/lisp/emacs-lisp/regi.el
@@ -1,6 +1,6 @@
 ;;; regi.el --- REGular expression Interpreting engine
 
-;; Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: 1993 Barry A. Warsaw, Century Computing, Inc. <address@hidden>
 ;; Maintainer:    address@hidden
diff --git a/lisp/emacs-lisp/ring.el b/lisp/emacs-lisp/ring.el
index c6684ec..b0ec3bc 100644
--- a/lisp/emacs-lisp/ring.el
+++ b/lisp/emacs-lisp/ring.el
@@ -1,6 +1,6 @@
 ;;; ring.el --- handle rings of items   -*- lexical-binding: t; -*-
 
-;; Copyright (C) 1992, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: extensions
diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el
index d305597..386232c 100644
--- a/lisp/emacs-lisp/rx.el
+++ b/lisp/emacs-lisp/rx.el
@@ -1,6 +1,6 @@
 ;;; rx.el --- sexp notation for regular expressions
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Gerd Moellmann <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el
index 7451024..4118764 100644
--- a/lisp/emacs-lisp/seq.el
+++ b/lisp/emacs-lisp/seq.el
@@ -1,6 +1,6 @@
 ;;; seq.el --- Sequence manipulation functions  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Petton <address@hidden>
 ;; Keywords: sequences
diff --git a/lisp/emacs-lisp/shadow.el b/lisp/emacs-lisp/shadow.el
index 5dddd23..df58648 100644
--- a/lisp/emacs-lisp/shadow.el
+++ b/lisp/emacs-lisp/shadow.el
@@ -1,6 +1,6 @@
 ;;; shadow.el --- locate Emacs Lisp file shadowings
 
-;; Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Terry Jones <address@hidden>
 ;; Keywords: lisp
diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el
index 1d8f0cb..4d02b75 100644
--- a/lisp/emacs-lisp/smie.el
+++ b/lisp/emacs-lisp/smie.el
@@ -1,6 +1,6 @@
 ;;; smie.el --- Simple Minded Indentation Engine -*- lexical-binding: t -*-
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: languages, lisp, internal, parsing, indentation
diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el
index fdcfa70..7736225 100644
--- a/lisp/emacs-lisp/subr-x.el
+++ b/lisp/emacs-lisp/subr-x.el
@@ -1,6 +1,6 @@
 ;;; subr-x.el --- extra Lisp functions  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: convenience
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
index ac509b3..d1d5176 100644
--- a/lisp/emacs-lisp/syntax.el
+++ b/lisp/emacs-lisp/syntax.el
@@ -1,6 +1,6 @@
 ;;; syntax.el --- helper functions to find syntactic context  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: internal
diff --git a/lisp/emacs-lisp/tabulated-list.el 
b/lisp/emacs-lisp/tabulated-list.el
index 9523d5e..b6b49b1 100644
--- a/lisp/emacs-lisp/tabulated-list.el
+++ b/lisp/emacs-lisp/tabulated-list.el
@@ -1,6 +1,6 @@
 ;;; tabulated-list.el --- generic major mode for tabulated lists -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Chong Yidong <address@hidden>
 ;; Keywords: extensions, lisp
@@ -412,8 +412,13 @@ of column descriptors."
        (inhibit-read-only t))
     (if (> tabulated-list-padding 0)
        (insert (make-string x ?\s)))
-    (dotimes (n ncols)
-      (setq x (tabulated-list-print-col n (aref cols n) x)))
+    (let ((tabulated-list--near-rows ; Bind it if not bound yet (Bug#25506).
+           (or (bound-and-true-p tabulated-list--near-rows)
+               (list (or (tabulated-list-get-entry (point-at-bol 0))
+                         cols)
+                     cols))))
+      (dotimes (n ncols)
+        (setq x (tabulated-list-print-col n (aref cols n) x))))
     (insert ?\n)
     ;; Ever so slightly faster than calling `put-text-property' twice.
     (add-text-properties
diff --git a/lisp/emacs-lisp/tcover-ses.el b/lisp/emacs-lisp/tcover-ses.el
index b7a3d1a..efcaeed 100644
--- a/lisp/emacs-lisp/tcover-ses.el
+++ b/lisp/emacs-lisp/tcover-ses.el
@@ -1,6 +1,6 @@
 ;;;; testcover-ses.el -- Example use of `testcover' to test "SES"
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Jonathan Yavner <address@hidden>
 ;; Maintainer: Jonathan Yavner <address@hidden>
diff --git a/lisp/emacs-lisp/tcover-unsafep.el 
b/lisp/emacs-lisp/tcover-unsafep.el
index cb18f00..f9bf9a4 100644
--- a/lisp/emacs-lisp/tcover-unsafep.el
+++ b/lisp/emacs-lisp/tcover-unsafep.el
@@ -1,6 +1,6 @@
 ;;;; testcover-unsafep.el -- Use testcover to test unsafep's code coverage
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Jonathan Yavner <address@hidden>
 ;; Maintainer: Jonathan Yavner <address@hidden>
diff --git a/lisp/emacs-lisp/testcover.el b/lisp/emacs-lisp/testcover.el
index c6a5e3b..433ad38 100644
--- a/lisp/emacs-lisp/testcover.el
+++ b/lisp/emacs-lisp/testcover.el
@@ -1,6 +1,6 @@
 ;;;; testcover.el -- Visual code-coverage tool  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Jonathan Yavner <address@hidden>
 ;; Maintainer: Jonathan Yavner <address@hidden>
diff --git a/lisp/emacs-lisp/thunk.el b/lisp/emacs-lisp/thunk.el
index 4d7b073..be0a90f 100644
--- a/lisp/emacs-lisp/thunk.el
+++ b/lisp/emacs-lisp/thunk.el
@@ -1,6 +1,6 @@
 ;;; thunk.el --- Lazy form evaluation  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Petton <address@hidden>
 ;; Keywords: sequences
diff --git a/lisp/emacs-lisp/timer-list.el b/lisp/emacs-lisp/timer-list.el
index 9b13e52d..1a38254 100644
--- a/lisp/emacs-lisp/timer-list.el
+++ b/lisp/emacs-lisp/timer-list.el
@@ -1,6 +1,6 @@
 ;;; timer-list.el --- list active timers in a buffer
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Package: emacs
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el
index 64aebea..d872256 100644
--- a/lisp/emacs-lisp/timer.el
+++ b/lisp/emacs-lisp/timer.el
@@ -1,6 +1,6 @@
 ;;; timer.el --- run a function with args at some time in future -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Package: emacs
diff --git a/lisp/emacs-lisp/tq.el b/lisp/emacs-lisp/tq.el
index c01262d..3f5d78d 100644
--- a/lisp/emacs-lisp/tq.el
+++ b/lisp/emacs-lisp/tq.el
@@ -1,6 +1,6 @@
 ;;; tq.el --- utility to maintain a transaction queue  -*- lexical-binding:t 
-*-
 
-;; Copyright (C) 1985-1987, 1992, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1985-1987, 1992, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Scott Draves <address@hidden>
diff --git a/lisp/emacs-lisp/trace.el b/lisp/emacs-lisp/trace.el
index 1913a78..1c57d73 100644
--- a/lisp/emacs-lisp/trace.el
+++ b/lisp/emacs-lisp/trace.el
@@ -1,6 +1,6 @@
 ;;; trace.el --- tracing facility for Emacs Lisp functions  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1993, 1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Hans Chalupsky <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/emacs-lisp/unsafep.el b/lisp/emacs-lisp/unsafep.el
index 584684f..1ab65a0 100644
--- a/lisp/emacs-lisp/unsafep.el
+++ b/lisp/emacs-lisp/unsafep.el
@@ -1,6 +1,6 @@
 ;;;; unsafep.el -- Determine whether a Lisp form is safe to evaluate
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Jonathan Yavner <address@hidden>
 ;; Maintainer: Jonathan Yavner <address@hidden>
diff --git a/lisp/emacs-lisp/warnings.el b/lisp/emacs-lisp/warnings.el
index 9ecfcd8..671d279 100644
--- a/lisp/emacs-lisp/warnings.el
+++ b/lisp/emacs-lisp/warnings.el
@@ -1,6 +1,6 @@
 ;;; warnings.el --- log and display warnings
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: internal
diff --git a/lisp/emacs-lock.el b/lisp/emacs-lock.el
index 28b8e35..dbf6ac8 100644
--- a/lisp/emacs-lock.el
+++ b/lisp/emacs-lock.el
@@ -1,6 +1,6 @@
 ;;; emacs-lock.el --- protect buffers against killing or exiting -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Juanma Barranquero <address@hidden>
 ;; Inspired by emacs-lock.el by Tom Wurgler <address@hidden>
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index 542dbcc..63b8e9b 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -1,6 +1,6 @@
 ;;; cua-base.el --- emulate CUA key bindings
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Kim F. Storm <address@hidden>
 ;; Keywords: keyboard emulations convenience cua
diff --git a/lisp/emulation/cua-gmrk.el b/lisp/emulation/cua-gmrk.el
index 8e02378..baa430e 100644
--- a/lisp/emulation/cua-gmrk.el
+++ b/lisp/emulation/cua-gmrk.el
@@ -1,6 +1,6 @@
 ;;; cua-gmrk.el --- CUA unified global mark support
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Kim F. Storm <address@hidden>
 ;; Keywords: keyboard emulations convenience cua mark
diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el
index efc3c3f..3538181 100644
--- a/lisp/emulation/cua-rect.el
+++ b/lisp/emulation/cua-rect.el
@@ -1,6 +1,6 @@
 ;;; cua-rect.el --- CUA unified rectangle support
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Kim F. Storm <address@hidden>
 ;; Keywords: keyboard emulations convenience CUA
diff --git a/lisp/emulation/edt-lk201.el b/lisp/emulation/edt-lk201.el
index bb8577c..9afb25c 100644
--- a/lisp/emulation/edt-lk201.el
+++ b/lisp/emulation/edt-lk201.el
@@ -1,6 +1,6 @@
 ;;; edt-lk201.el --- enhanced EDT keypad mode emulation for LK-201 keyboards
 
-;; Copyright (C) 1986, 1992-1993, 1995, 2001-2016 Free Software
+;; Copyright (C) 1986, 1992-1993, 1995, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Kevin Gallagher <address@hidden>
diff --git a/lisp/emulation/edt-mapper.el b/lisp/emulation/edt-mapper.el
index 0bba9e3..457ad55 100644
--- a/lisp/emulation/edt-mapper.el
+++ b/lisp/emulation/edt-mapper.el
@@ -1,6 +1,6 @@
 ;;; edt-mapper.el --- create an EDT LK-201 map file for X-Windows Emacs
 
-;; Copyright (C) 1994-1995, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1995, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Kevin Gallagher <address@hidden>
 ;; Maintainer: Kevin Gallagher <address@hidden>
@@ -57,9 +57,9 @@
 ;;  Usage:
 
 ;;  Simply load this file into emacs (version 19 or higher)
-;;  using the following command.
+;;  and run the function edt-mapper, using the following command.
 
-;;    emacs -q -l edt-mapper.el
+;;    emacs -q -l edt-mapper -f edt-mapper
 
 ;;  The "-q" option prevents loading of your init file (commands
 ;;  therein might confuse this program).
@@ -96,10 +96,6 @@
 
 ;;; Code:
 
-;; Otherwise it just hangs.  This seems preferable.
-(if noninteractive
-    (error "edt-mapper cannot be loaded in batch mode"))
-
 ;;;
 ;;;  Decide Emacs Variant, GNU Emacs or XEmacs (aka Lucid Emacs).
 ;;;  Determine Window System, and X Server Vendor (if appropriate).
@@ -124,6 +120,8 @@
 ;;;
 ;;;  Key variables
 ;;;
+
+;; FIXME some/all of these should be let-bound, not global.
 (defvar edt-key nil)
 (defvar edt-enter nil)
 (defvar edt-return nil)
@@ -137,88 +135,116 @@
 (defvar edt-save-function-key-map)
 
 ;;;
-;;;  Determine Terminal Type (if appropriate).
-;;;
-
-(if (and edt-window-system (not (eq edt-window-system 'tty)))
-    (setq edt-term nil)
-  (setq edt-term (getenv "TERM")))
-
-;;;
-;;; Implements a workaround for a feature that was added to simple.el.
-;;;
-;;; Many function keys have no Emacs functions assigned to them by
-;;; default. A subset of these are typically assigned functions in the
-;;; EDT emulation. This includes all the keypad keys and a some others
-;;; like Delete.
-;;;
-;;; Logic in simple.el maps some of these unassigned function keys to
-;;; ordinary typing keys.  Where this is the case, a call to
-;;; read-key-sequence, below, does not return the name of the function
-;;; key pressed by the user but, instead, it returns the name of the
-;;; key to which it has been mapped.  It needs to know the name of the
-;;; key pressed by the user. As a workaround, we assign a function to
-;;; each of the unassigned function keys of interest, here.  These
-;;; assignments override the mapping to other keys and are only
-;;; temporary since, when edt-mapper is finished executing, it causes
-;;; Emacs to exit.
-;;;
-
-(mapc
- (lambda (function-key)
-   (if (not (lookup-key (current-global-map) function-key))
-       (define-key (current-global-map) function-key 'forward-char)))
- '([kp-0] [kp-1] [kp-2] [kp-3] [kp-4]
-   [kp-5] [kp-6] [kp-7] [kp-8] [kp-9]
-   [kp-space]
-   [kp-tab]
-   [kp-enter]
-   [kp-multiply]
-   [kp-add]
-   [kp-separator]
-   [kp-subtract]
-   [kp-decimal]
-   [kp-divide]
-   [kp-equal]
-   [backspace]
-   [delete]
-   [tab]
-   [linefeed]
-   [clear]))
-
-;;;
-;;;  Make sure the window is big enough to display the instructions,
-;;;  except where window cannot be re-sized.
-;;;
-
-(if (and edt-window-system (not (eq edt-window-system 'tty)))
-    (set-frame-size (selected-frame) 80 36))
-
-;;;
-;;;  Create buffers - Directions and Keys
+;;;  Key mapping functions
 ;;;
-(if (not (get-buffer "Directions")) (generate-new-buffer "Directions"))
-(if (not (get-buffer "Keys")) (generate-new-buffer "Keys"))
+(defun edt-map-key (ident descrip)
+  (interactive)
+  (if (featurep 'xemacs)
+      (progn
+       (setq edt-key-seq (read-key-sequence (format "Press %s%s: " ident 
descrip)))
+       (setq edt-key (concat "[" (format "%s" (event-key (aref edt-key-seq 
0))) "]"))
+       (cond ((not (equal edt-key edt-return))
+              (set-buffer "Keys")
+              (insert (format "    (\"%s\" . %s)\n" ident edt-key))
+              (set-buffer "Directions"))
+             ;; bogosity to get next prompt to come up, if the user hits <CR>!
+             ;; check periodically to see if this is still needed...
+             (t
+              (set-buffer "Keys")
+              (insert (format "    (\"%s\" . \"\" )\n" ident))
+              (set-buffer "Directions"))))
+    (setq edt-key (read-key-sequence (format "Press %s%s: " ident descrip)))
+    (cond ((not (equal edt-key edt-return))
+          (set-buffer "Keys")
+          (insert (if (vectorp edt-key)
+                      (format "    (\"%s\" . %s)\n" ident edt-key)
+                    (format "    (\"%s\" . \"%s\")\n" ident edt-key)))
+          (set-buffer "Directions"))
+         ;; bogosity to get next prompt to come up, if the user hits <CR>!
+         ;; check periodically to see if this is still needed...
+         (t
+          (set-buffer "Keys")
+          (insert (format "    (\"%s\" . \"\" )\n" ident))
+          (set-buffer "Directions"))))
+  edt-key)
 
-;;;
-;;;  Put header in the Keys buffer
-;;;
-(set-buffer "Keys")
-(insert "\
+(defun edt-mapper ()
+  (if noninteractive
+    (user-error "edt-mapper cannot be loaded in batch mode"))
+  ;;  Determine Terminal Type (if appropriate).
+  (if (and edt-window-system (not (eq edt-window-system 'tty)))
+      (setq edt-term nil)
+    (setq edt-term (getenv "TERM")))
+  ;;
+  ;; Implements a workaround for a feature that was added to simple.el.
+  ;;
+  ;; Many function keys have no Emacs functions assigned to them by
+  ;; default. A subset of these are typically assigned functions in the
+  ;; EDT emulation. This includes all the keypad keys and a some others
+  ;; like Delete.
+  ;;
+  ;; Logic in simple.el maps some of these unassigned function keys to
+  ;; ordinary typing keys.  Where this is the case, a call to
+  ;; read-key-sequence, below, does not return the name of the function
+  ;; key pressed by the user but, instead, it returns the name of the
+  ;; key to which it has been mapped.  It needs to know the name of the
+  ;; key pressed by the user. As a workaround, we assign a function to
+  ;; each of the unassigned function keys of interest, here.  These
+  ;; assignments override the mapping to other keys and are only
+  ;; temporary since, when edt-mapper is finished executing, it causes
+  ;; Emacs to exit.
+  ;;
+  (mapc
+   (lambda (function-key)
+     (if (not (lookup-key (current-global-map) function-key))
+        (define-key (current-global-map) function-key 'forward-char)))
+   '([kp-0] [kp-1] [kp-2] [kp-3] [kp-4]
+     [kp-5] [kp-6] [kp-7] [kp-8] [kp-9]
+     [kp-space]
+     [kp-tab]
+     [kp-enter]
+     [kp-multiply]
+     [kp-add]
+     [kp-separator]
+     [kp-subtract]
+     [kp-decimal]
+     [kp-divide]
+     [kp-equal]
+     [backspace]
+     [delete]
+     [tab]
+     [linefeed]
+     [clear]))
+  ;;
+  ;;  Make sure the window is big enough to display the instructions,
+  ;;  except where window cannot be re-sized.
+  ;;
+  (if (and edt-window-system (not (eq edt-window-system 'tty)))
+      (set-frame-size (selected-frame) 80 36))
+  ;;
+  ;;  Create buffers - Directions and Keys
+  ;;
+  (if (not (get-buffer "Directions")) (generate-new-buffer "Directions"))
+  (if (not (get-buffer "Keys")) (generate-new-buffer "Keys"))
+  ;;
+  ;;  Put header in the Keys buffer
+  ;;
+  (set-buffer "Keys")
+  (insert "\
 ;;
 ;;  Key definitions for the EDT emulation within GNU Emacs
 ;;
 
-(defconst *EDT-keys*
+\(defconst *EDT-keys*
   '(
-")
-
-;;;
-;;;   Display directions
-;;;
-(switch-to-buffer "Directions")
-(if (and edt-window-system (not (eq edt-window-system 'tty)))
-    (insert "
+    ")
+
+  ;;
+  ;;   Display directions
+  ;;
+  (switch-to-buffer "Directions")
+  (if (and edt-window-system (not (eq edt-window-system 'tty)))
+      (insert "
                                   EDT MAPPER
 
     You will be asked to press keys to create a custom mapping (under a
@@ -240,7 +266,7 @@
     just press RETURN at the prompt.
 
 ")
-  (insert "
+    (insert "
                                   EDT MAPPER
 
     You will be asked to press keys to create a custom mapping of your
@@ -259,39 +285,39 @@
 
 "))
 
-(delete-other-windows)
-
-;;;
-;;;  Save <CR> for future reference.
-;;;
-;;;  For GNU Emacs, running in a Window System, first hide bindings in
-;;;  function-key-map.
-;;;
-(cond
- ((featurep 'xemacs)
-  (setq edt-return-seq (read-key-sequence "Hit carriage-return <CR> to 
continue "))
-  (setq edt-return (concat "[" (format "%s" (event-key (aref edt-return-seq 
0))) "]")))
- (t
-  (if edt-window-system
-      (progn
-       (setq edt-save-function-key-map function-key-map)
-       (setq function-key-map (make-sparse-keymap))))
-  (setq edt-return (read-key-sequence "Hit carriage-return <CR> to continue 
"))))
-
-;;;
-;;;  Remove prefix-key bindings to F1 and F2 in global-map so they can be
-;;;  bound in the EDT Emulation mode.
-;;;
-(global-unset-key [f1])
-(global-unset-key [f2])
-
-;;;
-;;;   Display Keypad Diagram and Begin Prompting for Keys
-;;;
-(set-buffer "Directions")
-(delete-region (point-min) (point-max))
-(if (and edt-window-system (not (eq edt-window-system 'tty)))
-    (insert "
+  (delete-other-windows)
+
+  ;;
+  ;;  Save <CR> for future reference.
+  ;;
+  ;;  For GNU Emacs, running in a Window System, first hide bindings in
+  ;;  function-key-map.
+  ;;
+  (cond
+   ((featurep 'xemacs)
+    (setq edt-return-seq (read-key-sequence "Hit carriage-return <CR> to 
continue "))
+    (setq edt-return (concat "[" (format "%s" (event-key (aref edt-return-seq 
0))) "]")))
+   (t
+    (if edt-window-system
+       (progn
+         (setq edt-save-function-key-map function-key-map)
+         (setq function-key-map (make-sparse-keymap))))
+    (setq edt-return (read-key-sequence "Hit carriage-return <CR> to continue 
"))))
+
+  ;;
+  ;;  Remove prefix-key bindings to F1 and F2 in global-map so they can be
+  ;;  bound in the EDT Emulation mode.
+  ;;
+  (global-unset-key [f1])
+  (global-unset-key [f2])
+
+  ;;
+  ;;   Display Keypad Diagram and Begin Prompting for Keys
+  ;;
+  (set-buffer "Directions")
+  (delete-region (point-min) (point-max))
+  (if (and edt-window-system (not (eq edt-window-system 'tty)))
+      (insert "
 
           PRESS THE KEY SPECIFIED IN THE MINIBUFFER BELOW.
 
@@ -321,11 +347,11 @@
          REMEMBER:  JUST PRESS RETURN TO SKIP MAPPING A KEY.
 
 ")
-  (progn
-    (insert "
+    (progn
+      (insert "
     GENERATING A CUSTOM CONFIGURATION FILE FOR TERMINAL TYPE:  ")
-    (insert (format "%s." edt-term))
-    (insert "
+      (insert (format "%s." edt-term))
+      (insert "
 
           PRESS THE KEY SPECIFIED IN THE MINIBUFFER BELOW.
 
@@ -347,142 +373,109 @@
          REMEMBER:  JUST PRESS RETURN TO SKIP MAPPING A KEY.")))
 
 
-;;;
-;;;  Key mapping functions
-;;;
-(defun edt-map-key (ident descrip)
-  (interactive)
-  (if (featurep 'xemacs)
-      (progn
-       (setq edt-key-seq (read-key-sequence (format "Press %s%s: " ident 
descrip)))
-       (setq edt-key (concat "[" (format "%s" (event-key (aref edt-key-seq 
0))) "]"))
-       (cond ((not (equal edt-key edt-return))
-              (set-buffer "Keys")
-              (insert (format "    (\"%s\" . %s)\n" ident edt-key))
-              (set-buffer "Directions"))
-             ;; bogosity to get next prompt to come up, if the user hits <CR>!
-             ;; check periodically to see if this is still needed...
-             (t
-              (set-buffer "Keys")
-              (insert (format "    (\"%s\" . \"\" )\n" ident))
-              (set-buffer "Directions"))))
-    (setq edt-key (read-key-sequence (format "Press %s%s: " ident descrip)))
-    (cond ((not (equal edt-key edt-return))
-          (set-buffer "Keys")
-          (insert (if (vectorp edt-key)
-                      (format "    (\"%s\" . %s)\n" ident edt-key)
-                    (format "    (\"%s\" . \"%s\")\n" ident edt-key)))
-          (set-buffer "Directions"))
-         ;; bogosity to get next prompt to come up, if the user hits <CR>!
-         ;; check periodically to see if this is still needed...
-         (t
-          (set-buffer "Keys")
-          (insert (format "    (\"%s\" . \"\" )\n" ident))
-          (set-buffer "Directions"))))
-  edt-key)
 
-(set-buffer "Keys")
-(insert "
+  (set-buffer "Keys")
+  (insert "
 ;;
 ;;  Arrows
 ;;
 ")
-(set-buffer "Directions")
+  (set-buffer "Directions")
 
-(edt-map-key "UP"     " - The Up Arrow Key")
-(edt-map-key "DOWN"   " - The Down Arrow Key")
-(edt-map-key "LEFT"   " - The Left Arrow Key")
-(edt-map-key "RIGHT"  " - The Right Arrow Key")
+  (edt-map-key "UP"     " - The Up Arrow Key")
+  (edt-map-key "DOWN"   " - The Down Arrow Key")
+  (edt-map-key "LEFT"   " - The Left Arrow Key")
+  (edt-map-key "RIGHT"  " - The Right Arrow Key")
 
 
-(set-buffer "Keys")
-(insert "
+  (set-buffer "Keys")
+  (insert "
 ;;
 ;;  PF keys
 ;;
 ")
-(set-buffer "Directions")
+  (set-buffer "Directions")
 
-(edt-map-key "PF1"  " - The PF1 (GOLD) Key")
-(edt-map-key "PF2"  " - The Keypad PF2 Key")
-(edt-map-key "PF3"  " - The Keypad PF3 Key")
-(edt-map-key "PF4"  " - The Keypad PF4 Key")
+  (edt-map-key "PF1"  " - The PF1 (GOLD) Key")
+  (edt-map-key "PF2"  " - The Keypad PF2 Key")
+  (edt-map-key "PF3"  " - The Keypad PF3 Key")
+  (edt-map-key "PF4"  " - The Keypad PF4 Key")
 
-(set-buffer "Keys")
-(insert "
+  (set-buffer "Keys")
+  (insert "
 ;;
 ;;  KP0-9 KP- KP, KPP and KPE
 ;;
 ")
-(set-buffer "Directions")
-
-(edt-map-key "KP0"      " - The Keypad 0 Key")
-(edt-map-key "KP1"      " - The Keypad 1 Key")
-(edt-map-key "KP2"      " - The Keypad 2 Key")
-(edt-map-key "KP3"      " - The Keypad 3 Key")
-(edt-map-key "KP4"      " - The Keypad 4 Key")
-(edt-map-key "KP5"      " - The Keypad 5 Key")
-(edt-map-key "KP6"      " - The Keypad 6 Key")
-(edt-map-key "KP7"      " - The Keypad 7 Key")
-(edt-map-key "KP8"      " - The Keypad 8 Key")
-(edt-map-key "KP9"      " - The Keypad 9 Key")
-(edt-map-key "KP-"      " - The Keypad - Key")
-(edt-map-key "KP,"      " - The Keypad , Key")
-(edt-map-key "KPP"      " - The Keypad . Key")
-(edt-map-key "KPE"      " - The Keypad Enter Key")
-;; Save the enter key
-(setq edt-enter edt-key)
-(setq edt-enter-seq edt-key-seq)
-
-
-(set-buffer "Keys")
-(insert "
+  (set-buffer "Directions")
+
+  (edt-map-key "KP0"      " - The Keypad 0 Key")
+  (edt-map-key "KP1"      " - The Keypad 1 Key")
+  (edt-map-key "KP2"      " - The Keypad 2 Key")
+  (edt-map-key "KP3"      " - The Keypad 3 Key")
+  (edt-map-key "KP4"      " - The Keypad 4 Key")
+  (edt-map-key "KP5"      " - The Keypad 5 Key")
+  (edt-map-key "KP6"      " - The Keypad 6 Key")
+  (edt-map-key "KP7"      " - The Keypad 7 Key")
+  (edt-map-key "KP8"      " - The Keypad 8 Key")
+  (edt-map-key "KP9"      " - The Keypad 9 Key")
+  (edt-map-key "KP-"      " - The Keypad - Key")
+  (edt-map-key "KP,"      " - The Keypad , Key")
+  (edt-map-key "KPP"      " - The Keypad . Key")
+  (edt-map-key "KPE"      " - The Keypad Enter Key")
+  ;; Save the enter key
+  (setq edt-enter edt-key)
+  (setq edt-enter-seq edt-key-seq)
+
+
+  (set-buffer "Keys")
+  (insert "
 ;;
 ;;  Editing keypad (FIND, INSERT, REMOVE)
 ;;                 (SELECT, PREVIOUS, NEXT)
 ;;
 ")
-(set-buffer "Directions")
+  (set-buffer "Directions")
 
-(edt-map-key "FIND"      " - The Find key on the editing keypad")
-(edt-map-key "INSERT"    " - The Insert key on the editing keypad")
-(edt-map-key "REMOVE"    " - The Remove key on the editing keypad")
-(edt-map-key "SELECT"    " - The Select key on the editing keypad")
-(edt-map-key "PREVIOUS"  " - The Prev Scr key on the editing keypad")
-(edt-map-key "NEXT"      " - The Next Scr key on the editing keypad")
+  (edt-map-key "FIND"      " - The Find key on the editing keypad")
+  (edt-map-key "INSERT"    " - The Insert key on the editing keypad")
+  (edt-map-key "REMOVE"    " - The Remove key on the editing keypad")
+  (edt-map-key "SELECT"    " - The Select key on the editing keypad")
+  (edt-map-key "PREVIOUS"  " - The Prev Scr key on the editing keypad")
+  (edt-map-key "NEXT"      " - The Next Scr key on the editing keypad")
 
-(set-buffer "Keys")
-(insert "
+  (set-buffer "Keys")
+  (insert "
 ;;
 ;;  F1-14 Help Do F17-F20
 ;;
 ")
-(set-buffer "Directions")
-
-(edt-map-key "F1"        " - F1 Function Key")
-(edt-map-key "F2"        " - F2 Function Key")
-(edt-map-key "F3"        " - F3 Function Key")
-(edt-map-key "F4"        " - F4 Function Key")
-(edt-map-key "F5"        " - F5 Function Key")
-(edt-map-key "F6"        " - F6 Function Key")
-(edt-map-key "F7"        " - F7 Function Key")
-(edt-map-key "F8"        " - F8 Function Key")
-(edt-map-key "F9"        " - F9 Function Key")
-(edt-map-key "F10"       " - F10 Function Key")
-(edt-map-key "F11"       " - F11 Function Key")
-(edt-map-key "F12"       " - F12 Function Key")
-(edt-map-key "F13"       " - F13 Function Key")
-(edt-map-key "F14"       " - F14 Function Key")
-(edt-map-key "HELP"      " - HELP Function Key")
-(edt-map-key "DO"        " - DO Function Key")
-(edt-map-key "F17"       " - F17 Function Key")
-(edt-map-key "F18"       " - F18 Function Key")
-(edt-map-key "F19"       " - F19 Function Key")
-(edt-map-key "F20"       " - F20 Function Key")
-
-(set-buffer "Directions")
-(delete-region (point-min) (point-max))
-(insert "
+  (set-buffer "Directions")
+
+  (edt-map-key "F1"        " - F1 Function Key")
+  (edt-map-key "F2"        " - F2 Function Key")
+  (edt-map-key "F3"        " - F3 Function Key")
+  (edt-map-key "F4"        " - F4 Function Key")
+  (edt-map-key "F5"        " - F5 Function Key")
+  (edt-map-key "F6"        " - F6 Function Key")
+  (edt-map-key "F7"        " - F7 Function Key")
+  (edt-map-key "F8"        " - F8 Function Key")
+  (edt-map-key "F9"        " - F9 Function Key")
+  (edt-map-key "F10"       " - F10 Function Key")
+  (edt-map-key "F11"       " - F11 Function Key")
+  (edt-map-key "F12"       " - F12 Function Key")
+  (edt-map-key "F13"       " - F13 Function Key")
+  (edt-map-key "F14"       " - F14 Function Key")
+  (edt-map-key "HELP"      " - HELP Function Key")
+  (edt-map-key "DO"        " - DO Function Key")
+  (edt-map-key "F17"       " - F17 Function Key")
+  (edt-map-key "F18"       " - F18 Function Key")
+  (edt-map-key "F19"       " - F19 Function Key")
+  (edt-map-key "F20"       " - F20 Function Key")
+
+  (set-buffer "Directions")
+  (delete-region (point-min) (point-max))
+  (insert "
                        ADDITIONAL FUNCTION KEYS
 
     Your keyboard may have additional function keys which do not correspond
@@ -501,53 +494,53 @@
 
     When you are done, just press RETURN at the \"EDT Key Name:\" prompt.
 ")
-(switch-to-buffer "Directions")
-;;;
-;;;  Add support for extras keys
-;;;
-(set-buffer "Keys")
-(insert "\
+  (switch-to-buffer "Directions")
+  ;;
+  ;;  Add support for extras keys
+  ;;
+  (set-buffer "Keys")
+  (insert "\
 ;;
 ;;  Extra Keys
 ;;
 ")
-;;;
-;;;  Restore function-key-map.
-;;;
-(if (and edt-window-system (not (featurep 'xemacs)))
-    (setq function-key-map edt-save-function-key-map))
-(setq EDT-key-name "")
-(while (not
-        (string-equal (setq EDT-key-name (read-string "EDT Key Name: ")) ""))
-  (edt-map-key EDT-key-name ""))
-
-;
-; No more keys to add, so wrap up.
-;
-(set-buffer "Keys")
-(insert "\
+  ;;
+  ;;  Restore function-key-map.
+  ;;
+  (if (and edt-window-system (not (featurep 'xemacs)))
+      (setq function-key-map edt-save-function-key-map))
+  (setq EDT-key-name "")
+  (while (not
+         (string-equal (setq EDT-key-name (read-string "EDT Key Name: ")) ""))
+    (edt-map-key EDT-key-name ""))
+
+  ;;
+  ;; No more keys to add, so wrap up.
+  ;;
+  (set-buffer "Keys")
+  (insert "\
     )
   )
 ")
 
-;;;
-;;;  Save the key mapping program
-;;;
-;;;
-;;;  Save the key mapping file
-;;;
-(let ((file (concat
-            "~/.edt-" (if (featurep 'xemacs) "xemacs" "gnu")
-            (if edt-term (concat "-" edt-term))
-            (if edt-xserver (concat "-" edt-xserver))
-            (if edt-window-system (concat "-" (upcase (symbol-name 
edt-window-system))))
-            "-keys")))
-  (set-visited-file-name
-   (read-file-name (format "Save key mapping to file (default %s): " file) nil 
file)))
-(save-buffer)
-
-(message "That's it!  Press any key to exit")
-(sit-for 600)
-(kill-emacs t)
+  ;;
+  ;;  Save the key mapping program
+  ;;
+  ;;
+  ;;  Save the key mapping file
+  ;;
+  (let ((file (concat
+              "~/.edt-" (if (featurep 'xemacs) "xemacs" "gnu")
+              (if edt-term (concat "-" edt-term))
+              (if edt-xserver (concat "-" edt-xserver))
+              (if edt-window-system (concat "-" (upcase (symbol-name 
edt-window-system))))
+              "-keys")))
+    (set-visited-file-name
+     (read-file-name (format "Save key mapping to file (default %s): " file) 
nil file)))
+  (save-buffer)
+
+  (message "That's it!  Press any key to exit")
+  (sit-for 600)
+  (kill-emacs t))
 
 ;;; edt-mapper.el ends here
diff --git a/lisp/emulation/edt-pc.el b/lisp/emulation/edt-pc.el
index 1f55f4a..3ea249f 100644
--- a/lisp/emulation/edt-pc.el
+++ b/lisp/emulation/edt-pc.el
@@ -1,6 +1,6 @@
 ;;; edt-pc.el --- enhanced EDT keypad mode emulation for PC 101 keyboards
 
-;; Copyright (C) 1986, 1994-1995, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1986, 1994-1995, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Kevin Gallagher <address@hidden>
diff --git a/lisp/emulation/edt-vt100.el b/lisp/emulation/edt-vt100.el
index 019283e..a8c186b 100644
--- a/lisp/emulation/edt-vt100.el
+++ b/lisp/emulation/edt-vt100.el
@@ -1,6 +1,6 @@
 ;;; edt-vt100.el --- enhanced EDT keypad mode emulation for VT series terminals
 
-;; Copyright (C) 1986, 1992-1993, 1995, 2002-2016 Free Software
+;; Copyright (C) 1986, 1992-1993, 1995, 2002-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Kevin Gallagher <address@hidden>
diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el
index f408ff7..a6b2d78 100644
--- a/lisp/emulation/edt.el
+++ b/lisp/emulation/edt.el
@@ -1,6 +1,6 @@
 ;;; edt.el --- enhanced EDT keypad mode emulation for GNU Emacs
 
-;; Copyright (C) 1986, 1992-1995, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1986, 1992-1995, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Kevin Gallagher <address@hidden>
@@ -1928,6 +1928,8 @@ Optional argument NOT-YES changes the default to 
negative."
 ;;; INITIALIZATION COMMANDS.
 ;;;
 
+(declare-function edt-mapper "edt-mapper" ())
+
 ;;;
 ;;;  Function used to load LK-201 key mapping file generated by edt-mapper.el.
 ;;;
@@ -1968,7 +1970,7 @@ created."
      You can do this by quitting Emacs and then invoking Emacs again as
      follows:
 
-          emacs -q -l edt-mapper
+          emacs -q -l edt-mapper -f edt-mapper
 
      [NOTE:  If you do nothing out of the ordinary in your init file, and
      the search for edt-mapper is successful, you can try running it now.]
@@ -1983,7 +1985,9 @@ created."
                  (insert (format
                           "Ah yes, there it is, in \n\n       %s \n\n" path))
                  (if (edt-y-or-n-p "Do you want to run it now? ")
-                     (load-file path)
+                     (progn
+                       (load-file path)
+                       (edt-mapper))
                    (error "EDT Emulation not configured")))
              (insert (substitute-command-keys
                      "Nope, I can't seem to find it.  :-(\n\n"))
diff --git a/lisp/emulation/keypad.el b/lisp/emulation/keypad.el
index 1e283b2..0c7135e 100644
--- a/lisp/emulation/keypad.el
+++ b/lisp/emulation/keypad.el
@@ -1,6 +1,6 @@
 ;;; keypad.el --- simplified keypad bindings
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Kim F. Storm <address@hidden>
 ;; Keywords: keyboard convenience
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
index 3ce1b4d..8636428 100644
--- a/lisp/emulation/viper-cmd.el
+++ b/lisp/emulation/viper-cmd.el
@@ -1,6 +1,6 @@
 ;;; viper-cmd.el --- Vi command support for Viper  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: viper
diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el
index 9c9cd68..edc71ea 100644
--- a/lisp/emulation/viper-ex.el
+++ b/lisp/emulation/viper-ex.el
@@ -1,6 +1,6 @@
 ;;; viper-ex.el --- functions implementing the Ex commands for Viper
 
-;; Copyright (C) 1994-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: viper
diff --git a/lisp/emulation/viper-init.el b/lisp/emulation/viper-init.el
index ee09390..0d47801 100644
--- a/lisp/emulation/viper-init.el
+++ b/lisp/emulation/viper-init.el
@@ -1,6 +1,6 @@
 ;;; viper-init.el --- some common definitions for Viper
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: viper
diff --git a/lisp/emulation/viper-keym.el b/lisp/emulation/viper-keym.el
index f5bb32f..a18833d 100644
--- a/lisp/emulation/viper-keym.el
+++ b/lisp/emulation/viper-keym.el
@@ -1,6 +1,6 @@
 ;;; viper-keym.el --- Viper keymaps
 
-;; Copyright (C) 1994-1997, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1997, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: viper
diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el
index c8626e4..1353f7e 100644
--- a/lisp/emulation/viper-macs.el
+++ b/lisp/emulation/viper-macs.el
@@ -1,6 +1,6 @@
 ;;; viper-macs.el --- functions implementing keyboard macros for Viper
 
-;; Copyright (C) 1994-1997, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1997, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: viper
diff --git a/lisp/emulation/viper-mous.el b/lisp/emulation/viper-mous.el
index b95a341..2600c50 100644
--- a/lisp/emulation/viper-mous.el
+++ b/lisp/emulation/viper-mous.el
@@ -1,6 +1,6 @@
 ;;; viper-mous.el --- mouse support for Viper
 
-;; Copyright (C) 1994-1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: viper
diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el
index 6850036..e6fd609 100644
--- a/lisp/emulation/viper-util.el
+++ b/lisp/emulation/viper-util.el
@@ -1,6 +1,6 @@
 ;;; viper-util.el --- Utilities used by viper.el
 
-;; Copyright (C) 1994-1997, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1997, 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: viper
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el
index c5dac55..b03af9b 100644
--- a/lisp/emulation/viper.el
+++ b/lisp/emulation/viper.el
@@ -3,7 +3,7 @@
 ;;              and a venomous VI PERil.
 ;;              Viper Is also a Package for Emacs Rebels.
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Keywords: emulations
diff --git a/lisp/env.el b/lisp/env.el
index 6c39f82..859f280 100644
--- a/lisp/env.el
+++ b/lisp/env.el
@@ -1,6 +1,6 @@
 ;;; env.el --- functions to manipulate environment variables  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1991, 1994, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1994, 2000-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: processes, unix
diff --git a/lisp/epa-dired.el b/lisp/epa-dired.el
index 3d39e7d..5eb6ca5 100644
--- a/lisp/epa-dired.el
+++ b/lisp/epa-dired.el
@@ -1,5 +1,5 @@
 ;;; epa-dired.el --- the EasyPG Assistant, dired extension -*- 
lexical-binding: t -*-
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Keywords: PGP, GnuPG
diff --git a/lisp/epa-file.el b/lisp/epa-file.el
index 4b0d9b3..c97acb8 100644
--- a/lisp/epa-file.el
+++ b/lisp/epa-file.el
@@ -1,5 +1,5 @@
 ;;; epa-file.el --- the EasyPG Assistant, transparent file encryption -*- 
lexical-binding: t -*-
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Keywords: PGP, GnuPG
diff --git a/lisp/epa-hook.el b/lisp/epa-hook.el
index cd9c3d3..c6577c8 100644
--- a/lisp/epa-hook.el
+++ b/lisp/epa-hook.el
@@ -1,5 +1,5 @@
 ;;; epa-hook.el --- preloaded code to enable epa-file.el -*- lexical-binding: 
t -*-
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Keywords: PGP, GnuPG
diff --git a/lisp/epa-mail.el b/lisp/epa-mail.el
index eae9a83..7069273 100644
--- a/lisp/epa-mail.el
+++ b/lisp/epa-mail.el
@@ -1,5 +1,5 @@
 ;;; epa-mail.el --- the EasyPG Assistant, minor-mode for mail composer -*- 
lexical-binding: t -*-
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Keywords: PGP, GnuPG, mail, message
diff --git a/lisp/epa.el b/lisp/epa.el
index 1707440..4378c09 100644
--- a/lisp/epa.el
+++ b/lisp/epa.el
@@ -1,6 +1,6 @@
 ;;; epa.el --- the EasyPG Assistant -*- lexical-binding: t -*-
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Keywords: PGP, GnuPG
diff --git a/lisp/epg-config.el b/lisp/epg-config.el
index 02b9e45..ea1ae6c 100644
--- a/lisp/epg-config.el
+++ b/lisp/epg-config.el
@@ -1,6 +1,6 @@
 ;;; epg-config.el --- configuration of the EasyPG Library
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Keywords: PGP, GnuPG
diff --git a/lisp/epg.el b/lisp/epg.el
index 315eb40..587271b 100644
--- a/lisp/epg.el
+++ b/lisp/epg.el
@@ -1,5 +1,5 @@
 ;;; epg.el --- the EasyPG Library -*- lexical-binding: t -*-
-;; Copyright (C) 1999-2000, 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2000, 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Keywords: PGP, GnuPG
diff --git a/lisp/erc/ChangeLog.1 b/lisp/erc/ChangeLog.1
index 1564496..851abaf 100644
--- a/lisp/erc/ChangeLog.1
+++ b/lisp/erc/ChangeLog.1
@@ -11706,7 +11706,7 @@
 
        * erc-speak.el, erc.el: New file.
 
-  Copyright (C) 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/erc/ChangeLog.2 b/lisp/erc/ChangeLog.2
index 4295b34..d961fbf 100644
--- a/lisp/erc/ChangeLog.2
+++ b/lisp/erc/ChangeLog.2
@@ -757,7 +757,7 @@
 
 See ChangeLog.1 for earlier changes.
 
-  Copyright (C) 2009-2016 Free Software Foundation, Inc.
+  Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/erc/erc-autoaway.el b/lisp/erc/erc-autoaway.el
index cc1ea6f..8275279 100644
--- a/lisp/erc/erc-autoaway.el
+++ b/lisp/erc/erc-autoaway.el
@@ -1,6 +1,6 @@
 ;;; erc-autoaway.el --- Provides autoaway for ERC
 
-;; Copyright (C) 2002-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Jorgen Schaefer <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index 288e8ef..8eac2e1 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -1,6 +1,6 @@
 ;;; erc-backend.el --- Backend network communication for ERC  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Filename: erc-backend.el
 ;; Author: Lawrence Mitchell <address@hidden>
diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el
index f63ac17..ee5d6fe 100644
--- a/lisp/erc/erc-button.el
+++ b/lisp/erc/erc-button.el
@@ -1,6 +1,6 @@
 ;; erc-button.el --- A way of buttonizing certain things in ERC buffers  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1996-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-capab.el b/lisp/erc/erc-capab.el
index 1a93e21..0d3b237 100644
--- a/lisp/erc/erc-capab.el
+++ b/lisp/erc/erc-capab.el
@@ -1,6 +1,6 @@
 ;;; erc-capab.el --- support for dancer-ircd and hyperion's CAPAB
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 
diff --git a/lisp/erc/erc-compat.el b/lisp/erc/erc-compat.el
index e5e6309..1ad6680 100644
--- a/lisp/erc/erc-compat.el
+++ b/lisp/erc/erc-compat.el
@@ -1,6 +1,6 @@
 ;;; erc-compat.el --- ERC compatibility code for XEmacs
 
-;; Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el
index 1b9b8ac..542e190 100644
--- a/lisp/erc/erc-dcc.el
+++ b/lisp/erc/erc-dcc.el
@@ -1,6 +1,6 @@
 ;;; erc-dcc.el --- CTCP DCC module for ERC
 
-;; Copyright (C) 1993-1995, 1998, 2002-2004, 2006-2016 Free Software
+;; Copyright (C) 1993-1995, 1998, 2002-2004, 2006-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Ben A. Mesander <address@hidden>
diff --git a/lisp/erc/erc-desktop-notifications.el 
b/lisp/erc/erc-desktop-notifications.el
index 97fb728..113f1cf 100644
--- a/lisp/erc/erc-desktop-notifications.el
+++ b/lisp/erc/erc-desktop-notifications.el
@@ -1,6 +1,6 @@
 ;; erc-desktop-notifications.el -- Send notification on PRIVMSG or mentions
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Julien Danjou <address@hidden>
 ;; Keywords: comm
diff --git a/lisp/erc/erc-ezbounce.el b/lisp/erc/erc-ezbounce.el
index 3389de8..9473578 100644
--- a/lisp/erc/erc-ezbounce.el
+++ b/lisp/erc/erc-ezbounce.el
@@ -1,6 +1,6 @@
 ;;; erc-ezbounce.el ---  Handle EZBounce bouncer commands
 
-;; Copyright (C) 2002, 2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Andreas Fuchs <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el
index 462b873..d58ccfa 100644
--- a/lisp/erc/erc-fill.el
+++ b/lisp/erc/erc-fill.el
@@ -1,6 +1,6 @@
 ;;; erc-fill.el --- Filling IRC messages in various ways
 
-;; Copyright (C) 2001-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Andreas Fuchs <address@hidden>
 ;;         Mario Lang <address@hidden>
diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el
index afe8c55..1f27036 100644
--- a/lisp/erc/erc-goodies.el
+++ b/lisp/erc/erc-goodies.el
@@ -1,6 +1,6 @@
 ;; erc-goodies.el --- Collection of ERC modules
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Jorgen Schaefer <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el
index 57266c1..cb9c21f 100644
--- a/lisp/erc/erc-ibuffer.el
+++ b/lisp/erc/erc-ibuffer.el
@@ -1,6 +1,6 @@
 ;;; erc-ibuffer.el --- ibuffer integration with ERC
 
-;; Copyright (C) 2002, 2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-identd.el b/lisp/erc/erc-identd.el
index 9d48510..61360f4 100644
--- a/lisp/erc/erc-identd.el
+++ b/lisp/erc/erc-identd.el
@@ -1,6 +1,6 @@
 ;;; erc-identd.el --- RFC1413 (identd authentication protocol) server
 
-;; Copyright (C) 2003, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-imenu.el b/lisp/erc/erc-imenu.el
index 8535fb6..95c2b35 100644
--- a/lisp/erc/erc-imenu.el
+++ b/lisp/erc/erc-imenu.el
@@ -1,6 +1,6 @@
 ;;; erc-imenu.el -- Imenu support for ERC
 
-;; Copyright (C) 2001-2002, 2004, 2006-2016 Free Software Foundation,
+;; Copyright (C) 2001-2002, 2004, 2006-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Mario Lang <address@hidden>
diff --git a/lisp/erc/erc-join.el b/lisp/erc/erc-join.el
index 1fbafe0..151ea15 100644
--- a/lisp/erc/erc-join.el
+++ b/lisp/erc/erc-join.el
@@ -1,6 +1,6 @@
 ;;; erc-join.el --- autojoin channels on connect and reconnects
 
-;; Copyright (C) 2002-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-lang.el b/lisp/erc/erc-lang.el
index 4d8311c..4aa3152 100644
--- a/lisp/erc/erc-lang.el
+++ b/lisp/erc/erc-lang.el
@@ -1,6 +1,6 @@
 ;;; erc-lang.el --- provide the LANG command to ERC
 
-;; Copyright (C) 2002, 2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-list.el b/lisp/erc/erc-list.el
index f0a5b9e..5110239 100644
--- a/lisp/erc/erc-list.el
+++ b/lisp/erc/erc-list.el
@@ -1,6 +1,6 @@
 ;;; erc-list.el --- /list support for ERC  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Tom Tromey <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el
index 61a83b1..09cffdc 100644
--- a/lisp/erc/erc-log.el
+++ b/lisp/erc/erc-log.el
@@ -1,6 +1,6 @@
 ;;; erc-log.el --- Logging facilities for ERC.
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Lawrence Mitchell <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el
index 4104a43..3f6b1e5 100644
--- a/lisp/erc/erc-match.el
+++ b/lisp/erc/erc-match.el
@@ -1,6 +1,6 @@
 ;;; erc-match.el --- Highlight messages matching certain regexps
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Andreas Fuchs <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-menu.el b/lisp/erc/erc-menu.el
index 7f5fd9a..9db1e75 100644
--- a/lisp/erc/erc-menu.el
+++ b/lisp/erc/erc-menu.el
@@ -1,6 +1,6 @@
 ;; erc-menu.el -- Menu-bar definitions for ERC
 
-;; Copyright (C) 2001-2002, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2002, 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-netsplit.el b/lisp/erc/erc-netsplit.el
index d933984..583e071 100644
--- a/lisp/erc/erc-netsplit.el
+++ b/lisp/erc/erc-netsplit.el
@@ -1,6 +1,6 @@
 ;;; erc-netsplit.el --- Reduce JOIN/QUIT messages on netsplits
 
-;; Copyright (C) 2002-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el
index f911d64..59a9356 100644
--- a/lisp/erc/erc-networks.el
+++ b/lisp/erc/erc-networks.el
@@ -1,6 +1,6 @@
 ;;; erc-networks.el --- IRC networks
 
-;; Copyright (C) 2002, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-notify.el b/lisp/erc/erc-notify.el
index ad8f6a0..54c8beb 100644
--- a/lisp/erc/erc-notify.el
+++ b/lisp/erc/erc-notify.el
@@ -1,6 +1,6 @@
 ;;; erc-notify.el --- Online status change notification  -*- lexical-binding:t 
-*-
 
-;; Copyright (C) 2002-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-page.el b/lisp/erc/erc-page.el
index 2e016c3..d441b09 100644
--- a/lisp/erc/erc-page.el
+++ b/lisp/erc/erc-page.el
@@ -1,6 +1,6 @@
 ;; erc-page.el - CTCP PAGE support for ERC
 
-;; Copyright (C) 2002, 2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 
diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el
index 9f57239..6dfe0a7 100644
--- a/lisp/erc/erc-pcomplete.el
+++ b/lisp/erc/erc-pcomplete.el
@@ -1,6 +1,6 @@
 ;;; erc-pcomplete.el --- Provides programmable completion for ERC
 
-;; Copyright (C) 2002-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Sacha Chua <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-replace.el b/lisp/erc/erc-replace.el
index 3620b34..ec443ec 100644
--- a/lisp/erc/erc-replace.el
+++ b/lisp/erc/erc-replace.el
@@ -1,6 +1,6 @@
 ;; erc-replace.el -- wash and massage messages inserted into the buffer
 
-;; Copyright (C) 2001-2002, 2004, 2006-2016 Free Software Foundation,
+;; Copyright (C) 2001-2002, 2004, 2006-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Andreas Fuchs <address@hidden>
diff --git a/lisp/erc/erc-ring.el b/lisp/erc/erc-ring.el
index b00be95..4e31ec2 100644
--- a/lisp/erc/erc-ring.el
+++ b/lisp/erc/erc-ring.el
@@ -1,6 +1,6 @@
 ;; erc-ring.el -- Command history handling for erc using ring.el
 
-;; Copyright (C) 2001-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el
index d6fd6fd..6e7c918 100644
--- a/lisp/erc/erc-services.el
+++ b/lisp/erc/erc-services.el
@@ -1,6 +1,6 @@
 ;;; erc-services.el --- Identify to NickServ
 
-;; Copyright (C) 2002-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 
diff --git a/lisp/erc/erc-sound.el b/lisp/erc/erc-sound.el
index ec4a049..4ca7a59 100644
--- a/lisp/erc/erc-sound.el
+++ b/lisp/erc/erc-sound.el
@@ -1,6 +1,6 @@
 ;;; erc-sound.el --- CTCP SOUND support for ERC
 
-;; Copyright (C) 2002-2003, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2003, 2006-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 
diff --git a/lisp/erc/erc-speedbar.el b/lisp/erc/erc-speedbar.el
index 39c8bee..4f44f41 100644
--- a/lisp/erc/erc-speedbar.el
+++ b/lisp/erc/erc-speedbar.el
@@ -1,6 +1,6 @@
 ;;; erc-speedbar.el --- Speedbar support for ERC
 
-;; Copyright (C) 2001-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
 ;; Contributor: Eric M. Ludlam <address@hidden>
diff --git a/lisp/erc/erc-spelling.el b/lisp/erc/erc-spelling.el
index f0eadf5..9b0e5fa 100644
--- a/lisp/erc/erc-spelling.el
+++ b/lisp/erc/erc-spelling.el
@@ -1,6 +1,6 @@
 ;;; erc-spelling.el --- use flyspell in ERC
 
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Jorgen Schaefer <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el
index ee4e1d2..7ce22b3 100644
--- a/lisp/erc/erc-stamp.el
+++ b/lisp/erc/erc-stamp.el
@@ -1,6 +1,6 @@
 ;;; erc-stamp.el --- Timestamping for ERC messages
 
-;; Copyright (C) 2002-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el
index a6d72d0..c49971e 100644
--- a/lisp/erc/erc-track.el
+++ b/lisp/erc/erc-track.el
@@ -1,6 +1,6 @@
 ;;; erc-track.el --- Track modified channel buffers  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-truncate.el b/lisp/erc/erc-truncate.el
index 02fa67e..7f5bb32 100644
--- a/lisp/erc/erc-truncate.el
+++ b/lisp/erc/erc-truncate.el
@@ -1,6 +1,6 @@
 ;;; erc-truncate.el --- Functions for truncating ERC buffers
 
-;; Copyright (C) 2003-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Andreas Fuchs <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc-xdcc.el b/lisp/erc/erc-xdcc.el
index 0e2a5d1..4b0b7b9 100644
--- a/lisp/erc/erc-xdcc.el
+++ b/lisp/erc/erc-xdcc.el
@@ -1,6 +1,6 @@
 ;;; erc-xdcc.el --- XDCC file-server support for ERC
 
-;; Copyright (C) 2003-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index 8501e2c..751bcde 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -1,6 +1,6 @@
 ;; erc.el --- An Emacs Internet Relay Chat client  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Alexander L. Belikoff (address@hidden)
 ;; Contributors: Sergey Berezin (address@hidden),
diff --git a/lisp/eshell/em-alias.el b/lisp/eshell/em-alias.el
index 513863d..5bf80b2 100644
--- a/lisp/eshell/em-alias.el
+++ b/lisp/eshell/em-alias.el
@@ -1,6 +1,6 @@
 ;;; em-alias.el --- creation and management of command aliases  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-banner.el b/lisp/eshell/em-banner.el
index b510609..aee7daa 100644
--- a/lisp/eshell/em-banner.el
+++ b/lisp/eshell/em-banner.el
@@ -1,6 +1,6 @@
 ;;; em-banner.el --- sample module that displays a login banner  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-basic.el b/lisp/eshell/em-basic.el
index 558bc33..c570d7c 100644
--- a/lisp/eshell/em-basic.el
+++ b/lisp/eshell/em-basic.el
@@ -1,6 +1,6 @@
 ;;; em-basic.el --- basic shell builtin commands  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el
index 4746767..5713486 100644
--- a/lisp/eshell/em-cmpl.el
+++ b/lisp/eshell/em-cmpl.el
@@ -1,6 +1,6 @@
 ;;; em-cmpl.el --- completion using the TAB key  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el
index 743779e..c10ff16 100644
--- a/lisp/eshell/em-dirs.el
+++ b/lisp/eshell/em-dirs.el
@@ -1,6 +1,6 @@
 ;;; em-dirs.el --- directory navigation commands  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el
index b06804e..fee3ff2 100644
--- a/lisp/eshell/em-glob.el
+++ b/lisp/eshell/em-glob.el
@@ -1,6 +1,6 @@
 ;;; em-glob.el --- extended file name globbing  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el
index 067c5ea..99158c7 100644
--- a/lisp/eshell/em-hist.el
+++ b/lisp/eshell/em-hist.el
@@ -1,6 +1,6 @@
 ;;; em-hist.el --- history list management  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el
index 8616dd2..79799db 100644
--- a/lisp/eshell/em-ls.el
+++ b/lisp/eshell/em-ls.el
@@ -1,6 +1,6 @@
 ;;; em-ls.el --- implementation of ls in Lisp  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el
index 219c86b..9e6890e 100644
--- a/lisp/eshell/em-pred.el
+++ b/lisp/eshell/em-pred.el
@@ -1,6 +1,6 @@
 ;;; em-pred.el --- argument predicates and modifiers (ala zsh)  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-prompt.el b/lisp/eshell/em-prompt.el
index 578b6d6..53a83e6 100644
--- a/lisp/eshell/em-prompt.el
+++ b/lisp/eshell/em-prompt.el
@@ -1,6 +1,6 @@
 ;;; em-prompt.el --- command prompts  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-rebind.el b/lisp/eshell/em-rebind.el
index c23e20b..a1f9054 100644
--- a/lisp/eshell/em-rebind.el
+++ b/lisp/eshell/em-rebind.el
@@ -1,6 +1,6 @@
 ;;; em-rebind.el --- rebind keys when point is at current input  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-script.el b/lisp/eshell/em-script.el
index 1141399..b8333ad 100644
--- a/lisp/eshell/em-script.el
+++ b/lisp/eshell/em-script.el
@@ -1,6 +1,6 @@
 ;;; em-script.el --- Eshell script files  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-smart.el b/lisp/eshell/em-smart.el
index fe9e477..7181986 100644
--- a/lisp/eshell/em-smart.el
+++ b/lisp/eshell/em-smart.el
@@ -1,6 +1,6 @@
 ;;; em-smart.el --- smart display of output  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el
index 208629c..ea38f12 100644
--- a/lisp/eshell/em-term.el
+++ b/lisp/eshell/em-term.el
@@ -1,6 +1,6 @@
 ;;; em-term.el --- running visual commands  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-tramp.el b/lisp/eshell/em-tramp.el
index 3eff20d..d269722 100644
--- a/lisp/eshell/em-tramp.el
+++ b/lisp/eshell/em-tramp.el
@@ -1,6 +1,6 @@
 ;;; em-tramp.el --- Eshell features that require TRAMP  -*- lexical-binding:t 
-*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Aidan Gauland <address@hidden>
 
diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el
index e40dbde..86e0d82 100644
--- a/lisp/eshell/em-unix.el
+++ b/lisp/eshell/em-unix.el
@@ -1,6 +1,6 @@
 ;;; em-unix.el --- UNIX command aliases  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/em-xtra.el b/lisp/eshell/em-xtra.el
index dd5c88b..fe839de 100644
--- a/lisp/eshell/em-xtra.el
+++ b/lisp/eshell/em-xtra.el
@@ -1,6 +1,6 @@
 ;;; em-xtra.el --- extra alias functions  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el
index 2f34c36..7843ca1 100644
--- a/lisp/eshell/esh-arg.el
+++ b/lisp/eshell/esh-arg.el
@@ -1,6 +1,6 @@
 ;;; esh-arg.el --- argument processing  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el
index d3613d3..583ba6a 100644
--- a/lisp/eshell/esh-cmd.el
+++ b/lisp/eshell/esh-cmd.el
@@ -1,6 +1,6 @@
 ;;; esh-cmd.el --- command invocation  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/esh-ext.el b/lisp/eshell/esh-ext.el
index 4d658cd..fb1fedc 100644
--- a/lisp/eshell/esh-ext.el
+++ b/lisp/eshell/esh-ext.el
@@ -1,6 +1,6 @@
 ;;; esh-ext.el --- commands external to Eshell  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el
index 1b4f409..97d48c1 100644
--- a/lisp/eshell/esh-io.el
+++ b/lisp/eshell/esh-io.el
@@ -1,6 +1,6 @@
 ;;; esh-io.el --- I/O management  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
@@ -125,7 +125,7 @@ from executing while Emacs is redisplaying."
                   'eshell-kill-append) t)
     ("/dev/clip" (lambda (mode)
                   (if (eq mode 'overwrite)
-                      (let ((gui-select-enable-clipboard t))
+                      (let ((select-enable-clipboard t))
                         (kill-new "")))
                   'eshell-clipboard-append) t))
   "Map virtual devices name to Emacs Lisp functions.
@@ -325,7 +325,7 @@ last execution result should not be changed."
 (defun eshell-clipboard-append (string)
   "Call `kill-append' with STRING, if it is indeed a string."
   (if (stringp string)
-      (let ((gui-select-enable-clipboard t))
+      (let ((select-enable-clipboard t))
        (kill-append string nil))))
 
 (defun eshell-get-target (target &optional mode)
diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el
index e687fd2..b1195c9 100644
--- a/lisp/eshell/esh-mode.el
+++ b/lisp/eshell/esh-mode.el
@@ -1,6 +1,6 @@
 ;;; esh-mode.el --- user interface  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/esh-module.el b/lisp/eshell/esh-module.el
index 0d978df..cbff8c8 100644
--- a/lisp/eshell/esh-module.el
+++ b/lisp/eshell/esh-module.el
@@ -1,6 +1,6 @@
 ;;; esh-module.el --- Eshell modules  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2000, 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2000, 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 ;; Keywords: processes
diff --git a/lisp/eshell/esh-opt.el b/lisp/eshell/esh-opt.el
index d0929db..59757ab 100644
--- a/lisp/eshell/esh-opt.el
+++ b/lisp/eshell/esh-opt.el
@@ -1,6 +1,6 @@
 ;;; esh-opt.el --- command options processing  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el
index 21680df..b0dbb22 100644
--- a/lisp/eshell/esh-proc.el
+++ b/lisp/eshell/esh-proc.el
@@ -1,6 +1,6 @@
 ;;; esh-proc.el --- process management  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el
index 435e4ed..d65839b 100644
--- a/lisp/eshell/esh-util.el
+++ b/lisp/eshell/esh-util.el
@@ -1,6 +1,6 @@
 ;;; esh-util.el --- general utilities  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el
index 5915efb..fe1f118 100644
--- a/lisp/eshell/esh-var.el
+++ b/lisp/eshell/esh-var.el
@@ -1,6 +1,6 @@
 ;;; esh-var.el --- handling of variables  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/lisp/eshell/eshell.el b/lisp/eshell/eshell.el
index 54281a7..faf5f89 100644
--- a/lisp/eshell/eshell.el
+++ b/lisp/eshell/eshell.el
@@ -1,6 +1,6 @@
 ;;; eshell.el --- the Emacs command shell  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 ;; Version: 2.4.2
diff --git a/lisp/expand.el b/lisp/expand.el
index b0f19d2..b4bd266 100644
--- a/lisp/expand.el
+++ b/lisp/expand.el
@@ -1,6 +1,6 @@
 ;;; expand.el --- make abbreviations more usable
 
-;; Copyright (C) 1995-1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Frederic Lepied <address@hidden>
 ;; Maintainer: Frederic Lepied <address@hidden>
diff --git a/lisp/ezimage.el b/lisp/ezimage.el
index cc39f28..25e0ed3 100644
--- a/lisp/ezimage.el
+++ b/lisp/ezimage.el
@@ -1,6 +1,6 @@
 ;;; ezimage --- Generalized Image management
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: file, tags, tools
diff --git a/lisp/face-remap.el b/lisp/face-remap.el
index 9c2cae1..4e6ada8 100644
--- a/lisp/face-remap.el
+++ b/lisp/face-remap.el
@@ -1,6 +1,6 @@
 ;;; face-remap.el --- Functions for managing `face-remapping-alist'  -*- 
lexical-binding: t -*-
 ;;
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Miles Bader <address@hidden>
 ;; Keywords: faces, face remapping, display, user commands
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index 8b01c4e..ae5865d 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -1,6 +1,6 @@
 ;;; facemenu.el --- create a face menu for interactively adding fonts to text
 
-;; Copyright (C) 1994-1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Boris Goldowsky <address@hidden>
 ;; Keywords: faces
diff --git a/lisp/faces.el b/lisp/faces.el
index f536015..d4f2f08 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1,6 +1,6 @@
 ;;; faces.el --- Lisp faces -*- lexical-binding: t -*-
 
-;; Copyright (C) 1992-1996, 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-1996, 1998-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: internal
diff --git a/lisp/ffap.el b/lisp/ffap.el
index 3d7ceba..d7222bf 100644
--- a/lisp/ffap.el
+++ b/lisp/ffap.el
@@ -1,6 +1,6 @@
 ;;; ffap.el --- find file (or url) at point
 
-;; Copyright (C) 1995-1997, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-1997, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Michelangelo Grigni <address@hidden>
 ;; Maintainer: address@hidden
@@ -32,7 +32,7 @@
 ;; (`ffap-require-prefix' swaps these behaviors).  This is useful for
 ;; following references in situations such as mail or news buffers,
 ;; README's, MANIFEST's, and so on.  Submit bugs or suggestions with
-;; M-x ffap-bug.
+;; M-x report-emacs-bug.
 ;;
 ;; For the default installation, add this line to your init file:
 ;;
@@ -76,6 +76,7 @@
 ;; (setq ffap-machine-p-known 'accept)  ; no pinging
 ;; (setq ffap-url-regexp nil)           ; disable URL features in ffap
 ;; (setq ffap-shell-prompt-regexp nil)  ; disable shell prompt stripping
+;; (setq ffap-gopher-regexp nil)        ; disable gopher bookmark matching
 ;;
 ;; ffap uses `browse-url' (if found, else `w3-fetch') to fetch URL's.
 ;; For a hairier `ffap-url-fetcher', try ffap-url.el (same ftp site).
@@ -162,11 +163,15 @@ schemes (e.g. \"ftp\"); in that case, only convert those 
URLs."
   :group 'ffap
   :version "24.3")
 
-(defcustom ffap-lax-url nil
-  "If non-nil, allow lax URL matching."
+(defcustom ffap-lax-url t
+  "If non-nil, allow lax URL matching.
+The default non-nil value might produce false URLs in C++ code
+with symbols like \"std::find\".  On the other hand, setting
+this to nil will disable recognition of URLs that are not
+well-formed, such as \"address@hidden" or \"<address@hidden>\"."
   :type 'boolean
   :group 'ffap
-  :version "25.1")
+  :version "25.2")                      ; nil -> t
 
 (defcustom ffap-ftp-default-user "anonymous"
   "User name in FTP file names generated by `ffap-host-to-path'.
@@ -203,6 +208,11 @@ Sensible values are nil, \"news\", or \"mailto\"."
                 )
   :group 'ffap)
 
+(defvar ffap-max-region-length 1024
+  "Maximum active region length.
+When the region is active and larger than this value,
+`ffap-string-at-point' returns an empty string.")
+
 
 ;;; Peanut Gallery (More User Variables):
 ;;
@@ -788,7 +798,10 @@ specify actions to try creating such a string.  A pair 
matches if either
   KEY is a symbol, and it equals `major-mode', or
   KEY is a string, it should match NAME as a regexp.
 On a match, (FUNCTION NAME) is called and should return a file, an
-URL, or nil.  If nil, search the alist for further matches.")
+URL, or nil.  If nil, search the alist for further matches.
+While calling FUNCTION, the match data is set according to KEY if KEY
+is a string, so that FUNCTION can use `match-string' and friends
+to extract substrings.")
 
 (put 'ffap-alist 'risky-local-variable t)
 
@@ -1101,8 +1114,10 @@ MODE (defaults to value of `major-mode') is a symbol 
used to look up
 string syntax parameters in `ffap-string-at-point-mode-alist'.
 If MODE is not found, we use `file' instead of MODE.
 If the region is active, return a string from the region.
-Sets the variable `ffap-string-at-point' and the variable
-`ffap-string-at-point-region'."
+Set the variable `ffap-string-at-point' and the variable
+`ffap-string-at-point-region'.
+When the region is active and larger than `ffap-max-region-length',
+return an empty string, and set `ffap-string-at-point-region' to '(1 1)."
   (let* ((args
          (cdr
           (or (assq (or mode major-mode) ffap-string-at-point-mode-alist)
@@ -1119,11 +1134,15 @@ Sets the variable `ffap-string-at-point' and the 
variable
                (save-excursion
                  (skip-chars-forward (car args))
                  (skip-chars-backward (nth 2 args) pt)
-                 (point)))))
-    (setq ffap-string-at-point
-         (buffer-substring-no-properties
-          (setcar ffap-string-at-point-region beg)
-          (setcar (cdr ffap-string-at-point-region) end)))))
+                 (point))))
+         (region-len (- (max beg end) (min beg end))))
+    (if (and (natnump ffap-max-region-length)
+             (< region-len ffap-max-region-length)) ; Bug#25243.
+        (setf ffap-string-at-point-region (list beg end)
+              ffap-string-at-point
+              (buffer-substring-no-properties beg end))
+      (setf ffap-string-at-point-region (list 1 1)
+            ffap-string-at-point ""))))
 
 (defun ffap-string-around ()
   ;; Sometimes useful to decide how to treat a string.
@@ -1176,43 +1195,46 @@ Sets the variable `ffap-string-at-point-region' to the 
bounds of URL, if any."
           val))))
 
 (defvar ffap-gopher-regexp
-  "^.*\\<\\(Type\\|Name\\|Path\\|Host\\|Port\\) *= *\\(.*\\) *$"
-  "Regexp matching a line in a gopher bookmark (maybe indented).
-The two subexpressions are the KEY and VALUE.")
+  "\\<\\(Type\\|Name\\|Path\\|Host\\|Port\\) *= *"
+  "Regexp matching a key in a gopher bookmark.
+Set to nil to disable matching gopher bookmarks.")
+
+(defun ffap--gopher-var-on-line ()
+  "Return (KEY . VALUE) of gopher bookmark on current line."
+  (save-excursion
+    (let ((eol (progn (end-of-line) (skip-chars-backward " ") (point)))
+          (bol (progn (beginning-of-line) (point))))
+     (when (re-search-forward ffap-gopher-regexp eol t)
+       (let ((key (match-string 1))
+             (val (buffer-substring-no-properties (match-end 0) eol)))
+         (cons (intern (downcase key)) val))))))
 
 (defun ffap-gopher-at-point ()
   "If point is inside a gopher bookmark block, return its URL.
 
 Sets the variable `ffap-string-at-point-region' to the bounds of URL, if any."
   ;; `gopher-parse-bookmark' from gopher.el is not so robust
-  (save-excursion
-    (beginning-of-line)
-    (if (looking-at ffap-gopher-regexp)
-       (progn
-         (while (and (looking-at ffap-gopher-regexp) (not (bobp)))
-           (forward-line -1))
-         (or (looking-at ffap-gopher-regexp) (forward-line 1))
-          (setq ffap-string-at-point-region (list (point) (point)))
-         (let ((type "1") path host (port "70"))
-           (while (looking-at ffap-gopher-regexp)
-             (let ((var (intern
-                         (downcase
-                          (buffer-substring (match-beginning 1)
-                                            (match-end 1)))))
-                   (val (buffer-substring (match-beginning 2)
-                                          (match-end 2))))
-               (set var val)
-               (forward-line 1)))
-            (setcdr ffap-string-at-point-region (list (point)))
-           (if (and path (string-match "^ftp:.*@" path))
-               (concat "ftp://";
-                       (substring path 4 (1- (match-end 0)))
-                       (substring path (match-end 0)))
-             (and (= (length type) 1)
-                  host;; (ffap-machine-p host)
-                  (concat "gopher://"; host
-                          (if (equal port "70") "" (concat ":" port))
-                          "/" type path))))))))
+  (when (stringp ffap-gopher-regexp)
+    (save-excursion
+      (let* ((beg (progn (beginning-of-line)
+                         (while (and (not (bobp)) (ffap--gopher-var-on-line))
+                           (forward-line -1))
+                         (point)))
+             (bookmark (cl-loop for keyval = (ffap--gopher-var-on-line)
+                                while keyval collect keyval
+                                do (forward-line 1))))
+        (when bookmark
+          (setq ffap-string-at-point-region (list beg (point)))
+          (let-alist (nconc bookmark '((type . "1") (port . "70")))
+            (if (and .path (string-match "\\`ftp:.*@" .path))
+                (concat "ftp://";
+                        (substring .path 4 (1- (match-end 0)))
+                        (substring .path (match-end 0)))
+              (and (= (length .type) 1)
+                   .host ;; (ffap-machine-p host)
+                   (concat "gopher://"; .host
+                           (if (equal .port "70") "" (concat ":" .port))
+                           "/" .type .path)))))))))
 
 (defvar ffap-ftp-sans-slash-regexp
   (and
diff --git a/lisp/filecache.el b/lisp/filecache.el
index e754190..02b5f79 100644
--- a/lisp/filecache.el
+++ b/lisp/filecache.el
@@ -1,6 +1,6 @@
 ;;; filecache.el --- find files using a pre-loaded cache
 
-;; Copyright (C) 1996, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author:  Peter Breton <address@hidden>
 ;; Created: Sun Nov 10 1996
diff --git a/lisp/filenotify.el b/lisp/filenotify.el
index 61b6d24..1de5420 100644
--- a/lisp/filenotify.el
+++ b/lisp/filenotify.el
@@ -1,6 +1,6 @@
 ;;; filenotify.el --- watch files for changes on disk  -*- lexical-binding:t 
-*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 
diff --git a/lisp/files-x.el b/lisp/files-x.el
index 212c936..2b4658f 100644
--- a/lisp/files-x.el
+++ b/lisp/files-x.el
@@ -1,6 +1,6 @@
 ;;; files-x.el --- extended file handling commands
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Juri Linkov <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/files.el b/lisp/files.el
index 790f6ce..25392fd 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1,6 +1,6 @@
 ;;; files.el --- file input and output commands for Emacs  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1985-1987, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1987, 1992-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Package: emacs
@@ -716,13 +716,13 @@ The path separator is colon in GNU and GNU-like systems."
     ;; (which will lead to the use of B/a).
     (minibuffer-with-setup-hook
         (lambda ()
-          (setq minibuffer-completion-table
-                (apply-partially #'locate-file-completion-table
-                                 cd-path nil))
-          (setq minibuffer-completion-predicate
-                (lambda (dir)
-                  (locate-file dir cd-path nil
-                               (lambda (f) (and (file-directory-p f) 
'dir-ok))))))
+          (setq-local minibuffer-completion-table
+                     (apply-partially #'locate-file-completion-table
+                                      cd-path nil))
+          (setq-local minibuffer-completion-predicate
+                     (lambda (dir)
+                       (locate-file dir cd-path nil
+                                    (lambda (f) (and (file-directory-p f) 
'dir-ok))))))
       (unless cd-path
         (setq cd-path (or (parse-colon-path (getenv "CDPATH"))
                           (list "./"))))
@@ -2543,6 +2543,7 @@ 
ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|CBR\\|7Z\\)\\'" . archive-mo
      ("\\.ds\\(ss\\)?l\\'" . dsssl-mode)
      ("\\.jsm?\\'" . javascript-mode)
      ("\\.json\\'" . javascript-mode)
+     ("\\.jsx\\'" . js-jsx-mode)
      ("\\.[ds]?vh?\\'" . verilog-mode)
      ("\\.by\\'" . bovine-grammar-mode)
      ("\\.wy\\'" . wisent-grammar-mode)
@@ -3722,7 +3723,8 @@ Return the new variables list."
   (let* ((file-name (or (buffer-file-name)
                        ;; Handle non-file buffers, too.
                        (expand-file-name default-directory)))
-        (sub-file-name (if file-name
+        (sub-file-name (if (and file-name
+                                 (file-name-absolute-p file-name))
                             ;; FIXME: Why not use file-relative-name?
                            (substring file-name (length root)))))
     (condition-case err
@@ -6073,8 +6075,8 @@ See also `auto-save-file-name-p'."
            ;; Make sure auto-save file names don't contain characters
            ;; invalid for the underlying filesystem.
            (if (and (memq system-type '(ms-dos windows-nt cygwin))
-                    ;; Don't modify remote (ange-ftp) filenames
-                    (not (string-match "^/address@hidden:" result)))
+                    ;; Don't modify remote filenames
+                     (not (file-remote-p result)))
                (convert-standard-filename result)
              result))))
 
@@ -6111,8 +6113,8 @@ See also `auto-save-file-name-p'."
                      ((file-writable-p "/var/tmp/") "/var/tmp/")
                      ("~/")))))
               (if (and (memq system-type '(ms-dos windows-nt cygwin))
-                       ;; Don't modify remote (ange-ftp) filenames
-                       (not (string-match "^/address@hidden:" fname)))
+                       ;; Don't modify remote filenames
+                       (not (file-remote-p fname)))
                   ;; The call to convert-standard-filename is in case
                   ;; buffer-name includes characters not allowed by the
                   ;; DOS/Windows filesystems.  make-temp-file writes to the
diff --git a/lisp/filesets.el b/lisp/filesets.el
index d5e79c0..4542d6a 100644
--- a/lisp/filesets.el
+++ b/lisp/filesets.el
@@ -1,6 +1,6 @@
 ;;; filesets.el --- handle group of files
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Thomas Link <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/find-cmd.el b/lisp/find-cmd.el
index 9b595de..93abe02 100644
--- a/lisp/find-cmd.el
+++ b/lisp/find-cmd.el
@@ -1,6 +1,6 @@
 ;;; find-cmd.el --- Build a valid find(1) command with sexps
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Philip Jackson <address@hidden>
 ;; Version: 0.6
diff --git a/lisp/find-dired.el b/lisp/find-dired.el
index b1b33ac..a92d477 100644
--- a/lisp/find-dired.el
+++ b/lisp/find-dired.el
@@ -1,6 +1,6 @@
 ;;; find-dired.el --- run a `find' command and dired the output
 
-;; Copyright (C) 1992, 1994-1995, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1992, 1994-1995, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Roland McGrath <address@hidden>,
diff --git a/lisp/find-file.el b/lisp/find-file.el
index 3c3d860..e02bea0 100644
--- a/lisp/find-file.el
+++ b/lisp/find-file.el
@@ -4,7 +4,7 @@
 ;; Maintainer: address@hidden
 ;; Keywords: c, matching, tools
 
-;; Copyright (C) 1994-1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/lisp/find-lisp.el b/lisp/find-lisp.el
index 8591eb8..e9f8444 100644
--- a/lisp/find-lisp.el
+++ b/lisp/find-lisp.el
@@ -4,7 +4,7 @@
 ;; Created: Fri Mar 26 1999
 ;; Keywords: unix
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/lisp/finder.el b/lisp/finder.el
index e6d666a..5b019b2 100644
--- a/lisp/finder.el
+++ b/lisp/finder.el
@@ -1,6 +1,6 @@
 ;;; finder.el --- topic & keyword-based code finder
 
-;; Copyright (C) 1992, 1997-1999, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1992, 1997-1999, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Eric S. Raymond <address@hidden>
diff --git a/lisp/flow-ctrl.el b/lisp/flow-ctrl.el
index 9e79b24..c0609b0 100644
--- a/lisp/flow-ctrl.el
+++ b/lisp/flow-ctrl.el
@@ -1,6 +1,6 @@
 ;;; flow-ctrl.el --- help for lusers on cu(1) or ttys with wired-in ^S/^Q flow 
control
 
-;; Copyright (C) 1990-1991, 1994, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1990-1991, 1994, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Kevin Gallagher
diff --git a/lisp/foldout.el b/lisp/foldout.el
index dd01636..da69f8b 100644
--- a/lisp/foldout.el
+++ b/lisp/foldout.el
@@ -1,6 +1,6 @@
 ;;; foldout.el --- folding extensions for outline-mode and outline-minor-mode
 
-;; Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Kevin Broadey <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/follow.el b/lisp/follow.el
index c510e5a..3ad4f10 100644
--- a/lisp/follow.el
+++ b/lisp/follow.el
@@ -1,6 +1,6 @@
 ;;; follow.el --- synchronize windows showing the same buffer
 
-;; Copyright (C) 1995-1997, 1999, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1995-1997, 1999, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Anders Lindgren
diff --git a/lisp/font-core.el b/lisp/font-core.el
index b3da897..f64e1b6 100644
--- a/lisp/font-core.el
+++ b/lisp/font-core.el
@@ -1,6 +1,6 @@
 ;;; font-core.el --- Core interface to font-lock
 
-;; Copyright (C) 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: languages, faces
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index b5ff5cf..5eedb78 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -1,6 +1,6 @@
 ;;; font-lock.el --- Electric font lock mode
 
-;; Copyright (C) 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2017 Free Software Foundation, Inc.
 
 ;; Author: Jamie Zawinski
 ;;     Richard Stallman
diff --git a/lisp/format-spec.el b/lisp/format-spec.el
index 5789b89..95ed000 100644
--- a/lisp/format-spec.el
+++ b/lisp/format-spec.el
@@ -1,6 +1,6 @@
 ;;; format-spec.el --- functions for formatting arbitrary formatting strings
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: tools
diff --git a/lisp/format.el b/lisp/format.el
index 4a46662..cbcba82 100644
--- a/lisp/format.el
+++ b/lisp/format.el
@@ -1,6 +1,6 @@
 ;;; format.el --- read and save files in multiple formats
 
-;; Copyright (C) 1994-1995, 1997, 1999, 2001-2016 Free Software
+;; Copyright (C) 1994-1995, 1997, 1999, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Boris Goldowsky <address@hidden>
diff --git a/lisp/forms.el b/lisp/forms.el
index b068352..e13dc17 100644
--- a/lisp/forms.el
+++ b/lisp/forms.el
@@ -1,6 +1,6 @@
 ;;; forms.el --- Forms mode: edit a file as a form to fill in
 
-;; Copyright (C) 1991, 1994-1997, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1991, 1994-1997, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Johan Vromans <address@hidden>
diff --git a/lisp/frame.el b/lisp/frame.el
index 1dffc6c..0a35b71 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -1,6 +1,6 @@
 ;;; frame.el --- multi-frame management independent of window systems  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1993-1994, 1996-1997, 2000-2016 Free Software
+;; Copyright (C) 1993-1994, 1996-1997, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/frameset.el b/lisp/frameset.el
index 9a7a8bc..2dd3050 100644
--- a/lisp/frameset.el
+++ b/lisp/frameset.el
@@ -1,6 +1,6 @@
 ;;; frameset.el --- save and restore frame and window setup -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Juanma Barranquero <address@hidden>
 ;; Keywords: convenience
diff --git a/lisp/fringe.el b/lisp/fringe.el
index 8ac3b6d..acd13b5 100644
--- a/lisp/fringe.el
+++ b/lisp/fringe.el
@@ -1,6 +1,6 @@
 ;;; fringe.el --- fringe setup and control
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/generic-x.el b/lisp/generic-x.el
index 1e3a6e1..8823faa 100644
--- a/lisp/generic-x.el
+++ b/lisp/generic-x.el
@@ -1,6 +1,6 @@
 ;;; generic-x.el --- A collection of generic modes
 
-;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author:  Peter Breton <address@hidden>
 ;; Created: Tue Oct 08 1996
diff --git a/lisp/gnus/ChangeLog.1 b/lisp/gnus/ChangeLog.1
index 475af05..4cf5129 100644
--- a/lisp/gnus/ChangeLog.1
+++ b/lisp/gnus/ChangeLog.1
@@ -3702,7 +3702,7 @@
        * gnus.el: Quassia Gnus v0.1 is released.
 
 
-  Copyright (C) 1997-2016 Free Software Foundation, Inc.
+  Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2
index ed0e81f..d7ff3b6 100644
--- a/lisp/gnus/ChangeLog.2
+++ b/lisp/gnus/ChangeLog.2
@@ -18538,7 +18538,7 @@
 
 See ChangeLog.1 for earlier changes.
 
-  Copyright (C) 2000-2002, 2004-2016 Free Software Foundation, Inc.
+  Copyright (C) 2000-2002, 2004-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/gnus/ChangeLog.3 b/lisp/gnus/ChangeLog.3
index f734e6e..5f07d3f 100644
--- a/lisp/gnus/ChangeLog.3
+++ b/lisp/gnus/ChangeLog.3
@@ -26325,7 +26325,7 @@
 
 See ChangeLog.2 for earlier changes.
 
-  Copyright (C) 2004-2016 Free Software Foundation, Inc.
+  Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/gnus/canlock.el b/lisp/gnus/canlock.el
index 27b00da..9e13ced 100644
--- a/lisp/gnus/canlock.el
+++ b/lisp/gnus/canlock.el
@@ -1,6 +1,6 @@
 ;;; canlock.el --- functions for Cancel-Lock feature
 
-;; Copyright (C) 1998-1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Katsumi Yamaoka <address@hidden>
 ;; Keywords: news, cancel-lock, hmac, sha1, rfc2104
diff --git a/lisp/gnus/deuglify.el b/lisp/gnus/deuglify.el
index c74f69e..af8ccf1 100644
--- a/lisp/gnus/deuglify.el
+++ b/lisp/gnus/deuglify.el
@@ -1,6 +1,6 @@
 ;;; deuglify.el --- deuglify broken Outlook (Express) articles
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Raymond Scholz <address@hidden>
 ;;         Thomas Steffen
diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el
index 61ef001..4503564 100644
--- a/lisp/gnus/gmm-utils.el
+++ b/lisp/gnus/gmm-utils.el
@@ -1,6 +1,6 @@
 ;;; gmm-utils.el --- Utility functions for Gnus, Message and MML
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Reiner Steib <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el
index e6356b1..93d8652 100644
--- a/lisp/gnus/gnus-agent.el
+++ b/lisp/gnus/gnus-agent.el
@@ -1,6 +1,6 @@
 ;;; gnus-agent.el --- unplugged support for Gnus
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; This file is part of GNU Emacs.
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 0080b41..43e1231 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -1,6 +1,6 @@
 ;;; gnus-art.el --- article mode commands for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
@@ -251,7 +251,12 @@ This can also be a list of the above values."
                 (integer :value 200)
                 (number :value 4.0)
                 function
-                (regexp :value ".*"))
+                (regexp :value ".*")
+                (repeat (choice (const nil)
+                                (integer :value 200)
+                                (number :value 4.0)
+                                function
+                                (regexp :value ".*"))))
   :group 'gnus-article-signature)
 
 (defcustom gnus-hidden-properties
@@ -2508,7 +2513,7 @@ If PROMPT (the prefix), prompt for a coding system to 
use."
                        (mail-content-type-get ctl 'charset)))
              format (and ctl (mail-content-type-get ctl 'format)))
        (when cte
-         (setq cte (mail-header-strip cte)))
+         (setq cte (mail-header-strip-cte cte)))
        (if (and ctl (not (string-match "/" (car ctl))))
            (setq ctl nil))
        (goto-char (point-max)))
@@ -2523,8 +2528,7 @@ If PROMPT (the prefix), prompt for a coding system to 
use."
                       (equal (car ctl) "text/plain"))
                   (not format)) ;; article with format will decode later.
          (mm-decode-body
-          charset (and cte (intern (downcase
-                                    (gnus-strip-whitespace cte))))
+          charset (and cte (intern (downcase cte)))
           (car ctl)))))))
 
 (defun article-decode-encoded-words ()
@@ -6842,17 +6846,21 @@ then we display only bindings that start with that 
prefix."
   (let ((keymap (copy-keymap gnus-article-mode-map))
        (map (copy-keymap gnus-article-send-map))
        (sumkeys (where-is-internal 'gnus-article-read-summary-keys))
+       (summap (make-sparse-keymap))
        parent agent draft)
     (define-key keymap "S" map)
     (define-key map [t] nil)
+    (define-key summap [t] 'undefined)
     (with-current-buffer gnus-article-current-summary
+      (dolist (key sumkeys)
+       (define-key summap key (key-binding key (current-local-map))))
       (set-keymap-parent
        keymap
        (if (setq parent (keymap-parent gnus-article-mode-map))
           (prog1
               (setq parent (copy-keymap parent))
-            (set-keymap-parent parent (current-local-map)))
-        (current-local-map)))
+            (set-keymap-parent parent summap))
+        summap))
       (set-keymap-parent map (key-binding "S"))
       (let (key def gnus-pick-mode)
        (while sumkeys
diff --git a/lisp/gnus/gnus-async.el b/lisp/gnus/gnus-async.el
index 19867d8..11e765d 100644
--- a/lisp/gnus/gnus-async.el
+++ b/lisp/gnus/gnus-async.el
@@ -1,6 +1,6 @@
 ;;; gnus-async.el --- asynchronous support for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-bcklg.el b/lisp/gnus/gnus-bcklg.el
index d5c7e0e..d85448e 100644
--- a/lisp/gnus/gnus-bcklg.el
+++ b/lisp/gnus/gnus-bcklg.el
@@ -1,6 +1,6 @@
 ;;; gnus-bcklg.el --- backlog functions for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-bookmark.el b/lisp/gnus/gnus-bookmark.el
index 7e18d5e..6558813 100644
--- a/lisp/gnus/gnus-bookmark.el
+++ b/lisp/gnus/gnus-bookmark.el
@@ -1,6 +1,6 @@
 ;;; gnus-bookmark.el --- Bookmarks in Gnus
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Bastien Guerry <bzg AT altern DOT org>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-cache.el b/lisp/gnus/gnus-cache.el
index aa2d018..fa3df7b 100644
--- a/lisp/gnus/gnus-cache.el
+++ b/lisp/gnus/gnus-cache.el
@@ -1,6 +1,6 @@
 ;;; gnus-cache.el --- cache interface for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-cite.el b/lisp/gnus/gnus-cite.el
index 03ed71d..3194e96 100644
--- a/lisp/gnus/gnus-cite.el
+++ b/lisp/gnus/gnus-cite.el
@@ -1,6 +1,6 @@
 ;;; gnus-cite.el --- parse citations in articles for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Per Abhiddenware
 
diff --git a/lisp/gnus/gnus-cloud.el b/lisp/gnus/gnus-cloud.el
index 14af4b2..605dda2 100644
--- a/lisp/gnus/gnus-cloud.el
+++ b/lisp/gnus/gnus-cloud.el
@@ -1,6 +1,6 @@
 ;;; gnus-cloud.el --- storing and retrieving data via IMAP
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: mail
diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el
index 669de2b..e5787e8 100644
--- a/lisp/gnus/gnus-cus.el
+++ b/lisp/gnus/gnus-cus.el
@@ -1,6 +1,6 @@
 ;;; gnus-cus.el --- customization commands for Gnus
 
-;; Copyright (C) 1996, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-delay.el b/lisp/gnus/gnus-delay.el
index 37e8cdc..7b59967 100644
--- a/lisp/gnus/gnus-delay.el
+++ b/lisp/gnus/gnus-delay.el
@@ -1,6 +1,6 @@
 ;;; gnus-delay.el --- Delayed posting of articles
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Kai Großjohann <address@hidden>
 ;; Keywords: mail, news, extensions
diff --git a/lisp/gnus/gnus-demon.el b/lisp/gnus/gnus-demon.el
index 1d4b021..81f9650 100644
--- a/lisp/gnus/gnus-demon.el
+++ b/lisp/gnus/gnus-demon.el
@@ -1,6 +1,6 @@
 ;;; gnus-demon.el --- daemonic Gnus behavior
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-diary.el b/lisp/gnus/gnus-diary.el
index 4dc4f7a..99d3a2b 100644
--- a/lisp/gnus/gnus-diary.el
+++ b/lisp/gnus/gnus-diary.el
@@ -1,6 +1,6 @@
 ;;; gnus-diary.el --- Wrapper around the NNDiary Gnus back end
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author:        Didier Verna <address@hidden>
 ;; Maintainer:    Didier Verna <address@hidden>
diff --git a/lisp/gnus/gnus-dired.el b/lisp/gnus/gnus-dired.el
index f7eae94..10533ca 100644
--- a/lisp/gnus/gnus-dired.el
+++ b/lisp/gnus/gnus-dired.el
@@ -1,6 +1,6 @@
 ;;; gnus-dired.el --- utility functions where gnus and dired meet
 
-;; Copyright (C) 1996-1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Authors: Benjamin Rutt <address@hidden>,
 ;;          Shenghuo Zhu <address@hidden>
diff --git a/lisp/gnus/gnus-draft.el b/lisp/gnus/gnus-draft.el
index f5299be..6e7b307 100644
--- a/lisp/gnus/gnus-draft.el
+++ b/lisp/gnus/gnus-draft.el
@@ -1,6 +1,6 @@
 ;;; gnus-draft.el --- draft message support for Gnus
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-dup.el b/lisp/gnus/gnus-dup.el
index 4492c9a..f91ebbe 100644
--- a/lisp/gnus/gnus-dup.el
+++ b/lisp/gnus/gnus-dup.el
@@ -1,6 +1,6 @@
 ;;; gnus-dup.el --- suppression of duplicate articles in Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-eform.el b/lisp/gnus/gnus-eform.el
index ab3992b..93af05f 100644
--- a/lisp/gnus/gnus-eform.el
+++ b/lisp/gnus/gnus-eform.el
@@ -1,6 +1,6 @@
 ;;; gnus-eform.el --- a mode for editing forms for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-fun.el b/lisp/gnus/gnus-fun.el
index 0ffd243..787c0e3 100644
--- a/lisp/gnus/gnus-fun.el
+++ b/lisp/gnus/gnus-fun.el
@@ -1,6 +1,6 @@
 ;;; gnus-fun.el --- various frivolous extension functions to Gnus
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-gravatar.el b/lisp/gnus/gnus-gravatar.el
index 89be864..b4763c7 100644
--- a/lisp/gnus/gnus-gravatar.el
+++ b/lisp/gnus/gnus-gravatar.el
@@ -1,6 +1,6 @@
 ;;; gnus-gravatar.el --- Gnus Gravatar support
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Julien Danjou <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 8288053..2488cdb 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -1,6 +1,6 @@
 ;;; gnus-group.el --- group mode commands for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-html.el b/lisp/gnus/gnus-html.el
index afbb845..d4dccfb 100644
--- a/lisp/gnus/gnus-html.el
+++ b/lisp/gnus/gnus-html.el
@@ -1,6 +1,6 @@
 ;;; gnus-html.el --- Render HTML in a buffer.
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: html, web
diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el
index dea6523..1f194f8 100644
--- a/lisp/gnus/gnus-icalendar.el
+++ b/lisp/gnus/gnus-icalendar.el
@@ -1,6 +1,6 @@
 ;;; gnus-icalendar.el --- reply to iCalendar meeting requests
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Jan Tatarik <address@hidden>
 ;; Keywords: mail, icalendar, org
diff --git a/lisp/gnus/gnus-int.el b/lisp/gnus/gnus-int.el
index 93545ff..aaeba4a 100644
--- a/lisp/gnus/gnus-int.el
+++ b/lisp/gnus/gnus-int.el
@@ -1,6 +1,6 @@
 ;;; gnus-int.el --- backend interface functions for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-kill.el b/lisp/gnus/gnus-kill.el
index e65d46b..c405c04 100644
--- a/lisp/gnus/gnus-kill.el
+++ b/lisp/gnus/gnus-kill.el
@@ -1,6 +1,6 @@
 ;;; gnus-kill.el --- kill commands for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <address@hidden>
 ;;     Lars Magne Ingebrigtsen <address@hidden>
diff --git a/lisp/gnus/gnus-logic.el b/lisp/gnus/gnus-logic.el
index 2065d0b..b149972 100644
--- a/lisp/gnus/gnus-logic.el
+++ b/lisp/gnus/gnus-logic.el
@@ -1,6 +1,6 @@
 ;;; gnus-logic.el --- advanced scoring code for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-mh.el b/lisp/gnus/gnus-mh.el
index b33402f..502b295 100644
--- a/lisp/gnus/gnus-mh.el
+++ b/lisp/gnus/gnus-mh.el
@@ -1,6 +1,6 @@
 ;;; gnus-mh.el --- mh-e interface for Gnus
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <address@hidden>
 ;;     Lars Magne Ingebrigtsen <address@hidden>
diff --git a/lisp/gnus/gnus-ml.el b/lisp/gnus/gnus-ml.el
index 97bbab4..32cf171 100644
--- a/lisp/gnus/gnus-ml.el
+++ b/lisp/gnus/gnus-ml.el
@@ -1,6 +1,6 @@
 ;;; gnus-ml.el --- Mailing list minor mode for Gnus
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Julien Gilles  <address@hidden>
 ;; Keywords: news, mail
diff --git a/lisp/gnus/gnus-mlspl.el b/lisp/gnus/gnus-mlspl.el
index 4560002..c42c34a 100644
--- a/lisp/gnus/gnus-mlspl.el
+++ b/lisp/gnus/gnus-mlspl.el
@@ -1,6 +1,6 @@
 ;;; gnus-mlspl.el --- a group params-based mail splitting mechanism
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Alexandre Oliva <address@hidden>
 ;; Keywords: news, mail
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el
index 10927cd..a193ab4 100644
--- a/lisp/gnus/gnus-msg.el
+++ b/lisp/gnus/gnus-msg.el
@@ -1,6 +1,6 @@
 ;;; gnus-msg.el --- mail and post interface for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <address@hidden>
 ;;     Lars Magne Ingebrigtsen <address@hidden>
@@ -546,7 +546,8 @@ instead."
            (gnus-setup-message 'message
              (message-mail to subject other-headers continue
                            nil yank-action send-actions return-action)))
-       (setq gnus-newsgroup-name group-name))
+       (with-current-buffer buf
+         (setq gnus-newsgroup-name group-name)))
       (when switch-action
        (setq mail-buf (current-buffer))
        (switch-to-buffer buf)
@@ -1534,11 +1535,7 @@ If YANK is non-nil, include the original article."
       (message-pop-to-buffer "*Gnus Bug*"))
     (let ((message-this-is-mail t))
       (message-setup `((To . ,gnus-maintainer)
-                       (Subject . "")
-                       (X-Debbugs-Package
-                        . ,(format "%s" gnus-bug-package))
-                       (X-Debbugs-Version
-                        . ,(format "%s" (gnus-continuum-version))))))
+                       (Subject . ""))))
     (when gnus-bug-create-help-buffer
       (push `(gnus-bug-kill-buffer) message-send-actions))
     (goto-char (point-min))
diff --git a/lisp/gnus/gnus-notifications.el b/lisp/gnus/gnus-notifications.el
index 2f6d6a8..288dbe1 100644
--- a/lisp/gnus/gnus-notifications.el
+++ b/lisp/gnus/gnus-notifications.el
@@ -1,6 +1,6 @@
 ;; gnus-notifications.el -- Send notification on new message in Gnus
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Julien Danjou <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-picon.el b/lisp/gnus/gnus-picon.el
index 8b2088b..41463e3 100644
--- a/lisp/gnus/gnus-picon.el
+++ b/lisp/gnus/gnus-picon.el
@@ -1,6 +1,6 @@
 ;;; gnus-picon.el --- displaying pretty icons in Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news xpm annotation glyph faces
diff --git a/lisp/gnus/gnus-range.el b/lisp/gnus/gnus-range.el
index 5cc8367..0680123 100644
--- a/lisp/gnus/gnus-range.el
+++ b/lisp/gnus/gnus-range.el
@@ -1,6 +1,6 @@
 ;;; gnus-range.el --- range and sequence functions for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
index 37d5b5b..f728b19 100644
--- a/lisp/gnus/gnus-registry.el
+++ b/lisp/gnus/gnus-registry.el
@@ -1,6 +1,6 @@
 ;;; gnus-registry.el --- article registry for Gnus
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Ted Zlatanov <address@hidden>
 ;; Keywords: news registry
diff --git a/lisp/gnus/gnus-rfc1843.el b/lisp/gnus/gnus-rfc1843.el
index 4e6fdc6..a47e19b 100644
--- a/lisp/gnus/gnus-rfc1843.el
+++ b/lisp/gnus/gnus-rfc1843.el
@@ -1,6 +1,6 @@
 ;;; gnus-rfc1843.el --- HZ (rfc1843) decoding interface functions for Gnus
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <address@hidden>
 ;; Keywords: news HZ HZ+ mail i18n
diff --git a/lisp/gnus/gnus-salt.el b/lisp/gnus/gnus-salt.el
index 2c3aff5..7037328 100644
--- a/lisp/gnus/gnus-salt.el
+++ b/lisp/gnus/gnus-salt.el
@@ -1,6 +1,6 @@
 ;;; gnus-salt.el --- alternate summary mode interfaces for Gnus
 
-;; Copyright (C) 1996-1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
@@ -131,9 +131,7 @@ It accepts the same format specs that 
`gnus-summary-line-format' does."
 (defvar gnus-pick-line-number 1)
 (defun gnus-pick-line-number ()
   "Return the current line number."
-  (if (bobp)
-      (setq gnus-pick-line-number 1)
-    (incf gnus-pick-line-number)))
+  (incf gnus-pick-line-number))
 
 (defun gnus-pick-start-reading (&optional catch-up)
   "Start reading the picked articles.
diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el
index b7360a0..2defa76 100644
--- a/lisp/gnus/gnus-score.el
+++ b/lisp/gnus/gnus-score.el
@@ -1,6 +1,6 @@
 ;;; gnus-score.el --- scoring code for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <address@hidden>
 ;;     Lars Magne Ingebrigtsen <address@hidden>
diff --git a/lisp/gnus/gnus-sieve.el b/lisp/gnus/gnus-sieve.el
index cabcef2..2c5fd34 100644
--- a/lisp/gnus/gnus-sieve.el
+++ b/lisp/gnus/gnus-sieve.el
@@ -1,6 +1,6 @@
 ;;; gnus-sieve.el --- Utilities to manage sieve scripts for Gnus
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: NAGY Andras <address@hidden>,
 ;;     Simon Josefsson <address@hidden>
diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el
index a3525d8..809371d 100644
--- a/lisp/gnus/gnus-spec.el
+++ b/lisp/gnus/gnus-spec.el
@@ -1,6 +1,6 @@
 ;;; gnus-spec.el --- format spec functions for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el
index 6dbb54e..bed5993 100644
--- a/lisp/gnus/gnus-srvr.el
+++ b/lisp/gnus/gnus-srvr.el
@@ -1,6 +1,6 @@
 ;;; gnus-srvr.el --- virtual server support for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 10e4dbc..be46339 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -1,6 +1,6 @@
 ;;; gnus-start.el --- startup functions for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
@@ -2801,8 +2801,13 @@ If FORCE is non-nil, the .newsrc file is read."
        (gnus-run-hooks 'gnus-save-newsrc-hook)
        (if gnus-slave
            (gnus-slave-save-newsrc)
-         ;; Save .newsrc.
-         (when gnus-save-newsrc-file
+         ;; Save .newsrc only if the select method is an NNTP method.
+         ;; The .newsrc file is for interoperability with other
+         ;; newsreaders, so saving non-NNTP groups there doesn't make
+         ;; much sense.
+         (when (and gnus-save-newsrc-file
+                    (eq (car (gnus-server-to-method gnus-select-method))
+                        'nntp))
            (gnus-message 8 "Saving %s..." gnus-current-startup-file)
            (gnus-gnus-to-newsrc-format)
            (gnus-message 8 "Saving %s...done" gnus-current-startup-file))
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index b6023c2..2631514 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -1,6 +1,6 @@
 ;;; gnus-sum.el --- summary mode commands for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
@@ -1895,6 +1895,7 @@ increase the score of each group you read."
   "\C-c\C-s\C-m\C-n" gnus-summary-sort-by-most-recent-number
   "\C-c\C-s\C-l" gnus-summary-sort-by-lines
   "\C-c\C-s\C-c" gnus-summary-sort-by-chars
+  "\C-c\C-s\C-m\C-m" gnus-summary-sort-by-marks
   "\C-c\C-s\C-a" gnus-summary-sort-by-author
   "\C-c\C-s\C-t" gnus-summary-sort-by-recipient
   "\C-c\C-s\C-s" gnus-summary-sort-by-subject
@@ -2748,6 +2749,7 @@ gnus-summary-show-article-from-menu-as-charset-%s" cs))))
         ["Sort by score" gnus-summary-sort-by-score t]
         ["Sort by lines" gnus-summary-sort-by-lines t]
         ["Sort by characters" gnus-summary-sort-by-chars t]
+        ["Sort by marks" gnus-summary-sort-by-marks t]
         ["Randomize" gnus-summary-sort-by-random t]
         ["Original sort" gnus-summary-sort-by-original t])
        ("Help"
@@ -3976,6 +3978,8 @@ If SELECT-ARTICLES, only select those articles from 
GROUP."
      ;; The group was successfully selected.
      (t
       (gnus-set-global-variables)
+      (when (boundp 'gnus-pick-line-number)
+       (setq gnus-pick-line-number 0))
       (when (boundp 'spam-install-hooks)
        (spam-initialize))
       ;; Save the active value in effect when the group was entered.
@@ -4037,6 +4041,9 @@ If SELECT-ARTICLES, only select those articles from 
GROUP."
        (when kill-buffer
          (gnus-kill-or-deaden-summary kill-buffer))
        (gnus-summary-auto-select-subject)
+       ;; Don't mark any articles as selected if we haven't done that.
+       (when no-article
+         (setq overlay-arrow-position nil))
        ;; Show first unread article if requested.
        (if (and (not no-article)
                 (not no-display)
@@ -4941,6 +4948,16 @@ using some other form will lead to serious barfage."
   (gnus-article-sort-by-chars
    (gnus-thread-header h1) (gnus-thread-header h2)))
 
+(defsubst gnus-article-sort-by-marks (h1 h2)
+  "Sort articles by octet length."
+  (< (gnus-article-mark (mail-header-number h1))
+     (gnus-article-mark (mail-header-number h2))))
+
+(defun gnus-thread-sort-by-marks (h1 h2)
+  "Sort threads by root article octet length."
+  (gnus-article-sort-by-marks
+   (gnus-thread-header h1) (gnus-thread-header h2)))
+
 (defsubst gnus-article-sort-by-author (h1 h2)
   "Sort articles by root author."
   (gnus-string<
@@ -9211,7 +9228,7 @@ To control what happens when you exit the group, see the
            (widen)
            (narrow-to-region (point) (point-max))
            (mm-decode-content-transfer-encoding
-            (intern (downcase (mail-header-strip encoding))))))
+            (intern (downcase (mail-header-strip-cte encoding))))))
        (widen))
       (unwind-protect
          (if (let ((gnus-newsgroup-ephemeral-charset
@@ -11925,6 +11942,12 @@ Argument REVERSE means reverse order."
   (interactive "P")
   (gnus-summary-sort 'chars reverse))
 
+(defun gnus-summary-sort-by-mark (&optional reverse)
+  "Sort the summary buffer by article marks.
+Argument REVERSE means reverse order."
+  (interactive "P")
+  (gnus-summary-sort 'marks reverse))
+
 (defun gnus-summary-sort-by-original (&optional reverse)
   "Sort the summary buffer using the default sorting method.
 Argument REVERSE means reverse order."
@@ -11970,7 +11993,10 @@ save those articles instead.
 The variable `gnus-default-article-saver' specifies the saver function.
 
 If the optional second argument NOT-SAVED is non-nil, articles saved
-will not be marked as saved."
+will not be marked as saved.
+
+The `gnus-prompt-before-saving' variable says how prompting is
+performed."
   (interactive "P")
   (require 'gnus-art)
   (let* ((articles (gnus-summary-work-articles n))
diff --git a/lisp/gnus/gnus-topic.el b/lisp/gnus/gnus-topic.el
index 809caee..6d6e20d 100644
--- a/lisp/gnus/gnus-topic.el
+++ b/lisp/gnus/gnus-topic.el
@@ -1,6 +1,6 @@
 ;;; gnus-topic.el --- a folding minor mode for Gnus group buffers
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Ilja Weis <address@hidden>
 ;;     Lars Magne Ingebrigtsen <address@hidden>
@@ -1564,7 +1564,7 @@ If UNINDENT, remove an indentation."
         (parent (gnus-topic-parent-topic topic))
         (grandparent (gnus-topic-parent-topic parent)))
     (unless grandparent
-      (error "Nothing to indent %s into" topic))
+      (error "Can't unindent %s further" topic))
     (when topic
       (gnus-topic-goto-topic topic)
       (gnus-topic-kill-group)
diff --git a/lisp/gnus/gnus-undo.el b/lisp/gnus/gnus-undo.el
index ad27e89..74e0601 100644
--- a/lisp/gnus/gnus-undo.el
+++ b/lisp/gnus/gnus-undo.el
@@ -1,6 +1,6 @@
 ;;; gnus-undo.el --- minor mode for undoing in Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el
index 7eb4462..ff5c295 100644
--- a/lisp/gnus/gnus-util.el
+++ b/lisp/gnus/gnus-util.el
@@ -1,6 +1,6 @@
 ;;; gnus-util.el --- utility functions for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus-uu.el b/lisp/gnus/gnus-uu.el
index d09210d..6219217 100644
--- a/lisp/gnus/gnus-uu.el
+++ b/lisp/gnus/gnus-uu.el
@@ -1,6 +1,6 @@
 ;;; gnus-uu.el --- extract (uu)encoded files in Gnus
 
-;; Copyright (C) 1985-1987, 1993-1998, 2000-2016 Free Software
+;; Copyright (C) 1985-1987, 1993-1998, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
diff --git a/lisp/gnus/gnus-vm.el b/lisp/gnus/gnus-vm.el
index 5aa1ece..143500c 100644
--- a/lisp/gnus/gnus-vm.el
+++ b/lisp/gnus/gnus-vm.el
@@ -1,6 +1,6 @@
 ;;; gnus-vm.el --- vm interface for Gnus
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Author: Per Persson <address@hidden>
 ;; Keywords: news, mail
diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el
index 6fc3bc4..255bb5f 100644
--- a/lisp/gnus/gnus-win.el
+++ b/lisp/gnus/gnus-win.el
@@ -1,6 +1,6 @@
 ;;; gnus-win.el --- window configuration functions for Gnus
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index 943ba08..bbf85fe 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -1,6 +1,6 @@
 ;;; gnus.el --- a newsreader for GNU Emacs
 
-;; Copyright (C) 1987-1990, 1993-1998, 2000-2016 Free Software
+;; Copyright (C) 1987-1990, 1993-1998, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <address@hidden>
@@ -2654,10 +2654,6 @@ such as a mark that says whether an article is stored in 
the cache
   "address@hidden (The Gnus Bugfixing Girls + Boys)"
   "The mail address of the Gnus maintainers.")
 
-(defconst gnus-bug-package
-  "gnus"
-  "The package to use in the bug submission.")
-
 (defvar gnus-info-nodes
   '((gnus-group-mode "(gnus)Group Buffer")
     (gnus-summary-mode "(gnus)Summary Buffer")
diff --git a/lisp/gnus/gssapi.el b/lisp/gnus/gssapi.el
index 1f72805..b569c7f 100644
--- a/lisp/gnus/gssapi.el
+++ b/lisp/gnus/gssapi.el
@@ -1,6 +1,6 @@
 ;;; gssapi.el --- GSSAPI/Kerberos 5 interface for Emacs
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;;         Lars Magne Ingebrigtsen <address@hidden>
diff --git a/lisp/gnus/legacy-gnus-agent.el b/lisp/gnus/legacy-gnus-agent.el
index a8c61fa..e51181e 100644
--- a/lisp/gnus/legacy-gnus-agent.el
+++ b/lisp/gnus/legacy-gnus-agent.el
@@ -1,6 +1,6 @@
 ;;; gnus-agent.el --- Legacy unplugged support for Gnus
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Kevin Greiner <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
index 59a97db..e15d820 100644
--- a/lisp/gnus/mail-source.el
+++ b/lisp/gnus/mail-source.el
@@ -1,6 +1,6 @@
 ;;; mail-source.el --- functions for fetching mail
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news, mail
@@ -66,7 +66,7 @@ See Info node `(gnus)Mail Source Specifiers'."
          (repeat :tag "List"
           (choice :format "%[Value Menu%] %v"
                   :value (file)
-                  (cons :tag "Group parameter `mail-source'"
+                  (list :tag "Group parameter `mail-source'"
                         (const :format "" group))
                   (cons :tag "Spool file"
                         (const :format "" file)
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 5446aa2..ce0dad9 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1,6 +1,6 @@
 ;;; message.el --- composing mail and news messages -*- lexical-binding: t -*-
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: mail, news
@@ -2286,13 +2286,15 @@ body, set  `message-archive-note' to nil."
   "Mangles FollowUp-To and Newsgroups header to point to TARGET-GROUP.
 With prefix-argument just set Follow-Up, don't cross-post."
   (interactive
-   (list ; Completion based on Gnus
-    (completing-read "Followup To: "
-                    (if (boundp 'gnus-newsrc-alist)
-                        gnus-newsrc-alist)
-                    nil nil '("poster" . 0)
-                    (if (boundp 'gnus-group-history)
-                        'gnus-group-history))))
+   (list                               ; Completion based on Gnus
+    (replace-regexp-in-string
+     "\\`.*:" ""
+     (completing-read "Followup To: "
+                     (if (boundp 'gnus-newsrc-alist)
+                         gnus-newsrc-alist)
+                     nil nil '("poster" . 0)
+                     (if (boundp 'gnus-group-history)
+                         'gnus-group-history)))))
   (message-remove-header "Follow[Uu]p-[Tt]o" t)
   (message-goto-newsgroups)
   (beginning-of-line)
@@ -2361,13 +2363,15 @@ been made to before the user asked for a Crosspost."
   "Crossposts message and set Followup-To to TARGET-GROUP.
 With prefix-argument just set Follow-Up, don't cross-post."
   (interactive
-   (list ; Completion based on Gnus
-    (completing-read "Followup To: "
-                    (if (boundp 'gnus-newsrc-alist)
-                        gnus-newsrc-alist)
-                    nil nil '("poster" . 0)
-                    (if (boundp 'gnus-group-history)
-                        'gnus-group-history))))
+   (list                               ; Completion based on Gnus
+    (replace-regexp-in-string
+     "\\`.*:" ""
+     (completing-read "Followup To: "
+                     (if (boundp 'gnus-newsrc-alist)
+                         gnus-newsrc-alist)
+                     nil nil '("poster" . 0)
+                     (if (boundp 'gnus-group-history)
+                         'gnus-group-history)))))
   (when (fboundp 'gnus-group-real-name)
     (setq target-group (gnus-group-real-name target-group)))
   (cond ((not (or (null target-group) ; new subject not empty
@@ -3108,18 +3112,29 @@ M-RET    `message-newline-and-reformat' (break the line 
and reformat)."
             (looking-at "[ \t]*\n"))
     (expand-abbrev))
   (push-mark)
+  (message-goto-body-1))
+
+(defun message-goto-body-1 ()
+  "Go to the body and return point."
   (goto-char (point-min))
   (or (search-forward (concat "\n" mail-header-separator "\n") nil t)
-      (search-forward-regexp "[^:]+:\\([^\n]\\|\n[ \t]\\)+\n\n" nil t)))
+      ;; If the message is mangled, find the end of the headers the
+      ;; hard way.
+      (progn
+       ;; Skip past all headers and continuation lines.
+       (while (looking-at "[^:]+:\\|[\t ]+[^\t ]")
+         (forward-line 1))
+       ;; We're now at the first empty line, so perhaps move past it.
+       (when (and (eolp)
+                  (not (eobp)))
+         (forward-line 1))
+       (point))))
 
 (defun message-in-body-p ()
   "Return t if point is in the message body."
   (>= (point)
       (save-excursion
-       (goto-char (point-min))
-       (or (search-forward (concat "\n" mail-header-separator "\n") nil t)
-           (search-forward-regexp "[^:]+:\\([^\n]\\|\n[ \t]\\)+\n\n" nil t))
-       (point))))
+       (message-goto-body-1))))
 
 (defun message-goto-eoh ()
   "Move point to the end of the headers."
@@ -3330,6 +3345,8 @@ of lines before the signature intact."
   "Insert four newlines, and then reformat if inside quoted text.
 Prefix arg means justify as well."
   (interactive (list (if current-prefix-arg 'full)))
+  (unless (message-in-body-p)
+    (error "This command only works in the body of the message"))
   (let (quoted point beg end leading-space bolp fill-paragraph-function)
     (setq point (point))
     (beginning-of-line)
@@ -4102,8 +4119,8 @@ It should typically alter the sending method in some way 
or other."
   (let ((inhibit-read-only t))
     (put-text-property (point-min) (point-max) 'read-only nil))
   (message-fix-before-sending)
-  (mml-secure-bcc-is-safe)
   (run-hooks 'message-send-hook)
+  (mml-secure-bcc-is-safe)
   (when message-confirm-send
     (or (y-or-n-p "Send message? ")
        (keyboard-quit)))
@@ -4539,6 +4556,9 @@ This function could be useful in `message-setup-hook'."
            (forward-line 1)
            (unless (y-or-n-p "Send anyway? ")
              (error "Failed to send the message")))))
+      ;; Fold too-long header lines.  They should be no longer than
+      ;; 998 octets long.
+      (message--fold-long-headers)
       ;; Let the user do all of the above.
       (run-hooks 'message-header-hook))
     (setq options message-options)
@@ -4635,6 +4655,14 @@ If you always want Gnus to send messages in one piece, 
set
     (setq message-options options)
     (push 'mail message-sent-message-via)))
 
+(defun message--fold-long-headers ()
+  (goto-char (point-min))
+  (while (not (eobp))
+    (when (and (looking-at "[^:]+:")
+              (> (- (line-end-position) (point)) 998))
+      (mail-header-fold-field))
+    (forward-line 1)))
+
 (defvar sendmail-program)
 (defvar smtpmail-smtp-server)
 (defvar smtpmail-smtp-service)
@@ -5380,16 +5408,13 @@ Otherwise, generate and save a value for 
`canlock-password' first."
   "Process Fcc headers in the current buffer."
   (let ((case-fold-search t)
        (buf (current-buffer))
-       list file
-       (mml-externalize-attachments message-fcc-externalize-attachments))
-    (save-excursion
-      (save-restriction
-       (message-narrow-to-headers)
-       (setq file (message-fetch-field "fcc" t)))
-      (when file
-       (set-buffer (get-buffer-create " *message temp*"))
-       (erase-buffer)
+       (mml-externalize-attachments message-fcc-externalize-attachments)
+       (file (message-field-value "fcc" t))
+       list)
+    (when file
+      (with-temp-buffer
        (insert-buffer-substring buf)
+       (message-clone-locals buf)
        (message-encode-message-body)
        (save-restriction
          (message-narrow-to-headers)
@@ -5429,8 +5454,7 @@ Otherwise, generate and save a value for 
`canlock-password' first."
              (if (and (file-readable-p file) (mail-file-babyl-p file))
                  (rmail-output file 1 nil t)
                (let ((mail-use-rfc822 t))
-                 (rmail-output file 1 t t))))))
-       (kill-buffer (current-buffer))))))
+                 (rmail-output file 1 t t))))))))))
 
 (defun message-output (filename)
   "Append this article to Unix/babyl mail file FILENAME."
@@ -5761,7 +5785,7 @@ give as trustworthy answer as possible."
           (not (string-match message-bogus-system-names message-user-fqdn)))
       ;; `message-user-fqdn' seems to be valid
       message-user-fqdn)
-     ((and (string-match message-bogus-system-names sysname))
+     ((not (string-match message-bogus-system-names sysname))
       ;; `system-name' returned the right result.
       sysname)
      ;; Try `mail-host-address'.
@@ -6644,29 +6668,27 @@ OTHER-HEADERS is an alist of header/value pairs.  
CONTINUE says whether
 to continue editing a message already being composed.  SWITCH-FUNCTION
 is a function used to switch to and display the mail buffer."
   (interactive)
-  (let ((message-this-is-mail t))
-    (unless (message-mail-user-agent)
-      (message-pop-to-buffer
-       ;; Search for the existing message buffer if `continue' is non-nil.
-       (let ((message-generate-new-buffers
-             (when (or (not continue)
-                       (eq message-generate-new-buffers 'standard)
-                       (functionp message-generate-new-buffers))
-               message-generate-new-buffers)))
-        (message-buffer-name "mail" to))
-       switch-function))
-    (message-setup
-     (nconc
-      `((To . ,(or to "")) (Subject . ,(or subject "")))
-      ;; C-h f compose-mail says that headers should be specified as
-      ;; (string . value); however all the rest of message expects
-      ;; headers to be symbols, not strings (eg message-header-format-alist).
-      ;; http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00337.html
-      ;; We need to convert any string input, eg from rmail-start-mail.
-      (dolist (h other-headers other-headers)
-       (if (stringp (car h)) (setcar h (intern (capitalize (car h)))))))
-     yank-action send-actions continue switch-function
-     return-action)))
+  (let ((message-this-is-mail t)
+       message-buffers)
+    ;; Search for the existing message buffer if `continue' is non-nil.
+    (if (and continue
+            (setq message-buffers (message-buffers)))
+       (pop-to-buffer (car message-buffers))
+      ;; Start a new buffer.
+      (unless (message-mail-user-agent)
+       (message-pop-to-buffer (message-buffer-name "mail" to) switch-function))
+      (message-setup
+       (nconc
+       `((To . ,(or to "")) (Subject . ,(or subject "")))
+       ;; C-h f compose-mail says that headers should be specified as
+       ;; (string . value); however all the rest of message expects
+       ;; headers to be symbols, not strings (eg message-header-format-alist).
+       ;; http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00337.html
+       ;; We need to convert any string input, eg from rmail-start-mail.
+       (dolist (h other-headers other-headers)
+         (if (stringp (car h)) (setcar h (intern (capitalize (car h)))))))
+       yank-action send-actions continue switch-function
+       return-action))))
 
 ;;;###autoload
 (defun message-news (&optional newsgroups subject)
@@ -7946,7 +7968,7 @@ regular text mode tabbing command."
                  (not (mail-abbrev-in-expansion-header-p))))
       (setq alist (cdr alist)))
     (when (cdar alist)
-      (lexical-let ((fun (cdar alist)))
+      (let ((fun (cdar alist)))
         ;; Even if completion fails, return a non-nil value, so as to avoid
         ;; falling back to message-tab-body-function.
         (lambda () (funcall fun) 'completion-attempted)))))
diff --git a/lisp/gnus/mm-archive.el b/lisp/gnus/mm-archive.el
index bac722e..5ac8761 100644
--- a/lisp/gnus/mm-archive.el
+++ b/lisp/gnus/mm-archive.el
@@ -1,6 +1,6 @@
 ;;; mm-archive.el --- Functions for parsing archive files as MIME
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; This file is part of GNU Emacs.
diff --git a/lisp/gnus/mm-bodies.el b/lisp/gnus/mm-bodies.el
index 6ccaa77..66b9ebd 100644
--- a/lisp/gnus/mm-bodies.el
+++ b/lisp/gnus/mm-bodies.el
@@ -1,6 +1,6 @@
 ;;; mm-bodies.el --- Functions for decoding MIME things
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;;     MORIOKA Tomohiko <address@hidden>
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 3127a22..579222f 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -1,6 +1,6 @@
 ;;; mm-decode.el --- Functions for decoding MIME things
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;;     MORIOKA Tomohiko <address@hidden>
@@ -655,9 +655,9 @@ MIME-Version header before proceeding."
                                 description)))))
       (if (or (not ctl)
              (not (string-match "/" (car ctl))))
-           (mm-dissect-singlepart
+         (mm-dissect-singlepart
           (list mm-dissect-default-type)
-            (and cte (intern (downcase (mail-header-strip cte))))
+          (and cte (intern (downcase (mail-header-strip-cte cte))))
           no-strict-mime
           (and cd (mail-header-parse-content-disposition cd))
           description)
@@ -690,7 +690,7 @@ MIME-Version header before proceeding."
           (mm-possibly-verify-or-decrypt
            (mm-dissect-singlepart
             ctl
-            (and cte (intern (downcase (mail-header-strip cte))))
+            (and cte (intern (downcase (mail-header-strip-cte cte))))
             no-strict-mime
             (and cd (mail-header-parse-content-disposition cd))
             description id)
diff --git a/lisp/gnus/mm-encode.el b/lisp/gnus/mm-encode.el
index 6f80e01..1a9b5ab 100644
--- a/lisp/gnus/mm-encode.el
+++ b/lisp/gnus/mm-encode.el
@@ -1,6 +1,6 @@
 ;;; mm-encode.el --- Functions for encoding MIME things
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;;     MORIOKA Tomohiko <address@hidden>
diff --git a/lisp/gnus/mm-extern.el b/lisp/gnus/mm-extern.el
index 2ba108d..a6e76ff 100644
--- a/lisp/gnus/mm-extern.el
+++ b/lisp/gnus/mm-extern.el
@@ -1,6 +1,6 @@
 ;;; mm-extern.el --- showing message/external-body
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <address@hidden>
 ;; Keywords: message external-body
diff --git a/lisp/gnus/mm-partial.el b/lisp/gnus/mm-partial.el
index 2b037f1..e3e6f5d 100644
--- a/lisp/gnus/mm-partial.el
+++ b/lisp/gnus/mm-partial.el
@@ -1,6 +1,6 @@
 ;;; mm-partial.el --- showing message/partial
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <address@hidden>
 ;; Keywords: message partial
diff --git a/lisp/gnus/mm-url.el b/lisp/gnus/mm-url.el
index 76c3772..5c8f99b 100644
--- a/lisp/gnus/mm-url.el
+++ b/lisp/gnus/mm-url.el
@@ -1,6 +1,6 @@
 ;;; mm-url.el --- a wrapper of url functions/commands for Gnus
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <address@hidden>
 
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el
index 59ab791..89f397e 100644
--- a/lisp/gnus/mm-util.el
+++ b/lisp/gnus/mm-util.el
@@ -1,6 +1,6 @@
 ;;; mm-util.el --- Utility functions for Mule and low level things
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;;     MORIOKA Tomohiko <address@hidden>
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el
index 4927a5e..10cdeed 100644
--- a/lisp/gnus/mm-uu.el
+++ b/lisp/gnus/mm-uu.el
@@ -1,6 +1,6 @@
 ;;; mm-uu.el --- Return uu stuff as mm handles
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <address@hidden>
 ;; Keywords: postscript uudecode binhex shar forward gnatsweb pgp
@@ -711,6 +711,7 @@ Assume text has been decoded if DECODED is non-nil."
                    ;; Mutt still uses application/pgp even though
                    ;; it has already been withdrawn.
                    (string-match "\\`text/\\|\\`application/pgp\\'" type)
+                   (not (string-match "/x-\\(?:diff\\|patch\\)\\'" type))
                     (equal (car (mm-handle-disposition handle))
                            "inline")
                    (setq
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
index e934f8b..dd64bfe 100644
--- a/lisp/gnus/mm-view.el
+++ b/lisp/gnus/mm-view.el
@@ -1,6 +1,6 @@
 ;;; mm-view.el --- functions for viewing MIME objects
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; This file is part of GNU Emacs.
diff --git a/lisp/gnus/mml-sec.el b/lisp/gnus/mml-sec.el
index 0e2d438..57c371a 100644
--- a/lisp/gnus/mml-sec.el
+++ b/lisp/gnus/mml-sec.el
@@ -1,6 +1,6 @@
 ;;; mml-sec.el --- A package with security functions for MML documents
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 
diff --git a/lisp/gnus/mml-smime.el b/lisp/gnus/mml-smime.el
index b15accd..1821d1a 100644
--- a/lisp/gnus/mml-smime.el
+++ b/lisp/gnus/mml-smime.el
@@ -1,6 +1,6 @@
 ;;; mml-smime.el --- S/MIME support for MML
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;; Keywords: Gnus, MIME, S/MIME, MML
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index 6105f79..3a31349 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -1,6 +1,6 @@
 ;;; mml.el --- A package for parsing and validating MML documents
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; This file is part of GNU Emacs.
@@ -486,7 +486,8 @@ be \"related\" or \"alternate\"."
                 (equal (cdr (assq 'type (car cont))) "text/html"))
        (setq cont (mml-expand-html-into-multipart-related (car cont))))
       (prog1
-         (mm-with-multibyte-buffer
+         (with-temp-buffer
+           (set-buffer-multibyte nil)
            (setq message-options options)
            (cond
             ((and (consp (car cont))
@@ -605,28 +606,38 @@ be \"related\" or \"alternate\"."
                                   (intern (downcase charset))))))
          (if (and (not raw)
                   (member (car (split-string type "/")) '("text" "message")))
+             ;; We have a text-like MIME part, so we need to do
+             ;; charset encoding.
              (progn
                (with-temp-buffer
-                 (cond
-                  ((cdr (assq 'buffer cont))
-                   (insert-buffer-substring (cdr (assq 'buffer cont))))
-                  ((and filename
-                        (not (equal (cdr (assq 'nofile cont)) "yes")))
-                   (let ((coding-system-for-read coding))
-                     (mm-insert-file-contents filename)))
-                  ((eq 'mml (car cont))
-                   (insert (cdr (assq 'contents cont))))
-                  (t
-                   (save-restriction
-                     (narrow-to-region (point) (point))
-                     (insert (cdr (assq 'contents cont)))
-                     ;; Remove quotes from quoted tags.
-                     (goto-char (point-min))
-                     (while (re-search-forward
-                             
"<#!+/?\\(part\\|multipart\\|external\\|mml\\|secure\\)"
-                             nil t)
-                       (delete-region (+ (match-beginning 0) 2)
-                                      (+ (match-beginning 0) 3))))))
+                 (set-buffer-multibyte nil)
+                 ;; First insert the data into the buffer.
+                 (if  (and filename
+                           (not (equal (cdr (assq 'nofile cont)) "yes")))
+                     (mm-insert-file-contents filename)
+                   (insert
+                    (with-temp-buffer
+                      (cond
+                       ((cdr (assq 'buffer cont))
+                        (insert-buffer-substring (cdr (assq 'buffer cont))))
+                       ((eq 'mml (car cont))
+                        (insert (cdr (assq 'contents cont))))
+                       (t
+                        (insert (cdr (assq 'contents cont)))
+                        ;; Remove quotes from quoted tags.
+                        (goto-char (point-min))
+                        (while (re-search-forward
+                                
"<#!+/?\\(part\\|multipart\\|external\\|mml\\|secure\\)"
+                                nil t)
+                          (delete-region (+ (match-beginning 0) 2)
+                                         (+ (match-beginning 0) 3)))))
+                      (setq charset
+                            (mm-coding-system-to-mime-charset
+                             (detect-coding-region
+                              (point-min) (point-max) t)))
+                      (encode-coding-region (point-min) (point-max)
+                                            charset)
+                      (buffer-string))))
                  (cond
                   ((eq (car cont) 'mml)
                    (let ((mml-boundary (mml-compute-boundary cont))
@@ -667,21 +678,22 @@ be \"related\" or \"alternate\"."
                        ;; insert a "; format=flowed" string unless the
                        ;; user has already specified it.
                        (setq flowed (null (assq 'format cont)))))
-                   ;; Prefer `utf-8' for text/calendar parts.
-                   (if (or charset
-                           (not (string= type "text/calendar")))
-                       (setq charset (mm-encode-body charset))
-                     (let ((mm-coding-system-priorities
-                            (cons 'utf-8 mm-coding-system-priorities)))
-                       (setq charset (mm-encode-body))))
-                   (mm-disable-multibyte)
+                   (unless charset
+                     (setq charset
+                           ;; Prefer `utf-8' for text/calendar parts.
+                           (if (string= type "text/calendar")
+                               'utf-8
+                             (mm-coding-system-to-mime-charset
+                              (detect-coding-region
+                               (point-min) (point-max) t)))))
                    (setq encoding (mm-body-encoding
                                    charset (cdr (assq 'encoding cont))))))
                  (setq coded (buffer-string)))
                (mml-insert-mime-headers cont type charset encoding flowed)
                (insert "\n")
                (insert coded))
-           (mm-with-unibyte-buffer
+           (with-temp-buffer
+             (set-buffer-multibyte nil)
              (cond
               ((cdr (assq 'buffer cont))
                (insert (string-as-unibyte
@@ -690,11 +702,7 @@ be \"related\" or \"alternate\"."
               ((and filename
                     (not (equal (cdr (assq 'nofile cont)) "yes")))
                (let ((coding-system-for-read mm-binary-coding-system))
-                 (mm-insert-file-contents filename nil nil nil nil t))
-               (unless charset
-                 (setq charset (mm-coding-system-to-mime-charset
-                                (mm-find-buffer-file-coding-system
-                                 filename)))))
+                 (mm-insert-file-contents filename nil nil nil nil t)))
               (t
                (let ((contents (cdr (assq 'contents cont))))
                  (if (multibyte-string-p contents)
@@ -1244,6 +1252,7 @@ If not set, `default-directory' will be used."
 
 (defun mml-minibuffer-read-file (prompt)
   (let* ((completion-ignored-extensions nil)
+        (buffer-file-name nil)
         (file (read-file-name prompt
                               (or mml-default-directory default-directory)
                               nil t)))
@@ -1378,12 +1387,23 @@ content-type, a string of the form \"type/subtype\".  
DESCRIPTION
 is a one-line description of the attachment.  The DISPOSITION
 specifies how the attachment is intended to be displayed.  It can
 be either \"inline\" (displayed automatically within the message
-body) or \"attachment\" (separate from the body)."
+body) or \"attachment\" (separate from the body).
+
+If given a prefix interactively, no prompting will be done for
+the TYPE, DESCRIPTION or DISPOSITION values.  Instead defaults
+will be computed and used."
   (interactive
    (let* ((file (mml-minibuffer-read-file "Attach file: "))
-         (type (mml-minibuffer-read-type file))
-         (description (mml-minibuffer-read-description))
-         (disposition (mml-minibuffer-read-disposition type nil file)))
+         (type (if current-prefix-arg
+                   (or (mm-default-file-encoding file)
+                       "application/octet-stream")
+                 (mml-minibuffer-read-type file)))
+         (description (if current-prefix-arg
+                          nil
+                        (mml-minibuffer-read-description)))
+         (disposition (if current-prefix-arg
+                          (mml-content-disposition type file)
+                        (mml-minibuffer-read-disposition type nil file))))
      (list file type description disposition)))
   ;; If in the message header, attach at the end and leave point unchanged.
   (let ((head (unless (message-in-body-p) (point))))
diff --git a/lisp/gnus/mml1991.el b/lisp/gnus/mml1991.el
index f98984c..0df908f 100644
--- a/lisp/gnus/mml1991.el
+++ b/lisp/gnus/mml1991.el
@@ -1,6 +1,6 @@
 ;;; mml1991.el --- Old PGP message format (RFC 1991) support for MML
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Sascha Lüdecke <address@hidden>,
 ;;     Simon Josefsson <address@hidden> (Mailcrypt interface, Gnus glue)
diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el
index 7748213..f973670 100644
--- a/lisp/gnus/mml2015.el
+++ b/lisp/gnus/mml2015.el
@@ -1,6 +1,6 @@
 ;;; mml2015.el --- MIME Security with Pretty Good Privacy (PGP)
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <address@hidden>
 ;; Keywords: PGP MIME MML
diff --git a/lisp/gnus/nnagent.el b/lisp/gnus/nnagent.el
index c303bd8..2b48434 100644
--- a/lisp/gnus/nnagent.el
+++ b/lisp/gnus/nnagent.el
@@ -1,6 +1,6 @@
 ;;; nnagent.el --- offline backend for Gnus
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news, mail
diff --git a/lisp/gnus/nnbabyl.el b/lisp/gnus/nnbabyl.el
index 3fb4c2e..5aa481e 100644
--- a/lisp/gnus/nnbabyl.el
+++ b/lisp/gnus/nnbabyl.el
@@ -1,6 +1,6 @@
 ;;; nnbabyl.el --- rmail mbox access for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;;     Masanobu UMEDA <address@hidden>
diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el
index dbdbbad..bed35b5 100644
--- a/lisp/gnus/nndiary.el
+++ b/lisp/gnus/nndiary.el
@@ -1,6 +1,6 @@
 ;;; nndiary.el --- A diary back end for Gnus
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author:        Didier Verna <address@hidden>
 ;; Maintainer:    Didier Verna <address@hidden>
diff --git a/lisp/gnus/nndir.el b/lisp/gnus/nndir.el
index 5d59764..718306a 100644
--- a/lisp/gnus/nndir.el
+++ b/lisp/gnus/nndir.el
@@ -1,6 +1,6 @@
 ;;; nndir.el --- single directory newsgroup access for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/nndoc.el b/lisp/gnus/nndoc.el
index 09260cf..7f7db87 100644
--- a/lisp/gnus/nndoc.el
+++ b/lisp/gnus/nndoc.el
@@ -1,6 +1,6 @@
 ;;; nndoc.el --- single file access for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;;     Masanobu UMEDA <address@hidden>
@@ -356,14 +356,18 @@ from the document.")
       (setq nndoc-dissection-alist nil)
       (with-current-buffer nndoc-current-buffer
        (erase-buffer)
-       (if (and (stringp nndoc-address)
-                (string-match nndoc-binary-file-names nndoc-address))
-           (let ((coding-system-for-read 'binary))
-             (mm-insert-file-contents nndoc-address))
-         (if (stringp nndoc-address)
-             (nnheader-insert-file-contents nndoc-address)
-           (insert-buffer-substring nndoc-address))
-         (run-hooks 'nndoc-open-document-hook)))))
+       (condition-case error
+           (if (and (stringp nndoc-address)
+                    (string-match nndoc-binary-file-names nndoc-address))
+               (let ((coding-system-for-read 'binary))
+                 (mm-insert-file-contents nndoc-address))
+             (if (stringp nndoc-address)
+                 (nnheader-insert-file-contents nndoc-address)
+               (insert-buffer-substring nndoc-address))
+             (run-hooks 'nndoc-open-document-hook))
+         (file-error
+          (nnheader-report 'nndoc "Couldn't open %s: %s"
+                           group error))))))
     ;; Initialize the nndoc structures according to this new document.
     (when (and nndoc-current-buffer
               (not nndoc-dissection-alist))
@@ -495,7 +499,7 @@ from the document.")
       (save-restriction
        (narrow-to-region (point) (point-max))
        (mm-decode-content-transfer-encoding
-        (intern (downcase (mail-header-strip encoding))))))))
+        (intern (downcase (mail-header-strip-cte encoding))))))))
 
 (defun nndoc-babyl-type-p ()
   (when (re-search-forward "\^_\^L *\n" nil t)
@@ -558,7 +562,7 @@ from the document.")
       (save-restriction
        (narrow-to-region begin (point-max))
        (mm-decode-content-transfer-encoding
-        (intern (downcase (mail-header-strip encoding))))))
+        (intern (downcase (mail-header-strip-cte encoding))))))
     (when head
       (goto-char begin)
       (when (search-forward "\n\n" nil t)
diff --git a/lisp/gnus/nndraft.el b/lisp/gnus/nndraft.el
index 0c887f0..12a1b2b 100644
--- a/lisp/gnus/nndraft.el
+++ b/lisp/gnus/nndraft.el
@@ -1,6 +1,6 @@
 ;;; nndraft.el --- draft article access for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/nneething.el b/lisp/gnus/nneething.el
index 28561c0..6850cad 100644
--- a/lisp/gnus/nneething.el
+++ b/lisp/gnus/nneething.el
@@ -1,6 +1,6 @@
 ;;; nneething.el --- arbitrary file access for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;;     Masanobu UMEDA <address@hidden>
diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el
index 402ffba..18c92f9 100644
--- a/lisp/gnus/nnfolder.el
+++ b/lisp/gnus/nnfolder.el
@@ -1,6 +1,6 @@
 ;;; nnfolder.el --- mail folder access for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;;      ShengHuo Zhu <address@hidden> (adding NOV)
diff --git a/lisp/gnus/nngateway.el b/lisp/gnus/nngateway.el
index 5d7b11b..1e57f7c 100644
--- a/lisp/gnus/nngateway.el
+++ b/lisp/gnus/nngateway.el
@@ -1,6 +1,6 @@
 ;;; nngateway.el --- posting news via mail gateways
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news, mail
diff --git a/lisp/gnus/nnheader.el b/lisp/gnus/nnheader.el
index 6782229..648485b 100644
--- a/lisp/gnus/nnheader.el
+++ b/lisp/gnus/nnheader.el
@@ -1,6 +1,6 @@
 ;;; nnheader.el --- header access macros for Gnus and its backends
 
-;; Copyright (C) 1987-1990, 1993-1998, 2000-2016 Free Software
+;; Copyright (C) 1987-1990, 1993-1998, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <address@hidden>
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index 2e2ec59..2943c8d 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -1,6 +1,6 @@
 ;;; nnimap.el --- IMAP interface for Gnus
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;;         Simon Josefsson <address@hidden>
@@ -67,7 +67,11 @@ back on `network'.")
                                 (if (listp imap-shell-program)
                                     (car imap-shell-program)
                                   imap-shell-program)
-                              "ssh %s imapd"))
+                              "ssh %s imapd")
+  "What command to execute to connect to an IMAP server.
+This will only be used if the connection type is `shell'.  See
+the `open-network-stream' documentation for an explanation of
+the format.")
 
 (defvoo nnimap-inbox nil
   "The mail box where incoming mail arrives and should be split out of.
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index a3ad4d6..9640f2c 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -1,6 +1,6 @@
-;;; nnir.el --- search mail with various search engines -*- coding: utf-8 -*-
+;;; nnir.el --- Search mail with various search engines  -*- lexical-binding:t 
-*-
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Kai Großjohann <address@hidden>
 ;; Swish-e and Swish++ backends by:
@@ -175,8 +175,7 @@
 (require 'gnus-group)
 (require 'message)
 (require 'gnus-util)
-(eval-when-compile
-  (require 'cl))
+(eval-when-compile (require 'cl-lib))
 
 ;;; Internal Variables:
 
@@ -686,18 +685,18 @@ skips all prompting."
               parsefunc)
          ;; (nnir-possibly-change-group nil server)
          (erase-buffer)
-         (case (setq gnus-headers-retrieved-by
-                     (or
-                      (and
-                       nnir-retrieve-headers-override-function
-                       (funcall nnir-retrieve-headers-override-function
-                                artlist artgroup))
-                      (gnus-retrieve-headers artlist artgroup nil)))
-           (nov
+         (pcase (setq gnus-headers-retrieved-by
+                       (or
+                        (and
+                         nnir-retrieve-headers-override-function
+                         (funcall nnir-retrieve-headers-override-function
+                                  artlist artgroup))
+                        (gnus-retrieve-headers artlist artgroup nil)))
+           ('nov
             (setq parsefunc 'nnheader-parse-nov))
-           (headers
+           ('headers
             (setq parsefunc 'nnheader-parse-head))
-           (t (error "Unknown header type %s while requesting articles \
+           (_ (error "Unknown header type %s while requesting articles \
                     of group %s" gnus-headers-retrieved-by artgroup)))
          (goto-char (point-min))
          (while (not (eobp))
@@ -831,7 +830,7 @@ skips all prompting."
   (nnir-possibly-change-group group server)
   (let (mlist)
     (dolist (action actions)
-      (destructuring-bind (range action marks) action
+      (cl-destructuring-bind (range action marks) action
         (let ((articles-by-group (nnir-categorize
                                   (gnus-uncompress-range range)
                                   nnir-article-group nnir-article-number)))
@@ -839,7 +838,9 @@ skips all prompting."
             (push (list
                   (car artgroup)
                   (list (gnus-compress-sequence
-                         (sort (cadr artgroup) '<)) action marks)) mlist)))))
+                         (sort (cadr artgroup) '<))
+                         action marks))
+                  mlist)))))
     (dolist (request (nnir-categorize  mlist car cadr))
       (gnus-request-set-mark (car request) (cadr request)))))
 
@@ -872,7 +873,7 @@ skips all prompting."
                     (when (gnus-member-of-range (cdr art) read) (car art)))
                   articleids))))
        (dolist (mark marks)
-         (destructuring-bind (type . range) mark
+         (cl-destructuring-bind (type . range) mark
            (gnus-add-marked-articles
             group type
             (delq nil
@@ -955,7 +956,7 @@ details on the language and supported extensions."
   (save-excursion
     (let ((qstring (cdr (assq 'query query)))
           (server (cadr (gnus-server-to-method srv)))
-          (defs (caddr (gnus-server-to-method srv)))
+          (defs (nth 2 (gnus-server-to-method srv)))
           (criteria (or (cdr (assq 'criteria query))
                         (cdr (assoc nnir-imap-default-search-key
                                     nnir-imap-search-arguments))))
@@ -1056,13 +1057,13 @@ In future the following will be added to the language:
    ;; Composite term: or expression
    ((eq (car-safe expr) 'or)
     (format "OR %s %s"
-           (nnir-imap-expr-to-imap criteria (second expr))
-           (nnir-imap-expr-to-imap criteria (third expr))))
+           (nnir-imap-expr-to-imap criteria (nth 1 expr))
+           (nnir-imap-expr-to-imap criteria (nth 2 expr))))
    ;; Composite term: just the fax, mam
    ((eq (car-safe expr) 'not)
-    (format "NOT (%s)" (nnir-imap-query-to-imap criteria (rest expr))))
+    (format "NOT (%s)" (nnir-imap-query-to-imap criteria (cdr expr))))
    ;; Composite term: just expand it all.
-   ((and (not (null expr)) (listp expr))
+   ((consp expr)
     (format "(%s)" (nnir-imap-query-to-imap criteria expr)))
    ;; Complex value, give up for now.
    (t (error "Unhandled input: %S" expr))))
@@ -1223,8 +1224,8 @@ Windows NT 4.0."
              (exitstatus
               (progn
                 (message "%s args: %s" nnir-swish++-program
-                         (mapconcat 'identity (cddddr cp-list) " ")) ;; ???
-                (apply 'call-process cp-list))))
+                         (mapconcat #'identity (nthcdr 4 cp-list) " ")) ;; ???
+                (apply #'call-process cp-list))))
         (unless (or (null exitstatus)
                     (zerop exitstatus))
           (nnheader-report 'nnir "Couldn't run swish++: %s" exitstatus)
@@ -1259,7 +1260,7 @@ Windows NT 4.0."
       (message "Massaging swish++ output...done")
 
       ;; Sort by score
-      (apply 'vector
+      (apply #'vector
              (sort artlist
                    (function (lambda (x y)
                                (> (nnir-artitem-rsv x)
@@ -1310,8 +1311,8 @@ Tested with swish-e-2.0.1 on Windows NT 4.0."
              (exitstatus
               (progn
                 (message "%s args: %s" nnir-swish-e-program
-                         (mapconcat 'identity (cddddr cp-list) " "))
-                (apply 'call-process cp-list))))
+                         (mapconcat #'identity (nthcdr 4 cp-list) " "))
+                (apply #'call-process cp-list))))
         (unless (or (null exitstatus)
                     (zerop exitstatus))
           (nnheader-report 'nnir "Couldn't run swish-e: %s" exitstatus)
@@ -1354,7 +1355,7 @@ Tested with swish-e-2.0.1 on Windows NT 4.0."
       (message "Massaging swish-e output...done")
 
       ;; Sort by score
-      (apply 'vector
+      (apply #'vector
              (sort artlist
                    (function (lambda (x y)
                                (> (nnir-artitem-rsv x)
@@ -1387,8 +1388,8 @@ Tested with swish-e-2.0.1 on Windows NT 4.0."
              (exitstatus
               (progn
                 (message "%s args: %s" nnir-hyrex-program
-                         (mapconcat 'identity (cddddr cp-list) " "))
-                (apply 'call-process cp-list))))
+                         (mapconcat #'identity (nthcdr 4 cp-list) " "))
+                (apply #'call-process cp-list))))
         (unless (or (null exitstatus)
                     (zerop exitstatus))
           (nnheader-report 'nnir "Couldn't run hyrex-search: %s" exitstatus)
@@ -1421,7 +1422,7 @@ Tested with swish-e-2.0.1 on Windows NT 4.0."
                      (string-to-number score))
              artlist))
       (message "Massaging hyrex-search output...done.")
-      (apply 'vector
+      (apply #'vector
             (sort artlist
                    (function (lambda (x y)
                                (if (string-lessp (nnir-artitem-group x)
@@ -1467,8 +1468,8 @@ Tested with Namazu 2.0.6 on a GNU/Linux system."
              (exitstatus
               (progn
                 (message "%s args: %s" nnir-namazu-program
-                         (mapconcat 'identity (cddddr cp-list) " "))
-                (apply 'call-process cp-list))))
+                         (mapconcat #'identity (nthcdr 4 cp-list) " "))
+                (apply #'call-process cp-list))))
         (unless (or (null exitstatus)
                     (zerop exitstatus))
           (nnheader-report 'nnir "Couldn't run namazu: %s" exitstatus)
@@ -1495,7 +1496,7 @@ Tested with Namazu 2.0.6 on a GNU/Linux system."
          (nnir-add-result group article score prefix server artlist)))
 
       ;; sort artlist by score
-      (apply 'vector
+      (apply #'vector
              (sort artlist
                    (function (lambda (x y)
                                (> (nnir-artitem-rsv x)
@@ -1543,8 +1544,8 @@ actually)."
              (exitstatus
               (progn
                 (message "%s args: %s" nnir-notmuch-program
-                         (mapconcat 'identity (cddddr cp-list) " ")) ;; ???
-                (apply 'call-process cp-list))))
+                         (mapconcat #'identity (nthcdr 4 cp-list) " ")) ;; ???
+                (apply #'call-process cp-list))))
         (unless (or (null exitstatus)
                     (zerop exitstatus))
           (nnheader-report 'nnir "Couldn't run notmuch: %s" exitstatus)
@@ -1639,7 +1640,7 @@ actually)."
                            (art (string-to-number (car (last path)))))
                       (while (string= "." (car path))
                         (setq path (cdr path)))
-                      (let ((group (mapconcat 'identity
+                      (let ((group (mapconcat #'identity
                                               ;; Replace cl-func:
                                               ;; (subseq path 0 -1)
                                               (let ((end (1- (length path)))
@@ -1707,7 +1708,7 @@ actually)."
                      (string-to-number (match-string 2 xref)) xscore)
                     artlist)))))
            (forward-line 1)))
-       (apply 'vector (nreverse (delete-dups artlist)))))
+       (apply #'vector (nreverse (delete-dups artlist)))))
 
 ;;; Util Code:
 
@@ -1719,8 +1720,8 @@ actually)."
 
 (defun nnir-read-parms (nnir-search-engine)
   "Reads additional search parameters according to `nnir-engines'."
-  (let ((parmspec (caddr (assoc nnir-search-engine nnir-engines))))
-    (mapcar 'nnir-read-parm parmspec)))
+  (let ((parmspec (nth 2 (assoc nnir-search-engine nnir-engines))))
+    (mapcar #'nnir-read-parm parmspec)))
 
 (defun nnir-read-parm (parmspec)
   "Reads a single search parameter.
@@ -1728,7 +1729,7 @@ actually)."
   (let ((sym (car parmspec))
         (prompt (cdr parmspec)))
     (if (listp prompt)
-       (let* ((result (apply 'gnus-completing-read prompt))
+       (let* ((result (apply #'gnus-completing-read prompt))
               (mapping (or (assoc result nnir-imap-search-arguments)
                            (cons nil nnir-imap-search-other))))
          (cons sym (format (cdr mapping) result)))
@@ -1736,7 +1737,7 @@ actually)."
 
 (defun nnir-run-query (specs)
   "Invoke appropriate search engine function (see `nnir-engines')."
-  (apply 'vconcat
+  (apply #'vconcat
         (mapcar
          (lambda (x)
            (let* ((server (car x))
@@ -1796,7 +1797,8 @@ article came from is also searched."
          (and registry-group
               (gnus-method-to-server
                (gnus-find-method-for-group registry-group)))))
-    (when registry-server (add-to-list 'server (list registry-server)))
+    (when registry-server
+      (cl-pushnew (list registry-server) server :test #'equal))
     (gnus-group-make-nnir-group nil (list
                                     (cons 'nnir-query-spec query)
                                     (cons 'nnir-group-spec server)))
diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
index 5495510..3f2e081 100644
--- a/lisp/gnus/nnmail.el
+++ b/lisp/gnus/nnmail.el
@@ -1,6 +1,6 @@
 ;;; nnmail.el --- mail support functions for the Gnus mail backends
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news, mail
diff --git a/lisp/gnus/nnmairix.el b/lisp/gnus/nnmairix.el
index 128f912..a678a79 100644
--- a/lisp/gnus/nnmairix.el
+++ b/lisp/gnus/nnmairix.el
@@ -1,6 +1,6 @@
 ;;; nnmairix.el --- Mairix back end for Gnus, the Emacs newsreader
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: David Engster <address@hidden>
 ;; Keywords: mail searching
diff --git a/lisp/gnus/nnmbox.el b/lisp/gnus/nnmbox.el
index b4b697d..c854f19 100644
--- a/lisp/gnus/nnmbox.el
+++ b/lisp/gnus/nnmbox.el
@@ -1,6 +1,6 @@
 ;;; nnmbox.el --- mail mbox access for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;;     Masanobu UMEDA <address@hidden>
diff --git a/lisp/gnus/nnmh.el b/lisp/gnus/nnmh.el
index 51048bb..bec174d 100644
--- a/lisp/gnus/nnmh.el
+++ b/lisp/gnus/nnmh.el
@@ -1,6 +1,6 @@
 ;;; nnmh.el --- mhspool access for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;;     Masanobu UMEDA <address@hidden>
diff --git a/lisp/gnus/nnml.el b/lisp/gnus/nnml.el
index 4976f25..b0c7bf4 100644
--- a/lisp/gnus/nnml.el
+++ b/lisp/gnus/nnml.el
@@ -1,6 +1,6 @@
 ;;; nnml.el --- mail spool access for Gnus
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Authors: Didier Verna <address@hidden> (adding compaction)
 ;;     Simon Josefsson <address@hidden>
diff --git a/lisp/gnus/nnoo.el b/lisp/gnus/nnoo.el
index 5193580..77e7f2a 100644
--- a/lisp/gnus/nnoo.el
+++ b/lisp/gnus/nnoo.el
@@ -1,6 +1,6 @@
 ;;; nnoo.el --- OO Gnus Backends
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/nnregistry.el b/lisp/gnus/nnregistry.el
index 6cf4c9d..b1a2416 100644
--- a/lisp/gnus/nnregistry.el
+++ b/lisp/gnus/nnregistry.el
@@ -1,7 +1,7 @@
 ;;; nnregistry.el --- access to articles via Gnus' message-id registry
 ;;; -*- coding: utf-8 -*-
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Authors: Ludovic Courtès <address@hidden>
 ;; Keywords: news, mail
diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el
index 68dabcb..8115057 100644
--- a/lisp/gnus/nnrss.el
+++ b/lisp/gnus/nnrss.el
@@ -1,6 +1,6 @@
 ;;; nnrss.el --- interfacing with RSS
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <address@hidden>
 ;; Keywords: RSS
diff --git a/lisp/gnus/nnspool.el b/lisp/gnus/nnspool.el
index 9db68b1..1db0a41 100644
--- a/lisp/gnus/nnspool.el
+++ b/lisp/gnus/nnspool.el
@@ -1,6 +1,6 @@
 ;;; nnspool.el --- spool access for GNU Emacs
 
-;; Copyright (C) 1988-1990, 1993-1998, 2000-2016 Free Software
+;; Copyright (C) 1988-1990, 1993-1998, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <address@hidden>
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
index 38e7c6e..a71f4c7 100644
--- a/lisp/gnus/nntp.el
+++ b/lisp/gnus/nntp.el
@@ -1,6 +1,6 @@
 ;;; nntp.el --- nntp access for Gnus
 
-;; Copyright (C) 1987-1990, 1992-1998, 2000-2016 Free Software
+;; Copyright (C) 1987-1990, 1992-1998, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
diff --git a/lisp/gnus/nnvirtual.el b/lisp/gnus/nnvirtual.el
index c309d53..dcd6103 100644
--- a/lisp/gnus/nnvirtual.el
+++ b/lisp/gnus/nnvirtual.el
@@ -1,6 +1,6 @@
 ;;; nnvirtual.el --- virtual newsgroups access for Gnus
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Author: David Moore <address@hidden>
 ;;     Lars Magne Ingebrigtsen <address@hidden>
diff --git a/lisp/gnus/nnweb.el b/lisp/gnus/nnweb.el
index 7fc4464..8e5b200 100644
--- a/lisp/gnus/nnweb.el
+++ b/lisp/gnus/nnweb.el
@@ -1,6 +1,6 @@
 ;;; nnweb.el --- retrieving articles via web search engines
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/gnus/score-mode.el b/lisp/gnus/score-mode.el
index 5ae59c3..d106cf0 100644
--- a/lisp/gnus/score-mode.el
+++ b/lisp/gnus/score-mode.el
@@ -1,6 +1,6 @@
 ;;; score-mode.el --- mode for editing Gnus score files
 
-;; Copyright (C) 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news, mail
diff --git a/lisp/gnus/smiley.el b/lisp/gnus/smiley.el
index 1ea4c1e..763a1cd 100644
--- a/lisp/gnus/smiley.el
+++ b/lisp/gnus/smiley.el
@@ -1,6 +1,6 @@
 ;;; smiley.el --- displaying smiley faces
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Keywords: news mail multimedia
diff --git a/lisp/gnus/smime.el b/lisp/gnus/smime.el
index 888974e..e3c284f 100644
--- a/lisp/gnus/smime.el
+++ b/lisp/gnus/smime.el
@@ -1,6 +1,6 @@
-;;; smime.el --- S/MIME support library
+;;; smime.el --- S/MIME support library  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;; Keywords: SMIME X.509 PEM OpenSSL
@@ -122,7 +122,7 @@
 
 (require 'password-cache)
 
-(eval-when-compile (require 'cl))
+(eval-when-compile (require 'cl-lib))
 
 (defgroup smime nil
   "S/MIME configuration."
@@ -243,13 +243,13 @@ password under `cache-key'."
 ;; OpenSSL wrappers.
 
 (defun smime-call-openssl-region (b e buf &rest args)
-  (case (apply 'call-process-region b e smime-openssl-program nil buf nil args)
+  (pcase (apply #'call-process-region b e smime-openssl-program nil buf nil 
args)
     (0 t)
     (1 (message "OpenSSL: An error occurred parsing the command options.") nil)
     (2 (message "OpenSSL: One of the input files could not be read.") nil)
     (3 (message "OpenSSL: An error occurred creating the PKCS#7 file or when 
reading the MIME message.") nil)
     (4 (message "OpenSSL: An error occurred decrypting or verifying the 
message.") nil)
-    (t (error "Unknown OpenSSL exitcode") nil)))
+    (_ (error "Unknown OpenSSL exitcode"))))
 
 (defun smime-make-certfiles (certfiles)
   (if certfiles
@@ -373,7 +373,7 @@ Any details (stdout and stderr) are left in the buffer 
specified by
     (unless CAs
       (error "No CA configured"))
     (if smime-crl-check
-       (add-to-list 'CAs smime-crl-check))
+       (cl-pushnew smime-crl-check CAs :test #'equal))
     (if (apply 'smime-call-openssl-region b e (list smime-details-buffer t)
               "smime" "-verify" "-out" "/dev/null" CAs)
        t
@@ -400,7 +400,7 @@ Any details (stderr on success, stdout and stderr on error) 
are left
 in the buffer specified by `smime-details-buffer'."
   (smime-new-details-buffer)
   (let ((buffer (generate-new-buffer " *smime*"))
-       CAs (passphrase (smime-ask-passphrase (expand-file-name keyfile)))
+       (passphrase (smime-ask-passphrase (expand-file-name keyfile)))
        (tmpfile (make-temp-file "smime")))
     (if passphrase
        (setenv "GNUS_SMIME_PASSPHRASE" passphrase))
@@ -507,7 +507,7 @@ A string or a list of strings is returned."
       (let ((curkey (car keys))
            (otherkeys (cdr keys)))
        (if (string= keyfile (cadr curkey))
-           (caddr curkey)
+           (nth 2 curkey)
          (smime-get-certfiles keyfile otherkeys)))))
 
 (defun smime-buffer-as-string-region (b e)
@@ -564,25 +564,29 @@ A string or a list of strings is returned."
          (concat "mail=" mail)
          host '("userCertificate") nil))
        (retbuf (generate-new-buffer (format "*certificate for %s*" mail)))
+        ldapstr
        cert)
-    (if (and (>= (length ldapresult) 1)
-             (> (length (cadaar ldapresult)) 0))
+    (if (and (consp ldapresult)
+             ;; FIXME: This seems to expect a format rather different from
+             ;; the list of alists described in ldap.el.
+             (setq ldapstr (cadr (caar ldapresult)))
+             (> (length ldapstr) 0))
        (with-current-buffer retbuf
          ;; Certificates on LDAP servers _should_ be in DER format,
          ;; but there are some servers out there that distributes the
          ;; certificates in PEM format (with or without
          ;; header/footer) so we try to handle them anyway.
-         (if (or (string= (substring (cadaar ldapresult) 0 27)
+         (if (or (string= (substring ldapstr 0 27)
                           "-----BEGIN CERTIFICATE-----")
-                 (string= (substring (cadaar ldapresult) 0 3)
+                 (string= (substring ldapstr 0 3)
                           "MII"))
              (setq cert
                    (replace-regexp-in-string
                     (concat "\\(\n\\|\r\\|-----BEGIN CERTIFICATE-----\\|"
                             "-----END CERTIFICATE-----\\)")
                     ""
-                    (cadaar ldapresult) nil t))
-           (setq cert (base64-encode-string (cadaar ldapresult) t)))
+                    ldapstr nil t))
+           (setq cert (base64-encode-string ldapstr t)))
          (insert "-----BEGIN CERTIFICATE-----\n")
          (let ((i 0) (len (length cert)))
            (while (> (- len 64) i)
diff --git a/lisp/gnus/spam-report.el b/lisp/gnus/spam-report.el
index 88854e0..17a7f89 100644
--- a/lisp/gnus/spam-report.el
+++ b/lisp/gnus/spam-report.el
@@ -1,6 +1,6 @@
 ;;; spam-report.el --- Reporting spam
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Ted Zlatanov <address@hidden>
 ;; Keywords: network, spam, mail, gmane, report
diff --git a/lisp/gnus/spam-stat.el b/lisp/gnus/spam-stat.el
index 23b4556..5466cf9 100644
--- a/lisp/gnus/spam-stat.el
+++ b/lisp/gnus/spam-stat.el
@@ -1,6 +1,6 @@
 ;;; spam-stat.el --- detecting spam based on statistics
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
 ;; Keywords: network
diff --git a/lisp/gnus/spam-wash.el b/lisp/gnus/spam-wash.el
index 2bb9171..bcdde73 100644
--- a/lisp/gnus/spam-wash.el
+++ b/lisp/gnus/spam-wash.el
@@ -1,6 +1,6 @@
 ;;; spam-wash.el --- wash spam before analysis
 
-;; Copyright (C) 2004, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Andrew Cohen <address@hidden>
 ;; Keywords: mail
diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el
index d322400..5f0ea94 100644
--- a/lisp/gnus/spam.el
+++ b/lisp/gnus/spam.el
@@ -1,6 +1,6 @@
 ;;; spam.el --- Identifying spam
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Maintainer: Ted Zlatanov <address@hidden>
diff --git a/lisp/help-at-pt.el b/lisp/help-at-pt.el
index b90be5a..87b9e50 100644
--- a/lisp/help-at-pt.el
+++ b/lisp/help-at-pt.el
@@ -1,6 +1,6 @@
 ;;; help-at-pt.el --- local help through the keyboard
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Luc Teirlinck <address@hidden>
 ;; Keywords: help
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index 23dec89..742c669 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -1,6 +1,6 @@
 ;;; help-fns.el --- Complex help functions -*- lexical-binding: t -*-
 
-;; Copyright (C) 1985-1986, 1993-1994, 1998-2016 Free Software
+;; Copyright (C) 1985-1986, 1993-1994, 1998-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
@@ -115,13 +115,15 @@ When called from lisp, FUNCTION may also be a function 
object."
                 (if fn
                     (format "Describe function (default %s): " fn)
                   "Describe function: ")
-                #'help--symbol-completion-table #'fboundp t nil nil
+                #'help--symbol-completion-table
+                (lambda (f) (or (fboundp f) (get f 'function-documentation)))
+                t nil nil
                 (and fn (symbol-name fn)))))
      (unless (equal val "")
        (setq fn (intern val)))
      (unless (and fn (symbolp fn))
        (user-error "You didn't specify a function symbol"))
-     (unless (fboundp fn)
+     (unless (or (fboundp fn) (get fn 'function-documentation))
        (user-error "Symbol's function definition is void: %s" fn))
      (list fn)))
 
@@ -144,7 +146,9 @@ When called from lisp, FUNCTION may also be a function 
object."
 
     (save-excursion
       (with-help-window (help-buffer)
-        (prin1 function)
+        (if (get function 'reader-construct)
+            (princ function)
+          (prin1 function))
         ;; Use " is " instead of a colon so that
         ;; it is easier to get out the function name using forward-sexp.
         (princ " is ")
@@ -469,7 +473,8 @@ suitable file is found, return nil."
         (let ((fill-begin (point))
               (high-usage (car high))
               (high-doc (cdr high)))
-          (insert high-usage "\n")
+          (unless (get function 'reader-construct)
+            (insert high-usage "\n"))
           (fill-region fill-begin (point))
           high-doc)))))
 
@@ -565,18 +570,21 @@ FILE is the file where FUNCTION was probably defined."
          (or (and advised
                    (advice--cd*r (advice--symbol-function function)))
              function))
-        ;; Get the real definition.
+        ;; Get the real definition, if any.
         (def (if (symbolp real-function)
-                 (or (symbol-function real-function)
-                     (signal 'void-function (list real-function)))
+                  (cond ((symbol-function real-function))
+                        ((get real-function 'function-documentation)
+                         nil)
+                        (t (signal 'void-function (list real-function))))
                real-function))
-        (aliased (or (symbolp def)
-                     ;; Advised & aliased function.
-                     (and advised (symbolp real-function)
-                          (not (eq 'autoload (car-safe def))))
-                      (and (subrp def)
-                           (not (string= (subr-name def)
-                                         (symbol-name function))))))
+        (aliased (and def
+                       (or (symbolp def)
+                           ;; Advised & aliased function.
+                           (and advised (symbolp real-function)
+                                (not (eq 'autoload (car-safe def))))
+                           (and (subrp def)
+                                (not (string= (subr-name def)
+                                              (symbol-name function)))))))
         (real-def (cond
                     ((and aliased (not (subrp def)))
                      (let ((f real-function))
@@ -605,6 +613,8 @@ FILE is the file where FUNCTION was probably defined."
     ;; Print what kind of function-like object FUNCTION is.
     (princ (cond ((or (stringp def) (vectorp def))
                  "a keyboard macro")
+                ((get function 'reader-construct)
+                  "a reader construct")
                 ;; Aliases are Lisp functions, so we need to check
                 ;; aliases before functions.
                 (aliased
@@ -842,7 +852,7 @@ it is displayed along with the global value."
                    (terpri)
                    (pp val)
                     ;; Remove trailing newline.
-                    (delete-char -1))
+                    (and (= (char-before) ?\n) (delete-char -1)))
                  (let* ((sv (get variable 'standard-value))
                         (origval (and (consp sv)
                                       (condition-case nil
@@ -863,8 +873,6 @@ it is displayed along with the global value."
                ((bufferp locus)
                 (princ (format "Local in buffer %s; "
                                (buffer-name buffer))))
-               ((framep locus)
-                (princ (format "It is a frame-local variable; ")))
                ((terminal-live-p locus)
                 (princ (format "It is a terminal-local variable; ")))
                (t
diff --git a/lisp/help-macro.el b/lisp/help-macro.el
index eb2f624..c8f93bc 100644
--- a/lisp/help-macro.el
+++ b/lisp/help-macro.el
@@ -1,6 +1,6 @@
 ;;; help-macro.el --- makes command line help such as help-for-help
 
-;; Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Lynn Slater <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index e008698..3fb793e 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -1,6 +1,6 @@
 ;;; help-mode.el --- `help-mode' used by *Help* buffers
 
-;; Copyright (C) 1985-1986, 1993-1994, 1998-2016 Free Software
+;; Copyright (C) 1985-1986, 1993-1994, 1998-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
@@ -328,7 +328,7 @@ Commands:
                    "\\(source \\(?:code \\)?\\(?:of\\|for\\)\\)\\)"
                    "[ \t\n]+\\)?"
                    ;; Note starting with word-syntax character:
-                   "['`‘]\\(\\sw\\(\\sw\\|\\s_\\)+\\)['’]"))
+                   "['`‘]\\(\\sw\\(\\sw\\|\\s_\\)+\\|`\\)['’]"))
   "Regexp matching doc string references to symbols.
 
 The words preceding the quoted symbol can be used in doc strings to
diff --git a/lisp/help.el b/lisp/help.el
index b848566..d3aaa1e 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -1,6 +1,6 @@
 ;;; help.el --- help commands for Emacs
 
-;; Copyright (C) 1985-1986, 1993-1994, 1998-2016 Free Software
+;; Copyright (C) 1985-1986, 1993-1994, 1998-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/hex-util.el b/lisp/hex-util.el
index 889bf9b..e2e3d7f 100644
--- a/lisp/hex-util.el
+++ b/lisp/hex-util.el
@@ -1,6 +1,6 @@
 ;;; hex-util.el --- Functions to encode/decode hexadecimal string -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Shuhei KOBAYASHI <address@hidden>
 ;; Keywords: data
diff --git a/lisp/hexl.el b/lisp/hexl.el
index 5f099a5..b5e9c1f 100644
--- a/lisp/hexl.el
+++ b/lisp/hexl.el
@@ -1,6 +1,6 @@
 ;;; hexl.el --- edit a file in a hex dump format using the hexl filter -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1989, 1994, 1998, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1989, 1994, 1998, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Keith Gabryelski <address@hidden>
diff --git a/lisp/hfy-cmap.el b/lisp/hfy-cmap.el
index e12ec8a..6fcaad0 100644
--- a/lisp/hfy-cmap.el
+++ b/lisp/hfy-cmap.el
@@ -1,6 +1,6 @@
 ;;; hfy-cmap.el --- Fallback colour name -> rgb mapping for `htmlfontify'
 
-;; Copyright (C) 2002-2003, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2003, 2009-2017 Free Software Foundation, Inc.
 
 ;; Emacs Lisp Archive Entry
 ;; Package: htmlfontify
diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el
index 549010d..ebd1862 100644
--- a/lisp/hi-lock.el
+++ b/lisp/hi-lock.el
@@ -1,6 +1,6 @@
 ;;; hi-lock.el --- minor mode for interactive automatic highlighting  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: David M. Koppelman <address@hidden>
 ;; Keywords: faces, minor-mode, matching, display
diff --git a/lisp/hilit-chg.el b/lisp/hilit-chg.el
index 1e4deb9..1a41056 100644
--- a/lisp/hilit-chg.el
+++ b/lisp/hilit-chg.el
@@ -1,6 +1,6 @@
 ;;; hilit-chg.el --- minor mode displaying buffer changes with special face
 
-;; Copyright (C) 1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Richard Sharman <address@hidden>
 ;; Keywords: faces
diff --git a/lisp/hippie-exp.el b/lisp/hippie-exp.el
index 017d901..8dc53bd 100644
--- a/lisp/hippie-exp.el
+++ b/lisp/hippie-exp.el
@@ -1,6 +1,6 @@
 ;;; hippie-exp.el --- expand text trying various ways to find its expansion
 
-;; Copyright (C) 1992, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Anders Holst <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/hl-line.el b/lisp/hl-line.el
index d75e52f..38fe683 100644
--- a/lisp/hl-line.el
+++ b/lisp/hl-line.el
@@ -1,6 +1,6 @@
 ;;; hl-line.el --- highlight the current line  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author:  Dave Love <address@hidden>
 ;; Maintainer: address@hidden
@@ -189,7 +189,8 @@ Specifically, when `hl-line-sticky-flag' is nil deactivate 
all
 such overlays in all buffers except the current one."
   (let ((hlob hl-line-overlay-buffer)
         (curbuf (current-buffer)))
-    (when (and (not hl-line-sticky-flag)
+    (when (and (buffer-live-p hlob)
+               (not hl-line-sticky-flag)
                (not (eq curbuf hlob))
                (not (minibufferp)))
       (with-current-buffer hlob
diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el
index 19a57ba..74393ff 100644
--- a/lisp/htmlfontify.el
+++ b/lisp/htmlfontify.el
@@ -1,6 +1,6 @@
 ;;; htmlfontify.el --- htmlize a buffer/source tree with optional hyperlinks 
-*- lexical-binding: t -*-
 
-;; Copyright (C) 2002-2003, 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2003, 2009-2017 Free Software Foundation, Inc.
 
 ;; Emacs Lisp Archive Entry
 ;; Package: htmlfontify
@@ -365,9 +365,15 @@ commands in `hfy-etags-cmd-alist'."
 
 (defun hfy-which-etags ()
   "Return a string indicating which flavor of etags we are using."
-  (let ((v (shell-command-to-string (concat hfy-etags-bin " --version"))))
-    (cond ((string-match "exube" v) "exuberant ctags")
-          ((string-match "GNU E" v) "emacs etags"    )) ))
+  (with-temp-buffer
+    (condition-case nil
+        (when (eq (call-process hfy-etags-bin nil t nil "--version") 0)
+          (goto-char (point-min))
+          (cond
+           ((looking-at-p "exube") "exuberant ctags")
+           ((looking-at-p "GNU E") "emacs etags")))
+      ;; Return nil if the etags binary isn't executable (Bug#25468).
+      (file-error nil))))
 
 (defcustom hfy-etags-cmd
   ;; We used to wrap this in a `eval-and-compile', but:
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index 7ebfecd..058eaec 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -1,6 +1,6 @@
 ;;; ibuf-ext.el --- extensions for ibuffer  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Colin Walters <address@hidden>
 ;; Maintainer: John Paul Wallington <address@hidden>
diff --git a/lisp/ibuf-macs.el b/lisp/ibuf-macs.el
index fc8c127..05e568e 100644
--- a/lisp/ibuf-macs.el
+++ b/lisp/ibuf-macs.el
@@ -1,6 +1,6 @@
 ;;; ibuf-macs.el --- macros for ibuffer  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Colin Walters <address@hidden>
 ;; Maintainer: John Paul Wallington <address@hidden>
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 5a74084..c6e5e47 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -1,6 +1,6 @@
 ;;; ibuffer.el --- operate on buffers like dired  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Colin Walters <address@hidden>
 ;; Maintainer: John Paul Wallington <address@hidden>
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index 6a96264..cd352de 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -1,6 +1,6 @@
 ;;; icomplete.el --- minibuffer completion incremental feedback
 
-;; Copyright (C) 1992-1994, 1997, 1999, 2001-2016 Free Software
+;; Copyright (C) 1992-1994, 1997, 1999, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Ken Manheimer <address@hidden>
diff --git a/lisp/ido.el b/lisp/ido.el
index 7b9cf07..e18464d 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -1,6 +1,6 @@
 ;;; ido.el --- interactively do things with buffers and files
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Kim F. Storm <address@hidden>
 ;; Based on: iswitchb by Stephen Eglen <address@hidden>
diff --git a/lisp/ielm.el b/lisp/ielm.el
index dd02778..42b065f 100644
--- a/lisp/ielm.el
+++ b/lisp/ielm.el
@@ -1,6 +1,6 @@
 ;;; ielm.el --- interaction mode for Emacs Lisp  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Smith <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/iimage.el b/lisp/iimage.el
index 7a9667b..3672811 100644
--- a/lisp/iimage.el
+++ b/lisp/iimage.el
@@ -1,6 +1,6 @@
 ;;; iimage.el --- Inline image minor mode.
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: KOSEKI Yoshinori <address@hidden>
 ;; Maintainer: KOSEKI Yoshinori <address@hidden>
diff --git a/lisp/image-dired.el b/lisp/image-dired.el
index 560cadb..901225f 100644
--- a/lisp/image-dired.el
+++ b/lisp/image-dired.el
@@ -1,6 +1,6 @@
 ;;; image-dired.el --- use dired to browse and manipulate your images -*- 
lexical-binding: t -*-
 ;;
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 ;;
 ;; Version: 0.4.11
 ;; Keywords: multimedia
@@ -262,7 +262,7 @@ is replaced by the file name of the temporary file."
       (executable-find "pngnq-s9"))
   "The file name of the `pngnq' program.
 It quantizes colors of PNG images down to 256 colors or fewer
-using the Neuquant procedure."
+using the NeuQuant algorithm."
   :version "26.1"
   :type '(choice (const :tag "Not Set" nil) file)
   :group 'image-dired)
@@ -702,7 +702,7 @@ Increase at own risk.")
     process))
 
 (defun image-dired-pngcrush-thumb (spec)
-  "Optimize thumbnail decsribed by format SPEC with pngcrush(1)."
+  "Optimize thumbnail described by format SPEC with pngcrush(1)."
   ;; If pngnq wasn't run, then the THUMB-nq8.png file does not exist.
   ;; pngcrush needs an infile and outfile, so we just copy THUMB to
   ;; THUMB-nq8.png and use the latter as a temp file.
@@ -727,7 +727,7 @@ Increase at own risk.")
     process))
 
 (defun image-dired-optipng-thumb (spec)
-  "Optimize thumbnail decsribed by format SPEC with optipng(1)."
+  "Optimize thumbnail described by format SPEC with optipng(1)."
   (let ((process
          (apply #'start-process "image-dired-optipng" nil
                 image-dired-cmd-optipng-program
@@ -765,7 +765,7 @@ Increase at own risk.")
       (make-directory thumbnail-dir t)
       (set-file-modes thumbnail-dir #o700))
 
-    ;; Thumbnail file creation processes begin here and are marshalled
+    ;; Thumbnail file creation processes begin here and are marshaled
     ;; in a queue by `image-dired-create-thumb'.
     (setq process
           (apply #'start-process "image-dired-create-thumbnail" nil
diff --git a/lisp/image-file.el b/lisp/image-file.el
index 6692125..33cea95 100644
--- a/lisp/image-file.el
+++ b/lisp/image-file.el
@@ -1,6 +1,6 @@
 ;;; image-file.el --- support for visiting image files
 ;;
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Miles Bader <address@hidden>
 ;; Keywords: multimedia
diff --git a/lisp/image-mode.el b/lisp/image-mode.el
index 4a7178d..4b92e86 100644
--- a/lisp/image-mode.el
+++ b/lisp/image-mode.el
@@ -1,6 +1,6 @@
 ;;; image-mode.el --- support for visiting image files  -*- lexical-binding: t 
-*-
 ;;
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Richard Stallman <address@hidden>
 ;; Keywords: multimedia
diff --git a/lisp/image.el b/lisp/image.el
index c34db68..8cea7fb 100644
--- a/lisp/image.el
+++ b/lisp/image.el
@@ -1,6 +1,6 @@
 ;;; image.el --- image API  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: multimedia
diff --git a/lisp/image/compface.el b/lisp/image/compface.el
index e2f607b..f4c3d5f 100644
--- a/lisp/image/compface.el
+++ b/lisp/image/compface.el
@@ -1,6 +1,6 @@
 ;;; compface.el --- functions for converting X-Face headers
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/image/gravatar.el b/lisp/image/gravatar.el
index 4bf5875..54ca3be 100644
--- a/lisp/image/gravatar.el
+++ b/lisp/image/gravatar.el
@@ -1,6 +1,6 @@
 ;;; gravatar.el --- Get Gravatars
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Julien Danjou <address@hidden>
 ;; Keywords: news
diff --git a/lisp/imenu.el b/lisp/imenu.el
index 48257b8..0f47a92 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -1,6 +1,6 @@
 ;;; imenu.el --- framework for mode-specific buffer indexes  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1994-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Ake Stenhoff <address@hidden>
 ;;         Lars Lindberg <address@hidden>
diff --git a/lisp/indent.el b/lisp/indent.el
index 952a05a..fdd184c 100644
--- a/lisp/indent.el
+++ b/lisp/indent.el
@@ -1,6 +1,6 @@
 ;;; indent.el --- indentation commands for Emacs  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1985, 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Package: emacs
@@ -487,9 +487,9 @@ line, but does not move past any whitespace that was 
explicitly inserted
   (if (memq (current-justification) '(center right))
       (skip-chars-forward " \t")))
 
-(defvar indent-region-function nil
+(defvar indent-region-function #'indent-region-line-by-line
   "Short cut function to indent region using `indent-according-to-mode'.
-A value of nil means really run `indent-according-to-mode' on each line.")
+Default is to really run `indent-according-to-mode' on each line.")
 
 (defun indent-region (start end &optional column)
   "Indent each nonblank line in the region.
@@ -541,24 +541,26 @@ column to indent to; if it is nil, use one of the three 
methods above."
     (funcall indent-region-function start end))
    ;; Else, use a default implementation that calls indent-line-function on
    ;; each line.
-   (t
-    (save-excursion
-      (setq end (copy-marker end))
-      (goto-char start)
-      (let ((pr (unless (minibufferp)
-                 (make-progress-reporter "Indenting region..." (point) end))))
-       (while (< (point) end)
-         (or (and (bolp) (eolp))
-             (indent-according-to-mode))
-          (forward-line 1)
-          (and pr (progress-reporter-update pr (point))))
-       (and pr (progress-reporter-done pr))
-        (move-marker end nil)))))
+   (t (indent-region-line-by-line start end)))
   ;; In most cases, reindenting modifies the buffer, but it may also
   ;; leave it unmodified, in which case we have to deactivate the mark
   ;; by hand.
   (setq deactivate-mark t))
 
+(defun indent-region-line-by-line (start end)
+  (save-excursion
+    (setq end (copy-marker end))
+    (goto-char start)
+    (let ((pr (unless (minibufferp)
+                (make-progress-reporter "Indenting region..." (point) end))))
+      (while (< (point) end)
+        (or (and (bolp) (eolp))
+            (indent-according-to-mode))
+        (forward-line 1)
+        (and pr (progress-reporter-update pr (point))))
+      (and pr (progress-reporter-done pr))
+      (move-marker end nil))))
+
 (define-obsolete-function-alias 'indent-relative-maybe
   'indent-relative-first-indent-point "26.1")
 
diff --git a/lisp/info-look.el b/lisp/info-look.el
index 899f41e..694bcb4 100644
--- a/lisp/info-look.el
+++ b/lisp/info-look.el
@@ -1,7 +1,7 @@
 ;;; info-look.el --- major-mode-sensitive Info index lookup facility -*- 
lexical-binding: t -*-
 ;; An older version of this was known as libc.el.
 
-;; Copyright (C) 1995-1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Ralph Schleicher <address@hidden>
 ;;         (did not show signs of life (Nov 2001)  -stef)
@@ -43,6 +43,7 @@
 ;;; Code:
 
 (require 'info)
+(require 'subr-x)
 
 (defgroup info-lookup nil
   "Major mode sensitive help agent."
@@ -648,6 +649,26 @@ Return nil if there is nothing appropriate in the buffer 
near point."
            (buffer-substring-no-properties beg end)))))
     (error nil)))
 
+(defun info-lookup-guess-gdb-script-symbol ()
+  "Get symbol at point in GDB script buffers."
+  (condition-case nil
+      (save-excursion
+        (back-to-indentation)
+        ;; Try to find the current line's full command in the index;
+        ;; and default to the longest subset that is found.
+        (when (looking-at "[-a-z]+\\(\\s-[-a-z]+\\)*")
+          (let ((str-list (split-string (match-string-no-properties 0)
+                                        "\\s-+" t))
+                (completions (info-lookup->completions 'symbol
+                                                       'gdb-script-mode)))
+            (catch 'result
+              (while str-list
+                (let ((str (string-join str-list " ")))
+                  (when (assoc str completions)
+                    (throw 'result str))
+                  (nbutlast str-list)))))))
+    (error nil)))
+
 ;;;###autoload
 (defun info-complete-symbol (&optional mode)
   "Perform completion on symbol preceding point."
@@ -1051,6 +1072,14 @@ Return nil if there is nothing appropriate in the buffer 
near point."
  :mode 'help-mode
  :regexp "[^][()`'‘’,:\" \t\n]+"
  :other-modes '(emacs-lisp-mode))
+
+(info-lookup-maybe-add-help
+ :mode 'gdb-script-mode
+ :ignore-case nil
+ :regexp "\\([-a-z]+\\(\\s-+[-a-z]+\\)*\\)"
+ :doc-spec '(("(gdb)Command and Variable Index" nil
+              nil nil))
+ :parse-rule 'info-lookup-guess-gdb-script-symbol)
 
 (provide 'info-look)
 
diff --git a/lisp/info-xref.el b/lisp/info-xref.el
index 81a2a5a..8c029d4 100644
--- a/lisp/info-xref.el
+++ b/lisp/info-xref.el
@@ -1,6 +1,6 @@
 ;;; info-xref.el --- check external references in an Info document -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Kevin Ryde <address@hidden>
 ;; Keywords: docs
diff --git a/lisp/info.el b/lisp/info.el
index c8b8002..e32b6b3 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -1,6 +1,6 @@
 ;; info.el --- Info package for Emacs  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1985-1986, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1986, 1992-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: help
diff --git a/lisp/informat.el b/lisp/informat.el
index 8a539f5..b35e2ed 100644
--- a/lisp/informat.el
+++ b/lisp/informat.el
@@ -1,6 +1,6 @@
 ;;; informat.el --- info support functions package for Emacs
 
-;; Copyright (C) 1986, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: help
diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el
index e1e6595..aa9bd2d 100644
--- a/lisp/international/ccl.el
+++ b/lisp/international/ccl.el
@@ -1,6 +1,6 @@
 ;;; ccl.el --- CCL (Code Conversion Language) compiler  -*- lexical-binding:t 
-*-
 
-;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/international/characters.el b/lisp/international/characters.el
index 5085e63..2b9711a 100644
--- a/lisp/international/characters.el
+++ b/lisp/international/characters.el
@@ -1,6 +1,6 @@
 ;;; characters.el --- set syntax and category for multibyte characters
 
-;; Copyright (C) 1997, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2000-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 659f03a..e023d25 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -1,6 +1,6 @@
 ;;; fontset.el --- commands for handling fontset
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/international/isearch-x.el b/lisp/international/isearch-x.el
index 09d6d0a..40bdb38 100644
--- a/lisp/international/isearch-x.el
+++ b/lisp/international/isearch-x.el
@@ -1,6 +1,6 @@
 ;;; isearch-x.el --- extended isearch handling commands
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/international/iso-ascii.el b/lisp/international/iso-ascii.el
index 4e8c76a..39f1e9f 100644
--- a/lisp/international/iso-ascii.el
+++ b/lisp/international/iso-ascii.el
@@ -1,6 +1,6 @@
 ;;; iso-ascii.el --- set up char tables for ISO 8859/1 on ASCII terminals
 
-;; Copyright (C) 1987, 1995, 1998, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1987, 1995, 1998, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Howard Gayle
diff --git a/lisp/international/iso-cvt.el b/lisp/international/iso-cvt.el
index cad8bc5..ebf90a3 100644
--- a/lisp/international/iso-cvt.el
+++ b/lisp/international/iso-cvt.el
@@ -1,7 +1,7 @@
 ;;; iso-cvt.el --- translate ISO 8859-1 from/to various encodings -*- coding: 
utf-8 -*-
 ;; This file was formerly called gm-lingo.el.
 
-;; Copyright (C) 1993-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Gschwind <address@hidden>
 ;; Keywords: tex, iso, latin, i18n
diff --git a/lisp/international/iso-transl.el b/lisp/international/iso-transl.el
index 1436cf8..a665a39 100644
--- a/lisp/international/iso-transl.el
+++ b/lisp/international/iso-transl.el
@@ -1,6 +1,6 @@
 ;;; iso-transl.el --- keyboard input for ISO 10646 chars -*- coding: utf-8 -*-
 
-;; Copyright (C) 1987, 1993-1999, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1987, 1993-1999, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Howard Gayle
diff --git a/lisp/international/ja-dic-cnv.el b/lisp/international/ja-dic-cnv.el
index cc2d126..e80b1b2 100644
--- a/lisp/international/ja-dic-cnv.el
+++ b/lisp/international/ja-dic-cnv.el
@@ -1,6 +1,6 @@
 ;;; ja-dic-cnv.el --- convert a Japanese dictionary (SKK-JISYO.L) to Emacs Lisp
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
diff --git a/lisp/international/kinsoku.el b/lisp/international/kinsoku.el
index f5824d4..f87d2e9 100644
--- a/lisp/international/kinsoku.el
+++ b/lisp/international/kinsoku.el
@@ -1,6 +1,6 @@
 ;;; kinsoku.el --- `Kinsoku' processing funcs -*- coding: iso-2022-7bit; -*-
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/international/kkc.el b/lisp/international/kkc.el
index 8c9a373..17a3b6c 100644
--- a/lisp/international/kkc.el
+++ b/lisp/international/kkc.el
@@ -1,6 +1,6 @@
 ;;; kkc.el --- Kana Kanji converter    -*- coding: iso-2022-7bit; -*-
 
-;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el
index c39162a..4b09bfb 100644
--- a/lisp/international/latexenc.el
+++ b/lisp/international/latexenc.el
@@ -1,6 +1,6 @@
 ;;; latexenc.el --- guess correct coding system in LaTeX files -*-coding: 
utf-8 -*-
 
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Arne Jørgensen <address@hidden>
 ;; Keywords: mule, coding system, latex
diff --git a/lisp/international/latin1-disp.el 
b/lisp/international/latin1-disp.el
index 73922c7..d9b71c8 100644
--- a/lisp/international/latin1-disp.el
+++ b/lisp/international/latin1-disp.el
@@ -1,6 +1,6 @@
 ;;; latin1-disp.el --- display tables for other ISO 8859 on Latin-1 terminals 
-*-coding: utf-8;-*-
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Keywords: i18n
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 7672edc..bdba8ee 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -1,6 +1,6 @@
 ;;; mule-cmds.el --- commands for multilingual environment  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/international/mule-conf.el b/lisp/international/mule-conf.el
index cacfc6b..68a412f 100644
--- a/lisp/international/mule-conf.el
+++ b/lisp/international/mule-conf.el
@@ -1,6 +1,6 @@
 ;;; mule-conf.el --- configure multilingual environment
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 
2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
diff --git a/lisp/international/mule-diag.el b/lisp/international/mule-diag.el
index f543083..c274621 100644
--- a/lisp/international/mule-diag.el
+++ b/lisp/international/mule-diag.el
@@ -1,6 +1,6 @@
 ;;; mule-diag.el --- show diagnosis of multilingual environment (Mule)
 
-;; Copyright (C) 1997-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2000-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el
index ae58f1e..06b63ea 100644
--- a/lisp/international/mule-util.el
+++ b/lisp/international/mule-util.el
@@ -1,6 +1,6 @@
 ;;; mule-util.el --- utility functions for multilingual environment (mule)  
-*- lexical-binding:t -*-
 
-;; Copyright (C) 1997-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2000-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 5bc0e9c..8754f7f 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -1,6 +1,6 @@
 ;;; mule.el --- basic commands for multilingual environment
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
@@ -713,7 +713,11 @@ decoded by the coding system itself and before any 
functions in
 `after-insert-functions' are called.  This function is passed one
 argument: the number of characters in the text to convert, with
 point at the start of the text.  The function should leave point
-unchanged, and should return the new character count.
+unchanged, and should return the new character count.  Note that
+this function should avoid reading from files or receiving text
+from subprocesses -- anything that could invoke decoding; if it
+must do so, it should bind `coding-system-for-read' to a value
+other than the current coding-system, to avoid infinite recursion.
 
 `:pre-write-conversion'
 
@@ -722,7 +726,12 @@ VALUE must be a function to call after all functions in
 called, and before the text is encoded by the coding system
 itself.  This function should convert the whole text in the
 current buffer.  For backward compatibility, this function is
-passed two arguments which can be ignored.
+passed two arguments which can be ignored.  Note that this
+function should avoid writing to files or sending text to
+subprocesses -- anything that could invoke encoding; if it
+must do so, it should bind `coding-system-for-write' to a
+value other than the current coding-system, to avoid infinite
+recursion.
 
 `:default-char'
 
diff --git a/lisp/international/ogonek.el b/lisp/international/ogonek.el
index fe037b1..cef11db 100644
--- a/lisp/international/ogonek.el
+++ b/lisp/international/ogonek.el
@@ -1,6 +1,6 @@
 ;;; ogonek.el --- change the encoding of Polish diacritics
 
-;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Włodek Bzyl
 ;;        Ryszard Kubiak
diff --git a/lisp/international/quail.el b/lisp/international/quail.el
index 320d783..036b80e 100644
--- a/lisp/international/quail.el
+++ b/lisp/international/quail.el
@@ -1,6 +1,6 @@
 ;;; quail.el --- provides simple input method for multilingual text
 
-;; Copyright (C) 1997-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2000-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/international/rfc1843.el b/lisp/international/rfc1843.el
index 508629f..c134327 100644
--- a/lisp/international/rfc1843.el
+++ b/lisp/international/rfc1843.el
@@ -1,6 +1,6 @@
 ;;; rfc1843.el --- HZ (rfc1843) decoding
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <address@hidden>
 ;; Keywords: news HZ HZ+ mail i18n
diff --git a/lisp/international/titdic-cnv.el b/lisp/international/titdic-cnv.el
index 61f440d..6f65d49 100644
--- a/lisp/international/titdic-cnv.el
+++ b/lisp/international/titdic-cnv.el
@@ -1,6 +1,6 @@
 ;;; titdic-cnv.el --- convert cxterm dictionary (TIT format) to Quail package 
-*- coding:iso-2022-7bit; -*-
 
-;; Copyright (C) 1997-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2000-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/international/ucs-normalize.el 
b/lisp/international/ucs-normalize.el
index b2bc622..b510fe1 100644
--- a/lisp/international/ucs-normalize.el
+++ b/lisp/international/ucs-normalize.el
@@ -1,6 +1,6 @@
 ;;; ucs-normalize.el --- Unicode normalization NFC/NFD/NFKD/NFKC
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Taichi Kawabata <address@hidden>
 ;; Keywords: unicode, normalization
diff --git a/lisp/international/utf-7.el b/lisp/international/utf-7.el
index 2233e91..16942ce 100644
--- a/lisp/international/utf-7.el
+++ b/lisp/international/utf-7.el
@@ -1,6 +1,6 @@
 ;;; utf-7.el --- utf-7 coding system
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Keywords: i18n, mail
diff --git a/lisp/international/utf7.el b/lisp/international/utf7.el
index bd04eba..82dad3d 100644
--- a/lisp/international/utf7.el
+++ b/lisp/international/utf7.el
@@ -1,6 +1,6 @@
 ;;; utf7.el --- UTF-7 encoding/decoding for Emacs   -*-coding: utf-8;-*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Jon K Hellan <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 9846f0b..5c48c30 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1,6 +1,6 @@
 ;;; isearch.el --- incremental search minor mode -*- lexical-binding: t -*-
 
-;; Copyright (C) 1992-1997, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-1997, 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Daniel LaLiberte <address@hidden>
 ;; Maintainer: address@hidden
@@ -2297,6 +2297,7 @@ to the barrier."
 
 ;; Universal argument commands
 (put 'universal-argument 'isearch-scroll t)
+(put 'universal-argument-more 'isearch-scroll t)
 (put 'negative-argument 'isearch-scroll t)
 (put 'digit-argument 'isearch-scroll t)
 
@@ -2389,7 +2390,7 @@ before the command is executed globally with terminated 
Isearch."
       (setq this-command 'isearch-edit-string))
      ;; Handle a scrolling function or prefix argument.
      ((or (and isearch-allow-prefix
-              (memq this-command '(universal-argument
+               (memq this-command '(universal-argument universal-argument-more
                                    digit-argument negative-argument)))
          (and isearch-allow-scroll
               (symbolp this-command)
diff --git a/lisp/isearchb.el b/lisp/isearchb.el
index 05cbdcd..16a08dc 100644
--- a/lisp/isearchb.el
+++ b/lisp/isearchb.el
@@ -1,6 +1,6 @@
 ;;; isearchb --- a marriage between iswitchb and isearch
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el
index 0d9abbc..8537dae 100644
--- a/lisp/jit-lock.el
+++ b/lisp/jit-lock.el
@@ -1,6 +1,6 @@
 ;;; jit-lock.el --- just-in-time fontification  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Gerd Moellmann <address@hidden>
 ;; Keywords: faces files
diff --git a/lisp/jka-cmpr-hook.el b/lisp/jka-cmpr-hook.el
index b023bcd..0dedaa5 100644
--- a/lisp/jka-cmpr-hook.el
+++ b/lisp/jka-cmpr-hook.el
@@ -1,6 +1,6 @@
 ;;; jka-cmpr-hook.el --- preloaded code to enable jka-compr.el
 
-;; Copyright (C) 1993-1995, 1997, 1999-2000, 2002-2016 Free Software
+;; Copyright (C) 1993-1995, 1997, 1999-2000, 2002-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Jay K. Adams <address@hidden>
diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el
index d8137b1..26a7cf5 100644
--- a/lisp/jka-compr.el
+++ b/lisp/jka-compr.el
@@ -1,6 +1,6 @@
 ;;; jka-compr.el --- reading/writing/loading compressed files
 
-;; Copyright (C) 1993-1995, 1997, 1999-2016 Free Software Foundation,
+;; Copyright (C) 1993-1995, 1997, 1999-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Jay K. Adams <address@hidden>
diff --git a/lisp/json.el b/lisp/json.el
index fdac8d9..b2ac356 100644
--- a/lisp/json.el
+++ b/lisp/json.el
@@ -1,6 +1,6 @@
 ;;; json.el --- JavaScript Object Notation parser / generator -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Edward O'Connor <address@hidden>
 ;; Version: 1.4
@@ -363,6 +363,10 @@ representation will be parsed correctly."
 
 ;; String parsing
 
+(defun json--decode-utf-16-surrogates (high low)
+  "Return the code point represented by the UTF-16 surrogates HIGH and LOW."
+  (+ (lsh (- high #xD800) 10) (- low #xDC00) #x10000))
+
 (defun json-read-escaped-char ()
   "Read the JSON string escaped character at point."
   ;; Skip over the '\'
@@ -372,6 +376,17 @@ representation will be parsed correctly."
     (cond
      (special (cdr special))
      ((not (eq char ?u)) char)
+     ;; Special-case UTF-16 surrogate pairs,
+     ;; cf. https://tools.ietf.org/html/rfc7159#section-7.  Note that
+     ;; this clause overlaps with the next one and therefore has to
+     ;; come first.
+     ((looking-at
+       (rx (group (any "Dd") (any "89ABab") (= 2 (any "0-9A-Fa-f")))
+           "\\u" (group (any "Dd") (any "C-Fc-f") (= 2 (any "0-9A-Fa-f")))))
+      (json-advance 10)
+      (json--decode-utf-16-surrogates
+       (string-to-number (match-string 1) 16)
+       (string-to-number (match-string 2) 16)))
      ((looking-at "[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]")
       (let ((hex (match-string 0)))
         (json-advance 4)
diff --git a/lisp/kermit.el b/lisp/kermit.el
index 6165103..f1900b4 100644
--- a/lisp/kermit.el
+++ b/lisp/kermit.el
@@ -1,6 +1,6 @@
 ;;; kermit.el --- additions to shell mode for use with kermit
 
-;; Copyright (C) 1988, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Jeff Norden <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/kmacro.el b/lisp/kmacro.el
index 2e743b4..838a492 100644
--- a/lisp/kmacro.el
+++ b/lisp/kmacro.el
@@ -1,6 +1,6 @@
 ;;; kmacro.el --- enhanced keyboard macros
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Kim F. Storm <address@hidden>
 ;; Keywords: keyboard convenience
diff --git a/lisp/language/china-util.el b/lisp/language/china-util.el
index 6505fb8..955c299 100644
--- a/lisp/language/china-util.el
+++ b/lisp/language/china-util.el
@@ -1,6 +1,6 @@
 ;;; china-util.el --- utilities for Chinese  -*- coding: utf-8 -*-
 
-;; Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/chinese.el b/lisp/language/chinese.el
index 043b524..a412838 100644
--- a/lisp/language/chinese.el
+++ b/lisp/language/chinese.el
@@ -1,6 +1,6 @@
 ;;; chinese.el --- support for Chinese -*- coding: utf-8; -*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/cyril-util.el b/lisp/language/cyril-util.el
index 15a92dd..a96f2fb 100644
--- a/lisp/language/cyril-util.el
+++ b/lisp/language/cyril-util.el
@@ -1,6 +1,6 @@
 ;;; cyril-util.el --- utilities for Cyrillic scripts
 
-;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Keywords: mule, multilingual, Cyrillic
 
diff --git a/lisp/language/cyrillic.el b/lisp/language/cyrillic.el
index 9207759..1e47057 100644
--- a/lisp/language/cyrillic.el
+++ b/lisp/language/cyrillic.el
@@ -1,6 +1,6 @@
 ;;; cyrillic.el --- support for Cyrillic -*- coding: utf-8; -*-
 
-;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/czech.el b/lisp/language/czech.el
index a1d1bde..0ebf2cb 100644
--- a/lisp/language/czech.el
+++ b/lisp/language/czech.el
@@ -1,6 +1,6 @@
 ;;; czech.el --- support for Czech -*- coding: utf-8 -*-
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Milan Zamazal <address@hidden>
 ;; Maintainer: Pavel Janík <address@hidden>
diff --git a/lisp/language/english.el b/lisp/language/english.el
index e1ffdc0..fefb241 100644
--- a/lisp/language/english.el
+++ b/lisp/language/english.el
@@ -1,6 +1,6 @@
 ;;; english.el --- support for English
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/ethio-util.el b/lisp/language/ethio-util.el
index e602902..4d7ccd1 100644
--- a/lisp/language/ethio-util.el
+++ b/lisp/language/ethio-util.el
@@ -1,6 +1,6 @@
 ;;; ethio-util.el --- utilities for Ethiopic   -*- coding: utf-8-emacs; -*-
 
-;; Copyright (C) 1997-1998, 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2002-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/ethiopic.el b/lisp/language/ethiopic.el
index 18808ea..3e71d43 100644
--- a/lisp/language/ethiopic.el
+++ b/lisp/language/ethiopic.el
@@ -1,6 +1,6 @@
 ;;; ethiopic.el --- support for Ethiopic       -*- coding: utf-8-emacs; -*-
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/european.el b/lisp/language/european.el
index 11c5e03..954ac1f 100644
--- a/lisp/language/european.el
+++ b/lisp/language/european.el
@@ -1,6 +1,6 @@
 ;;; european.el --- support for European languages -*- coding: utf-8; -*-
 
-;; Copyright (C) 1997-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2000-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/georgian.el b/lisp/language/georgian.el
index 429b27d..14e3510 100644
--- a/lisp/language/georgian.el
+++ b/lisp/language/georgian.el
@@ -1,6 +1,6 @@
 ;;; georgian.el --- language support for Georgian
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Keywords: i18n
diff --git a/lisp/language/greek.el b/lisp/language/greek.el
index fa43d22..357f063 100644
--- a/lisp/language/greek.el
+++ b/lisp/language/greek.el
@@ -1,6 +1,6 @@
 ;;; greek.el --- support for Greek
 
-;; Copyright (C) 2002, 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2013-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/hanja-util.el b/lisp/language/hanja-util.el
index a876842..200ae89 100644
--- a/lisp/language/hanja-util.el
+++ b/lisp/language/hanja-util.el
@@ -1,6 +1,6 @@
 ;;; hanja-util.el --- Korean Hanja util module  -*- coding: utf-8 -*-
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Jihyun Cho <address@hidden>
 ;; Keywords: multilingual, input method, Korean, Hanja
diff --git a/lisp/language/hebrew.el b/lisp/language/hebrew.el
index ae8cc95..4e33fb6 100644
--- a/lisp/language/hebrew.el
+++ b/lisp/language/hebrew.el
@@ -1,6 +1,6 @@
 ;;; hebrew.el --- support for Hebrew -*- coding: utf-8 -*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/ind-util.el b/lisp/language/ind-util.el
index f7424ec..930cba1 100644
--- a/lisp/language/ind-util.el
+++ b/lisp/language/ind-util.el
@@ -1,6 +1,6 @@
 ;;; ind-util.el --- Transliteration and Misc. Tools for Indian Languages -*- 
coding: utf-8-emacs; -*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer:  KAWABATA, Taichi <address@hidden>
 ;; Keywords: multilingual, Indian, Devanagari
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index 2fc896a..c84c8fe 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -1,6 +1,6 @@
 ;;; indian.el --- Indian languages support -*- coding: utf-8; -*-
 
-;; Copyright (C) 1997, 1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
diff --git a/lisp/language/japan-util.el b/lisp/language/japan-util.el
index 939b70a..abc8d7d 100644
--- a/lisp/language/japan-util.el
+++ b/lisp/language/japan-util.el
@@ -1,6 +1,6 @@
 ;;; japan-util.el --- utilities for Japanese -*- coding: iso-2022-7bit; -*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/japanese.el b/lisp/language/japanese.el
index f8ffbe8..4203c4c 100644
--- a/lisp/language/japanese.el
+++ b/lisp/language/japanese.el
@@ -1,6 +1,6 @@
 ;;; japanese.el --- support for Japanese -*- coding: iso-2022-7bit -*-
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/korea-util.el b/lisp/language/korea-util.el
index d0f3ea6..12bb1e1 100644
--- a/lisp/language/korea-util.el
+++ b/lisp/language/korea-util.el
@@ -1,6 +1,6 @@
 ;;; korea-util.el --- utilities for Korean
 
-;; Copyright (C) 1997, 1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
 ;;   2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/korean.el b/lisp/language/korean.el
index ea25e5f..a8a3011 100644
--- a/lisp/language/korean.el
+++ b/lisp/language/korean.el
@@ -1,6 +1,6 @@
 ;;; korean.el --- support for Korean -*- coding: utf-8 -*-
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/lao-util.el b/lisp/language/lao-util.el
index a42904f..28b2043 100644
--- a/lisp/language/lao-util.el
+++ b/lisp/language/lao-util.el
@@ -1,6 +1,6 @@
 ;;; lao-util.el --- utilities for Lao -*- coding: utf-8; -*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
 ;;   2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/lao.el b/lisp/language/lao.el
index 635c76a..03519c9 100644
--- a/lisp/language/lao.el
+++ b/lisp/language/lao.el
@@ -1,6 +1,6 @@
 ;;; lao.el --- support for Lao -*- coding: utf-8 -*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
 ;;   2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/romanian.el b/lisp/language/romanian.el
index 10c4ae5..421ddcd 100644
--- a/lisp/language/romanian.el
+++ b/lisp/language/romanian.el
@@ -1,6 +1,6 @@
 ;;; romanian.el --- support for Romanian -*- coding: utf-8 -*-
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author:    Dan Nicolaescu <address@hidden>
 ;; Keywords: multilingual, Romanian, i18n
diff --git a/lisp/language/slovak.el b/lisp/language/slovak.el
index 0bce54b..6c72942 100644
--- a/lisp/language/slovak.el
+++ b/lisp/language/slovak.el
@@ -1,6 +1,6 @@
 ;;; slovak.el --- support for Slovak -*- coding: utf-8 -*-
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Authors:    Tibor Šimko <address@hidden>,
 ;;             Milan Zamazal <address@hidden>
diff --git a/lisp/language/tai-viet.el b/lisp/language/tai-viet.el
index d8ba9f1..f4074ae 100644
--- a/lisp/language/tai-viet.el
+++ b/lisp/language/tai-viet.el
@@ -1,6 +1,6 @@
 ;;; tai-viet.el --- support for Tai Viet -*- coding: utf-8 -*-
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H13PRO009
diff --git a/lisp/language/thai-util.el b/lisp/language/thai-util.el
index 618af57..db421eb 100644
--- a/lisp/language/thai-util.el
+++ b/lisp/language/thai-util.el
@@ -1,6 +1,6 @@
 ;;; thai-util.el --- utilities for Thai -*- coding: utf-8; -*-
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/thai.el b/lisp/language/thai.el
index bab87fd..4d19984 100644
--- a/lisp/language/thai.el
+++ b/lisp/language/thai.el
@@ -1,6 +1,6 @@
 ;;; thai.el --- support for Thai -*- coding: utf-8 -*-
 
-;; Copyright (C) 1997-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2000-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/tibet-util.el b/lisp/language/tibet-util.el
index e874cb6..624da5c 100644
--- a/lisp/language/tibet-util.el
+++ b/lisp/language/tibet-util.el
@@ -1,6 +1,6 @@
 ;;; tibet-util.el --- utilities for Tibetan   -*- coding: utf-8-emacs; -*-
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/tibetan.el b/lisp/language/tibetan.el
index 51657fe..f24e3b3 100644
--- a/lisp/language/tibetan.el
+++ b/lisp/language/tibetan.el
@@ -1,6 +1,6 @@
 ;;; tibetan.el --- support for Tibetan language -*- coding: utf-8-emacs; -*-
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/utf-8-lang.el b/lisp/language/utf-8-lang.el
index 31b517b..40aec43 100644
--- a/lisp/language/utf-8-lang.el
+++ b/lisp/language/utf-8-lang.el
@@ -1,6 +1,6 @@
 ;;; utf-8-lang.el --- generic UTF-8 language environment
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Keywords: i18n
diff --git a/lisp/language/viet-util.el b/lisp/language/viet-util.el
index 5be0885..ca670d8 100644
--- a/lisp/language/viet-util.el
+++ b/lisp/language/viet-util.el
@@ -1,6 +1,6 @@
 ;;; viet-util.el --- utilities for Vietnamese  -*- coding: utf-8; -*-
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/language/vietnamese.el b/lisp/language/vietnamese.el
index f7c45d1..cd36580 100644
--- a/lisp/language/vietnamese.el
+++ b/lisp/language/vietnamese.el
@@ -1,6 +1,6 @@
 ;;; vietnamese.el --- support for Vietnamese -*- coding: utf-8; -*-
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/ldefs-boot-auto.el b/lisp/ldefs-boot-auto.el
index 914fec8..020c670 100644
--- a/lisp/ldefs-boot-auto.el
+++ b/lisp/ldefs-boot-auto.el
@@ -6,6 +6,8 @@
 (autoload 'add-change-log-entry "add-log" nil nil nil)
 (autoload 'add-log-current-defun "add-log" nil nil nil)
 (autoload 'batch-byte-compile "bytecomp" nil nil nil)
+(autoload 'batch-update-autoloads "autoload" nil nil nil)
+(autoload 'bounds-of-thing-at-point "thingatpt" nil nil nil)
 (autoload 'browse-url "browse-url" nil nil nil)
 (autoload 'buffer-face-mode "face-remap" nil nil nil)
 (autoload 'byte-compile "bytecomp" nil nil nil)
@@ -24,11 +26,16 @@
 (autoload 'compilation-mode "compile" nil nil nil)
 (autoload 'compilation-shell-minor-mode "compile" nil nil nil)
 (autoload 'compilation-start "compile" nil nil nil)
+(autoload 'completing-read-multiple "crm" nil nil nil)
+(autoload 'conf-mode "conf-mode" nil nil nil)
+(autoload 'create-glyph "disp-table" nil nil nil)
 (autoload 'create-image "image" nil nil nil)
+(autoload 'cursor-sensor-mode "cursor-sensor" nil nil nil)
 (autoload 'custom-save-all "cus-edit" nil nil nil)
 (autoload 'customize-face "cus-edit" nil nil nil)
 (autoload 'customize-group "cus-edit" nil nil nil)
 (autoload 'customize-option "cus-edit" nil nil nil)
+(autoload 'customize-push-and-save "cus-edit" nil nil nil)
 (autoload 'customize-set-variable "cus-edit" nil nil nil)
 (autoload 'debug "debug" nil nil nil)
 (autoload 'define-ccl-program "ccl" nil nil t)
@@ -36,6 +43,8 @@
 (autoload 'define-minor-mode "easy-mmode" nil nil t)
 (autoload 'delete-extract-rectangle "rect" nil nil nil)
 (autoload 'describe-char "descr-text" nil nil nil)
+(autoload 'describe-coding-system "mule-diag" nil nil nil)
+(autoload 'describe-display-table "disp-table" nil nil nil)
 (autoload 'describe-function "help-fns" nil nil nil)
 (autoload 'describe-function-1 "help-fns" nil nil nil)
 (autoload 'describe-package "package" nil nil nil)
@@ -43,11 +52,21 @@
 (autoload 'desktop-save "desktop" nil nil nil)
 (autoload 'diff-mode "diff-mode" nil nil nil)
 (autoload 'dired "dired" nil nil nil)
+(autoload 'dired-copy-file "dired-aux" nil nil nil)
+(autoload 'dired-goto-subdir "dired-aux" nil nil nil)
+(autoload 'dired-hide-subdir "dired-aux" nil nil nil)
+(autoload 'dired-insert-subdir "dired-aux" nil nil nil)
+(autoload 'dired-kill-subdir "dired-aux" nil nil nil)
+(autoload 'dired-mark-subdir-files "dired-aux" nil nil nil)
 (autoload 'dired-mode "dired" nil nil nil)
 (autoload 'dired-noselect "dired" nil nil nil)
+(autoload 'dired-query "dired-aux" nil nil nil)
+(autoload 'dired-rename-file "dired-aux" nil nil nil)
 (autoload 'display-call-tree "bytecomp" nil nil nil)
+(autoload 'display-table-slot "disp-table" nil nil nil)
 (autoload 'display-warning "warnings" nil nil nil)
 (autoload 'easy-menu-create-menu "easymenu" nil nil nil)
+(autoload 'edebug-basic-spec "edebug" nil nil nil)
 (autoload 'ediff-patch-file "ediff" nil nil nil)
 (autoload 'edit-kbd-macro "edmacro" nil nil nil)
 (autoload 'extract-rectangle "rect" nil nil nil)
@@ -67,8 +86,10 @@
 (autoload 'help-with-tutorial "tutorial" nil nil nil)
 (autoload 'help-xref-button "help-mode" nil nil nil)
 (autoload 'hi-lock-face-buffer "hi-lock" nil nil nil)
+(autoload 'html-mode "sgml-mode" nil nil nil)
 (autoload 'image-type-available-p "image" nil nil nil)
 (autoload 'info "info" nil nil nil)
+(autoload 'info-complete-symbol "info-look" nil nil nil)
 (autoload 'info-emacs-manual "info" nil nil nil)
 (autoload 'insert-image "image" nil nil nil)
 (autoload 'insert-rectangle "rect" nil nil nil)
@@ -83,21 +104,27 @@
 (autoload 'multi-isearch-buffers-regexp "misearch" nil nil nil)
 (autoload 'multi-isearch-files "misearch" nil nil nil)
 (autoload 'multi-isearch-files-regexp "misearch" nil nil nil)
+(autoload 'nxml-mode "nxml-mode" nil nil nil)
 (autoload 'open-network-stream "network-stream" nil nil nil)
 (autoload 'package-initialize "package" nil nil nil)
 (autoload 'parse-time-string "parse-time" nil nil nil)
 (autoload 'pp "pp" nil nil nil)
 (autoload 'pp-buffer "pp" nil nil nil)
+(autoload 'print-buffer "lpr" nil nil nil)
+(autoload 'quail-defrule-internal "quail" nil nil nil)
 (autoload 'read-kbd-macro "edmacro" nil nil nil)
 (autoload 'regexp-opt "regexp-opt" nil nil nil)
 (autoload 'rx "rx" nil nil t)
 (autoload 'seconds-to-string "time-date" nil nil nil)
 (autoload 'seconds-to-time "time-date" nil nil nil)
+(autoload 'server-save-buffers-kill-terminal "server" nil nil nil)
 (autoload 'server-start "server" nil nil nil)
 (autoload 'set-nested-alist "mule-util" nil nil nil)
+(autoload 'skeleton-insert "skeleton" nil nil nil)
 (autoload 'smerge-mode "smerge-mode" nil nil nil)
 (autoload 'smerge-start-session "smerge-mode" nil nil nil)
 (autoload 'standard-display-8bit "disp-table" nil nil nil)
+(autoload 'standard-display-default "disp-table" nil nil nil)
 (autoload 'tags-query-replace "etags" nil nil nil)
 (autoload 'tags-search "etags" nil nil nil)
 (autoload 'text-scale-increase "face-remap" nil nil nil)
@@ -106,6 +133,12 @@
 (autoload 'timezone-make-date-arpa-standard "timezone" nil nil nil)
 (autoload 'tmm-menubar "tmm" nil nil nil)
 (autoload 'truncate-string-to-width "mule-util" nil nil nil)
+(autoload 'ucs-normalize-HFS-NFC-region "ucs-normalize" nil nil nil)
+(autoload 'ucs-normalize-HFS-NFD-region "ucs-normalize" nil nil nil)
+(autoload 'ucs-normalize-NFC-region "ucs-normalize" nil nil nil)
+(autoload 'ucs-normalize-NFD-region "ucs-normalize" nil nil nil)
+(autoload 'ucs-normalize-NFKC-region "ucs-normalize" nil nil nil)
+(autoload 'ucs-normalize-NFKD-region "ucs-normalize" nil nil nil)
 (autoload 'url-handler-mode "url-handlers" nil nil nil)
 (autoload 'variable-at-point "help-fns" nil nil nil)
 (autoload 'vc-register "vc" nil nil nil)
@@ -114,6 +147,7 @@
 (autoload 'view-buffer "view" nil nil nil)
 (autoload 'view-buffer-other-window "view" nil nil nil)
 (autoload 'view-file "view" nil nil nil)
+(autoload 'view-mode "view" nil nil nil)
 (autoload 'view-mode-enter "view" nil nil nil)
 (autoload 'visit-tags-table "etags" nil nil nil)
 (autoload 'warn "warnings" nil nil nil)
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el
deleted file mode 100644
index 406f045..0000000
--- a/lisp/ldefs-boot.el
+++ /dev/null
@@ -1,38062 +0,0 @@
-;;; loaddefs.el --- automatically extracted autoloads
-;;
-;;; Code:
-
-
-;;;### (autoloads nil "5x5" "play/5x5.el" (0 0 0 0))
-;;; Generated autoloads from play/5x5.el
-
-(autoload '5x5 "5x5" "\
-Play 5x5.
-
-The object of 5x5 is very simple, by moving around the grid and flipping
-squares you must fill the grid.
-
-5x5 keyboard bindings are:
-\\<5x5-mode-map>
-Flip                        \\[5x5-flip-current]
-Move up                     \\[5x5-up]
-Move down                   \\[5x5-down]
-Move left                   \\[5x5-left]
-Move right                  \\[5x5-right]
-Start new game              \\[5x5-new-game]
-New game with random grid   \\[5x5-randomize]
-Random cracker              \\[5x5-crack-randomly]
-Mutate current cracker      \\[5x5-crack-mutating-current]
-Mutate best cracker         \\[5x5-crack-mutating-best]
-Mutate xor cracker          \\[5x5-crack-xor-mutate]
-Solve with Calc             \\[5x5-solve-suggest]
-Rotate left Calc Solutions  \\[5x5-solve-rotate-left]
-Rotate right Calc Solutions \\[5x5-solve-rotate-right]
-Quit current game           \\[5x5-quit-game]
-
-\(fn &optional SIZE)" t nil)
-
-(autoload '5x5-crack-randomly "5x5" "\
-Attempt to crack 5x5 using random solutions.
-
-\(fn)" t nil)
-
-(autoload '5x5-crack-mutating-current "5x5" "\
-Attempt to crack 5x5 by mutating the current solution.
-
-\(fn)" t nil)
-
-(autoload '5x5-crack-mutating-best "5x5" "\
-Attempt to crack 5x5 by mutating the best solution.
-
-\(fn)" t nil)
-
-(autoload '5x5-crack-xor-mutate "5x5" "\
-Attempt to crack 5x5 by xoring the current and best solution.
-Mutate the result.
-
-\(fn)" t nil)
-
-(autoload '5x5-crack "5x5" "\
-Attempt to find a solution for 5x5.
-
-5x5-crack takes the argument BREEDER which should be a function that takes
-two parameters, the first will be a grid vector array that is the current
-solution and the second will be the best solution so far.  The function
-should return a grid vector array that is the new solution.
-
-\(fn BREEDER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"5x5" '("5x5-")))
-
-;;;***
-
-;;;### (autoloads nil "ada-mode" "progmodes/ada-mode.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ada-mode.el
-
-(autoload 'ada-add-extensions "ada-mode" "\
-Define SPEC and BODY as being valid extensions for Ada files.
-Going from body to spec with `ff-find-other-file' used these
-extensions.
-SPEC and BODY are two regular expressions that must match against
-the file name.
-
-\(fn SPEC BODY)" nil nil)
-
-(autoload 'ada-mode "ada-mode" "\
-Ada mode is the major mode for editing Ada code.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ada-mode" '("ada-")))
-
-;;;***
-
-;;;### (autoloads nil "ada-prj" "progmodes/ada-prj.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ada-prj.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ada-prj" '("ada-")))
-
-;;;***
-
-;;;### (autoloads nil "ada-stmt" "progmodes/ada-stmt.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ada-stmt.el
-
-(autoload 'ada-header "ada-stmt" "\
-Insert a descriptive header at the top of the file.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ada-stmt" '("ada-")))
-
-;;;***
-
-;;;### (autoloads nil "ada-xref" "progmodes/ada-xref.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ada-xref.el
-
-(autoload 'ada-find-file "ada-xref" "\
-Open FILENAME, from anywhere in the source path.
-Completion is available.
-
-\(fn FILENAME)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ada-xref" '("ada-")))
-
-;;;***
-
-;;;### (autoloads nil "add-log" "vc/add-log.el" (0 0 0 0))
-;;; Generated autoloads from vc/add-log.el
-
-(put 'change-log-default-name 'safe-local-variable 'string-or-null-p)
-
-(defvar add-log-current-defun-function nil "\
-If non-nil, function to guess name of surrounding function.
-It is called by `add-log-current-defun' with no argument, and
-should return the function's name as a string, or nil if point is
-outside a function.")
-
-(custom-autoload 'add-log-current-defun-function "add-log" t)
-
-(defvar add-log-full-name nil "\
-Full name of user, for inclusion in ChangeLog daily headers.
-This defaults to the value returned by the function `user-full-name'.")
-
-(custom-autoload 'add-log-full-name "add-log" t)
-
-(defvar add-log-mailing-address nil "\
-Email addresses of user, for inclusion in ChangeLog headers.
-This defaults to the value of `user-mail-address'.  In addition to
-being a simple string, this value can also be a list.  All elements
-will be recognized as referring to the same user; when creating a new
-ChangeLog entry, one element will be chosen at random.")
-
-(custom-autoload 'add-log-mailing-address "add-log" t)
-
-(autoload 'prompt-for-change-log-name "add-log" "\
-Prompt for a change log name.
-
-\(fn)" nil nil)
-
-(autoload 'find-change-log "add-log" "\
-Find a change log file for \\[add-change-log-entry] and return the name.
-
-Optional arg FILE-NAME specifies the file to use.
-If FILE-NAME is nil, use the value of `change-log-default-name'.
-If `change-log-default-name' is nil, behave as though it were \"ChangeLog\"
-\(or whatever we use on this operating system).
-
-If `change-log-default-name' contains a leading directory component, then
-simply find it in the current directory.  Otherwise, search in the current
-directory and its successive parents for a file so named.  Stop at the first
-such file that exists (or has a buffer visiting it), or the first directory
-that contains any of `change-log-directory-files'.  If no match is found,
-use the current directory.  To override the choice of this function,
-simply create an empty ChangeLog file first by hand in the desired place.
-
-Once a file is found, `change-log-default-name' is set locally in the
-current buffer to the complete file name.
-Optional arg BUFFER-FILE overrides `buffer-file-name'.
-
-\(fn &optional FILE-NAME BUFFER-FILE)" nil nil)
-
-(autoload 'add-change-log-entry "add-log" "\
-Find change log file, and add an entry for today and an item for this file.
-Optional arg WHOAMI (interactive prefix) non-nil means prompt for user
-name and email (stored in `add-log-full-name' and `add-log-mailing-address').
-
-Second arg FILE-NAME is file name of the change log.
-If nil, use the value of `change-log-default-name'.
-
-Third arg OTHER-WINDOW non-nil means visit in other window.
-
-Fourth arg NEW-ENTRY non-nil means always create a new entry at the front;
-never append to an existing entry.  Option `add-log-keep-changes-together'
-otherwise affects whether a new entry is created.
-
-Fifth arg PUT-NEW-ENTRY-ON-NEW-LINE non-nil means that if a new
-entry is created, put it on a new line by itself, do not put it
-after a comma on an existing line.
-
-Option `add-log-always-start-new-record' non-nil means always create a
-new record, even when the last record was made on the same date and by
-the same person.
-
-The change log file can start with a copyright notice and a copying
-permission notice.  The first blank line indicates the end of these
-notices.
-
-Today's date is calculated according to `add-log-time-zone-rule' if
-non-nil, otherwise in local time.
-
-\(fn &optional WHOAMI FILE-NAME OTHER-WINDOW NEW-ENTRY 
PUT-NEW-ENTRY-ON-NEW-LINE)" t nil)
-
-(autoload 'add-change-log-entry-other-window "add-log" "\
-Find change log file in other window and add entry and item.
-This is just like `add-change-log-entry' except that it displays
-the change log file in another window.
-
-\(fn &optional WHOAMI FILE-NAME)" t nil)
-
-(autoload 'change-log-mode "add-log" "\
-Major mode for editing change logs; like Indented Text mode.
-Prevents numeric backups and sets `left-margin' to 8 and `fill-column' to 74.
-New log entries are usually made with \\[add-change-log-entry] or 
\\[add-change-log-entry-other-window].
-Each entry behaves as a paragraph, and the entries for one day as a page.
-Runs `change-log-mode-hook'.
-
-\\{change-log-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'add-log-current-defun "add-log" "\
-Return name of function definition point is in, or nil.
-
-Understands C, Lisp, LaTeX (\"functions\" are chapters, sections, ...),
-Texinfo (@node titles) and Perl.
-
-Other modes are handled by a heuristic that looks in the 10K before
-point for uppercase headings starting in the first column or
-identifiers followed by `:' or `='.  See variables
-`add-log-current-defun-header-regexp' and
-`add-log-current-defun-function'.
-
-Has a preference of looking backwards.
-
-\(fn)" nil nil)
-
-(autoload 'change-log-merge "add-log" "\
-Merge the contents of change log file OTHER-LOG with this buffer.
-Both must be found in Change Log mode (since the merging depends on
-the appropriate motion commands).  OTHER-LOG can be either a file name
-or a buffer.
-
-Entries are inserted in chronological order.  Both the current and
-old-style time formats for entries are supported.
-
-\(fn OTHER-LOG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"add-log" '("change-log-" "add-log-")))
-
-;;;***
-
-;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/advice.el
-
-(defvar ad-redefinition-action 'warn "\
-Defines what to do with redefinitions during Advice de/activation.
-Redefinition occurs if a previously activated function that already has an
-original definition associated with it gets redefined and then de/activated.
-In such a case we can either accept the current definition as the new
-original definition, discard the current definition and replace it with the
-old original, or keep it and raise an error.  The values `accept', `discard',
-`error' or `warn' govern what will be done.  `warn' is just like `accept' but
-it additionally prints a warning message.  All other values will be
-interpreted as `error'.")
-
-(custom-autoload 'ad-redefinition-action "advice" t)
-
-(defvar ad-default-compilation-action 'maybe "\
-Defines whether to compile advised definitions during activation.
-A value of `always' will result in unconditional compilation, `never' will
-always avoid compilation, `maybe' will compile if the byte-compiler is already
-loaded, and `like-original' will compile if the original definition of the
-advised function is compiled or a built-in function.  Every other value will
-be interpreted as `maybe'.  This variable will only be considered if the
-COMPILE argument of `ad-activate' was supplied as nil.")
-
-(custom-autoload 'ad-default-compilation-action "advice" t)
-
-(autoload 'ad-enable-advice "advice" "\
-Enables the advice of FUNCTION with CLASS and NAME.
-
-\(fn FUNCTION CLASS NAME)" t nil)
-
-(autoload 'ad-disable-advice "advice" "\
-Disable the advice of FUNCTION with CLASS and NAME.
-
-\(fn FUNCTION CLASS NAME)" t nil)
-
-(autoload 'ad-add-advice "advice" "\
-Add a piece of ADVICE to FUNCTION's list of advices in CLASS.
-
-ADVICE has the form (NAME PROTECTED ENABLED DEFINITION), where
-NAME is the advice name; PROTECTED is a flag specifying whether
-to protect against non-local exits; ENABLED is a flag specifying
-whether to initially enable the advice; and DEFINITION has the
-form (advice . LAMBDA), where LAMBDA is a lambda expression.
-
-If FUNCTION already has a piece of advice with the same name,
-then POSITION is ignored, and the old advice is overwritten with
-the new one.
-
-If FUNCTION already has one or more pieces of advice of the
-specified CLASS, then POSITION determines where the new piece
-goes.  POSITION can either be `first', `last' or a number (where
-0 corresponds to `first', and numbers outside the valid range are
-mapped to the closest extremal position).
-
-If FUNCTION was not advised already, its advice info will be
-initialized.  Redefining a piece of advice whose name is part of
-the cache-id will clear the cache.
-
-\(fn FUNCTION ADVICE CLASS POSITION)" nil nil)
-
-(autoload 'ad-activate "advice" "\
-Activate all the advice information of an advised FUNCTION.
-If FUNCTION has a proper original definition then an advised
-definition will be generated from FUNCTION's advice info and the
-definition of FUNCTION will be replaced with it.  If a previously
-cached advised definition was available, it will be used.
-The optional COMPILE argument determines whether the resulting function
-or a compilable cached definition will be compiled.  If it is negative
-no compilation will be performed, if it is positive or otherwise non-nil
-the resulting function will be compiled, if it is nil the behavior depends
-on the value of `ad-default-compilation-action' (which see).
-Activation of an advised function that has an advice info but no actual
-pieces of advice is equivalent to a call to `ad-unadvise'.  Activation of
-an advised function that has actual pieces of advice but none of them are
-enabled is equivalent to a call to `ad-deactivate'.  The current advised
-definition will always be cached for later usage.
-
-\(fn FUNCTION &optional COMPILE)" t nil)
-
-(autoload 'defadvice "advice" "\
-Define a piece of advice for FUNCTION (a symbol).
-The syntax of `defadvice' is as follows:
-
-  (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...)
-    [DOCSTRING] [INTERACTIVE-FORM]
-    BODY...)
-
-FUNCTION ::= Name of the function to be advised.
-CLASS ::= `before' | `around' | `after' | `activation' | `deactivation'.
-NAME ::= Non-nil symbol that names this piece of advice.
-POSITION ::= `first' | `last' | NUMBER. Optional, defaults to `first',
-    see also `ad-add-advice'.
-ARGLIST ::= An optional argument list to be used for the advised function
-    instead of the argument list of the original.  The first one found in
-    before/around/after-advices will be used.
-FLAG ::= `protect'|`disable'|`activate'|`compile'|`preactivate'.
-    All flags can be specified with unambiguous initial substrings.
-DOCSTRING ::= Optional documentation for this piece of advice.
-INTERACTIVE-FORM ::= Optional interactive form to be used for the advised
-    function.  The first one found in before/around/after-advices will be used.
-BODY ::= Any s-expression.
-
-Semantics of the various flags:
-`protect': The piece of advice will be protected against non-local exits in
-any code that precedes it.  If any around-advice of a function is protected
-then automatically all around-advices will be protected (the complete onion).
-
-`activate': All advice of FUNCTION will be activated immediately if
-FUNCTION has been properly defined prior to this application of `defadvice'.
-
-`compile': In conjunction with `activate' specifies that the resulting
-advised function should be compiled.
-
-`disable': The defined advice will be disabled, hence, it will not be used
-during activation until somebody enables it.
-
-`preactivate': Preactivates the advised FUNCTION at macro-expansion/compile
-time.  This generates a compiled advised definition according to the current
-advice state that will be used during activation if appropriate.  Only use
-this if the `defadvice' gets actually compiled.
-
-usage: (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...)
-          [DOCSTRING] [INTERACTIVE-FORM]
-          BODY...)
-
-\(fn FUNCTION ARGS &rest BODY)" nil t)
-
-(function-put 'defadvice 'doc-string-elt '3)
-
-(function-put 'defadvice 'lisp-indent-function '2)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"advice" '("ad-")))
-
-;;;***
-
-;;;### (autoloads nil "align" "align.el" (0 0 0 0))
-;;; Generated autoloads from align.el
-
-(autoload 'align "align" "\
-Attempt to align a region based on a set of alignment rules.
-BEG and END mark the region.  If BEG and END are specifically set to
-nil (this can only be done programmatically), the beginning and end of
-the current alignment section will be calculated based on the location
-of point, and the value of `align-region-separate' (or possibly each
-rule's `separate' attribute).
-
-If SEPARATE is non-nil, it overrides the value of
-`align-region-separate' for all rules, except those that have their
-`separate' attribute set.
-
-RULES and EXCLUDE-RULES, if either is non-nil, will replace the
-default rule lists defined in `align-rules-list' and
-`align-exclude-rules-list'.  See `align-rules-list' for more details
-on the format of these lists.
-
-\(fn BEG END &optional SEPARATE RULES EXCLUDE-RULES)" t nil)
-
-(autoload 'align-regexp "align" "\
-Align the current region using an ad-hoc rule read from the minibuffer.
-BEG and END mark the limits of the region.  Interactively, this function
-prompts for the regular expression REGEXP to align with.
-
-For example, let's say you had a list of phone numbers, and wanted to
-align them so that the opening parentheses would line up:
-
-    Fred (123) 456-7890
-    Alice (123) 456-7890
-    Mary-Anne (123) 456-7890
-    Joe (123) 456-7890
-
-There is no predefined rule to handle this, but you could easily do it
-using a REGEXP like \"(\".  Interactively, all you would have to do is
-to mark the region, call `align-regexp' and enter that regular expression.
-
-REGEXP must contain at least one parenthesized subexpression, typically
-whitespace of the form \"\\\\(\\\\s-*\\\\)\".  In normal interactive use,
-this is automatically added to the start of your regular expression after
-you enter it.  You only need to supply the characters to be lined up, and
-any preceding whitespace is replaced.
-
-If you specify a prefix argument (or use this function non-interactively),
-you must enter the full regular expression, including the subexpression.
-The function also then prompts for which subexpression parenthesis GROUP
-\(default 1) within REGEXP to modify, the amount of SPACING (default
-`align-default-spacing') to use, and whether or not to REPEAT the rule
-throughout the line.
-
-See `align-rules-list' for more information about these options.
-
-The non-interactive form of the previous example would look something like:
-  (align-regexp (point-min) (point-max) \"\\\\(\\\\s-*\\\\)(\")
-
-This function is a nothing more than a small wrapper that helps you
-construct a rule to pass to `align-region', which does the real work.
-
-\(fn BEG END REGEXP &optional GROUP SPACING REPEAT)" t nil)
-
-(autoload 'align-entire "align" "\
-Align the selected region as if it were one alignment section.
-BEG and END mark the extent of the region.  If RULES or EXCLUDE-RULES
-is set to a list of rules (see `align-rules-list'), it can be used to
-override the default alignment rules that would have been used to
-align that section.
-
-\(fn BEG END &optional RULES EXCLUDE-RULES)" t nil)
-
-(autoload 'align-current "align" "\
-Call `align' on the current alignment section.
-This function assumes you want to align only the current section, and
-so saves you from having to specify the region.  If RULES or
-EXCLUDE-RULES is set to a list of rules (see `align-rules-list'), it
-can be used to override the default alignment rules that would have
-been used to align that section.
-
-\(fn &optional RULES EXCLUDE-RULES)" t nil)
-
-(autoload 'align-highlight-rule "align" "\
-Highlight the whitespace which a given rule would have modified.
-BEG and END mark the extent of the region.  TITLE identifies the rule
-that should be highlighted.  If RULES or EXCLUDE-RULES is set to a
-list of rules (see `align-rules-list'), it can be used to override the
-default alignment rules that would have been used to identify the text
-to be colored.
-
-\(fn BEG END TITLE &optional RULES EXCLUDE-RULES)" t nil)
-
-(autoload 'align-unhighlight-rule "align" "\
-Remove any highlighting that was added by `align-highlight-rule'.
-
-\(fn)" t nil)
-
-(autoload 'align-newline-and-indent "align" "\
-A replacement function for `newline-and-indent', aligning as it goes.
-The alignment is done by calling `align' on the region that was
-indented.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"align" '("align-")))
-
-;;;***
-
-;;;### (autoloads nil "allout" "allout.el" (0 0 0 0))
-;;; Generated autoloads from allout.el
-(push (purecopy '(allout 2 3)) package--builtin-versions)
-
-(autoload 'allout-auto-activation-helper "allout" "\
-Institute `allout-auto-activation'.
-
-Intended to be used as the `allout-auto-activation' :set function.
-
-\(fn VAR VALUE)" nil nil)
-
-(autoload 'allout-setup "allout" "\
-Do fundamental Emacs session for allout auto-activation.
-
-Establishes allout processing as part of visiting a file if
-`allout-auto-activation' is non-nil, or removes it otherwise.
-
-The proper way to use this is through customizing the setting of
-`allout-auto-activation'.
-
-\(fn)" nil nil)
-
-(defvar allout-auto-activation nil "\
-Configure allout outline mode auto-activation.
-
-Control whether and how allout outline mode is automatically
-activated when files are visited with non-nil buffer-specific
-file variable `allout-layout'.
-
-When allout-auto-activation is \"On\" (t), allout mode is
-activated in buffers with non-nil `allout-layout', and the
-specified layout is applied.
-
-With value \"ask\", auto-mode-activation is enabled, and endorsement for
-performing auto-layout is asked of the user each time.
-
-With value \"activate\", only auto-mode-activation is enabled.
-Auto-layout is not.
-
-With value nil, inhibit any automatic allout-mode activation.")
-
-(custom-autoload 'allout-auto-activation "allout" nil)
-
-(put 'allout-use-hanging-indents 'safe-local-variable (if (fboundp 'booleanp) 
'booleanp (lambda (x) (member x '(t nil)))))
-
-(put 'allout-reindent-bodies 'safe-local-variable (lambda (x) (memq x '(nil t 
text force))))
-
-(put 'allout-show-bodies 'safe-local-variable (if (fboundp 'booleanp) 
'booleanp (lambda (x) (member x '(t nil)))))
-
-(put 'allout-header-prefix 'safe-local-variable 'stringp)
-
-(put 'allout-primary-bullet 'safe-local-variable 'stringp)
-
-(put 'allout-plain-bullets-string 'safe-local-variable 'stringp)
-
-(put 'allout-distinctive-bullets-string 'safe-local-variable 'stringp)
-
-(put 'allout-use-mode-specific-leader 'safe-local-variable (lambda (x) (or 
(memq x '(t nil allout-mode-leaders comment-start)) (stringp x))))
-
-(put 'allout-old-style-prefixes 'safe-local-variable (if (fboundp 'booleanp) 
'booleanp (lambda (x) (member x '(t nil)))))
-
-(put 'allout-stylish-prefixes 'safe-local-variable (if (fboundp 'booleanp) 
'booleanp (lambda (x) (member x '(t nil)))))
-
-(put 'allout-numbered-bullet 'safe-local-variable (if (fboundp 
'string-or-null-p) 'string-or-null-p (lambda (x) (or (stringp x) (null x)))))
-
-(put 'allout-file-xref-bullet 'safe-local-variable (if (fboundp 
'string-or-null-p) 'string-or-null-p (lambda (x) (or (stringp x) (null x)))))
-
-(put 'allout-presentation-padding 'safe-local-variable 'integerp)
-
-(put 'allout-layout 'safe-local-variable (lambda (x) (or (numberp x) (listp x) 
(memq x '(: * + -)))))
-
-(put 'allout-passphrase-verifier-string 'safe-local-variable 'stringp)
-
-(put 'allout-passphrase-hint-string 'safe-local-variable 'stringp)
-
-(autoload 'allout-mode-p "allout" "\
-Return t if `allout-mode' is active in current buffer.
-
-\(fn)" nil t)
-
-(autoload 'allout-mode "allout" "\
-Toggle Allout outline mode.
-With a prefix argument ARG, enable Allout outline mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-\\<allout-mode-map-value>
-Allout outline mode is a minor mode that provides extensive
-outline oriented formatting and manipulation.  It enables
-structural editing of outlines, as well as navigation and
-exposure.  It also is specifically aimed at accommodating
-syntax-sensitive text like programming languages.  (For example,
-see the allout code itself, which is organized as an allout
-outline.)
-
-In addition to typical outline navigation and exposure, allout includes:
-
- - topic-oriented authoring, including keystroke-based topic creation,
-   repositioning, promotion/demotion, cut, and paste
- - incremental search with dynamic exposure and reconcealment of hidden text
- - adjustable format, so programming code can be developed in outline-structure
- - easy topic encryption and decryption, symmetric or key-pair
- - \"Hot-spot\" operation, for single-keystroke maneuvering and exposure 
control
- - integral outline layout, for automatic initial exposure when visiting a file
- - independent extensibility, using comprehensive exposure and authoring hooks
-
-and many other features.
-
-Below is a description of the key bindings, and then description
-of special `allout-mode' features and terminology.  See also the
-outline menubar additions for quick reference to many of the
-features.  Customize `allout-auto-activation' to prepare your
-Emacs session for automatic activation of `allout-mode'.
-
-The bindings are those listed in `allout-prefixed-keybindings'
-and `allout-unprefixed-keybindings'.  We recommend customizing
-`allout-command-prefix' to use just `\\C-c' as the command
-prefix, if the allout bindings don't conflict with any personal
-bindings you have on \\C-c.  In any case, outline structure
-navigation and authoring is simplified by positioning the cursor
-on an item's bullet character, the \"hot-spot\" -- then you can
-invoke allout commands with just the un-prefixed,
-un-control-shifted command letters.  This is described further in
-the HOT-SPOT Operation section.
-
-        Exposure Control:
-        ----------------
-\\[allout-hide-current-subtree]   `allout-hide-current-subtree'
-\\[allout-show-children] `allout-show-children'
-\\[allout-show-current-subtree] `allout-show-current-subtree'
-\\[allout-show-current-entry] `allout-show-current-entry'
-\\[allout-show-all]   `allout-show-all'
-
-        Navigation:
-        ----------
-\\[allout-next-visible-heading] `allout-next-visible-heading'
-\\[allout-previous-visible-heading] `allout-previous-visible-heading'
-\\[allout-up-current-level] `allout-up-current-level'
-\\[allout-forward-current-level] `allout-forward-current-level'
-\\[allout-backward-current-level] `allout-backward-current-level'
-\\[allout-end-of-entry] `allout-end-of-entry'
-\\[allout-beginning-of-current-entry] `allout-beginning-of-current-entry' 
(alternately, goes to hot-spot)
-\\[allout-beginning-of-line]  `allout-beginning-of-line' -- like regular 
beginning-of-line, but
-     if immediately repeated cycles to the beginning of the current item
-     and then to the hot-spot (if `allout-beginning-of-line-cycles' is set).
-
-
-        Topic Header Production:
-        -----------------------
-\\[allout-open-sibtopic] `allout-open-sibtopic' Create a new sibling after 
current topic.
-\\[allout-open-subtopic]   `allout-open-subtopic' ... an offspring of current 
topic.
-\\[allout-open-supertopic] `allout-open-supertopic' ... a sibling of the 
current topic's parent.
-
-        Topic Level and Prefix Adjustment:
-        ---------------------------------
-\\[allout-shift-in] `allout-shift-in'   Shift current topic and all offspring 
deeper
-\\[allout-shift-out] `allout-shift-out' ... less deep
-\\[allout-rebullet-current-heading] `allout-rebullet-current-heading' Prompt 
for alternate bullet for
-            current topic
-\\[allout-rebullet-topic] `allout-rebullet-topic'   Reconcile bullets of topic 
and
-            its offspring -- distinctive bullets are not changed, others
-            are alternated according to nesting depth.
-\\[allout-number-siblings] `allout-number-siblings'  Number bullets of topic 
and siblings --
-           the offspring are not affected.
-           With repeat count, revoke numbering.
-
-        Topic-oriented Killing and Yanking:
-        ----------------------------------
-\\[allout-kill-topic] `allout-kill-topic'   Kill current topic, including 
offspring.
-\\[allout-copy-topic-as-kill] `allout-copy-topic-as-kill' Copy current topic, 
including offspring.
-\\[allout-kill-line]     `allout-kill-line'    Kill line, attending to outline 
structure.
-\\[allout-copy-line-as-kill]     `allout-copy-line-as-kill' Copy line but 
don't delete it.
-\\[allout-yank] `allout-yank'        Yank, adjusting depth of yanked topic to
-                             depth of heading if yanking into bare topic
-                             heading (ie, prefix sans text).
-\\[allout-yank-pop]     `allout-yank-pop'       Is to `allout-yank' as 
`yank-pop' is to `yank'.
-
-        Topic-oriented Encryption:
-        -------------------------
-\\[allout-toggle-current-subtree-encryption] 
`allout-toggle-current-subtree-encryption'
-          Encrypt/Decrypt topic content
-
-        Misc commands:
-        -------------
-M-x outlineify-sticky       Activate outline mode for current buffer,
-                            and establish a default file-var setting
-                            for `allout-layout'.
-\\[allout-mark-topic]       `allout-mark-topic'
-\\[allout-copy-exposed-to-buffer] `allout-copy-exposed-to-buffer'
-                            Duplicate outline, sans concealed text, to
-                            buffer with name derived from derived from that
-                            of current buffer -- \"*BUFFERNAME exposed*\".
-\\[allout-flatten-exposed-to-buffer] `allout-flatten-exposed-to-buffer'
-                            Like above `copy-exposed', but convert topic
-                            prefixes to section.subsection... numeric
-                            format.
-\\[customize-variable] allout-auto-activation
-                            Prepare Emacs session for allout outline mode
-                            auto-activation.
-
-                  Topic Encryption
-
-Outline mode supports gpg encryption of topics, with support for
-symmetric and key-pair modes, and auto-encryption of topics
-pending encryption on save.
-
-Topics pending encryption are, by default, automatically
-encrypted during file saves, including checkpoint saves, to avoid
-exposing the plain text of encrypted topics in the file system.
-If the content of the topic containing the cursor was encrypted
-for a save, it is automatically decrypted for continued editing.
-
-NOTE: A few GnuPG v2 versions improperly preserve incorrect
-symmetric decryption keys, preventing entry of the correct key on
-subsequent decryption attempts until the cache times-out.  That
-can take several minutes.  (Decryption of other entries is not
-affected.)  Upgrade your EasyPG version, if you can, and you can
-deliberately clear your gpg-agent's cache by sending it a `-HUP'
-signal.
-
-See `allout-toggle-current-subtree-encryption' function docstring
-and `allout-encrypt-unencrypted-on-saves' customization variable
-for details.
-
-                 HOT-SPOT Operation
-
-Hot-spot operation provides a means for easy, single-keystroke outline
-navigation and exposure control.
-
-When the text cursor is positioned directly on the bullet character of
-a topic, regular characters (a to z) invoke the commands of the
-corresponding allout-mode keymap control chars.  For example, \"f\"
-would invoke the command typically bound to \"C-c<space>C-f\"
-\(\\[allout-forward-current-level] `allout-forward-current-level').
-
-Thus, by positioning the cursor on a topic bullet, you can
-execute the outline navigation and manipulation commands with a
-single keystroke.  Regular navigation keys (eg, \\[forward-char], 
\\[next-line]) don't get
-this special translation, so you can use them to get out of the
-hot-spot and back to normal editing operation.
-
-In allout-mode, the normal beginning-of-line command 
(\\[allout-beginning-of-line]) is
-replaced with one that makes it easy to get to the hot-spot.  If you
-repeat it immediately it cycles (if `allout-beginning-of-line-cycles'
-is set) to the beginning of the item and then, if you hit it again
-immediately, to the hot-spot.  Similarly, `allout-beginning-of-current-entry'
-\(\\[allout-beginning-of-current-entry]) moves to the hot-spot when the cursor 
is already located
-at the beginning of the current entry.
-
-                             Extending Allout
-
-Allout exposure and authoring activities all have associated
-hooks, by which independent code can cooperate with allout
-without changes to the allout core.  Here are key ones:
-
-`allout-mode-hook'
-`allout-mode-deactivate-hook' (deprecated)
-`allout-mode-off-hook'
-`allout-exposure-change-functions'
-`allout-structure-added-functions'
-`allout-structure-deleted-functions'
-`allout-structure-shifted-functions'
-`allout-after-copy-or-kill-hook'
-`allout-post-undo-hook'
-
-                            Terminology
-
-Topic hierarchy constituents -- TOPICS and SUBTOPICS:
-
-ITEM:   A unitary outline element, including the HEADER and ENTRY text.
-TOPIC:  An ITEM and any ITEMs contained within it, ie having greater DEPTH
-        and with no intervening items of lower DEPTH than the container.
-CURRENT ITEM:
-        The visible ITEM most immediately containing the cursor.
-DEPTH:  The degree of nesting of an ITEM; it increases with containment.
-        The DEPTH is determined by the HEADER PREFIX.  The DEPTH is also
-        called the:
-LEVEL:  The same as DEPTH.
-
-ANCESTORS:
-        Those ITEMs whose TOPICs contain an ITEM.
-PARENT: An ITEM's immediate ANCESTOR.  It has a DEPTH one less than that
-        of the ITEM.
-OFFSPRING:
-        The ITEMs contained within an ITEM's TOPIC.
-SUBTOPIC:
-        An OFFSPRING of its ANCESTOR TOPICs.
-CHILD:
-        An immediate SUBTOPIC of its PARENT.
-SIBLINGS:
-        TOPICs having the same PARENT and DEPTH.
-
-Topic text constituents:
-
-HEADER: The first line of an ITEM, include the ITEM PREFIX and HEADER
-        text.
-ENTRY:  The text content of an ITEM, before any OFFSPRING, but including
-        the HEADER text and distinct from the ITEM PREFIX.
-BODY:   Same as ENTRY.
-PREFIX: The leading text of an ITEM which distinguishes it from normal
-        ENTRY text.  Allout recognizes the outline structure according
-        to the strict PREFIX format.  It consists of a PREFIX-LEAD string,
-        PREFIX-PADDING, and a BULLET.  The BULLET might be followed by a
-        number, indicating the ordinal number of the topic among its
-        siblings, or an asterisk indicating encryption, plus an optional
-        space.  After that is the ITEM HEADER text, which is not part of
-        the PREFIX.
-
-        The relative length of the PREFIX determines the nesting DEPTH
-        of the ITEM.
-PREFIX-LEAD:
-        The string at the beginning of a HEADER PREFIX, by default a `.'.
-        It can be customized by changing the setting of
-        `allout-header-prefix' and then reinitializing `allout-mode'.
-
-        When the PREFIX-LEAD is set to the comment-string of a
-        programming language, outline structuring can be embedded in
-        program code without interfering with processing of the text
-        (by Emacs or the language processor) as program code.  This
-        setting happens automatically when allout mode is used in
-        programming-mode buffers.  See `allout-use-mode-specific-leader'
-        docstring for more detail.
-PREFIX-PADDING:
-        Spaces or asterisks which separate the PREFIX-LEAD and the
-        bullet, determining the ITEM's DEPTH.
-BULLET: A character at the end of the ITEM PREFIX, it must be one of
-        the characters listed on `allout-plain-bullets-string' or
-        `allout-distinctive-bullets-string'.  When creating a TOPIC,
-        plain BULLETs are by default used, according to the DEPTH of the
-        TOPIC.  Choice among the distinctive BULLETs is offered when you
-        provide a universal argument (\\[universal-argument]) to the
-        TOPIC creation command, or when explicitly rebulleting a TOPIC.  The
-        significance of the various distinctive bullets is purely by
-        convention.  See the documentation for the above bullet strings for
-        more details.
-EXPOSURE:
-        The state of a TOPIC which determines the on-screen visibility
-        of its OFFSPRING and contained ENTRY text.
-CONCEALED:
-        TOPICs and ENTRY text whose EXPOSURE is inhibited.  Concealed
-        text is represented by \"...\" ellipses.
-
-        CONCEALED TOPICs are effectively collapsed within an ANCESTOR.
-CLOSED: A TOPIC whose immediate OFFSPRING and body-text is CONCEALED.
-OPEN:  A TOPIC that is not CLOSED, though its OFFSPRING or BODY may be.
-
-\(fn &optional ARG)" t nil)
-
-(defalias 'outlinify-sticky 'outlineify-sticky)
-
-(autoload 'outlineify-sticky "allout" "\
-Activate outline mode and establish file var so it is started subsequently.
-
-See `allout-layout' and customization of `allout-auto-activation'
-for details on preparing Emacs for automatic allout activation.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"allout" '("allout-")))
-
-;;;***
-
-;;;### (autoloads nil "allout-widgets" "allout-widgets.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from allout-widgets.el
-(push (purecopy '(allout-widgets 1 0)) package--builtin-versions)
-
-(autoload 'allout-widgets-setup "allout-widgets" "\
-Commission or decommission allout-widgets-mode along with allout-mode.
-
-Meant to be used by customization of `allout-widgets-auto-activation'.
-
-\(fn VARNAME VALUE)" nil nil)
-
-(defvar allout-widgets-auto-activation nil "\
-Activate to enable allout icon graphics wherever allout mode is active.
-
-Also enable `allout-auto-activation' for this to take effect upon
-visiting an outline.
-
-When this is set you can disable allout widgets in select files
-by setting `allout-widgets-mode-inhibit'
-
-Instead of setting `allout-widgets-auto-activation' you can
-explicitly invoke `allout-widgets-mode' in allout buffers where
-you want allout widgets operation.
-
-See `allout-widgets-mode' for allout widgets mode features.")
-
-(custom-autoload 'allout-widgets-auto-activation "allout-widgets" nil)
-
-(put 'allout-widgets-mode-inhibit 'safe-local-variable (if (fboundp 'booleanp) 
'booleanp (lambda (x) (member x '(t nil)))))
-
-(autoload 'allout-widgets-mode "allout-widgets" "\
-Toggle Allout Widgets mode.
-With a prefix argument ARG, enable Allout Widgets mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Allout Widgets mode is an extension of Allout mode that provides
-graphical decoration of outline structure.  It is meant to
-operate along with `allout-mode', via `allout-mode-hook'.
-
-The graphics include:
-
-- guide lines connecting item bullet-icons with those of their subitems.
-
-- icons for item bullets, varying to indicate whether or not the item
-  has subitems, and if so, whether or not the item is expanded.
-
-- cue area between the bullet-icon and the start of the body headline,
-  for item numbering, encryption indicator, and distinctive bullets.
-
-The bullet-icon and guide line graphics provide keybindings and mouse
-bindings for easy outline navigation and exposure control, extending
-outline hot-spot navigation (see `allout-mode').
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"allout-widgets" '("allout-")))
-
-;;;***
-
-;;;### (autoloads nil "ange-ftp" "net/ange-ftp.el" (0 0 0 0))
-;;; Generated autoloads from net/ange-ftp.el
-
-(defalias 'ange-ftp-re-read-dir 'ange-ftp-reread-dir)
-
-(autoload 'ange-ftp-reread-dir "ange-ftp" "\
-Reread remote directory DIR to update the directory cache.
-The implementation of remote FTP file names caches directory contents
-for speed.  Therefore, when new remote files are created, Emacs
-may not know they exist.  You can use this command to reread a specific
-directory, so that Emacs will know its current contents.
-
-\(fn &optional DIR)" t nil)
-
-(autoload 'ange-ftp-hook-function "ange-ftp" "\
-
-
-\(fn OPERATION &rest ARGS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ange-ftp" '("ange-ftp-" "internal-ange-ftp-mode" "ftp-error")))
-
-;;;***
-
-;;;### (autoloads nil "animate" "play/animate.el" (0 0 0 0))
-;;; Generated autoloads from play/animate.el
-
-(autoload 'animate-string "animate" "\
-Display STRING animations starting at position VPOS, HPOS.
-The characters start at randomly chosen places,
-and all slide in parallel to their final positions,
-passing through `animate-n-steps' positions before the final ones.
-If HPOS is nil (or omitted), center the string horizontally
-in the current window.
-
-\(fn STRING VPOS &optional HPOS)" nil nil)
-
-(autoload 'animate-sequence "animate" "\
-Display animation strings from LIST-OF-STRING with buffer *Animation*.
-Strings will be separated from each other by SPACE lines.
- When the variable `animation-buffer-name' is non-nil display
-animation in the buffer named by variable's value, creating the
-buffer if one does not exist.
-
-\(fn LIST-OF-STRINGS SPACE)" nil nil)
-
-(autoload 'animate-birthday-present "animate" "\
-Return a birthday present in the buffer *Birthday-Present*.
-When optional arg NAME is non-nil or called-interactively, prompt for
-NAME of birthday present receiver and return a birthday present in
-the buffer *Birthday-Present-for-Name*.
-
-\(fn &optional NAME)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"animate" '("animat")))
-
-;;;***
-
-;;;### (autoloads nil "ansi-color" "ansi-color.el" (0 0 0 0))
-;;; Generated autoloads from ansi-color.el
-(push (purecopy '(ansi-color 3 4 2)) package--builtin-versions)
-
-(autoload 'ansi-color-for-comint-mode-on "ansi-color" "\
-Set `ansi-color-for-comint-mode' to t.
-
-\(fn)" t nil)
-
-(autoload 'ansi-color-process-output "ansi-color" "\
-Maybe translate SGR control sequences of comint output into text properties.
-
-Depending on variable `ansi-color-for-comint-mode' the comint output is
-either not processed, SGR control sequences are filtered using
-`ansi-color-filter-region', or SGR control sequences are translated into
-text properties using `ansi-color-apply-on-region'.
-
-The comint output is assumed to lie between the marker
-`comint-last-output-start' and the process-mark.
-
-This is a good function to put in `comint-output-filter-functions'.
-
-\(fn IGNORED)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ansi-color" '("ansi-color-")))
-
-;;;***
-
-;;;### (autoloads nil "antlr-mode" "progmodes/antlr-mode.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from progmodes/antlr-mode.el
-(push (purecopy '(antlr-mode 2 2 3)) package--builtin-versions)
-
-(autoload 'antlr-show-makefile-rules "antlr-mode" "\
-Show Makefile rules for all grammar files in the current directory.
-If the `major-mode' of the current buffer has the value `makefile-mode',
-the rules are directory inserted at point.  Otherwise, a *Help* buffer
-is shown with the rules which are also put into the `kill-ring' for
-\\[yank].
-
-This command considers import/export vocabularies and grammar
-inheritance and provides a value for the \"-glib\" option if necessary.
-Customize variable `antlr-makefile-specification' for the appearance of
-the rules.
-
-If the file for a super-grammar cannot be determined, special file names
-are used according to variable `antlr-unknown-file-formats' and a
-commentary with value `antlr-help-unknown-file-text' is added.  The
-*Help* buffer always starts with the text in `antlr-help-rules-intro'.
-
-\(fn)" t nil)
-
-(autoload 'antlr-mode "antlr-mode" "\
-Major mode for editing ANTLR grammar files.
-
-\(fn)" t nil)
-
-(autoload 'antlr-set-tabs "antlr-mode" "\
-Use ANTLR's convention for TABs according to `antlr-tab-offset-alist'.
-Used in `antlr-mode'.  Also a useful function in `java-mode-hook'.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"antlr-mode" '("antlr-")))
-
-;;;***
-
-;;;### (autoloads nil "appt" "calendar/appt.el" (0 0 0 0))
-;;; Generated autoloads from calendar/appt.el
-
-(autoload 'appt-add "appt" "\
-Add an appointment for today at TIME with message MSG.
-The time should be in either 24 hour format or am/pm format.
-Optional argument WARNTIME is an integer (or string) giving the number
-of minutes before the appointment at which to start warning.
-The default is `appt-message-warning-time'.
-
-\(fn TIME MSG &optional WARNTIME)" t nil)
-
-(autoload 'appt-activate "appt" "\
-Toggle checking of appointments.
-With optional numeric argument ARG, turn appointment checking on if
-ARG is positive, otherwise off.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"appt" '("appt-")))
-
-;;;***
-
-;;;### (autoloads nil "apropos" "apropos.el" (0 0 0 0))
-;;; Generated autoloads from apropos.el
-
-(autoload 'apropos-read-pattern "apropos" "\
-Read an apropos pattern, either a word list or a regexp.
-Returns the user pattern, either a list of words which are matched
-literally, or a string which is used as a regexp to search for.
-
-SUBJECT is a string that is included in the prompt to identify what
-kind of objects to search.
-
-\(fn SUBJECT)" nil nil)
-
-(autoload 'apropos-user-option "apropos" "\
-Show user options that match PATTERN.
-PATTERN can be a word, a list of words (separated by spaces),
-or a regexp (using some regexp special characters).  If it is a word,
-search for matches for that word as a substring.  If it is a list of words,
-search for matches for any two (or more) of those words.
-
-With \\[universal-argument] prefix, or if `apropos-do-all' is non-nil, also 
show
-variables, not just user options.
-
-\(fn PATTERN &optional DO-ALL)" t nil)
-
-(autoload 'apropos-variable "apropos" "\
-Show variables that match PATTERN.
-With the optional argument DO-NOT-ALL non-nil (or when called
-interactively with the prefix \\[universal-argument]), show user
-options only, i.e. behave like `apropos-user-option'.
-
-\(fn PATTERN &optional DO-NOT-ALL)" t nil)
-
-(defalias 'command-apropos 'apropos-command)
-
-(autoload 'apropos-command "apropos" "\
-Show commands (interactively callable functions) that match PATTERN.
-PATTERN can be a word, a list of words (separated by spaces),
-or a regexp (using some regexp special characters).  If it is a word,
-search for matches for that word as a substring.  If it is a list of words,
-search for matches for any two (or more) of those words.
-
-With \\[universal-argument] prefix, or if `apropos-do-all' is non-nil, also 
show
-noninteractive functions.
-
-If VAR-PREDICATE is non-nil, show only variables, and only those that
-satisfy the predicate VAR-PREDICATE.
-
-When called from a Lisp program, a string PATTERN is used as a regexp,
-while a list of strings is used as a word list.
-
-\(fn PATTERN &optional DO-ALL VAR-PREDICATE)" t nil)
-
-(autoload 'apropos-documentation-property "apropos" "\
-Like (documentation-property SYMBOL PROPERTY RAW) but handle errors.
-
-\(fn SYMBOL PROPERTY RAW)" nil nil)
-
-(autoload 'apropos "apropos" "\
-Show all meaningful Lisp symbols whose names match PATTERN.
-Symbols are shown if they are defined as functions, variables, or
-faces, or if they have nonempty property lists.
-
-PATTERN can be a word, a list of words (separated by spaces),
-or a regexp (using some regexp special characters).  If it is a word,
-search for matches for that word as a substring.  If it is a list of words,
-search for matches for any two (or more) of those words.
-
-With \\[universal-argument] prefix, or if `apropos-do-all' is non-nil,
-consider all symbols (if they match PATTERN).
-
-Returns list of symbols and documentation found.
-
-\(fn PATTERN &optional DO-ALL)" t nil)
-
-(autoload 'apropos-library "apropos" "\
-List the variables and functions defined by library FILE.
-FILE should be one of the libraries currently loaded and should
-thus be found in `load-history'.  If `apropos-do-all' is non-nil,
-the output includes key-bindings of commands.
-
-\(fn FILE)" t nil)
-
-(autoload 'apropos-value "apropos" "\
-Show all symbols whose value's printed representation matches PATTERN.
-PATTERN can be a word, a list of words (separated by spaces),
-or a regexp (using some regexp special characters).  If it is a word,
-search for matches for that word as a substring.  If it is a list of words,
-search for matches for any two (or more) of those words.
-
-With \\[universal-argument] prefix, or if `apropos-do-all' is non-nil, also 
looks
-at function definitions (arguments, documentation and body) and at the
-names and values of properties.
-
-Returns list of symbols and values found.
-
-\(fn PATTERN &optional DO-ALL)" t nil)
-
-(autoload 'apropos-documentation "apropos" "\
-Show symbols whose documentation contains matches for PATTERN.
-PATTERN can be a word, a list of words (separated by spaces),
-or a regexp (using some regexp special characters).  If it is a word,
-search for matches for that word as a substring.  If it is a list of words,
-search for matches for any two (or more) of those words.
-
-Note that by default this command only searches in the file specified by
-`internal-doc-file-name'; i.e., the etc/DOC file.  With \\[universal-argument] 
prefix,
-or if `apropos-do-all' is non-nil, it searches all currently defined
-documentation strings.
-
-Returns list of symbols and documentation found.
-
-\(fn PATTERN &optional DO-ALL)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"apropos" '("apropos-")))
-
-;;;***
-
-;;;### (autoloads nil "arc-mode" "arc-mode.el" (0 0 0 0))
-;;; Generated autoloads from arc-mode.el
-
-(autoload 'archive-mode "arc-mode" "\
-Major mode for viewing an archive file in a dired-like way.
-You can move around using the usual cursor motion commands.
-Letters no longer insert themselves.
-Type `e' to pull a file out of the archive and into its own buffer;
-or click mouse-2 on the file's line in the archive mode buffer.
-
-If you edit a sub-file of this archive (as with the `e' command) and
-save it, the contents of that buffer will be saved back into the
-archive.
-
-\\{archive-mode-map}
-
-\(fn &optional FORCE)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"arc-mode" '("archive-")))
-
-;;;***
-
-;;;### (autoloads nil "array" "array.el" (0 0 0 0))
-;;; Generated autoloads from array.el
-
-(autoload 'array-mode "array" "\
-Major mode for editing arrays.
-
-  Array mode is a specialized mode for editing arrays.  An array is
-considered to be a two-dimensional set of strings.  The strings are
-NOT recognized as integers or real numbers.
-
-  The array MUST reside at the top of the buffer.
-
-  TABs are not respected, and may be converted into spaces at any time.
-Setting the variable `array-respect-tabs' to non-nil will prevent TAB 
conversion,
-but will cause many functions to give errors if they encounter one.
-
-  Upon entering array mode, you will be prompted for the values of
-several variables.  Others will be calculated based on the values you
-supply.  These variables are all local to the buffer.  Other buffer
-in array mode may have different values assigned to the variables.
-The variables are:
-
-Variables you assign:
-     array-max-row:          The number of rows in the array.
-     array-max-column:       The number of columns in the array.
-     array-columns-per-line: The number of columns in the array per line of 
buffer.
-     array-field-width:      The width of each field, in characters.
-     array-rows-numbered:    A logical variable describing whether to ignore
-                       row numbers in the buffer.
-
-Variables which are calculated:
-     array-line-length:      The number of characters in a buffer line.
-     array-lines-per-row:    The number of buffer lines used to display each 
row.
-
-  The following commands are available (an asterisk indicates it may
-take a numeric prefix argument):
-
-    *          \\<array-mode-map>\\[array-forward-column]        Move forward 
one column.
-    *          \\[array-backward-column]         Move backward one column.
-    *          \\[array-next-row]        Move down one row.
-    *          \\[array-previous-row]    Move up one row.
-
-    *   \\[array-copy-forward]   Copy the current field into the column to the 
right.
-    *   \\[array-copy-backward]          Copy the current field into the 
column to the left.
-    *   \\[array-copy-down]      Copy the current field into the row below.
-    *   \\[array-copy-up]        Copy the current field into the row above.
-
-    *   \\[array-copy-column-forward]   Copy the current column into the 
column to the right.
-    *   \\[array-copy-column-backward]   Copy the current column into the 
column to the left.
-    *   \\[array-copy-row-down]   Copy the current row into the row below.
-    *   \\[array-copy-row-up]   Copy the current row into the row above.
-
-        \\[array-fill-rectangle]   Copy the field at mark into every cell with 
row and column
-                  between that of point and mark.
-
-       \\[array-what-position]   Display the current array row and column.
-       \\[array-goto-cell]       Go to a particular array cell.
-
-       \\[array-make-template]   Make a template for a new array.
-       \\[array-reconfigure-rows]        Reconfigure the array.
-        \\[array-expand-rows]   Expand the array (remove row numbers and
-                  newlines inside rows)
-
-        \\[array-display-local-variables]   Display the current values of 
local variables.
-
-Entering array mode calls the function `array-mode-hook'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"array" '("array-" "untabify-backward" "move-to-column-untabify" "current-line" 
"xor" "limit-index")))
-
-;;;***
-
-;;;### (autoloads nil "artist" "textmodes/artist.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/artist.el
-(push (purecopy '(artist 1 2 6)) package--builtin-versions)
-
-(autoload 'artist-mode "artist" "\
-Toggle Artist mode.
-With argument ARG, turn Artist mode on if ARG is positive.
-Artist lets you draw lines, squares, rectangles and poly-lines,
-ellipses and circles with your mouse and/or keyboard.
-
-How to quit Artist mode
-
- Type \\[artist-mode-off] to quit artist-mode.
-
-
-How to submit a bug report
-
- Type \\[artist-submit-bug-report] to submit a bug report.
-
-
-Drawing with the mouse:
-
- mouse-2
- shift mouse-2 Pops up a menu where you can select what to draw with
-               mouse-1, and where you can do some settings (described
-               below).
-
- mouse-1
- shift mouse-1 Draws lines, rectangles or poly-lines, erases, cuts, copies
-               or pastes:
-
-               Operation       Not shifted               Shifted
-               --------------------------------------------------------------
-                Pen             fill-char at point        line from last point
-                                                          to new point
-               --------------------------------------------------------------
-               Line            Line in any direction     Straight line
-               --------------------------------------------------------------
-               Rectangle       Rectangle                 Square
-               --------------------------------------------------------------
-               Poly-line       Poly-line in any dir      Straight poly-lines
-               --------------------------------------------------------------
-               Ellipses        Ellipses                  Circles
-               --------------------------------------------------------------
-               Text            Text (see thru)           Text (overwrite)
-               --------------------------------------------------------------
-               Spray-can       Spray-can                 Set size for spray
-               --------------------------------------------------------------
-               Erase           Erase character           Erase rectangle
-               --------------------------------------------------------------
-               Vaporize        Erase single line         Erase connected
-                                                         lines
-               --------------------------------------------------------------
-               Cut             Cut rectangle             Cut square
-               --------------------------------------------------------------
-               Copy            Copy rectangle            Copy square
-               --------------------------------------------------------------
-               Paste           Paste                     Paste
-               --------------------------------------------------------------
-               Flood-fill      Flood-fill                Flood-fill
-               --------------------------------------------------------------
-
-               * Straight lines can only go horizontally, vertically
-                 or diagonally.
-
-               * Poly-lines are drawn while holding mouse-1 down.  When you
-                 release the button, the point is set.  If you want a segment
-                 to be straight, hold down shift before pressing the
-                 mouse-1 button.  Click mouse-2 or mouse-3 to stop drawing
-                 poly-lines.
-
-               * See thru for text means that text already in the buffer
-                 will be visible through blanks in the text rendered, while
-                 overwrite means the opposite.
-
-               * Vaporizing connected lines only vaporizes lines whose
-                 _endpoints_ are connected.  See also the variable
-                 `artist-vaporize-fuzziness'.
-
-               * Cut copies, then clears the rectangle/square.
-
-               * When drawing lines or poly-lines, you can set arrows.
-                 See below under \"Arrows\" for more info.
-
-               * The mode line shows the currently selected drawing operation.
-                 In addition, if it has an asterisk (*) at the end, you
-                 are currently drawing something.
-
-               * Be patient when flood-filling -- large areas take quite
-                 some time to fill.
-
-
- mouse-3       Erases character under pointer
- shift mouse-3 Erases rectangle
-
-
-Settings
-
- Set fill      Sets the character used when filling rectangles/squares
-
- Set line      Sets the character used when drawing lines
-
- Erase char    Sets the character used when erasing
-
- Rubber-banding        Toggles rubber-banding
-
- Trimming      Toggles trimming of line-endings (that is: when the shape
-               is drawn, extraneous white-space at end of lines is removed)
-
- Borders        Toggles the drawing of line borders around filled shapes
-
-
-Drawing with keys
-
- \\[artist-key-set-point]              Does one of the following:
-               For lines/rectangles/squares: sets the first/second endpoint
-               For poly-lines: sets a point (use C-u \\[artist-key-set-point] 
to set last point)
-               When erase characters: toggles erasing
-               When cutting/copying: Sets first/last endpoint of rect/square
-               When pasting: Pastes
-
- \\[artist-select-operation]   Selects what to draw
-
- Move around with \\[artist-next-line], \\[artist-previous-line], 
\\[artist-forward-char] and \\[artist-backward-char].
-
- \\[artist-select-fill-char]   Sets the character to use when filling
- \\[artist-select-line-char]   Sets the character to use when drawing
- \\[artist-select-erase-char]  Sets the character to use when erasing
- \\[artist-toggle-rubber-banding]      Toggles rubber-banding
- \\[artist-toggle-trim-line-endings]   Toggles trimming of line-endings
- \\[artist-toggle-borderless-shapes]   Toggles borders on drawn shapes
-
-
-Arrows
-
- \\[artist-toggle-first-arrow]         Sets/unsets an arrow at the beginning
-               of the line/poly-line
-
- \\[artist-toggle-second-arrow]                Sets/unsets an arrow at the end
-               of the line/poly-line
-
-
-Selecting operation
-
- There are some keys for quickly selecting drawing operations:
-
- \\[artist-select-op-line]     Selects drawing lines
- \\[artist-select-op-straight-line]    Selects drawing straight lines
- \\[artist-select-op-rectangle]        Selects drawing rectangles
- \\[artist-select-op-square]   Selects drawing squares
- \\[artist-select-op-poly-line]        Selects drawing poly-lines
- \\[artist-select-op-straight-poly-line]       Selects drawing straight 
poly-lines
- \\[artist-select-op-ellipse]  Selects drawing ellipses
- \\[artist-select-op-circle]   Selects drawing circles
- \\[artist-select-op-text-see-thru]    Selects rendering text (see thru)
- \\[artist-select-op-text-overwrite]   Selects rendering text (overwrite)
- \\[artist-select-op-spray-can]        Spray with spray-can
- \\[artist-select-op-spray-set-size]   Set size for the spray-can
- \\[artist-select-op-erase-char]       Selects erasing characters
- \\[artist-select-op-erase-rectangle]  Selects erasing rectangles
- \\[artist-select-op-vaporize-line]    Selects vaporizing single lines
- \\[artist-select-op-vaporize-lines]   Selects vaporizing connected lines
- \\[artist-select-op-cut-rectangle]    Selects cutting rectangles
- \\[artist-select-op-copy-rectangle]   Selects copying rectangles
- \\[artist-select-op-paste]    Selects pasting
- \\[artist-select-op-flood-fill]       Selects flood-filling
-
-
-Variables
-
- This is a brief overview of the different variables.  For more info,
- see the documentation for the variables (type \\[describe-variable] 
<variable> RET).
-
- artist-rubber-banding         Interactively do rubber-banding or not
- artist-first-char             What to set at first/second point...
- artist-second-char            ...when not rubber-banding
- artist-interface-with-rect    If cut/copy/paste should interface with rect
- artist-arrows                 The arrows to use when drawing arrows
- artist-aspect-ratio           Character height-to-width for squares
- artist-trim-line-endings      Trimming of line endings
- artist-flood-fill-right-border        Right border when flood-filling
- artist-flood-fill-show-incrementally  Update display while filling
- artist-pointer-shape          Pointer shape to use while drawing
- artist-ellipse-left-char      Character to use for narrow ellipses
- artist-ellipse-right-char     Character to use for narrow ellipses
- artist-borderless-shapes       If shapes should have borders
- artist-picture-compatibility   Whether or not to be picture mode compatible
- artist-vaporize-fuzziness      Tolerance when recognizing lines
- artist-spray-interval          Seconds between repeated sprayings
- artist-spray-radius            Size of the spray-area
- artist-spray-chars             The spray-\"color\"
- artist-spray-new-chars         Initial spray-\"color\"
-
-Hooks
-
- Turning the mode on or off runs `artist-mode-hook'.
-
-
-Keymap summary
-
-\\{artist-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"artist" '("artist-")))
-
-;;;***
-
-;;;### (autoloads nil "asm-mode" "progmodes/asm-mode.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/asm-mode.el
-
-(autoload 'asm-mode "asm-mode" "\
-Major mode for editing typical assembler code.
-Features a private abbrev table and the following bindings:
-
-\\[asm-colon]  outdent a preceding label, tab to next tab stop.
-\\[tab-to-tab-stop]    tab to next tab stop.
-\\[asm-newline]        newline, then tab to next tab stop.
-\\[asm-comment]        smart placement of assembler comments.
-
-The character used for making comments is set by the variable
-`asm-comment-char' (which defaults to `?\\;').
-
-Alternatively, you may set this variable in `asm-mode-set-comment-hook',
-which is called near the beginning of mode initialization.
-
-Turning on Asm mode runs the hook `asm-mode-hook' at the end of initialization.
-
-Special commands:
-\\{asm-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"asm-mode" '("asm-")))
-
-;;;***
-
-;;;### (autoloads nil "auth-source" "auth-source.el" (0 0 0 0))
-;;; Generated autoloads from auth-source.el
-
-(defvar auth-source-cache-expiry 7200 "\
-How many seconds passwords are cached, or nil to disable
-expiring.  Overrides `password-cache-expiry' through a
-let-binding.")
-
-(custom-autoload 'auth-source-cache-expiry "auth-source" t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"auth-source" '("auth-source")))
-
-;;;***
-
-;;;### (autoloads nil "autoarg" "autoarg.el" (0 0 0 0))
-;;; Generated autoloads from autoarg.el
-
-(defvar autoarg-mode nil "\
-Non-nil if Autoarg mode is enabled.
-See the `autoarg-mode' command
-for a description of this minor mode.")
-
-(custom-autoload 'autoarg-mode "autoarg" nil)
-
-(autoload 'autoarg-mode "autoarg" "\
-Toggle Autoarg mode, a global minor mode.
-With a prefix argument ARG, enable Autoarg mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-\\<autoarg-mode-map>
-In Autoarg mode, digits are bound to `digit-argument', i.e. they
-supply prefix arguments as C-DIGIT and M-DIGIT normally do.
-Furthermore, C-DIGIT inserts DIGIT.
-\\[autoarg-terminate] terminates the prefix sequence and inserts
-the digits of the autoarg sequence into the buffer.
-Without a numeric prefix arg, the normal binding of \\[autoarg-terminate]
-is invoked, i.e. what it would be with Autoarg mode off.
-
-For example:
-`6 9 \\[autoarg-terminate]' inserts `69' into the buffer, as does `C-6 C-9'.
-`6 9 a' inserts 69 `a's into the buffer.
-`6 9 \\[autoarg-terminate] \\[autoarg-terminate]' inserts `69' into the buffer 
and
-then invokes the normal binding of \\[autoarg-terminate].
-`C-u \\[autoarg-terminate]' invokes the normal binding of 
\\[autoarg-terminate] four times.
-
-\\{autoarg-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(defvar autoarg-kp-mode nil "\
-Non-nil if Autoarg-Kp mode is enabled.
-See the `autoarg-kp-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `autoarg-kp-mode'.")
-
-(custom-autoload 'autoarg-kp-mode "autoarg" nil)
-
-(autoload 'autoarg-kp-mode "autoarg" "\
-Toggle Autoarg-KP mode, a global minor mode.
-With a prefix argument ARG, enable Autoarg-KP mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-\\<autoarg-kp-mode-map>
-This is similar to `autoarg-mode' but rebinds the keypad keys
-`kp-1' etc. to supply digit arguments.
-
-\\{autoarg-kp-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"autoarg" '("autoarg-")))
-
-;;;***
-
-;;;### (autoloads nil "autoconf" "progmodes/autoconf.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/autoconf.el
-
-(autoload 'autoconf-mode "autoconf" "\
-Major mode for editing Autoconf configure.ac files.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"autoconf" '("autoconf-")))
-
-;;;***
-
-;;;### (autoloads nil "autoinsert" "autoinsert.el" (0 0 0 0))
-;;; Generated autoloads from autoinsert.el
-
-(autoload 'auto-insert "autoinsert" "\
-Insert default contents into new files if variable `auto-insert' is non-nil.
-Matches the visited file name against the elements of `auto-insert-alist'.
-
-\(fn)" t nil)
-
-(autoload 'define-auto-insert "autoinsert" "\
-Associate CONDITION with (additional) ACTION in `auto-insert-alist'.
-Optional AFTER means to insert action after all existing actions for CONDITION,
-or if CONDITION had no actions, after all other CONDITIONs.
-
-\(fn CONDITION ACTION &optional AFTER)" nil nil)
-
-(defvar auto-insert-mode nil "\
-Non-nil if Auto-Insert mode is enabled.
-See the `auto-insert-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `auto-insert-mode'.")
-
-(custom-autoload 'auto-insert-mode "autoinsert" nil)
-
-(autoload 'auto-insert-mode "autoinsert" "\
-Toggle Auto-insert mode, a global minor mode.
-With a prefix argument ARG, enable Auto-insert mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-When Auto-insert mode is enabled, when new files are created you can
-insert a template for the file depending on the mode of the buffer.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"autoinsert" '("auto-insert")))
-
-;;;***
-
-;;;### (autoloads nil "autoload" "emacs-lisp/autoload.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from emacs-lisp/autoload.el
-
-(put 'generated-autoload-file 'safe-local-variable 'stringp)
-
-(put 'generated-autoload-load-name 'safe-local-variable 'stringp)
-
-(put 'autoload-ensure-writable 'risky-local-variable t)
-
-(autoload 'update-file-autoloads "autoload" "\
-Update the autoloads for FILE.
-If prefix arg SAVE-AFTER is non-nil, save the buffer too.
-
-If FILE binds `generated-autoload-file' as a file-local variable,
-autoloads are written into that file.  Otherwise, the autoloads
-file is determined by OUTFILE.  If called interactively, prompt
-for OUTFILE; if called from Lisp with OUTFILE nil, use the
-existing value of `generated-autoload-file'.
-
-Return FILE if there was no autoload cookie in it, else nil.
-
-\(fn FILE &optional SAVE-AFTER OUTFILE)" t nil)
-
-(autoload 'update-directory-autoloads "autoload" "\
-Update autoload definitions for Lisp files in the directories DIRS.
-In an interactive call, you must give one argument, the name of a
-single directory.  In a call from Lisp, you can supply multiple
-directories as separate arguments, but this usage is discouraged.
-
-The function does NOT recursively descend into subdirectories of the
-directory or directories specified.
-
-In an interactive call, prompt for a default output file for the
-autoload definitions, and temporarily bind the variable
-`generated-autoload-file' to this value.  When called from Lisp,
-use the existing value of `generated-autoload-file'.  If any Lisp
-file binds `generated-autoload-file' as a file-local variable,
-write its autoloads into the specified file instead.
-
-\(fn &rest DIRS)" t nil)
-
-(autoload 'batch-update-autoloads "autoload" "\
-Update loaddefs.el autoloads in batch mode.
-Calls `update-directory-autoloads' on the command line arguments.
-Definitions are written to `generated-autoload-file' (which
-should be non-nil).
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"autoload" '("autoload-" "generate" "no-update-autoloads" "make-autoload")))
-
-;;;***
-
-;;;### (autoloads nil "autorevert" "autorevert.el" (0 0 0 0))
-;;; Generated autoloads from autorevert.el
-
-(autoload 'auto-revert-mode "autorevert" "\
-Toggle reverting buffer when the file changes (Auto-Revert Mode).
-With a prefix argument ARG, enable Auto-Revert Mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Auto-Revert Mode is a minor mode that affects only the current
-buffer.  When enabled, it reverts the buffer when the file on
-disk changes.
-
-Use `global-auto-revert-mode' to automatically revert all buffers.
-Use `auto-revert-tail-mode' if you know that the file will only grow
-without being changed in the part that is already in the buffer.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'turn-on-auto-revert-mode "autorevert" "\
-Turn on Auto-Revert Mode.
-
-This function is designed to be added to hooks, for example:
-  (add-hook \\='c-mode-hook #\\='turn-on-auto-revert-mode)
-
-\(fn)" nil nil)
-
-(autoload 'auto-revert-tail-mode "autorevert" "\
-Toggle reverting tail of buffer when the file grows.
-With a prefix argument ARG, enable Auto-Revert Tail Mode if ARG
-is positive, and disable it otherwise.  If called from Lisp,
-enable the mode if ARG is omitted or nil.
-
-When Auto-Revert Tail Mode is enabled, the tail of the file is
-constantly followed, as with the shell command `tail -f'.  This
-means that whenever the file grows on disk (presumably because
-some background process is appending to it from time to time),
-this is reflected in the current buffer.
-
-You can edit the buffer and turn this mode off and on again as
-you please.  But make sure the background process has stopped
-writing before you save the file!
-
-Use `auto-revert-mode' for changes other than appends!
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'turn-on-auto-revert-tail-mode "autorevert" "\
-Turn on Auto-Revert Tail Mode.
-
-This function is designed to be added to hooks, for example:
-  (add-hook \\='my-logfile-mode-hook #\\='turn-on-auto-revert-tail-mode)
-
-\(fn)" nil nil)
-
-(defvar global-auto-revert-mode nil "\
-Non-nil if Global Auto-Revert mode is enabled.
-See the `global-auto-revert-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-auto-revert-mode'.")
-
-(custom-autoload 'global-auto-revert-mode "autorevert" nil)
-
-(autoload 'global-auto-revert-mode "autorevert" "\
-Toggle Global Auto-Revert Mode.
-With a prefix argument ARG, enable Global Auto-Revert Mode if ARG
-is positive, and disable it otherwise.  If called from Lisp,
-enable the mode if ARG is omitted or nil.
-
-Global Auto-Revert Mode is a global minor mode that reverts any
-buffer associated with a file when the file changes on disk.  Use
-`auto-revert-mode' to revert a particular buffer.
-
-If `global-auto-revert-non-file-buffers' is non-nil, this mode
-may also revert some non-file buffers, as described in the
-documentation of that variable.  It ignores buffers with modes
-matching `global-auto-revert-ignore-modes', and buffers with a
-non-nil vale of `global-auto-revert-ignore-buffer'.
-
-This function calls the hook `global-auto-revert-mode-hook'.
-It displays the text that `global-auto-revert-mode-text'
-specifies in the mode line.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"autorevert" '("auto-revert-" "global-auto-revert-")))
-
-;;;***
-
-;;;### (autoloads nil "avl-tree" "emacs-lisp/avl-tree.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from emacs-lisp/avl-tree.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"avl-tree" '("avl-tree-")))
-
-;;;***
-
-;;;### (autoloads nil "avoid" "avoid.el" (0 0 0 0))
-;;; Generated autoloads from avoid.el
-
-(defvar mouse-avoidance-mode nil "\
-Activate Mouse Avoidance mode.
-See function `mouse-avoidance-mode' for possible values.
-Setting this variable directly does not take effect;
-use either \\[customize] or the function `mouse-avoidance-mode'.")
-
-(custom-autoload 'mouse-avoidance-mode "avoid" nil)
-
-(autoload 'mouse-avoidance-mode "avoid" "\
-Set Mouse Avoidance mode to MODE.
-MODE should be one of the symbols `banish', `exile', `jump', `animate',
-`cat-and-mouse', `proteus', or `none'.
-
-If MODE is nil, toggle mouse avoidance between `none' and `banish'
-modes.  Positive numbers and symbols other than the above are treated
-as equivalent to `banish'; negative numbers and `-' are equivalent to `none'.
-
-Effects of the different modes:
- * banish: Move the mouse to the upper-right corner on any keypress.
- * exile: Move the mouse to the corner only if the cursor gets too close,
-     and allow it to return once the cursor is out of the way.
- * jump: If the cursor gets too close to the mouse, displace the mouse
-     a random distance & direction.
- * animate: As `jump', but shows steps along the way for illusion of motion.
- * cat-and-mouse: Same as `animate'.
- * proteus: As `animate', but changes the shape of the mouse pointer too.
-
-\(See `mouse-avoidance-threshold' for definition of \"too close\",
-and `mouse-avoidance-nudge-dist' and `mouse-avoidance-nudge-var' for
-definition of \"random distance\".)
-
-\(fn &optional MODE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"avoid" '("mouse-avoidance-")))
-
-;;;***
-
-;;;### (autoloads nil "bat-mode" "progmodes/bat-mode.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/bat-mode.el
-
-(add-to-list 'auto-mode-alist '("\\.\\(bat\\|cmd\\)\\'" . bat-mode))
-
-(autoload 'bat-mode "bat-mode" "\
-Major mode for editing DOS/Windows batch files.
-
-Start a new script from `bat-template'.  Read help pages for DOS commands
-with `bat-cmd-help'.  Navigate between sections using `imenu'.
-Run script using `bat-run' and `bat-run-args'.
-
-\\{bat-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"bat-mode" '("bat-")))
-
-;;;***
-
-;;;### (autoloads nil "battery" "battery.el" (0 0 0 0))
-;;; Generated autoloads from battery.el
- (put 'battery-mode-line-string 'risky-local-variable t)
-
-(autoload 'battery "battery" "\
-Display battery status information in the echo area.
-The text being displayed in the echo area is controlled by the variables
-`battery-echo-area-format' and `battery-status-function'.
-
-\(fn)" t nil)
-
-(defvar display-battery-mode nil "\
-Non-nil if Display-Battery mode is enabled.
-See the `display-battery-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `display-battery-mode'.")
-
-(custom-autoload 'display-battery-mode "battery" nil)
-
-(autoload 'display-battery-mode "battery" "\
-Toggle battery status display in mode line (Display Battery mode).
-With a prefix argument ARG, enable Display Battery mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-The text displayed in the mode line is controlled by
-`battery-mode-line-format' and `battery-status-function'.
-The mode line is be updated every `battery-update-interval'
-seconds.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"battery" '("battery-")))
-
-;;;***
-
-;;;### (autoloads nil "benchmark" "emacs-lisp/benchmark.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emacs-lisp/benchmark.el
-
-(autoload 'benchmark-run "benchmark" "\
-Time execution of FORMS.
-If REPETITIONS is supplied as a number, run forms that many times,
-accounting for the overhead of the resulting loop.  Otherwise run
-FORMS once.
-Return a list of the total elapsed time for execution, the number of
-garbage collections that ran, and the time taken by garbage collection.
-See also `benchmark-run-compiled'.
-
-\(fn &optional REPETITIONS &rest FORMS)" nil t)
-
-(function-put 'benchmark-run 'lisp-indent-function '1)
-
-(autoload 'benchmark-run-compiled "benchmark" "\
-Time execution of compiled version of FORMS.
-This is like `benchmark-run', but what is timed is a funcall of the
-byte code obtained by wrapping FORMS in a `lambda' and compiling the
-result.  The overhead of the `lambda's is accounted for.
-
-\(fn &optional REPETITIONS &rest FORMS)" nil t)
-
-(function-put 'benchmark-run-compiled 'lisp-indent-function '1)
-
-(autoload 'benchmark "benchmark" "\
-Print the time taken for REPETITIONS executions of FORM.
-Interactively, REPETITIONS is taken from the prefix arg.
-For non-interactive use see also `benchmark-run' and
-`benchmark-run-compiled'.
-
-\(fn REPETITIONS FORM)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"benchmark" '("benchmark-elapse")))
-
-;;;***
-
-;;;### (autoloads nil "bib-mode" "textmodes/bib-mode.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/bib-mode.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"bib-mode" '("bib-" "unread-bib" "mark-bib" "return-key-bib" "addbib")))
-
-;;;***
-
-;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/bibtex.el
-
-(autoload 'bibtex-initialize "bibtex" "\
-(Re)Initialize BibTeX buffers.
-Visit the BibTeX files defined by `bibtex-files' and return a list
-of corresponding buffers.
-Initialize in these buffers `bibtex-reference-keys' if not yet set.
-List of BibTeX buffers includes current buffer if CURRENT is non-nil
-and the current buffer visits a file using `bibtex-mode'.
-If FORCE is non-nil, (re)initialize `bibtex-reference-keys' even if
-already set.  If SELECT is non-nil interactively select a BibTeX buffer.
-
-When called interactively, FORCE is t, CURRENT is t if current buffer
-visits a file using `bibtex-mode', and SELECT is t if current buffer
-does not use `bibtex-mode',
-
-\(fn &optional CURRENT FORCE SELECT)" t nil)
-
-(autoload 'bibtex-mode "bibtex" "\
-Major mode for editing BibTeX files.
-
-General information on working with BibTeX mode:
-
-Use commands such as \\<bibtex-mode-map>\\[bibtex-Book] to get a template for 
a specific entry.
-Then fill in all desired fields using \\[bibtex-next-field] to jump from field
-to field.  After having filled in all desired fields in the entry, clean the
-new entry with the command \\[bibtex-clean-entry].
-
-Some features of BibTeX mode are available only by setting the variable
-`bibtex-maintain-sorted-entries' to non-nil.  However, then BibTeX mode
-works only with buffers containing valid (syntactically correct) and sorted
-entries.  This is usually the case, if you have created a buffer completely
-with BibTeX mode and finished every new entry with \\[bibtex-clean-entry].
-
-For third party BibTeX files, call the command \\[bibtex-convert-alien]
-to fully take advantage of all features of BibTeX mode.
-
-
-Special information:
-
-A command such as \\[bibtex-Book] outlines the fields for a BibTeX book entry.
-
-The names of optional fields start with the string OPT, and are thus ignored
-by BibTeX.  The names of alternative fields from which only one is required
-start with the string ALT.  The OPT or ALT string may be removed from
-the name of a field with \\[bibtex-remove-OPT-or-ALT].
-\\[bibtex-make-field] inserts a new field after the current one.
-\\[bibtex-kill-field] kills the current field entirely.
-\\[bibtex-yank] yanks the last recently killed field after the current field.
-\\[bibtex-remove-delimiters] removes the double-quotes or braces around the 
text of the current field.
-\\[bibtex-empty-field] replaces the text of the current field with the default 
\"\" or {}.
-\\[bibtex-find-text] moves point to the end of the current field.
-\\[completion-at-point] completes word fragment before point according to 
context.
-
-The command \\[bibtex-clean-entry] cleans the current entry, i.e. it removes 
OPT/ALT
-from the names of all non-empty optional or alternative fields, checks that
-no required fields are empty, and does some formatting dependent on the value
-of `bibtex-entry-format'.  Furthermore, it can automatically generate a key
-for the BibTeX entry, see `bibtex-generate-autokey'.
-Note: some functions in BibTeX mode depend on entries being in a special
-format (all fields beginning on separate lines), so it is usually a bad
-idea to remove `realign' from `bibtex-entry-format'.
-
-BibTeX mode supports Imenu and hideshow minor mode (`hs-minor-mode').
-
-----------------------------------------------------------
-Entry to BibTeX mode calls the value of `bibtex-mode-hook'
-if that value is non-nil.
-
-\\{bibtex-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'bibtex-search-entry "bibtex" "\
-Move point to the beginning of BibTeX entry named KEY.
-Return position of entry if KEY is found or nil if not found.
-With GLOBAL non-nil, search KEY in `bibtex-files'.  Otherwise the search
-is limited to the current buffer.  Optional arg START is buffer position
-where the search starts.  If it is nil, start search at beginning of buffer.
-If DISPLAY is non-nil, display the buffer containing KEY.
-Otherwise, use `set-buffer'.
-When called interactively, START is nil, DISPLAY is t.
-Also, GLOBAL is t if the current mode is not `bibtex-mode'
-or `bibtex-search-entry-globally' is non-nil.
-A prefix arg negates the value of `bibtex-search-entry-globally'.
-
-\(fn KEY &optional GLOBAL START DISPLAY)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"bibtex" '("bibtex-")))
-
-;;;***
-
-;;;### (autoloads nil "bibtex-style" "textmodes/bibtex-style.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from textmodes/bibtex-style.el
-
-(autoload 'bibtex-style-mode "bibtex-style" "\
-Major mode for editing BibTeX style files.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"bibtex-style" '("bibtex-style-")))
-
-;;;***
-
-;;;### (autoloads nil "bindat" "emacs-lisp/bindat.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/bindat.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"bindat" '("bindat-")))
-
-;;;***
-
-;;;### (autoloads nil "binhex" "mail/binhex.el" (0 0 0 0))
-;;; Generated autoloads from mail/binhex.el
-
-(defconst binhex-begin-line 
"^:...............................................................$" "\
-Regular expression matching the start of a BinHex encoded region.")
-
-(autoload 'binhex-decode-region-internal "binhex" "\
-Binhex decode region between START and END without using an external program.
-If HEADER-ONLY is non-nil only decode header and return filename.
-
-\(fn START END &optional HEADER-ONLY)" t nil)
-
-(autoload 'binhex-decode-region-external "binhex" "\
-Binhex decode region between START and END using external decoder.
-
-\(fn START END)" t nil)
-
-(autoload 'binhex-decode-region "binhex" "\
-Binhex decode region between START and END.
-
-\(fn START END)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"binhex" '("binhex-")))
-
-;;;***
-
-;;;### (autoloads nil "blackbox" "play/blackbox.el" (0 0 0 0))
-;;; Generated autoloads from play/blackbox.el
-
-(autoload 'blackbox "blackbox" "\
-Play blackbox.
-Optional prefix argument is the number of balls; the default is 4.
-
-What is blackbox?
-
-Blackbox is a game of hide and seek played on an 8 by 8 grid (the
-Blackbox).  Your opponent (Emacs, in this case) has hidden several
-balls (usually 4) within this box.  By shooting rays into the box and
-observing where they emerge it is possible to deduce the positions of
-the hidden balls.  The fewer rays you use to find the balls, the lower
-your score.
-
-Overview of play:
-
-\\<blackbox-mode-map>To play blackbox, type \\[blackbox].  An optional prefix 
argument
-specifies the number of balls to be hidden in the box; the default is
-four.
-
-The cursor can be moved around the box with the standard cursor
-movement keys.
-
-To shoot a ray, move the cursor to the edge of the box and press SPC.
-The result will be determined and the playfield updated.
-
-You may place or remove balls in the box by moving the cursor into the
-box and pressing \\[bb-romp].
-
-When you think the configuration of balls you have placed is correct,
-press \\[bb-done].  You will be informed whether you are correct or
-not, and be given your score.  Your score is the number of letters and
-numbers around the outside of the box plus five for each incorrectly
-placed ball.  If you placed any balls incorrectly, they will be
-indicated with `x', and their actual positions indicated with `o'.
-
-Details:
-
-There are three possible outcomes for each ray you send into the box:
-
-       Detour: the ray is deflected and emerges somewhere other than
-               where you sent it in.  On the playfield, detours are
-               denoted by matching pairs of numbers -- one where the
-               ray went in, and the other where it came out.
-
-       Reflection: the ray is reflected and emerges in the same place
-               it was sent in.  On the playfield, reflections are
-               denoted by the letter `R'.
-
-       Hit:    the ray strikes a ball directly and is absorbed.  It does
-               not emerge from the box.  On the playfield, hits are
-               denoted by the letter `H'.
-
-The rules for how balls deflect rays are simple and are best shown by
-example.
-
-As a ray approaches a ball it is deflected ninety degrees.  Rays can
-be deflected multiple times.  In the diagrams below, the dashes
-represent empty box locations and the letter `O' represents a ball.
-The entrance and exit points of each ray are marked with numbers as
-described under \"Detour\" above.  Note that the entrance and exit
-points are always interchangeable.  `*' denotes the path taken by the
-ray.
-
-Note carefully the relative positions of the ball and the ninety
-degree deflection it causes.
-
-    1
-  - * - - - - - -         - - - - - - - -         - - - - - - - -
-  - * - - - - - -         - - - - - - - -         - - - - - - - -
-1 * * - - - - - -         - - - - - - - -         - O - - - - O -
-  - - O - - - - -         - - O - - - - -         - - * * * * - -
-  - - - - - - - -         - - - * * * * * 2     3 * * * - - * - -
-  - - - - - - - -         - - - * - - - -         - - - O - * - -
-  - - - - - - - -         - - - * - - - -         - - - - * * - -
-  - - - - - - - -         - - - * - - - -         - - - - * - O -
-                                2                         3
-
-As mentioned above, a reflection occurs when a ray emerges from the same point
-it was sent in.  This can happen in several ways:
-
-
-  - - - - - - - -         - - - - - - - -          - - - - - - - -
-  - - - - O - - -         - - O - O - - -          - - - - - - - -
-R * * * * - - - -         - - - * - - - -          O - - - - - - -
-  - - - - O - - -         - - - * - - - -        R - - - - - - - -
-  - - - - - - - -         - - - * - - - -          - - - - - - - -
-  - - - - - - - -         - - - * - - - -          - - - - - - - -
-  - - - - - - - -       R * * * * - - - -          - - - - - - - -
-  - - - - - - - -         - - - - O - - -          - - - - - - - -
-
-In the first example, the ray is deflected downwards by the upper
-ball, then left by the lower ball, and finally retraces its path to
-its point of origin.  The second example is similar.  The third
-example is a bit anomalous but can be rationalized by realizing the
-ray never gets a chance to get into the box.  Alternatively, the ray
-can be thought of as being deflected downwards and immediately
-emerging from the box.
-
-A hit occurs when a ray runs straight into a ball:
-
-  - - - - - - - -         - - - - - - - -          - - - - - - - -
-  - - - - - - - -         - - - - - - - -          - - - - O - - -
-  - - - - - - - -         - - - - O - - -        H * * * * - - - -
-  - - - - - - - -       H * * * * O - - -          - - - * - - - -
-  - - - - - - - -         - - - - O - - -          - - - O - - - -
-H * * * O - - - -         - - - - - - - -          - - - - - - - -
-  - - - - - - - -         - - - - - - - -          - - - - - - - -
-  - - - - - - - -         - - - - - - - -          - - - - - - - -
-
-Be sure to compare the second example of a hit with the first example of
-a reflection.
-
-\(fn NUM)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"blackbox" '("blackbox-" "bb-")))
-
-;;;***
-
-;;;### (autoloads nil "bookmark" "bookmark.el" (0 0 0 0))
-;;; Generated autoloads from bookmark.el
- (define-key ctl-x-r-map "b" 'bookmark-jump)
- (define-key ctl-x-r-map "m" 'bookmark-set)
- (define-key ctl-x-r-map "M" 'bookmark-set-no-overwrite)
- (define-key ctl-x-r-map "l" 'bookmark-bmenu-list)
-
-(defvar bookmark-map (let ((map (make-sparse-keymap))) (define-key map "x" 
'bookmark-set) (define-key map "m" 'bookmark-set) (define-key map "M" 
'bookmark-set-no-overwrite) (define-key map "j" 'bookmark-jump) (define-key map 
"g" 'bookmark-jump) (define-key map "o" 'bookmark-jump-other-window) 
(define-key map "i" 'bookmark-insert) (define-key map "e" 'edit-bookmarks) 
(define-key map "f" 'bookmark-insert-location) (define-key map "r" 
'bookmark-rename) (define-key map "d" 'bookmark-delete)  [...]
-Keymap containing bindings to bookmark functions.
-It is not bound to any key by default: to bind it
-so that you have a bookmark prefix, just use `global-set-key' and bind a
-key of your choice to `bookmark-map'.  All interactive bookmark
-functions have a binding in this keymap.")
- (fset 'bookmark-map bookmark-map)
-
-(autoload 'bookmark-set "bookmark" "\
-Set a bookmark named NAME at the current location.
-If NAME is nil, then prompt the user.
-
-With a prefix arg (non-nil NO-OVERWRITE), do not overwrite any
-existing bookmark that has the same name as NAME, but instead push the
-new bookmark onto the bookmark alist.  The most recently set bookmark
-with name NAME is thus the one in effect at any given time, but the
-others are still there, should the user decide to delete the most
-recent one.
-
-To yank words from the text of the buffer and use them as part of the
-bookmark name, type C-w while setting a bookmark.  Successive C-w's
-yank successive words.
-
-Typing C-u inserts (at the bookmark name prompt) the name of the last
-bookmark used in the document where the new bookmark is being set;
-this helps you use a single bookmark name to track progress through a
-large document.  If there is no prior bookmark for this document, then
-C-u inserts an appropriate name based on the buffer or file.
-
-Use \\[bookmark-delete] to remove bookmarks (you give it a name and
-it removes only the first instance of a bookmark with that name from
-the list of bookmarks.)
-
-\(fn &optional NAME NO-OVERWRITE)" t nil)
-
-(autoload 'bookmark-set-no-overwrite "bookmark" "\
-Set a bookmark named NAME at the current location.
-If NAME is nil, then prompt the user.
-
-If a bookmark named NAME already exists and prefix argument
-PUSH-BOOKMARK is non-nil, then push the new bookmark onto the
-bookmark alist.  Pushing it means that among bookmarks named
-NAME, this one becomes the one in effect, but the others are
-still there, in order, and become effective again if the user
-ever deletes the most recent one.
-
-Otherwise, if a bookmark named NAME already exists but PUSH-BOOKMARK
-is nil, raise an error.
-
-To yank words from the text of the buffer and use them as part of the
-bookmark name, type C-w while setting a bookmark.  Successive C-w's
-yank successive words.
-
-Typing C-u inserts (at the bookmark name prompt) the name of the last
-bookmark used in the document where the new bookmark is being set;
-this helps you use a single bookmark name to track progress through a
-large document.  If there is no prior bookmark for this document, then
-C-u inserts an appropriate name based on the buffer or file.
-
-Use \\[bookmark-delete] to remove bookmarks (you give it a name and
-it removes only the first instance of a bookmark with that name from
-the list of bookmarks.)
-
-\(fn &optional NAME PUSH-BOOKMARK)" t nil)
-
-(autoload 'bookmark-jump "bookmark" "\
-Jump to bookmark BOOKMARK (a point in some file).
-You may have a problem using this function if the value of variable
-`bookmark-alist' is nil.  If that happens, you need to load in some
-bookmarks.  See help on function `bookmark-load' for more about
-this.
-
-If the file pointed to by BOOKMARK no longer exists, you will be asked
-if you wish to give the bookmark a new location, and `bookmark-jump'
-will then jump to the new location, as well as recording it in place
-of the old one in the permanent bookmark record.
-
-BOOKMARK is usually a bookmark name (a string).  It can also be a
-bookmark record, but this is usually only done by programmatic callers.
-
-If DISPLAY-FUNC is non-nil, it is a function to invoke to display the
-bookmark.  It defaults to `switch-to-buffer'.  A typical value for
-DISPLAY-FUNC would be `switch-to-buffer-other-window'.
-
-\(fn BOOKMARK &optional DISPLAY-FUNC)" t nil)
-
-(autoload 'bookmark-jump-other-window "bookmark" "\
-Jump to BOOKMARK in another window.  See `bookmark-jump' for more.
-
-\(fn BOOKMARK)" t nil)
-
-(autoload 'bookmark-relocate "bookmark" "\
-Relocate BOOKMARK-NAME to another file, reading file name with minibuffer.
-
-This makes an already existing bookmark point to that file, instead of
-the one it used to point at.  Useful when a file has been renamed
-after a bookmark was set in it.
-
-\(fn BOOKMARK-NAME)" t nil)
-
-(autoload 'bookmark-insert-location "bookmark" "\
-Insert the name of the file associated with BOOKMARK-NAME.
-
-Optional second arg NO-HISTORY means don't record this in the
-minibuffer history list `bookmark-history'.
-
-\(fn BOOKMARK-NAME &optional NO-HISTORY)" t nil)
-
-(defalias 'bookmark-locate 'bookmark-insert-location)
-
-(autoload 'bookmark-rename "bookmark" "\
-Change the name of OLD-NAME bookmark to NEW-NAME name.
-If called from keyboard, prompt for OLD-NAME and NEW-NAME.
-If called from menubar, select OLD-NAME from a menu and prompt for NEW-NAME.
-
-If called from Lisp, prompt for NEW-NAME if only OLD-NAME was passed
-as an argument.  If called with two strings, then no prompting is done.
-You must pass at least OLD-NAME when calling from Lisp.
-
-While you are entering the new name, consecutive C-w's insert
-consecutive words from the text of the buffer into the new bookmark
-name.
-
-\(fn OLD-NAME &optional NEW-NAME)" t nil)
-
-(autoload 'bookmark-insert "bookmark" "\
-Insert the text of the file pointed to by bookmark BOOKMARK-NAME.
-BOOKMARK-NAME is a bookmark name (a string), not a bookmark record.
-
-You may have a problem using this function if the value of variable
-`bookmark-alist' is nil.  If that happens, you need to load in some
-bookmarks.  See help on function `bookmark-load' for more about
-this.
-
-\(fn BOOKMARK-NAME)" t nil)
-
-(autoload 'bookmark-delete "bookmark" "\
-Delete BOOKMARK-NAME from the bookmark list.
-
-Removes only the first instance of a bookmark with that name.  If
-there are one or more other bookmarks with the same name, they will
-not be deleted.  Defaults to the \"current\" bookmark (that is, the
-one most recently used in this file, if any).
-Optional second arg BATCH means don't update the bookmark list buffer,
-probably because we were called from there.
-
-\(fn BOOKMARK-NAME &optional BATCH)" t nil)
-
-(autoload 'bookmark-write "bookmark" "\
-Write bookmarks to a file (reading the file name with the minibuffer).
-
-\(fn)" t nil)
-
-(function-put 'bookmark-write 'interactive-only 'bookmark-save)
-
-(autoload 'bookmark-save "bookmark" "\
-Save currently defined bookmarks.
-Saves by default in the file defined by the variable
-`bookmark-default-file'.  With a prefix arg, save it in file FILE
-\(second argument).
-
-If you are calling this from Lisp, the two arguments are PARG and
-FILE, and if you just want it to write to the default file, then
-pass no arguments.  Or pass in nil and FILE, and it will save in FILE
-instead.  If you pass in one argument, and it is non-nil, then the
-user will be interactively queried for a file to save in.
-
-When you want to load in the bookmarks from a file, use
-`bookmark-load', \\[bookmark-load].  That function will prompt you
-for a file, defaulting to the file defined by variable
-`bookmark-default-file'.
-
-\(fn &optional PARG FILE)" t nil)
-
-(autoload 'bookmark-load "bookmark" "\
-Load bookmarks from FILE (which must be in bookmark format).
-Appends loaded bookmarks to the front of the list of bookmarks.  If
-optional second argument OVERWRITE is non-nil, existing bookmarks are
-destroyed.  Optional third arg NO-MSG means don't display any messages
-while loading.
-
-If you load a file that doesn't contain a proper bookmark alist, you
-will corrupt Emacs's bookmark list.  Generally, you should only load
-in files that were created with the bookmark functions in the first
-place.  Your own personal bookmark file, specified by the variable
-`bookmark-default-file', is maintained automatically by Emacs; you
-shouldn't need to load it explicitly.
-
-If you load a file containing bookmarks with the same names as
-bookmarks already present in your Emacs, the new bookmarks will get
-unique numeric suffixes \"<2>\", \"<3>\", etc.
-
-\(fn FILE &optional OVERWRITE NO-MSG)" t nil)
-
-(autoload 'bookmark-bmenu-list "bookmark" "\
-Display a list of existing bookmarks.
-The list is displayed in a buffer named `*Bookmark List*'.
-The leftmost column displays a D if the bookmark is flagged for
-deletion, or > if it is flagged for displaying.
-
-\(fn)" t nil)
-
-(defalias 'list-bookmarks 'bookmark-bmenu-list)
-
-(defalias 'edit-bookmarks 'bookmark-bmenu-list)
-
-(autoload 'bookmark-bmenu-search "bookmark" "\
-Incremental search of bookmarks, hiding the non-matches as we go.
-
-\(fn)" t nil)
-
-(defvar menu-bar-bookmark-map (let ((map (make-sparse-keymap "Bookmark 
functions"))) (bindings--define-key map [load] '(menu-item "Load a Bookmark 
File..." bookmark-load :help "Load bookmarks from a bookmark file)")) 
(bindings--define-key map [write] '(menu-item "Save Bookmarks As..." 
bookmark-write :help "Write bookmarks to a file (reading the file name with the 
minibuffer)")) (bindings--define-key map [save] '(menu-item "Save Bookmarks" 
bookmark-save :help "Save currently defined bookm [...]
-
-(defalias 'menu-bar-bookmark-map menu-bar-bookmark-map)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"bookmark" '("bookmark" "with-buffer-modified-unmodified")))
-
-;;;***
-
-;;;### (autoloads nil "browse-url" "net/browse-url.el" (0 0 0 0))
-;;; Generated autoloads from net/browse-url.el
-
-(defvar browse-url-browser-function 'browse-url-default-browser "\
-Function to display the current buffer in a WWW browser.
-This is used by the `browse-url-at-point', `browse-url-at-mouse', and
-`browse-url-of-file' commands.
-
-If the value is not a function it should be a list of pairs
-\(REGEXP . FUNCTION).  In this case the function called will be the one
-associated with the first REGEXP which matches the current URL.  The
-function is passed the URL and any other args of `browse-url'.  The last
-regexp should probably be \".\" to specify a default browser.")
-
-(custom-autoload 'browse-url-browser-function "browse-url" t)
-
-(autoload 'browse-url-of-file "browse-url" "\
-Ask a WWW browser to display FILE.
-Display the current buffer's file if FILE is nil or if called
-interactively.  Turn the filename into a URL with function
-`browse-url-file-url'.  Pass the URL to a browser using the
-`browse-url' function then run `browse-url-of-file-hook'.
-
-\(fn &optional FILE)" t nil)
-
-(autoload 'browse-url-of-buffer "browse-url" "\
-Ask a WWW browser to display BUFFER.
-Display the current buffer if BUFFER is nil.  Display only the
-currently visible part of BUFFER (from a temporary file) if buffer is
-narrowed.
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'browse-url-of-dired-file "browse-url" "\
-In Dired, ask a WWW browser to display the file named on this line.
-
-\(fn)" t nil)
-
-(autoload 'browse-url-of-region "browse-url" "\
-Ask a WWW browser to display the current region.
-
-\(fn MIN MAX)" t nil)
-
-(autoload 'browse-url "browse-url" "\
-Ask a WWW browser to load URL.
-Prompt for a URL, defaulting to the URL at or before point.
-Invokes a suitable browser function which does the actual job.
-The variable `browse-url-browser-function' says which browser function to
-use.  If the URL is a mailto: URL, consult `browse-url-mailto-function'
-first, if that exists.
-
-The additional ARGS are passed to the browser function.  See the doc
-strings of the actual functions, starting with `browse-url-browser-function',
-for information about the significance of ARGS (most of the functions
-ignore it).
-If ARGS are omitted, the default is to pass `browse-url-new-window-flag'
-as ARGS.
-
-\(fn URL &rest ARGS)" t nil)
-
-(autoload 'browse-url-at-point "browse-url" "\
-Ask a WWW browser to load the URL at or before point.
-Variable `browse-url-browser-function' says which browser to use.
-Optional prefix argument ARG non-nil inverts the value of the option
-`browse-url-new-window-flag'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'browse-url-at-mouse "browse-url" "\
-Ask a WWW browser to load a URL clicked with the mouse.
-The URL is the one around or before the position of the mouse click
-but point is not changed.  Variable `browse-url-browser-function'
-says which browser to use.
-
-\(fn EVENT)" t nil)
-
-(autoload 'browse-url-xdg-open "browse-url" "\
-Pass the specified URL to the \"xdg-open\" command.
-xdg-open is a desktop utility that calls your preferred web browser.
-The optional argument IGNORED is not used.
-
-\(fn URL &optional IGNORED)" t nil)
-
-(autoload 'browse-url-netscape "browse-url" "\
-Ask the Netscape WWW browser to load URL.
-Default to the URL around or before point.  The strings in variable
-`browse-url-netscape-arguments' are also passed to Netscape.
-
-When called interactively, if variable `browse-url-new-window-flag' is
-non-nil, load the document in a new Netscape window, otherwise use a
-random existing one.  A non-nil interactive prefix argument reverses
-the effect of `browse-url-new-window-flag'.
-
-If `browse-url-netscape-new-window-is-tab' is non-nil, then
-whenever a document would otherwise be loaded in a new window, it
-is loaded in a new tab in an existing window instead.
-
-When called non-interactively, optional second argument NEW-WINDOW is
-used instead of `browse-url-new-window-flag'.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(make-obsolete 'browse-url-netscape 'nil '"25.1")
-
-(autoload 'browse-url-mozilla "browse-url" "\
-Ask the Mozilla WWW browser to load URL.
-Default to the URL around or before point.  The strings in variable
-`browse-url-mozilla-arguments' are also passed to Mozilla.
-
-When called interactively, if variable `browse-url-new-window-flag' is
-non-nil, load the document in a new Mozilla window, otherwise use a
-random existing one.  A non-nil interactive prefix argument reverses
-the effect of `browse-url-new-window-flag'.
-
-If `browse-url-mozilla-new-window-is-tab' is non-nil, then whenever a
-document would otherwise be loaded in a new window, it is loaded in a
-new tab in an existing window instead.
-
-When called non-interactively, optional second argument NEW-WINDOW is
-used instead of `browse-url-new-window-flag'.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(autoload 'browse-url-firefox "browse-url" "\
-Ask the Firefox WWW browser to load URL.
-Defaults to the URL around or before point.  Passes the strings
-in the variable `browse-url-firefox-arguments' to Firefox.
-
-Interactively, if the variable `browse-url-new-window-flag' is non-nil,
-loads the document in a new Firefox window.  A non-nil prefix argument
-reverses the effect of `browse-url-new-window-flag'.
-
-If `browse-url-firefox-new-window-is-tab' is non-nil, then
-whenever a document would otherwise be loaded in a new window, it
-is loaded in a new tab in an existing window instead.
-
-Non-interactively, this uses the optional second argument NEW-WINDOW
-instead of `browse-url-new-window-flag'.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(autoload 'browse-url-chromium "browse-url" "\
-Ask the Chromium WWW browser to load URL.
-Default to the URL around or before point.  The strings in
-variable `browse-url-chromium-arguments' are also passed to
-Chromium.
-The optional argument NEW-WINDOW is not used.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(autoload 'browse-url-galeon "browse-url" "\
-Ask the Galeon WWW browser to load URL.
-Default to the URL around or before point.  The strings in variable
-`browse-url-galeon-arguments' are also passed to Galeon.
-
-When called interactively, if variable `browse-url-new-window-flag' is
-non-nil, load the document in a new Galeon window, otherwise use a
-random existing one.  A non-nil interactive prefix argument reverses
-the effect of `browse-url-new-window-flag'.
-
-If `browse-url-galeon-new-window-is-tab' is non-nil, then whenever a
-document would otherwise be loaded in a new window, it is loaded in a
-new tab in an existing window instead.
-
-When called non-interactively, optional second argument NEW-WINDOW is
-used instead of `browse-url-new-window-flag'.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(make-obsolete 'browse-url-galeon 'nil '"25.1")
-
-(autoload 'browse-url-emacs "browse-url" "\
-Ask Emacs to load URL into a buffer and show it in another window.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(autoload 'browse-url-gnome-moz "browse-url" "\
-Ask Mozilla/Netscape to load URL via the GNOME program `gnome-moz-remote'.
-Default to the URL around or before point.  The strings in variable
-`browse-url-gnome-moz-arguments' are also passed.
-
-When called interactively, if variable `browse-url-new-window-flag' is
-non-nil, load the document in a new browser window, otherwise use an
-existing one.  A non-nil interactive prefix argument reverses the
-effect of `browse-url-new-window-flag'.
-
-When called non-interactively, optional second argument NEW-WINDOW is
-used instead of `browse-url-new-window-flag'.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(make-obsolete 'browse-url-gnome-moz 'nil '"25.1")
-
-(autoload 'browse-url-mosaic "browse-url" "\
-Ask the XMosaic WWW browser to load URL.
-
-Default to the URL around or before point.  The strings in variable
-`browse-url-mosaic-arguments' are also passed to Mosaic and the
-program is invoked according to the variable
-`browse-url-mosaic-program'.
-
-When called interactively, if variable `browse-url-new-window-flag' is
-non-nil, load the document in a new Mosaic window, otherwise use a
-random existing one.  A non-nil interactive prefix argument reverses
-the effect of `browse-url-new-window-flag'.
-
-When called non-interactively, optional second argument NEW-WINDOW is
-used instead of `browse-url-new-window-flag'.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(make-obsolete 'browse-url-mosaic 'nil '"25.1")
-
-(autoload 'browse-url-cci "browse-url" "\
-Ask the XMosaic WWW browser to load URL.
-Default to the URL around or before point.
-
-This function only works for XMosaic version 2.5 or later.  You must
-select `CCI' from XMosaic's File menu, set the CCI Port Address to the
-value of variable `browse-url-CCI-port', and enable `Accept requests'.
-
-When called interactively, if variable `browse-url-new-window-flag' is
-non-nil, load the document in a new browser window, otherwise use a
-random existing one.  A non-nil interactive prefix argument reverses
-the effect of `browse-url-new-window-flag'.
-
-When called non-interactively, optional second argument NEW-WINDOW is
-used instead of `browse-url-new-window-flag'.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(make-obsolete 'browse-url-cci 'nil '"25.1")
-
-(autoload 'browse-url-conkeror "browse-url" "\
-Ask the Conkeror WWW browser to load URL.
-Default to the URL around or before point.  Also pass the strings
-in the variable `browse-url-conkeror-arguments' to Conkeror.
-
-When called interactively, if variable
-`browse-url-new-window-flag' is non-nil, load the document in a
-new Conkeror window, otherwise use a random existing one.  A
-non-nil interactive prefix argument reverses the effect of
-`browse-url-new-window-flag'.
-
-If variable `browse-url-conkeror-new-window-is-buffer' is
-non-nil, then whenever a document would otherwise be loaded in a
-new window, load it in a new buffer in an existing window instead.
-
-When called non-interactively, use optional second argument
-NEW-WINDOW instead of `browse-url-new-window-flag'.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(autoload 'browse-url-w3 "browse-url" "\
-Ask the w3 WWW browser to load URL.
-Default to the URL around or before point.
-
-When called interactively, if variable `browse-url-new-window-flag' is
-non-nil, load the document in a new window.  A non-nil interactive
-prefix argument reverses the effect of `browse-url-new-window-flag'.
-
-When called non-interactively, optional second argument NEW-WINDOW is
-used instead of `browse-url-new-window-flag'.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(autoload 'browse-url-w3-gnudoit "browse-url" "\
-Ask another Emacs running gnuserv to load the URL using the W3 browser.
-The `browse-url-gnudoit-program' program is used with options given by
-`browse-url-gnudoit-args'.  Default to the URL around or before point.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(make-obsolete 'browse-url-w3-gnudoit 'nil '"25.1")
-
-(autoload 'browse-url-text-xterm "browse-url" "\
-Ask a text browser to load URL.
-URL defaults to the URL around or before point.
-This runs the text browser specified by `browse-url-text-browser'.
-in an Xterm window using the Xterm program named by `browse-url-xterm-program'
-with possible additional arguments `browse-url-xterm-args'.
-The optional argument NEW-WINDOW is not used.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(autoload 'browse-url-text-emacs "browse-url" "\
-Ask a text browser to load URL.
-URL defaults to the URL around or before point.
-This runs the text browser specified by `browse-url-text-browser'.
-With a prefix argument, it runs a new browser process in a new buffer.
-
-When called interactively, if variable `browse-url-new-window-flag' is
-non-nil, load the document in a new browser process in a new term window,
-otherwise use any existing one.  A non-nil interactive prefix argument
-reverses the effect of `browse-url-new-window-flag'.
-
-When called non-interactively, optional second argument NEW-WINDOW is
-used instead of `browse-url-new-window-flag'.
-
-\(fn URL &optional NEW-BUFFER)" t nil)
-
-(autoload 'browse-url-mail "browse-url" "\
-Open a new mail message buffer within Emacs for the RFC 2368 URL.
-Default to using the mailto: URL around or before point as the
-recipient's address.  Supplying a non-nil interactive prefix argument
-will cause the mail to be composed in another window rather than the
-current one.
-
-When called interactively, if variable `browse-url-new-window-flag' is
-non-nil use `compose-mail-other-window', otherwise `compose-mail'.  A
-non-nil interactive prefix argument reverses the effect of
-`browse-url-new-window-flag'.
-
-When called non-interactively, optional second argument NEW-WINDOW is
-used instead of `browse-url-new-window-flag'.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(autoload 'browse-url-generic "browse-url" "\
-Ask the WWW browser defined by `browse-url-generic-program' to load URL.
-Default to the URL around or before point.  A fresh copy of the
-browser is started up in a new process with possible additional arguments
-`browse-url-generic-args'.  This is appropriate for browsers which
-don't offer a form of remote control.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(autoload 'browse-url-kde "browse-url" "\
-Ask the KDE WWW browser to load URL.
-Default to the URL around or before point.
-The optional argument NEW-WINDOW is not used.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(autoload 'browse-url-elinks "browse-url" "\
-Ask the Elinks WWW browser to load URL.
-Default to the URL around the point.
-
-The document is loaded in a new tab of a running Elinks or, if
-none yet running, a newly started instance.
-
-The Elinks command will be prepended by the program+arguments
-from `browse-url-elinks-wrapper'.
-
-\(fn URL &optional NEW-WINDOW)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"browse-url" '("browse-url-")))
-
-;;;***
-
-;;;### (autoloads nil "bs" "bs.el" (0 0 0 0))
-;;; Generated autoloads from bs.el
-(push (purecopy '(bs 1 17)) package--builtin-versions)
-
-(autoload 'bs-cycle-next "bs" "\
-Select next buffer defined by buffer cycling.
-The buffers taking part in buffer cycling are defined
-by buffer configuration `bs-cycle-configuration-name'.
-
-\(fn)" t nil)
-
-(autoload 'bs-cycle-previous "bs" "\
-Select previous buffer defined by buffer cycling.
-The buffers taking part in buffer cycling are defined
-by buffer configuration `bs-cycle-configuration-name'.
-
-\(fn)" t nil)
-
-(autoload 'bs-customize "bs" "\
-Customization of group bs for Buffer Selection Menu.
-
-\(fn)" t nil)
-
-(autoload 'bs-show "bs" "\
-Make a menu of buffers so you can manipulate buffers or the buffer list.
-\\<bs-mode-map>
-There are many key commands similar to `Buffer-menu-mode' for
-manipulating the buffer list and the buffers themselves.
-User can move with [up] or [down], select a buffer
-by \\[bs-select] or [SPC]
-
-Type \\[bs-kill] to leave Buffer Selection Menu without a selection.
-Type \\[bs-help] after invocation to get help on commands available.
-With prefix argument ARG show a different buffer list.  Function
-`bs--configuration-name-for-prefix-arg' determine accordingly
-name of buffer configuration.
-
-\(fn ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "bs" 
'("bs-")))
-
-;;;***
-
-;;;### (autoloads nil "bubbles" "play/bubbles.el" (0 0 0 0))
-;;; Generated autoloads from play/bubbles.el
-
-(autoload 'bubbles "bubbles" "\
-Play Bubbles game.
-\\<bubbles-mode-map>
-The goal is to remove all bubbles with as few moves as possible.
-\\[bubbles-plop] on a bubble removes that bubble and all
-connected bubbles of the same color.  Unsupported bubbles fall
-down, and columns that do not contain any bubbles suck the
-columns on its right towards the left.
-
-\\[bubbles-set-game-easy] sets the difficulty to easy.
-\\[bubbles-set-game-medium] sets the difficulty to medium.
-\\[bubbles-set-game-difficult] sets the difficulty to difficult.
-\\[bubbles-set-game-hard] sets the difficulty to hard.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"bubbles" '("bubbles-")))
-
-;;;***
-
-;;;### (autoloads nil "bug-reference" "progmodes/bug-reference.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from progmodes/bug-reference.el
-
-(put 'bug-reference-url-format 'safe-local-variable (lambda (s) (or (stringp 
s) (and (symbolp s) (get s 'bug-reference-url-format)))))
-
-(autoload 'bug-reference-mode "bug-reference" "\
-Toggle hyperlinking bug references in the buffer (Bug Reference mode).
-With a prefix argument ARG, enable Bug Reference mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'bug-reference-prog-mode "bug-reference" "\
-Like `bug-reference-mode', but only buttonize in comments and strings.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"bug-reference" '("bug-reference-")))
-
-;;;***
-
-;;;### (autoloads nil "byte-opt" "emacs-lisp/byte-opt.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from emacs-lisp/byte-opt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"byte-opt" '("byte-" "disassemble-offset")))
-
-;;;***
-
-;;;### (autoloads nil "bytecomp" "emacs-lisp/bytecomp.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from emacs-lisp/bytecomp.el
-(put 'byte-compile-dynamic 'safe-local-variable 'booleanp)
-(put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp)
-(put 'byte-compile-dynamic-docstrings 'safe-local-variable 'booleanp)
-
-(put 'byte-compile-warnings 'safe-local-variable (lambda (v) (or (symbolp v) 
(null (delq nil (mapcar (lambda (x) (not (symbolp x))) v))))))
-
-(autoload 'byte-compile-disable-warning "bytecomp" "\
-Change `byte-compile-warnings' to disable WARNING.
-If `byte-compile-warnings' is t, set it to `(not WARNING)'.
-Otherwise, if the first element is `not', add WARNING, else remove it.
-Normally you should let-bind `byte-compile-warnings' before calling this,
-else the global value will be modified.
-
-\(fn WARNING)" nil nil)
-
-(autoload 'byte-compile-enable-warning "bytecomp" "\
-Change `byte-compile-warnings' to enable WARNING.
-If `byte-compile-warnings' is t, do nothing.  Otherwise, if the
-first element is `not', remove WARNING, else add it.
-Normally you should let-bind `byte-compile-warnings' before calling this,
-else the global value will be modified.
-
-\(fn WARNING)" nil nil)
-
-(autoload 'byte-force-recompile "bytecomp" "\
-Recompile every `.el' file in DIRECTORY that already has a `.elc' file.
-Files in subdirectories of DIRECTORY are processed also.
-
-\(fn DIRECTORY)" t nil)
-
-(autoload 'byte-recompile-directory "bytecomp" "\
-Recompile every `.el' file in DIRECTORY that needs recompilation.
-This happens when a `.elc' file exists but is older than the `.el' file.
-Files in subdirectories of DIRECTORY are processed also.
-
-If the `.elc' file does not exist, normally this function *does not*
-compile the corresponding `.el' file.  However, if the prefix argument
-ARG is 0, that means do compile all those files.  A nonzero
-ARG means ask the user, for each such `.el' file, whether to
-compile it.  A nonzero ARG also means ask about each subdirectory
-before scanning it.
-
-If the third argument FORCE is non-nil, recompile every `.el' file
-that already has a `.elc' file.
-
-\(fn DIRECTORY &optional ARG FORCE)" t nil)
-(put 'no-byte-compile 'safe-local-variable 'booleanp)
-
-(autoload 'byte-compile-file "bytecomp" "\
-Compile a file of Lisp code named FILENAME into a file of byte code.
-The output file's name is generated by passing FILENAME to the
-function `byte-compile-dest-file' (which see).
-With prefix arg (noninteractively: 2nd arg), LOAD the file after compiling.
-The value is non-nil if there were no errors, nil if errors.
-
-\(fn FILENAME &optional LOAD)" t nil)
-
-(autoload 'compile-defun "bytecomp" "\
-Compile and evaluate the current top-level form.
-Print the result in the echo area.
-With argument ARG, insert value in current buffer after the form.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'byte-compile "bytecomp" "\
-If FORM is a symbol, byte-compile its function definition.
-If FORM is a lambda or a macro, byte-compile it as a function.
-
-\(fn FORM)" nil nil)
-
-(autoload 'display-call-tree "bytecomp" "\
-Display a call graph of a specified file.
-This lists which functions have been called, what functions called
-them, and what functions they call.  The list includes all functions
-whose definitions have been compiled in this Emacs session, as well as
-all functions called by those functions.
-
-The call graph does not include macros, inline functions, or
-primitives that the byte-code interpreter knows about directly
-\(`eq', `cons', etc.).
-
-The call tree also lists those functions which are not known to be called
-\(that is, to which no calls have been compiled), and which cannot be
-invoked interactively.
-
-\(fn &optional FILENAME)" t nil)
-
-(autoload 'batch-byte-compile-if-not-done "bytecomp" "\
-Like `byte-compile-file' but doesn't recompile if already up to date.
-Use this from the command line, with `-batch';
-it won't work in an interactive Emacs.
-
-\(fn)" nil nil)
-
-(autoload 'batch-byte-compile "bytecomp" "\
-Run `byte-compile-file' on the files remaining on the command line.
-Use this from the command line, with `-batch';
-it won't work in an interactive Emacs.
-Each file is processed even if an error occurred previously.
-For example, invoke \"emacs -batch -f batch-byte-compile $emacs/ ~/*.el\".
-If NOFORCE is non-nil, don't recompile a file that seems to be
-already up-to-date.
-
-\(fn &optional NOFORCE)" nil nil)
-
-(autoload 'batch-byte-recompile-directory "bytecomp" "\
-Run `byte-recompile-directory' on the dirs remaining on the command line.
-Must be used only with `-batch', and kills Emacs on completion.
-For example, invoke `emacs -batch -f batch-byte-recompile-directory .'.
-
-Optional argument ARG is passed as second argument ARG to
-`byte-recompile-directory'; see there for its possible values
-and corresponding effects.
-
-\(fn &optional ARG)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"bytecomp" '("batch-byte-compile-file" "byte-" "no-byte-compile" 
"displaying-byte-compile-warnings" "emacs-lisp-file-regexp")))
-
-;;;***
-
-;;;### (autoloads nil "cal-bahai" "calendar/cal-bahai.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from calendar/cal-bahai.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-bahai" '("diary-bahai-" "calendar-bahai-" "holiday-bahai")))
-
-;;;***
-
-;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from calendar/cal-china.el
-
-(put 'calendar-chinese-time-zone 'risky-local-variable t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-china" '("diary-chinese-" "calendar-chinese-" "holiday-chinese")))
-
-;;;***
-
-;;;### (autoloads nil "cal-coptic" "calendar/cal-coptic.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from calendar/cal-coptic.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-coptic" '("diary-" "calendar-")))
-
-;;;***
-
-;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (0 0 0 0))
-;;; Generated autoloads from calendar/cal-dst.el
-
-(put 'calendar-daylight-savings-starts 'risky-local-variable t)
-
-(put 'calendar-daylight-savings-ends 'risky-local-variable t)
-
-(put 'calendar-current-time-zone-cache 'risky-local-variable t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-dst" '("dst-" "calendar-")))
-
-;;;***
-
-;;;### (autoloads nil "cal-french" "calendar/cal-french.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from calendar/cal-french.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-french" '("diary-french-date" "calendar-french-")))
-
-;;;***
-
-;;;### (autoloads nil "cal-hebrew" "calendar/cal-hebrew.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from calendar/cal-hebrew.el
-
-(autoload 'calendar-hebrew-list-yahrzeits "cal-hebrew" "\
-List Yahrzeit dates for *Gregorian* DEATH-DATE from START-YEAR to END-YEAR.
-When called interactively from the calendar window, the date of death is taken
-from the cursor position.
-
-\(fn DEATH-DATE START-YEAR END-YEAR)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-hebrew" '("diary-hebrew-" "calendar-hebrew-" "holiday-hebrew")))
-
-;;;***
-
-;;;### (autoloads nil "cal-html" "calendar/cal-html.el" (0 0 0 0))
-;;; Generated autoloads from calendar/cal-html.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-html" '("cal-html-")))
-
-;;;***
-
-;;;### (autoloads nil "cal-islam" "calendar/cal-islam.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from calendar/cal-islam.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-islam" '("diary-islamic-" "calendar-islamic-" "holiday-islamic")))
-
-;;;***
-
-;;;### (autoloads nil "cal-iso" "calendar/cal-iso.el" (0 0 0 0))
-;;; Generated autoloads from calendar/cal-iso.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-iso" '("diary-iso-date" "calendar-iso-")))
-
-;;;***
-
-;;;### (autoloads nil "cal-julian" "calendar/cal-julian.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from calendar/cal-julian.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-julian" '("diary-" "calendar-" "holiday-julian")))
-
-;;;***
-
-;;;### (autoloads nil "cal-mayan" "calendar/cal-mayan.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from calendar/cal-mayan.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-mayan" '("diary-mayan-date" "calendar-mayan-")))
-
-;;;***
-
-;;;### (autoloads nil "cal-menu" "calendar/cal-menu.el" (0 0 0 0))
-;;; Generated autoloads from calendar/cal-menu.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-menu" '("cal")))
-
-;;;***
-
-;;;### (autoloads nil "cal-move" "calendar/cal-move.el" (0 0 0 0))
-;;; Generated autoloads from calendar/cal-move.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-move" '("calendar-")))
-
-;;;***
-
-;;;### (autoloads nil "cal-persia" "calendar/cal-persia.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from calendar/cal-persia.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-persia" '("diary-persian-date" "calendar-persian-")))
-
-;;;***
-
-;;;### (autoloads nil "cal-tex" "calendar/cal-tex.el" (0 0 0 0))
-;;; Generated autoloads from calendar/cal-tex.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-tex" '("cal-tex-")))
-
-;;;***
-
-;;;### (autoloads nil "cal-x" "calendar/cal-x.el" (0 0 0 0))
-;;; Generated autoloads from calendar/cal-x.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cal-x" '("calendar-" "diary-frame")))
-
-;;;***
-
-;;;### (autoloads nil "calc" "calc/calc.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc.el
- (define-key ctl-x-map "*" 'calc-dispatch)
-
-(autoload 'calc-dispatch "calc" "\
-Invoke the GNU Emacs Calculator.  See \\[calc-dispatch-help] for details.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'calc "calc" "\
-The Emacs Calculator.  Full documentation is listed under \"calc-mode\".
-
-\(fn &optional ARG FULL-DISPLAY INTERACTIVE)" t nil)
-
-(autoload 'full-calc "calc" "\
-Invoke the Calculator and give it a full-sized window.
-
-\(fn &optional INTERACTIVE)" t nil)
-
-(autoload 'quick-calc "calc" "\
-Do a quick calculation in the minibuffer without invoking full Calculator.
-With prefix argument INSERT, insert the result in the current
-buffer.  Otherwise, the result is copied into the kill ring.
-
-\(fn &optional INSERT)" t nil)
-
-(autoload 'calc-eval "calc" "\
-Do a quick calculation and return the result as a string.
-Return value will either be the formatted result in string form,
-or a list containing a character position and an error message in string form.
-
-\(fn STR &optional SEPARATOR &rest ARGS)" nil nil)
-
-(autoload 'calc-keypad "calc" "\
-Invoke the Calculator in \"visual keypad\" mode.
-This is most useful in the X window system.
-In this mode, click on the Calc \"buttons\" using the left mouse button.
-Or, position the cursor manually and do M-x calc-keypad-press.
-
-\(fn &optional INTERACTIVE)" t nil)
-
-(autoload 'full-calc-keypad "calc" "\
-Invoke the Calculator in full-screen \"visual keypad\" mode.
-See calc-keypad for details.
-
-\(fn &optional INTERACTIVE)" t nil)
-
-(autoload 'calc-grab-region "calc" "\
-Parse the region as a vector of numbers and push it on the Calculator stack.
-
-\(fn TOP BOT ARG)" t nil)
-
-(autoload 'calc-grab-rectangle "calc" "\
-Parse a rectangle as a matrix of numbers and push it on the Calculator stack.
-
-\(fn TOP BOT ARG)" t nil)
-
-(autoload 'calc-embedded "calc" "\
-Start Calc Embedded mode on the formula surrounding point.
-
-\(fn ARG &optional END OBEG OEND)" t nil)
-
-(autoload 'calc-embedded-activate "calc" "\
-Scan the current editing buffer for all embedded := and => formulas.
-Also looks for the equivalent TeX words, \\gets and \\evalto.
-
-\(fn &optional ARG CBUF)" t nil)
-
-(autoload 'defmath "calc" "\
-Define Calc function.
-
-Like `defun' except that code in the body of the definition can
-make use of the full range of Calc data types and the usual
-arithmetic operations are converted to their Calc equivalents.
-
-The prefix `calcFunc-' is added to the specified name to get the
-actual Lisp function name.
-
-See Info node `(calc)Defining Functions'.
-
-\(fn FUNC ARGS &rest BODY)" nil t)
-
-(function-put 'defmath 'doc-string-elt '3)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc" '("math-" "calc" "var-" "inexact-result" "defcalcmodevar")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "calc-aent" 
"calc/calc-aent.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from calc/calc-aent.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-aent" '("math-" "calc")))
-
-;;;***
-
-;;;### (autoloads nil "calc-alg" "calc/calc-alg.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-alg.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-alg" '("math-" "calc")))
-
-;;;***
-
-;;;### (autoloads nil "calc-arith" "calc/calc-arith.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-arith.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-arith" '("math-" "calc")))
-
-;;;***
-
-;;;### (autoloads nil "calc-bin" "calc/calc-bin.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-bin.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-bin" '("math-" "calc")))
-
-;;;***
-
-;;;### (autoloads nil "calc-comb" "calc/calc-comb.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-comb.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-comb" '("math-" "calc")))
-
-;;;***
-
-;;;### (autoloads nil "calc-cplx" "calc/calc-cplx.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-cplx.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-cplx" '("calc" "math-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "calc-embed" 
"calc/calc-embed.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from calc/calc-embed.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-embed" '("calc-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-ext" "calc/calc-ext.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-ext.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-ext" '("calc" "math-" "var-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-fin" "calc/calc-fin.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-fin.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-fin" '("calc" "math-c")))
-
-;;;***
-
-;;;### (autoloads nil "calc-forms" "calc/calc-forms.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-forms.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-forms" '("math-" "calc" "var-TimeZone")))
-
-;;;***
-
-;;;### (autoloads nil "calc-frac" "calc/calc-frac.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-frac.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-frac" '("calc" "math-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-funcs" "calc/calc-funcs.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-funcs.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-funcs" '("calc" "math-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-graph" "calc/calc-graph.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-graph.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-graph" '("calc-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-help" "calc/calc-help.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-help.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-help" '("calc-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-incom" "calc/calc-incom.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-incom.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-incom" '("calc-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-keypd" "calc/calc-keypd.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-keypd.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-keypd" '("calc-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-lang" "calc/calc-lang.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-lang.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-lang" '("math-" "calc-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-macs" "calc/calc-macs.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-macs.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-macs" '("Math-" "calc-" "math-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-map" "calc/calc-map.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-map.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-map" '("math-" "calc")))
-
-;;;***
-
-;;;### (autoloads nil "calc-math" "calc/calc-math.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-math.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-math" '("calc" "math-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-menu" "calc/calc-menu.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-menu.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-menu" '("calc-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "calc-misc" 
"calc/calc-misc.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from calc/calc-misc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-misc" '("math-iipow")))
-
-;;;***
-
-;;;### (autoloads nil "calc-mode" "calc/calc-mode.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-mode.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-mode" '("calc-" "math-get-modes-vec")))
-
-;;;***
-
-;;;### (autoloads nil "calc-mtx" "calc/calc-mtx.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-mtx.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-mtx" '("calc" "math-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-nlfit" "calc/calc-nlfit.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-nlfit.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-nlfit" '("calc-fit-" "math-nlfit-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-poly" "calc/calc-poly.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-poly.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-poly" '("calcFunc-" "math-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-prog" "calc/calc-prog.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-prog.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-prog" '("math-" "calc" "var-q")))
-
-;;;***
-
-;;;### (autoloads nil "calc-rewr" "calc/calc-rewr.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-rewr.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-rewr" '("math-" "calc")))
-
-;;;***
-
-;;;### (autoloads nil "calc-rules" "calc/calc-rules.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-rules.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-rules" '("calc-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-sel" "calc/calc-sel.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-sel.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-sel" '("calc-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-stat" "calc/calc-stat.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-stat.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-stat" '("math-" "calc")))
-
-;;;***
-
-;;;### (autoloads nil "calc-store" "calc/calc-store.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-store.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-store" '("calc")))
-
-;;;***
-
-;;;### (autoloads nil "calc-stuff" "calc/calc-stuff.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-stuff.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-stuff" '("math-" "calc")))
-
-;;;***
-
-;;;### (autoloads nil "calc-trail" "calc/calc-trail.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-trail.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-trail" '("calc-trail-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-undo" "calc/calc-undo.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-undo.el
-
-(autoload 'calc-undo "calc-undo" "\
-
-
-\(fn N)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-undo" '("calc-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-units" "calc/calc-units.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-units.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-units" '("calc" "math-")))
-
-;;;***
-
-;;;### (autoloads nil "calc-vec" "calc/calc-vec.el" (0 0 0 0))
-;;; Generated autoloads from calc/calc-vec.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-vec" '("math-" "calc")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "calc-yank" 
"calc/calc-yank.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from calc/calc-yank.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calc-yank" '("calc-" "math-number-regexp")))
-
-;;;***
-
-;;;### (autoloads nil "calcalg2" "calc/calcalg2.el" (0 0 0 0))
-;;; Generated autoloads from calc/calcalg2.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calcalg2" '("calc" "math-" "var-IntegLimit")))
-
-;;;***
-
-;;;### (autoloads nil "calcalg3" "calc/calcalg3.el" (0 0 0 0))
-;;; Generated autoloads from calc/calcalg3.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calcalg3" '("math-" "calc")))
-
-;;;***
-
-;;;### (autoloads nil "calccomp" "calc/calccomp.el" (0 0 0 0))
-;;; Generated autoloads from calc/calccomp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calccomp" '("math-" "calcFunc-c")))
-
-;;;***
-
-;;;### (autoloads nil "calcsel2" "calc/calcsel2.el" (0 0 0 0))
-;;; Generated autoloads from calc/calcsel2.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calcsel2" '("calc-")))
-
-;;;***
-
-;;;### (autoloads nil "calculator" "calculator.el" (0 0 0 0))
-;;; Generated autoloads from calculator.el
-
-(autoload 'calculator "calculator" "\
-Run the Emacs calculator.
-See the documentation for `calculator-mode' for more information.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calculator" '("calculator-")))
-
-;;;***
-
-;;;### (autoloads nil "calendar" "calendar/calendar.el" (0 0 0 0))
-;;; Generated autoloads from calendar/calendar.el
-
-(autoload 'calendar "calendar" "\
-Display a three-month Gregorian calendar.
-The three months appear side by side, with the current month in
-the middle surrounded by the previous and next months.  The
-cursor is put on today's date.  If optional prefix argument ARG
-is non-nil, prompts for the central month and year.
-
-Once in the calendar window, future or past months can be moved
-into view.  Arbitrary months can be displayed, or the calendar
-can be scrolled forward or backward.  The cursor can be moved
-forward or backward by one day, one week, one month, or one year.
-All of these commands take prefix arguments which, when negative,
-cause movement in the opposite direction.  For convenience, the
-digit keys and the minus sign are automatically prefixes.  Use
-\\[describe-mode] for details of the key bindings in the calendar
-window.
-
-Displays the calendar in a separate window, or optionally in a
-separate frame, depending on the value of `calendar-setup'.
-
-If `calendar-view-diary-initially-flag' is non-nil, also displays the
-diary entries for the current date (or however many days
-`diary-number-of-entries' specifies).  This variable can be
-overridden by `calendar-setup'.  As well as being displayed,
-diary entries can also be marked on the calendar (see
-`calendar-mark-diary-entries-flag').
-
-Runs the following hooks:
-
-`calendar-load-hook' - after loading calendar.el
-`calendar-today-visible-hook', `calendar-today-invisible-hook' - after
-   generating a calendar, if today's date is visible or not, respectively
-`calendar-initial-window-hook' - after first creating a calendar
-
-This function is suitable for execution in an init file.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"calendar" '("calendar-" "solar-sunrises-buffer" "lunar-phases-buffer" "diary-" 
"holiday-buffer")))
-
-;;;***
-
-;;;### (autoloads nil "canlock" "gnus/canlock.el" (0 0 0 0))
-;;; Generated autoloads from gnus/canlock.el
-
-(autoload 'canlock-insert-header "canlock" "\
-Insert a Cancel-Key and/or a Cancel-Lock header if possible.
-
-\(fn &optional ID-FOR-KEY ID-FOR-LOCK PASSWORD)" nil nil)
-
-(autoload 'canlock-verify "canlock" "\
-Verify Cancel-Lock or Cancel-Key in BUFFER.
-If BUFFER is nil, the current buffer is assumed.  Signal an error if
-it fails.
-
-\(fn &optional BUFFER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"canlock" '("canlock-")))
-
-;;;***
-
-;;;### (autoloads nil "cc-align" "progmodes/cc-align.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cc-align.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-align" '("c-")))
-
-;;;***
-
-;;;### (autoloads nil "cc-awk" "progmodes/cc-awk.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cc-awk.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-awk" '("c-awk-" "awk-")))
-
-;;;***
-
-;;;### (autoloads nil "cc-bytecomp" "progmodes/cc-bytecomp.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from progmodes/cc-bytecomp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-bytecomp" '("cc-")))
-
-;;;***
-
-;;;### (autoloads nil "cc-cmds" "progmodes/cc-cmds.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cc-cmds.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-cmds" '("c-")))
-
-;;;***
-
-;;;### (autoloads nil "cc-defs" "progmodes/cc-defs.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cc-defs.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-defs" '("cc-bytecomp-compiling-or-loading" "c-")))
-
-;;;***
-
-;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from progmodes/cc-engine.el
-
-(autoload 'c-guess-basic-syntax "cc-engine" "\
-Return the syntactic context of the current line.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-engine" '("c-")))
-
-;;;***
-
-;;;### (autoloads nil "cc-fonts" "progmodes/cc-fonts.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cc-fonts.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-fonts" '("autodoc-" "java" "gtkdoc-font-lock-" "c++-font-lock-keywords" 
"c-" "pike-font-lock-keywords" "idl-font-lock-keywords" 
"objc-font-lock-keywords")))
-
-;;;***
-
-;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cc-guess.el
-
-(defvar c-guess-guessed-offsets-alist nil "\
-Currently guessed offsets-alist.")
-
-(defvar c-guess-guessed-basic-offset nil "\
-Currently guessed basic-offset.")
-
-(autoload 'c-guess "cc-guess" "\
-Guess the style in the region up to `c-guess-region-max', and install it.
-
-The style is given a name based on the file's absolute file name.
-
-If given a prefix argument (or if the optional argument ACCUMULATE is
-non-nil) then the previous guess is extended, otherwise a new guess is
-made from scratch.
-
-\(fn &optional ACCUMULATE)" t nil)
-
-(autoload 'c-guess-no-install "cc-guess" "\
-Guess the style in the region up to `c-guess-region-max'; don't install it.
-
-If given a prefix argument (or if the optional argument ACCUMULATE is
-non-nil) then the previous guess is extended, otherwise a new guess is
-made from scratch.
-
-\(fn &optional ACCUMULATE)" t nil)
-
-(autoload 'c-guess-buffer "cc-guess" "\
-Guess the style on the whole current buffer, and install it.
-
-The style is given a name based on the file's absolute file name.
-
-If given a prefix argument (or if the optional argument ACCUMULATE is
-non-nil) then the previous guess is extended, otherwise a new guess is
-made from scratch.
-
-\(fn &optional ACCUMULATE)" t nil)
-
-(autoload 'c-guess-buffer-no-install "cc-guess" "\
-Guess the style on the whole current buffer; don't install it.
-
-If given a prefix argument (or if the optional argument ACCUMULATE is
-non-nil) then the previous guess is extended, otherwise a new guess is
-made from scratch.
-
-\(fn &optional ACCUMULATE)" t nil)
-
-(autoload 'c-guess-region "cc-guess" "\
-Guess the style on the region and install it.
-
-The style is given a name based on the file's absolute file name.
-
-If given a prefix argument (or if the optional argument ACCUMULATE is
-non-nil) then the previous guess is extended, otherwise a new guess is
-made from scratch.
-
-\(fn START END &optional ACCUMULATE)" t nil)
-
-(autoload 'c-guess-region-no-install "cc-guess" "\
-Guess the style on the region; don't install it.
-
-Every line of code in the region is examined and values for the following two
-variables are guessed:
-
-* `c-basic-offset', and
-* the indentation values of the various syntactic symbols in
-  `c-offsets-alist'.
-
-The guessed values are put into `c-guess-guessed-basic-offset' and
-`c-guess-guessed-offsets-alist'.
-
-Frequencies of use are taken into account when guessing, so minor
-inconsistencies in the indentation style shouldn't produce wrong guesses.
-
-If given a prefix argument (or if the optional argument ACCUMULATE is
-non-nil) then the previous examination is extended, otherwise a new
-guess is made from scratch.
-
-Note that the larger the region to guess in, the slower the guessing.
-So you can limit the region with `c-guess-region-max'.
-
-\(fn START END &optional ACCUMULATE)" t nil)
-
-(autoload 'c-guess-install "cc-guess" "\
-Install the latest guessed style into the current buffer.
-\(This guessed style is a combination of `c-guess-guessed-basic-offset',
-`c-guess-guessed-offsets-alist' and `c-offsets-alist'.)
-
-The style is entered into CC Mode's style system by
-`c-add-style'.  Its name is either STYLE-NAME, or a name based on
-the absolute file name of the file if STYLE-NAME is nil.
-
-\(fn &optional STYLE-NAME)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-guess" '("c-guess-")))
-
-;;;***
-
-;;;### (autoloads nil "cc-langs" "progmodes/cc-langs.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cc-langs.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-langs" '("c-")))
-
-;;;***
-
-;;;### (autoloads nil "cc-menus" "progmodes/cc-menus.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cc-menus.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-menus" '("cc-imenu-")))
-
-;;;***
-
-;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cc-mode.el
-
-(autoload 'c-initialize-cc-mode "cc-mode" "\
-Initialize CC Mode for use in the current buffer.
-If the optional NEW-STYLE-INIT is nil or left out then all necessary
-initialization to run CC Mode for the C language is done.  Otherwise
-only some basic setup is done, and a call to `c-init-language-vars' or
-`c-init-language-vars-for' is necessary too (which gives more
-control).  See \"cc-mode.el\" for more info.
-
-\(fn &optional NEW-STYLE-INIT)" nil nil)
- (add-to-list 'auto-mode-alist '("\\.\\(cc\\|hh\\)\\'" . c++-mode))
- (add-to-list 'auto-mode-alist '("\\.[ch]\\(pp\\|xx\\|\\+\\+\\)\\'" . 
c++-mode))
- (add-to-list 'auto-mode-alist '("\\.\\(CC?\\|HH?\\)\\'" . c++-mode))
- (add-to-list 'auto-mode-alist '("\\.c\\'" . c-mode))
- (add-to-list 'auto-mode-alist '("\\.h\\'" . c-or-c++-mode))
- (add-to-list 'auto-mode-alist '("\\.y\\(acc\\)?\\'" . c-mode))
- (add-to-list 'auto-mode-alist '("\\.lex\\'" . c-mode))
- (add-to-list 'auto-mode-alist '("\\.i\\'" . c-mode))
- (add-to-list 'auto-mode-alist '("\\.ii\\'" . c++-mode))
-
-(autoload 'c-mode "cc-mode" "\
-Major mode for editing C code.
-
-To submit a problem report, enter `\\[c-submit-bug-report]' from a
-c-mode buffer.  This automatically sets up a mail buffer with version
-information already added.  You just need to add a description of the
-problem, including a reproducible test case, and send the message.
-
-To see what version of CC Mode you are running, enter `\\[c-version]'.
-
-The hook `c-mode-common-hook' is run with no args at mode
-initialization, then `c-mode-hook'.
-
-Key bindings:
-\\{c-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'c-or-c++-mode "cc-mode" "\
-Analyse buffer and enable either C or C++ mode.
-
-Some people and projects use .h extension for C++ header files
-which is also the one used for C header files.  This makes
-matching on file name insufficient for detecting major mode that
-should be used.
-
-This function attempts to use file contents to determine whether
-the code is C or C++ and based on that chooses whether to enable
-`c-mode' or `c++-mode'.
-
-\(fn)" nil nil)
-
-(autoload 'c++-mode "cc-mode" "\
-Major mode for editing C++ code.
-To submit a problem report, enter `\\[c-submit-bug-report]' from a
-c++-mode buffer.  This automatically sets up a mail buffer with
-version information already added.  You just need to add a description
-of the problem, including a reproducible test case, and send the
-message.
-
-To see what version of CC Mode you are running, enter `\\[c-version]'.
-
-The hook `c-mode-common-hook' is run with no args at mode
-initialization, then `c++-mode-hook'.
-
-Key bindings:
-\\{c++-mode-map}
-
-\(fn)" t nil)
- (add-to-list 'auto-mode-alist '("\\.m\\'" . objc-mode))
-
-(autoload 'objc-mode "cc-mode" "\
-Major mode for editing Objective C code.
-To submit a problem report, enter `\\[c-submit-bug-report]' from an
-objc-mode buffer.  This automatically sets up a mail buffer with
-version information already added.  You just need to add a description
-of the problem, including a reproducible test case, and send the
-message.
-
-To see what version of CC Mode you are running, enter `\\[c-version]'.
-
-The hook `c-mode-common-hook' is run with no args at mode
-initialization, then `objc-mode-hook'.
-
-Key bindings:
-\\{objc-mode-map}
-
-\(fn)" t nil)
- (add-to-list 'auto-mode-alist '("\\.java\\'" . java-mode))
-
-(autoload 'java-mode "cc-mode" "\
-Major mode for editing Java code.
-To submit a problem report, enter `\\[c-submit-bug-report]' from a
-java-mode buffer.  This automatically sets up a mail buffer with
-version information already added.  You just need to add a description
-of the problem, including a reproducible test case, and send the
-message.
-
-To see what version of CC Mode you are running, enter `\\[c-version]'.
-
-The hook `c-mode-common-hook' is run with no args at mode
-initialization, then `java-mode-hook'.
-
-Key bindings:
-\\{java-mode-map}
-
-\(fn)" t nil)
- (add-to-list 'auto-mode-alist '("\\.idl\\'" . idl-mode))
-
-(autoload 'idl-mode "cc-mode" "\
-Major mode for editing CORBA's IDL, PSDL and CIDL code.
-To submit a problem report, enter `\\[c-submit-bug-report]' from an
-idl-mode buffer.  This automatically sets up a mail buffer with
-version information already added.  You just need to add a description
-of the problem, including a reproducible test case, and send the
-message.
-
-To see what version of CC Mode you are running, enter `\\[c-version]'.
-
-The hook `c-mode-common-hook' is run with no args at mode
-initialization, then `idl-mode-hook'.
-
-Key bindings:
-\\{idl-mode-map}
-
-\(fn)" t nil)
- (add-to-list 'auto-mode-alist '("\\.\\(u?lpc\\|pike\\|pmod\\(\\.in\\)?\\)\\'" 
. pike-mode))
- (add-to-list 'interpreter-mode-alist '("pike" . pike-mode))
-
-(autoload 'pike-mode "cc-mode" "\
-Major mode for editing Pike code.
-To submit a problem report, enter `\\[c-submit-bug-report]' from a
-pike-mode buffer.  This automatically sets up a mail buffer with
-version information already added.  You just need to add a description
-of the problem, including a reproducible test case, and send the
-message.
-
-To see what version of CC Mode you are running, enter `\\[c-version]'.
-
-The hook `c-mode-common-hook' is run with no args at mode
-initialization, then `pike-mode-hook'.
-
-Key bindings:
-\\{pike-mode-map}
-
-\(fn)" t nil)
- (add-to-list 'auto-mode-alist '("\\.awk\\'" . awk-mode))
- (add-to-list 'interpreter-mode-alist '("awk" . awk-mode))
- (add-to-list 'interpreter-mode-alist '("mawk" . awk-mode))
- (add-to-list 'interpreter-mode-alist '("nawk" . awk-mode))
- (add-to-list 'interpreter-mode-alist '("gawk" . awk-mode))
-
-(autoload 'awk-mode "cc-mode" "\
-Major mode for editing AWK code.
-To submit a problem report, enter `\\[c-submit-bug-report]' from an
-awk-mode buffer.  This automatically sets up a mail buffer with version
-information already added.  You just need to add a description of the
-problem, including a reproducible test case, and send the message.
-
-To see what version of CC Mode you are running, enter `\\[c-version]'.
-
-The hook `c-mode-common-hook' is run with no args at mode
-initialization, then `awk-mode-hook'.
-
-Key bindings:
-\\{awk-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-mode" '("c++-mode-" "c-" "awk-mode-map" "pike-mode-" "idl-mode-" 
"java-mode-" "objc-mode-")))
-
-;;;***
-
-;;;### (autoloads nil "cc-styles" "progmodes/cc-styles.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from progmodes/cc-styles.el
-
-(autoload 'c-set-style "cc-styles" "\
-Set the current buffer to use the style STYLENAME.
-STYLENAME, a string, must be an existing CC Mode style - These are contained
-in the variable `c-style-alist'.
-
-The variable `c-indentation-style' will get set to STYLENAME.
-
-\"Setting the style\" is done by setting CC Mode's \"style variables\" to the
-values indicated by the pertinent entry in `c-style-alist'.  Other variables
-might get set too.
-
-If DONT-OVERRIDE is neither nil nor t, style variables whose default values
-have been set (more precisely, whose default values are not the symbol
-`set-from-style') will not be changed.  This avoids overriding global settings
-done in your init file.  It is useful to call c-set-style from a mode hook
-in this way.
-
-If DONT-OVERRIDE is t, style variables that already have values (i.e., whose
-values are not the symbol `set-from-style') will not be overridden.  CC Mode
-calls c-set-style internally in this way whilst initializing a buffer; if
-cc-set-style is called like this from anywhere else, it will usually behave as
-a null operation.
-
-\(fn STYLENAME &optional DONT-OVERRIDE)" t nil)
-
-(autoload 'c-add-style "cc-styles" "\
-Adds a style to `c-style-alist', or updates an existing one.
-STYLE is a string identifying the style to add or update.  DESCRIPTION
-is an association list describing the style and must be of the form:
-
-  ([BASESTYLE] (VARIABLE . VALUE) [(VARIABLE . VALUE) ...])
-
-See the variable `c-style-alist' for the semantics of BASESTYLE,
-VARIABLE and VALUE.  This function also sets the current style to
-STYLE using `c-set-style' if the optional SET-P flag is non-nil.
-
-\(fn STYLE DESCRIPTION &optional SET-P)" t nil)
-
-(autoload 'c-set-offset "cc-styles" "\
-Change the value of a syntactic element symbol in `c-offsets-alist'.
-SYMBOL is the syntactic element symbol to change and OFFSET is the new
-offset for that syntactic element.  The optional argument is not used
-and exists only for compatibility reasons.
-
-\(fn SYMBOL OFFSET &optional IGNORED)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-styles" '("c-" "cc-choose-style-for-mode")))
-
-;;;***
-
-;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cc-vars.el
-(put 'c-basic-offset 'safe-local-variable 'integerp)
-(put 'c-backslash-column 'safe-local-variable 'integerp)
-(put 'c-file-style 'safe-local-variable 'string-or-null-p)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cc-vars" '("c++-" "c-" "pike-" "idl-" "java-" "objc-" "awk-mode-hook" 
"defcustom-c-stylevar")))
-
-;;;***
-
-;;;### (autoloads nil "ccl" "international/ccl.el" (0 0 0 0))
-;;; Generated autoloads from international/ccl.el
-
-(autoload 'ccl-compile "ccl" "\
-Return the compiled code of CCL-PROGRAM as a vector of integers.
-
-\(fn CCL-PROGRAM)" nil nil)
-
-(autoload 'ccl-dump "ccl" "\
-Disassemble compiled CCL-code CODE.
-
-\(fn CODE)" nil nil)
-
-(autoload 'declare-ccl-program "ccl" "\
-Declare NAME as a name of CCL program.
-
-This macro exists for backward compatibility.  In the old version of
-Emacs, to compile a CCL program which calls another CCL program not
-yet defined, it must be declared as a CCL program in advance.  But,
-now CCL program names are resolved not at compile time but before
-execution.
-
-Optional arg VECTOR is a compiled CCL code of the CCL program.
-
-\(fn NAME &optional VECTOR)" nil t)
-
-(autoload 'define-ccl-program "ccl" "\
-Set NAME the compiled code of CCL-PROGRAM.
-
-CCL-PROGRAM has this form:
-       (BUFFER_MAGNIFICATION
-        CCL_MAIN_CODE
-        [ CCL_EOF_CODE ])
-
-BUFFER_MAGNIFICATION is an integer value specifying the approximate
-output buffer magnification size compared with the bytes of input data
-text.  It is assured that the actual output buffer has 256 bytes
-more than the size calculated by BUFFER_MAGNIFICATION.
-If the value is zero, the CCL program can't execute `read' and
-`write' commands.
-
-CCL_MAIN_CODE and CCL_EOF_CODE are CCL program codes.  CCL_MAIN_CODE
-executed at first.  If there's no more input data when `read' command
-is executed in CCL_MAIN_CODE, CCL_EOF_CODE is executed.  If
-CCL_MAIN_CODE is terminated, CCL_EOF_CODE is not executed.
-
-Here's the syntax of CCL program code in BNF notation.  The lines
-starting by two semicolons (and optional leading spaces) describe the
-semantics.
-
-CCL_MAIN_CODE := CCL_BLOCK
-
-CCL_EOF_CODE := CCL_BLOCK
-
-CCL_BLOCK := STATEMENT | (STATEMENT [STATEMENT ...])
-
-STATEMENT :=
-       SET | IF | BRANCH | LOOP | REPEAT | BREAK | READ | WRITE | CALL
-       | TRANSLATE | MAP | LOOKUP | END
-
-SET := (REG = EXPRESSION)
-       | (REG ASSIGNMENT_OPERATOR EXPRESSION)
-       ;; The following form is the same as (r0 = integer).
-       | integer
-
-EXPRESSION := ARG | (EXPRESSION OPERATOR ARG)
-
-;; Evaluate EXPRESSION.  If the result is nonzero, execute
-;; CCL_BLOCK_0.  Otherwise, execute CCL_BLOCK_1.
-IF :=  (if EXPRESSION CCL_BLOCK_0 CCL_BLOCK_1)
-
-;; Evaluate EXPRESSION.  Provided that the result is N, execute
-;; CCL_BLOCK_N.
-BRANCH := (branch EXPRESSION CCL_BLOCK_0 [CCL_BLOCK_1 ...])
-
-;; Execute STATEMENTs until (break) or (end) is executed.
-
-;; Create a block of STATEMENTs for repeating.  The STATEMENTs
-;; are executed sequentially until REPEAT or BREAK is executed.
-;; If REPEAT statement is executed, STATEMENTs are executed from the
-;; start again.  If BREAK statements is executed, the execution
-;; exits from the block.  If neither REPEAT nor BREAK is
-;; executed, the execution exits from the block after executing the
-;; last STATEMENT.
-LOOP := (loop STATEMENT [STATEMENT ...])
-
-;; Terminate the most inner loop.
-BREAK := (break)
-
-REPEAT :=
-       ;; Jump to the head of the most inner loop.
-       (repeat)
-       ;; Same as: ((write [REG | integer | string])
-       ;;           (repeat))
-       | (write-repeat [REG | integer | string])
-       ;; Same as: ((write REG [ARRAY])
-       ;;           (read REG)
-       ;;           (repeat))
-       | (write-read-repeat REG [ARRAY])
-       ;; Same as: ((write integer)
-       ;;           (read REG)
-       ;;           (repeat))
-       | (write-read-repeat REG integer)
-
-READ := ;; Set REG_0 to a byte read from the input text, set REG_1
-       ;; to the next byte read, and so on.
-       (read REG_0 [REG_1 ...])
-       ;; Same as: ((read REG)
-       ;;           (if (REG OPERATOR ARG) CCL_BLOCK_0 CCL_BLOCK_1))
-       | (read-if (REG OPERATOR ARG) CCL_BLOCK_0 CCL_BLOCK_1)
-       ;; Same as: ((read REG)
-       ;;           (branch REG CCL_BLOCK_0 [CCL_BLOCK_1 ...]))
-       | (read-branch REG CCL_BLOCK_0 [CCL_BLOCK_1 ...])
-       ;; Read a character from the input text while parsing
-       ;; multibyte representation, set REG_0 to the charset ID of
-       ;; the character, set REG_1 to the code point of the
-       ;; character.  If the dimension of charset is two, set REG_1
-       ;; to ((CODE0 << 7) | CODE1), where CODE0 is the first code
-       ;; point and CODE1 is the second code point.
-       | (read-multibyte-character REG_0 REG_1)
-
-WRITE :=
-       ;; Write REG_0, REG_1, ... to the output buffer.  If REG_N is
-       ;; a multibyte character, write the corresponding multibyte
-       ;; representation.
-       (write REG_0 [REG_1 ...])
-       ;; Same as: ((r7 = EXPRESSION)
-       ;;           (write r7))
-       | (write EXPRESSION)
-       ;; Write the value of `integer' to the output buffer.  If it
-       ;; is a multibyte character, write the corresponding multibyte
-       ;; representation.
-       | (write integer)
-       ;; Write the byte sequence of `string' as is to the output
-       ;; buffer.
-       | (write string)
-       ;; Same as: (write string)
-       | string
-       ;; Provided that the value of REG is N, write Nth element of
-       ;; ARRAY to the output buffer.  If it is a multibyte
-       ;; character, write the corresponding multibyte
-       ;; representation.
-       | (write REG ARRAY)
-       ;; Write a multibyte representation of a character whose
-       ;; charset ID is REG_0 and code point is REG_1.  If the
-       ;; dimension of the charset is two, REG_1 should be ((CODE0 <<
-       ;; 7) | CODE1), where CODE0 is the first code point and CODE1
-       ;; is the second code point of the character.
-       | (write-multibyte-character REG_0 REG_1)
-
-;; Call CCL program whose name is ccl-program-name.
-CALL := (call ccl-program-name)
-
-;; Terminate the CCL program.
-END := (end)
-
-;; CCL registers that can contain any integer value.  As r7 is also
-;; used by CCL interpreter, its value is changed unexpectedly.
-REG := r0 | r1 | r2 | r3 | r4 | r5 | r6 | r7
-
-ARG := REG | integer
-
-OPERATOR :=
-       ;; Normal arithmetic operators (same meaning as C code).
-       + | - | * | / | %
-
-       ;; Bitwise operators (same meaning as C code)
-       | & | `|' | ^
-
-       ;; Shifting operators (same meaning as C code)
-       | << | >>
-
-       ;; (REG = ARG_0 <8 ARG_1) means:
-       ;;      (REG = ((ARG_0 << 8) | ARG_1))
-       | <8
-
-       ;; (REG = ARG_0 >8 ARG_1) means:
-       ;;      ((REG = (ARG_0 >> 8))
-       ;;       (r7 = (ARG_0 & 255)))
-       | >8
-
-       ;; (REG = ARG_0 // ARG_1) means:
-       ;;      ((REG = (ARG_0 / ARG_1))
-       ;;       (r7 = (ARG_0 % ARG_1)))
-       | //
-
-       ;; Normal comparing operators (same meaning as C code)
-       | < | > | == | <= | >= | !=
-
-       ;; If ARG_0 and ARG_1 are higher and lower byte of Shift-JIS
-       ;; code, and CHAR is the corresponding JISX0208 character,
-       ;; (REG = ARG_0 de-sjis ARG_1) means:
-       ;;      ((REG = CODE0)
-       ;;       (r7 = CODE1))
-       ;; where CODE0 is the first code point of CHAR, CODE1 is the
-       ;; second code point of CHAR.
-       | de-sjis
-
-       ;; If ARG_0 and ARG_1 are the first and second code point of
-       ;; JISX0208 character CHAR, and SJIS is the corresponding
-       ;; Shift-JIS code,
-       ;; (REG = ARG_0 en-sjis ARG_1) means:
-       ;;      ((REG = HIGH)
-       ;;       (r7 = LOW))
-       ;; where HIGH is the higher byte of SJIS, LOW is the lower
-       ;; byte of SJIS.
-       | en-sjis
-
-ASSIGNMENT_OPERATOR :=
-       ;; Same meaning as C code
-       += | -= | *= | /= | %= | &= | `|=' | ^= | <<= | >>=
-
-       ;; (REG <8= ARG) is the same as:
-       ;;      ((REG <<= 8)
-       ;;       (REG |= ARG))
-       | <8=
-
-       ;; (REG >8= ARG) is the same as:
-       ;;      ((r7 = (REG & 255))
-       ;;       (REG >>= 8))
-
-       ;; (REG //= ARG) is the same as:
-       ;;      ((r7 = (REG % ARG))
-       ;;       (REG /= ARG))
-       | //=
-
-ARRAY := `[' integer ... `]'
-
-
-TRANSLATE :=
-       ;; Decode character SRC, translate it by translate table
-       ;; TABLE, and encode it back to DST.  TABLE is specified
-       ;; by its id number in REG_0, SRC is specified by its
-       ;; charset id number and codepoint in REG_1 and REG_2
-       ;; respectively.
-       ;; On encoding, the charset of highest priority is selected.
-       ;; After the execution, DST is specified by its charset
-       ;; id number and codepoint in REG_1 and REG_2 respectively.
-       (translate-character REG_0 REG_1 REG_2)
-
-       ;; Same as above except for SYMBOL specifying the name of
-       ;; the translate table defined by `define-translation-table'.
-       | (translate-character SYMBOL REG_1 REG_2)
-
-LOOKUP :=
-       ;; Look up character SRC in hash table TABLE.  TABLE is
-       ;; specified by its name in SYMBOL, and SRC is specified by
-       ;; its charset id number and codepoint in REG_1 and REG_2
-       ;; respectively.
-       ;; If its associated value is an integer, set REG_1 to that
-       ;; value, and set r7 to 1.  Otherwise, set r7 to 0.
-       (lookup-character SYMBOL REG_1 REG_2)
-
-       ;; Look up integer value N in hash table TABLE.  TABLE is
-       ;; specified by its name in SYMBOL and N is specified in
-       ;; REG.
-       ;; If its associated value is a character, set REG to that
-       ;; value, and set r7 to 1.  Otherwise, set r7 to 0.
-       | (lookup-integer SYMBOL REG(integer))
-
-MAP :=
-       ;; The following statements are for internal use only.
-       (iterate-multiple-map REG REG MAP-IDs)
-       | (map-multiple REG REG (MAP-SET))
-       | (map-single REG REG MAP-ID)
-
-MAP-IDs := MAP-ID ...
-MAP-SET := MAP-IDs | (MAP-IDs) MAP-SET
-MAP-ID := integer
-
-\(fn NAME CCL-PROGRAM &optional DOC)" nil t)
-
-(function-put 'define-ccl-program 'doc-string-elt '3)
-
-(autoload 'check-ccl-program "ccl" "\
-Check validity of CCL-PROGRAM.
-If CCL-PROGRAM is a symbol denoting a CCL program, return
-CCL-PROGRAM, else return nil.
-If CCL-PROGRAM is a vector and optional arg NAME (symbol) is supplied,
-register CCL-PROGRAM by name NAME, and return NAME.
-
-\(fn CCL-PROGRAM &optional NAME)" nil t)
-
-(autoload 'ccl-execute-with-args "ccl" "\
-Execute CCL-PROGRAM with registers initialized by the remaining args.
-The return value is a vector of resulting CCL registers.
-
-See the documentation of `define-ccl-program' for the detail of CCL program.
-
-\(fn CCL-PROG &rest ARGS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ccl" '("ccl-")))
-
-;;;***
-
-;;;### (autoloads nil "cconv" "emacs-lisp/cconv.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/cconv.el
-
-(autoload 'cconv-closure-convert "cconv" "\
-Main entry point for closure conversion.
--- FORM is a piece of Elisp code after macroexpansion.
--- TOPLEVEL(optional) is a boolean variable, true if we are at the root of AST
-
-Returns a form where all lambdas don't have any free variables.
-
-\(fn FORM)" nil nil)
-
-(autoload 'cconv-warnings-only "cconv" "\
-Add the warnings that closure conversion would encounter.
-
-\(fn FORM)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cconv" '("cconv-")))
-
-;;;***
-
-;;;### (autoloads nil "cdl" "cdl.el" (0 0 0 0))
-;;; Generated autoloads from cdl.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cdl" '("cdl-")))
-
-;;;***
-
-;;;### (autoloads nil "cedet" "cedet/cedet.el" (0 0 0 0))
-;;; Generated autoloads from cedet/cedet.el
-(push (purecopy '(cedet 2 0)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cedet" '("cedet-")))
-
-;;;***
-
-;;;### (autoloads nil "cedet-cscope" "cedet/cedet-cscope.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from cedet/cedet-cscope.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cedet-cscope" '("cedet-cscope-")))
-
-;;;***
-
-;;;### (autoloads nil "cedet-files" "cedet/cedet-files.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from cedet/cedet-files.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cedet-files" '("cedet-")))
-
-;;;***
-
-;;;### (autoloads nil "cedet-global" "cedet/cedet-global.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from cedet/cedet-global.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cedet-global" '("cedet-g")))
-
-;;;***
-
-;;;### (autoloads nil "cedet-idutils" "cedet/cedet-idutils.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from cedet/cedet-idutils.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cedet-idutils" '("cedet-idutils-")))
-
-;;;***
-
-;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cfengine.el
-(push (purecopy '(cfengine 1 4)) package--builtin-versions)
-
-(autoload 'cfengine3-mode "cfengine" "\
-Major mode for editing CFEngine3 input.
-There are no special keybindings by default.
-
-Action blocks are treated as defuns, i.e. \\[beginning-of-defun] moves
-to the action header.
-
-\(fn)" t nil)
-
-(autoload 'cfengine2-mode "cfengine" "\
-Major mode for editing CFEngine2 input.
-There are no special keybindings by default.
-
-Action blocks are treated as defuns, i.e. \\[beginning-of-defun] moves
-to the action header.
-
-\(fn)" t nil)
-
-(autoload 'cfengine-auto-mode "cfengine" "\
-Choose `cfengine2-mode' or `cfengine3-mode' by buffer contents.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cfengine" '("cfengine")))
-
-;;;***
-
-;;;### (autoloads nil "char-fold" "char-fold.el" (0 0 0 0))
-;;; Generated autoloads from char-fold.el
-
-(autoload 'char-fold-to-regexp "char-fold" "\
-Return a regexp matching anything that char-folds into STRING.
-Any character in STRING that has an entry in
-`char-fold-table' is replaced with that entry (which is a
-regexp) and other characters are `regexp-quote'd.
-
-If the resulting regexp would be too long for Emacs to handle,
-just return the result of calling `regexp-quote' on STRING.
-
-FROM is for internal use.  It specifies an index in the STRING
-from which to start.
-
-\(fn STRING &optional LAX FROM)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"char-fold" '("char-fold-")))
-
-;;;***
-
-;;;### (autoloads nil "chart" "emacs-lisp/chart.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/chart.el
-(push (purecopy '(chart 0 2)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"chart" '("chart")))
-
-;;;***
-
-;;;### (autoloads nil "check-declare" "emacs-lisp/check-declare.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/check-declare.el
-
-(autoload 'check-declare-file "check-declare" "\
-Check veracity of all `declare-function' statements in FILE.
-See `check-declare-directory' for more information.
-
-\(fn FILE)" t nil)
-
-(autoload 'check-declare-directory "check-declare" "\
-Check veracity of all `declare-function' statements under directory ROOT.
-Returns non-nil if any false statements are found.
-
-\(fn ROOT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"check-declare" '("check-declare-")))
-
-;;;***
-
-;;;### (autoloads nil "checkdoc" "emacs-lisp/checkdoc.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from emacs-lisp/checkdoc.el
-(push (purecopy '(checkdoc 0 6 2)) package--builtin-versions)
-(put 'checkdoc-force-docstrings-flag 'safe-local-variable #'booleanp)
-(put 'checkdoc-force-history-flag 'safe-local-variable #'booleanp)
-(put 'checkdoc-permit-comma-termination-flag 'safe-local-variable #'booleanp)
-(put 'checkdoc-spellcheck-documentation-flag 'safe-local-variable #'booleanp)
-(put 'checkdoc-ispell-list-words 'safe-local-variable 
#'checkdoc-list-of-strings-p)
-(put 'checkdoc-arguments-in-order-flag 'safe-local-variable #'booleanp)
-(put 'checkdoc-verb-check-experimental-flag 'safe-local-variable #'booleanp)
-(put 'checkdoc-symbol-words 'safe-local-variable #'checkdoc-list-of-strings-p)
-
-(autoload 'checkdoc-list-of-strings-p "checkdoc" "\
-Return t when OBJ is a list of strings.
-
-\(fn OBJ)" nil nil)
-(put 'checkdoc-proper-noun-regexp 'safe-local-variable 'stringp)
-(put 'checkdoc-common-verbs-regexp 'safe-local-variable 'stringp)
-
-(autoload 'checkdoc "checkdoc" "\
-Interactively check the entire buffer for style errors.
-The current status of the check will be displayed in a buffer which
-the users will view as each check is completed.
-
-\(fn)" t nil)
-
-(autoload 'checkdoc-interactive "checkdoc" "\
-Interactively check the current buffer for doc string errors.
-Prefix argument START-HERE will start the checking from the current
-point, otherwise the check starts at the beginning of the current
-buffer.  Allows navigation forward and backwards through document
-errors.  Does not check for comment or space warnings.
-Optional argument SHOWSTATUS indicates that we should update the
-checkdoc status window instead of the usual behavior.
-
-\(fn &optional START-HERE SHOWSTATUS)" t nil)
-
-(autoload 'checkdoc-message-interactive "checkdoc" "\
-Interactively check the current buffer for message string errors.
-Prefix argument START-HERE will start the checking from the current
-point, otherwise the check starts at the beginning of the current
-buffer.  Allows navigation forward and backwards through document
-errors.  Does not check for comment or space warnings.
-Optional argument SHOWSTATUS indicates that we should update the
-checkdoc status window instead of the usual behavior.
-
-\(fn &optional START-HERE SHOWSTATUS)" t nil)
-
-(autoload 'checkdoc-eval-current-buffer "checkdoc" "\
-Evaluate and check documentation for the current buffer.
-Evaluation is done first because good documentation for something that
-doesn't work is just not useful.  Comments, doc strings, and rogue
-spacing are all verified.
-
-\(fn)" t nil)
-
-(autoload 'checkdoc-current-buffer "checkdoc" "\
-Check current buffer for document, comment, error style, and rogue spaces.
-With a prefix argument (in Lisp, the argument TAKE-NOTES),
-store all errors found in a warnings buffer,
-otherwise stop after the first error.
-
-\(fn &optional TAKE-NOTES)" t nil)
-
-(autoload 'checkdoc-file "checkdoc" "\
-Check FILE for document, comment, error style, and rogue spaces.
-
-\(fn FILE)" nil nil)
-
-(autoload 'checkdoc-start "checkdoc" "\
-Start scanning the current buffer for documentation string style errors.
-Only documentation strings are checked.
-Use `checkdoc-continue' to continue checking if an error cannot be fixed.
-Prefix argument TAKE-NOTES means to collect all the warning messages into
-a separate buffer.
-
-\(fn &optional TAKE-NOTES)" t nil)
-
-(autoload 'checkdoc-continue "checkdoc" "\
-Find the next doc string in the current buffer which has a style error.
-Prefix argument TAKE-NOTES means to continue through the whole buffer and
-save warnings in a separate buffer.  Second optional argument START-POINT
-is the starting location.  If this is nil, `point-min' is used instead.
-
-\(fn &optional TAKE-NOTES)" t nil)
-
-(autoload 'checkdoc-comments "checkdoc" "\
-Find missing comment sections in the current Emacs Lisp file.
-Prefix argument TAKE-NOTES non-nil means to save warnings in a
-separate buffer.  Otherwise print a message.  This returns the error
-if there is one.
-
-\(fn &optional TAKE-NOTES)" t nil)
-
-(autoload 'checkdoc-rogue-spaces "checkdoc" "\
-Find extra spaces at the end of lines in the current file.
-Prefix argument TAKE-NOTES non-nil means to save warnings in a
-separate buffer.  Otherwise print a message.  This returns the error
-if there is one.
-Optional argument INTERACT permits more interactive fixing.
-
-\(fn &optional TAKE-NOTES INTERACT)" t nil)
-
-(autoload 'checkdoc-message-text "checkdoc" "\
-Scan the buffer for occurrences of the error function, and verify text.
-Optional argument TAKE-NOTES causes all errors to be logged.
-
-\(fn &optional TAKE-NOTES)" t nil)
-
-(autoload 'checkdoc-eval-defun "checkdoc" "\
-Evaluate the current form with `eval-defun' and check its documentation.
-Evaluation is done first so the form will be read before the
-documentation is checked.  If there is a documentation error, then the display
-of what was evaluated will be overwritten by the diagnostic message.
-
-\(fn)" t nil)
-
-(autoload 'checkdoc-defun "checkdoc" "\
-Examine the doc string of the function or variable under point.
-Call `error' if the doc string has problems.  If NO-ERROR is
-non-nil, then do not call error, but call `message' instead.
-If the doc string passes the test, then check the function for rogue white
-space at the end of each line.
-
-\(fn &optional NO-ERROR)" t nil)
-
-(autoload 'checkdoc-ispell "checkdoc" "\
-Check the style and spelling of everything interactively.
-Calls `checkdoc' with spell-checking turned on.
-Prefix argument is the same as for `checkdoc'
-
-\(fn)" t nil)
-
-(autoload 'checkdoc-ispell-current-buffer "checkdoc" "\
-Check the style and spelling of the current buffer.
-Calls `checkdoc-current-buffer' with spell-checking turned on.
-Prefix argument is the same as for `checkdoc-current-buffer'
-
-\(fn)" t nil)
-
-(autoload 'checkdoc-ispell-interactive "checkdoc" "\
-Check the style and spelling of the current buffer interactively.
-Calls `checkdoc-interactive' with spell-checking turned on.
-Prefix argument is the same as for `checkdoc-interactive'
-
-\(fn)" t nil)
-
-(autoload 'checkdoc-ispell-message-interactive "checkdoc" "\
-Check the style and spelling of message text interactively.
-Calls `checkdoc-message-interactive' with spell-checking turned on.
-Prefix argument is the same as for `checkdoc-message-interactive'
-
-\(fn)" t nil)
-
-(autoload 'checkdoc-ispell-message-text "checkdoc" "\
-Check the style and spelling of message text interactively.
-Calls `checkdoc-message-text' with spell-checking turned on.
-Prefix argument is the same as for `checkdoc-message-text'
-
-\(fn)" t nil)
-
-(autoload 'checkdoc-ispell-start "checkdoc" "\
-Check the style and spelling of the current buffer.
-Calls `checkdoc-start' with spell-checking turned on.
-Prefix argument is the same as for `checkdoc-start'
-
-\(fn)" t nil)
-
-(autoload 'checkdoc-ispell-continue "checkdoc" "\
-Check the style and spelling of the current buffer after point.
-Calls `checkdoc-continue' with spell-checking turned on.
-Prefix argument is the same as for `checkdoc-continue'
-
-\(fn)" t nil)
-
-(autoload 'checkdoc-ispell-comments "checkdoc" "\
-Check the style and spelling of the current buffer's comments.
-Calls `checkdoc-comments' with spell-checking turned on.
-Prefix argument is the same as for `checkdoc-comments'
-
-\(fn)" t nil)
-
-(autoload 'checkdoc-ispell-defun "checkdoc" "\
-Check the style and spelling of the current defun with Ispell.
-Calls `checkdoc-defun' with spell-checking turned on.
-Prefix argument is the same as for `checkdoc-defun'
-
-\(fn)" t nil)
-
-(autoload 'checkdoc-minor-mode "checkdoc" "\
-Toggle automatic docstring checking (Checkdoc minor mode).
-With a prefix argument ARG, enable Checkdoc minor mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-In Checkdoc minor mode, the usual bindings for `eval-defun' which is
-bound to \\<checkdoc-minor-mode-map>\\[checkdoc-eval-defun] and 
`checkdoc-eval-current-buffer' are overridden to include
-checking of documentation strings.
-
-\\{checkdoc-minor-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'checkdoc-package-keywords "checkdoc" "\
-Find package keywords that aren't in `finder-known-keywords'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"checkdoc" '("checkdoc-")))
-
-;;;***
-
-;;;### (autoloads nil "china-util" "language/china-util.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from language/china-util.el
-
-(autoload 'decode-hz-region "china-util" "\
-Decode HZ/ZW encoded text in the current region.
-Return the length of resulting text.
-
-\(fn BEG END)" t nil)
-
-(autoload 'decode-hz-buffer "china-util" "\
-Decode HZ/ZW encoded text in the current buffer.
-
-\(fn)" t nil)
-
-(autoload 'encode-hz-region "china-util" "\
-Encode the text in the current region to HZ.
-Return the length of resulting text.
-
-\(fn BEG END)" t nil)
-
-(autoload 'encode-hz-buffer "china-util" "\
-Encode the text in the current buffer to HZ.
-
-\(fn)" t nil)
-
-(autoload 'post-read-decode-hz "china-util" "\
-
-
-\(fn LEN)" nil nil)
-
-(autoload 'pre-write-encode-hz "china-util" "\
-
-
-\(fn FROM TO)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"china-util" '("hz/zw-start-gb" "hz-" "decode-hz-line-continuation" 
"zw-start-gb" "iso2022-")))
-
-;;;***
-
-;;;### (autoloads nil "chistory" "chistory.el" (0 0 0 0))
-;;; Generated autoloads from chistory.el
-
-(autoload 'repeat-matching-complex-command "chistory" "\
-Edit and re-evaluate complex command with name matching PATTERN.
-Matching occurrences are displayed, most recent first, until you select
-a form for evaluation.  If PATTERN is empty (or nil), every form in the
-command history is offered.  The form is placed in the minibuffer for
-editing and the result is evaluated.
-
-\(fn &optional PATTERN)" t nil)
-
-(autoload 'list-command-history "chistory" "\
-List history of commands that used the minibuffer.
-The number of commands listed is controlled by `list-command-history-max'.
-Calls value of `list-command-history-filter' (if non-nil) on each history
-element to judge if that element should be excluded from the list.
-
-The buffer is left in Command History mode.
-
-\(fn)" t nil)
-
-(autoload 'command-history "chistory" "\
-Examine commands from `command-history' in a buffer.
-The number of commands listed is controlled by `list-command-history-max'.
-The command history is filtered by `list-command-history-filter' if non-nil.
-Use \\<command-history-map>\\[command-history-repeat] to repeat the command on 
the current line.
-
-Otherwise much like Emacs-Lisp Mode except that there is no self-insertion
-and digits provide prefix arguments.  Tab does not indent.
-\\{command-history-map}
-
-This command always recompiles the Command History listing
-and runs the normal hook `command-history-hook'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"chistory" '("command-history-" "list-command-history-" 
"default-command-history-filter")))
-
-;;;***
-
-;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/cl.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "cl" 
'("cl-" "def" "lexical-let" "labels" "flet")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "cl-extra" 
"emacs-lisp/cl-extra.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/cl-extra.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cl-extra" '("cl-")))
-
-;;;***
-
-;;;### (autoloads nil "cl-indent" "emacs-lisp/cl-indent.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emacs-lisp/cl-indent.el
-
-(autoload 'common-lisp-indent-function "cl-indent" "\
-Function to indent the arguments of a Lisp function call.
-This is suitable for use as the value of the variable
-`lisp-indent-function'.  INDENT-POINT is the point at which the
-indentation function is called, and STATE is the
-`parse-partial-sexp' state at that position.  Browse the
-`lisp-indent' customize group for options affecting the behavior
-of this function.
-
-If the indentation point is in a call to a Lisp function, that
-function's `common-lisp-indent-function' property specifies how
-this function should indent it.  Possible values for this
-property are:
-
-* defun, meaning indent according to `lisp-indent-defun-method';
-  i.e., like (4 &lambda &body), as explained below.
-
-* any other symbol, meaning a function to call.  The function should
-  take the arguments: PATH STATE INDENT-POINT SEXP-COLUMN NORMAL-INDENT.
-  PATH is a list of integers describing the position of point in terms of
-  list-structure with respect to the containing lists.  For example, in
-  ((a b c (d foo) f) g), foo has a path of (0 3 1).  In other words,
-  to reach foo take the 0th element of the outermost list, then
-  the 3rd element of the next list, and finally the 1st element.
-  STATE and INDENT-POINT are as in the arguments to
-  `common-lisp-indent-function'.  SEXP-COLUMN is the column of
-  the open parenthesis of the innermost containing list.
-  NORMAL-INDENT is the column the indentation point was
-  originally in.  This function should behave like `lisp-indent-259'.
-
-* an integer N, meaning indent the first N arguments like
-  function arguments, and any further arguments like a body.
-  This is equivalent to (4 4 ... &body).
-
-* a list.  The list element in position M specifies how to indent the Mth
-  function argument.  If there are fewer elements than function arguments,
-  the last list element applies to all remaining arguments.  The accepted
-  list elements are:
-
-  * nil, meaning the default indentation.
-
-  * an integer, specifying an explicit indentation.
-
-  * &lambda.  Indent the argument (which may be a list) by 4.
-
-  * &rest.  When used, this must be the penultimate element.  The
-    element after this one applies to all remaining arguments.
-
-  * &body.  This is equivalent to &rest lisp-body-indent, i.e., indent
-    all remaining elements by `lisp-body-indent'.
-
-  * &whole.  This must be followed by nil, an integer, or a
-    function symbol.  This indentation is applied to the
-    associated argument, and as a base indent for all remaining
-    arguments.  For example, an integer P means indent this
-    argument by P, and all remaining arguments by P, plus the
-    value specified by their associated list element.
-
-  * a symbol.  A function to call, with the 6 arguments specified above.
-
-  * a list, with elements as described above.  This applies when the
-    associated function argument is itself a list.  Each element of the list
-    specifies how to indent the associated argument.
-
-For example, the function `case' has an indent property
-\(4 &rest (&whole 2 &rest 1)), meaning:
-  * indent the first argument by 4.
-  * arguments after the first should be lists, and there may be any number
-    of them.  The first list element has an offset of 2, all the rest
-    have an offset of 2+1=3.
-
-If the current mode is actually `emacs-lisp-mode', look for a
-`common-lisp-indent-function-for-elisp' property before looking
-at `common-lisp-indent-function' and, if set, use its value
-instead.
-
-\(fn INDENT-POINT STATE)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cl-indent" '("lisp-" "common-lisp-")))
-
-;;;***
-
-;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/cl-lib.el
-(push (purecopy '(cl-lib 1 0)) package--builtin-versions)
-
-(define-obsolete-variable-alias 'custom-print-functions 
'cl-custom-print-functions "24.3")
-
-(defvar cl-custom-print-functions nil "\
-This is a list of functions that format user objects for printing.
-Each function is called in turn with three arguments: the object, the
-stream, and the print level (currently ignored).  If it is able to
-print the object it returns true; otherwise it returns nil and the
-printer proceeds to the next function on the list.
-
-This variable is not used at present, but it is defined in hopes that
-a future Emacs interpreter will be able to use it.")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cl-lib" '("cl-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "cl-macs" 
"emacs-lisp/cl-macs.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/cl-macs.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cl-macs" '("cl-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "cl-seq" 
"emacs-lisp/cl-seq.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/cl-seq.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cl-seq" '("cl--")))
-
-;;;***
-
-;;;### (autoloads nil "cmacexp" "progmodes/cmacexp.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cmacexp.el
-
-(autoload 'c-macro-expand "cmacexp" "\
-Expand C macros in the region, using the C preprocessor.
-Normally display output in temp buffer, but
-prefix arg means replace the region with it.
-
-`c-macro-preprocessor' specifies the preprocessor to use.
-Tf the user option `c-macro-prompt-flag' is non-nil
-prompt for arguments to the preprocessor (e.g. `-DDEBUG -I ./include'),
-otherwise use `c-macro-cppflags'.
-
-Noninteractive args are START, END, SUBST.
-For use inside Lisp programs, see also `c-macro-expansion'.
-
-\(fn START END SUBST)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cmacexp" '("c-macro-")))
-
-;;;***
-
-;;;### (autoloads nil "cmuscheme" "cmuscheme.el" (0 0 0 0))
-;;; Generated autoloads from cmuscheme.el
-
-(autoload 'run-scheme "cmuscheme" "\
-Run an inferior Scheme process, input and output via buffer `*scheme*'.
-If there is a process already running in `*scheme*', switch to that buffer.
-With argument, allows you to edit the command line (default is value
-of `scheme-program-name').
-If the file `~/.emacs_SCHEMENAME' or `~/.emacs.d/init_SCHEMENAME.scm' exists,
-it is given as initial input.
-Note that this may lose due to a timing error if the Scheme processor
-discards input when it starts up.
-Runs the hook `inferior-scheme-mode-hook' (after the `comint-mode-hook'
-is run).
-\(Type \\[describe-mode] in the process buffer for a list of commands.)
-
-\(fn CMD)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cmuscheme" '("cmuscheme-load-hook" "switch-to-scheme" "scheme-" 
"inferior-scheme-")))
-
-;;;***
-
-;;;### (autoloads nil "color" "color.el" (0 0 0 0))
-;;; Generated autoloads from color.el
-
-(autoload 'color-name-to-rgb "color" "\
-Convert COLOR string to a list of normalized RGB components.
-COLOR should be a color name (e.g. \"white\") or an RGB triplet
-string (e.g. \"#ff12ec\").
-
-Normally the return value is a list of three floating-point
-numbers, (RED GREEN BLUE), each between 0.0 and 1.0 inclusive.
-
-Optional argument FRAME specifies the frame where the color is to be
-displayed.  If FRAME is omitted or nil, use the selected frame.
-If FRAME cannot display COLOR, return nil.
-
-\(fn COLOR &optional FRAME)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"color" '("color-")))
-
-;;;***
-
-;;;### (autoloads nil "comint" "comint.el" (0 0 0 0))
-;;; Generated autoloads from comint.el
-
-(defvar comint-output-filter-functions '(ansi-color-process-output 
comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\
-Functions to call after output is inserted into the buffer.
-One possible function is `comint-postoutput-scroll-to-bottom'.
-These functions get one argument, a string containing the text as originally
-inserted.  Note that this might not be the same as the buffer contents between
-`comint-last-output-start' and the buffer's `process-mark', if other filter
-functions have already modified the buffer.
-
-See also `comint-preoutput-filter-functions'.
-
-You can use `add-hook' to add functions to this list
-either globally or locally.")
-
-(autoload 'make-comint-in-buffer "comint" "\
-Make a Comint process NAME in BUFFER, running PROGRAM.
-If BUFFER is nil, it defaults to NAME surrounded by `*'s.
-If there is a running process in BUFFER, it is not restarted.
-
-PROGRAM should be one of the following:
-- a string, denoting an executable program to create via
-  `start-file-process'
-- a cons pair of the form (HOST . SERVICE), denoting a TCP
-  connection to be opened via `open-network-stream'
-- nil, denoting a newly-allocated pty.
-
-Optional fourth arg STARTFILE is the name of a file, whose
-contents are sent to the process as its initial input.
-
-If PROGRAM is a string, any more args are arguments to PROGRAM.
-
-Return the (possibly newly created) process buffer.
-
-\(fn NAME BUFFER PROGRAM &optional STARTFILE &rest SWITCHES)" nil nil)
-
-(autoload 'make-comint "comint" "\
-Make a Comint process NAME in a buffer, running PROGRAM.
-The name of the buffer is made by surrounding NAME with `*'s.
-PROGRAM should be either a string denoting an executable program to create
-via `start-file-process', or a cons pair of the form (HOST . SERVICE) denoting
-a TCP connection to be opened via `open-network-stream'.  If there is already
-a running process in that buffer, it is not restarted.  Optional third arg
-STARTFILE is the name of a file, whose contents are sent to the
-process as its initial input.
-
-If PROGRAM is a string, any more args are arguments to PROGRAM.
-
-Returns the (possibly newly created) process buffer.
-
-\(fn NAME PROGRAM &optional STARTFILE &rest SWITCHES)" nil nil)
-
-(autoload 'comint-run "comint" "\
-Run PROGRAM in a Comint buffer and switch to it.
-The buffer name is made by surrounding the file name of PROGRAM with `*'s.
-The file name is used to make a symbol name, such as `comint-sh-hook', and any
-hooks on this symbol are run in the buffer.
-See `make-comint' and `comint-exec'.
-
-\(fn PROGRAM)" t nil)
-
-(function-put 'comint-run 'interactive-only 'make-comint)
-
-(defvar comint-file-name-prefix (purecopy "") "\
-Prefix prepended to absolute file names taken from process input.
-This is used by Comint's and shell's completion functions, and by shell's
-directory tracking functions.")
-
-(autoload 'comint-redirect-send-command "comint" "\
-Send COMMAND to process in current buffer, with output to OUTPUT-BUFFER.
-With prefix arg ECHO, echo output in process buffer.
-
-If NO-DISPLAY is non-nil, do not show the output buffer.
-
-\(fn COMMAND OUTPUT-BUFFER ECHO &optional NO-DISPLAY)" t nil)
-
-(autoload 'comint-redirect-send-command-to-process "comint" "\
-Send COMMAND to PROCESS, with output to OUTPUT-BUFFER.
-With prefix arg, echo output in process buffer.
-
-If NO-DISPLAY is non-nil, do not show the output buffer.
-
-\(fn COMMAND OUTPUT-BUFFER PROCESS ECHO &optional NO-DISPLAY)" t nil)
-
-(autoload 'comint-redirect-results-list "comint" "\
-Send COMMAND to current process.
-Return a list of expressions in the output which match REGEXP.
-REGEXP-GROUP is the regular expression group in REGEXP to use.
-
-\(fn COMMAND REGEXP REGEXP-GROUP)" nil nil)
-
-(autoload 'comint-redirect-results-list-from-process "comint" "\
-Send COMMAND to PROCESS.
-Return a list of expressions in the output which match REGEXP.
-REGEXP-GROUP is the regular expression group in REGEXP to use.
-
-\(fn PROCESS COMMAND REGEXP REGEXP-GROUP)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"comint" '("comint-" "shell-strip-ctrl-m" "send-invisible")))
-
-;;;***
-
-;;;### (autoloads nil "compare-w" "vc/compare-w.el" (0 0 0 0))
-;;; Generated autoloads from vc/compare-w.el
-
-(autoload 'compare-windows "compare-w" "\
-Compare text in current window with text in another window.
-The option `compare-windows-get-window-function' defines how
-to get another window.
-
-Compares the text starting at point in each window,
-moving over text in each one as far as they match.
-
-This command pushes the mark in each window
-at the prior location of point in that window.
-If both windows display the same buffer,
-the mark is pushed twice in that buffer:
-first in the other window, then in the selected window.
-
-A prefix arg means reverse the value of variable
-`compare-ignore-whitespace'.  If `compare-ignore-whitespace' is
-nil, then a prefix arg means ignore changes in whitespace.  If
-`compare-ignore-whitespace' is non-nil, then a prefix arg means
-don't ignore changes in whitespace.  The variable
-`compare-windows-whitespace' controls how whitespace is skipped.
-If `compare-ignore-case' is non-nil, changes in case are also
-ignored.
-
-If `compare-windows-sync' is non-nil, then successive calls of
-this command work in interlaced mode:
-on first call it advances points to the next difference,
-on second call it synchronizes points by skipping the difference,
-on third call it again advances points to the next difference and so on.
-
-\(fn IGNORE-WHITESPACE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"compare-w" '("compare-")))
-
-;;;***
-
-;;;### (autoloads nil "compface" "image/compface.el" (0 0 0 0))
-;;; Generated autoloads from image/compface.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"compface" '("uncompface")))
-
-;;;***
-
-;;;### (autoloads nil "compile" "progmodes/compile.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/compile.el
-
-(defvar compilation-mode-hook nil "\
-List of hook functions run by `compilation-mode'.")
-
-(custom-autoload 'compilation-mode-hook "compile" t)
-
-(defvar compilation-start-hook nil "\
-Hook run after starting a new compilation process.
-The hook is run with one argument, the new process.")
-
-(custom-autoload 'compilation-start-hook "compile" t)
-
-(defvar compilation-window-height nil "\
-Number of lines in a compilation window.
-If nil, use Emacs default.")
-
-(custom-autoload 'compilation-window-height "compile" t)
-
-(defvar compilation-process-setup-function nil "\
-Function to call to customize the compilation process.
-This function is called immediately before the compilation process is
-started.  It can be used to set any variables or functions that are used
-while processing the output of the compilation process.")
-
-(defvar compilation-buffer-name-function nil "\
-Function to compute the name of a compilation buffer.
-The function receives one argument, the name of the major mode of the
-compilation buffer.  It should return a string.
-If nil, compute the name with `(concat \"*\" (downcase major-mode) \"*\")'.")
-
-(defvar compilation-finish-function nil "\
-Function to call when a compilation process finishes.
-It is called with two arguments: the compilation buffer, and a string
-describing how the process finished.")
-
-(defvar compilation-finish-functions nil "\
-Functions to call when a compilation process finishes.
-Each function is called with two arguments: the compilation buffer,
-and a string describing how the process finished.")
-(put 'compilation-directory 'safe-local-variable 'stringp)
-
-(defvar compilation-ask-about-save t "\
-Non-nil means \\[compile] asks which buffers to save before compiling.
-Otherwise, it saves all modified buffers without asking.")
-
-(custom-autoload 'compilation-ask-about-save "compile" t)
-
-(defvar compilation-search-path '(nil) "\
-List of directories to search for source files named in error messages.
-Elements should be directory names, not file names of directories.
-The value nil as an element means to try the default directory.")
-
-(custom-autoload 'compilation-search-path "compile" t)
-
-(defvar compile-command (purecopy "make -k ") "\
-Last shell command used to do a compilation; default for next compilation.
-
-Sometimes it is useful for files to supply local values for this variable.
-You might also use mode hooks to specify it in certain modes, like this:
-
-    (add-hook \\='c-mode-hook
-       (lambda ()
-        (unless (or (file-exists-p \"makefile\")
-                    (file-exists-p \"Makefile\"))
-          (set (make-local-variable \\='compile-command)
-               (concat \"make -k \"
-                       (if buffer-file-name
-                         (shell-quote-argument
-                           (file-name-sans-extension buffer-file-name))))))))")
-
-(custom-autoload 'compile-command "compile" t)
-(put 'compile-command 'safe-local-variable (lambda (a) (and (stringp a) (or 
(not (boundp 'compilation-read-command)) compilation-read-command))))
-
-(defvar compilation-disable-input nil "\
-If non-nil, send end-of-file as compilation process input.
-This only affects platforms that support asynchronous processes (see
-`start-process'); synchronous compilation processes never accept input.")
-
-(custom-autoload 'compilation-disable-input "compile" t)
-
-(autoload 'compile "compile" "\
-Compile the program including the current buffer.  Default: run `make'.
-Runs COMMAND, a shell command, in a separate process asynchronously
-with output going to the buffer `*compilation*'.
-
-You can then use the command \\[next-error] to find the next error message
-and move to the source code that caused it.
-
-If optional second arg COMINT is t the buffer will be in Comint mode with
-`compilation-shell-minor-mode'.
-
-Interactively, prompts for the command if the variable
-`compilation-read-command' is non-nil; otherwise uses `compile-command'.
-With prefix arg, always prompts.
-Additionally, with universal prefix arg, compilation buffer will be in
-comint mode, i.e. interactive.
-
-To run more than one compilation at once, start one then rename
-the `*compilation*' buffer to some other name with
-\\[rename-buffer].  Then _switch buffers_ and start the new compilation.
-It will create a new `*compilation*' buffer.
-
-On most systems, termination of the main compilation process
-kills its subprocesses.
-
-The name used for the buffer is actually whatever is returned by
-the function in `compilation-buffer-name-function', so you can set that
-to a function that generates a unique name.
-
-\(fn COMMAND &optional COMINT)" t nil)
-
-(autoload 'compilation-start "compile" "\
-Run compilation command COMMAND (low level interface).
-If COMMAND starts with a cd command, that becomes the `default-directory'.
-The rest of the arguments are optional; for them, nil means use the default.
-
-MODE is the major mode to set in the compilation buffer.  Mode
-may also be t meaning use `compilation-shell-minor-mode' under `comint-mode'.
-
-If NAME-FUNCTION is non-nil, call it with one argument (the mode name)
-to determine the buffer name.  Otherwise, the default is to
-reuses the current buffer if it has the proper major mode,
-else use or create a buffer with name based on the major mode.
-
-If HIGHLIGHT-REGEXP is non-nil, `next-error' will temporarily highlight
-the matching section of the visited source line; the default is to use the
-global value of `compilation-highlight-regexp'.
-
-Returns the compilation buffer created.
-
-\(fn COMMAND &optional MODE NAME-FUNCTION HIGHLIGHT-REGEXP)" nil nil)
-
-(autoload 'compilation-mode "compile" "\
-Major mode for compilation log buffers.
-\\<compilation-mode-map>To visit the source for a line-numbered error,
-move point to the error message line and type \\[compile-goto-error].
-To kill the compilation, type \\[kill-compilation].
-
-Runs `compilation-mode-hook' with `run-mode-hooks' (which see).
-
-\\{compilation-mode-map}
-
-\(fn &optional NAME-OF-MODE)" t nil)
-
-(put 'define-compilation-mode 'doc-string-elt 3)
-
-(autoload 'compilation-shell-minor-mode "compile" "\
-Toggle Compilation Shell minor mode.
-With a prefix argument ARG, enable Compilation Shell minor mode
-if ARG is positive, and disable it otherwise.  If called from
-Lisp, enable the mode if ARG is omitted or nil.
-
-When Compilation Shell minor mode is enabled, all the
-error-parsing commands of the Compilation major mode are
-available but bound to keys that don't collide with Shell mode.
-See `compilation-mode'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'compilation-minor-mode "compile" "\
-Toggle Compilation minor mode.
-With a prefix argument ARG, enable Compilation minor mode if ARG
-is positive, and disable it otherwise.  If called from Lisp,
-enable the mode if ARG is omitted or nil.
-
-When Compilation minor mode is enabled, all the error-parsing
-commands of Compilation major mode are available.  See
-`compilation-mode'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'compilation-next-error-function "compile" "\
-Advance to the next error message and visit the file where the error was.
-This is the value of `next-error-function' in Compilation buffers.
-
-\(fn N &optional RESET)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"compile" '("compil" "kill-compilation" "define-compilation-mode" "recompile")))
-
-;;;***
-
-;;;### (autoloads nil "completion" "completion.el" (0 0 0 0))
-;;; Generated autoloads from completion.el
-
-(defvar dynamic-completion-mode nil "\
-Non-nil if Dynamic-Completion mode is enabled.
-See the `dynamic-completion-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `dynamic-completion-mode'.")
-
-(custom-autoload 'dynamic-completion-mode "completion" nil)
-
-(autoload 'dynamic-completion-mode "completion" "\
-Toggle dynamic word-completion on or off.
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"completion" '("inside-locate-completion-entry" 
"interactive-completion-string-reader" "initialize-completions" 
"current-completion-source" "cdabbrev-" "clear-all-completions" 
"check-completion-length" "complet" "cmpl-" "use-completion-" 
"list-all-completions" "symbol-" "set-c" "save" "kill-" "accept-completion" 
"add-" "*lisp-def-regexp*" "*c-def-regexp*" "delete-completion" "find-" 
"make-c" "num-cmpl-sources" "nex [...]
-
-;;;***
-
-;;;### (autoloads nil "conf-mode" "textmodes/conf-mode.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from textmodes/conf-mode.el
-
-(autoload 'conf-mode "conf-mode" "\
-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
-there is a great range of variation in the exact syntax of conf
-files.  See below for various wrapper commands that set up the
-details for some of the most widespread variants.
-
-This mode sets up font locking, outline, imenu and it provides
-alignment support through `conf-align-assignments'.  If strings
-come out wrong, try `conf-quote-normal'.
-
-Some files allow continuation lines, either with a backslash at
-the end of line, or by indenting the next line (further).  These
-constructs cannot currently be recognized.
-
-Because of this great variety of nuances, which are often not
-even clearly specified, please don't expect it to get every file
-quite right.  Patches that clearly identify some special case,
-without breaking the general ones, are welcome.
-
-If instead you start this mode with the generic `conf-mode'
-command, it will parse the buffer.  It will generally well
-identify the first four cases listed below.  If the buffer
-doesn't have enough contents to decide, this is identical to
-`conf-windows-mode' on Windows, elsewhere to `conf-unix-mode'.
-See also `conf-space-mode', `conf-colon-mode', `conf-javaprop-mode',
-`conf-ppd-mode' and `conf-xdefaults-mode'.
-
-\\{conf-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'conf-unix-mode "conf-mode" "\
-Conf Mode starter for Unix style Conf files.
-Comments start with `#'.
-For details see `conf-mode'.  Example:
-
-# Conf mode font-locks this right on Unix and with \\[conf-unix-mode]
-
-\[Desktop Entry]
-        Encoding=UTF-8
-        Name=The GIMP
-        Name[ca]=El GIMP
-        Name[cs]=GIMP
-
-\(fn)" t nil)
-
-(autoload 'conf-windows-mode "conf-mode" "\
-Conf Mode starter for Windows style Conf files.
-Comments start with `;'.
-For details see `conf-mode'.  Example:
-
-; Conf mode font-locks this right on Windows and with \\[conf-windows-mode]
-
-\[ExtShellFolderViews]
-Default={5984FFE0-28D4-11CF-AE66-08002B2E1262}
-{5984FFE0-28D4-11CF-AE66-08002B2E1262}={5984FFE0-28D4-11CF-AE66-08002B2E1262}
-
-\[{5984FFE0-28D4-11CF-AE66-08002B2E1262}]
-PersistMoniker=file://Folder.htt
-
-\(fn)" t nil)
-
-(autoload 'conf-javaprop-mode "conf-mode" "\
-Conf Mode starter for Java properties files.
-Comments start with `#' but are also recognized with `//' or
-between `/*' and `*/'.
-For details see `conf-mode'.  Example:
-
-# Conf mode font-locks this right with \\[conf-javaprop-mode] (Java properties)
-// another kind of comment
-/* yet another */
-
-name:value
-name=value
-name value
-x.1 =
-x.2.y.1.z.1 =
-x.2.y.1.z.2.zz =
-
-\(fn)" t nil)
-
-(autoload 'conf-space-mode "conf-mode" "\
-Conf Mode starter for space separated conf files.
-\"Assignments\" are with ` '.  Keywords before the parameters are
-recognized according to the variable `conf-space-keywords-alist'.
-Alternatively, you can specify a value for the file local variable
-`conf-space-keywords'.
-Use the function `conf-space-keywords' if you want to specify keywords
-in an interactive fashion instead.
-
-For details see `conf-mode'.  Example:
-
-# Conf mode font-locks this right with \\[conf-space-mode] (space separated)
-
-image/jpeg                     jpeg jpg jpe
-image/png                      png
-image/tiff                     tiff tif
-
-# Or with keywords (from a recognized file name):
-class desktop
-# Standard multimedia devices
-add /dev/audio         desktop
-add /dev/mixer         desktop
-
-\(fn)" t nil)
-
-(autoload 'conf-space-keywords "conf-mode" "\
-Enter Conf Space mode using regexp KEYWORDS to match the keywords.
-See `conf-space-mode'.
-
-\(fn KEYWORDS)" t nil)
-
-(autoload 'conf-colon-mode "conf-mode" "\
-Conf Mode starter for Colon files.
-\"Assignments\" are with `:'.
-For details see `conf-mode'.  Example:
-
-# Conf mode font-locks this right with \\[conf-colon-mode] (colon)
-
-<Multi_key> <exclam> <exclam>          : \"\\241\"     exclamdown
-<Multi_key> <c> <slash>                        : \"\\242\"     cent
-
-\(fn)" t nil)
-
-(autoload 'conf-ppd-mode "conf-mode" "\
-Conf Mode starter for Adobe/CUPS PPD files.
-Comments start with `*%' and \"assignments\" are with `:'.
-For details see `conf-mode'.  Example:
-
-*% Conf mode font-locks this right with \\[conf-ppd-mode] (PPD)
-
-*DefaultTransfer: Null
-*Transfer Null.Inverse: \"{ 1 exch sub }\"
-
-\(fn)" t nil)
-
-(autoload 'conf-xdefaults-mode "conf-mode" "\
-Conf Mode starter for Xdefaults files.
-Comments start with `!' and \"assignments\" are with `:'.
-For details see `conf-mode'.  Example:
-
-! Conf mode font-locks this right with \\[conf-xdefaults-mode] (.Xdefaults)
-
-*background:                   gray99
-*foreground:                   black
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"conf-mode" '("conf-")))
-
-;;;***
-
-;;;### (autoloads nil "cookie1" "play/cookie1.el" (0 0 0 0))
-;;; Generated autoloads from play/cookie1.el
-
-(autoload 'cookie "cookie1" "\
-Return a random phrase from PHRASE-FILE.
-When the phrase file is read in, display STARTMSG at the beginning
-of load, ENDMSG at the end.
-Interactively, PHRASE-FILE defaults to `cookie-file', unless that
-is nil or a prefix argument is used.
-
-\(fn PHRASE-FILE &optional STARTMSG ENDMSG)" t nil)
-
-(autoload 'cookie-insert "cookie1" "\
-Insert random phrases from PHRASE-FILE; COUNT of them.
-When the phrase file is read in, display STARTMSG at the beginning
-of load, ENDMSG at the end.
-
-\(fn PHRASE-FILE &optional COUNT STARTMSG ENDMSG)" nil nil)
-
-(autoload 'cookie-snarf "cookie1" "\
-Reads in the PHRASE-FILE, returns it as a vector of strings.
-Emit STARTMSG and ENDMSG before and after.  Caches the result; second
-and subsequent calls on the same file won't go to disk.
-
-\(fn PHRASE-FILE &optional STARTMSG ENDMSG)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cookie1" '("cookie")))
-
-;;;***
-
-;;;### (autoloads nil "copyright" "emacs-lisp/copyright.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emacs-lisp/copyright.el
-(put 'copyright-at-end-flag 'safe-local-variable 'booleanp)
-(put 'copyright-names-regexp 'safe-local-variable 'stringp)
-(put 'copyright-year-ranges 'safe-local-variable 'booleanp)
-
-(autoload 'copyright-update "copyright" "\
-Update copyright notice to indicate the current year.
-With prefix ARG, replace the years in the notice rather than adding
-the current year after them.  If necessary, and
-`copyright-current-gpl-version' is set, any copying permissions
-following the copyright are updated as well.
-If non-nil, INTERACTIVEP tells the function to behave as when it's called
-interactively.
-
-\(fn &optional ARG INTERACTIVEP)" t nil)
-
-(autoload 'copyright-fix-years "copyright" "\
-Convert 2 digit years to 4 digit years.
-Uses heuristic: year >= 50 means 19xx, < 50 means 20xx.
-If `copyright-year-ranges' (which see) is non-nil, also
-independently replaces consecutive years with a range.
-
-\(fn)" t nil)
-
-(autoload 'copyright "copyright" "\
-Insert a copyright by $ORGANIZATION notice at cursor.
-
-\(fn &optional STR ARG)" t nil)
-
-(autoload 'copyright-update-directory "copyright" "\
-Update copyright notice for all files in DIRECTORY matching MATCH.
-If FIX is non-nil, run `copyright-fix-years' instead.
-
-\(fn DIRECTORY MATCH &optional FIX)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"copyright" '("copyright-")))
-
-;;;***
-
-;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from progmodes/cperl-mode.el
-(put 'cperl-indent-level 'safe-local-variable 'integerp)
-(put 'cperl-brace-offset 'safe-local-variable 'integerp)
-(put 'cperl-continued-brace-offset 'safe-local-variable 'integerp)
-(put 'cperl-label-offset 'safe-local-variable 'integerp)
-(put 'cperl-continued-statement-offset 'safe-local-variable 'integerp)
-(put 'cperl-extra-newline-before-brace 'safe-local-variable 'booleanp)
-(put 'cperl-merge-trailing-else 'safe-local-variable 'booleanp)
-
-(autoload 'cperl-mode "cperl-mode" "\
-Major mode for editing Perl code.
-Expression and list commands understand all C brackets.
-Tab indents for Perl code.
-Paragraphs are separated by blank lines only.
-Delete converts tabs to spaces as it moves back.
-
-Various characters in Perl almost always come in pairs: {}, (), [],
-sometimes <>.  When the user types the first, she gets the second as
-well, with optional special formatting done on {}.  (Disabled by
-default.)  You can always quote (with \\[quoted-insert]) the left
-\"paren\" to avoid the expansion.  The processing of < is special,
-since most the time you mean \"less\".  CPerl mode tries to guess
-whether you want to type pair <>, and inserts is if it
-appropriate.  You can set `cperl-electric-parens-string' to the string that
-contains the parens from the above list you want to be electrical.
-Electricity of parens is controlled by `cperl-electric-parens'.
-You may also set `cperl-electric-parens-mark' to have electric parens
-look for active mark and \"embrace\" a region if possible.'
-
-CPerl mode provides expansion of the Perl control constructs:
-
-   if, else, elsif, unless, while, until, continue, do,
-   for, foreach, formy and foreachmy.
-
-and POD directives (Disabled by default, see `cperl-electric-keywords'.)
-
-The user types the keyword immediately followed by a space, which
-causes the construct to be expanded, and the point is positioned where
-she is most likely to want to be.  E.g., when the user types a space
-following \"if\" the following appears in the buffer: if () { or if ()
-} { } and the cursor is between the parentheses.  The user can then
-type some boolean expression within the parens.  Having done that,
-typing \\[cperl-linefeed] places you - appropriately indented - on a
-new line between the braces (if you typed \\[cperl-linefeed] in a POD
-directive line, then appropriate number of new lines is inserted).
-
-If CPerl decides that you want to insert \"English\" style construct like
-
-            bite if angry;
-
-it will not do any expansion.  See also help on variable
-`cperl-extra-newline-before-brace'.  (Note that one can switch the
-help message on expansion by setting `cperl-message-electric-keyword'
-to nil.)
-
-\\[cperl-linefeed] is a convenience replacement for typing carriage
-return.  It places you in the next line with proper indentation, or if
-you type it inside the inline block of control construct, like
-
-            foreach (@lines) {print; print}
-
-and you are on a boundary of a statement inside braces, it will
-transform the construct into a multiline and will place you into an
-appropriately indented blank line.  If you need a usual
-`newline-and-indent' behavior, it is on \\[newline-and-indent],
-see documentation on `cperl-electric-linefeed'.
-
-Use \\[cperl-invert-if-unless] to change a construction of the form
-
-           if (A) { B }
-
-into
-
-            B if A;
-
-\\{cperl-mode-map}
-
-Setting the variable `cperl-font-lock' to t switches on font-lock-mode
-\(even with older Emacsen), `cperl-electric-lbrace-space' to t switches
-on electric space between $ and {, `cperl-electric-parens-string' is
-the string that contains parentheses that should be electric in CPerl
-\(see also `cperl-electric-parens-mark' and `cperl-electric-parens'),
-setting `cperl-electric-keywords' enables electric expansion of
-control structures in CPerl.  `cperl-electric-linefeed' governs which
-one of two linefeed behavior is preferable.  You can enable all these
-options simultaneously (recommended mode of use) by setting
-`cperl-hairy' to t.  In this case you can switch separate options off
-by setting them to `null'.  Note that one may undo the extra
-whitespace inserted by semis and braces in `auto-newline'-mode by
-consequent \\[cperl-electric-backspace].
-
-If your site has perl5 documentation in info format, you can use commands
-\\[cperl-info-on-current-command] and \\[cperl-info-on-command] to access it.
-These keys run commands `cperl-info-on-current-command' and
-`cperl-info-on-command', which one is which is controlled by variable
-`cperl-info-on-command-no-prompt' and `cperl-clobber-lisp-bindings'
-\(in turn affected by `cperl-hairy').
-
-Even if you have no info-format documentation, short one-liner-style
-help is available on \\[cperl-get-help], and one can run perldoc or
-man via menu.
-
-It is possible to show this help automatically after some idle time.
-This is regulated by variable `cperl-lazy-help-time'.  Default with
-`cperl-hairy' (if the value of `cperl-lazy-help-time' is nil) is 5
-secs idle time .  It is also possible to switch this on/off from the
-menu, or via \\[cperl-toggle-autohelp].  Requires `run-with-idle-timer'.
-
-Use \\[cperl-lineup] to vertically lineup some construction - put the
-beginning of the region at the start of construction, and make region
-span the needed amount of lines.
-
-Variables `cperl-pod-here-scan', `cperl-pod-here-fontify',
-`cperl-pod-face', `cperl-pod-head-face' control processing of POD and
-here-docs sections.  With capable Emaxen results of scan are used
-for indentation too, otherwise they are used for highlighting only.
-
-Variables controlling indentation style:
- `cperl-tab-always-indent'
-    Non-nil means TAB in CPerl mode should always reindent the current line,
-    regardless of where in the line point is when the TAB command is used.
- `cperl-indent-left-aligned-comments'
-    Non-nil means that the comment starting in leftmost column should indent.
- `cperl-auto-newline'
-    Non-nil means automatically newline before and after braces,
-    and after colons and semicolons, inserted in Perl code.  The following
-    \\[cperl-electric-backspace] will remove the inserted whitespace.
-    Insertion after colons requires both this variable and
-    `cperl-auto-newline-after-colon' set.
- `cperl-auto-newline-after-colon'
-    Non-nil means automatically newline even after colons.
-    Subject to `cperl-auto-newline' setting.
- `cperl-indent-level'
-    Indentation of Perl statements within surrounding block.
-    The surrounding block's indentation is the indentation
-    of the line on which the open-brace appears.
- `cperl-continued-statement-offset'
-    Extra indentation given to a substatement, such as the
-    then-clause of an if, or body of a while, or just a statement continuation.
- `cperl-continued-brace-offset'
-    Extra indentation given to a brace that starts a substatement.
-    This is in addition to `cperl-continued-statement-offset'.
- `cperl-brace-offset'
-    Extra indentation for line if it starts with an open brace.
- `cperl-brace-imaginary-offset'
-    An open brace following other text is treated as if it the line started
-    this far to the right of the actual line indentation.
- `cperl-label-offset'
-    Extra indentation for line that is a label.
- `cperl-min-label-indent'
-    Minimal indentation for line that is a label.
-
-Settings for classic indent-styles: K&R BSD=C++ GNU PerlStyle=Whitesmith
-  `cperl-indent-level'                5   4       2   4
-  `cperl-brace-offset'                0   0       0   0
-  `cperl-continued-brace-offset'     -5  -4       0   0
-  `cperl-label-offset'               -5  -4      -2  -4
-  `cperl-continued-statement-offset'  5   4       2   4
-
-CPerl knows several indentation styles, and may bulk set the
-corresponding variables.  Use \\[cperl-set-style] to do this.  Use
-\\[cperl-set-style-back] to restore the memorized preexisting values
-\(both available from menu).  See examples in `cperl-style-examples'.
-
-Part of the indentation style is how different parts of if/elsif/else
-statements are broken into lines; in CPerl, this is reflected on how
-templates for these constructs are created (controlled by
-`cperl-extra-newline-before-brace'), and how reflow-logic should treat
-\"continuation\" blocks of else/elsif/continue, controlled by the same
-variable, and by `cperl-extra-newline-before-brace-multiline',
-`cperl-merge-trailing-else', `cperl-indent-region-fix-constructs'.
-
-If `cperl-indent-level' is 0, the statement after opening brace in
-column 0 is indented on
-`cperl-brace-offset'+`cperl-continued-statement-offset'.
-
-Turning on CPerl mode calls the hooks in the variable `cperl-mode-hook'
-with no args.
-
-DO NOT FORGET to read micro-docs (available from `Perl' menu)
-or as help on variables `cperl-tips', `cperl-problems',
-`cperl-praise', `cperl-speed'.
-
-\(fn)" t nil)
-
-(autoload 'cperl-perldoc "cperl-mode" "\
-Run `perldoc' on WORD.
-
-\(fn WORD)" t nil)
-
-(autoload 'cperl-perldoc-at-point "cperl-mode" "\
-Run a `perldoc' on the word around point.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cperl-mode" '("cperl-" "pod2man-program")))
-
-;;;***
-
-;;;### (autoloads nil "cpp" "progmodes/cpp.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cpp.el
-
-(autoload 'cpp-highlight-buffer "cpp" "\
-Highlight C code according to preprocessor conditionals.
-This command pops up a buffer which you should edit to specify
-what kind of highlighting to use, and the criteria for highlighting.
-A prefix arg suppresses display of that buffer.
-
-\(fn ARG)" t nil)
-
-(autoload 'cpp-parse-edit "cpp" "\
-Edit display information for cpp conditionals.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cpp" '("cpp-")))
-
-;;;***
-
-;;;### (autoloads nil "crm" "emacs-lisp/crm.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/crm.el
-
-(autoload 'completing-read-multiple "crm" "\
-Read multiple strings in the minibuffer, with completion.
-The arguments are the same as those of `completing-read'.
-\\<crm-local-completion-map>
-Input multiple strings by separating each one with a string that
-matches the regexp `crm-separator'.  For example, if the separator
-regexp is \",\", entering \"alice,bob,eve\" specifies the strings
-\"alice\", \"bob\", and \"eve\".
-
-We refer to contiguous strings of non-separator-characters as
-\"elements\".  In this example there are three elements.
-
-Completion is available on a per-element basis.  For example, if the
-contents of the minibuffer are \"alice,bob,eve\" and point is between
-\"l\" and \"i\", pressing \\[minibuffer-complete] operates on the element 
\"alice\".
-
-This function returns a list of the strings that were read,
-with empty strings removed.
-
-\(fn PROMPT TABLE &optional PREDICATE REQUIRE-MATCH INITIAL-INPUT HIST DEF 
INHERIT-INPUT-METHOD)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"crm" '("crm-")))
-
-;;;***
-
-;;;### (autoloads nil "css-mode" "textmodes/css-mode.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/css-mode.el
-
-(autoload 'css-mode "css-mode" "\
-Major mode to edit Cascading Style Sheets.
-
-\(fn)" t nil)
- (add-to-list 'auto-mode-alist '("\\.scss\\'" . scss-mode))
-
-(autoload 'scss-mode "css-mode" "\
-Major mode to edit \"Sassy CSS\" files.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"css-mode" '("scss-" "css-")))
-
-;;;***
-
-;;;### (autoloads nil "cua-base" "emulation/cua-base.el" (0 0 0 0))
-;;; Generated autoloads from emulation/cua-base.el
-
-(defvar cua-mode nil "\
-Non-nil if Cua mode is enabled.
-See the `cua-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `cua-mode'.")
-
-(custom-autoload 'cua-mode "cua-base" nil)
-
-(autoload 'cua-mode "cua-base" "\
-Toggle Common User Access style editing (CUA mode).
-With a prefix argument ARG, enable CUA mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-CUA mode is a global minor mode.  When enabled, typed text
-replaces the active selection, and you can use C-z, C-x, C-c, and
-C-v to undo, cut, copy, and paste in addition to the normal Emacs
-bindings.  The C-x and C-c keys only do cut and copy when the
-region is active, so in most cases, they do not conflict with the
-normal function of these prefix keys.
-
-If you really need to perform a command which starts with one of
-the prefix keys even when the region is active, you have three
-options:
-- press the prefix key twice very quickly (within 0.2 seconds),
-- press the prefix key and the following key within 0.2 seconds, or
-- use the SHIFT key with the prefix key, i.e. C-S-x or C-S-c.
-
-You can customize `cua-enable-cua-keys' to completely disable the
-CUA bindings, or `cua-prefix-override-inhibit-delay' to change
-the prefix fallback behavior.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'cua-selection-mode "cua-base" "\
-Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings.
-
-\(fn ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cua-base" '("cua-")))
-
-;;;***
-
-;;;### (autoloads nil "cua-gmrk" "emulation/cua-gmrk.el" (0 0 0 0))
-;;; Generated autoloads from emulation/cua-gmrk.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cua-gmrk" '("cua-")))
-
-;;;***
-
-;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (0 0 0 0))
-;;; Generated autoloads from emulation/cua-rect.el
-
-(autoload 'cua-rectangle-mark-mode "cua-rect" "\
-Toggle the region as rectangular.
-Activates the region if needed.  Only lasts until the region is deactivated.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cua-rect" '("cua-")))
-
-;;;***
-
-;;;### (autoloads nil "cursor-sensor" "emacs-lisp/cursor-sensor.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/cursor-sensor.el
-
-(defvar cursor-sensor-inhibit nil)
-
-(autoload 'cursor-intangible-mode "cursor-sensor" "\
-Keep cursor outside of any `cursor-intangible' text property.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'cursor-sensor-mode "cursor-sensor" "\
-Handle the `cursor-sensor-functions' text property.
-This property should hold a list of functions which react to the motion
-of the cursor.  They're called with three arguments (WINDOW OLDPOS DIR)
-where WINDOW is the affected window, OLDPOS is the last known position of
-the cursor and DIR can be `entered' or `left' depending on whether the cursor
-is entering the area covered by the text-property property or leaving it.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cursor-sensor" '("cursor-sensor-")))
-
-;;;***
-
-;;;### (autoloads nil "cus-dep" "cus-dep.el" (0 0 0 0))
-;;; Generated autoloads from cus-dep.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cus-dep" '("custom-" "generated-custom-dependencies-file")))
-
-;;;***
-
-;;;### (autoloads nil "cus-edit" "cus-edit.el" (0 0 0 0))
-;;; Generated autoloads from cus-edit.el
-
-(defvar custom-browse-sort-alphabetically nil "\
-If non-nil, sort customization group alphabetically in `custom-browse'.")
-
-(custom-autoload 'custom-browse-sort-alphabetically "cus-edit" t)
-
-(defvar custom-buffer-sort-alphabetically t "\
-Whether to sort customization groups alphabetically in Custom buffer.")
-
-(custom-autoload 'custom-buffer-sort-alphabetically "cus-edit" t)
-
-(defvar custom-menu-sort-alphabetically nil "\
-If non-nil, sort each customization group alphabetically in menus.")
-
-(custom-autoload 'custom-menu-sort-alphabetically "cus-edit" t)
-
-(autoload 'customize-set-value "cus-edit" "\
-Set VARIABLE to VALUE, and return VALUE.  VALUE is a Lisp object.
-
-If VARIABLE has a `variable-interactive' property, that is used as if
-it were the arg to `interactive' (which see) to interactively read the value.
-
-If VARIABLE has a `custom-type' property, it must be a widget and the
-`:prompt-value' property of that widget will be used for reading the value.
-
-If given a prefix (or a COMMENT argument), also prompt for a comment.
-
-\(fn VARIABLE VALUE &optional COMMENT)" t nil)
-
-(autoload 'customize-set-variable "cus-edit" "\
-Set the default for VARIABLE to VALUE, and return VALUE.
-VALUE is a Lisp object.
-
-If VARIABLE has a `custom-set' property, that is used for setting
-VARIABLE, otherwise `set-default' is used.
-
-If VARIABLE has a `variable-interactive' property, that is used as if
-it were the arg to `interactive' (which see) to interactively read the value.
-
-If VARIABLE has a `custom-type' property, it must be a widget and the
-`:prompt-value' property of that widget will be used for reading the value.
-
-If given a prefix (or a COMMENT argument), also prompt for a comment.
-
-\(fn VARIABLE VALUE &optional COMMENT)" t nil)
-
-(autoload 'customize-save-variable "cus-edit" "\
-Set the default for VARIABLE to VALUE, and save it for future sessions.
-Return VALUE.
-
-If VARIABLE has a `custom-set' property, that is used for setting
-VARIABLE, otherwise `set-default' is used.
-
-If VARIABLE has a `variable-interactive' property, that is used as if
-it were the arg to `interactive' (which see) to interactively read the value.
-
-If VARIABLE has a `custom-type' property, it must be a widget and the
-`:prompt-value' property of that widget will be used for reading the value.
-
-If given a prefix (or a COMMENT argument), also prompt for a comment.
-
-\(fn VARIABLE VALUE &optional COMMENT)" t nil)
-
-(autoload 'customize-push-and-save "cus-edit" "\
-Add ELTS to LIST-VAR and save for future sessions, safely.
-ELTS should be a list.  This function adds each entry to the
-value of LIST-VAR using `add-to-list'.
-
-If Emacs is initialized, call `customize-save-variable' to save
-the resulting list value now.  Otherwise, add an entry to
-`after-init-hook' to save it after initialization.
-
-\(fn LIST-VAR ELTS)" nil nil)
-
-(autoload 'customize "cus-edit" "\
-Select a customization buffer which you can use to set user options.
-User options are structured into \"groups\".
-Initially the top-level group `Emacs' and its immediate subgroups
-are shown; the contents of those subgroups are initially hidden.
-
-\(fn)" t nil)
-
-(autoload 'customize-mode "cus-edit" "\
-Customize options related to a major or minor mode.
-By default the current major mode is used.  With a prefix
-argument or if the current major mode has no known group, prompt
-for the MODE to customize.
-
-\(fn MODE)" t nil)
-
-(autoload 'customize-group "cus-edit" "\
-Customize GROUP, which must be a customization group.
-If OTHER-WINDOW is non-nil, display in another window.
-
-\(fn &optional GROUP OTHER-WINDOW)" t nil)
-
-(autoload 'customize-group-other-window "cus-edit" "\
-Customize GROUP, which must be a customization group, in another window.
-
-\(fn &optional GROUP)" t nil)
-
-(defalias 'customize-variable 'customize-option)
-
-(autoload 'customize-option "cus-edit" "\
-Customize SYMBOL, which must be a user option.
-
-\(fn SYMBOL)" t nil)
-
-(defalias 'customize-variable-other-window 'customize-option-other-window)
-
-(autoload 'customize-option-other-window "cus-edit" "\
-Customize SYMBOL, which must be a user option.
-Show the buffer in another window, but don't select it.
-
-\(fn SYMBOL)" t nil)
-
-(defvar customize-package-emacs-version-alist nil "\
-Alist mapping versions of a package to Emacs versions.
-We use this for packages that have their own names, but are released
-as part of Emacs itself.
-
-Each elements looks like this:
-
-     (PACKAGE (PVERSION . EVERSION)...)
-
-Here PACKAGE is the name of a package, as a symbol.  After
-PACKAGE come one or more elements, each associating a
-package version PVERSION with the first Emacs version
-EVERSION in which it (or a subsequent version of PACKAGE)
-was first released.  Both PVERSION and EVERSION are strings.
-PVERSION should be a string that this package used in
-the :package-version keyword for `defcustom', `defgroup',
-and `defface'.
-
-For example, the MH-E package updates this alist as follows:
-
-     (add-to-list \\='customize-package-emacs-version-alist
-                  \\='(MH-E (\"6.0\" . \"22.1\") (\"6.1\" . \"22.1\")
-                         (\"7.0\" . \"22.1\") (\"7.1\" . \"22.1\")
-                         (\"7.2\" . \"22.1\") (\"7.3\" . \"22.1\")
-                         (\"7.4\" . \"22.1\") (\"8.0\" . \"22.1\")))
-
-The value of PACKAGE needs to be unique and it needs to match the
-PACKAGE value appearing in the :package-version keyword.  Since
-the user might see the value in a error message, a good choice is
-the official name of the package, such as MH-E or Gnus.")
-
-(defalias 'customize-changed 'customize-changed-options)
-
-(autoload 'customize-changed-options "cus-edit" "\
-Customize all settings whose meanings have changed in Emacs itself.
-This includes new user options and faces, and new customization
-groups, as well as older options and faces whose meanings or
-default values have changed since the previous major Emacs
-release.
-
-With argument SINCE-VERSION (a string), customize all settings
-that were added or redefined since that version.
-
-\(fn &optional SINCE-VERSION)" t nil)
-
-(autoload 'customize-face "cus-edit" "\
-Customize FACE, which should be a face name or nil.
-If FACE is nil, customize all faces.  If FACE is actually a
-face-alias, customize the face it is aliased to.
-
-If OTHER-WINDOW is non-nil, display in another window.
-
-Interactively, when point is on text which has a face specified,
-suggest to customize that face, if it's customizable.
-
-\(fn &optional FACE OTHER-WINDOW)" t nil)
-
-(autoload 'customize-face-other-window "cus-edit" "\
-Show customization buffer for face FACE in other window.
-If FACE is actually a face-alias, customize the face it is aliased to.
-
-Interactively, when point is on text which has a face specified,
-suggest to customize that face, if it's customizable.
-
-\(fn &optional FACE)" t nil)
-
-(autoload 'customize-unsaved "cus-edit" "\
-Customize all options and faces set in this session but not saved.
-
-\(fn)" t nil)
-
-(autoload 'customize-rogue "cus-edit" "\
-Customize all user variables modified outside customize.
-
-\(fn)" t nil)
-
-(autoload 'customize-saved "cus-edit" "\
-Customize all saved options and faces.
-
-\(fn)" t nil)
-
-(autoload 'customize-apropos "cus-edit" "\
-Customize loaded options, faces and groups matching PATTERN.
-PATTERN can be a word, a list of words (separated by spaces),
-or a regexp (using some regexp special characters).  If it is a word,
-search for matches for that word as a substring.  If it is a list of
-words, search for matches for any two (or more) of those words.
-
-If TYPE is `options', include only options.
-If TYPE is `faces', include only faces.
-If TYPE is `groups', include only groups.
-
-\(fn PATTERN &optional TYPE)" t nil)
-
-(autoload 'customize-apropos-options "cus-edit" "\
-Customize all loaded customizable options matching REGEXP.
-
-\(fn REGEXP &optional IGNORED)" t nil)
-
-(autoload 'customize-apropos-faces "cus-edit" "\
-Customize all loaded faces matching REGEXP.
-
-\(fn REGEXP)" t nil)
-
-(autoload 'customize-apropos-groups "cus-edit" "\
-Customize all loaded groups matching REGEXP.
-
-\(fn REGEXP)" t nil)
-
-(autoload 'custom-prompt-customize-unsaved-options "cus-edit" "\
-Prompt user to customize any unsaved customization options.
-Return non-nil if user chooses to customize, for use in
-`kill-emacs-query-functions'.
-
-\(fn)" nil nil)
-
-(autoload 'custom-buffer-create "cus-edit" "\
-Create a buffer containing OPTIONS.
-Optional NAME is the name of the buffer.
-OPTIONS should be an alist of the form ((SYMBOL WIDGET)...), where
-SYMBOL is a customization option, and WIDGET is a widget for editing
-that option.
-DESCRIPTION is unused.
-
-\(fn OPTIONS &optional NAME DESCRIPTION)" nil nil)
-
-(autoload 'custom-buffer-create-other-window "cus-edit" "\
-Create a buffer containing OPTIONS, and display it in another window.
-The result includes selecting that window.
-Optional NAME is the name of the buffer.
-OPTIONS should be an alist of the form ((SYMBOL WIDGET)...), where
-SYMBOL is a customization option, and WIDGET is a widget for editing
-that option.
-DESCRIPTION is unused.
-
-\(fn OPTIONS &optional NAME DESCRIPTION)" nil nil)
-
-(autoload 'customize-browse "cus-edit" "\
-Create a tree browser for the customize hierarchy.
-
-\(fn &optional GROUP)" t nil)
-
-(defvar custom-file nil "\
-File used for storing customization information.
-The default is nil, which means to use your init file
-as specified by `user-init-file'.  If the value is not nil,
-it should be an absolute file name.
-
-You can set this option through Custom, if you carefully read the
-last paragraph below.  However, usually it is simpler to write
-something like the following in your init file:
-
-\(setq custom-file \"~/.emacs-custom.el\")
-\(load custom-file)
-
-Note that both lines are necessary: the first line tells Custom to
-save all customizations in this file, but does not load it.
-
-When you change this variable outside Custom, look in the
-previous custom file (usually your init file) for the
-forms `(custom-set-variables ...)'  and `(custom-set-faces ...)',
-and copy them (whichever ones you find) to the new custom file.
-This will preserve your existing customizations.
-
-If you save this option using Custom, Custom will write all
-currently saved customizations, including the new one for this
-option itself, into the file you specify, overwriting any
-`custom-set-variables' and `custom-set-faces' forms already
-present in that file.  It will not delete any customizations from
-the old custom file.  You should do that manually if that is what you
-want.  You also have to put something like `(load \"CUSTOM-FILE\")
-in your init file, where CUSTOM-FILE is the actual name of the
-file.  Otherwise, Emacs will not load the file when it starts up,
-and hence will not set `custom-file' to that file either.")
-
-(custom-autoload 'custom-file "cus-edit" t)
-
-(autoload 'custom-save-all "cus-edit" "\
-Save all customizations in `custom-file'.
-
-\(fn)" nil nil)
-
-(autoload 'customize-save-customized "cus-edit" "\
-Save all user options which have been set in this session.
-
-\(fn)" t nil)
-
-(autoload 'custom-menu-create "cus-edit" "\
-Create menu for customization group SYMBOL.
-The menu is in a format applicable to `easy-menu-define'.
-
-\(fn SYMBOL)" nil nil)
-
-(autoload 'customize-menu-create "cus-edit" "\
-Return a customize menu for customization group SYMBOL.
-If optional NAME is given, use that as the name of the menu.
-Otherwise the menu will be named `Customize'.
-The format is suitable for use with `easy-menu-define'.
-
-\(fn SYMBOL &optional NAME)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cus-edit" '("Custom-" "custom" "widget-")))
-
-;;;***
-
-;;;### (autoloads nil "cus-theme" "cus-theme.el" (0 0 0 0))
-;;; Generated autoloads from cus-theme.el
-
-(autoload 'customize-create-theme "cus-theme" "\
-Create or edit a custom theme.
-THEME, if non-nil, should be an existing theme to edit.  If THEME
-is `user', the resulting *Custom Theme* buffer also contains a
-checkbox for removing the theme settings specified in the buffer
-from the Custom save file.
-BUFFER, if non-nil, should be a buffer to use; the default is
-named *Custom Theme*.
-
-\(fn &optional THEME BUFFER)" t nil)
-
-(autoload 'custom-theme-visit-theme "cus-theme" "\
-Set up a Custom buffer to edit custom theme THEME.
-
-\(fn THEME)" t nil)
-
-(autoload 'describe-theme "cus-theme" "\
-Display a description of the Custom theme THEME (a symbol).
-
-\(fn THEME)" t nil)
-
-(autoload 'customize-themes "cus-theme" "\
-Display a selectable list of Custom themes.
-When called from Lisp, BUFFER should be the buffer to use; if
-omitted, a buffer named *Custom Themes* is used.
-
-\(fn &optional BUFFER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cus-theme" '("custom-" "describe-theme-1")))
-
-;;;***
-
-;;;### (autoloads nil "cvs-status" "vc/cvs-status.el" (0 0 0 0))
-;;; Generated autoloads from vc/cvs-status.el
-
-(autoload 'cvs-status-mode "cvs-status" "\
-Mode used for cvs status output.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cvs-status" '("cvs-")))
-
-;;;***
-
-;;;### (autoloads nil "cwarn" "progmodes/cwarn.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/cwarn.el
-(push (purecopy '(cwarn 1 3 1)) package--builtin-versions)
-
-(autoload 'cwarn-mode "cwarn" "\
-Minor mode that highlights suspicious C and C++ constructions.
-
-Suspicious constructs are highlighted using `font-lock-warning-face'.
-
-Note, in addition to enabling this minor mode, the major mode must
-be included in the variable `cwarn-configuration'.  By default C and
-C++ modes are included.
-
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-\(fn &optional ARG)" t nil)
-
-(define-obsolete-function-alias 'turn-on-cwarn-mode 'cwarn-mode "24.1")
-
-(defvar global-cwarn-mode nil "\
-Non-nil if Global Cwarn mode is enabled.
-See the `global-cwarn-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-cwarn-mode'.")
-
-(custom-autoload 'global-cwarn-mode "cwarn" nil)
-
-(autoload 'global-cwarn-mode "cwarn" "\
-Toggle Cwarn mode in all buffers.
-With prefix ARG, enable Global Cwarn mode if ARG is positive;
-otherwise, disable it.  If called from Lisp, enable the mode if
-ARG is omitted or nil.
-
-Cwarn mode is enabled in all buffers where
-`turn-on-cwarn-mode-if-enabled' would do it.
-See `cwarn-mode' for more information on Cwarn mode.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cwarn" '("turn-on-cwarn-mode-if-enabled" "cwarn-")))
-
-;;;***
-
-;;;### (autoloads nil "cyril-util" "language/cyril-util.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from language/cyril-util.el
-
-(autoload 'cyrillic-encode-koi8-r-char "cyril-util" "\
-Return KOI8-R external character code of CHAR if appropriate.
-
-\(fn CHAR)" nil nil)
-
-(autoload 'cyrillic-encode-alternativnyj-char "cyril-util" "\
-Return ALTERNATIVNYJ external character code of CHAR if appropriate.
-
-\(fn CHAR)" nil nil)
-
-(autoload 'standard-display-cyrillic-translit "cyril-util" "\
-Display a cyrillic buffer using a transliteration.
-For readability, the table is slightly
-different from the one used for the input method `cyrillic-translit'.
-
-The argument is a string which specifies which language you are using;
-that affects the choice of transliterations slightly.
-Possible values are listed in `cyrillic-language-alist'.
-If the argument is t, we use the default cyrillic transliteration.
-If the argument is nil, we return the display table to its standard state.
-
-\(fn &optional CYRILLIC-LANGUAGE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"cyril-util" '("cyrillic-language-alist")))
-
-;;;***
-
-;;;### (autoloads nil "dabbrev" "dabbrev.el" (0 0 0 0))
-;;; Generated autoloads from dabbrev.el
-(put 'dabbrev-case-fold-search 'risky-local-variable t)
-(put 'dabbrev-case-replace 'risky-local-variable t)
- (define-key esc-map "/" 'dabbrev-expand)
- (define-key esc-map [?\C-/] 'dabbrev-completion)
-
-(autoload 'dabbrev-completion "dabbrev" "\
-Completion on current word.
-Like \\[dabbrev-expand] but finds all expansions in the current buffer
-and presents suggestions for completion.
-
-With a prefix argument ARG, it searches all buffers accepted by the
-function pointed out by `dabbrev-friend-buffer-function' to find the
-completions.
-
-If the prefix argument is 16 (which comes from \\[universal-argument] 
\\[universal-argument]),
-then it searches *all* buffers.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dabbrev-expand "dabbrev" "\
-Expand previous word \"dynamically\".
-
-Expands to the most recent, preceding word for which this is a prefix.
-If no suitable preceding word is found, words following point are
-considered.  If still no suitable word is found, then look in the
-buffers accepted by the function pointed out by variable
-`dabbrev-friend-buffer-function', if `dabbrev-check-other-buffers'
-says so.  Then, if `dabbrev-check-all-buffers' is non-nil, look in
-all the other buffers, subject to constraints specified
-by `dabbrev-ignored-buffer-names' and `dabbrev-ignored-regexps'.
-
-A positive prefix argument, N, says to take the Nth backward *distinct*
-possibility.  A negative argument says search forward.
-
-If the cursor has not moved from the end of the previous expansion and
-no argument is given, replace the previously-made expansion
-with the next possible expansion not yet tried.
-
-The variable `dabbrev-backward-only' may be used to limit the
-direction of search to backward if set non-nil.
-
-See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion].
-
-\(fn ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dabbrev" '("dabbrev-")))
-
-;;;***
-
-;;;### (autoloads nil "data-debug" "cedet/data-debug.el" (0 0 0 0))
-;;; Generated autoloads from cedet/data-debug.el
-
-(autoload 'data-debug-new-buffer "data-debug" "\
-Create a new data-debug buffer with NAME.
-
-\(fn NAME)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"data-debug" '("data-debug-")))
-
-;;;***
-
-;;;### (autoloads nil "dbus" "net/dbus.el" (0 0 0 0))
-;;; Generated autoloads from net/dbus.el
-
-(autoload 'dbus-handle-event "dbus" "\
-Handle events from the D-Bus.
-EVENT is a D-Bus event, see `dbus-check-event'.  HANDLER, being
-part of the event, is called with arguments ARGS.
-If the HANDLER returns a `dbus-error', it is propagated as return message.
-
-\(fn EVENT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dbus" '("dbus-")))
-
-;;;***
-
-;;;### (autoloads nil "dcl-mode" "progmodes/dcl-mode.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/dcl-mode.el
-
-(autoload 'dcl-mode "dcl-mode" "\
-Major mode for editing DCL-files.
-
-This mode indents command lines in blocks.  (A block is commands between
-THEN-ELSE-ENDIF and between lines matching dcl-block-begin-regexp and
-dcl-block-end-regexp.)
-
-Labels are indented to a fixed position unless they begin or end a block.
-Whole-line comments (matching dcl-comment-line-regexp) are not indented.
-Data lines are not indented.
-
-Key bindings:
-
-\\{dcl-mode-map}
-Commands not usually bound to keys:
-
-\\[dcl-save-nondefault-options]                Save changed options
-\\[dcl-save-all-options]               Save all options
-\\[dcl-save-option]                    Save any option
-\\[dcl-save-mode]                      Save buffer mode
-
-Variables controlling indentation style and extra features:
-
- dcl-basic-offset
-    Extra indentation within blocks.
-
- dcl-continuation-offset
-    Extra indentation for continued lines.
-
- dcl-margin-offset
-    Indentation for the first command line in a file or SUBROUTINE.
-
- dcl-margin-label-offset
-    Indentation for a label.
-
- dcl-comment-line-regexp
-    Lines matching this regexp will not be indented.
-
- dcl-block-begin-regexp
- dcl-block-end-regexp
-    Regexps that match command lines that begin and end, respectively,
-    a block of command lines that will be given extra indentation.
-    Command lines between THEN-ELSE-ENDIF are always indented; these variables
-    make it possible to define other places to indent.
-    Set to nil to disable this feature.
-
- dcl-calc-command-indent-function
-    Can be set to a function that customizes indentation for command lines.
-    Two such functions are included in the package:
-       dcl-calc-command-indent-multiple
-       dcl-calc-command-indent-hang
-
- dcl-calc-cont-indent-function
-    Can be set to a function that customizes indentation for continued lines.
-    One such function is included in the package:
-       dcl-calc-cont-indent-relative    (set by default)
-
- dcl-tab-always-indent
-    If t, pressing TAB always indents the current line.
-    If nil, pressing TAB indents the current line if point is at the left
-    margin.
-
- dcl-electric-characters
-    Non-nil causes lines to be indented at once when a label, ELSE or ENDIF is
-    typed.
-
- dcl-electric-reindent-regexps
-    Use this variable and function dcl-electric-character to customize
-    which words trigger electric indentation.
-
- dcl-tempo-comma
- dcl-tempo-left-paren
- dcl-tempo-right-paren
-    These variables control the look of expanded templates.
-
- dcl-imenu-generic-expression
-    Default value for imenu-generic-expression.  The default includes
-    SUBROUTINE labels in the main listing and sub-listings for
-    other labels, CALL, GOTO and GOSUB statements.
-
- dcl-imenu-label-labels
- dcl-imenu-label-goto
- dcl-imenu-label-gosub
- dcl-imenu-label-call
-    Change the text that is used as sub-listing labels in imenu.
-
-Loading this package calls the value of the variable
-`dcl-mode-load-hook' with no args, if that value is non-nil.
-Turning on DCL mode calls the value of the variable `dcl-mode-hook'
-with no args, if that value is non-nil.
-
-
-The following example uses the default values for all variables:
-
-$! This is a comment line that is not indented (it matches
-$! dcl-comment-line-regexp)
-$! Next follows the first command line.  It is indented dcl-margin-offset.
-$       i = 1
-$       ! Other comments are indented like command lines.
-$       ! A margin label indented dcl-margin-label-offset:
-$ label:
-$       if i.eq.1
-$       then
-$           ! Lines between THEN-ELSE and ELSE-ENDIF are
-$           ! indented dcl-basic-offset
-$           loop1: ! This matches dcl-block-begin-regexp...
-$               ! ...so this line is indented dcl-basic-offset
-$               text = \"This \" + - ! is a continued line
-                       \"lined up with the command line\"
-$               type sys$input
-Data lines are not indented at all.
-$           endloop1: ! This matches dcl-block-end-regexp
-$       endif
-$
-
-
-There is some minimal font-lock support (see vars
-`dcl-font-lock-defaults' and `dcl-font-lock-keywords').
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dcl-mode" '("dcl-")))
-
-;;;***
-
-;;;### (autoloads nil "debug" "emacs-lisp/debug.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/debug.el
-
-(setq debugger 'debug)
-
-(autoload 'debug "debug" "\
-Enter debugger.  \\<debugger-mode-map>`\\[debugger-continue]' returns from the 
debugger.
-Arguments are mainly for use when this is called from the internals
-of the evaluator.
-
-You may call with no args, or you may pass nil as the first arg and
-any other args you like.  In that case, the list of args after the
-first will be printed into the backtrace buffer.
-
-\(fn &rest ARGS)" t nil)
-
-(autoload 'debug-on-entry "debug" "\
-Request FUNCTION to invoke debugger each time it is called.
-
-When called interactively, prompt for FUNCTION in the minibuffer.
-
-This works by modifying the definition of FUNCTION.  If you tell the
-debugger to continue, FUNCTION's execution proceeds.  If FUNCTION is a
-normal function or a macro written in Lisp, you can also step through
-its execution.  FUNCTION can also be a primitive that is not a special
-form, in which case stepping is not possible.  Break-on-entry for
-primitive functions only works when that function is called from Lisp.
-
-Use \\[cancel-debug-on-entry] to cancel the effect of this command.
-Redefining FUNCTION also cancels it.
-
-\(fn FUNCTION)" t nil)
-
-(autoload 'cancel-debug-on-entry "debug" "\
-Undo effect of \\[debug-on-entry] on FUNCTION.
-If FUNCTION is nil, cancel debug-on-entry for all functions.
-When called interactively, prompt for FUNCTION in the minibuffer.
-To specify a nil argument interactively, exit with an empty minibuffer.
-
-\(fn &optional FUNCTION)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"debug" '("debug" "inhibit-debug-on-entry")))
-
-;;;***
-
-;;;### (autoloads nil "decipher" "play/decipher.el" (0 0 0 0))
-;;; Generated autoloads from play/decipher.el
-
-(autoload 'decipher "decipher" "\
-Format a buffer of ciphertext for cryptanalysis and enter Decipher mode.
-
-\(fn)" t nil)
-
-(autoload 'decipher-mode "decipher" "\
-Major mode for decrypting monoalphabetic substitution ciphers.
-Lower-case letters enter plaintext.
-Upper-case letters are commands.
-
-The buffer is made read-only so that normal Emacs commands cannot
-modify it.
-
-The most useful commands are:
-\\<decipher-mode-map>
-\\[decipher-digram-list]  Display a list of all digrams & their frequency
-\\[decipher-frequency-count]  Display the frequency of each ciphertext letter
-\\[decipher-adjacency-list]  Show adjacency list for current letter (lists 
letters appearing next to it)
-\\[decipher-make-checkpoint]  Save the current cipher alphabet (checkpoint)
-\\[decipher-restore-checkpoint]  Restore a saved cipher alphabet (checkpoint)
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"decipher" '("decipher-")))
-
-;;;***
-
-;;;### (autoloads nil "delim-col" "delim-col.el" (0 0 0 0))
-;;; Generated autoloads from delim-col.el
-(push (purecopy '(delim-col 2 1)) package--builtin-versions)
-
-(autoload 'delimit-columns-customize "delim-col" "\
-Customization of `columns' group.
-
-\(fn)" t nil)
-
-(autoload 'delimit-columns-region "delim-col" "\
-Prettify all columns in a text region.
-
-START and END delimits the text region.
-
-\(fn START END)" t nil)
-
-(autoload 'delimit-columns-rectangle "delim-col" "\
-Prettify all columns in a text rectangle.
-
-START and END delimits the corners of text rectangle.
-
-\(fn START END)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"delim-col" '("delimit-columns-")))
-
-;;;***
-
-;;;### (autoloads nil "delsel" "delsel.el" (0 0 0 0))
-;;; Generated autoloads from delsel.el
-
-(defalias 'pending-delete-mode 'delete-selection-mode)
-
-(defvar delete-selection-mode nil "\
-Non-nil if Delete-Selection mode is enabled.
-See the `delete-selection-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `delete-selection-mode'.")
-
-(custom-autoload 'delete-selection-mode "delsel" nil)
-
-(autoload 'delete-selection-mode "delsel" "\
-Toggle Delete Selection mode.
-With a prefix argument ARG, enable Delete Selection mode if ARG
-is positive, and disable it otherwise.  If called from Lisp,
-enable the mode if ARG is omitted or nil.
-
-When Delete Selection mode is enabled, typed text replaces the selection
-if the selection is active.  Otherwise, typed text is just inserted at
-point regardless of any selection.  Also, commands that normally delete
-just one character will delete the entire selection instead.
-
-See `delete-selection-helper' and `delete-selection-pre-hook' for
-information on adapting behavior of commands in Delete Selection mode.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"delsel" '("del" "minibuffer-keyboard-quit")))
-
-;;;***
-
-;;;### (autoloads nil "derived" "emacs-lisp/derived.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/derived.el
-
-(autoload 'define-derived-mode "derived" "\
-Create a new mode as a variant of an existing mode.
-
-The arguments to this command are as follow:
-
-CHILD:     the name of the command for the derived mode.
-PARENT:    the name of the command for the parent mode (e.g. `text-mode')
-           or nil if there is no parent.
-NAME:      a string which will appear in the status line (e.g. \"Hypertext\")
-DOCSTRING: an optional documentation string--if you do not supply one,
-           the function will attempt to invent something useful.
-BODY:      forms to execute just before running the
-           hooks for the new mode.  Do not use `interactive' here.
-
-BODY can start with a bunch of keyword arguments.  The following keyword
-  arguments are currently understood:
-:group GROUP
-       Declare the customization group that corresponds to this mode.
-       The command `customize-mode' uses this.
-:syntax-table TABLE
-       Use TABLE instead of the default (CHILD-syntax-table).
-       A nil value means to simply use the same syntax-table as the parent.
-:abbrev-table TABLE
-       Use TABLE instead of the default (CHILD-abbrev-table).
-       A nil value means to simply use the same abbrev-table as the parent.
-:after-hook FORM
-       A single lisp form which is evaluated after the mode hooks have been
-       run.  It should not be quoted.
-
-Here is how you could define LaTeX-Thesis mode as a variant of LaTeX mode:
-
-  (define-derived-mode LaTeX-thesis-mode LaTeX-mode \"LaTeX-Thesis\")
-
-You could then make new key bindings for `LaTeX-thesis-mode-map'
-without changing regular LaTeX mode.  In this example, BODY is empty,
-and DOCSTRING is generated by default.
-
-On a more complicated level, the following command uses `sgml-mode' as
-the parent, and then sets the variable `case-fold-search' to nil:
-
-  (define-derived-mode article-mode sgml-mode \"Article\"
-    \"Major mode for editing technical articles.\"
-    (setq case-fold-search nil))
-
-Note that if the documentation string had been left out, it would have
-been generated automatically, with a reference to the keymap.
-
-The new mode runs the hook constructed by the function
-`derived-mode-hook-name'.
-
-See Info node `(elisp)Derived Modes' for more details.
-
-\(fn CHILD PARENT NAME &optional DOCSTRING &rest BODY)" nil t)
-
-(function-put 'define-derived-mode 'doc-string-elt '4)
-
-(autoload 'derived-mode-init-mode-variables "derived" "\
-Initialize variables for a new MODE.
-Right now, if they don't already exist, set up a blank keymap, an
-empty syntax table, and an empty abbrev table -- these will be merged
-the first time the mode is used.
-
-\(fn MODE)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"derived" '("derived-mode-")))
-
-;;;***
-
-;;;### (autoloads nil "descr-text" "descr-text.el" (0 0 0 0))
-;;; Generated autoloads from descr-text.el
-
-(autoload 'describe-text-properties "descr-text" "\
-Describe widgets, buttons, overlays, and text properties at POS.
-POS is taken to be in BUFFER or in current buffer if nil.
-Interactively, describe them for the character after point.
-If optional second argument OUTPUT-BUFFER is non-nil,
-insert the output into that buffer, and don't initialize or clear it
-otherwise.
-
-\(fn POS &optional OUTPUT-BUFFER BUFFER)" t nil)
-
-(autoload 'describe-char "descr-text" "\
-Describe position POS (interactively, point) and the char after POS.
-POS is taken to be in BUFFER, or the current buffer if BUFFER is nil.
-The information is displayed in buffer `*Help*'.
-
-The position information includes POS; the total size of BUFFER; the
-region limits, if narrowed; the column number; and the horizontal
-scroll amount, if the buffer is horizontally scrolled.
-
-The character information includes the character code; charset and
-code points in it; syntax; category; how the character is encoded in
-BUFFER and in BUFFER's file; character composition information (if
-relevant); the font and font glyphs used to display the character;
-the character's canonical name and other properties defined by the
-Unicode Data Base; and widgets, buttons, overlays, and text properties
-relevant to POS.
-
-\(fn POS &optional BUFFER)" t nil)
-
-(autoload 'describe-char-eldoc "descr-text" "\
-Return a description of character at point for use by ElDoc mode.
-
-Return nil if character at point is a printable ASCII
-character (i.e. codepoint between 32 and 127 inclusively).
-Otherwise return a description formatted by
-`describe-char-eldoc--format' function taking into account value
-of `eldoc-echo-area-use-multiline-p' variable and width of
-minibuffer window for width limit.
-
-This function is meant to be used as a value of
-`eldoc-documentation-function' variable.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"descr-text" '("describe-")))
-
-;;;***
-
-;;;### (autoloads nil "desktop" "desktop.el" (0 0 0 0))
-;;; Generated autoloads from desktop.el
-
-(defvar desktop-save-mode nil "\
-Non-nil if Desktop-Save mode is enabled.
-See the `desktop-save-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `desktop-save-mode'.")
-
-(custom-autoload 'desktop-save-mode "desktop" nil)
-
-(autoload 'desktop-save-mode "desktop" "\
-Toggle desktop saving (Desktop Save mode).
-With a prefix argument ARG, enable Desktop Save mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode if ARG
-is omitted or nil.
-
-When Desktop Save mode is enabled, the state of Emacs is saved from
-one session to another.  In particular, Emacs will save the desktop when
-it exits (this may prompt you; see the option `desktop-save').  The next
-time Emacs starts, if this mode is active it will restore the desktop.
-
-To manually save the desktop at any time, use the command `\\[desktop-save]'.
-To load it, use `\\[desktop-read]'.
-
-Once a desktop file exists, Emacs will auto-save it according to the
-option `desktop-auto-save-timeout'.
-
-To see all the options you can set, browse the `desktop' customization group.
-
-For further details, see info node `(emacs)Saving Emacs Sessions'.
-
-\(fn &optional ARG)" t nil)
-
-(defvar desktop-locals-to-save '(desktop-locals-to-save truncate-lines 
case-fold-search case-replace fill-column overwrite-mode 
change-log-default-name line-number-mode column-number-mode 
size-indication-mode buffer-file-coding-system buffer-display-time 
indent-tabs-mode tab-width indicate-buffer-boundaries indicate-empty-lines 
show-trailing-whitespace) "\
-List of local variables to save for each buffer.
-The variables are saved only when they really are local.  Conventional minor
-modes are restored automatically; they should not be listed here.")
-
-(custom-autoload 'desktop-locals-to-save "desktop" t)
-
-(defvar-local desktop-save-buffer nil "\
-When non-nil, save buffer status in desktop file.
-
-If the value is a function, it is called by `desktop-save' with argument
-DESKTOP-DIRNAME to obtain auxiliary information to save in the desktop
-file along with the state of the buffer for which it was called.
-
-When file names are returned, they should be formatted using the call
-\"(desktop-file-name FILE-NAME DESKTOP-DIRNAME)\".
-
-Later, when `desktop-read' evaluates the desktop file, auxiliary information
-is passed as the argument DESKTOP-BUFFER-MISC to functions in
-`desktop-buffer-mode-handlers'.")
-
-(defvar desktop-buffer-mode-handlers nil "\
-Alist of major mode specific functions to restore a desktop buffer.
-Functions listed are called by `desktop-create-buffer' when `desktop-read'
-evaluates the desktop file.  List elements must have the form
-
-   (MAJOR-MODE . RESTORE-BUFFER-FUNCTION).
-
-Buffers with a major mode not specified here, are restored by the default
-handler `desktop-restore-file-buffer'.
-
-Handlers are called with argument list
-
-   (DESKTOP-BUFFER-FILE-NAME DESKTOP-BUFFER-NAME DESKTOP-BUFFER-MISC)
-
-Furthermore, they may use the following variables:
-
-   `desktop-file-version'
-   `desktop-buffer-major-mode'
-   `desktop-buffer-minor-modes'
-   `desktop-buffer-point'
-   `desktop-buffer-mark'
-   `desktop-buffer-read-only'
-   `desktop-buffer-locals'
-
-If a handler returns a buffer, then the saved mode settings
-and variable values for that buffer are copied into it.
-
-Modules that define a major mode that needs a special handler should contain
-code like
-
-   (defun foo-restore-desktop-buffer
-   ...
-   (add-to-list \\='desktop-buffer-mode-handlers
-                \\='(foo-mode . foo-restore-desktop-buffer))
-
-The major mode function must either be autoloaded, or of the form
-\"foobar-mode\" and defined in library \"foobar\", so that desktop
-can guess how to load the mode's definition.")
-
-(put 'desktop-buffer-mode-handlers 'risky-local-variable t)
-
-(defvar desktop-minor-mode-handlers nil "\
-Alist of functions to restore non-standard minor modes.
-Functions are called by `desktop-create-buffer' to restore minor modes.
-List elements must have the form
-
-   (MINOR-MODE . RESTORE-FUNCTION).
-
-Minor modes not specified here, are restored by the standard minor mode
-function.
-
-Handlers are called with argument list
-
-   (DESKTOP-BUFFER-LOCALS)
-
-Furthermore, they may use the following variables:
-
-   `desktop-file-version'
-   `desktop-buffer-file-name'
-   `desktop-buffer-name'
-   `desktop-buffer-major-mode'
-   `desktop-buffer-minor-modes'
-   `desktop-buffer-point'
-   `desktop-buffer-mark'
-   `desktop-buffer-read-only'
-   `desktop-buffer-misc'
-
-When a handler is called, the buffer has been created and the major mode has
-been set, but local variables listed in desktop-buffer-locals has not yet been
-created and set.
-
-Modules that define a minor mode that needs a special handler should contain
-code like
-
-   (defun foo-desktop-restore
-   ...
-   (add-to-list \\='desktop-minor-mode-handlers
-                \\='(foo-mode . foo-desktop-restore))
-
-The minor mode function must either be autoloaded, or of the form
-\"foobar-mode\" and defined in library \"foobar\", so that desktop
-can guess how to load the mode's definition.
-
-See also `desktop-minor-mode-table'.")
-
-(put 'desktop-minor-mode-handlers 'risky-local-variable t)
-
-(autoload 'desktop-clear "desktop" "\
-Empty the Desktop.
-This kills all buffers except for internal ones and those with names matched by
-a regular expression in the list `desktop-clear-preserve-buffers'.
-Furthermore, it clears the variables listed in `desktop-globals-to-clear'.
-When called interactively and `desktop-restore-frames' is non-nil, it also
-deletes all frames except the selected one (and its minibuffer frame,
-if different).
-
-\(fn)" t nil)
-
-(autoload 'desktop-save "desktop" "\
-Save the desktop in a desktop file.
-Parameter DIRNAME specifies where to save the desktop file.
-Optional parameter RELEASE says whether we're done with this
-desktop.  If ONLY-IF-CHANGED is non-nil, compare the current
-desktop information to that in the desktop file, and if the
-desktop information has not changed since it was last saved then
-do not rewrite the file.
-
-This function can save the desktop in either format version
-208 (which only Emacs 25.1 and later can read) or version
-206 (which is readable by any Emacs from version 22.1 onwards).
-By default, it will use the same format the desktop file had when
-it was last saved, or version 208 when writing a fresh desktop
-file.
-
-To upgrade a version 206 file to version 208, call this command
-explicitly with a bare prefix argument: C-u M-x desktop-save.
-You are recommended to do this once you have firmly upgraded to
-Emacs 25.1 (or later).  To downgrade a version 208 file to version
-206, use a double command prefix: C-u C-u M-x desktop-save.
-Confirmation will be requested in either case.  In a non-interactive
-call, VERSION can be given as an integer, either 206 or 208, which
-will be accepted as the format version in which to save the file
-without further confirmation.
-
-\(fn DIRNAME &optional RELEASE ONLY-IF-CHANGED VERSION)" t nil)
-
-(autoload 'desktop-remove "desktop" "\
-Delete desktop file in `desktop-dirname'.
-This function also sets `desktop-dirname' to nil.
-
-\(fn)" t nil)
-
-(autoload 'desktop-read "desktop" "\
-Read and process the desktop file in directory DIRNAME.
-Look for a desktop file in DIRNAME, or if DIRNAME is omitted, look in
-directories listed in `desktop-path'.  If a desktop file is found, it
-is processed and `desktop-after-read-hook' is run.  If no desktop file
-is found, clear the desktop and run `desktop-no-desktop-file-hook'.
-This function is a no-op when Emacs is running in batch mode.
-It returns t if a desktop file was loaded, nil otherwise.
-
-\(fn &optional DIRNAME)" t nil)
-
-(autoload 'desktop-load-default "desktop" "\
-Load the `default' start-up library manually.
-Also inhibit further loading of it.
-
-\(fn)" nil nil)
-
-(make-obsolete 'desktop-load-default 'desktop-save-mode '"22.1")
-
-(autoload 'desktop-change-dir "desktop" "\
-Change to desktop saved in DIRNAME.
-Kill the desktop as specified by variables `desktop-save-mode' and
-`desktop-save', then clear the desktop and load the desktop file in
-directory DIRNAME.
-
-\(fn DIRNAME)" t nil)
-
-(autoload 'desktop-save-in-desktop-dir "desktop" "\
-Save the desktop in directory `desktop-dirname'.
-
-\(fn)" t nil)
-
-(autoload 'desktop-revert "desktop" "\
-Revert to the last loaded desktop.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"desktop" '("desktop-")))
-
-;;;***
-
-;;;### (autoloads nil "deuglify" "gnus/deuglify.el" (0 0 0 0))
-;;; Generated autoloads from gnus/deuglify.el
-
-(autoload 'gnus-article-outlook-unwrap-lines "deuglify" "\
-Unwrap lines that appear to be wrapped citation lines.
-You can control what lines will be unwrapped by frobbing
-`gnus-outlook-deuglify-unwrap-min' and `gnus-outlook-deuglify-unwrap-max',
-indicating the minimum and maximum length of an unwrapped citation line.  If
-NODISPLAY is non-nil, don't redisplay the article buffer.
-
-\(fn &optional NODISPLAY)" t nil)
-
-(autoload 'gnus-article-outlook-repair-attribution "deuglify" "\
-Repair a broken attribution line.
-If NODISPLAY is non-nil, don't redisplay the article buffer.
-
-\(fn &optional NODISPLAY)" t nil)
-
-(autoload 'gnus-outlook-deuglify-article "deuglify" "\
-Full deuglify of broken Outlook (Express) articles.
-Treat dumbquotes, unwrap lines, repair attribution and rearrange citation.  If
-NODISPLAY is non-nil, don't redisplay the article buffer.
-
-\(fn &optional NODISPLAY)" t nil)
-
-(autoload 'gnus-article-outlook-deuglify-article "deuglify" "\
-Deuglify broken Outlook (Express) articles and redisplay.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"deuglify" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "dframe" "dframe.el" (0 0 0 0))
-;;; Generated autoloads from dframe.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dframe" '("dframe-")))
-
-;;;***
-
-;;;### (autoloads nil "diary-lib" "calendar/diary-lib.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from calendar/diary-lib.el
-
-(autoload 'diary "diary-lib" "\
-Generate the diary window for ARG days starting with the current date.
-If no argument is provided, the number of days of diary entries is governed
-by the variable `diary-number-of-entries'.  A value of ARG less than 1
-does nothing.  This function is suitable for execution in an init file.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'diary-mail-entries "diary-lib" "\
-Send a mail message showing diary entries for next NDAYS days.
-If no prefix argument is given, NDAYS is set to `diary-mail-days'.
-Mail is sent to the address specified by `diary-mail-addr'.
-
-Here is an example of a script to call `diary-mail-entries',
-suitable for regular scheduling using cron (or at).  Note that
-since `emacs -script' does not load your init file, you should
-ensure that all relevant variables are set.
-
-#!/usr/bin/emacs -script
-;; diary-rem.el - run the Emacs diary-reminder
-
-\(setq diary-mail-days 3
-      diary-file \"/path/to/diary.file\"
-      calendar-date-style \\='european
-      diary-mail-addr \"address@hidden")
-
-\(diary-mail-entries)
-
-# diary-rem.el ends here
-
-\(fn &optional NDAYS)" t nil)
-
-(autoload 'diary-mode "diary-lib" "\
-Major mode for editing the diary file.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"diary-lib" '("diary-" "calendar-mark-")))
-
-;;;***
-
-;;;### (autoloads nil "diff" "vc/diff.el" (0 0 0 0))
-;;; Generated autoloads from vc/diff.el
-
-(defvar diff-switches (purecopy "-u") "\
-A string or list of strings specifying switches to be passed to diff.")
-
-(custom-autoload 'diff-switches "diff" t)
-
-(defvar diff-command (purecopy "diff") "\
-The command to use to run diff.")
-
-(custom-autoload 'diff-command "diff" t)
-
-(autoload 'diff "diff" "\
-Find and display the differences between OLD and NEW files.
-When called interactively, read NEW, then OLD, using the
-minibuffer.  The default for NEW is the current buffer's file
-name, and the default for OLD is a backup file for NEW, if one
-exists.  If NO-ASYNC is non-nil, call diff synchronously.
-
-When called interactively with a prefix argument, prompt
-interactively for diff switches.  Otherwise, the switches
-specified in the variable `diff-switches' are passed to the diff command.
-
-\(fn OLD NEW &optional SWITCHES NO-ASYNC)" t nil)
-
-(autoload 'diff-backup "diff" "\
-Diff this file with its backup file or vice versa.
-Uses the latest backup, if there are several numerical backups.
-If this file is a backup, diff it with its original.
-The backup file is the first file given to `diff'.
-With prefix arg, prompt for diff switches.
-
-\(fn FILE &optional SWITCHES)" t nil)
-
-(autoload 'diff-latest-backup-file "diff" "\
-Return the latest existing backup of FILE, or nil.
-
-\(fn FN)" nil nil)
-
-(autoload 'diff-buffer-with-file "diff" "\
-View the differences between BUFFER and its associated file.
-This requires the external program `diff' to be in your `exec-path'.
-
-\(fn &optional BUFFER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"diff" '("diff-")))
-
-;;;***
-
-;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (0 0 0 0))
-;;; Generated autoloads from vc/diff-mode.el
-
-(autoload 'diff-mode "diff-mode" "\
-Major mode for viewing/editing context diffs.
-Supports unified and context diffs as well as (to a lesser extent)
-normal diffs.
-
-When the buffer is read-only, the ESC prefix is not necessary.
-If you edit the buffer manually, diff-mode will try to update the hunk
-headers for you on-the-fly.
-
-You can also switch between context diff and unified diff with 
\\[diff-context->unified],
-or vice versa with \\[diff-unified->context] and you can also reverse the 
direction of
-a diff with \\[diff-reverse-direction].
-
-   \\{diff-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'diff-minor-mode "diff-mode" "\
-Toggle Diff minor mode.
-With a prefix argument ARG, enable Diff minor mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-\\{diff-minor-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"diff-mode" '("diff-")))
-
-;;;***
-
-;;;### (autoloads nil "dig" "net/dig.el" (0 0 0 0))
-;;; Generated autoloads from net/dig.el
-
-(autoload 'dig "dig" "\
-Query addresses of a DOMAIN using dig, by calling `dig-invoke'.
-Optional arguments are passed to `dig-invoke'.
-
-\(fn DOMAIN &optional QUERY-TYPE QUERY-CLASS QUERY-OPTION DIG-OPTION SERVER)" 
t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dig" '("query-dig" "dig-")))
-
-;;;***
-
-;;;### (autoloads nil "dired" "dired.el" (0 0 0 0))
-;;; Generated autoloads from dired.el
-
-(defvar dired-listing-switches (purecopy "-al") "\
-Switches passed to `ls' for Dired.  MUST contain the `l' option.
-May contain all other options that don't contradict `-l';
-may contain even `F', `b', `i' and `s'.  See also the variable
-`dired-ls-F-marks-symlinks' concerning the `F' switch.
-On systems such as MS-DOS and MS-Windows, which use `ls' emulation in Lisp,
-some of the `ls' switches are not supported; see the doc string of
-`insert-directory' in `ls-lisp.el' for more details.")
-
-(custom-autoload 'dired-listing-switches "dired" t)
-
-(defvar dired-directory nil "\
-The directory name or wildcard spec that this Dired directory lists.
-Local to each Dired buffer.  May be a list, in which case the car is the
-directory name and the cdr is the list of files to mention.
-The directory name must be absolute, but need not be fully expanded.")
- (define-key ctl-x-map "d" 'dired)
-
-(autoload 'dired "dired" "\
-\"Edit\" directory DIRNAME--delete, rename, print, etc. some files in it.
-Optional second argument SWITCHES specifies the `ls' options used.
-\(Interactively, use a prefix argument to be able to specify SWITCHES.)
-
-If DIRNAME is a string, Dired displays a list of files in DIRNAME (which
-may also have shell wildcards appended to select certain files).
-
-If DIRNAME is a cons, its first element is taken as the directory name
-and the rest as an explicit list of files to make directory entries for.
-In this case, SWITCHES are applied to each of the files separately, and
-therefore switches that control the order of the files in the produced
-listing have no effect.
-
-\\<dired-mode-map>You can flag files for deletion with 
\\[dired-flag-file-deletion] and then
-delete them by typing \\[dired-do-flagged-delete].
-Type \\[describe-mode] after entering Dired for more info.
-
-If DIRNAME is already in a Dired buffer, that buffer is used without refresh.
-
-\(fn DIRNAME &optional SWITCHES)" t nil)
- (define-key ctl-x-4-map "d" 'dired-other-window)
-
-(autoload 'dired-other-window "dired" "\
-\"Edit\" directory DIRNAME.  Like `dired' but selects in another window.
-
-\(fn DIRNAME &optional SWITCHES)" t nil)
- (define-key ctl-x-5-map "d" 'dired-other-frame)
-
-(autoload 'dired-other-frame "dired" "\
-\"Edit\" directory DIRNAME.  Like `dired' but makes a new frame.
-
-\(fn DIRNAME &optional SWITCHES)" t nil)
-
-(autoload 'dired-noselect "dired" "\
-Like `dired' but returns the Dired buffer as value, does not select it.
-
-\(fn DIR-OR-LIST &optional SWITCHES)" nil nil)
-
-(autoload 'dired-mode "dired" "\
-Mode for \"editing\" directory listings.
-In Dired, you are \"editing\" a list of the files in a directory and
-  (optionally) its subdirectories, in the format of `ls -lR'.
-  Each directory is a page: use \\[backward-page] and \\[forward-page] to move 
pagewise.
-\"Editing\" means that you can run shell commands on files, visit,
-  compress, load or byte-compile them, change their file attributes
-  and insert subdirectories into the same buffer.  You can \"mark\"
-  files for later commands or \"flag\" them for deletion, either file
-  by file or all files matching certain criteria.
-You can move using the usual cursor motion commands.\\<dired-mode-map>
-The buffer is read-only.  Digits are prefix arguments.
-Type \\[dired-flag-file-deletion] to flag a file `D' for deletion.
-Type \\[dired-mark] to Mark a file or subdirectory for later commands.
-  Most commands operate on the marked files and use the current file
-  if no files are marked.  Use a numeric prefix argument to operate on
-  the next ARG (or previous -ARG if ARG<0) files, or just `1'
-  to operate on the current file only.  Prefix arguments override marks.
-  Mark-using commands display a list of failures afterwards.  Type 
\\[dired-summary]
-  to see why something went wrong.
-Type \\[dired-unmark] to Unmark a file or all files of an inserted 
subdirectory.
-Type \\[dired-unmark-backward] to back up one line and unmark or unflag.
-Type \\[dired-do-flagged-delete] to delete (eXpunge) the files flagged `D'.
-Type \\[dired-find-file] to Find the current line's file
-  (or dired it in another buffer, if it is a directory).
-Type \\[dired-find-file-other-window] to find file or Dired directory in Other 
window.
-Type \\[dired-maybe-insert-subdir] to Insert a subdirectory in this buffer.
-Type \\[dired-do-rename] to Rename a file or move the marked files to another 
directory.
-Type \\[dired-do-copy] to Copy files.
-Type \\[dired-sort-toggle-or-edit] to toggle Sorting by name/date or change 
the `ls' switches.
-Type \\[revert-buffer] to read all currently expanded directories aGain.
-  This retains all marks and hides subdirs again that were hidden before.
-Use `SPC' and `DEL' to move down and up by lines.
-
-If Dired ever gets confused, you can either type \\[revert-buffer] to read the
-directories again, type \\[dired-do-redisplay] to relist the file at point or 
the marked files or a
-subdirectory, or type \\[dired-build-subdir-alist] to parse the buffer
-again for the directory tree.
-
-Customization variables (rename this buffer and type \\[describe-variable] on 
each line
-for more info):
-
-  `dired-listing-switches'
-  `dired-trivial-filenames'
-  `dired-marker-char'
-  `dired-del-marker'
-  `dired-keep-marker-rename'
-  `dired-keep-marker-copy'
-  `dired-keep-marker-hardlink'
-  `dired-keep-marker-symlink'
-
-Hooks (use \\[describe-variable] to see their documentation):
-
-  `dired-before-readin-hook'
-  `dired-after-readin-hook'
-  `dired-mode-hook'
-  `dired-load-hook'
-
-Keybindings:
-\\{dired-mode-map}
-
-\(fn &optional DIRNAME SWITCHES)" nil nil)
- (put 'dired-find-alternate-file 'disabled t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dired" '("dired-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "dired-aux" "dired-aux.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from dired-aux.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dired-aux" '("dired-" "minibuffer-default-add-dired-shell-commands")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "dired-x" "dired-x.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from dired-x.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dired-x" '("dired-" "virtual-dired")))
-
-;;;***
-
-;;;### (autoloads nil "dirtrack" "dirtrack.el" (0 0 0 0))
-;;; Generated autoloads from dirtrack.el
-
-(autoload 'dirtrack-mode "dirtrack" "\
-Toggle directory tracking in shell buffers (Dirtrack mode).
-With a prefix argument ARG, enable Dirtrack mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-This method requires that your shell prompt contain the current
-working directory at all times, and that you set the variable
-`dirtrack-list' to match the prompt.
-
-This is an alternative to `shell-dirtrack-mode', which works by
-tracking `cd' and similar commands which change the shell working
-directory.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dirtrack "dirtrack" "\
-Determine the current directory from the process output for a prompt.
-This filter function is used by `dirtrack-mode'.  It looks for
-the prompt specified by `dirtrack-list', and calls
-`shell-process-cd' if the directory seems to have changed away
-from `default-directory'.
-
-\(fn INPUT)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dirtrack" '("dirtrack-")))
-
-;;;***
-
-;;;### (autoloads nil "disass" "emacs-lisp/disass.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/disass.el
-
-(autoload 'disassemble "disass" "\
-Print disassembled code for OBJECT in (optional) BUFFER.
-OBJECT can be a symbol defined as a function, or a function itself
-\(a lambda expression or a compiled-function object).
-If OBJECT is not already compiled, we compile it, but do not
-redefine OBJECT if it is a symbol.
-
-\(fn OBJECT &optional BUFFER INDENT INTERACTIVE-P)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"disass" '("disassemble-")))
-
-;;;***
-
-;;;### (autoloads nil "disp-table" "disp-table.el" (0 0 0 0))
-;;; Generated autoloads from disp-table.el
-
-(autoload 'make-display-table "disp-table" "\
-Return a new, empty display table.
-
-\(fn)" nil nil)
-
-(autoload 'display-table-slot "disp-table" "\
-Return the value of the extra slot in DISPLAY-TABLE named SLOT.
-SLOT may be a number from 0 to 5 inclusive, or a slot name (symbol).
-Valid symbols are `truncation', `wrap', `escape', `control',
-`selective-display', and `vertical-border'.
-
-\(fn DISPLAY-TABLE SLOT)" nil nil)
-
-(autoload 'set-display-table-slot "disp-table" "\
-Set the value of the extra slot in DISPLAY-TABLE named SLOT to VALUE.
-SLOT may be a number from 0 to 5 inclusive, or a name (symbol).
-Valid symbols are `truncation', `wrap', `escape', `control',
-`selective-display', and `vertical-border'.
-
-\(fn DISPLAY-TABLE SLOT VALUE)" nil nil)
-
-(autoload 'describe-display-table "disp-table" "\
-Describe the display table DT in a help buffer.
-
-\(fn DT)" nil nil)
-
-(autoload 'describe-current-display-table "disp-table" "\
-Describe the display table in use in the selected window and buffer.
-
-\(fn)" t nil)
-
-(autoload 'standard-display-8bit "disp-table" "\
-Display characters representing raw bytes in the range L to H literally.
-
-On a terminal display, each character in the range is displayed
-by sending the corresponding byte directly to the terminal.
-
-On a graphic display, each character in the range is displayed
-using the default font by a glyph whose code is the corresponding
-byte.
-
-Note that ASCII printable characters (SPC to TILDA) are displayed
-in the default way after this call.
-
-\(fn L H)" nil nil)
-
-(autoload 'standard-display-default "disp-table" "\
-Display characters in the range L to H using the default notation.
-
-\(fn L H)" nil nil)
-
-(autoload 'standard-display-ascii "disp-table" "\
-Display character C using printable string S.
-
-\(fn C S)" nil nil)
-
-(autoload 'standard-display-g1 "disp-table" "\
-Display character C as character SC in the g1 character set.
-This function assumes that your terminal uses the SO/SI characters;
-it is meaningless for an X frame.
-
-\(fn C SC)" nil nil)
-
-(autoload 'standard-display-graphic "disp-table" "\
-Display character C as character GC in graphics character set.
-This function assumes VT100-compatible escapes; it is meaningless for an
-X frame.
-
-\(fn C GC)" nil nil)
-
-(autoload 'standard-display-underline "disp-table" "\
-Display character C as character UC plus underlining.
-
-\(fn C UC)" nil nil)
-
-(autoload 'create-glyph "disp-table" "\
-Allocate a glyph code to display by sending STRING to the terminal.
-
-\(fn STRING)" nil nil)
-
-(autoload 'make-glyph-code "disp-table" "\
-Return a glyph code representing char CHAR with face FACE.
-
-\(fn CHAR &optional FACE)" nil nil)
-
-(autoload 'glyph-char "disp-table" "\
-Return the character of glyph code GLYPH.
-
-\(fn GLYPH)" nil nil)
-
-(autoload 'glyph-face "disp-table" "\
-Return the face of glyph code GLYPH, or nil if glyph has default face.
-
-\(fn GLYPH)" nil nil)
-
-(autoload 'standard-display-european "disp-table" "\
-Semi-obsolete way to toggle display of ISO 8859 European characters.
-
-This function is semi-obsolete; you probably don't need it, or else you
-probably should use `set-language-environment' or `set-locale-environment'.
-
-This function enables European character display if ARG is positive,
-disables it if negative.  Otherwise, it toggles European character display.
-
-When this mode is enabled, characters in the range of 160 to 255
-display not as octal escapes, but as accented characters.  Codes 146
-and 160 display as apostrophe and space, even though they are not the
-ASCII codes for apostrophe and space.
-
-Enabling European character display with this command noninteractively
-from Lisp code also selects Latin-1 as the language environment.
-This provides increased compatibility for users who call this function
-in `.emacs'.
-
-\(fn ARG)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"disp-table" '("display-table-print-array")))
-
-;;;***
-
-;;;### (autoloads nil "dissociate" "play/dissociate.el" (0 0 0 0))
-;;; Generated autoloads from play/dissociate.el
-
-(autoload 'dissociated-press "dissociate" "\
-Dissociate the text of the current buffer.
-Output goes in buffer named *Dissociation*,
-which is redisplayed each time text is added to it.
-Every so often the user must say whether to continue.
-If ARG is positive, require ARG chars of continuity.
-If ARG is negative, require -ARG words of continuity.
-Default is 2.
-
-\(fn &optional ARG)" t nil)
-
-;;;***
-
-;;;### (autoloads nil "dnd" "dnd.el" (0 0 0 0))
-;;; Generated autoloads from dnd.el
-
-(defvar dnd-protocol-alist `((,(purecopy "^file:///") . dnd-open-local-file) 
(,(purecopy "^file://") . dnd-open-file) (,(purecopy "^file:") . 
dnd-open-local-file) (,(purecopy "^\\(https?\\|ftp\\|file\\|nfs\\)://") . 
dnd-open-file)) "\
-The functions to call for different protocols when a drop is made.
-This variable is used by `dnd-handle-one-url' and `dnd-handle-file-name'.
-The list contains of (REGEXP . FUNCTION) pairs.
-The functions shall take two arguments, URL, which is the URL dropped and
-ACTION which is the action to be performed for the drop (move, copy, link,
-private or ask).
-If no match is found here, and the value of `browse-url-browser-function'
-is a pair of (REGEXP . FUNCTION), those regexps are tried for a match.
-If no match is found, the URL is inserted as text by calling `dnd-insert-text'.
-The function shall return the action done (move, copy, link or private)
-if some action was made, or nil if the URL is ignored.")
-
-(custom-autoload 'dnd-protocol-alist "dnd" t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dnd" '("dnd-")))
-
-;;;***
-
-;;;### (autoloads nil "dns" "net/dns.el" (0 0 0 0))
-;;; Generated autoloads from net/dns.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dns" '("dns-")))
-
-;;;***
-
-;;;### (autoloads nil "dns-mode" "textmodes/dns-mode.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/dns-mode.el
-
-(autoload 'dns-mode "dns-mode" "\
-Major mode for viewing and editing DNS master files.
-This mode is inherited from text mode.  It add syntax
-highlighting, and some commands for handling DNS master files.
-Its keymap inherits from `text-mode' and it has the same
-variables for customizing indentation.  It has its own abbrev
-table and its own syntax table.
-
-Turning on DNS mode runs `dns-mode-hook'.
-
-\(fn)" t nil)
- (defalias 'zone-mode 'dns-mode)
-
-(autoload 'dns-mode-soa-increment-serial "dns-mode" "\
-Locate SOA record and increment the serial field.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dns-mode" '("dns-mode-")))
-
-;;;***
-
-;;;### (autoloads nil "doc-view" "doc-view.el" (0 0 0 0))
-;;; Generated autoloads from doc-view.el
-
-(autoload 'doc-view-mode-p "doc-view" "\
-Return non-nil if document type TYPE is available for `doc-view'.
-Document types are symbols like `dvi', `ps', `pdf', or `odf' (any
-OpenDocument format).
-
-\(fn TYPE)" nil nil)
-
-(autoload 'doc-view-mode "doc-view" "\
-Major mode in DocView buffers.
-
-DocView Mode is an Emacs document viewer.  It displays PDF, PS
-and DVI files (as PNG images) in Emacs buffers.
-
-You can use \\<doc-view-mode-map>\\[doc-view-toggle-display] to
-toggle between displaying the document or editing it as text.
-\\{doc-view-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'doc-view-mode-maybe "doc-view" "\
-Switch to `doc-view-mode' if possible.
-If the required external tools are not available, then fallback
-to the next best mode.
-
-\(fn)" nil nil)
-
-(autoload 'doc-view-minor-mode "doc-view" "\
-Toggle displaying buffer via Doc View (Doc View minor mode).
-With a prefix argument ARG, enable Doc View minor mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-See the command `doc-view-mode' for more information on this mode.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'doc-view-bookmark-jump "doc-view" "\
-
-
-\(fn BMK)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"doc-view" '("doc-view-")))
-
-;;;***
-
-;;;### (autoloads nil "doctor" "play/doctor.el" (0 0 0 0))
-;;; Generated autoloads from play/doctor.el
-
-(autoload 'doctor "doctor" "\
-Switch to *doctor* buffer and start giving psychotherapy.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"doctor" '("doc" "make-doctor-variables")))
-
-;;;***
-
-;;;### (autoloads nil "dom" "dom.el" (0 0 0 0))
-;;; Generated autoloads from dom.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dom" '("dom-")))
-
-;;;***
-
-;;;### (autoloads nil "dos-fns" "dos-fns.el" (0 0 0 0))
-;;; Generated autoloads from dos-fns.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dos-fns" '("dos")))
-
-;;;***
-
-;;;### (autoloads nil "dos-vars" "dos-vars.el" (0 0 0 0))
-;;; Generated autoloads from dos-vars.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dos-vars" '("dos-codepage-setup-hook" "msdos-shells")))
-
-;;;***
-
-;;;### (autoloads nil "dos-w32" "dos-w32.el" (0 0 0 0))
-;;; Generated autoloads from dos-w32.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dos-w32" '("w32-" "file-name-buffer-file-type-alist" "find-")))
-
-;;;***
-
-;;;### (autoloads nil "double" "double.el" (0 0 0 0))
-;;; Generated autoloads from double.el
-
-(autoload 'double-mode "double" "\
-Toggle special insertion on double keypresses (Double mode).
-With a prefix argument ARG, enable Double mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-When Double mode is enabled, some keys will insert different
-strings when pressed twice.  See `double-map' for details.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"double" '("double-")))
-
-;;;***
-
-;;;### (autoloads nil "dunnet" "play/dunnet.el" (0 0 0 0))
-;;; Generated autoloads from play/dunnet.el
-(push (purecopy '(dunnet 2 2)) package--builtin-versions)
-
-(autoload 'dunnet "dunnet" "\
-Switch to *dungeon* buffer and start game.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dunnet" '("down" "dun" "out" "obj-special" "south" "north" "west" "east")))
-
-;;;***
-
-;;;### (autoloads nil "dynamic-setting" "dynamic-setting.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from dynamic-setting.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"dynamic-setting" '("dynamic-setting-handle-config-changed-event" 
"font-setting-change-default-font")))
-
-;;;***
-
-;;;### (autoloads nil "easy-mmode" "emacs-lisp/easy-mmode.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from emacs-lisp/easy-mmode.el
-
-(defalias 'easy-mmode-define-minor-mode 'define-minor-mode)
-
-(autoload 'define-minor-mode "easy-mmode" "\
-Define a new minor mode MODE.
-This defines the toggle command MODE and (by default) a control variable
-MODE (you can override this with the :variable keyword, see below).
-DOC is the documentation for the mode toggle command.
-
-The defined mode command takes one optional (prefix) argument.
-Interactively with no prefix argument, it toggles the mode.
-A prefix argument enables the mode if the argument is positive,
-and disables it otherwise.
-
-When called from Lisp, the mode command toggles the mode if the
-argument is `toggle', disables the mode if the argument is a
-non-positive integer, and enables the mode otherwise (including
-if the argument is omitted or nil or a positive integer).
-
-If DOC is nil, give the mode command a basic doc-string
-documenting what its argument does.
-
-Optional INIT-VALUE is the initial value of the mode's variable.
-Optional LIGHTER is displayed in the mode line when the mode is on.
-Optional KEYMAP is the default keymap bound to the mode keymap.
-  If non-nil, it should be a variable name (whose value is a keymap),
-  or an expression that returns either a keymap or a list of
-  (KEY . BINDING) pairs where KEY and BINDING are suitable for
-  `define-key'.  If you supply a KEYMAP argument that is not a
-  symbol, this macro defines the variable MODE-map and gives it
-  the value that KEYMAP specifies.
-
-BODY contains code to execute each time the mode is enabled or disabled.
-  It is executed after toggling the mode, and before running MODE-hook.
-  Before the actual body code, you can write keyword arguments, i.e.
-  alternating keywords and values.  If you provide BODY, then you must
-  provide (even if just nil) INIT-VALUE, LIGHTER, and KEYMAP, or provide
-  at least one keyword argument, or both; otherwise, BODY would be
-  misinterpreted as the first omitted argument.  The following special
-  keywords are supported (other keywords are passed to `defcustom' if
-  the minor mode is global):
-
-:group GROUP   Custom group name to use in all generated `defcustom' forms.
-               Defaults to MODE without the possible trailing \"-mode\".
-               Don't use this default group name unless you have written a
-               `defgroup' to define that group properly.
-:global GLOBAL If non-nil specifies that the minor mode is not meant to be
-               buffer-local, so don't make the variable MODE buffer-local.
-               By default, the mode is buffer-local.
-:init-value VAL        Same as the INIT-VALUE argument.
-               Not used if you also specify :variable.
-:lighter SPEC  Same as the LIGHTER argument.
-:keymap MAP    Same as the KEYMAP argument.
-:require SYM   Same as in `defcustom'.
-:variable PLACE        The location to use instead of the variable MODE to 
store
-               the state of the mode.  This can be simply a different
-               named variable, or a generalized variable.
-               PLACE can also be of the form (GET . SET), where GET is
-               an expression that returns the current state, and SET is
-               a function that takes one argument, the new state, and
-               sets it.  If you specify a :variable, this function does
-               not define a MODE variable (nor any of the terms used
-               in :variable).
-
-:after-hook     A single lisp form which is evaluated after the mode hooks
-                have been run.  It should not be quoted.
-
-For example, you could write
-  (define-minor-mode foo-mode \"If enabled, foo on you!\"
-    :lighter \" Foo\" :require \\='foo :global t :group \\='hassle :version 
\"27.5\"
-    ...BODY CODE...)
-
-\(fn MODE DOC &optional INIT-VALUE LIGHTER KEYMAP &rest BODY)" nil t)
-
-(function-put 'define-minor-mode 'doc-string-elt '2)
-
-(defalias 'easy-mmode-define-global-mode 'define-globalized-minor-mode)
-
-(defalias 'define-global-minor-mode 'define-globalized-minor-mode)
-
-(autoload 'define-globalized-minor-mode "easy-mmode" "\
-Make a global mode GLOBAL-MODE corresponding to buffer-local minor MODE.
-TURN-ON is a function that will be called with no args in every buffer
-  and that should try to turn MODE on if applicable for that buffer.
-KEYS is a list of CL-style keyword arguments.  As the minor mode
-  defined by this function is always global, any :global keyword is
-  ignored.  Other keywords have the same meaning as in `define-minor-mode',
-  which see.  In particular, :group specifies the custom group.
-  The most useful keywords are those that are passed on to the
-  `defcustom'.  It normally makes no sense to pass the :lighter
-  or :keymap keywords to `define-globalized-minor-mode', since these
-  are usually passed to the buffer-local version of the minor mode.
-
-If MODE's set-up depends on the major mode in effect when it was
-enabled, then disabling and reenabling MODE should make MODE work
-correctly with the current major mode.  This is important to
-prevent problems with derived modes, that is, major modes that
-call another major mode in their body.
-
-When a major mode is initialized, MODE is actually turned on just
-after running the major mode's hook.  However, MODE is not turned
-on if the hook has explicitly disabled it.
-
-\(fn GLOBAL-MODE MODE TURN-ON &rest KEYS)" nil t)
-
-(function-put 'define-globalized-minor-mode 'doc-string-elt '2)
-
-(autoload 'easy-mmode-define-keymap "easy-mmode" "\
-Return a keymap built from bindings BS.
-BS must be a list of (KEY . BINDING) where
-KEY and BINDINGS are suitable for `define-key'.
-Optional NAME is passed to `make-sparse-keymap'.
-Optional map M can be used to modify an existing map.
-ARGS is a list of additional keyword arguments.
-
-Valid keywords and arguments are:
-
-  :name      Name of the keymap; overrides NAME argument.
-  :dense     Non-nil for a dense keymap.
-  :inherit   Parent keymap.
-  :group     Ignored.
-  :suppress  Non-nil to call `suppress-keymap' on keymap,
-             `nodigits' to suppress digits as prefix arguments.
-
-\(fn BS &optional NAME M ARGS)" nil nil)
-
-(autoload 'easy-mmode-defmap "easy-mmode" "\
-Define a constant M whose value is the result of `easy-mmode-define-keymap'.
-The M, BS, and ARGS arguments are as per that function.  DOC is
-the constant's documentation.
-
-\(fn M BS DOC &rest ARGS)" nil t)
-
-(autoload 'easy-mmode-defsyntax "easy-mmode" "\
-Define variable ST as a syntax-table.
-CSS contains a list of syntax specifications of the form (CHAR . SYNTAX).
-
-\(fn ST CSS DOC &rest ARGS)" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"easy-mmode" '("easy-mmode-")))
-
-;;;***
-
-;;;### (autoloads nil "easymenu" "emacs-lisp/easymenu.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from emacs-lisp/easymenu.el
-
-(autoload 'easy-menu-define "easymenu" "\
-Define a pop-up menu and/or menu bar menu specified by MENU.
-If SYMBOL is non-nil, define SYMBOL as a function to pop up the
-submenu defined by MENU, with DOC as its doc string.
-
-MAPS, if non-nil, should be a keymap or a list of keymaps; add
-the submenu defined by MENU to the keymap or each of the keymaps,
-as a top-level menu bar item.
-
-The first element of MENU must be a string.  It is the menu bar
-item name.  It may be followed by the following keyword argument
-pairs:
-
- :filter FUNCTION
-    FUNCTION must be a function which, if called with one
-    argument---the list of the other menu items---returns the
-    items to actually display.
-
- :visible INCLUDE
-    INCLUDE is an expression.  The menu is visible if the
-    expression evaluates to a non-nil value.  `:included' is an
-    alias for `:visible'.
-
- :active ENABLE
-    ENABLE is an expression.  The menu is enabled for selection
-    if the expression evaluates to a non-nil value.  `:enable' is
-    an alias for `:active'.
-
-The rest of the elements in MENU are menu items.
-A menu item can be a vector of three elements:
-
-  [NAME CALLBACK ENABLE]
-
-NAME is a string--the menu item name.
-
-CALLBACK is a command to run when the item is chosen, or an
-expression to evaluate when the item is chosen.
-
-ENABLE is an expression; the item is enabled for selection if the
-expression evaluates to a non-nil value.
-
-Alternatively, a menu item may have the form:
-
-   [ NAME CALLBACK [ KEYWORD ARG ]... ]
-
-where NAME and CALLBACK have the same meanings as above, and each
-optional KEYWORD and ARG pair should be one of the following:
-
- :keys KEYS
-    KEYS is a string; a keyboard equivalent to the menu item.
-    This is normally not needed because keyboard equivalents are
-    usually computed automatically.  KEYS is expanded with
-    `substitute-command-keys' before it is used.
-
- :key-sequence KEYS
-    KEYS is a hint for speeding up Emacs's first display of the
-    menu.  It should be nil if you know that the menu item has no
-    keyboard equivalent; otherwise it should be a string or
-    vector specifying a keyboard equivalent for the menu item.
-
- :active ENABLE
-    ENABLE is an expression; the item is enabled for selection
-    whenever this expression's value is non-nil.  `:enable' is an
-    alias for `:active'.
-
- :visible INCLUDE
-    INCLUDE is an expression; this item is only visible if this
-    expression has a non-nil value.  `:included' is an alias for
-    `:visible'.
-
- :label FORM
-    FORM is an expression that is dynamically evaluated and whose
-    value serves as the menu item's label (the default is NAME).
-
- :suffix FORM
-    FORM is an expression that is dynamically evaluated and whose
-    value is concatenated with the menu entry's label.
-
- :style STYLE
-    STYLE is a symbol describing the type of menu item; it should
-    be `toggle' (a checkbox), or `radio' (a radio button), or any
-    other value (meaning an ordinary menu item).
-
- :selected SELECTED
-    SELECTED is an expression; the checkbox or radio button is
-    selected whenever the expression's value is non-nil.
-
- :help HELP
-    HELP is a string, the help to display for the menu item.
-
-Alternatively, a menu item can be a string.  Then that string
-appears in the menu as unselectable text.  A string consisting
-solely of dashes is displayed as a menu separator.
-
-Alternatively, a menu item can be a list with the same format as
-MENU.  This is a submenu.
-
-\(fn SYMBOL MAPS DOC MENU)" nil t)
-
-(function-put 'easy-menu-define 'lisp-indent-function 'defun)
-
-(autoload 'easy-menu-do-define "easymenu" "\
-
-
-\(fn SYMBOL MAPS DOC MENU)" nil nil)
-
-(autoload 'easy-menu-create-menu "easymenu" "\
-Create a menu called MENU-NAME with items described in MENU-ITEMS.
-MENU-NAME is a string, the name of the menu.  MENU-ITEMS is a list of items
-possibly preceded by keyword pairs as described in `easy-menu-define'.
-
-\(fn MENU-NAME MENU-ITEMS)" nil nil)
-
-(autoload 'easy-menu-change "easymenu" "\
-Change menu found at PATH as item NAME to contain ITEMS.
-PATH is a list of strings for locating the menu that
-should contain a submenu named NAME.
-ITEMS is a list of menu items, as in `easy-menu-define'.
-These items entirely replace the previous items in that submenu.
-
-If MAP is specified, it should normally be a keymap; nil stands for the local
-menu-bar keymap.  It can also be a symbol, which has earlier been used as the
-first argument in a call to `easy-menu-define', or the value of such a symbol.
-
-If the menu located by PATH has no submenu named NAME, add one.
-If the optional argument BEFORE is present, add it just before
-the submenu named BEFORE, otherwise add it at the end of the menu.
-
-To implement dynamic menus, either call this from
-`menu-bar-update-hook' or use a menu filter.
-
-\(fn PATH NAME ITEMS &optional BEFORE MAP)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"easymenu" '("easy-menu-" "add-submenu")))
-
-;;;***
-
-;;;### (autoloads nil "ebnf-abn" "progmodes/ebnf-abn.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ebnf-abn.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ebnf-abn" '("ebnf-abn-")))
-
-;;;***
-
-;;;### (autoloads nil "ebnf-bnf" "progmodes/ebnf-bnf.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ebnf-bnf.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ebnf-bnf" '("ebnf-")))
-
-;;;***
-
-;;;### (autoloads nil "ebnf-dtd" "progmodes/ebnf-dtd.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ebnf-dtd.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ebnf-dtd" '("ebnf-dtd-")))
-
-;;;***
-
-;;;### (autoloads nil "ebnf-ebx" "progmodes/ebnf-ebx.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ebnf-ebx.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ebnf-ebx" '("ebnf-ebx-")))
-
-;;;***
-
-;;;### (autoloads nil "ebnf-iso" "progmodes/ebnf-iso.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ebnf-iso.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ebnf-iso" '("ebnf-")))
-
-;;;***
-
-;;;### (autoloads nil "ebnf-otz" "progmodes/ebnf-otz.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ebnf-otz.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ebnf-otz" '("ebnf-")))
-
-;;;***
-
-;;;### (autoloads nil "ebnf-yac" "progmodes/ebnf-yac.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ebnf-yac.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ebnf-yac" '("ebnf-yac-")))
-
-;;;***
-
-;;;### (autoloads nil "ebnf2ps" "progmodes/ebnf2ps.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ebnf2ps.el
-(push (purecopy '(ebnf2ps 4 4)) package--builtin-versions)
-
-(autoload 'ebnf-customize "ebnf2ps" "\
-Customization for ebnf group.
-
-\(fn)" t nil)
-
-(autoload 'ebnf-print-directory "ebnf2ps" "\
-Generate and print a PostScript syntactic chart image of DIRECTORY.
-
-If DIRECTORY is nil, it's used `default-directory'.
-
-The files in DIRECTORY that matches `ebnf-file-suffix-regexp' (which see) are
-processed.
-
-See also `ebnf-print-buffer'.
-
-\(fn &optional DIRECTORY)" t nil)
-
-(autoload 'ebnf-print-file "ebnf2ps" "\
-Generate and print a PostScript syntactic chart image of the file FILE.
-
-If optional arg DO-NOT-KILL-BUFFER-WHEN-DONE is non-nil, the buffer isn't
-killed after process termination.
-
-See also `ebnf-print-buffer'.
-
-\(fn FILE &optional DO-NOT-KILL-BUFFER-WHEN-DONE)" t nil)
-
-(autoload 'ebnf-print-buffer "ebnf2ps" "\
-Generate and print a PostScript syntactic chart image of the buffer.
-
-When called with a numeric prefix argument (C-u), prompts the user for
-the name of a file to save the PostScript image in, instead of sending
-it to the printer.
-
-More specifically, the FILENAME argument is treated as follows: if it
-is nil, send the image to the printer.  If FILENAME is a string, save
-the PostScript image in a file with that name.  If FILENAME is a
-number, prompt the user for the name of the file to save in.
-
-\(fn &optional FILENAME)" t nil)
-
-(autoload 'ebnf-print-region "ebnf2ps" "\
-Generate and print a PostScript syntactic chart image of the region.
-Like `ebnf-print-buffer', but prints just the current region.
-
-\(fn FROM TO &optional FILENAME)" t nil)
-
-(autoload 'ebnf-spool-directory "ebnf2ps" "\
-Generate and spool a PostScript syntactic chart image of DIRECTORY.
-
-If DIRECTORY is nil, it's used `default-directory'.
-
-The files in DIRECTORY that matches `ebnf-file-suffix-regexp' (which see) are
-processed.
-
-See also `ebnf-spool-buffer'.
-
-\(fn &optional DIRECTORY)" t nil)
-
-(autoload 'ebnf-spool-file "ebnf2ps" "\
-Generate and spool a PostScript syntactic chart image of the file FILE.
-
-If optional arg DO-NOT-KILL-BUFFER-WHEN-DONE is non-nil, the buffer isn't
-killed after process termination.
-
-See also `ebnf-spool-buffer'.
-
-\(fn FILE &optional DO-NOT-KILL-BUFFER-WHEN-DONE)" t nil)
-
-(autoload 'ebnf-spool-buffer "ebnf2ps" "\
-Generate and spool a PostScript syntactic chart image of the buffer.
-Like `ebnf-print-buffer' except that the PostScript image is saved in a
-local buffer to be sent to the printer later.
-
-Use the command `ebnf-despool' to send the spooled images to the printer.
-
-\(fn)" t nil)
-
-(autoload 'ebnf-spool-region "ebnf2ps" "\
-Generate a PostScript syntactic chart image of the region and spool locally.
-Like `ebnf-spool-buffer', but spools just the current region.
-
-Use the command `ebnf-despool' to send the spooled images to the printer.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'ebnf-eps-directory "ebnf2ps" "\
-Generate EPS files from EBNF files in DIRECTORY.
-
-If DIRECTORY is nil, it's used `default-directory'.
-
-The files in DIRECTORY that matches `ebnf-file-suffix-regexp' (which see) are
-processed.
-
-See also `ebnf-eps-buffer'.
-
-\(fn &optional DIRECTORY)" t nil)
-
-(autoload 'ebnf-eps-file "ebnf2ps" "\
-Generate an EPS file from EBNF file FILE.
-
-If optional arg DO-NOT-KILL-BUFFER-WHEN-DONE is non-nil, the buffer isn't
-killed after EPS generation.
-
-See also `ebnf-eps-buffer'.
-
-\(fn FILE &optional DO-NOT-KILL-BUFFER-WHEN-DONE)" t nil)
-
-(autoload 'ebnf-eps-buffer "ebnf2ps" "\
-Generate a PostScript syntactic chart image of the buffer in an EPS file.
-
-Generate an EPS file for each production in the buffer.
-The EPS file name has the following form:
-
-   <PREFIX><PRODUCTION>.eps
-
-<PREFIX>     is given by variable `ebnf-eps-prefix'.
-            The default value is \"ebnf--\".
-
-<PRODUCTION> is the production name.
-            Some characters in the production file name are replaced to
-            produce a valid file name.  For example, the production name
-            \"A/B + C\" is modified to produce \"A_B_+_C\", and the EPS
-            file name used in this case will be \"ebnf--A_B_+_C.eps\".
-
-WARNING: This function does *NOT* ask any confirmation to override existing
-        files.
-
-\(fn)" t nil)
-
-(autoload 'ebnf-eps-region "ebnf2ps" "\
-Generate a PostScript syntactic chart image of the region in an EPS file.
-
-Generate an EPS file for each production in the region.
-The EPS file name has the following form:
-
-   <PREFIX><PRODUCTION>.eps
-
-<PREFIX>     is given by variable `ebnf-eps-prefix'.
-            The default value is \"ebnf--\".
-
-<PRODUCTION> is the production name.
-            Some characters in the production file name are replaced to
-            produce a valid file name.  For example, the production name
-            \"A/B + C\" is modified to produce \"A_B_+_C\", and the EPS
-            file name used in this case will be \"ebnf--A_B_+_C.eps\".
-
-WARNING: This function does *NOT* ask any confirmation to override existing
-        files.
-
-\(fn FROM TO)" t nil)
-
-(defalias 'ebnf-despool 'ps-despool)
-
-(autoload 'ebnf-syntax-directory "ebnf2ps" "\
-Do a syntactic analysis of the files in DIRECTORY.
-
-If DIRECTORY is nil, use `default-directory'.
-
-Only the files in DIRECTORY that match `ebnf-file-suffix-regexp' (which see)
-are processed.
-
-See also `ebnf-syntax-buffer'.
-
-\(fn &optional DIRECTORY)" t nil)
-
-(autoload 'ebnf-syntax-file "ebnf2ps" "\
-Do a syntactic analysis of the named FILE.
-
-If optional arg DO-NOT-KILL-BUFFER-WHEN-DONE is non-nil, the buffer isn't
-killed after syntax checking.
-
-See also `ebnf-syntax-buffer'.
-
-\(fn FILE &optional DO-NOT-KILL-BUFFER-WHEN-DONE)" t nil)
-
-(autoload 'ebnf-syntax-buffer "ebnf2ps" "\
-Do a syntactic analysis of the current buffer.
-
-\(fn)" t nil)
-
-(autoload 'ebnf-syntax-region "ebnf2ps" "\
-Do a syntactic analysis of a region.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'ebnf-setup "ebnf2ps" "\
-Return the current ebnf2ps setup.
-
-\(fn)" nil nil)
-
-(autoload 'ebnf-find-style "ebnf2ps" "\
-Return style definition if NAME is already defined; otherwise, return nil.
-
-See `ebnf-style-database' documentation.
-
-\(fn NAME)" t nil)
-
-(autoload 'ebnf-insert-style "ebnf2ps" "\
-Insert a new style NAME with inheritance INHERITS and values VALUES.
-
-See `ebnf-style-database' documentation.
-
-\(fn NAME INHERITS &rest VALUES)" t nil)
-
-(autoload 'ebnf-delete-style "ebnf2ps" "\
-Delete style NAME.
-
-See `ebnf-style-database' documentation.
-
-\(fn NAME)" t nil)
-
-(autoload 'ebnf-merge-style "ebnf2ps" "\
-Merge values of style NAME with style VALUES.
-
-See `ebnf-style-database' documentation.
-
-\(fn NAME &rest VALUES)" t nil)
-
-(autoload 'ebnf-apply-style "ebnf2ps" "\
-Set STYLE as the current style.
-
-Returns the old style symbol.
-
-See `ebnf-style-database' documentation.
-
-\(fn STYLE)" t nil)
-
-(autoload 'ebnf-reset-style "ebnf2ps" "\
-Reset current style.
-
-Returns the old style symbol.
-
-See `ebnf-style-database' documentation.
-
-\(fn &optional STYLE)" t nil)
-
-(autoload 'ebnf-push-style "ebnf2ps" "\
-Push the current style onto a stack and set STYLE as the current style.
-
-Returns the old style symbol.
-
-See also `ebnf-pop-style'.
-
-See `ebnf-style-database' documentation.
-
-\(fn &optional STYLE)" t nil)
-
-(autoload 'ebnf-pop-style "ebnf2ps" "\
-Pop a style from the stack of pushed styles and set it as the current style.
-
-Returns the old style symbol.
-
-See also `ebnf-push-style'.
-
-See `ebnf-style-database' documentation.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ebnf2ps" '("ebnf-")))
-
-;;;***
-
-;;;### (autoloads nil "ebrowse" "progmodes/ebrowse.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ebrowse.el
-
-(autoload 'ebrowse-tree-mode "ebrowse" "\
-Major mode for Ebrowse class tree buffers.
-Each line corresponds to a class in a class tree.
-Letters do not insert themselves, they are commands.
-File operations in the tree buffer work on class tree data structures.
-E.g.\\[save-buffer] writes the tree to the file it was loaded from.
-
-Tree mode key bindings:
-\\{ebrowse-tree-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-electric-choose-tree "ebrowse" "\
-Return a buffer containing a tree or nil if no tree found or canceled.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-member-mode "ebrowse" "\
-Major mode for Ebrowse member buffers.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-tags-view-declaration "ebrowse" "\
-View declaration of member at point.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-tags-find-declaration "ebrowse" "\
-Find declaration of member at point.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-tags-view-definition "ebrowse" "\
-View definition of member at point.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-tags-find-definition "ebrowse" "\
-Find definition of member at point.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-tags-find-declaration-other-window "ebrowse" "\
-Find declaration of member at point in other window.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-tags-view-definition-other-window "ebrowse" "\
-View definition of member at point in other window.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-tags-find-definition-other-window "ebrowse" "\
-Find definition of member at point in other window.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-tags-find-declaration-other-frame "ebrowse" "\
-Find definition of member at point in other frame.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-tags-view-definition-other-frame "ebrowse" "\
-View definition of member at point in other frame.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-tags-find-definition-other-frame "ebrowse" "\
-Find definition of member at point in other frame.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-tags-complete-symbol "ebrowse" "\
-Perform completion on the C++ symbol preceding point.
-A second call of this function without changing point inserts the next match.
-A call with prefix PREFIX reads the symbol to insert from the minibuffer with
-completion.
-
-\(fn PREFIX)" t nil)
-
-(autoload 'ebrowse-tags-loop-continue "ebrowse" "\
-Repeat last operation on files in tree.
-FIRST-TIME non-nil means this is not a repetition, but the first time.
-TREE-BUFFER if indirectly specifies which files to loop over.
-
-\(fn &optional FIRST-TIME TREE-BUFFER)" t nil)
-
-(autoload 'ebrowse-tags-search "ebrowse" "\
-Search for REGEXP in all files in a tree.
-If marked classes exist, process marked classes, only.
-If regular expression is nil, repeat last search.
-
-\(fn REGEXP)" t nil)
-
-(autoload 'ebrowse-tags-query-replace "ebrowse" "\
-Query replace FROM with TO in all files of a class tree.
-With prefix arg, process files of marked classes only.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'ebrowse-tags-search-member-use "ebrowse" "\
-Search for call sites of a member.
-If FIX-NAME is specified, search uses of that member.
-Otherwise, read a member name from the minibuffer.
-Searches in all files mentioned in a class tree for something that
-looks like a function call to the member.
-
-\(fn &optional FIX-NAME)" t nil)
-
-(autoload 'ebrowse-back-in-position-stack "ebrowse" "\
-Move backward in the position stack.
-Prefix arg ARG says how much.
-
-\(fn ARG)" t nil)
-
-(autoload 'ebrowse-forward-in-position-stack "ebrowse" "\
-Move forward in the position stack.
-Prefix arg ARG says how much.
-
-\(fn ARG)" t nil)
-
-(autoload 'ebrowse-electric-position-menu "ebrowse" "\
-List positions in the position stack in an electric buffer.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-save-tree "ebrowse" "\
-Save current tree in same file it was loaded from.
-
-\(fn)" t nil)
-
-(autoload 'ebrowse-save-tree-as "ebrowse" "\
-Write the current tree data structure to a file.
-Read the file name from the minibuffer if interactive.
-Otherwise, FILE-NAME specifies the file to save the tree in.
-
-\(fn &optional FILE-NAME)" t nil)
-
-(autoload 'ebrowse-statistics "ebrowse" "\
-Display statistics for a class tree.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ebrowse" '("electric-buffer-menu-mode-hook" "ebrowse-")))
-
-;;;***
-
-;;;### (autoloads nil "ebuff-menu" "ebuff-menu.el" (0 0 0 0))
-;;; Generated autoloads from ebuff-menu.el
-
-(autoload 'electric-buffer-list "ebuff-menu" "\
-Pop up the Buffer Menu in an \"electric\" window.
-If you type SPC or RET (`Electric-buffer-menu-select'), that
-selects the buffer at point and quits the \"electric\" window.
-Otherwise, you can move around in the Buffer Menu, marking
-buffers to be selected, saved or deleted; these other commands
-are much like those of `Buffer-menu-mode'.
-
-Run hooks in `electric-buffer-menu-mode-hook' on entry.
-
-\\<electric-buffer-menu-mode-map>
-\\[keyboard-quit] or \\[Electric-buffer-menu-quit] -- exit buffer menu, 
returning to previous window and buffer
-  configuration.  If the very first character typed is a space, it
-  also has this effect.
-\\[Electric-buffer-menu-select] -- select buffer of line point is on.
-  Also show buffers marked with m in other windows,
-  deletes buffers marked with \"D\", and saves those marked with \"S\".
-\\[Buffer-menu-mark] -- mark buffer to be displayed.
-\\[Buffer-menu-not-modified] -- clear modified-flag on that buffer.
-\\[Buffer-menu-save] -- mark that buffer to be saved.
-\\[Buffer-menu-delete] or \\[Buffer-menu-delete-backwards] -- mark that buffer 
to be deleted.
-\\[Buffer-menu-unmark] -- remove all kinds of marks from current line.
-\\[Buffer-menu-unmark-all] -- remove all kinds of marks from all lines.
-\\[Electric-buffer-menu-mode-view-buffer] -- view buffer, returning when done.
-\\[Buffer-menu-backup-unmark] -- back up a line and remove marks.
-
-\(fn ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ebuff-menu" '("electric-buffer-" "Electric-buffer-menu-")))
-
-;;;***
-
-;;;### (autoloads nil "echistory" "echistory.el" (0 0 0 0))
-;;; Generated autoloads from echistory.el
-
-(autoload 'Electric-command-history-redo-expression "echistory" "\
-Edit current history line in minibuffer and execute result.
-With prefix arg NOCONFIRM, execute current line as-is without editing.
-
-\(fn &optional NOCONFIRM)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"echistory" '("Electric-history-" "electric-")))
-
-;;;***
-
-;;;### (autoloads nil "ecomplete" "ecomplete.el" (0 0 0 0))
-;;; Generated autoloads from ecomplete.el
-
-(autoload 'ecomplete-setup "ecomplete" "\
-
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ecomplete" '("ecomplete-")))
-
-;;;***
-
-;;;### (autoloads nil "ede" "cedet/ede.el" (0 0 0 0))
-;;; Generated autoloads from cedet/ede.el
-(push (purecopy '(ede 1 2)) package--builtin-versions)
-
-(defvar global-ede-mode nil "\
-Non-nil if Global Ede mode is enabled.
-See the `global-ede-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-ede-mode'.")
-
-(custom-autoload 'global-ede-mode "ede" nil)
-
-(autoload 'global-ede-mode "ede" "\
-Toggle global EDE (Emacs Development Environment) mode.
-With a prefix argument ARG, enable global EDE mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-This global minor mode enables `ede-minor-mode' in all buffers in
-an EDE controlled project.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede" '("project-try-ede" "ede" "global-ede-mode-map")))
-
-;;;***
-
-;;;### (autoloads nil "ede/auto" "cedet/ede/auto.el" (0 0 0 0))
-;;; Generated autoloads from cedet/ede/auto.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/auto" '("ede-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/autoconf-edit" "cedet/ede/autoconf-edit.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/autoconf-edit.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/autoconf-edit" '("autoconf-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/base" 
"cedet/ede/base.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/base.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/base" '("ede-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/config" 
"cedet/ede/config.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/config.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/config" '("ede-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/cpp-root"
-;;;;;;  "cedet/ede/cpp-root.el" (0 0 0 0))
-;;; Generated autoloads from cedet/ede/cpp-root.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/cpp-root" '("ede-c")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/custom" 
"cedet/ede/custom.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/custom.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/custom" '("eieio-ede-old-variables" "ede-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/detect" "cedet/ede/detect.el" (0 0 0 0))
-;;; Generated autoloads from cedet/ede/detect.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/detect" '("ede-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/dired" 
"cedet/ede/dired.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/dired.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/dired" '("ede-dired-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/emacs" 
"cedet/ede/emacs.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/emacs.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/emacs" '("ede-emacs-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/files" 
"cedet/ede/files.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/files.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/files" '("ede-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/generic"
-;;;;;;  "cedet/ede/generic.el" (0 0 0 0))
-;;; Generated autoloads from cedet/ede/generic.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/generic" '("ede-generic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/linux" 
"cedet/ede/linux.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/linux.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/linux" '("ede-linux-" "project-linux-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/locate" 
"cedet/ede/locate.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/locate.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/locate" '("ede-locate-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/make" 
"cedet/ede/make.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/make.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/make" '("ede-make-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/makefile-edit" "cedet/ede/makefile-edit.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/makefile-edit.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/makefile-edit" '("makefile-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/pconf" "cedet/ede/pconf.el" (0 0 0 0))
-;;; Generated autoloads from cedet/ede/pconf.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/pconf" '("ede-pconf-create-file-query")))
-
-;;;***
-
-;;;### (autoloads nil "ede/pmake" "cedet/ede/pmake.el" (0 0 0 0))
-;;; Generated autoloads from cedet/ede/pmake.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/pmake" '("ede-pmake-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/proj" "cedet/ede/proj.el" (0 0 0 0))
-;;; Generated autoloads from cedet/ede/proj.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/proj" '("ede-proj-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/proj-archive" "cedet/ede/proj-archive.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/proj-archive.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/proj-archive" '("ede-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/proj-aux" "cedet/ede/proj-aux.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from cedet/ede/proj-aux.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/proj-aux" '("ede-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/proj-comp" "cedet/ede/proj-comp.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from cedet/ede/proj-comp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/proj-comp" '("proj-comp-insert-variable-once" "ede-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/proj-elisp" "cedet/ede/proj-elisp.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/proj-elisp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/proj-elisp" '("ede-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/proj-info" "cedet/ede/proj-info.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from cedet/ede/proj-info.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/proj-info" '("ede-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/proj-misc" "cedet/ede/proj-misc.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from cedet/ede/proj-misc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/proj-misc" '("ede-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/proj-obj" "cedet/ede/proj-obj.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from cedet/ede/proj-obj.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/proj-obj" '("ede-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/proj-prog" "cedet/ede/proj-prog.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from cedet/ede/proj-prog.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/proj-prog" '("ede-proj-target-makefile-program")))
-
-;;;***
-
-;;;### (autoloads nil "ede/proj-scheme" "cedet/ede/proj-scheme.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/proj-scheme.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/proj-scheme" '("ede-proj-target-scheme")))
-
-;;;***
-
-;;;### (autoloads nil "ede/proj-shared" "cedet/ede/proj-shared.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/proj-shared.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/proj-shared" '("ede-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/project-am" "cedet/ede/project-am.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/project-am.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/project-am" '("project-am-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/shell" 
"cedet/ede/shell.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/shell.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/shell" '("ede-shell-run-command")))
-
-;;;***
-
-;;;### (autoloads nil "ede/simple" "cedet/ede/simple.el" (0 0 0 0))
-;;; Generated autoloads from cedet/ede/simple.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/simple" '("ede-simple-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/source" "cedet/ede/source.el" (0 0 0 0))
-;;; Generated autoloads from cedet/ede/source.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/source" '("ede-source")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/speedbar"
-;;;;;;  "cedet/ede/speedbar.el" (0 0 0 0))
-;;; Generated autoloads from cedet/ede/speedbar.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/speedbar" '("ede-")))
-
-;;;***
-
-;;;### (autoloads nil "ede/srecode" "cedet/ede/srecode.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from cedet/ede/srecode.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/srecode" '("ede-srecode-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ede/util" 
"cedet/ede/util.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/ede/util.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ede/util" '("ede-make-buffer-writable")))
-
-;;;***
-
-;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/edebug.el
-
-(defvar edebug-all-defs nil "\
-If non-nil, evaluating defining forms instruments for Edebug.
-This applies to `eval-defun', `eval-region', `eval-buffer', and
-`eval-current-buffer'.  `eval-region' is also called by
-`eval-last-sexp', and `eval-print-last-sexp'.
-
-You can use the command `edebug-all-defs' to toggle the value of this
-variable.  You may wish to make it local to each buffer with
-\(make-local-variable \\='edebug-all-defs) in your
-`emacs-lisp-mode-hook'.")
-
-(custom-autoload 'edebug-all-defs "edebug" t)
-
-(defvar edebug-all-forms nil "\
-Non-nil means evaluation of all forms will instrument for Edebug.
-This doesn't apply to loading or evaluations in the minibuffer.
-Use the command `edebug-all-forms' to toggle the value of this option.")
-
-(custom-autoload 'edebug-all-forms "edebug" t)
-
-(autoload 'edebug-basic-spec "edebug" "\
-Return t if SPEC uses only extant spec symbols.
-An extant spec symbol is a symbol that is not a function and has a
-`edebug-form-spec' property.
-
-\(fn SPEC)" nil nil)
-
-(defalias 'edebug-defun 'edebug-eval-top-level-form)
-
-(autoload 'edebug-eval-top-level-form "edebug" "\
-Evaluate the top level form point is in, stepping through with Edebug.
-This is like `eval-defun' except that it steps the code for Edebug
-before evaluating it.  It displays the value in the echo area
-using `eval-expression' (which see).
-
-If you do this on a function definition such as a defun or defmacro,
-it defines the function and instruments its definition for Edebug,
-so it will do Edebug stepping when called later.  It displays
-`Edebug: FUNCTION' in the echo area to indicate that FUNCTION is now
-instrumented for Edebug.
-
-If the current defun is actually a call to `defvar' or `defcustom',
-evaluating it this way resets the variable using its initial value
-expression even if the variable already has some other value.
-\(Normally `defvar' and `defcustom' do not alter the value if there
-already is one.)
-
-\(fn)" t nil)
-
-(autoload 'edebug-all-defs "edebug" "\
-Toggle edebugging of all definitions.
-
-\(fn)" t nil)
-
-(autoload 'edebug-all-forms "edebug" "\
-Toggle edebugging of all forms.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"edebug" '("edebug" "get-edebug-spec" "global-edebug-" 
"cancel-edebug-on-entry")))
-
-;;;***
-
-;;;### (autoloads nil "ediff" "vc/ediff.el" (0 0 0 0))
-;;; Generated autoloads from vc/ediff.el
-(push (purecopy '(ediff 2 81 4)) package--builtin-versions)
-
-(autoload 'ediff-files "ediff" "\
-Run Ediff on a pair of files, FILE-A and FILE-B.
-
-\(fn FILE-A FILE-B &optional STARTUP-HOOKS)" t nil)
-
-(autoload 'ediff-files3 "ediff" "\
-Run Ediff on three files, FILE-A, FILE-B, and FILE-C.
-
-\(fn FILE-A FILE-B FILE-C &optional STARTUP-HOOKS)" t nil)
-
-(defalias 'ediff3 'ediff-files3)
-
-(defalias 'ediff 'ediff-files)
-
-(autoload 'ediff-current-file "ediff" "\
-Start ediff between current buffer and its file on disk.
-This command can be used instead of `revert-buffer'.  If there is
-nothing to revert then this command fails.
-
-\(fn)" t nil)
-
-(autoload 'ediff-backup "ediff" "\
-Run Ediff on FILE and its backup file.
-Uses the latest backup, if there are several numerical backups.
-If this file is a backup, `ediff' it with its original.
-
-\(fn FILE)" t nil)
-
-(autoload 'ediff-buffers "ediff" "\
-Run Ediff on a pair of buffers, BUFFER-A and BUFFER-B.
-
-\(fn BUFFER-A BUFFER-B &optional STARTUP-HOOKS JOB-NAME)" t nil)
-
-(defalias 'ebuffers 'ediff-buffers)
-
-(autoload 'ediff-buffers3 "ediff" "\
-Run Ediff on three buffers, BUFFER-A, BUFFER-B, and BUFFER-C.
-
-\(fn BUFFER-A BUFFER-B BUFFER-C &optional STARTUP-HOOKS JOB-NAME)" t nil)
-
-(defalias 'ebuffers3 'ediff-buffers3)
-
-(autoload 'ediff-directories "ediff" "\
-Run Ediff on a pair of directories, DIR1 and DIR2, comparing files that have
-the same name in both.  The third argument, REGEXP, is nil or a regular
-expression; only file names that match the regexp are considered.
-
-\(fn DIR1 DIR2 REGEXP)" t nil)
-
-(defalias 'edirs 'ediff-directories)
-
-(autoload 'ediff-directory-revisions "ediff" "\
-Run Ediff on a directory, DIR1, comparing its files with their revisions.
-The second argument, REGEXP, is a regular expression that filters the file
-names.  Only the files that are under revision control are taken into account.
-
-\(fn DIR1 REGEXP)" t nil)
-
-(defalias 'edir-revisions 'ediff-directory-revisions)
-
-(autoload 'ediff-directories3 "ediff" "\
-Run Ediff on three directories, DIR1, DIR2, and DIR3, comparing files that
-have the same name in all three.  The last argument, REGEXP, is nil or a
-regular expression; only file names that match the regexp are considered.
-
-\(fn DIR1 DIR2 DIR3 REGEXP)" t nil)
-
-(defalias 'edirs3 'ediff-directories3)
-
-(autoload 'ediff-merge-directories "ediff" "\
-Run Ediff on a pair of directories, DIR1 and DIR2, merging files that have
-the same name in both.  The third argument, REGEXP, is nil or a regular
-expression; only file names that match the regexp are considered.
-
-\(fn DIR1 DIR2 REGEXP &optional MERGE-AUTOSTORE-DIR)" t nil)
-
-(defalias 'edirs-merge 'ediff-merge-directories)
-
-(autoload 'ediff-merge-directories-with-ancestor "ediff" "\
-Merge files in directories DIR1 and DIR2 using files in ANCESTOR-DIR as 
ancestors.
-Ediff merges files that have identical names in DIR1, DIR2.  If a pair of files
-in DIR1 and DIR2 doesn't have an ancestor in ANCESTOR-DIR, Ediff will merge
-without ancestor.  The fourth argument, REGEXP, is nil or a regular expression;
-only file names that match the regexp are considered.
-
-\(fn DIR1 DIR2 ANCESTOR-DIR REGEXP &optional MERGE-AUTOSTORE-DIR)" t nil)
-
-(autoload 'ediff-merge-directory-revisions "ediff" "\
-Run Ediff on a directory, DIR1, merging its files with their revisions.
-The second argument, REGEXP, is a regular expression that filters the file
-names.  Only the files that are under revision control are taken into account.
-
-\(fn DIR1 REGEXP &optional MERGE-AUTOSTORE-DIR)" t nil)
-
-(defalias 'edir-merge-revisions 'ediff-merge-directory-revisions)
-
-(autoload 'ediff-merge-directory-revisions-with-ancestor "ediff" "\
-Run Ediff on a directory, DIR1, merging its files with their revisions and 
ancestors.
-The second argument, REGEXP, is a regular expression that filters the file
-names.  Only the files that are under revision control are taken into account.
-
-\(fn DIR1 REGEXP &optional MERGE-AUTOSTORE-DIR)" t nil)
-
-(defalias 'edir-merge-revisions-with-ancestor 
'ediff-merge-directory-revisions-with-ancestor)
-
-(defalias 'edirs-merge-with-ancestor 'ediff-merge-directories-with-ancestor)
-
-(autoload 'ediff-windows-wordwise "ediff" "\
-Compare WIND-A and WIND-B, which are selected by clicking, wordwise.
-With prefix argument, DUMB-MODE, or on a non-windowing display, works as
-follows:
-If WIND-A is nil, use selected window.
-If WIND-B is nil, use window next to WIND-A.
-
-\(fn DUMB-MODE &optional WIND-A WIND-B STARTUP-HOOKS)" t nil)
-
-(autoload 'ediff-windows-linewise "ediff" "\
-Compare WIND-A and WIND-B, which are selected by clicking, linewise.
-With prefix argument, DUMB-MODE, or on a non-windowing display, works as
-follows:
-If WIND-A is nil, use selected window.
-If WIND-B is nil, use window next to WIND-A.
-
-\(fn DUMB-MODE &optional WIND-A WIND-B STARTUP-HOOKS)" t nil)
-
-(autoload 'ediff-regions-wordwise "ediff" "\
-Run Ediff on a pair of regions in specified buffers.
-Regions (i.e., point and mark) can be set in advance or marked interactively.
-This function is effective only for relatively small regions, up to 200
-lines.  For large regions, use `ediff-regions-linewise'.
-
-\(fn BUFFER-A BUFFER-B &optional STARTUP-HOOKS)" t nil)
-
-(autoload 'ediff-regions-linewise "ediff" "\
-Run Ediff on a pair of regions in specified buffers.
-Regions (i.e., point and mark) can be set in advance or marked interactively.
-Each region is enlarged to contain full lines.
-This function is effective for large regions, over 100-200
-lines.  For small regions, use `ediff-regions-wordwise'.
-
-\(fn BUFFER-A BUFFER-B &optional STARTUP-HOOKS)" t nil)
-
-(defalias 'ediff-merge 'ediff-merge-files)
-
-(autoload 'ediff-merge-files "ediff" "\
-Merge two files without ancestor.
-
-\(fn FILE-A FILE-B &optional STARTUP-HOOKS MERGE-BUFFER-FILE)" t nil)
-
-(autoload 'ediff-merge-files-with-ancestor "ediff" "\
-Merge two files with ancestor.
-
-\(fn FILE-A FILE-B FILE-ANCESTOR &optional STARTUP-HOOKS MERGE-BUFFER-FILE)" t 
nil)
-
-(defalias 'ediff-merge-with-ancestor 'ediff-merge-files-with-ancestor)
-
-(autoload 'ediff-merge-buffers "ediff" "\
-Merge buffers without ancestor.
-
-\(fn BUFFER-A BUFFER-B &optional STARTUP-HOOKS JOB-NAME MERGE-BUFFER-FILE)" t 
nil)
-
-(autoload 'ediff-merge-buffers-with-ancestor "ediff" "\
-Merge buffers with ancestor.
-
-\(fn BUFFER-A BUFFER-B BUFFER-ANCESTOR &optional STARTUP-HOOKS JOB-NAME 
MERGE-BUFFER-FILE)" t nil)
-
-(autoload 'ediff-merge-revisions "ediff" "\
-Run Ediff by merging two revisions of a file.
-The file is the optional FILE argument or the file visited by the current
-buffer.
-
-\(fn &optional FILE STARTUP-HOOKS MERGE-BUFFER-FILE)" t nil)
-
-(autoload 'ediff-merge-revisions-with-ancestor "ediff" "\
-Run Ediff by merging two revisions of a file with a common ancestor.
-The file is the optional FILE argument or the file visited by the current
-buffer.
-
-\(fn &optional FILE STARTUP-HOOKS MERGE-BUFFER-FILE)" t nil)
-
-(autoload 'ediff-patch-file "ediff" "\
-Query for a file name, and then run Ediff by patching that file.
-If optional PATCH-BUF is given, use the patch in that buffer
-and don't ask the user.
-If prefix argument, then: if even argument, assume that the patch is in a
-buffer. If odd -- assume it is in a file.
-
-\(fn &optional ARG PATCH-BUF)" t nil)
-
-(autoload 'ediff-patch-buffer "ediff" "\
-Run Ediff by patching the buffer specified at prompt.
-Without the optional prefix ARG, asks if the patch is in some buffer and
-prompts for the buffer or a file, depending on the answer.
-With ARG=1, assumes the patch is in a file and prompts for the file.
-With ARG=2, assumes the patch is in a buffer and prompts for the buffer.
-PATCH-BUF is an optional argument, which specifies the buffer that contains the
-patch. If not given, the user is prompted according to the prefix argument.
-
-\(fn &optional ARG PATCH-BUF)" t nil)
-
-(defalias 'epatch 'ediff-patch-file)
-
-(defalias 'epatch-buffer 'ediff-patch-buffer)
-
-(autoload 'ediff-revision "ediff" "\
-Run Ediff by comparing versions of a file.
-The file is an optional FILE argument or the file entered at the prompt.
-Default: the file visited by the current buffer.
-Uses `vc.el' or `rcs.el' depending on `ediff-version-control-package'.
-
-\(fn &optional FILE STARTUP-HOOKS)" t nil)
-
-(defalias 'erevision 'ediff-revision)
-
-(autoload 'ediff-version "ediff" "\
-Return string describing the version of Ediff.
-When called interactively, displays the version.
-
-\(fn)" t nil)
-
-(autoload 'ediff-documentation "ediff" "\
-Display Ediff's manual.
-With optional NODE, goes to that node.
-
-\(fn &optional NODE)" t nil)
-
-(autoload 'ediff-files-command "ediff" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'ediff3-files-command "ediff" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'ediff-merge-command "ediff" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'ediff-merge-with-ancestor-command "ediff" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'ediff-directories-command "ediff" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'ediff-directories3-command "ediff" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'ediff-merge-directories-command "ediff" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'ediff-merge-directories-with-ancestor-command "ediff" "\
-
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ediff" '("ediff-")))
-
-;;;***
-
-;;;### (autoloads nil "ediff-diff" "vc/ediff-diff.el" (0 0 0 0))
-;;; Generated autoloads from vc/ediff-diff.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ediff-diff" '("ediff-")))
-
-;;;***
-
-;;;### (autoloads nil "ediff-help" "vc/ediff-help.el" (0 0 0 0))
-;;; Generated autoloads from vc/ediff-help.el
-
-(autoload 'ediff-customize "ediff-help" "\
-
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ediff-help" '("ediff-")))
-
-;;;***
-
-;;;### (autoloads nil "ediff-init" "vc/ediff-init.el" (0 0 0 0))
-;;; Generated autoloads from vc/ediff-init.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ediff-init" '("ediff-" "stipple-pixmap")))
-
-;;;***
-
-;;;### (autoloads nil "ediff-merg" "vc/ediff-merg.el" (0 0 0 0))
-;;; Generated autoloads from vc/ediff-merg.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ediff-merg" '("ediff-")))
-
-;;;***
-
-;;;### (autoloads nil "ediff-mult" "vc/ediff-mult.el" (0 0 0 0))
-;;; Generated autoloads from vc/ediff-mult.el
-
-(autoload 'ediff-show-registry "ediff-mult" "\
-Display Ediff's registry.
-
-\(fn)" t nil)
-
-(defalias 'eregistry 'ediff-show-registry)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ediff-mult" '("ediff-")))
-
-;;;***
-
-;;;### (autoloads nil "ediff-ptch" "vc/ediff-ptch.el" (0 0 0 0))
-;;; Generated autoloads from vc/ediff-ptch.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ediff-ptch" '("ediff-")))
-
-;;;***
-
-;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (0 0 0 0))
-;;; Generated autoloads from vc/ediff-util.el
-
-(autoload 'ediff-toggle-multiframe "ediff-util" "\
-Switch from multiframe display to single-frame display and back.
-To change the default, set the variable `ediff-window-setup-function',
-which see.
-
-\(fn)" t nil)
-
-(autoload 'ediff-toggle-use-toolbar "ediff-util" "\
-Enable or disable Ediff toolbar.
-Works only in versions of Emacs that support toolbars.
-To change the default, set the variable `ediff-use-toolbar-p', which see.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ediff-util" '("ediff-")))
-
-;;;***
-
-;;;### (autoloads nil "ediff-vers" "vc/ediff-vers.el" (0 0 0 0))
-;;; Generated autoloads from vc/ediff-vers.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ediff-vers" '("ediff-" "rcs-ediff-view-revision")))
-
-;;;***
-
-;;;### (autoloads nil "ediff-wind" "vc/ediff-wind.el" (0 0 0 0))
-;;; Generated autoloads from vc/ediff-wind.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ediff-wind" '("ediff-")))
-
-;;;***
-
-;;;### (autoloads nil "edmacro" "edmacro.el" (0 0 0 0))
-;;; Generated autoloads from edmacro.el
-(push (purecopy '(edmacro 2 1)) package--builtin-versions)
-
-(autoload 'edit-kbd-macro "edmacro" "\
-Edit a keyboard macro.
-At the prompt, type any key sequence which is bound to a keyboard macro.
-Or, type `C-x e' or RET to edit the last keyboard macro, `C-h l' to edit
-the last 300 keystrokes as a keyboard macro, or `\\[execute-extended-command]' 
to edit a macro by
-its command name.
-With a prefix argument, format the macro in a more concise way.
-
-\(fn KEYS &optional PREFIX FINISH-HOOK STORE-HOOK)" t nil)
-
-(autoload 'edit-last-kbd-macro "edmacro" "\
-Edit the most recently defined keyboard macro.
-
-\(fn &optional PREFIX)" t nil)
-
-(autoload 'edit-named-kbd-macro "edmacro" "\
-Edit a keyboard macro which has been given a name by `name-last-kbd-macro'.
-
-\(fn &optional PREFIX)" t nil)
-
-(autoload 'read-kbd-macro "edmacro" "\
-Read the region as a keyboard macro definition.
-The region is interpreted as spelled-out keystrokes, e.g., \"M-x abc RET\".
-See documentation for `edmacro-mode' for details.
-Leading/trailing \"C-x (\" and \"C-x )\" in the text are allowed and ignored.
-The resulting macro is installed as the \"current\" keyboard macro.
-
-In Lisp, may also be called with a single STRING argument in which case
-the result is returned rather than being installed as the current macro.
-The result will be a string if possible, otherwise an event vector.
-Second argument NEED-VECTOR means to return an event vector always.
-
-\(fn START &optional END)" t nil)
-
-(autoload 'format-kbd-macro "edmacro" "\
-Return the keyboard macro MACRO as a human-readable string.
-This string is suitable for passing to `read-kbd-macro'.
-Second argument VERBOSE means to put one command per line with comments.
-If VERBOSE is `1', put everything on one line.  If VERBOSE is omitted
-or nil, use a compact 80-column format.
-
-\(fn &optional MACRO VERBOSE)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"edmacro" '("edmacro-")))
-
-;;;***
-
-;;;### (autoloads nil "edt" "emulation/edt.el" (0 0 0 0))
-;;; Generated autoloads from emulation/edt.el
-
-(autoload 'edt-set-scroll-margins "edt" "\
-Set scroll margins.
-Argument TOP is the top margin in number of lines or percent of window.
-Argument BOTTOM is the bottom margin in number of lines or percent of window.
-
-\(fn TOP BOTTOM)" t nil)
-
-(autoload 'edt-emulation-on "edt" "\
-Turn on EDT Emulation.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"edt" '("edt-")))
-
-;;;***
-
-;;;### (autoloads nil "edt-lk201" "emulation/edt-lk201.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from emulation/edt-lk201.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"edt-lk201" '("*EDT-keys*")))
-
-;;;***
-
-;;;### (autoloads nil "edt-mapper" "emulation/edt-mapper.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emulation/edt-mapper.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"edt-mapper" '("edt-")))
-
-;;;***
-
-;;;### (autoloads nil "edt-pc" "emulation/edt-pc.el" (0 0 0 0))
-;;; Generated autoloads from emulation/edt-pc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"edt-pc" '("*EDT-keys*")))
-
-;;;***
-
-;;;### (autoloads nil "edt-vt100" "emulation/edt-vt100.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from emulation/edt-vt100.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"edt-vt100" '("edt-set-term-width-")))
-
-;;;***
-
-;;;### (autoloads nil "ehelp" "ehelp.el" (0 0 0 0))
-;;; Generated autoloads from ehelp.el
-
-(autoload 'with-electric-help "ehelp" "\
-Pop up an \"electric\" help buffer.
-THUNK is a function of no arguments which is called to initialize the
-contents of BUFFER.  BUFFER defaults to `*Help*'.  BUFFER will be
-erased before THUNK is called unless NOERASE is non-nil.  THUNK will
-be called while BUFFER is current and with `standard-output' bound to
-the buffer specified by BUFFER.
-
-If THUNK returns nil, we display BUFFER starting at the top, and shrink
-the window to fit.  If THUNK returns non-nil, we don't do those things.
-
-After THUNK has been called, this function \"electrically\" pops up a
-window in which BUFFER is displayed and allows the user to scroll
-through that buffer in `electric-help-mode'.  The window's height will
-be at least MINHEIGHT if this value is non-nil.
-
-If THUNK returns nil, we display BUFFER starting at the top, and
-shrink the window to fit if `electric-help-shrink-window' is non-nil.
-If THUNK returns non-nil, we don't do those things.
-
-When the user exits (with `electric-help-exit', or otherwise), the help
-buffer's window disappears (i.e., we use `save-window-excursion'), and
-BUFFER is put back into its original major mode.
-
-\(fn THUNK &optional BUFFER NOERASE MINHEIGHT)" nil nil)
-
-(autoload 'electric-helpify "ehelp" "\
-
-
-\(fn FUN &optional NAME)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ehelp" '("electric-" "ehelp-")))
-
-;;;***
-
-;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/eieio.el
-(push (purecopy '(eieio 1 4)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eieio" '("eieio-" "oref" "oset" "obj" "find-class" "set-slot-value" 
"same-class-p" "slot-" "child-of-class-p" "with-slots" "defclass")))
-
-;;;***
-
-;;;### (autoloads nil "eieio-base" "emacs-lisp/eieio-base.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from emacs-lisp/eieio-base.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eieio-base" '("eieio-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "eieio-compat"
-;;;;;;  "emacs-lisp/eieio-compat.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/eieio-compat.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eieio-compat" '("no-" "next-method-p" "generic-p" 
"eieio--generic-static-symbol-specializers")))
-
-;;;***
-
-;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from emacs-lisp/eieio-core.el
-(push (purecopy '(eieio-core 1 4)) package--builtin-versions)
-
-(autoload 'eieio-defclass-autoload "eieio-core" "\
-Create autoload symbols for the EIEIO class CNAME.
-SUPERCLASSES are the superclasses that CNAME inherits from.
-DOC is the docstring for CNAME.
-This function creates a mock-class for CNAME and adds it into
-SUPERCLASSES as children.
-It creates an autoload function for CNAME's constructor.
-
-\(fn CNAME SUPERCLASSES FILENAME DOC)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eieio-core" '("eieio-" "invalid-slot-" "inconsistent-class-hierarchy" 
"unbound-slot" "class-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "eieio-custom"
-;;;;;;  "emacs-lisp/eieio-custom.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/eieio-custom.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eieio-custom" '("eieio-")))
-
-;;;***
-
-;;;### (autoloads nil "eieio-datadebug" "emacs-lisp/eieio-datadebug.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/eieio-datadebug.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eieio-datadebug" '("data-debug-insert-object-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "eieio-opt" 
"emacs-lisp/eieio-opt.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/eieio-opt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eieio-opt" '("eieio-")))
-
-;;;***
-
-;;;### (autoloads nil "eieio-speedbar" "emacs-lisp/eieio-speedbar.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/eieio-speedbar.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eieio-speedbar" '("eieio-speedbar")))
-
-;;;***
-
-;;;### (autoloads nil "elec-pair" "elec-pair.el" (0 0 0 0))
-;;; Generated autoloads from elec-pair.el
-
-(defvar electric-pair-text-pairs '((34 . 34)) "\
-Alist of pairs that should always be used in comments and strings.
-
-Pairs of delimiters in this list are a fallback in case they have
-no syntax relevant to `electric-pair-mode' in the syntax table
-defined in `electric-pair-text-syntax-table'")
-
-(custom-autoload 'electric-pair-text-pairs "elec-pair" t)
-
-(defvar electric-pair-mode nil "\
-Non-nil if Electric-Pair mode is enabled.
-See the `electric-pair-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `electric-pair-mode'.")
-
-(custom-autoload 'electric-pair-mode "elec-pair" nil)
-
-(autoload 'electric-pair-mode "elec-pair" "\
-Toggle automatic parens pairing (Electric Pair mode).
-With a prefix argument ARG, enable Electric Pair mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Electric Pair mode is a global minor mode.  When enabled, typing
-an open parenthesis automatically inserts the corresponding
-closing parenthesis.  (Likewise for brackets, etc.). To toggle
-the mode in a single buffer, use `electric-pair-local-mode'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'electric-pair-local-mode "elec-pair" "\
-Toggle `electric-pair-mode' only in this buffer.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"elec-pair" '("electric-pair-")))
-
-;;;***
-
-;;;### (autoloads nil "elide-head" "elide-head.el" (0 0 0 0))
-;;; Generated autoloads from elide-head.el
-
-(autoload 'elide-head "elide-head" "\
-Hide header material in buffer according to `elide-head-headers-to-hide'.
-
-The header is made invisible with an overlay.  With a prefix arg, show
-an elided material again.
-
-This is suitable as an entry on `find-file-hook' or appropriate mode hooks.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"elide-head" '("elide-head-")))
-
-;;;***
-
-;;;### (autoloads nil "elint" "emacs-lisp/elint.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/elint.el
-
-(autoload 'elint-file "elint" "\
-Lint the file FILE.
-
-\(fn FILE)" t nil)
-
-(autoload 'elint-directory "elint" "\
-Lint all the .el files in DIRECTORY.
-A complicated directory may require a lot of memory.
-
-\(fn DIRECTORY)" t nil)
-
-(autoload 'elint-current-buffer "elint" "\
-Lint the current buffer.
-If necessary, this first calls `elint-initialize'.
-
-\(fn)" t nil)
-
-(autoload 'elint-defun "elint" "\
-Lint the function at point.
-If necessary, this first calls `elint-initialize'.
-
-\(fn)" t nil)
-
-(autoload 'elint-initialize "elint" "\
-Initialize elint.
-If elint is already initialized, this does nothing, unless
-optional prefix argument REINIT is non-nil.
-
-\(fn &optional REINIT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"elint" '("elint-")))
-
-;;;***
-
-;;;### (autoloads nil "elp" "emacs-lisp/elp.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/elp.el
-
-(autoload 'elp-instrument-function "elp" "\
-Instrument FUNSYM for profiling.
-FUNSYM must be a symbol of a defined function.
-
-\(fn FUNSYM)" t nil)
-
-(autoload 'elp-instrument-list "elp" "\
-Instrument, for profiling, all functions in `elp-function-list'.
-Use optional LIST if provided instead.
-If called interactively, read LIST using the minibuffer.
-
-\(fn &optional LIST)" t nil)
-
-(autoload 'elp-instrument-package "elp" "\
-Instrument for profiling, all functions which start with PREFIX.
-For example, to instrument all ELP functions, do the following:
-
-    \\[elp-instrument-package] RET elp- RET
-
-\(fn PREFIX)" t nil)
-
-(autoload 'elp-results "elp" "\
-Display current profiling results.
-If `elp-reset-after-results' is non-nil, then current profiling
-information for all instrumented functions is reset after results are
-displayed.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"elp" '("elp-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-alias" 
"eshell/em-alias.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-alias.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-alias" '("eshell" "pcomplete/eshell-mode/alias")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-banner" 
"eshell/em-banner.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-banner.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-banner" '("eshell-banner-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-basic" 
"eshell/em-basic.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-basic.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-basic" '("eshell")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-cmpl" 
"eshell/em-cmpl.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-cmpl.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-cmpl" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-dirs" 
"eshell/em-dirs.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-dirs.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-dirs" '("eshell")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-glob" 
"eshell/em-glob.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-glob.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-glob" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-hist" 
"eshell/em-hist.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-hist.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-hist" '("eshell")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-ls" "eshell/em-ls.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-ls.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-ls" '("eshell")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-pred" 
"eshell/em-pred.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-pred.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-pred" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-prompt" 
"eshell/em-prompt.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-prompt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-prompt" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-rebind" 
"eshell/em-rebind.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-rebind.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-rebind" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-script" 
"eshell/em-script.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-script.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-script" '("eshell")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-smart" 
"eshell/em-smart.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-smart.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-smart" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-term" 
"eshell/em-term.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-term.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-term" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-tramp" 
"eshell/em-tramp.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-tramp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-tramp" '("eshell")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-unix" 
"eshell/em-unix.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-unix.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-unix" '("eshell" "nil-blank-string" "pcomplete/")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "em-xtra" 
"eshell/em-xtra.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from eshell/em-xtra.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"em-xtra" '("pcomplete/bcc" "eshell/")))
-
-;;;***
-
-;;;### (autoloads nil "emacs-lock" "emacs-lock.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lock.el
-
-(autoload 'emacs-lock-mode "emacs-lock" "\
-Toggle Emacs Lock mode in the current buffer.
-If called with a plain prefix argument, ask for the locking mode
-to be used.  With any other prefix ARG, turn mode on if ARG is
-positive, off otherwise.  If called from Lisp, enable the mode if
-ARG is omitted or nil.
-
-Initially, if the user does not pass an explicit locking mode, it
-defaults to `emacs-lock-default-locking-mode' (which see);
-afterwards, the locking mode most recently set on the buffer is
-used instead.
-
-When called from Elisp code, ARG can be any locking mode:
-
- exit   -- Emacs cannot exit while the buffer is locked
- kill   -- the buffer cannot be killed, but Emacs can exit as usual
- all    -- the buffer is locked against both actions
-
-Other values are interpreted as usual.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"emacs-lock" '("toggle-emacs-lock" "emacs-lock-")))
-
-;;;***
-
-;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (0 0 0 0))
-;;; Generated autoloads from mail/emacsbug.el
-
-(autoload 'report-emacs-bug "emacsbug" "\
-Report a bug in GNU Emacs.
-Prompts for bug subject.  Leaves you in a mail buffer.
-
-\(fn TOPIC &optional UNUSED)" t nil)
-
-(set-advertised-calling-convention 'report-emacs-bug '(topic) '"24.5")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"emacsbug" '("report-emacs-bug-")))
-
-;;;***
-
-;;;### (autoloads nil "emerge" "vc/emerge.el" (0 0 0 0))
-;;; Generated autoloads from vc/emerge.el
-
-(autoload 'emerge-files "emerge" "\
-Run Emerge on two files.
-
-\(fn ARG FILE-A FILE-B FILE-OUT &optional STARTUP-HOOKS QUIT-HOOKS)" t nil)
-
-(autoload 'emerge-files-with-ancestor "emerge" "\
-Run Emerge on two files, giving another file as the ancestor.
-
-\(fn ARG FILE-A FILE-B FILE-ANCESTOR FILE-OUT &optional STARTUP-HOOKS 
QUIT-HOOKS)" t nil)
-
-(autoload 'emerge-buffers "emerge" "\
-Run Emerge on two buffers.
-
-\(fn BUFFER-A BUFFER-B &optional STARTUP-HOOKS QUIT-HOOKS)" t nil)
-
-(autoload 'emerge-buffers-with-ancestor "emerge" "\
-Run Emerge on two buffers, giving another buffer as the ancestor.
-
-\(fn BUFFER-A BUFFER-B BUFFER-ANCESTOR &optional STARTUP-HOOKS QUIT-HOOKS)" t 
nil)
-
-(autoload 'emerge-files-command "emerge" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'emerge-files-with-ancestor-command "emerge" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'emerge-files-remote "emerge" "\
-
-
-\(fn FILE-A FILE-B FILE-OUT)" nil nil)
-
-(autoload 'emerge-files-with-ancestor-remote "emerge" "\
-
-
-\(fn FILE-A FILE-B FILE-ANC FILE-OUT)" nil nil)
-
-(autoload 'emerge-revisions "emerge" "\
-Emerge two RCS revisions of a file.
-
-\(fn ARG FILE REVISION-A REVISION-B &optional STARTUP-HOOKS QUIT-HOOKS)" t nil)
-
-(autoload 'emerge-revisions-with-ancestor "emerge" "\
-Emerge two RCS revisions of a file, with another revision as ancestor.
-
-\(fn ARG FILE REVISION-A REVISION-B ANCESTOR &optional STARTUP-HOOKS 
QUIT-HOOKS)" t nil)
-
-(autoload 'emerge-merge-directories "emerge" "\
-
-
-\(fn A-DIR B-DIR ANCESTOR-DIR OUTPUT-DIR)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"emerge" '("emerge-")))
-
-;;;***
-
-;;;### (autoloads nil "enriched" "textmodes/enriched.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/enriched.el
-
-(autoload 'enriched-mode "enriched" "\
-Minor mode for editing text/enriched files.
-These are files with embedded formatting information in the MIME standard
-text/enriched format.
-
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-Turning the mode on or off runs `enriched-mode-hook'.
-
-More information about Enriched mode is available in the file
-\"enriched.txt\" in `data-directory'.
-
-Commands:
-
-\\{enriched-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'enriched-encode "enriched" "\
-
-
-\(fn FROM TO ORIG-BUF)" nil nil)
-
-(autoload 'enriched-decode "enriched" "\
-
-
-\(fn FROM TO)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"enriched" '("enriched-")))
-
-;;;***
-
-;;;### (autoloads nil "epa" "epa.el" (0 0 0 0))
-;;; Generated autoloads from epa.el
-
-(autoload 'epa-list-keys "epa" "\
-List all keys matched with NAME from the public keyring.
-
-\(fn &optional NAME)" t nil)
-
-(autoload 'epa-list-secret-keys "epa" "\
-List all keys matched with NAME from the private keyring.
-
-\(fn &optional NAME)" t nil)
-
-(autoload 'epa-select-keys "epa" "\
-Display a user's keyring and ask him to select keys.
-CONTEXT is an epg-context.
-PROMPT is a string to prompt with.
-NAMES is a list of strings to be matched with keys.  If it is nil, all
-the keys are listed.
-If SECRET is non-nil, list secret keys instead of public keys.
-
-\(fn CONTEXT PROMPT &optional NAMES SECRET)" nil nil)
-
-(autoload 'epa-decrypt-file "epa" "\
-Decrypt DECRYPT-FILE into PLAIN-FILE.
-If you do not specify PLAIN-FILE, this functions prompts for the value to use.
-
-\(fn DECRYPT-FILE &optional PLAIN-FILE)" t nil)
-
-(autoload 'epa-verify-file "epa" "\
-Verify FILE.
-
-\(fn FILE)" t nil)
-
-(autoload 'epa-sign-file "epa" "\
-Sign FILE by SIGNERS keys selected.
-
-\(fn FILE SIGNERS MODE)" t nil)
-
-(autoload 'epa-encrypt-file "epa" "\
-Encrypt FILE for RECIPIENTS.
-
-\(fn FILE RECIPIENTS)" t nil)
-
-(autoload 'epa-decrypt-region "epa" "\
-Decrypt the current region between START and END.
-
-If MAKE-BUFFER-FUNCTION is non-nil, call it to prepare an output buffer.
-It should return that buffer.  If it copies the input, it should
-delete the text now being decrypted.  It should leave point at the
-proper place to insert the plaintext.
-
-Be careful about using this command in Lisp programs!
-Since this function operates on regions, it does some tricks such
-as coding-system detection and unibyte/multibyte conversion.  If
-you are sure how the data in the region should be treated, you
-should consider using the string based counterpart
-`epg-decrypt-string', or the file based counterpart
-`epg-decrypt-file' instead.
-
-For example:
-
-\(let ((context (epg-make-context \\='OpenPGP)))
-  (decode-coding-string
-    (epg-decrypt-string context (buffer-substring start end))
-    \\='utf-8))
-
-\(fn START END &optional MAKE-BUFFER-FUNCTION)" t nil)
-
-(autoload 'epa-decrypt-armor-in-region "epa" "\
-Decrypt OpenPGP armors in the current region between START and END.
-
-Don't use this command in Lisp programs!
-See the reason described in the `epa-decrypt-region' documentation.
-
-\(fn START END)" t nil)
-
-(function-put 'epa-decrypt-armor-in-region 'interactive-only 't)
-
-(autoload 'epa-verify-region "epa" "\
-Verify the current region between START and END.
-
-Don't use this command in Lisp programs!
-Since this function operates on regions, it does some tricks such
-as coding-system detection and unibyte/multibyte conversion.  If
-you are sure how the data in the region should be treated, you
-should consider using the string based counterpart
-`epg-verify-string', or the file based counterpart
-`epg-verify-file' instead.
-
-For example:
-
-\(let ((context (epg-make-context \\='OpenPGP)))
-  (decode-coding-string
-    (epg-verify-string context (buffer-substring start end))
-    \\='utf-8))
-
-\(fn START END)" t nil)
-
-(function-put 'epa-verify-region 'interactive-only 't)
-
-(autoload 'epa-verify-cleartext-in-region "epa" "\
-Verify OpenPGP cleartext signed messages in the current region
-between START and END.
-
-Don't use this command in Lisp programs!
-See the reason described in the `epa-verify-region' documentation.
-
-\(fn START END)" t nil)
-
-(function-put 'epa-verify-cleartext-in-region 'interactive-only 't)
-
-(autoload 'epa-sign-region "epa" "\
-Sign the current region between START and END by SIGNERS keys selected.
-
-Don't use this command in Lisp programs!
-Since this function operates on regions, it does some tricks such
-as coding-system detection and unibyte/multibyte conversion.  If
-you are sure how the data should be treated, you should consider
-using the string based counterpart `epg-sign-string', or the file
-based counterpart `epg-sign-file' instead.
-
-For example:
-
-\(let ((context (epg-make-context \\='OpenPGP)))
-  (epg-sign-string
-    context
-    (encode-coding-string (buffer-substring start end) \\='utf-8)))
-
-\(fn START END SIGNERS MODE)" t nil)
-
-(function-put 'epa-sign-region 'interactive-only 't)
-
-(autoload 'epa-encrypt-region "epa" "\
-Encrypt the current region between START and END for RECIPIENTS.
-
-Don't use this command in Lisp programs!
-Since this function operates on regions, it does some tricks such
-as coding-system detection and unibyte/multibyte conversion.  If
-you are sure how the data should be treated, you should consider
-using the string based counterpart `epg-encrypt-string', or the
-file based counterpart `epg-encrypt-file' instead.
-
-For example:
-
-\(let ((context (epg-make-context \\='OpenPGP)))
-  (epg-encrypt-string
-    context
-    (encode-coding-string (buffer-substring start end) \\='utf-8)
-    nil))
-
-\(fn START END RECIPIENTS SIGN SIGNERS)" t nil)
-
-(function-put 'epa-encrypt-region 'interactive-only 't)
-
-(autoload 'epa-delete-keys "epa" "\
-Delete selected KEYS.
-
-\(fn KEYS &optional ALLOW-SECRET)" t nil)
-
-(autoload 'epa-import-keys "epa" "\
-Import keys from FILE.
-
-\(fn FILE)" t nil)
-
-(autoload 'epa-import-keys-region "epa" "\
-Import keys from the region.
-
-\(fn START END)" t nil)
-
-(autoload 'epa-import-armor-in-region "epa" "\
-Import keys in the OpenPGP armor format in the current region
-between START and END.
-
-\(fn START END)" t nil)
-
-(autoload 'epa-export-keys "epa" "\
-Export selected KEYS to FILE.
-
-\(fn KEYS FILE)" t nil)
-
-(autoload 'epa-insert-keys "epa" "\
-Insert selected KEYS after the point.
-
-\(fn KEYS)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"epa" '("epa-")))
-
-;;;***
-
-;;;### (autoloads nil "epa-dired" "epa-dired.el" (0 0 0 0))
-;;; Generated autoloads from epa-dired.el
-
-(autoload 'epa-dired-do-decrypt "epa-dired" "\
-Decrypt marked files.
-
-\(fn)" t nil)
-
-(autoload 'epa-dired-do-verify "epa-dired" "\
-Verify marked files.
-
-\(fn)" t nil)
-
-(autoload 'epa-dired-do-sign "epa-dired" "\
-Sign marked files.
-
-\(fn)" t nil)
-
-(autoload 'epa-dired-do-encrypt "epa-dired" "\
-Encrypt marked files.
-
-\(fn)" t nil)
-
-;;;***
-
-;;;### (autoloads nil "epa-file" "epa-file.el" (0 0 0 0))
-;;; Generated autoloads from epa-file.el
-
-(autoload 'epa-file-handler "epa-file" "\
-
-
-\(fn OPERATION &rest ARGS)" nil nil)
-
-(autoload 'epa-file-enable "epa-file" "\
-
-
-\(fn)" t nil)
-
-(autoload 'epa-file-disable "epa-file" "\
-
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"epa-file" '("epa-")))
-
-;;;***
-
-;;;### (autoloads nil "epa-mail" "epa-mail.el" (0 0 0 0))
-;;; Generated autoloads from epa-mail.el
-
-(autoload 'epa-mail-mode "epa-mail" "\
-A minor-mode for composing encrypted/clearsigned mails.
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'epa-mail-decrypt "epa-mail" "\
-Decrypt OpenPGP armors in the current buffer.
-The buffer is expected to contain a mail message.
-
-\(fn)" t nil)
-
-(function-put 'epa-mail-decrypt 'interactive-only 't)
-
-(autoload 'epa-mail-verify "epa-mail" "\
-Verify OpenPGP cleartext signed messages in the current buffer.
-The buffer is expected to contain a mail message.
-
-\(fn)" t nil)
-
-(function-put 'epa-mail-verify 'interactive-only 't)
-
-(autoload 'epa-mail-sign "epa-mail" "\
-Sign the current buffer.
-The buffer is expected to contain a mail message.
-
-\(fn START END SIGNERS MODE)" t nil)
-
-(function-put 'epa-mail-sign 'interactive-only 't)
-
-(autoload 'epa-mail-encrypt "epa-mail" "\
-Encrypt the outgoing mail message in the current buffer.
-Takes the recipients from the text in the header in the buffer
-and translates them through `epa-mail-aliases'.
-With prefix argument, asks you to select among them interactively
-and also whether and how to sign.
-
-Called from Lisp, the optional argument RECIPIENTS is a list
-of recipient addresses, t to perform symmetric encryption,
-or nil meaning use the defaults.
-
-SIGNERS is a list of keys to sign the message with.
-
-\(fn &optional RECIPIENTS SIGNERS)" t nil)
-
-(autoload 'epa-mail-import-keys "epa-mail" "\
-Import keys in the OpenPGP armor format in the current buffer.
-The buffer is expected to contain a mail message.
-
-\(fn)" t nil)
-
-(function-put 'epa-mail-import-keys 'interactive-only 't)
-
-(defvar epa-global-mail-mode nil "\
-Non-nil if Epa-Global-Mail mode is enabled.
-See the `epa-global-mail-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `epa-global-mail-mode'.")
-
-(custom-autoload 'epa-global-mail-mode "epa-mail" nil)
-
-(autoload 'epa-global-mail-mode "epa-mail" "\
-Minor mode to hook EasyPG into Mail mode.
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"epa-mail" '("epa-mail-")))
-
-;;;***
-
-;;;### (autoloads nil "epg" "epg.el" (0 0 0 0))
-;;; Generated autoloads from epg.el
-(push (purecopy '(epg 1 0 0)) package--builtin-versions)
-
-(autoload 'epg-make-context "epg" "\
-Return a context object.
-
-\(fn &optional PROTOCOL ARMOR TEXTMODE INCLUDE-CERTS CIPHER-ALGORITHM 
DIGEST-ALGORITHM COMPRESS-ALGORITHM)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"epg" '("epg-")))
-
-;;;***
-
-;;;### (autoloads nil "epg-config" "epg-config.el" (0 0 0 0))
-;;; Generated autoloads from epg-config.el
-
-(autoload 'epg-find-configuration "epg-config" "\
-Find or create a usable configuration to handle PROTOCOL.
-This function first looks at the existing configuration found by
-the previous invocation of this function, unless NO-CACHE is non-nil.
-
-Then it walks through PROGRAM-ALIST or
-`epg-config--program-alist'.  If `epg-gpg-program' or
-`epg-gpgsm-program' is already set with custom, use it.
-Otherwise, it tries the programs listed in the entry until the
-version requirement is met.
-
-\(fn PROTOCOL &optional NO-CACHE PROGRAM-ALIST)" nil nil)
-
-(autoload 'epg-configuration "epg-config" "\
-Return a list of internal configuration parameters of `epg-gpg-program'.
-
-\(fn)" nil nil)
-
-(make-obsolete 'epg-configuration 'epg-find-configuration '"25.1")
-
-(autoload 'epg-check-configuration "epg-config" "\
-Verify that a sufficient version of GnuPG is installed.
-
-\(fn CONFIG &optional MINIMUM-VERSION)" nil nil)
-
-(autoload 'epg-expand-group "epg-config" "\
-Look at CONFIG and try to expand GROUP.
-
-\(fn CONFIG GROUP)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"epg-config" '("epg-")))
-
-;;;***
-
-;;;### (autoloads nil "erc" "erc/erc.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc.el
-(push (purecopy '(erc 5 3)) package--builtin-versions)
-
-(autoload 'erc-select-read-args "erc" "\
-Prompt the user for values of nick, server, port, and password.
-
-\(fn)" nil nil)
-
-(autoload 'erc "erc" "\
-ERC is a powerful, modular, and extensible IRC client.
-This function is the main entry point for ERC.
-
-It permits you to select connection parameters, and then starts ERC.
-
-Non-interactively, it takes the keyword arguments
-   (server (erc-compute-server))
-   (port   (erc-compute-port))
-   (nick   (erc-compute-nick))
-   password
-   (full-name (erc-compute-full-name)))
-
-That is, if called with
-
-   (erc :server \"irc.freenode.net\" :full-name \"Harry S Truman\")
-
-then the server and full-name will be set to those values, whereas
-`erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will
-be invoked for the values of the other parameters.
-
-\(fn &key (SERVER (erc-compute-server)) (PORT (erc-compute-port)) (NICK 
(erc-compute-nick)) PASSWORD (FULL-NAME (erc-compute-full-name)))" t nil)
-
-(defalias 'erc-select 'erc)
-
-(autoload 'erc-tls "erc" "\
-Interactively select TLS connection parameters and run ERC.
-Arguments are the same as for `erc'.
-
-\(fn &rest R)" t nil)
-
-(autoload 'erc-handle-irc-url "erc" "\
-Use ERC to IRC on HOST:PORT in CHANNEL as USER with PASSWORD.
-If ERC is already connected to HOST:PORT, simply /join CHANNEL.
-Otherwise, connect to HOST:PORT as USER and /join CHANNEL.
-
-\(fn HOST PORT CHANNEL USER PASSWORD)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc" '("erc-" "define-erc-module")))
-
-;;;***
-
-;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from erc/erc-autoaway.el
- (autoload 'erc-autoaway-mode "erc-autoaway")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-autoaway" '("erc-auto" "autoaway")))
-
-;;;***
-
-;;;### (autoloads nil "erc-backend" "erc/erc-backend.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-backend.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-backend" '("erc-")))
-
-;;;***
-
-;;;### (autoloads nil "erc-button" "erc/erc-button.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-button.el
- (autoload 'erc-button-mode "erc-button" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-button" '("erc-" "button")))
-
-;;;***
-
-;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-capab.el
- (autoload 'erc-capab-identify-mode "erc-capab" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-capab" '("erc-capab-identify-" "capab-identify")))
-
-;;;***
-
-;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-compat.el
- (autoload 'erc-define-minor-mode "erc-compat")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-compat" '("erc-")))
-
-;;;***
-
-;;;### (autoloads nil "erc-dcc" "erc/erc-dcc.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-dcc.el
- (autoload 'erc-dcc-mode "erc-dcc")
-
-(autoload 'erc-cmd-DCC "erc-dcc" "\
-Parser for /dcc command.
-This figures out the dcc subcommand and calls the appropriate routine to
-handle it.  The function dispatched should be named \"erc-dcc-do-FOO-command\",
-where FOO is one of CLOSE, GET, SEND, LIST, CHAT, etc.
-
-\(fn CMD &rest ARGS)" nil nil)
-
-(autoload 'pcomplete/erc-mode/DCC "erc-dcc" "\
-Provides completion for the /DCC command.
-
-\(fn)" nil nil)
-
-(defvar erc-ctcp-query-DCC-hook '(erc-ctcp-query-DCC) "\
-Hook variable for CTCP DCC queries.")
-
-(autoload 'erc-ctcp-query-DCC "erc-dcc" "\
-The function called when a CTCP DCC request is detected by the client.
-It examines the DCC subcommand, and calls the appropriate routine for
-that subcommand.
-
-\(fn PROC NICK LOGIN HOST TO QUERY)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-dcc" '("erc-" "pcomplete/erc-mode/" "dcc")))
-
-;;;***
-
-;;;### (autoloads nil "erc-desktop-notifications" 
"erc/erc-desktop-notifications.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from erc/erc-desktop-notifications.el
-(autoload 'erc-notifications-mode "erc-desktop-notifications" "" t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-desktop-notifications" '("notifications" "erc-notifications-")))
-
-;;;***
-
-;;;### (autoloads nil "erc-ezbounce" "erc/erc-ezbounce.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from erc/erc-ezbounce.el
-
-(autoload 'erc-cmd-ezb "erc-ezbounce" "\
-Send EZB commands to the EZBouncer verbatim.
-
-\(fn LINE &optional FORCE)" nil nil)
-
-(autoload 'erc-ezb-get-login "erc-ezbounce" "\
-Return an appropriate EZBounce login for SERVER and PORT.
-Look up entries in `erc-ezb-login-alist'. If the username or password
-in the alist is nil, prompt for the appropriate values.
-
-\(fn SERVER PORT)" nil nil)
-
-(autoload 'erc-ezb-lookup-action "erc-ezbounce" "\
-
-
-\(fn MESSAGE)" nil nil)
-
-(autoload 'erc-ezb-notice-autodetect "erc-ezbounce" "\
-React on an EZBounce NOTICE request.
-
-\(fn PROC PARSED)" nil nil)
-
-(autoload 'erc-ezb-identify "erc-ezbounce" "\
-Identify to the EZBouncer server.
-
-\(fn MESSAGE)" nil nil)
-
-(autoload 'erc-ezb-init-session-list "erc-ezbounce" "\
-Reset the EZBounce session list to nil.
-
-\(fn MESSAGE)" nil nil)
-
-(autoload 'erc-ezb-end-of-session-list "erc-ezbounce" "\
-Indicate the end of the EZBounce session listing.
-
-\(fn MESSAGE)" nil nil)
-
-(autoload 'erc-ezb-add-session "erc-ezbounce" "\
-Add an EZBounce session to the session list.
-
-\(fn MESSAGE)" nil nil)
-
-(autoload 'erc-ezb-select "erc-ezbounce" "\
-Select an IRC server to use by EZBounce, in ERC style.
-
-\(fn MESSAGE)" nil nil)
-
-(autoload 'erc-ezb-select-session "erc-ezbounce" "\
-Select a detached EZBounce session.
-
-\(fn)" nil nil)
-
-(autoload 'erc-ezb-initialize "erc-ezbounce" "\
-Add EZBouncer convenience functions to ERC.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-ezbounce" '("erc-ezb-")))
-
-;;;***
-
-;;;### (autoloads nil "erc-fill" "erc/erc-fill.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-fill.el
- (autoload 'erc-fill-mode "erc-fill" nil t)
-
-(autoload 'erc-fill "erc-fill" "\
-Fill a region using the function referenced in `erc-fill-function'.
-You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-fill" '("erc-")))
-
-;;;***
-
-;;;### (autoloads nil "erc-goodies" "erc/erc-goodies.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-goodies.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-goodies" '("erc-" "unmorse" "scrolltobottom" "smiley" "irccontrols" 
"noncommands" "keep-place" "move-to-prompt" "readonly")))
-
-;;;***
-
-;;;### (autoloads nil "erc-ibuffer" "erc/erc-ibuffer.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-ibuffer.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-ibuffer" '("erc-")))
-
-;;;***
-
-;;;### (autoloads nil "erc-identd" "erc/erc-identd.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-identd.el
- (autoload 'erc-identd-mode "erc-identd")
-
-(autoload 'erc-identd-start "erc-identd" "\
-Start an identd server listening to port 8113.
-Port 113 (auth) will need to be redirected to port 8113 on your
-machine -- using iptables, or a program like redir which can be
-run from inetd.  The idea is to provide a simple identd server
-when you need one, without having to install one globally on your
-system.
-
-\(fn &optional PORT)" t nil)
-
-(autoload 'erc-identd-stop "erc-identd" "\
-
-
-\(fn &rest IGNORE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-identd" '("erc-identd-" "identd")))
-
-;;;***
-
-;;;### (autoloads nil "erc-imenu" "erc/erc-imenu.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-imenu.el
-
-(autoload 'erc-create-imenu-index "erc-imenu" "\
-
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-imenu" '("erc-unfill-notice")))
-
-;;;***
-
-;;;### (autoloads nil "erc-join" "erc/erc-join.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-join.el
- (autoload 'erc-autojoin-mode "erc-join" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-join" '("erc-" "autojoin")))
-
-;;;***
-
-;;;### (autoloads nil "erc-lang" "erc/erc-lang.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-lang.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-lang" '("erc-cmd-LANG" "language" "iso-638-languages")))
-
-;;;***
-
-;;;### (autoloads nil "erc-list" "erc/erc-list.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-list.el
- (autoload 'erc-list-mode "erc-list")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-list" '("erc-" "list")))
-
-;;;***
-
-;;;### (autoloads nil "erc-log" "erc/erc-log.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-log.el
- (autoload 'erc-log-mode "erc-log" nil t)
-
-(autoload 'erc-logging-enabled "erc-log" "\
-Return non-nil if logging is enabled for BUFFER.
-If BUFFER is nil, the value of `current-buffer' is used.
-Logging is enabled if `erc-log-channels-directory' is non-nil, the directory
-is writable (it will be created as necessary) and
-`erc-enable-logging' returns a non-nil value.
-
-\(fn &optional BUFFER)" nil nil)
-
-(autoload 'erc-save-buffer-in-logs "erc-log" "\
-Append BUFFER contents to the log file, if logging is enabled.
-If BUFFER is not provided, current buffer is used.
-Logging is enabled if `erc-logging-enabled' returns non-nil.
-
-This is normally done on exit, to save the unsaved portion of the
-buffer, since only the text that runs off the buffer limit is logged
-automatically.
-
-You can save every individual message by putting this function on
-`erc-insert-post-hook'.
-
-\(fn &optional BUFFER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-log" '("erc-" "log")))
-
-;;;***
-
-;;;### (autoloads nil "erc-match" "erc/erc-match.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-match.el
- (autoload 'erc-match-mode "erc-match")
-
-(autoload 'erc-add-pal "erc-match" "\
-Add pal interactively to `erc-pals'.
-
-\(fn)" t nil)
-
-(autoload 'erc-delete-pal "erc-match" "\
-Delete pal interactively to `erc-pals'.
-
-\(fn)" t nil)
-
-(autoload 'erc-add-fool "erc-match" "\
-Add fool interactively to `erc-fools'.
-
-\(fn)" t nil)
-
-(autoload 'erc-delete-fool "erc-match" "\
-Delete fool interactively to `erc-fools'.
-
-\(fn)" t nil)
-
-(autoload 'erc-add-keyword "erc-match" "\
-Add keyword interactively to `erc-keywords'.
-
-\(fn)" t nil)
-
-(autoload 'erc-delete-keyword "erc-match" "\
-Delete keyword interactively to `erc-keywords'.
-
-\(fn)" t nil)
-
-(autoload 'erc-add-dangerous-host "erc-match" "\
-Add dangerous-host interactively to `erc-dangerous-hosts'.
-
-\(fn)" t nil)
-
-(autoload 'erc-delete-dangerous-host "erc-match" "\
-Delete dangerous-host interactively to `erc-dangerous-hosts'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-match" '("erc-" "match")))
-
-;;;***
-
-;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-menu.el
- (autoload 'erc-menu-mode "erc-menu" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-menu" '("erc-menu-" "menu")))
-
-;;;***
-
-;;;### (autoloads nil "erc-netsplit" "erc/erc-netsplit.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from erc/erc-netsplit.el
- (autoload 'erc-netsplit-mode "erc-netsplit")
-
-(autoload 'erc-cmd-WHOLEFT "erc-netsplit" "\
-Show who's gone.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-netsplit" '("erc-" "netsplit")))
-
-;;;***
-
-;;;### (autoloads nil "erc-networks" "erc/erc-networks.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from erc/erc-networks.el
-
-(autoload 'erc-determine-network "erc-networks" "\
-Return the name of the network or \"Unknown\" as a symbol.  Use the
-server parameter NETWORK if provided, otherwise parse the server name and
-search for a match in `erc-networks-alist'.
-
-\(fn)" nil nil)
-
-(autoload 'erc-server-select "erc-networks" "\
-Interactively select a server to connect to using `erc-server-alist'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-networks" '("erc-" "networks")))
-
-;;;***
-
-;;;### (autoloads nil "erc-notify" "erc/erc-notify.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-notify.el
- (autoload 'erc-notify-mode "erc-notify" nil t)
-
-(autoload 'erc-cmd-NOTIFY "erc-notify" "\
-Change `erc-notify-list' or list current notify-list members online.
-Without args, list the current list of notified people online,
-with args, toggle notify status of people.
-
-\(fn &rest ARGS)" nil nil)
-
-(autoload 'pcomplete/erc-mode/NOTIFY "erc-notify" "\
-
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-notify" '("erc-" "notify")))
-
-;;;***
-
-;;;### (autoloads nil "erc-page" "erc/erc-page.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-page.el
- (autoload 'erc-page-mode "erc-page")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-page" '("erc-" "page")))
-
-;;;***
-
-;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from erc/erc-pcomplete.el
- (autoload 'erc-completion-mode "erc-pcomplete" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-pcomplete" '("pcomplete" "erc-pcomplet")))
-
-;;;***
-
-;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-replace.el
- (autoload 'erc-replace-mode "erc-replace")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-replace" '("replace" "erc-replace-")))
-
-;;;***
-
-;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-ring.el
- (autoload 'erc-ring-mode "erc-ring" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-ring" '("erc-" "ring")))
-
-;;;***
-
-;;;### (autoloads nil "erc-services" "erc/erc-services.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from erc/erc-services.el
- (autoload 'erc-services-mode "erc-services" nil t)
-
-(autoload 'erc-nickserv-identify-mode "erc-services" "\
-Set up hooks according to which MODE the user has chosen.
-
-\(fn MODE)" t nil)
-
-(autoload 'erc-nickserv-identify "erc-services" "\
-Send an \"identify <PASSWORD>\" message to NickServ.
-When called interactively, read the password using `read-passwd'.
-
-\(fn PASSWORD)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-services" '("erc-" "services")))
-
-;;;***
-
-;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-sound.el
- (autoload 'erc-sound-mode "erc-sound")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-sound" '("erc-" "sound")))
-
-;;;***
-
-;;;### (autoloads nil "erc-speedbar" "erc/erc-speedbar.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from erc/erc-speedbar.el
-
-(autoload 'erc-speedbar-browser "erc-speedbar" "\
-Initialize speedbar to display an ERC browser.
-This will add a speedbar major display mode.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-speedbar" '("erc-")))
-
-;;;***
-
-;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from erc/erc-spelling.el
- (autoload 'erc-spelling-mode "erc-spelling" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-spelling" '("erc-spelling-" "spelling")))
-
-;;;***
-
-;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-stamp.el
- (autoload 'erc-timestamp-mode "erc-stamp" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-stamp" '("erc-" "stamp")))
-
-;;;***
-
-;;;### (autoloads nil "erc-track" "erc/erc-track.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-track.el
-
-(defvar erc-track-minor-mode nil "\
-Non-nil if Erc-Track minor mode is enabled.
-See the `erc-track-minor-mode' command
-for a description of this minor mode.")
-
-(custom-autoload 'erc-track-minor-mode "erc-track" nil)
-
-(autoload 'erc-track-minor-mode "erc-track" "\
-Toggle mode line display of ERC activity (ERC Track minor mode).
-With a prefix argument ARG, enable ERC Track minor mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-ERC Track minor mode is a global minor mode.  It exists for the
-sole purpose of providing the C-c C-SPC and C-c C-@ keybindings.
-Make sure that you have enabled the track module, otherwise the
-keybindings will not do anything useful.
-
-\(fn &optional ARG)" t nil)
- (autoload 'erc-track-mode "erc-track" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-track" '("erc-" "track")))
-
-;;;***
-
-;;;### (autoloads nil "erc-truncate" "erc/erc-truncate.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from erc/erc-truncate.el
- (autoload 'erc-truncate-mode "erc-truncate" nil t)
-
-(autoload 'erc-truncate-buffer-to-size "erc-truncate" "\
-Truncates the buffer to the size SIZE.
-If BUFFER is not provided, the current buffer is assumed.  The deleted
-region is logged if `erc-logging-enabled' returns non-nil.
-
-\(fn SIZE &optional BUFFER)" nil nil)
-
-(autoload 'erc-truncate-buffer "erc-truncate" "\
-Truncates the current buffer to `erc-max-buffer-size'.
-Meant to be used in hooks, like `erc-insert-post-hook'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-truncate" '("truncate" "erc-max-buffer-size")))
-
-;;;***
-
-;;;### (autoloads nil "erc-xdcc" "erc/erc-xdcc.el" (0 0 0 0))
-;;; Generated autoloads from erc/erc-xdcc.el
- (autoload 'erc-xdcc-mode "erc-xdcc")
-
-(autoload 'erc-xdcc-add-file "erc-xdcc" "\
-Add a file to `erc-xdcc-files'.
-
-\(fn FILE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"erc-xdcc" '("erc-" "xdcc")))
-
-;;;***
-
-;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/ert.el
-
-(autoload 'ert-deftest "ert" "\
-Define NAME (a symbol) as a test.
-
-BODY is evaluated as a `progn' when the test is run.  It should
-signal a condition on failure or just return if the test passes.
-
-`should', `should-not', `should-error' and `skip-unless' are
-useful for assertions in BODY.
-
-Use `ert' to run tests interactively.
-
-Tests that are expected to fail can be marked as such
-using :expected-result.  See `ert-test-result-type-p' for a
-description of valid values for RESULT-TYPE.
-
-\(fn NAME () [DOCSTRING] [:expected-result RESULT-TYPE] [:tags \\='(TAG...)] 
BODY...)" nil t)
-
-(function-put 'ert-deftest 'doc-string-elt '3)
-
-(function-put 'ert-deftest 'lisp-indent-function '2)
-
-(put 'ert-deftest 'lisp-indent-function 2)
-
-(put 'ert-info 'lisp-indent-function 1)
-
-(autoload 'ert-run-tests-batch "ert" "\
-Run the tests specified by SELECTOR, printing results to the terminal.
-
-SELECTOR works as described in `ert-select-tests', except if
-SELECTOR is nil, in which case all tests rather than none will be
-run; this makes the command line \"emacs -batch -l my-tests.el -f
-ert-run-tests-batch-and-exit\" useful.
-
-Returns the stats object.
-
-\(fn &optional SELECTOR)" nil nil)
-
-(autoload 'ert-run-tests-batch-and-exit "ert" "\
-Like `ert-run-tests-batch', but exits Emacs when done.
-
-The exit status will be 0 if all test results were as expected, 1
-on unexpected results, or 2 if the tool detected an error outside
-of the tests (e.g. invalid SELECTOR or bug in the code that runs
-the tests).
-
-\(fn &optional SELECTOR)" nil nil)
-
-(autoload 'ert-run-tests-interactively "ert" "\
-Run the tests specified by SELECTOR and display the results in a buffer.
-
-SELECTOR works as described in `ert-select-tests'.
-OUTPUT-BUFFER-NAME and MESSAGE-FN should normally be nil; they
-are used for automated self-tests and specify which buffer to use
-and how to display message.
-
-\(fn SELECTOR &optional OUTPUT-BUFFER-NAME MESSAGE-FN)" t nil)
-
-(defalias 'ert 'ert-run-tests-interactively)
-
-(autoload 'ert-describe-test "ert" "\
-Display the documentation for TEST-OR-TEST-NAME (a symbol or ert-test).
-
-\(fn TEST-OR-TEST-NAME)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ert" '("ert-")))
-
-;;;***
-
-;;;### (autoloads nil "ert-x" "emacs-lisp/ert-x.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/ert-x.el
-
-(put 'ert-with-test-buffer 'lisp-indent-function 1)
-
-(autoload 'ert-kill-all-test-buffers "ert-x" "\
-Kill all test buffers that are still live.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ert-x" '("ert-")))
-
-;;;***
-
-;;;### (autoloads nil "esh-arg" "eshell/esh-arg.el" (0 0 0 0))
-;;; Generated autoloads from eshell/esh-arg.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"esh-arg" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads nil "esh-cmd" "eshell/esh-cmd.el" (0 0 0 0))
-;;; Generated autoloads from eshell/esh-cmd.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"esh-cmd" '("eshell" "pcomplete/eshell-mode/eshell-debug")))
-
-;;;***
-
-;;;### (autoloads nil "esh-ext" "eshell/esh-ext.el" (0 0 0 0))
-;;; Generated autoloads from eshell/esh-ext.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"esh-ext" '("eshell")))
-
-;;;***
-
-;;;### (autoloads nil "esh-io" "eshell/esh-io.el" (0 0 0 0))
-;;; Generated autoloads from eshell/esh-io.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"esh-io" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads nil "esh-mode" "eshell/esh-mode.el" (0 0 0 0))
-;;; Generated autoloads from eshell/esh-mode.el
-
-(autoload 'eshell-mode "esh-mode" "\
-Emacs shell interactive mode.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"esh-mode" '("eshell")))
-
-;;;***
-
-;;;### (autoloads nil "esh-module" "eshell/esh-module.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from eshell/esh-module.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"esh-module" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads nil "esh-opt" "eshell/esh-opt.el" (0 0 0 0))
-;;; Generated autoloads from eshell/esh-opt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"esh-opt" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads nil "esh-proc" "eshell/esh-proc.el" (0 0 0 0))
-;;; Generated autoloads from eshell/esh-proc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"esh-proc" '("eshell")))
-
-;;;***
-
-;;;### (autoloads nil "esh-util" "eshell/esh-util.el" (0 0 0 0))
-;;; Generated autoloads from eshell/esh-util.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"esh-util" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads nil "esh-var" "eshell/esh-var.el" (0 0 0 0))
-;;; Generated autoloads from eshell/esh-var.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"esh-var" '("eshell" "pcomplete/eshell-mode/")))
-
-;;;***
-
-;;;### (autoloads nil "eshell" "eshell/eshell.el" (0 0 0 0))
-;;; Generated autoloads from eshell/eshell.el
-(push (purecopy '(eshell 2 4 2)) package--builtin-versions)
-
-(autoload 'eshell "eshell" "\
-Create an interactive Eshell buffer.
-The buffer used for Eshell sessions is determined by the value of
-`eshell-buffer-name'.  If there is already an Eshell session active in
-that buffer, Emacs will simply switch to it.  Otherwise, a new session
-will begin.  A numeric prefix arg (as in `C-u 42 M-x eshell RET')
-switches to the session with that number, creating it if necessary.  A
-nonnumeric prefix arg means to create a new session.  Returns the
-buffer selected (or created).
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'eshell-command "eshell" "\
-Execute the Eshell command string COMMAND.
-With prefix ARG, insert output into the current buffer at point.
-
-\(fn &optional COMMAND ARG)" t nil)
-
-(autoload 'eshell-command-result "eshell" "\
-Execute the given Eshell COMMAND, and return the result.
-The result might be any Lisp object.
-If STATUS-VAR is a symbol, it will be set to the exit status of the
-command.  This is the only way to determine whether the value returned
-corresponding to a successful execution.
-
-\(fn COMMAND &optional STATUS-VAR)" nil nil)
-
-(define-obsolete-function-alias 'eshell-report-bug 'report-emacs-bug "23.1")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eshell" '("eshell-")))
-
-;;;***
-
-;;;### (autoloads nil "etags" "progmodes/etags.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/etags.el
-
-(defvar tags-file-name nil "\
-File name of tags table.
-To switch to a new tags table, setting this variable is sufficient.
-If you set this variable, do not also set `tags-table-list'.
-Use the `etags' program to make a tags table file.")
- (put 'tags-file-name 'variable-interactive (purecopy "fVisit tags table: "))
- (put 'tags-file-name 'safe-local-variable 'stringp)
-
-(defvar tags-case-fold-search 'default "\
-Whether tags operations should be case-sensitive.
-A value of t means case-insensitive, a value of nil means case-sensitive.
-Any other value means use the setting of `case-fold-search'.")
-
-(custom-autoload 'tags-case-fold-search "etags" t)
-
-(defvar tags-table-list nil "\
-List of file names of tags tables to search.
-An element that is a directory means the file \"TAGS\" in that directory.
-To switch to a new list of tags tables, setting this variable is sufficient.
-If you set this variable, do not also set `tags-file-name'.
-Use the `etags' program to make a tags table file.")
-
-(custom-autoload 'tags-table-list "etags" t)
-
-(defvar tags-compression-info-list (purecopy '("" ".Z" ".bz2" ".gz" ".xz" 
".tgz")) "\
-List of extensions tried by etags when `auto-compression-mode' is on.
-An empty string means search the non-compressed file.")
-
-(custom-autoload 'tags-compression-info-list "etags" t)
-
-(defvar tags-add-tables 'ask-user "\
-Control whether to add a new tags table to the current list.
-t means do; nil means don't (always start a new list).
-Any other value means ask the user whether to add a new tags table
-to the current list (as opposed to starting a new list).")
-
-(custom-autoload 'tags-add-tables "etags" t)
-
-(defvar find-tag-hook nil "\
-Hook to be run by \\[find-tag] after finding a tag.  See `run-hooks'.
-The value in the buffer in which \\[find-tag] is done is used,
-not the value in the buffer \\[find-tag] goes to.")
-
-(custom-autoload 'find-tag-hook "etags" t)
-
-(defvar find-tag-default-function nil "\
-A function of no arguments used by \\[find-tag] to pick a default tag.
-If nil, and the symbol that is the value of `major-mode'
-has a `find-tag-default-function' property (see `put'), that is used.
-Otherwise, `find-tag-default' is used.")
-
-(custom-autoload 'find-tag-default-function "etags" t)
-
-(autoload 'tags-table-mode "etags" "\
-Major mode for tags table file buffers.
-
-\(fn)" t nil)
-
-(autoload 'visit-tags-table "etags" "\
-Tell tags commands to use tags table file FILE.
-FILE should be the name of a file created with the `etags' program.
-A directory name is ok too; it means file TAGS in that directory.
-
-Normally \\[visit-tags-table] sets the global value of `tags-file-name'.
-With a prefix arg, set the buffer-local value instead.
-When you find a tag with \\[find-tag], the buffer it finds the tag
-in is given a local value of this variable which is the name of the tags
-file the tag was in.
-
-\(fn FILE &optional LOCAL)" t nil)
-
-(autoload 'visit-tags-table-buffer "etags" "\
-Select the buffer containing the current tags table.
-If optional arg is a string, visit that file as a tags table.
-If optional arg is t, visit the next table in `tags-table-list'.
-If optional arg is the atom `same', don't look for a new table;
- just select the buffer visiting `tags-file-name'.
-If arg is nil or absent, choose a first buffer from information in
- `tags-file-name', `tags-table-list', `tags-table-list-pointer'.
-Returns t if it visits a tags table, or nil if there are no more in the list.
-
-\(fn &optional CONT)" nil nil)
-
-(autoload 'tags-table-files "etags" "\
-Return a list of files in the current tags table.
-Assumes the tags table is the current buffer.  The file names are returned
-as they appeared in the `etags' command that created the table, usually
-without directory names.
-
-\(fn)" nil nil)
-
-(autoload 'tags-lazy-completion-table "etags" "\
-
-
-\(fn)" nil nil)
- (defun tags-completion-at-point-function ()
-  (if (or tags-table-list tags-file-name)
-      (progn
-        (load "etags")
-        (tags-completion-at-point-function))))
-
-(autoload 'find-tag-noselect "etags" "\
-Find tag (in current tags table) whose name contains TAGNAME.
-Returns the buffer containing the tag's definition and moves its point there,
-but does not select the buffer.
-The default for TAGNAME is the expression in the buffer near point.
-
-If second arg NEXT-P is t (interactively, with prefix arg), search for
-another tag that matches the last tagname or regexp used.  When there are
-multiple matches for a tag, more exact matches are found first.  If NEXT-P
-is the atom `-' (interactively, with prefix arg that is a negative number
-or just \\[negative-argument]), pop back to the previous tag gone to.
-
-If third arg REGEXP-P is non-nil, treat TAGNAME as a regexp.
-
-A marker representing the point when this command is invoked is pushed
-onto a ring and may be popped back to with \\[pop-tag-mark].
-Contrast this with the ring of marks gone to by the command.
-
-See documentation of variable `tags-file-name'.
-
-\(fn TAGNAME &optional NEXT-P REGEXP-P)" t nil)
-
-(autoload 'find-tag "etags" "\
-Find tag (in current tags table) whose name contains TAGNAME.
-Select the buffer containing the tag's definition, and move point there.
-The default for TAGNAME is the expression in the buffer around or before point.
-
-If second arg NEXT-P is t (interactively, with prefix arg), search for
-another tag that matches the last tagname or regexp used.  When there are
-multiple matches for a tag, more exact matches are found first.  If NEXT-P
-is the atom `-' (interactively, with prefix arg that is a negative number
-or just \\[negative-argument]), pop back to the previous tag gone to.
-
-If third arg REGEXP-P is non-nil, treat TAGNAME as a regexp.
-
-A marker representing the point when this command is invoked is pushed
-onto a ring and may be popped back to with \\[pop-tag-mark].
-Contrast this with the ring of marks gone to by the command.
-
-See documentation of variable `tags-file-name'.
-
-\(fn TAGNAME &optional NEXT-P REGEXP-P)" t nil)
-
-(make-obsolete 'find-tag 'xref-find-definitions '"25.1")
-
-(autoload 'find-tag-other-window "etags" "\
-Find tag (in current tags table) whose name contains TAGNAME.
-Select the buffer containing the tag's definition in another window, and
-move point there.  The default for TAGNAME is the expression in the buffer
-around or before point.
-
-If second arg NEXT-P is t (interactively, with prefix arg), search for
-another tag that matches the last tagname or regexp used.  When there are
-multiple matches for a tag, more exact matches are found first.  If NEXT-P
-is negative (interactively, with prefix arg that is a negative number or
-just \\[negative-argument]), pop back to the previous tag gone to.
-
-If third arg REGEXP-P is non-nil, treat TAGNAME as a regexp.
-
-A marker representing the point when this command is invoked is pushed
-onto a ring and may be popped back to with \\[pop-tag-mark].
-Contrast this with the ring of marks gone to by the command.
-
-See documentation of variable `tags-file-name'.
-
-\(fn TAGNAME &optional NEXT-P REGEXP-P)" t nil)
-
-(make-obsolete 'find-tag-other-window 'xref-find-definitions-other-window 
'"25.1")
-
-(autoload 'find-tag-other-frame "etags" "\
-Find tag (in current tags table) whose name contains TAGNAME.
-Select the buffer containing the tag's definition in another frame, and
-move point there.  The default for TAGNAME is the expression in the buffer
-around or before point.
-
-If second arg NEXT-P is t (interactively, with prefix arg), search for
-another tag that matches the last tagname or regexp used.  When there are
-multiple matches for a tag, more exact matches are found first.  If NEXT-P
-is negative (interactively, with prefix arg that is a negative number or
-just \\[negative-argument]), pop back to the previous tag gone to.
-
-If third arg REGEXP-P is non-nil, treat TAGNAME as a regexp.
-
-A marker representing the point when this command is invoked is pushed
-onto a ring and may be popped back to with \\[pop-tag-mark].
-Contrast this with the ring of marks gone to by the command.
-
-See documentation of variable `tags-file-name'.
-
-\(fn TAGNAME &optional NEXT-P)" t nil)
-
-(make-obsolete 'find-tag-other-frame 'xref-find-definitions-other-frame 
'"25.1")
-
-(autoload 'find-tag-regexp "etags" "\
-Find tag (in current tags table) whose name matches REGEXP.
-Select the buffer containing the tag's definition and move point there.
-
-If second arg NEXT-P is t (interactively, with prefix arg), search for
-another tag that matches the last tagname or regexp used.  When there are
-multiple matches for a tag, more exact matches are found first.  If NEXT-P
-is negative (interactively, with prefix arg that is a negative number or
-just \\[negative-argument]), pop back to the previous tag gone to.
-
-If third arg OTHER-WINDOW is non-nil, select the buffer in another window.
-
-A marker representing the point when this command is invoked is pushed
-onto a ring and may be popped back to with \\[pop-tag-mark].
-Contrast this with the ring of marks gone to by the command.
-
-See documentation of variable `tags-file-name'.
-
-\(fn REGEXP &optional NEXT-P OTHER-WINDOW)" t nil)
-
-(make-obsolete 'find-tag-regexp 'xref-find-apropos '"25.1")
-
-(defalias 'pop-tag-mark 'xref-pop-marker-stack)
-
-(autoload 'next-file "etags" "\
-Select next file among files in current tags table.
-
-A first argument of t (prefix arg, if interactive) initializes to the
-beginning of the list of files in the tags table.  If the argument is
-neither nil nor t, it is evalled to initialize the list of files.
-
-Non-nil second argument NOVISIT means use a temporary buffer
- to save time and avoid uninteresting warnings.
-
-Value is nil if the file was already visited;
-if the file was newly read in, the value is the filename.
-
-\(fn &optional INITIALIZE NOVISIT)" t nil)
-
-(autoload 'tags-loop-continue "etags" "\
-Continue last \\[tags-search] or \\[tags-query-replace] command.
-Used noninteractively with non-nil argument to begin such a command (the
-argument is passed to `next-file', which see).
-
-Two variables control the processing we do on each file: the value of
-`tags-loop-scan' is a form to be executed on each file to see if it is
-interesting (it returns non-nil if so) and `tags-loop-operate' is a form to
-evaluate to operate on an interesting file.  If the latter evaluates to
-nil, we exit; otherwise we scan the next file.
-
-\(fn &optional FIRST-TIME)" t nil)
-
-(autoload 'tags-search "etags" "\
-Search through all files listed in tags table for match for REGEXP.
-Stops when a match is found.
-To continue searching for next match, use command \\[tags-loop-continue].
-
-If FILE-LIST-FORM is non-nil, it should be a form that, when
-evaluated, will return a list of file names.  The search will be
-restricted to these files.
-
-Also see the documentation of the `tags-file-name' variable.
-
-\(fn REGEXP &optional FILE-LIST-FORM)" t nil)
-
-(autoload 'tags-query-replace "etags" "\
-Do `query-replace-regexp' of FROM with TO on all files listed in tags table.
-Third arg DELIMITED (prefix arg) means replace only word-delimited matches.
-If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
-with the command \\[tags-loop-continue].
-Fourth arg FILE-LIST-FORM non-nil means initialize the replacement loop.
-
-If FILE-LIST-FORM is non-nil, it is a form to evaluate to
-produce the list of files to search.
-
-See also the documentation of the variable `tags-file-name'.
-
-\(fn FROM TO &optional DELIMITED FILE-LIST-FORM)" t nil)
-
-(autoload 'list-tags "etags" "\
-Display list of tags in file FILE.
-This searches only the first table in the list, and no included tables.
-FILE should be as it appeared in the `etags' command, usually without a
-directory specification.
-
-\(fn FILE &optional NEXT-MATCH)" t nil)
-
-(autoload 'tags-apropos "etags" "\
-Display list of all tags in tags table REGEXP matches.
-
-\(fn REGEXP)" t nil)
-
-(make-obsolete 'tags-apropos 'xref-find-apropos '"25.1")
-
-(autoload 'select-tags-table "etags" "\
-Select a tags table file from a menu of those you have already used.
-The list of tags tables to select from is stored in `tags-table-set-list';
-see the doc of that variable if you want to add names to the list.
-
-\(fn)" t nil)
-
-(autoload 'complete-tag "etags" "\
-Perform tags completion on the text around point.
-Completes to the set of names listed in the current tags table.
-The string to complete is chosen in the same way as the default
-for \\[find-tag] (which see).
-
-\(fn)" t nil)
-
-(autoload 'etags--xref-backend "etags" "\
-
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"etags" '("xref-" "etags-" "snarf-tag-function" "select-tags-table-" "tag" 
"file-of-tag" "find-tag-" "list-tags-function" "last-tag" 
"initialize-new-tags-table" "verify-tags-table-function" 
"goto-tag-location-function" "next-file-list" "default-tags-table-function")))
-
-;;;***
-
-;;;### (autoloads nil "ethio-util" "language/ethio-util.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from language/ethio-util.el
-
-(autoload 'setup-ethiopic-environment-internal "ethio-util" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'ethio-sera-to-fidel-buffer "ethio-util" "\
-Convert the current buffer from SERA to FIDEL.
-
-The variable `ethio-primary-language' specifies the primary
-language and `ethio-secondary-language' specifies the secondary.
-
-If the 1st optional argument SECONDARY is non-nil, assume the
-buffer begins with the secondary language; otherwise with the
-primary language.
-
-If the 2nd optional argument FORCE is non-nil, perform conversion
-even if the buffer is read-only.
-
-See also the descriptions of the variables
-`ethio-use-colon-for-colon' and `ethio-use-three-dot-question'.
-
-\(fn &optional SECONDARY FORCE)" t nil)
-
-(autoload 'ethio-sera-to-fidel-region "ethio-util" "\
-Convert the characters in region from SERA to FIDEL.
-
-The variable `ethio-primary-language' specifies the primary
-language and `ethio-secondary-language' specifies the secondary.
-
-If the 3rd argument SECONDARY is given and non-nil, assume the
-region begins with the secondary language; otherwise with the
-primary language.
-
-If the 4th argument FORCE is given and non-nil, perform
-conversion even if the buffer is read-only.
-
-See also the descriptions of the variables
-`ethio-use-colon-for-colon' and `ethio-use-three-dot-question'.
-
-\(fn BEGIN END &optional SECONDARY FORCE)" t nil)
-
-(autoload 'ethio-sera-to-fidel-marker "ethio-util" "\
-Convert the regions surrounded by \"<sera>\" and \"</sera>\" from SERA to 
FIDEL.
-Assume that each region begins with `ethio-primary-language'.
-The markers \"<sera>\" and \"</sera>\" themselves are not deleted.
-
-\(fn &optional FORCE)" t nil)
-
-(autoload 'ethio-fidel-to-sera-buffer "ethio-util" "\
-Replace all the FIDEL characters in the current buffer to the SERA format.
-The variable `ethio-primary-language' specifies the primary
-language and `ethio-secondary-language' specifies the secondary.
-
-If the 1st optional argument SECONDARY is non-nil, try to convert the
-region so that it begins with the secondary language; otherwise with the
-primary language.
-
-If the 2nd optional argument FORCE is non-nil, convert even if the
-buffer is read-only.
-
-See also the descriptions of the variables
-`ethio-use-colon-for-colon', `ethio-use-three-dot-question',
-`ethio-quote-vowel-always' and `ethio-numeric-reduction'.
-
-\(fn &optional SECONDARY FORCE)" t nil)
-
-(autoload 'ethio-fidel-to-sera-region "ethio-util" "\
-Replace all the FIDEL characters in the region to the SERA format.
-
-The variable `ethio-primary-language' specifies the primary
-language and `ethio-secondary-language' specifies the secondary.
-
-If the 3rd argument SECONDARY is given and non-nil, convert
-the region so that it begins with the secondary language; otherwise with
-the primary language.
-
-If the 4th argument FORCE is given and non-nil, convert even if the
-buffer is read-only.
-
-See also the descriptions of the variables
-`ethio-use-colon-for-colon', `ethio-use-three-dot-question',
-`ethio-quote-vowel-always' and `ethio-numeric-reduction'.
-
-\(fn BEGIN END &optional SECONDARY FORCE)" t nil)
-
-(autoload 'ethio-fidel-to-sera-marker "ethio-util" "\
-Convert the regions surrounded by \"<sera>\" and \"</sera>\" from FIDEL to 
SERA.
-The markers \"<sera>\" and \"</sera>\" themselves are not deleted.
-
-\(fn &optional FORCE)" t nil)
-
-(autoload 'ethio-modify-vowel "ethio-util" "\
-Modify the vowel of the FIDEL that is under the cursor.
-
-\(fn)" t nil)
-
-(autoload 'ethio-replace-space "ethio-util" "\
-Replace ASCII spaces with Ethiopic word separators in the region.
-
-In the specified region, replace word separators surrounded by two
-Ethiopic characters, depending on the first argument CH, which should
-be 1, 2, or 3.
-
-If CH = 1, word separator will be replaced with an ASCII space.
-If CH = 2, with two ASCII spaces.
-If CH = 3, with the Ethiopic colon-like word separator.
-
-The 2nd and 3rd arguments BEGIN and END specify the region.
-
-\(fn CH BEGIN END)" t nil)
-
-(autoload 'ethio-input-special-character "ethio-util" "\
-This function is deprecated.
-
-\(fn ARG)" t nil)
-
-(autoload 'ethio-fidel-to-tex-buffer "ethio-util" "\
-Convert each fidel characters in the current buffer into a fidel-tex command.
-
-\(fn)" t nil)
-
-(autoload 'ethio-tex-to-fidel-buffer "ethio-util" "\
-Convert fidel-tex commands in the current buffer into fidel chars.
-
-\(fn)" t nil)
-
-(autoload 'ethio-fidel-to-java-buffer "ethio-util" "\
-Convert Ethiopic characters into the Java escape sequences.
-
-Each escape sequence is of the form \\uXXXX, where XXXX is the
-character's codepoint (in hex) in Unicode.
-
-If `ethio-java-save-lowercase' is non-nil, use [0-9a-f].
-Otherwise, [0-9A-F].
-
-\(fn)" nil nil)
-
-(autoload 'ethio-java-to-fidel-buffer "ethio-util" "\
-Convert the Java escape sequences into corresponding Ethiopic characters.
-
-\(fn)" nil nil)
-
-(autoload 'ethio-find-file "ethio-util" "\
-Transliterate file content into Ethiopic depending on filename suffix.
-
-\(fn)" nil nil)
-
-(autoload 'ethio-write-file "ethio-util" "\
-Transliterate Ethiopic characters in ASCII depending on the file extension.
-
-\(fn)" nil nil)
-
-(autoload 'ethio-insert-ethio-space "ethio-util" "\
-Insert the Ethiopic word delimiter (the colon-like character).
-With ARG, insert that many delimiters.
-
-\(fn ARG)" t nil)
-
-(autoload 'ethio-composition-function "ethio-util" "\
-
-
-\(fn POS TO FONT-OBJECT STRING)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ethio-util" '("exit-ethiopic-environment" "ethio-")))
-
-;;;***
-
-;;;### (autoloads nil "eudc" "net/eudc.el" (0 0 0 0))
-;;; Generated autoloads from net/eudc.el
-
-(autoload 'eudc-set-server "eudc" "\
-Set the directory server to SERVER using PROTOCOL.
-Unless NO-SAVE is non-nil, the server is saved as the default
-server for future sessions.
-
-\(fn SERVER PROTOCOL &optional NO-SAVE)" t nil)
-
-(autoload 'eudc-get-email "eudc" "\
-Get the email field of NAME from the directory server.
-If ERROR is non-nil, report an error if there is none.
-
-\(fn NAME &optional ERROR)" t nil)
-
-(autoload 'eudc-get-phone "eudc" "\
-Get the phone field of NAME from the directory server.
-If ERROR is non-nil, report an error if there is none.
-
-\(fn NAME &optional ERROR)" t nil)
-
-(autoload 'eudc-expand-inline "eudc" "\
-Query the directory server, and expand the query string before point.
-The query string consists of the buffer substring from the point back to
-the preceding comma, colon or beginning of line.
-The variable `eudc-inline-query-format' controls how to associate the
-individual inline query words with directory attribute names.
-After querying the server for the given string, the expansion specified by
-`eudc-inline-expansion-format' is inserted in the buffer at point.
-If REPLACE is non-nil, then this expansion replaces the name in the buffer.
-`eudc-expansion-overwrites-query' being non-nil inverts the meaning of REPLACE.
-Multiple servers can be tried with the same query until one finds a match,
-see `eudc-inline-expansion-servers'
-
-\(fn &optional REPLACE)" t nil)
-
-(autoload 'eudc-query-form "eudc" "\
-Display a form to query the directory server.
-If given a non-nil argument GET-FIELDS-FROM-SERVER, the function first
-queries the server for the existing fields and displays a corresponding form.
-
-\(fn &optional GET-FIELDS-FROM-SERVER)" t nil)
-
-(autoload 'eudc-load-eudc "eudc" "\
-Load the Emacs Unified Directory Client.
-This does nothing except loading eudc by autoload side-effect.
-
-\(fn)" t nil)
-
-(cond ((not (featurep 'xemacs)) (defvar eudc-tools-menu (let ((map 
(make-sparse-keymap "Directory Servers"))) (define-key map [phone] `(menu-item 
,(purecopy "Get Phone") eudc-get-phone :help ,(purecopy "Get the phone field of 
name from the directory server"))) (define-key map [email] `(menu-item 
,(purecopy "Get Email") eudc-get-email :help ,(purecopy "Get the email field of 
NAME from the directory server"))) (define-key map [separator-eudc-email] 
menu-bar-separator) (define-key map [expa [...]
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eudc" '("eudc-")))
-
-;;;***
-
-;;;### (autoloads nil "eudc-bob" "net/eudc-bob.el" (0 0 0 0))
-;;; Generated autoloads from net/eudc-bob.el
-
-(autoload 'eudc-display-generic-binary "eudc-bob" "\
-Display a button for unidentified binary DATA.
-
-\(fn DATA)" nil nil)
-
-(autoload 'eudc-display-url "eudc-bob" "\
-Display URL and make it clickable.
-
-\(fn URL)" nil nil)
-
-(autoload 'eudc-display-mail "eudc-bob" "\
-Display e-mail address and make it clickable.
-
-\(fn MAIL)" nil nil)
-
-(autoload 'eudc-display-sound "eudc-bob" "\
-Display a button to play the sound DATA.
-
-\(fn DATA)" nil nil)
-
-(autoload 'eudc-display-jpeg-inline "eudc-bob" "\
-Display the JPEG DATA inline at point if possible.
-
-\(fn DATA)" nil nil)
-
-(autoload 'eudc-display-jpeg-as-button "eudc-bob" "\
-Display a button for the JPEG DATA.
-
-\(fn DATA)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eudc-bob" '("eudc-")))
-
-;;;***
-
-;;;### (autoloads nil "eudc-export" "net/eudc-export.el" (0 0 0 0))
-;;; Generated autoloads from net/eudc-export.el
-
-(autoload 'eudc-insert-record-at-point-into-bbdb "eudc-export" "\
-Insert record at point into the BBDB database.
-This function can only be called from a directory query result buffer.
-
-\(fn)" t nil)
-
-(autoload 'eudc-try-bbdb-insert "eudc-export" "\
-Call `eudc-insert-record-at-point-into-bbdb' if on a record.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eudc-export" '("eudc-")))
-
-;;;***
-
-;;;### (autoloads nil "eudc-hotlist" "net/eudc-hotlist.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from net/eudc-hotlist.el
-
-(autoload 'eudc-edit-hotlist "eudc-hotlist" "\
-Edit the hotlist of directory servers in a specialized buffer.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eudc-hotlist" '("eudc-hotlist-")))
-
-;;;***
-
-;;;### (autoloads nil "eudc-vars" "net/eudc-vars.el" (0 0 0 0))
-;;; Generated autoloads from net/eudc-vars.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eudc-vars" '("eudc-")))
-
-;;;***
-
-;;;### (autoloads nil "eudcb-bbdb" "net/eudcb-bbdb.el" (0 0 0 0))
-;;; Generated autoloads from net/eudcb-bbdb.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eudcb-bbdb" '("eudc-bbdb-")))
-
-;;;***
-
-;;;### (autoloads nil "eudcb-ldap" "net/eudcb-ldap.el" (0 0 0 0))
-;;; Generated autoloads from net/eudcb-ldap.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eudcb-ldap" '("eudc-")))
-
-;;;***
-
-;;;### (autoloads nil "eudcb-mab" "net/eudcb-mab.el" (0 0 0 0))
-;;; Generated autoloads from net/eudcb-mab.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eudcb-mab" '("eudc-")))
-
-;;;***
-
-;;;### (autoloads nil "ewoc" "emacs-lisp/ewoc.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/ewoc.el
-
-(autoload 'ewoc-create "ewoc" "\
-Create an empty ewoc.
-
-The ewoc will be inserted in the current buffer at the current position.
-
-PRETTY-PRINTER should be a function that takes one argument, an
-element, and inserts a string representing it in the buffer (at
-point).  The string PRETTY-PRINTER inserts may be empty or span
-several lines.  The PRETTY-PRINTER should use `insert', and not
-`insert-before-markers'.
-
-Optional second and third arguments HEADER and FOOTER are strings,
-possibly empty, that will always be present at the top and bottom,
-respectively, of the ewoc.
-
-Normally, a newline is automatically inserted after the header,
-the footer and every node's printed representation.  Optional
-fourth arg NOSEP non-nil inhibits this.
-
-\(fn PRETTY-PRINTER &optional HEADER FOOTER NOSEP)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ewoc" '("ewoc-")))
-
-;;;***
-
-;;;### (autoloads nil "eww" "net/eww.el" (0 0 0 0))
-;;; Generated autoloads from net/eww.el
-
-(defvar eww-suggest-uris '(eww-links-at-point url-get-url-at-point 
eww-current-url) "\
-List of functions called to form the list of default URIs for `eww'.
-Each of the elements is a function returning either a string or a list
-of strings.  The results will be joined into a single list with
-duplicate entries (if any) removed.")
-
-(custom-autoload 'eww-suggest-uris "eww" t)
-
-(autoload 'eww "eww" "\
-Fetch URL and render the page.
-If the input doesn't look like an URL or a domain name, the
-word(s) will be searched for via `eww-search-prefix'.
-
-\(fn URL)" t nil)
- (defalias 'browse-web 'eww)
-
-(autoload 'eww-open-file "eww" "\
-Render FILE using EWW.
-
-\(fn FILE)" t nil)
-
-(autoload 'eww-search-words "eww" "\
-Search the web for the text between BEG and END.
-See the `eww-search-prefix' variable for the search engine used.
-
-\(fn &optional BEG END)" t nil)
-
-(autoload 'eww-mode "eww" "\
-Mode for browsing the web.
-
-\(fn)" t nil)
-
-(autoload 'eww-browse-url "eww" "\
-
-
-\(fn URL &optional NEW-WINDOW)" nil nil)
-
-(autoload 'eww-list-bookmarks "eww" "\
-Display the bookmarks.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"eww" '("eww-")))
-
-;;;***
-
-;;;### (autoloads nil "executable" "progmodes/executable.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from progmodes/executable.el
-
-(autoload 'executable-command-find-posix-p "executable" "\
-Check if PROGRAM handles arguments Posix-style.
-If PROGRAM is non-nil, use that instead of \"find\".
-
-\(fn &optional PROGRAM)" nil nil)
-
-(autoload 'executable-interpret "executable" "\
-Run script with user-specified args, and collect output in a buffer.
-While script runs asynchronously, you can use the \\[next-error]
-command to find the next error.  The buffer is also in `comint-mode' and
-`compilation-shell-minor-mode', so that you can answer any prompts.
-
-\(fn COMMAND)" t nil)
-
-(autoload 'executable-set-magic "executable" "\
-Set this buffer's interpreter to INTERPRETER with optional ARGUMENT.
-The variables `executable-magicless-file-regexp', `executable-prefix',
-`executable-insert', `executable-query' and `executable-chmod' control
-when and how magic numbers are inserted or replaced and scripts made
-executable.
-
-\(fn INTERPRETER &optional ARGUMENT NO-QUERY-FLAG INSERT-FLAG)" t nil)
-
-(autoload 'executable-make-buffer-file-executable-if-script-p "executable" "\
-Make file executable according to umask if not already executable.
-If file already has any execute bits set at all, do not change existing
-file modes.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"executable" '("executable-")))
-
-;;;***
-
-;;;### (autoloads nil "expand" "expand.el" (0 0 0 0))
-;;; Generated autoloads from expand.el
-
-(autoload 'expand-add-abbrevs "expand" "\
-Add a list of abbreviations to abbrev table TABLE.
-ABBREVS is a list of abbrev definitions; each abbrev description entry
-has the form (ABBREV EXPANSION ARG).
-
-ABBREV is the abbreviation to replace.
-
-EXPANSION is the replacement string or a function which will make the
-expansion.  For example, you could use the DMacros or skeleton packages
-to generate such functions.
-
-ARG is an optional argument which can be a number or a list of
-numbers.  If ARG is a number, point is placed ARG chars from the
-beginning of the expanded text.
-
-If ARG is a list of numbers, point is placed according to the first
-member of the list, but you can visit the other specified positions
-cyclically with the functions `expand-jump-to-previous-slot' and
-`expand-jump-to-next-slot'.
-
-If ARG is omitted, point is placed at the end of the expanded text.
-
-\(fn TABLE ABBREVS)" nil nil)
-
-(autoload 'expand-abbrev-hook "expand" "\
-Abbrev hook used to do the expansion job of expand abbrevs.
-See `expand-add-abbrevs'.  Value is non-nil if expansion was done.
-
-\(fn)" nil nil)
-
-(autoload 'expand-jump-to-previous-slot "expand" "\
-Move the cursor to the previous slot in the last abbrev expansion.
-This is used only in conjunction with `expand-add-abbrevs'.
-
-\(fn)" t nil)
-
-(autoload 'expand-jump-to-next-slot "expand" "\
-Move the cursor to the next slot in the last abbrev expansion.
-This is used only in conjunction with `expand-add-abbrevs'.
-
-\(fn)" t nil)
- (define-key abbrev-map "p" 'expand-jump-to-previous-slot)
- (define-key abbrev-map "n" 'expand-jump-to-next-slot)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"expand" '("expand-")))
-
-;;;***
-
-;;;### (autoloads nil "ezimage" "ezimage.el" (0 0 0 0))
-;;; Generated autoloads from ezimage.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ezimage" '("ezimage-")))
-
-;;;***
-
-;;;### (autoloads nil "f90" "progmodes/f90.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/f90.el
-
-(autoload 'f90-mode "f90" "\
-Major mode for editing Fortran 90,95 code in free format.
-For fixed format code, use `fortran-mode'.
-
-\\[f90-indent-line] indents the current line.
-\\[f90-indent-new-line] indents current line and creates a new indented line.
-\\[f90-indent-subprogram] indents the current subprogram.
-
-Type \\=`? or \\=`\\[help-command] to display a list of built-in abbrevs for 
F90 keywords.
-
-Key definitions:
-\\{f90-mode-map}
-
-Variables controlling indentation style and extra features:
-
-`f90-do-indent'
-  Extra indentation within do blocks (default 3).
-`f90-if-indent'
-  Extra indentation within if/select/where/forall blocks (default 3).
-`f90-type-indent'
-  Extra indentation within type/enum/interface/block-data blocks (default 3).
-`f90-program-indent'
-  Extra indentation within program/module/subroutine/function blocks
-  (default 2).
-`f90-associate-indent'
-  Extra indentation within associate blocks (default 2).
-`f90-critical-indent'
-  Extra indentation within critical/block blocks (default 2).
-`f90-continuation-indent'
-  Extra indentation applied to continuation lines (default 5).
-`f90-comment-region'
-  String inserted by function \\[f90-comment-region] at start of each
-  line in region (default \"!!!$\").
-`f90-indented-comment-re'
-  Regexp determining the type of comment to be intended like code
-  (default \"!\").
-`f90-directive-comment-re'
-  Regexp of comment-like directive like \"!HPF\\\\$\", not to be indented
-  (default \"!hpf\\\\$\").
-`f90-break-delimiters'
-  Regexp holding list of delimiters at which lines may be broken
-  (default \"[-+*/><=,% \\t]\").
-`f90-break-before-delimiters'
-  Non-nil causes `f90-do-auto-fill' to break lines before delimiters
-  (default t).
-`f90-beginning-ampersand'
-  Automatic insertion of `&' at beginning of continuation lines (default t).
-`f90-smart-end'
-  From an END statement, check and fill the end using matching block start.
-  Allowed values are `blink', `no-blink', and nil, which determine
-  whether to blink the matching beginning (default `blink').
-`f90-auto-keyword-case'
-  Automatic change of case of keywords (default nil).
-  The possibilities are `downcase-word', `upcase-word', `capitalize-word'.
-`f90-leave-line-no'
-  Do not left-justify line numbers (default nil).
-
-Turning on F90 mode calls the value of the variable `f90-mode-hook'
-with no args, if that value is non-nil.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"f90" '("f90-")))
-
-;;;***
-
-;;;### (autoloads nil "face-remap" "face-remap.el" (0 0 0 0))
-;;; Generated autoloads from face-remap.el
-
-(autoload 'face-remap-add-relative "face-remap" "\
-Add a face remapping entry of FACE to SPECS in the current buffer.
-Return a cookie which can be used to delete this remapping with
-`face-remap-remove-relative'.
-
-The remaining arguments, SPECS, should form a list of faces.
-Each list element should be either a face name or a property list
-of face attribute/value pairs.  If more than one face is listed,
-that specifies an aggregate face, in the same way as in a `face'
-text property, except for possible priority changes noted below.
-
-The face remapping specified by SPECS takes effect alongside the
-remappings from other calls to `face-remap-add-relative' for the
-same FACE, as well as the normal definition of FACE (at lowest
-priority).  This function tries to sort multiple remappings for
-the same face, so that remappings specifying relative face
-attributes are applied after remappings specifying absolute face
-attributes.
-
-The base (lowest priority) remapping may be set to something
-other than the normal definition of FACE via `face-remap-set-base'.
-
-\(fn FACE &rest SPECS)" nil nil)
-
-(autoload 'face-remap-reset-base "face-remap" "\
-Set the base remapping of FACE to the normal definition of FACE.
-This causes the remappings specified by `face-remap-add-relative'
-to apply on top of the normal definition of FACE.
-
-\(fn FACE)" nil nil)
-
-(autoload 'face-remap-set-base "face-remap" "\
-Set the base remapping of FACE in the current buffer to SPECS.
-This causes the remappings specified by `face-remap-add-relative'
-to apply on top of the face specification given by SPECS.
-
-The remaining arguments, SPECS, should form a list of faces.
-Each list element should be either a face name or a property list
-of face attribute/value pairs, like in a `face' text property.
-
-If SPECS is empty, call `face-remap-reset-base' to use the normal
-definition of FACE as the base remapping; note that this is
-different from SPECS containing a single value nil, which means
-not to inherit from the global definition of FACE at all.
-
-\(fn FACE &rest SPECS)" nil nil)
-
-(autoload 'text-scale-set "face-remap" "\
-Set the scale factor of the default face in the current buffer to LEVEL.
-If LEVEL is non-zero, `text-scale-mode' is enabled, otherwise it is disabled.
-
-LEVEL is a number of steps, with 0 representing the default size.
-Each step scales the height of the default face by the variable
-`text-scale-mode-step' (a negative number decreases the height by
-the same amount).
-
-\(fn LEVEL)" t nil)
-
-(autoload 'text-scale-increase "face-remap" "\
-Increase the height of the default face in the current buffer by INC steps.
-If the new height is other than the default, `text-scale-mode' is enabled.
-
-Each step scales the height of the default face by the variable
-`text-scale-mode-step' (a negative number of steps decreases the
-height by the same amount).  As a special case, an argument of 0
-will remove any scaling currently active.
-
-\(fn INC)" t nil)
-
-(autoload 'text-scale-decrease "face-remap" "\
-Decrease the height of the default face in the current buffer by DEC steps.
-See `text-scale-increase' for more details.
-
-\(fn DEC)" t nil)
- (define-key ctl-x-map [(control ?+)] 'text-scale-adjust)
- (define-key ctl-x-map [(control ?-)] 'text-scale-adjust)
- (define-key ctl-x-map [(control ?=)] 'text-scale-adjust)
- (define-key ctl-x-map [(control ?0)] 'text-scale-adjust)
-
-(autoload 'text-scale-adjust "face-remap" "\
-Adjust the height of the default face by INC.
-
-INC may be passed as a numeric prefix argument.
-
-The actual adjustment made depends on the final component of the
-key-binding used to invoke the command, with all modifiers removed:
-
-   +, =   Increase the default face height by one step
-   -      Decrease the default face height by one step
-   0      Reset the default face height to the global default
-
-After adjusting, continue to read input events and further adjust
-the face height as long as the input event read
-\(with all modifiers removed) is one of the above characters.
-
-Each step scales the height of the default face by the variable
-`text-scale-mode-step' (a negative number of steps decreases the
-height by the same amount).  As a special case, an argument of 0
-will remove any scaling currently active.
-
-This command is a special-purpose wrapper around the
-`text-scale-increase' command which makes repetition convenient
-even when it is bound in a non-top-level keymap.  For binding in
-a top-level keymap, `text-scale-increase' or
-`text-scale-decrease' may be more appropriate.
-
-\(fn INC)" t nil)
-
-(autoload 'buffer-face-mode "face-remap" "\
-Minor mode for a buffer-specific default face.
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.  When enabled, the face specified by the
-variable `buffer-face-mode-face' is used to display the buffer text.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'buffer-face-set "face-remap" "\
-Enable `buffer-face-mode', using face specs SPECS.
-Each argument in SPECS should be a face, i.e. either a face name
-or a property list of face attributes and values.  If more than
-one face is listed, that specifies an aggregate face, like in a
-`face' text property.  If SPECS is nil or omitted, disable
-`buffer-face-mode'.
-
-This function makes the variable `buffer-face-mode-face' buffer
-local, and sets it to FACE.
-
-\(fn &rest SPECS)" t nil)
-
-(autoload 'buffer-face-toggle "face-remap" "\
-Toggle `buffer-face-mode', using face specs SPECS.
-Each argument in SPECS should be a face, i.e. either a face name
-or a property list of face attributes and values.  If more than
-one face is listed, that specifies an aggregate face, like in a
-`face' text property.
-
-If `buffer-face-mode' is already enabled, and is currently using
-the face specs SPECS, then it is disabled; if `buffer-face-mode'
-is disabled, or is enabled and currently displaying some other
-face, then is left enabled, but the face changed to reflect SPECS.
-
-This function will make the variable `buffer-face-mode-face'
-buffer local, and set it to SPECS.
-
-\(fn &rest SPECS)" t nil)
-
-(autoload 'variable-pitch-mode "face-remap" "\
-Variable-pitch default-face mode.
-An interface to `buffer-face-mode' which uses the `variable-pitch' face.
-Besides the choice of face, it is the same as `buffer-face-mode'.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"face-remap" '("buffer-face-mode-" "text-scale-m" "face-" 
"internal-lisp-face-attributes")))
-
-;;;***
-
-;;;### (autoloads nil "feedmail" "mail/feedmail.el" (0 0 0 0))
-;;; Generated autoloads from mail/feedmail.el
-(push (purecopy '(feedmail 11)) package--builtin-versions)
-
-(autoload 'feedmail-send-it "feedmail" "\
-Send the current mail buffer using the Feedmail package.
-This is a suitable value for `send-mail-function'.  It can be used
-with various lower-level mechanisms to provide features such as queueing.
-
-\(fn)" nil nil)
-
-(autoload 'feedmail-run-the-queue-no-prompts "feedmail" "\
-Like `feedmail-run-the-queue', but suppress confirmation prompts.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'feedmail-run-the-queue-global-prompt "feedmail" "\
-Like `feedmail-run-the-queue', but with a global confirmation prompt.
-This is generally most useful if run non-interactively, since you can
-bail out with an appropriate answer to the global confirmation prompt.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'feedmail-run-the-queue "feedmail" "\
-Visit each message in the feedmail queue directory and send it out.
-Return value is a list of three things: number of messages sent, number of
-messages skipped, and number of non-message things in the queue (commonly
-backup file names and the like).
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'feedmail-queue-reminder "feedmail" "\
-Perform some kind of reminder activity about queued and draft messages.
-Called with an optional symbol argument which says what kind of event
-is triggering the reminder activity.  The default is `on-demand', which
-is what you typically would use if you were putting this in your Emacs start-up
-or mail hook code.  Other recognized values for WHAT-EVENT (these are passed
-internally by feedmail):
-
-   after-immediate      (a message has just been sent in immediate mode)
-   after-queue          (a message has just been queued)
-   after-draft          (a message has just been placed in the draft directory)
-   after-run            (the queue has just been run, possibly sending 
messages)
-
-WHAT-EVENT is used as a key into the table `feedmail-queue-reminder-alist'.  If
-the associated value is a function, it is called without arguments and is 
expected
-to perform the reminder activity.  You can supply your own reminder functions
-by redefining `feedmail-queue-reminder-alist'.  If you don't want any 
reminders,
-you can set `feedmail-queue-reminder-alist' to nil.
-
-\(fn &optional WHAT-EVENT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"feedmail" '("feedmail-")))
-
-;;;***
-
-;;;### (autoloads nil "ffap" "ffap.el" (0 0 0 0))
-;;; Generated autoloads from ffap.el
-
-(autoload 'ffap-next "ffap" "\
-Search buffer for next file or URL, and run ffap.
-Optional argument BACK says to search backwards.
-Optional argument WRAP says to try wrapping around if necessary.
-Interactively: use a single prefix \\[universal-argument] to search backwards,
-double prefix to wrap forward, triple to wrap backwards.
-Actual search is done by the function `ffap-next-guess'.
-
-\(fn &optional BACK WRAP)" t nil)
-
-(autoload 'find-file-at-point "ffap" "\
-Find FILENAME, guessing a default from text around point.
-If `ffap-url-regexp' is not nil, the FILENAME may also be an URL.
-With a prefix, this command behaves exactly like `ffap-file-finder'.
-If `ffap-require-prefix' is set, the prefix meaning is reversed.
-See also the variables `ffap-dired-wildcards', `ffap-newfile-prompt',
-and the functions `ffap-file-at-point' and `ffap-url-at-point'.
-
-\(fn &optional FILENAME)" t nil)
-
-(defalias 'ffap 'find-file-at-point)
-
-(autoload 'ffap-menu "ffap" "\
-Put up a menu of files and URLs mentioned in this buffer.
-Then set mark, jump to choice, and try to fetch it.  The menu is
-cached in `ffap-menu-alist', and rebuilt by `ffap-menu-rescan'.
-The optional RESCAN argument (a prefix, interactively) forces
-a rebuild.  Searches with `ffap-menu-regexp'.
-
-\(fn &optional RESCAN)" t nil)
-
-(autoload 'ffap-at-mouse "ffap" "\
-Find file or URL guessed from text around mouse click.
-Interactively, calls `ffap-at-mouse-fallback' if no guess is found.
-Return value:
-  * if a guess string is found, return it (after finding it)
-  * if the fallback is called, return whatever it returns
-  * otherwise, nil
-
-\(fn E)" t nil)
-
-(autoload 'dired-at-point "ffap" "\
-Start Dired, defaulting to file at point.  See `ffap'.
-If `dired-at-point-require-prefix' is set, the prefix meaning is reversed.
-
-\(fn &optional FILENAME)" t nil)
-
-(autoload 'ffap-guess-file-name-at-point "ffap" "\
-Try to get a file name at point.
-This hook is intended to be put in `file-name-at-point-functions'.
-
-\(fn)" nil nil)
-
-(autoload 'ffap-bindings "ffap" "\
-Evaluate the forms in variable `ffap-bindings'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ffap" '("find-file-literally-at-point" "ffap-" "dired-at-point-")))
-
-;;;***
-
-;;;### (autoloads nil "filecache" "filecache.el" (0 0 0 0))
-;;; Generated autoloads from filecache.el
-
-(autoload 'file-cache-add-directory "filecache" "\
-Add all files in DIRECTORY to the file cache.
-If called from Lisp with a non-nil REGEXP argument is non-nil,
-only add files whose names match REGEXP.
-
-\(fn DIRECTORY &optional REGEXP)" t nil)
-
-(autoload 'file-cache-add-directory-list "filecache" "\
-Add DIRECTORIES (a list of directory names) to the file cache.
-If called interactively, read the directory names one by one.
-If the optional REGEXP argument is non-nil, only files which match it
-will be added to the cache.  Note that the REGEXP is applied to the
-files in each directory, not to the directory list itself.
-
-\(fn DIRECTORIES &optional REGEXP)" t nil)
-
-(autoload 'file-cache-add-file "filecache" "\
-Add FILE to the file cache.
-
-\(fn FILE)" t nil)
-
-(autoload 'file-cache-add-directory-using-find "filecache" "\
-Use the `find' command to add files to the file cache.
-Find is run in DIRECTORY.
-
-\(fn DIRECTORY)" t nil)
-
-(autoload 'file-cache-add-directory-using-locate "filecache" "\
-Use the `locate' command to add files to the file cache.
-STRING is passed as an argument to the locate command.
-
-\(fn STRING)" t nil)
-
-(autoload 'file-cache-add-directory-recursively "filecache" "\
-Adds DIR and any subdirectories to the file-cache.
-This function does not use any external programs.
-If the optional REGEXP argument is non-nil, only files which match it
-will be added to the cache.  Note that the REGEXP is applied to the
-files in each directory, not to the directory list itself.
-
-\(fn DIR &optional REGEXP)" t nil)
-
-(autoload 'file-cache-minibuffer-complete "filecache" "\
-Complete a filename in the minibuffer using a preloaded cache.
-Filecache does two kinds of substitution: it completes on names in
-the cache, and, once it has found a unique name, it cycles through
-the directories that the name is available in.  With a prefix argument,
-the name is considered already unique; only the second substitution
-\(directories) is done.
-
-\(fn ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"filecache" '("file-cache-")))
-
-;;;***
-
-;;;### (autoloads nil "filenotify" "filenotify.el" (0 0 0 0))
-;;; Generated autoloads from filenotify.el
-
-(autoload 'file-notify-handle-event "filenotify" "\
-Handle file system monitoring event.
-If EVENT is a filewatch event, call its callback.  It has the format
-
-  (file-notify (DESCRIPTOR ACTIONS FILE [FILE1-OR-COOKIE]) CALLBACK)
-
-Otherwise, signal a `file-notify-error'.
-
-\(fn EVENT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"filenotify" '("file-notify-")))
-
-;;;***
-
-;;;### (autoloads nil "files-x" "files-x.el" (0 0 0 0))
-;;; Generated autoloads from files-x.el
-
-(autoload 'add-file-local-variable "files-x" "\
-Add file-local VARIABLE with its VALUE to the Local Variables list.
-
-This command deletes all existing settings of VARIABLE (except `mode'
-and `eval') and adds a new file-local VARIABLE with VALUE to the
-Local Variables list.
-
-If there is no Local Variables list in the current file buffer
-then this function adds the first line containing the string
-`Local Variables:' and the last line containing the string `End:'.
-
-\(fn VARIABLE VALUE &optional INTERACTIVE)" t nil)
-
-(autoload 'delete-file-local-variable "files-x" "\
-Delete all settings of file-local VARIABLE from the Local Variables list.
-
-\(fn VARIABLE &optional INTERACTIVE)" t nil)
-
-(autoload 'add-file-local-variable-prop-line "files-x" "\
-Add file-local VARIABLE with its VALUE to the -*- line.
-
-This command deletes all existing settings of VARIABLE (except `mode'
-and `eval') and adds a new file-local VARIABLE with VALUE to
-the -*- line.
-
-If there is no -*- line at the beginning of the current file buffer
-then this function adds it.
-
-\(fn VARIABLE VALUE &optional INTERACTIVE)" t nil)
-
-(autoload 'delete-file-local-variable-prop-line "files-x" "\
-Delete all settings of file-local VARIABLE from the -*- line.
-
-\(fn VARIABLE &optional INTERACTIVE)" t nil)
-
-(autoload 'add-dir-local-variable "files-x" "\
-Add directory-local VARIABLE with its VALUE and MODE to .dir-locals.el.
-
-\(fn MODE VARIABLE VALUE)" t nil)
-
-(autoload 'delete-dir-local-variable "files-x" "\
-Delete all MODE settings of file-local VARIABLE from .dir-locals.el.
-
-\(fn MODE VARIABLE)" t nil)
-
-(autoload 'copy-file-locals-to-dir-locals "files-x" "\
-Copy file-local variables to .dir-locals.el.
-
-\(fn)" t nil)
-
-(autoload 'copy-dir-locals-to-file-locals "files-x" "\
-Copy directory-local variables to the Local Variables list.
-
-\(fn)" t nil)
-
-(autoload 'copy-dir-locals-to-file-locals-prop-line "files-x" "\
-Copy directory-local variables to the -*- line.
-
-\(fn)" t nil)
-
-(defvar enable-connection-local-variables t "\
-Non-nil means enable use of connection-local variables.")
-
-(autoload 'connection-local-set-classes "files-x" "\
-Add CLASSES for remote servers.
-CRITERIA is either a regular expression identifying a remote
-server, or a function with one argument IDENTIFICATION, which
-returns non-nil when a remote server shall apply CLASS'es
-variables.  If CRITERIA is nil, it always applies.
-CLASSES are the names of a variable class (a symbol).
-
-When a connection to a remote server is opened and CRITERIA
-matches to that server, the connection-local variables from CLASSES
-are applied to the corresponding process buffer.  The variables
-for a class are defined using `connection-local-set-class-variables'.
-
-\(fn CRITERIA &rest CLASSES)" nil nil)
-
-(autoload 'connection-local-set-class-variables "files-x" "\
-Map the symbol CLASS to a list of variable settings.
-VARIABLES is a list that declares connection-local variables for
-the class.  An element in VARIABLES is an alist whose elements
-are of the form (VAR . VALUE).
-
-When a connection to a remote server is opened, the server's
-classes are found.  A server may be assigned a class using
-`connection-local-set-class'.  Then variables are set in the
-server's process buffer according to the VARIABLES list of the
-class.  The list is processed in order.
-
-\(fn CLASS VARIABLES)" nil nil)
-
-(autoload 'hack-connection-local-variables-apply "files-x" "\
-Apply connection-local variables identified by `default-directory'.
-Other local variables, like file-local and dir-local variables,
-will not be changed.
-
-\(fn)" nil nil)
-
-(autoload 'with-connection-local-classes "files-x" "\
-Apply connection-local variables according to CLASSES in current buffer.
-Execute BODY, and unwind connection local variables.
-
-\(fn CLASSES &rest BODY)" nil t)
-
-(function-put 'with-connection-local-classes 'lisp-indent-function '1)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"files-x" '("hack-connection-local-variables" "connection-local-" "modify-" 
"read-file-local-variable")))
-
-;;;***
-
-;;;### (autoloads nil "filesets" "filesets.el" (0 0 0 0))
-;;; Generated autoloads from filesets.el
-
-(autoload 'filesets-init "filesets" "\
-Filesets initialization.
-Set up hooks, load the cache file -- if existing -- and build the menu.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"filesets" '("filesets-")))
-
-;;;***
-
-;;;### (autoloads nil "find-cmd" "find-cmd.el" (0 0 0 0))
-;;; Generated autoloads from find-cmd.el
-(push (purecopy '(find-cmd 0 6)) package--builtin-versions)
-
-(autoload 'find-cmd "find-cmd" "\
-Initiate the building of a find command.
-For example:
-
-\(find-cmd \\='(prune (name \".svn\" \".git\" \".CVS\"))
-          \\='(and (or (name \"*.pl\" \"*.pm\" \"*.t\")
-                    (mtime \"+1\"))
-                (fstype \"nfs\" \"ufs\"))))
-
-`default-directory' is used as the initial search path.  The
-result is a string that should be ready for the command line.
-
-\(fn &rest SUBFINDS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"find-cmd" '("find-")))
-
-;;;***
-
-;;;### (autoloads nil "find-dired" "find-dired.el" (0 0 0 0))
-;;; Generated autoloads from find-dired.el
-
-(autoload 'find-dired "find-dired" "\
-Run `find' and go into Dired mode on a buffer of the output.
-The command run (after changing into DIR) is essentially
-
-    find . \\( ARGS \\) -ls
-
-except that the car of the variable `find-ls-option' specifies what to
-use in place of \"-ls\" as the final argument.
-
-\(fn DIR ARGS)" t nil)
-
-(autoload 'find-name-dired "find-dired" "\
-Search DIR recursively for files matching the globbing pattern PATTERN,
-and run Dired on those files.
-PATTERN is a shell wildcard (not an Emacs regexp) and need not be quoted.
-The default command run (after changing into DIR) is
-
-    find . -name \\='PATTERN\\=' -ls
-
-See `find-name-arg' to customize the arguments.
-
-\(fn DIR PATTERN)" t nil)
-
-(autoload 'find-grep-dired "find-dired" "\
-Find files in DIR matching a regexp REGEXP and start Dired on output.
-The command run (after changing into DIR) is
-
-  find . \\( -type f -exec `grep-program' `find-grep-options' \\
-    -e REGEXP {} \\; \\) -ls
-
-where the car of the variable `find-ls-option' specifies what to
-use in place of \"-ls\" as the final argument.
-
-\(fn DIR REGEXP)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"find-dired" '("find-" "lookfor-dired" "kill-find")))
-
-;;;***
-
-;;;### (autoloads nil "find-file" "find-file.el" (0 0 0 0))
-;;; Generated autoloads from find-file.el
-
-(defvar ff-special-constructs `((,(purecopy "^#\\s *\\(include\\|import\\)\\s 
+[<\"]\\(.*\\)[>\"]") lambda nil (buffer-substring (match-beginning 2) 
(match-end 2)))) "\
-List of special constructs recognized by `ff-treat-as-special'.
-Each element, tried in order, has the form (REGEXP . EXTRACT).
-If REGEXP matches the current line (from the beginning of the line),
-`ff-treat-as-special' calls function EXTRACT with no args.
-If EXTRACT returns nil, keep trying.  Otherwise, return the
-filename that EXTRACT returned.")
-
-(custom-autoload 'ff-special-constructs "find-file" t)
-
-(autoload 'ff-get-other-file "find-file" "\
-Find the header or source file corresponding to this file.
-See also the documentation for `ff-find-other-file'.
-
-If optional IN-OTHER-WINDOW is non-nil, find the file in another window.
-
-\(fn &optional IN-OTHER-WINDOW)" t nil)
-
-(defalias 'ff-find-related-file 'ff-find-other-file)
-
-(autoload 'ff-find-other-file "find-file" "\
-Find the header or source file corresponding to this file.
-Being on a `#include' line pulls in that file.
-
-If optional IN-OTHER-WINDOW is non-nil, find the file in the other window.
-If optional IGNORE-INCLUDE is non-nil, ignore being on `#include' lines.
-
-Variables of interest include:
-
- - `ff-case-fold-search'
-   Non-nil means ignore cases in matches (see `case-fold-search').
-   If you have extensions in different cases, you will want this to be nil.
-
- - `ff-always-in-other-window'
-   If non-nil, always open the other file in another window, unless an
-   argument is given to `ff-find-other-file'.
-
- - `ff-ignore-include'
-   If non-nil, ignores #include lines.
-
- - `ff-always-try-to-create'
-   If non-nil, always attempt to create the other file if it was not found.
-
- - `ff-quiet-mode'
-   If non-nil, traces which directories are being searched.
-
- - `ff-special-constructs'
-   A list of regular expressions specifying how to recognize special
-   constructs such as include files etc, and an associated method for
-   extracting the filename from that construct.
-
- - `ff-other-file-alist'
-   Alist of extensions to find given the current file's extension.
-
- - `ff-search-directories'
-   List of directories searched through with each extension specified in
-   `ff-other-file-alist' that matches this file's extension.
-
- - `ff-pre-find-hook'
-   List of functions to be called before the search for the file starts.
-
- - `ff-pre-load-hook'
-   List of functions to be called before the other file is loaded.
-
- - `ff-post-load-hook'
-   List of functions to be called after the other file is loaded.
-
- - `ff-not-found-hook'
-   List of functions to be called if the other file could not be found.
-
- - `ff-file-created-hook'
-   List of functions to be called if the other file has been created.
-
-\(fn &optional IN-OTHER-WINDOW IGNORE-INCLUDE)" t nil)
-
-(autoload 'ff-mouse-find-other-file "find-file" "\
-Visit the file you click on.
-
-\(fn EVENT)" t nil)
-
-(autoload 'ff-mouse-find-other-file-other-window "find-file" "\
-Visit the file you click on in another window.
-
-\(fn EVENT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"find-file" '("ff-" "modula2-other-file-alist" "cc-")))
-
-;;;***
-
-;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emacs-lisp/find-func.el
-
-(autoload 'find-library "find-func" "\
-Find the Emacs Lisp source of LIBRARY.
-LIBRARY should be a string (the name of the library).  If the
-optional OTHER-WINDOW argument (i.e., the command argument) is
-specified, pop to a different window before displaying the
-buffer.
-
-\(fn LIBRARY &optional OTHER-WINDOW)" t nil)
-
-(autoload 'find-function-search-for-symbol "find-func" "\
-Search for SYMBOL's definition of type TYPE in LIBRARY.
-Visit the library in a buffer, and return a cons cell (BUFFER . POSITION),
-or just (BUFFER . nil) if the definition can't be found in the file.
-
-If TYPE is nil, look for a function definition.
-Otherwise, TYPE specifies the kind of definition,
-and it is interpreted via `find-function-regexp-alist'.
-The search is done in the source for library LIBRARY.
-
-\(fn SYMBOL TYPE LIBRARY)" nil nil)
-
-(autoload 'find-function-noselect "find-func" "\
-Return a pair (BUFFER . POINT) pointing to the definition of FUNCTION.
-
-Finds the source file containing the definition of FUNCTION
-in a buffer and the point of the definition.  The buffer is
-not selected.  If the function definition can't be found in
-the buffer, returns (BUFFER).
-
-If FUNCTION is a built-in function, this function normally
-attempts to find it in the Emacs C sources; however, if LISP-ONLY
-is non-nil, signal an error instead.
-
-If the file where FUNCTION is defined is not known, then it is
-searched for in `find-function-source-path' if non-nil, otherwise
-in `load-path'.
-
-\(fn FUNCTION &optional LISP-ONLY)" nil nil)
-
-(autoload 'find-function "find-func" "\
-Find the definition of the FUNCTION near point.
-
-Finds the source file containing the definition of the function
-near point (selected by `function-called-at-point') in a buffer and
-places point before the definition.
-Set mark before moving, if the buffer already existed.
-
-The library where FUNCTION is defined is searched for in
-`find-function-source-path', if non-nil, otherwise in `load-path'.
-See also `find-function-recenter-line' and `find-function-after-hook'.
-
-\(fn FUNCTION)" t nil)
-
-(autoload 'find-function-other-window "find-func" "\
-Find, in another window, the definition of FUNCTION near point.
-
-See `find-function' for more details.
-
-\(fn FUNCTION)" t nil)
-
-(autoload 'find-function-other-frame "find-func" "\
-Find, in another frame, the definition of FUNCTION near point.
-
-See `find-function' for more details.
-
-\(fn FUNCTION)" t nil)
-
-(autoload 'find-variable-noselect "find-func" "\
-Return a pair `(BUFFER . POINT)' pointing to the definition of VARIABLE.
-
-Finds the library containing the definition of VARIABLE in a buffer and
-the point of the definition.  The buffer is not selected.
-If the variable's definition can't be found in the buffer, return (BUFFER).
-
-The library where VARIABLE is defined is searched for in FILE or
-`find-function-source-path', if non-nil, otherwise in `load-path'.
-
-\(fn VARIABLE &optional FILE)" nil nil)
-
-(autoload 'find-variable "find-func" "\
-Find the definition of the VARIABLE at or before point.
-
-Finds the library containing the definition of the variable
-near point (selected by `variable-at-point') in a buffer and
-places point before the definition.
-
-Set mark before moving, if the buffer already existed.
-
-The library where VARIABLE is defined is searched for in
-`find-function-source-path', if non-nil, otherwise in `load-path'.
-See also `find-function-recenter-line' and `find-function-after-hook'.
-
-\(fn VARIABLE)" t nil)
-
-(autoload 'find-variable-other-window "find-func" "\
-Find, in another window, the definition of VARIABLE near point.
-
-See `find-variable' for more details.
-
-\(fn VARIABLE)" t nil)
-
-(autoload 'find-variable-other-frame "find-func" "\
-Find, in another frame, the definition of VARIABLE near point.
-
-See `find-variable' for more details.
-
-\(fn VARIABLE)" t nil)
-
-(autoload 'find-definition-noselect "find-func" "\
-Return a pair `(BUFFER . POINT)' pointing to the definition of SYMBOL.
-If the definition can't be found in the buffer, return (BUFFER).
-TYPE says what type of definition: nil for a function, `defvar' for a
-variable, `defface' for a face.  This function does not switch to the
-buffer nor display it.
-
-The library where SYMBOL is defined is searched for in FILE or
-`find-function-source-path', if non-nil, otherwise in `load-path'.
-
-\(fn SYMBOL TYPE &optional FILE)" nil nil)
-
-(autoload 'find-face-definition "find-func" "\
-Find the definition of FACE.  FACE defaults to the name near point.
-
-Finds the Emacs Lisp library containing the definition of the face
-near point (selected by `variable-at-point') in a buffer and
-places point before the definition.
-
-Set mark before moving, if the buffer already existed.
-
-The library where FACE is defined is searched for in
-`find-function-source-path', if non-nil, otherwise in `load-path'.
-See also `find-function-recenter-line' and `find-function-after-hook'.
-
-\(fn FACE)" t nil)
-
-(autoload 'find-function-on-key "find-func" "\
-Find the function that KEY invokes.  KEY is a string.
-Set mark before moving, if the buffer already existed.
-
-\(fn KEY)" t nil)
-
-(autoload 'find-function-on-key-other-window "find-func" "\
-Find, in the other window, the function that KEY invokes.
-See `find-function-on-key'.
-
-\(fn KEY)" t nil)
-
-(autoload 'find-function-on-key-other-frame "find-func" "\
-Find, in the other frame, the function that KEY invokes.
-See `find-function-on-key'.
-
-\(fn KEY)" t nil)
-
-(autoload 'find-function-at-point "find-func" "\
-Find directly the function at point in the other window.
-
-\(fn)" t nil)
-
-(autoload 'find-variable-at-point "find-func" "\
-Find directly the variable at point in the other window.
-
-\(fn)" t nil)
-
-(autoload 'find-function-setup-keys "find-func" "\
-Define some key bindings for the find-function family of functions.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"find-func" '("find-")))
-
-;;;***
-
-;;;### (autoloads nil "find-lisp" "find-lisp.el" (0 0 0 0))
-;;; Generated autoloads from find-lisp.el
-
-(autoload 'find-lisp-find-dired "find-lisp" "\
-Find files in DIR, matching REGEXP.
-
-\(fn DIR REGEXP)" t nil)
-
-(autoload 'find-lisp-find-dired-subdirectories "find-lisp" "\
-Find all subdirectories of DIR.
-
-\(fn DIR)" t nil)
-
-(autoload 'find-lisp-find-dired-filter "find-lisp" "\
-Change the filter on a `find-lisp-find-dired' buffer to REGEXP.
-
-\(fn REGEXP)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"find-lisp" '("find-lisp-")))
-
-;;;***
-
-;;;### (autoloads nil "finder" "finder.el" (0 0 0 0))
-;;; Generated autoloads from finder.el
-(push (purecopy '(finder 1 0)) package--builtin-versions)
-
-(autoload 'finder-list-keywords "finder" "\
-Display descriptions of the keywords in the Finder buffer.
-
-\(fn)" t nil)
-
-(autoload 'finder-commentary "finder" "\
-Display FILE's commentary section.
-FILE should be in a form suitable for passing to `locate-library'.
-
-\(fn FILE)" t nil)
-
-(autoload 'finder-by-keyword "finder" "\
-Find packages matching a given keyword.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"finder" '("finder-" "generated-finder-keywords-file")))
-
-;;;***
-
-;;;### (autoloads nil "flow-ctrl" "flow-ctrl.el" (0 0 0 0))
-;;; Generated autoloads from flow-ctrl.el
-
-(autoload 'enable-flow-control "flow-ctrl" "\
-Toggle flow control handling.
-When handling is enabled, user can type C-s as C-\\, and C-q as C-^.
-With arg, enable flow control mode if arg is positive, otherwise disable.
-
-\(fn &optional ARGUMENT)" t nil)
-
-(autoload 'enable-flow-control-on "flow-ctrl" "\
-Enable flow control if using one of a specified set of terminal types.
-Use `(enable-flow-control-on \"vt100\" \"h19\")' to enable flow control
-on VT-100 and H19 terminals.  When flow control is enabled,
-you must type C-\\ to get the effect of a C-s, and type C-^
-to get the effect of a C-q.
-
-\(fn &rest LOSING-TERMINAL-TYPES)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"flow-ctrl" '("flow-control-c-")))
-
-;;;***
-
-;;;### (autoloads nil "flow-fill" "mail/flow-fill.el" (0 0 0 0))
-;;; Generated autoloads from mail/flow-fill.el
-
-(autoload 'fill-flowed-encode "flow-fill" "\
-
-
-\(fn &optional BUFFER)" nil nil)
-
-(autoload 'fill-flowed "flow-fill" "\
-
-
-\(fn &optional BUFFER DELETE-SPACE)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"flow-fill" '("fill-flowed-")))
-
-;;;***
-
-;;;### (autoloads nil "flymake" "progmodes/flymake.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/flymake.el
-(push (purecopy '(flymake 0 3)) package--builtin-versions)
-
-(autoload 'flymake-mode "flymake" "\
-Toggle Flymake mode on or off.
-With a prefix argument ARG, enable Flymake mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'.
-\\{flymake-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'flymake-mode-on "flymake" "\
-Turn flymake mode on.
-
-\(fn)" nil nil)
-
-(autoload 'flymake-mode-off "flymake" "\
-Turn flymake mode off.
-
-\(fn)" nil nil)
-
-(autoload 'flymake-find-file-hook "flymake" "\
-
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"flymake" '("flymake-")))
-
-;;;***
-
-;;;### (autoloads nil "flyspell" "textmodes/flyspell.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/flyspell.el
-
-(autoload 'flyspell-prog-mode "flyspell" "\
-Turn on `flyspell-mode' for comments and strings.
-
-\(fn)" t nil)
-(defvar flyspell-mode nil "Non-nil if Flyspell mode is enabled.")
-
-(autoload 'flyspell-mode "flyspell" "\
-Toggle on-the-fly spell checking (Flyspell mode).
-With a prefix argument ARG, enable Flyspell mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Flyspell mode is a buffer-local minor mode.  When enabled, it
-spawns a single Ispell process and checks each word.  The default
-flyspell behavior is to highlight incorrect words.
-
-Bindings:
-\\[ispell-word]: correct words (using Ispell).
-\\[flyspell-auto-correct-word]: automatically correct word.
-\\[flyspell-auto-correct-previous-word]: automatically correct the last 
misspelled word.
-\\[flyspell-correct-word] (or down-mouse-2): popup correct words.
-
-Hooks:
-This runs `flyspell-mode-hook' after flyspell mode is entered or exit.
-
-Remark:
-`flyspell-mode' uses `ispell-mode'.  Thus all Ispell options are
-valid.  For instance, a different dictionary can be used by
-invoking `ispell-change-dictionary'.
-
-Consider using the `ispell-parser' to check your text.  For instance
-consider adding:
-\(add-hook \\='tex-mode-hook (function (lambda () (setq ispell-parser 
\\='tex))))
-in your init file.
-
-\\[flyspell-region] checks all words inside a region.
-\\[flyspell-buffer] checks the whole buffer.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'turn-on-flyspell "flyspell" "\
-Unconditionally turn on Flyspell mode.
-
-\(fn)" nil nil)
-
-(autoload 'turn-off-flyspell "flyspell" "\
-Unconditionally turn off Flyspell mode.
-
-\(fn)" nil nil)
-
-(autoload 'flyspell-mode-off "flyspell" "\
-Turn Flyspell mode off.
-
-\(fn)" nil nil)
-
-(autoload 'flyspell-region "flyspell" "\
-Flyspell text between BEG and END.
-
-\(fn BEG END)" t nil)
-
-(autoload 'flyspell-buffer "flyspell" "\
-Flyspell whole buffer.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"flyspell" '("flyspell-" "mail-mode-flyspell-verify" "make-flyspell-overlay" 
"sgml-mode-flyspell-verify" "tex")))
-
-;;;***
-
-;;;### (autoloads nil "foldout" "foldout.el" (0 0 0 0))
-;;; Generated autoloads from foldout.el
-(push (purecopy '(foldout 1 10)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"foldout" '("foldout-")))
-
-;;;***
-
-;;;### (autoloads nil "follow" "follow.el" (0 0 0 0))
-;;; Generated autoloads from follow.el
-
-(autoload 'turn-on-follow-mode "follow" "\
-Turn on Follow mode.  Please see the function `follow-mode'.
-
-\(fn)" nil nil)
-
-(autoload 'turn-off-follow-mode "follow" "\
-Turn off Follow mode.  Please see the function `follow-mode'.
-
-\(fn)" nil nil)
-
-(autoload 'follow-mode "follow" "\
-Toggle Follow mode.
-With a prefix argument ARG, enable Follow mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Follow mode is a minor mode that combines windows into one tall
-virtual window.  This is accomplished by two main techniques:
-
-* The windows always displays adjacent sections of the buffer.
-  This means that whenever one window is moved, all the
-  others will follow.  (Hence the name Follow mode.)
-
-* Should point (cursor) end up outside a window, another
-  window displaying that point is selected, if possible.  This
-  makes it possible to walk between windows using normal cursor
-  movement commands.
-
-Follow mode comes to its prime when used on a large screen and two or
-more side-by-side windows are used.  The user can, with the help of
-Follow mode, use these full-height windows as though they were one.
-Imagine yourself editing a large function, or section of text, and
-being able to use 144 or 216 lines instead of the normal 72... (your
-mileage may vary).
-
-To split one large window into two side-by-side windows, the commands
-`\\[split-window-right]' or `\\[follow-delete-other-windows-and-split]' can be 
used.
-
-Only windows displayed in the same frame follow each other.
-
-This command runs the normal hook `follow-mode-hook'.
-
-Keys specific to Follow mode:
-\\{follow-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'follow-scroll-up-window "follow" "\
-Scroll text in a Follow mode window up by that window's size.
-The other windows in the window chain will scroll synchronously.
-
-If called with no ARG, the `next-screen-context-lines' last lines of
-the window will be visible after the scroll.
-
-If called with an argument, scroll ARG lines up.
-Negative ARG means scroll downward.
-
-Works like `scroll-up' when not in Follow mode.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'follow-scroll-down-window "follow" "\
-Scroll text in a Follow mode window down by that window's size.
-The other windows in the window chain will scroll synchronously.
-
-If called with no ARG, the `next-screen-context-lines' top lines of
-the window in the chain will be visible after the scroll.
-
-If called with an argument, scroll ARG lines down.
-Negative ARG means scroll upward.
-
-Works like `scroll-down' when not in Follow mode.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'follow-scroll-up "follow" "\
-Scroll text in a Follow mode window chain up.
-
-If called with no ARG, the `next-screen-context-lines' last lines of
-the bottom window in the chain will be visible in the top window.
-
-If called with an argument, scroll ARG lines up.
-Negative ARG means scroll downward.
-
-Works like `scroll-up' when not in Follow mode.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'follow-scroll-down "follow" "\
-Scroll text in a Follow mode window chain down.
-
-If called with no ARG, the `next-screen-context-lines' top lines of
-the top window in the chain will be visible in the bottom window.
-
-If called with an argument, scroll ARG lines down.
-Negative ARG means scroll upward.
-
-Works like `scroll-down' when not in Follow mode.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'follow-delete-other-windows-and-split "follow" "\
-Create two side by side windows and enter Follow mode.
-
-Execute this command to display as much as possible of the text
-in the selected window.  All other windows, in the current
-frame, are deleted and the selected window is split in two
-side-by-side windows.  Follow mode is activated, hence the
-two windows always will display two successive pages.
-\(If one window is moved, the other one will follow.)
-
-If ARG is positive, the leftmost window is selected.  If negative,
-the rightmost is selected.  If ARG is nil, the leftmost window is
-selected if the original window is the first one in the frame.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"follow" '("follow-")))
-
-;;;***
-
-;;;### (autoloads nil "fontset" "international/fontset.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from international/fontset.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"fontset" '("charset-script-alist" "create-" "set" "standard-fontset-spec" 
"fontset-" "generate-fontset-menu" "xlfd-" "x-")))
-
-;;;***
-
-;;;### (autoloads nil "footnote" "mail/footnote.el" (0 0 0 0))
-;;; Generated autoloads from mail/footnote.el
-(push (purecopy '(footnote 0 19)) package--builtin-versions)
-
-(autoload 'footnote-mode "footnote" "\
-Toggle Footnote mode.
-With a prefix argument ARG, enable Footnote mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Footnote mode is a buffer-local minor mode.  If enabled, it
-provides footnote support for `message-mode'.  To get started,
-play around with the following keys:
-\\{footnote-minor-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"footnote" '("footnote-" "Footnote-")))
-
-;;;***
-
-;;;### (autoloads nil "format-spec" "format-spec.el" (0 0 0 0))
-;;; Generated autoloads from format-spec.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"format-spec" '("format-spec")))
-
-;;;***
-
-;;;### (autoloads nil "forms" "forms.el" (0 0 0 0))
-;;; Generated autoloads from forms.el
-
-(autoload 'forms-mode "forms" "\
-Major mode to visit files in a field-structured manner using a form.
-
-Commands:                        Equivalent keys in read-only mode:
- TAB            forms-next-field          TAB
- C-c TAB        forms-next-field
- C-c <          forms-first-record         <
- C-c >          forms-last-record          >
- C-c ?          describe-mode              ?
- C-c C-k        forms-delete-record
- C-c C-q        forms-toggle-read-only     q
- C-c C-o        forms-insert-record
- C-c C-l        forms-jump-record          l
- C-c C-n        forms-next-record          n
- C-c C-p        forms-prev-record          p
- C-c C-r        forms-search-reverse       r
- C-c C-s        forms-search-forward       s
- C-c C-x        forms-exit                 x
-
-\(fn &optional PRIMARY)" t nil)
-
-(autoload 'forms-find-file "forms" "\
-Visit a file in Forms mode.
-
-\(fn FN)" t nil)
-
-(autoload 'forms-find-file-other-window "forms" "\
-Visit a file in Forms mode in other window.
-
-\(fn FN)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"forms" '("forms-")))
-
-;;;***
-
-;;;### (autoloads nil "fortran" "progmodes/fortran.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/fortran.el
-
-(autoload 'fortran-mode "fortran" "\
-Major mode for editing Fortran code in fixed format.
-For free format code, use `f90-mode'.
-
-\\[fortran-indent-line] indents the current Fortran line correctly.
-Note that DO statements must not share a common CONTINUE.
-
-Type ;? or ;\\[help-command] to display a list of built-in abbrevs for Fortran 
keywords.
-
-Key definitions:
-\\{fortran-mode-map}
-
-Variables controlling indentation style and extra features:
-
-`fortran-comment-line-start'
-  To use comments starting with `!', set this to the string \"!\".
-`fortran-do-indent'
-  Extra indentation within DO blocks (default 3).
-`fortran-if-indent'
-  Extra indentation within IF blocks (default 3).
-`fortran-structure-indent'
-  Extra indentation within STRUCTURE, UNION, MAP and INTERFACE blocks.
-  (default 3)
-`fortran-continuation-indent'
-  Extra indentation applied to continuation statements (default 5).
-`fortran-comment-line-extra-indent'
-  Amount of extra indentation for text in full-line comments (default 0).
-`fortran-comment-indent-style'
-  How to indent the text in full-line comments. Allowed values are:
-  nil         don't change the indentation
-  `fixed'     indent to `fortran-comment-line-extra-indent' beyond the
-              value of either
-                `fortran-minimum-statement-indent-fixed' (fixed format) or
-                `fortran-minimum-statement-indent-tab' (TAB format),
-              depending on the continuation format in use.
-  `relative'  indent to `fortran-comment-line-extra-indent' beyond the
-              indentation for a line of code.
-  (default `fixed')
-`fortran-comment-indent-char'
-  Single-character string to be inserted instead of space for
-  full-line comment indentation (default \" \").
-`fortran-minimum-statement-indent-fixed'
-  Minimum indentation for statements in fixed format mode (default 6).
-`fortran-minimum-statement-indent-tab'
-  Minimum indentation for statements in TAB format mode (default 9).
-`fortran-line-number-indent'
-  Maximum indentation for line numbers (default 1).  A line number will
-  get less than this much indentation if necessary to avoid reaching
-  column 5.
-`fortran-check-all-num-for-matching-do'
-  Non-nil causes all numbered lines to be treated as possible \"continue\"
-  statements (default nil).
-`fortran-blink-matching-if'
-  Non-nil causes \\[fortran-indent-line] on an ENDIF (or ENDDO) statement
-  to blink on the matching IF (or DO [WHILE]).  (default nil)
-`fortran-continuation-string'
-  Single-character string to be inserted in column 5 of a continuation
-  line (default \"$\").
-`fortran-comment-region'
-  String inserted by \\[fortran-comment-region] at start of each line in
-  the region (default \"c$$$\").
-`fortran-electric-line-number'
-  Non-nil causes line number digits to be moved to the correct column
-  as typed (default t).
-`fortran-break-before-delimiters'
-  Non-nil causes lines to be broken before delimiters (default t).
-
-Turning on Fortran mode calls the value of the variable `fortran-mode-hook'
-with no args, if that value is non-nil.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"fortran" '("fortran-")))
-
-;;;***
-
-;;;### (autoloads nil "fortune" "play/fortune.el" (0 0 0 0))
-;;; Generated autoloads from play/fortune.el
-
-(autoload 'fortune-add-fortune "fortune" "\
-Add STRING to a fortune file FILE.
-
-Interactively, if called with a prefix argument,
-read the file name to use.  Otherwise use the value of `fortune-file'.
-
-\(fn STRING FILE)" t nil)
-
-(autoload 'fortune-from-region "fortune" "\
-Append the current region to a local fortune-like data file.
-
-Interactively, if called with a prefix argument,
-read the file name to use.  Otherwise use the value of `fortune-file'.
-
-\(fn BEG END FILE)" t nil)
-
-(autoload 'fortune-compile "fortune" "\
-Compile fortune file.
-
-If called with a prefix asks for the FILE to compile, otherwise uses
-the value of `fortune-file'.  This currently cannot handle directories.
-
-\(fn &optional FILE)" t nil)
-
-(autoload 'fortune-to-signature "fortune" "\
-Create signature from output of the fortune program.
-
-If called with a prefix asks for the FILE to choose the fortune from,
-otherwise uses the value of `fortune-file'.  If you want to have fortune
-choose from a set of files in a directory, call interactively with prefix
-and choose the directory as the fortune-file.
-
-\(fn &optional FILE)" t nil)
-
-(autoload 'fortune-message "fortune" "\
-Display a fortune cookie to the mini-buffer.
-If called with a prefix, it has the same behavior as `fortune'.
-Optional FILE is a fortune file from which a cookie will be selected.
-
-\(fn &optional FILE)" t nil)
-
-(autoload 'fortune "fortune" "\
-Display a fortune cookie.
-If called with a prefix asks for the FILE to choose the fortune from,
-otherwise uses the value of `fortune-file'.  If you want to have fortune
-choose from a set of files in a directory, call interactively with prefix
-and choose the directory as the fortune-file.
-
-\(fn &optional FILE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"fortune" '("fortune-")))
-
-;;;***
-
-;;;### (autoloads nil "frameset" "frameset.el" (0 0 0 0))
-;;; Generated autoloads from frameset.el
-
-(defvar frameset-session-filter-alist '((name . :never) (left . 
frameset-filter-iconified) (minibuffer . frameset-filter-minibuffer) (top . 
frameset-filter-iconified)) "\
-Minimum set of parameters to filter for live (on-session) framesets.
-DO NOT MODIFY.  See `frameset-filter-alist' for a full description.")
-
-(defvar frameset-persistent-filter-alist (nconc '((background-color . 
frameset-filter-sanitize-color) (buffer-list . :never) (buffer-predicate . 
:never) (buried-buffer-list . :never) (font . frameset-filter-shelve-param) 
(foreground-color . frameset-filter-sanitize-color) (fullscreen . 
frameset-filter-shelve-param) (GUI:font . frameset-filter-unshelve-param) 
(GUI:fullscreen . frameset-filter-unshelve-param) (GUI:height . 
frameset-filter-unshelve-param) (GUI:width . frameset-filter-unshel [...]
-Parameters to filter for persistent framesets.
-DO NOT MODIFY.  See `frameset-filter-alist' for a full description.")
-
-(defvar frameset-filter-alist frameset-persistent-filter-alist "\
-Alist of frame parameters and filtering functions.
-
-This alist is the default value of the FILTERS argument of
-`frameset-save' and `frameset-restore' (which see).
-
-Initially, `frameset-filter-alist' is set to, and shares the value of,
-`frameset-persistent-filter-alist'.  You can override any item in
-this alist by `push'ing a new item onto it.  If, for some reason, you
-intend to modify existing values, do
-
-  (setq frameset-filter-alist (copy-tree frameset-filter-alist))
-
-before changing anything.
-
-On saving, PARAMETERS is the parameter alist of each frame processed,
-and FILTERED is the parameter alist that gets saved to the frameset.
-
-On restoring, PARAMETERS is the parameter alist extracted from the
-frameset, and FILTERED is the resulting frame parameter alist used
-to restore the frame.
-
-Elements of `frameset-filter-alist' are conses (PARAM . ACTION),
-where PARAM is a parameter name (a symbol identifying a frame
-parameter), and ACTION can be:
-
- nil       The parameter is copied to FILTERED.
- :never    The parameter is never copied to FILTERED.
- :save     The parameter is copied only when saving the frame.
- :restore  The parameter is copied only when restoring the frame.
- FILTER    A filter function.
-
-FILTER can be a symbol FILTER-FUN, or a list (FILTER-FUN ARGS...).
-FILTER-FUN is invoked with
-
-  (apply FILTER-FUN CURRENT FILTERED PARAMETERS SAVING ARGS)
-
-where
-
- CURRENT     A cons (PARAM . VALUE), where PARAM is the one being
-            filtered and VALUE is its current value.
- FILTERED    The resulting alist (so far).
- PARAMETERS  The complete alist of parameters being filtered,
- SAVING      Non-nil if filtering before saving state, nil if filtering
-              before restoring it.
- ARGS        Any additional arguments specified in the ACTION.
-
-FILTER-FUN is allowed to modify items in FILTERED, but no other arguments.
-It must return:
- nil                      Skip CURRENT (do not add it to FILTERED).
- t                        Add CURRENT to FILTERED as is.
- (NEW-PARAM . NEW-VALUE)  Add this to FILTERED instead of CURRENT.
-
-Frame parameters not on this alist are passed intact, as if they were
-defined with ACTION = nil.")
-
-(autoload 'frameset-frame-id "frameset" "\
-Return the frame id of FRAME, if it has one; else, return nil.
-A frame id is a string that uniquely identifies a frame.
-It is persistent across `frameset-save' / `frameset-restore'
-invocations, and once assigned is never changed unless the same
-frame is duplicated (via `frameset-restore'), in which case the
-newest frame keeps the id and the old frame's is set to nil.
-
-\(fn FRAME)" nil nil)
-
-(autoload 'frameset-frame-id-equal-p "frameset" "\
-Return non-nil if FRAME's id matches ID.
-
-\(fn FRAME ID)" nil nil)
-
-(autoload 'frameset-frame-with-id "frameset" "\
-Return the live frame with id ID, if exists; else nil.
-If FRAME-LIST is a list of frames, check these frames only.
-If nil, check all live frames.
-
-\(fn ID &optional FRAME-LIST)" nil nil)
-
-(autoload 'frameset-save "frameset" "\
-Return a frameset for FRAME-LIST, a list of frames.
-Dead frames and non-frame objects are silently removed from the list.
-If nil, FRAME-LIST defaults to the output of `frame-list' (all live frames).
-APP, NAME and DESCRIPTION are optional data; see the docstring of the
-`frameset' defstruct for details.
-FILTERS is an alist of parameter filters; if nil, the value of the variable
-`frameset-filter-alist' is used instead.
-PREDICATE is a predicate function, which must return non-nil for frames that
-should be saved; if PREDICATE is nil, all frames from FRAME-LIST are saved.
-PROPERTIES is a user-defined property list to add to the frameset.
-
-\(fn FRAME-LIST &key APP NAME DESCRIPTION FILTERS PREDICATE PROPERTIES)" nil 
nil)
-
-(autoload 'frameset-restore "frameset" "\
-Restore a FRAMESET into the current display(s).
-
-PREDICATE is a function called with two arguments, the parameter alist
-and the window-state of the frame being restored, in that order (see
-the docstring of the `frameset' defstruct for additional details).
-If PREDICATE returns nil, the frame described by that parameter alist
-and window-state is not restored.
-
-FILTERS is an alist of parameter filters; if nil, the value of
-`frameset-filter-alist' is used instead.
-
-REUSE-FRAMES selects the policy to reuse frames when restoring:
-  t        All existing frames can be reused.
-  nil      No existing frame can be reused.
-  match    Only frames with matching frame ids can be reused.
-  PRED     A predicate function; it receives as argument a live frame,
-             and must return non-nil to allow reusing it, nil otherwise.
-
-FORCE-DISPLAY can be:
-  t        Frames are restored in the current display.
-  nil      Frames are restored, if possible, in their original displays.
-  delete   Frames in other displays are deleted instead of restored.
-  PRED     A function called with two arguments, the parameter alist and
-            the window state (in that order).  It must return t, nil or
-            `delete', as above but affecting only the frame that will
-            be created from that parameter alist.
-
-FORCE-ONSCREEN can be:
-  t        Force onscreen only those frames that are fully offscreen.
-  nil      Do not force any frame back onscreen.
-  all      Force onscreen any frame fully or partially offscreen.
-  PRED     A function called with three arguments,
-          - the live frame just restored,
-          - a list (LEFT TOP WIDTH HEIGHT), describing the frame,
-          - a list (LEFT TOP WIDTH HEIGHT), describing the workarea.
-          It must return non-nil to force the frame onscreen, nil otherwise.
-
-CLEANUP-FRAMES allows \"cleaning up\" the frame list after restoring a 
frameset:
-  t        Delete all frames that were not created or restored upon.
-  nil      Keep all frames.
-  FUNC     A function called with two arguments:
-           - FRAME, a live frame.
-           - ACTION, which can be one of
-             :rejected  Frame existed, but was not a candidate for reuse.
-             :ignored   Frame existed, was a candidate, but wasn't reused.
-             :reused    Frame existed, was a candidate, and restored upon.
-             :created   Frame didn't exist, was created and restored upon.
-           Return value is ignored.
-
-Note the timing and scope of the operations described above: REUSE-FRAMES
-affects existing frames; PREDICATE, FILTERS and FORCE-DISPLAY affect the frame
-being restored before that happens; FORCE-ONSCREEN affects the frame once
-it has been restored; and CLEANUP-FRAMES affects all frames alive after the
-restoration, including those that have been reused or created anew.
-
-All keyword parameters default to nil.
-
-\(fn FRAMESET &key PREDICATE FILTERS REUSE-FRAMES FORCE-DISPLAY FORCE-ONSCREEN 
CLEANUP-FRAMES)" nil nil)
-
-(autoload 'frameset--jump-to-register "frameset" "\
-Restore frameset from DATA stored in register.
-Called from `jump-to-register'.  Internal use only.
-
-\(fn DATA)" nil nil)
-
-(autoload 'frameset--print-register "frameset" "\
-Print basic info about frameset stored in DATA.
-Called from `list-registers' and `view-register'.  Internal use only.
-
-\(fn DATA)" nil nil)
-
-(autoload 'frameset-to-register "frameset" "\
-Store the current frameset in register REGISTER.
-Use \\[jump-to-register] to restore the frameset.
-Argument is a character, naming the register.
-
-Interactively, reads the register using `register-read-with-preview'.
-
-\(fn REGISTER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"frameset" '("frameset-")))
-
-;;;***
-
-;;;### (autoloads nil "fringe" "fringe.el" (0 0 0 0))
-;;; Generated autoloads from fringe.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"fringe" '("fringe-" "set-fringe-")))
-
-;;;***
-
-;;;### (autoloads nil "gamegrid" "play/gamegrid.el" (0 0 0 0))
-;;; Generated autoloads from play/gamegrid.el
-(push (purecopy '(gamegrid 1 2)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gamegrid" '("gamegrid-")))
-
-;;;***
-
-;;;### (autoloads nil "gametree" "play/gametree.el" (0 0 0 0))
-;;; Generated autoloads from play/gametree.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gametree" '("gametree-")))
-
-;;;***
-
-;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/gdb-mi.el
-
-(defvar gdb-enable-debug nil "\
-Non-nil if Gdb-Enable-Debug mode is enabled.
-See the `gdb-enable-debug' command
-for a description of this minor mode.")
-
-(custom-autoload 'gdb-enable-debug "gdb-mi" nil)
-
-(autoload 'gdb-enable-debug "gdb-mi" "\
-Toggle logging of transaction between Emacs and Gdb.
-The log is stored in `gdb-debug-log' as an alist with elements
-whose cons is send, send-item or recv and whose cdr is the string
-being transferred.  This list may grow up to a size of
-`gdb-debug-log-max' after which the oldest element (at the end of
-the list) is deleted every time a new one is added (at the front).
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'gdb "gdb-mi" "\
-Run gdb passing it COMMAND-LINE as arguments.
-
-If COMMAND-LINE names a program FILE to debug, gdb will run in
-a buffer named *gud-FILE*, and the directory containing FILE
-becomes the initial working directory and source-file directory
-for your debugger.
-If COMMAND-LINE requests that gdb attaches to a process PID, gdb
-will run in *gud-PID*, otherwise it will run in *gud*; in these
-cases the initial working directory is the default-directory of
-the buffer in which this command was invoked.
-
-COMMAND-LINE should include \"-i=mi\" to use gdb's MI text interface.
-Note that the old \"--annotate\" option is no longer supported.
-
-If option `gdb-many-windows' is nil (the default value) then gdb just
-pops up the GUD buffer unless `gdb-show-main' is t.  In this case
-it starts with two windows: one displaying the GUD buffer and the
-other with the source file with the main routine of the inferior.
-
-If option `gdb-many-windows' is t, regardless of the value of
-`gdb-show-main', the layout below will appear.  Keybindings are
-shown in some of the buffers.
-
-Watch expressions appear in the speedbar/slowbar.
-
-The following commands help control operation :
-
-`gdb-many-windows'    - Toggle the number of windows gdb uses.
-`gdb-restore-windows' - To restore the window layout.
-
-See Info node `(emacs)GDB Graphical Interface' for a more
-detailed description of this mode.
-
-
-+----------------------------------------------------------------------+
-|                               GDB Toolbar                            |
-+-----------------------------------+----------------------------------+
-| GUD buffer (I/O of GDB)           | Locals buffer                    |
-|                                   |                                  |
-|                                   |                                  |
-|                                   |                                  |
-+-----------------------------------+----------------------------------+
-| Source buffer                     | I/O buffer (of debugged program) |
-|                                   | (comint-mode)                    |
-|                                   |                                  |
-|                                   |                                  |
-|                                   |                                  |
-|                                   |                                  |
-|                                   |                                  |
-|                                   |                                  |
-+-----------------------------------+----------------------------------+
-| Stack buffer                      | Breakpoints buffer               |
-| RET      gdb-select-frame         | SPC    gdb-toggle-breakpoint     |
-|                                   | RET    gdb-goto-breakpoint       |
-|                                   | D      gdb-delete-breakpoint     |
-+-----------------------------------+----------------------------------+
-
-\(fn COMMAND-LINE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gdb-mi" '("gdb" "gud-" "def-gdb-" "breakpoint-" "nil")))
-
-;;;***
-
-;;;### (autoloads nil "generator" "emacs-lisp/generator.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emacs-lisp/generator.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"generator" '("cps-" "iter-")))
-
-;;;***
-
-;;;### (autoloads nil "generic" "emacs-lisp/generic.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/generic.el
-
-(defvar generic-mode-list nil "\
-A list of mode names for `generic-mode'.
-Do not add entries to this list directly; use `define-generic-mode'
-instead (which see).")
-
-(autoload 'define-generic-mode "generic" "\
-Create a new generic mode MODE.
-
-MODE is the name of the command for the generic mode; don't quote it.
-The optional DOCSTRING is the documentation for the mode command.  If
-you do not supply it, `define-generic-mode' uses a default
-documentation string instead.
-
-COMMENT-LIST is a list in which each element is either a character, a
-string of one or two characters, or a cons cell.  A character or a
-string is set up in the mode's syntax table as a \"comment starter\".
-If the entry is a cons cell, the `car' is set up as a \"comment
-starter\" and the `cdr' as a \"comment ender\".  (Use nil for the
-latter if you want comments to end at the end of the line.)  Note that
-the syntax table has limitations about what comment starters and
-enders are actually possible.
-
-KEYWORD-LIST is a list of keywords to highlight with
-`font-lock-keyword-face'.  Each keyword should be a string.
-
-FONT-LOCK-LIST is a list of additional expressions to highlight.  Each
-element of this list should have the same form as an element of
-`font-lock-keywords'.
-
-AUTO-MODE-LIST is a list of regular expressions to add to
-`auto-mode-alist'.  These regular expressions are added when Emacs
-runs the macro expansion.
-
-FUNCTION-LIST is a list of functions to call to do some additional
-setup.  The mode command calls these functions just before it runs the
-mode hook `MODE-hook'.
-
-See the file generic-x.el for some examples of `define-generic-mode'.
-
-\(fn MODE COMMENT-LIST KEYWORD-LIST FONT-LOCK-LIST AUTO-MODE-LIST 
FUNCTION-LIST &optional DOCSTRING)" nil t)
-
-(function-put 'define-generic-mode 'lisp-indent-function '1)
-
-(function-put 'define-generic-mode 'doc-string-elt '7)
-
-(autoload 'generic-mode-internal "generic" "\
-Go into the generic mode MODE.
-
-\(fn MODE COMMENT-LIST KEYWORD-LIST FONT-LOCK-LIST FUNCTION-LIST)" nil nil)
-
-(autoload 'generic-mode "generic" "\
-Enter generic mode MODE.
-
-Generic modes provide basic comment and font-lock functionality
-for \"generic\" files.  (Files which are too small to warrant their
-own mode, but have comment characters, keywords, and the like.)
-
-To define a generic-mode, use the function `define-generic-mode'.
-Some generic modes are defined in `generic-x.el'.
-
-\(fn MODE)" t nil)
-
-(autoload 'generic-make-keywords-list "generic" "\
-Return a `font-lock-keywords' construct that highlights KEYWORD-LIST.
-KEYWORD-LIST is a list of keyword strings that should be
-highlighted with face FACE.  This function calculates a regular
-expression that matches these keywords and concatenates it with
-PREFIX and SUFFIX.  Then it returns a construct based on this
-regular expression that can be used as an element of
-`font-lock-keywords'.
-
-\(fn KEYWORD-LIST FACE &optional PREFIX SUFFIX)" nil nil)
-
-(make-obsolete 'generic-make-keywords-list 'regexp-opt '"24.4")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"generic" '("generic-")))
-
-;;;***
-
-;;;### (autoloads nil "generic-x" "generic-x.el" (0 0 0 0))
-;;; Generated autoloads from generic-x.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"generic-x" '("generic-" "default-generic-mode")))
-
-;;;***
-
-;;;### (autoloads nil "glasses" "progmodes/glasses.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/glasses.el
-
-(autoload 'glasses-mode "glasses" "\
-Minor mode for making identifiers likeThis readable.
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.  When this mode is active, it tries to
-add virtual separators (like underscores) at places they belong to.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"glasses" '("glasses-")))
-
-;;;***
-
-;;;### (autoloads nil "gmm-utils" "gnus/gmm-utils.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gmm-utils.el
-
-(autoload 'gmm-regexp-concat "gmm-utils" "\
-Potentially concat a list of regexps into a single one.
-The concatenation is done with logical ORs.
-
-\(fn REGEXP)" nil nil)
-
-(autoload 'gmm-message "gmm-utils" "\
-If LEVEL is lower than `gmm-verbose' print ARGS using `message'.
-
-Guideline for numbers:
-1 - error messages
-3 - non-serious error messages
-5 - messages for things that take a long time
-7 - not very important messages on stuff
-9 - messages inside loops.
-
-\(fn LEVEL &rest ARGS)" nil nil)
-
-(autoload 'gmm-error "gmm-utils" "\
-Beep an error if LEVEL is equal to or less than `gmm-verbose'.
-ARGS are passed to `message'.
-
-\(fn LEVEL &rest ARGS)" nil nil)
-
-(autoload 'gmm-widget-p "gmm-utils" "\
-Non-nil if SYMBOL is a widget.
-
-\(fn SYMBOL)" nil nil)
-
-(autoload 'gmm-tool-bar-from-list "gmm-utils" "\
-Make a tool bar from ICON-LIST.
-
-Within each entry of ICON-LIST, the first element is a menu
-command, the second element is an icon file name and the third
-element is a test function.  You can use \\[describe-key]
-<menu-entry> to find out the name of a menu command.  The fourth
-and all following elements are passed as the PROPS argument to the
-function `tool-bar-local-item'.
-
-If ZAP-LIST is a list, remove those item from the default
-`tool-bar-map'.  If it is t, start with a new sparse map.  You
-can use \\[describe-key] <icon> to find out the name of an icon
-item.  When \\[describe-key] <icon> shows \"<tool-bar> <new-file>
-runs the command find-file\", then use `new-file' in ZAP-LIST.
-
-DEFAULT-MAP specifies the default key map for ICON-LIST.
-
-\(fn ICON-LIST ZAP-LIST DEFAULT-MAP)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gmm-utils" '("gmm-" "defun-gmm")))
-
-;;;***
-
-;;;### (autoloads nil "gnus" "gnus/gnus.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus.el
-(push (purecopy '(gnus 5 13)) package--builtin-versions)
-(when (fboundp 'custom-autoload)
- (custom-autoload 'gnus-select-method "gnus"))
-
-(autoload 'gnus-slave-no-server "gnus" "\
-Read network news as a slave, without connecting to the local server.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'gnus-no-server "gnus" "\
-Read network news.
-If ARG is a positive number, Gnus will use that as the startup
-level. If ARG is nil, Gnus will be started at level 2.  If ARG is
-non-nil and not a positive number, Gnus will prompt the user for the
-name of an NNTP server to use.
-As opposed to `gnus', this command will not connect to the local
-server.
-
-\(fn &optional ARG SLAVE)" t nil)
-
-(autoload 'gnus-slave "gnus" "\
-Read news as a slave.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'gnus-other-frame "gnus" "\
-Pop up a frame to read news.
-This will call one of the Gnus commands which is specified by the user
-option `gnus-other-frame-function' (default `gnus') with the argument
-ARG if Gnus is not running, otherwise pop up a Gnus frame and run the
-command specified by `gnus-other-frame-resume-function'.
-The optional second argument DISPLAY should be a standard display string
-such as \"unix:0\" to specify where to pop up a frame.  If DISPLAY is
-omitted or the function `make-frame-on-display' is not available, the
-current display is used.
-
-\(fn &optional ARG DISPLAY)" t nil)
-
-(autoload 'gnus "gnus" "\
-Read network news.
-If ARG is non-nil and a positive number, Gnus will use that as the
-startup level.  If ARG is non-nil and not a positive number, Gnus will
-prompt the user for the name of an NNTP server to use.
-
-\(fn &optional ARG DONT-CONNECT SLAVE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-agent" "gnus/gnus-agent.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-agent.el
-
-(autoload 'gnus-unplugged "gnus-agent" "\
-Start Gnus unplugged.
-
-\(fn)" t nil)
-
-(autoload 'gnus-plugged "gnus-agent" "\
-Start Gnus plugged.
-
-\(fn)" t nil)
-
-(autoload 'gnus-slave-unplugged "gnus-agent" "\
-Read news as a slave unplugged.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'gnus-agentize "gnus-agent" "\
-Allow Gnus to be an offline newsreader.
-
-The gnus-agentize function is now called internally by gnus when
-gnus-agent is set.  If you wish to avoid calling gnus-agentize,
-customize gnus-agent to nil.
-
-This will modify the `gnus-setup-news-hook', and
-`message-send-mail-real-function' variables, and install the Gnus agent
-minor mode in all Gnus buffers.
-
-\(fn)" t nil)
-
-(autoload 'gnus-agent-possibly-save-gcc "gnus-agent" "\
-Save GCC if Gnus is unplugged.
-
-\(fn)" nil nil)
-
-(autoload 'gnus-agent-rename-group "gnus-agent" "\
-Rename fully-qualified OLD-GROUP as NEW-GROUP.
-Always updates the agent, even when disabled, as the old agent
-files would corrupt gnus when the agent was next enabled.
-Depends upon the caller to determine whether group renaming is
-supported.
-
-\(fn OLD-GROUP NEW-GROUP)" nil nil)
-
-(autoload 'gnus-agent-delete-group "gnus-agent" "\
-Delete fully-qualified GROUP.
-Always updates the agent, even when disabled, as the old agent
-files would corrupt gnus when the agent was next enabled.
-Depends upon the caller to determine whether group deletion is
-supported.
-
-\(fn GROUP)" nil nil)
-
-(autoload 'gnus-agent-get-undownloaded-list "gnus-agent" "\
-Construct list of articles that have not been downloaded.
-
-\(fn)" nil nil)
-
-(autoload 'gnus-agent-possibly-alter-active "gnus-agent" "\
-Possibly expand a group's active range to include articles
-downloaded into the agent.
-
-\(fn GROUP ACTIVE &optional INFO)" nil nil)
-
-(autoload 'gnus-agent-find-parameter "gnus-agent" "\
-Search for GROUPs SYMBOL in the group's parameters, the group's
-topic parameters, the group's category, or the customizable
-variables.  Returns the first non-nil value found.
-
-\(fn GROUP SYMBOL)" nil nil)
-
-(autoload 'gnus-agent-batch-fetch "gnus-agent" "\
-Start Gnus and fetch session.
-
-\(fn)" t nil)
-
-(autoload 'gnus-agent-batch "gnus-agent" "\
-Start Gnus, send queue and fetch session.
-
-\(fn)" t nil)
-
-(autoload 'gnus-agent-regenerate "gnus-agent" "\
-Regenerate all agent covered files.
-CLEAN is obsolete and ignored.
-
-\(fn &optional CLEAN REREAD)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-agent" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-art.el
-
-(autoload 'gnus-article-prepare-display "gnus-art" "\
-Make the current buffer look like a nice article.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-art" '("gnus-" "article-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-async" "gnus/gnus-async.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-async.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-async" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-bcklg" "gnus/gnus-bcklg.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-bcklg.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-bcklg" '("gnus-backlog-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-bookmark" "gnus/gnus-bookmark.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from gnus/gnus-bookmark.el
-
-(autoload 'gnus-bookmark-set "gnus-bookmark" "\
-Set a bookmark for this article.
-
-\(fn)" t nil)
-
-(autoload 'gnus-bookmark-jump "gnus-bookmark" "\
-Jump to a Gnus bookmark (BMK-NAME).
-
-\(fn &optional BMK-NAME)" t nil)
-
-(autoload 'gnus-bookmark-bmenu-list "gnus-bookmark" "\
-Display a list of existing Gnus bookmarks.
-The list is displayed in a buffer named `*Gnus Bookmark List*'.
-The leftmost column displays a D if the bookmark is flagged for
-deletion, or > if it is flagged for displaying.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-bookmark" '("gnus-bookmark-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-cache" "gnus/gnus-cache.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-cache.el
-
-(autoload 'gnus-jog-cache "gnus-cache" "\
-Go through all groups and put the articles into the cache.
-
-Usage:
-$ emacs -batch -l ~/.emacs -l gnus -f gnus-jog-cache
-
-\(fn)" t nil)
-
-(autoload 'gnus-cache-generate-active "gnus-cache" "\
-Generate the cache active file.
-
-\(fn &optional DIRECTORY)" t nil)
-
-(autoload 'gnus-cache-generate-nov-databases "gnus-cache" "\
-Generate NOV files recursively starting in DIR.
-
-\(fn DIR)" t nil)
-
-(autoload 'gnus-cache-rename-group "gnus-cache" "\
-Rename OLD-GROUP as NEW-GROUP.
-Always updates the cache, even when disabled, as the old cache
-files would corrupt Gnus when the cache was next enabled.  It
-depends on the caller to determine whether group renaming is
-supported.
-
-\(fn OLD-GROUP NEW-GROUP)" nil nil)
-
-(autoload 'gnus-cache-delete-group "gnus-cache" "\
-Delete GROUP from the cache.
-Always updates the cache, even when disabled, as the old cache
-files would corrupt gnus when the cache was next enabled.
-Depends upon the caller to determine whether group deletion is
-supported.
-
-\(fn GROUP)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-cache" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-cite" "gnus/gnus-cite.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-cite.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-cite" '("turn-o" "gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-cloud" "gnus/gnus-cloud.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-cloud.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-cloud" '("gnus-cloud-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-cus" "gnus/gnus-cus.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-cus.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-cus" '("gnus-" "category-fields")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-delay" "gnus/gnus-delay.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-delay.el
-
-(autoload 'gnus-delay-article "gnus-delay" "\
-Delay this article by some time.
-DELAY is a string, giving the length of the time.  Possible values are:
-
-* <digits><units> for <units> in minutes (`m'), hours (`h'), days (`d'),
-  weeks (`w'), months (`M'), or years (`Y');
-
-* YYYY-MM-DD for a specific date.  The time of day is given by the
-  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.
-
-\(fn DELAY)" t nil)
-
-(autoload 'gnus-delay-send-queue "gnus-delay" "\
-Send all the delayed messages that are due now.
-
-\(fn)" t nil)
-
-(autoload 'gnus-delay-initialize "gnus-delay" "\
-Initialize the gnus-delay package.
-This sets up a key binding in `message-mode' to delay a message.
-This tells Gnus to look for delayed messages after getting new news.
-
-The optional arg NO-KEYMAP is ignored.
-Checking delayed messages is skipped if optional arg NO-CHECK is non-nil.
-
-\(fn &optional NO-KEYMAP NO-CHECK)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-delay" '("gnus-delay-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-demon" "gnus/gnus-demon.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-demon.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-demon" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-diary" "gnus/gnus-diary.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-diary.el
-
-(autoload 'gnus-user-format-function-d "gnus-diary" "\
-
-
-\(fn HEADER)" nil nil)
-
-(autoload 'gnus-user-format-function-D "gnus-diary" "\
-
-
-\(fn HEADER)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-diary" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-dired" "gnus/gnus-dired.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-dired.el
-
-(autoload 'turn-on-gnus-dired-mode "gnus-dired" "\
-Convenience method to turn on gnus-dired-mode.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-dired" '("gnus-dired-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-draft" "gnus/gnus-draft.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-draft.el
-
-(autoload 'gnus-draft-reminder "gnus-draft" "\
-Reminder user if there are unsent drafts.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-draft" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-dup" "gnus/gnus-dup.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-dup.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-dup" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-eform" "gnus/gnus-eform.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-eform.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-eform" '("gnus-edit-form")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-fun" "gnus/gnus-fun.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-fun.el
-
-(autoload 'gnus--random-face-with-type "gnus-fun" "\
-Return file from DIR with extension EXT, omitting matches of OMIT, processed 
by FUN.
-
-\(fn DIR EXT OMIT FUN)" nil nil)
-
-(autoload 'message-goto-eoh "message" nil t)
-
-(autoload 'gnus-random-x-face "gnus-fun" "\
-Return X-Face header data chosen randomly from `gnus-x-face-directory'.
-
-Files matching `gnus-x-face-omit-files' are not considered.
-
-\(fn)" t nil)
-
-(autoload 'gnus-insert-random-x-face-header "gnus-fun" "\
-Insert a random X-Face header from `gnus-x-face-directory'.
-
-\(fn)" t nil)
-
-(autoload 'gnus-x-face-from-file "gnus-fun" "\
-Insert an X-Face header based on an image FILE.
-
-Depending on `gnus-convert-image-to-x-face-command' it may accept
-different input formats.
-
-\(fn FILE)" t nil)
-
-(autoload 'gnus-face-from-file "gnus-fun" "\
-Return a Face header based on an image FILE.
-
-Depending on `gnus-convert-image-to-face-command' it may accept
-different input formats.
-
-\(fn FILE)" t nil)
-
-(autoload 'gnus-convert-face-to-png "gnus-fun" "\
-Convert FACE (which is base64-encoded) to a PNG.
-The PNG is returned as a string.
-
-\(fn FACE)" nil nil)
-
-(autoload 'gnus-convert-png-to-face "gnus-fun" "\
-Convert FILE to a Face.
-FILE should be a PNG file that's 48x48 and smaller than or equal to
-726 bytes.
-
-\(fn FILE)" nil nil)
-
-(autoload 'gnus-random-face "gnus-fun" "\
-Return randomly chosen Face from `gnus-face-directory'.
-
-Files matching `gnus-face-omit-files' are not considered.
-
-\(fn)" t nil)
-
-(autoload 'gnus-insert-random-face-header "gnus-fun" "\
-Insert a random Face header from `gnus-face-directory'.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-fun" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-gravatar" "gnus/gnus-gravatar.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from gnus/gnus-gravatar.el
-
-(autoload 'gnus-treat-from-gravatar "gnus-gravatar" "\
-Display gravatar in the From header.
-If gravatar is already displayed, remove it.
-
-\(fn &optional FORCE)" t nil)
-
-(autoload 'gnus-treat-mail-gravatar "gnus-gravatar" "\
-Display gravatars in the Cc and To headers.
-If gravatars are already displayed, remove them.
-
-\(fn &optional FORCE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-gravatar" '("gnus-gravatar-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-group.el
-
-(autoload 'gnus-fetch-group "gnus-group" "\
-Start Gnus if necessary and enter GROUP.
-If ARTICLES, display those articles.
-Returns whether the fetching was successful or not.
-
-\(fn GROUP &optional ARTICLES)" t nil)
-
-(autoload 'gnus-fetch-group-other-frame "gnus-group" "\
-Pop up a frame and enter GROUP.
-
-\(fn GROUP)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-group" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-html" "gnus/gnus-html.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-html.el
-
-(autoload 'gnus-article-html "gnus-html" "\
-
-
-\(fn &optional HANDLE)" nil nil)
-
-(autoload 'gnus-html-prefetch-images "gnus-html" "\
-
-
-\(fn SUMMARY)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-html" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-icalendar" "gnus/gnus-icalendar.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from gnus/gnus-icalendar.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-icalendar" '("gnus-icalendar")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-int" "gnus/gnus-int.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-int.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-int" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-kill" "gnus/gnus-kill.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-kill.el
-
-(defalias 'gnus-batch-kill 'gnus-batch-score)
-
-(autoload 'gnus-batch-score "gnus-kill" "\
-Run batched scoring.
-Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-kill" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-logic" "gnus/gnus-logic.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-logic.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-logic" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-mh" "gnus/gnus-mh.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-mh.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-mh" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-ml" "gnus/gnus-ml.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-ml.el
-
-(autoload 'turn-on-gnus-mailing-list-mode "gnus-ml" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'gnus-mailing-list-insinuate "gnus-ml" "\
-Setup group parameters from List-Post header.
-If FORCE is non-nil, replace the old ones.
-
-\(fn &optional FORCE)" t nil)
-
-(autoload 'gnus-mailing-list-mode "gnus-ml" "\
-Minor mode for providing mailing-list commands.
-
-\\{gnus-mailing-list-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-ml" '("gnus-mailing-list-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-mlspl" "gnus/gnus-mlspl.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-mlspl.el
-
-(autoload 'gnus-group-split-setup "gnus-mlspl" "\
-Set up the split for `nnmail-split-fancy'.
-Sets things up so that nnmail-split-fancy is used for mail
-splitting, and defines the variable nnmail-split-fancy according with
-group parameters.
-
-If AUTO-UPDATE is non-nil (prefix argument accepted, if called
-interactively), it makes sure nnmail-split-fancy is re-computed before
-getting new mail, by adding `gnus-group-split-update' to
-`nnmail-pre-get-new-mail-hook'.
-
-A non-nil CATCH-ALL replaces the current value of
-`gnus-group-split-default-catch-all-group'.  This variable is only used
-by gnus-group-split-update, and only when its CATCH-ALL argument is
-nil.  This argument may contain any fancy split, that will be added as
-the last split in a `|' split produced by `gnus-group-split-fancy',
-unless overridden by any group marked as a catch-all group.  Typical
-uses are as simple as the name of a default mail group, but more
-elaborate fancy splits may also be useful to split mail that doesn't
-match any of the group-specified splitting rules.  See
-`gnus-group-split-fancy' for details.
-
-\(fn &optional AUTO-UPDATE CATCH-ALL)" t nil)
-
-(autoload 'gnus-group-split-update "gnus-mlspl" "\
-Computes nnmail-split-fancy from group params and CATCH-ALL.
-It does this by calling by calling (gnus-group-split-fancy nil
-nil CATCH-ALL).
-
-If CATCH-ALL is nil, `gnus-group-split-default-catch-all-group' is used
-instead.  This variable is set by `gnus-group-split-setup'.
-
-\(fn &optional CATCH-ALL)" t nil)
-
-(autoload 'gnus-group-split "gnus-mlspl" "\
-Use information from group parameters in order to split mail.
-See `gnus-group-split-fancy' for more information.
-
-`gnus-group-split' is a valid value for `nnmail-split-methods'.
-
-\(fn)" nil nil)
-
-(autoload 'gnus-group-split-fancy "gnus-mlspl" "\
-Uses information from group parameters in order to split mail.
-It can be embedded into `nnmail-split-fancy' lists with the SPLIT
-
-\(: gnus-group-split-fancy GROUPS NO-CROSSPOST CATCH-ALL)
-
-GROUPS may be a regular expression or a list of group names, that will
-be used to select candidate groups.  If it is omitted or nil, all
-existing groups are considered.
-
-if NO-CROSSPOST is omitted or nil, a & split will be returned,
-otherwise, a | split, that does not allow crossposting, will be
-returned.
-
-For each selected group, a SPLIT is composed like this: if SPLIT-SPEC
-is specified, this split is returned as-is (unless it is nil: in this
-case, the group is ignored).  Otherwise, if TO-ADDRESS, TO-LIST and/or
-EXTRA-ALIASES are specified, a regexp that matches any of them is
-constructed (extra-aliases may be a list).  Additionally, if
-SPLIT-REGEXP is specified, the regexp will be extended so that it
-matches this regexp too, and if SPLIT-EXCLUDE is specified, RESTRICT
-clauses will be generated.
-
-If CATCH-ALL is nil, no catch-all handling is performed, regardless of
-catch-all marks in group parameters.  Otherwise, if there is no
-selected group whose SPLIT-REGEXP matches the empty string, nor is
-there a selected group whose SPLIT-SPEC is `catch-all', this fancy
-split (say, a group name) will be appended to the returned SPLIT list,
-as the last element of a `|' SPLIT.
-
-For example, given the following group parameters:
-
-nnml:mail.bar:
-\((to-address . \"address@hidden")
- (split-regexp . \"address@hidden"))
-nnml:mail.foo:
-\((to-list . \"address@hidden")
- (extra-aliases \"address@hidden" \"address@hidden")
- (split-exclude \"bugs-foo\" \"rambling-foo\")
- (admin-address . \"address@hidden"))
-nnml:mail.others:
-\((split-spec . catch-all))
-
-Calling (gnus-group-split-fancy nil nil \"mail.others\") returns:
-
-\(| (& (any \"\\\\(address@hidden|address@hidden)\"
-          \"mail.bar\")
-      (any \"\\\\(address@hidden|address@hidden|address@hidden)\"
-          - \"bugs-foo\" - \"rambling-foo\" \"mail.foo\"))
-   \"mail.others\")
-
-\(fn &optional GROUPS NO-CROSSPOST CATCH-ALL)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-mlspl" '("gnus-group-split-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-msg.el
-
-(autoload 'gnus-msg-mail "gnus-msg" "\
-Start editing a mail message to be sent.
-Like `message-mail', but with Gnus paraphernalia, particularly the
-Gcc: header for archiving purposes.
-If Gnus isn't running, a plain `message-mail' setup is used
-instead.
-
-\(fn &optional TO SUBJECT OTHER-HEADERS CONTINUE SWITCH-ACTION YANK-ACTION 
SEND-ACTIONS RETURN-ACTION)" t nil)
-
-(autoload 'gnus-button-mailto "gnus-msg" "\
-Mail to ADDRESS.
-
-\(fn ADDRESS)" nil nil)
-
-(autoload 'gnus-button-reply "gnus-msg" "\
-Like `message-reply'.
-
-\(fn &optional TO-ADDRESS WIDE)" t nil)
-
-(define-mail-user-agent 'gnus-user-agent 'gnus-msg-mail 'message-send-and-exit 
'message-kill-buffer 'message-send-hook)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-msg" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-notifications" "gnus/gnus-notifications.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-notifications.el
-
-(autoload 'gnus-notifications "gnus-notifications" "\
-Send a notification on new message.
-This check for new messages that are in group with a level lower
-or equal to `gnus-notifications-minimum-level' and send a
-notification using `notifications-notify' for it.
-
-This is typically a function to add in
-`gnus-after-getting-new-news-hook'
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-notifications" '("gnus-notifications-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-picon" "gnus/gnus-picon.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-picon.el
-
-(autoload 'gnus-treat-from-picon "gnus-picon" "\
-Display picons in the From header.
-If picons are already displayed, remove them.
-
-\(fn)" t nil)
-
-(autoload 'gnus-treat-mail-picon "gnus-picon" "\
-Display picons in the Cc and To headers.
-If picons are already displayed, remove them.
-
-\(fn)" t nil)
-
-(autoload 'gnus-treat-newsgroups-picon "gnus-picon" "\
-Display picons in the Newsgroups and Followup-To headers.
-If picons are already displayed, remove them.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-picon" '("gnus-picon-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-range" "gnus/gnus-range.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-range.el
-
-(autoload 'gnus-sorted-difference "gnus-range" "\
-Return a list of elements of LIST1 that do not appear in LIST2.
-Both lists have to be sorted over <.
-The tail of LIST1 is not copied.
-
-\(fn LIST1 LIST2)" nil nil)
-
-(autoload 'gnus-sorted-ndifference "gnus-range" "\
-Return a list of elements of LIST1 that do not appear in LIST2.
-Both lists have to be sorted over <.
-LIST1 is modified.
-
-\(fn LIST1 LIST2)" nil nil)
-
-(autoload 'gnus-sorted-complement "gnus-range" "\
-Return a list of elements that are in LIST1 or LIST2 but not both.
-Both lists have to be sorted over <.
-
-\(fn LIST1 LIST2)" nil nil)
-
-(autoload 'gnus-intersection "gnus-range" "\
-
-
-\(fn LIST1 LIST2)" nil nil)
-
-(autoload 'gnus-sorted-intersection "gnus-range" "\
-Return intersection of LIST1 and LIST2.
-LIST1 and LIST2 have to be sorted over <.
-
-\(fn LIST1 LIST2)" nil nil)
-
-(autoload 'gnus-sorted-range-intersection "gnus-range" "\
-Return intersection of RANGE1 and RANGE2.
-RANGE1 and RANGE2 have to be sorted over <.
-
-\(fn RANGE1 RANGE2)" nil nil)
-
-(defalias 'gnus-set-sorted-intersection 'gnus-sorted-nintersection)
-
-(autoload 'gnus-sorted-nintersection "gnus-range" "\
-Return intersection of LIST1 and LIST2 by modifying cdr pointers of LIST1.
-LIST1 and LIST2 have to be sorted over <.
-
-\(fn LIST1 LIST2)" nil nil)
-
-(autoload 'gnus-sorted-union "gnus-range" "\
-Return union of LIST1 and LIST2.
-LIST1 and LIST2 have to be sorted over <.
-
-\(fn LIST1 LIST2)" nil nil)
-
-(autoload 'gnus-sorted-nunion "gnus-range" "\
-Return union of LIST1 and LIST2 by modifying cdr pointers of LIST1.
-LIST1 and LIST2 have to be sorted over <.
-
-\(fn LIST1 LIST2)" nil nil)
-
-(autoload 'gnus-add-to-sorted-list "gnus-range" "\
-Add NUM into sorted LIST by side effect.
-
-\(fn LIST NUM)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-range" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-registry" "gnus/gnus-registry.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from gnus/gnus-registry.el
-
-(autoload 'gnus-registry-initialize "gnus-registry" "\
-Initialize the Gnus registry.
-
-\(fn)" t nil)
-
-(autoload 'gnus-registry-install-hooks "gnus-registry" "\
-Install the registry hooks.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-registry" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-rfc1843" "gnus/gnus-rfc1843.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from gnus/gnus-rfc1843.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-rfc1843" '("rfc1843-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-salt" "gnus/gnus-salt.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-salt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-salt" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-score" "gnus/gnus-score.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-score.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-score" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-sieve" "gnus/gnus-sieve.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-sieve.el
-
-(autoload 'gnus-sieve-update "gnus-sieve" "\
-Update the Sieve script in gnus-sieve-file, by replacing the region
-between gnus-sieve-region-start and gnus-sieve-region-end with
-\(gnus-sieve-script gnus-sieve-select-method gnus-sieve-crosspost), then
-execute gnus-sieve-update-shell-command.
-See the documentation for these variables and functions for details.
-
-\(fn)" t nil)
-
-(autoload 'gnus-sieve-generate "gnus-sieve" "\
-Generate the Sieve script in gnus-sieve-file, by replacing the region
-between gnus-sieve-region-start and gnus-sieve-region-end with
-\(gnus-sieve-script gnus-sieve-select-method gnus-sieve-crosspost).
-See the documentation for these variables and functions for details.
-
-\(fn)" t nil)
-
-(autoload 'gnus-sieve-article-add-rule "gnus-sieve" "\
-
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-sieve" '("gnus-sieve-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-spec" "gnus/gnus-spec.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-spec.el
-
-(autoload 'gnus-update-format "gnus-spec" "\
-Update the format specification near point.
-
-\(fn VAR)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-spec" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-srvr" "gnus/gnus-srvr.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-srvr.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-srvr" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-start.el
-
-(autoload 'gnus-declare-backend "gnus-start" "\
-Declare back end NAME with ABILITIES as a Gnus back end.
-
-\(fn NAME &rest ABILITIES)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-start" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-sum.el
-
-(autoload 'gnus-summary-bookmark-jump "gnus-sum" "\
-Handler function for record returned by `gnus-summary-bookmark-make-record'.
-BOOKMARK is a bookmark name or a bookmark record.
-
-\(fn BOOKMARK)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-sum" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-topic" "gnus/gnus-topic.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-topic.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-topic" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-undo" "gnus/gnus-undo.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-undo.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-undo" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-util" "gnus/gnus-util.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-util.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-util" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-uu" "gnus/gnus-uu.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-uu.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-uu" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-vm" "gnus/gnus-vm.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-vm.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-vm" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnus-win" "gnus/gnus-win.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gnus-win.el
-
-(autoload 'gnus-add-configuration "gnus-win" "\
-Add the window configuration CONF to `gnus-buffer-configuration'.
-
-\(fn CONF)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnus-win" '("gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "gnutls" "net/gnutls.el" (0 0 0 0))
-;;; Generated autoloads from net/gnutls.el
-
-(defvar gnutls-min-prime-bits 256 "\
-Minimum number of prime bits accepted by GnuTLS for key exchange.
-During a Diffie-Hellman handshake, if the server sends a prime
-number with fewer than this number of bits, the handshake is
-rejected.  (The smaller the prime number, the less secure the
-key exchange is against man-in-the-middle attacks.)
-
-A value of nil says to use the default GnuTLS value.")
-
-(custom-autoload 'gnutls-min-prime-bits "gnutls" t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gnutls" '("gnutls-" "open-gnutls-stream")))
-
-;;;***
-
-;;;### (autoloads nil "gomoku" "play/gomoku.el" (0 0 0 0))
-;;; Generated autoloads from play/gomoku.el
-
-(autoload 'gomoku "gomoku" "\
-Start a Gomoku game between you and Emacs.
-
-If a game is in progress, this command allows you to resume it.
-If optional arguments N and M are given, an N by M board is used.
-If prefix arg is given for N, M is prompted for.
-
-You and Emacs play in turn by marking a free square.  You mark it with X
-and Emacs marks it with O.  The winner is the first to get five contiguous
-marks horizontally, vertically or in diagonal.
-
-You play by moving the cursor over the square you choose and hitting
-\\<gomoku-mode-map>\\[gomoku-human-plays].
-
-This program actually plays a simplified or archaic version of the
-Gomoku game, and ought to be upgraded to use the full modern rules.
-
-Use \\[describe-mode] for more info.
-
-\(fn &optional N M)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gomoku" '("gomoku-")))
-
-;;;***
-
-;;;### (autoloads nil "goto-addr" "net/goto-addr.el" (0 0 0 0))
-;;; Generated autoloads from net/goto-addr.el
-
-(define-obsolete-function-alias 'goto-address-at-mouse 'goto-address-at-point 
"22.1")
-
-(autoload 'goto-address-at-point "goto-addr" "\
-Send to the e-mail address or load the URL at point.
-Send mail to address at point.  See documentation for
-`goto-address-find-address-at-point'.  If no address is found
-there, then load the URL at or before point.
-
-\(fn &optional EVENT)" t nil)
-
-(autoload 'goto-address "goto-addr" "\
-Sets up goto-address functionality in the current buffer.
-Allows user to use mouse/keyboard command to click to go to a URL
-or to send e-mail.
-By default, goto-address binds `goto-address-at-point' to mouse-2 and C-c RET
-only on URLs and e-mail addresses.
-
-Also fontifies the buffer appropriately (see `goto-address-fontify-p' and
-`goto-address-highlight-p' for more information).
-
-\(fn)" t nil)
-(put 'goto-address 'safe-local-eval-function t)
-
-(autoload 'goto-address-mode "goto-addr" "\
-Minor mode to buttonize URLs and e-mail addresses in the current buffer.
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'goto-address-prog-mode "goto-addr" "\
-Like `goto-address-mode', but only for comments and strings.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"goto-addr" '("goto-address-")))
-
-;;;***
-
-;;;### (autoloads nil "gravatar" "image/gravatar.el" (0 0 0 0))
-;;; Generated autoloads from image/gravatar.el
-
-(autoload 'gravatar-retrieve "gravatar" "\
-Retrieve MAIL-ADDRESS gravatar and call CB on retrieval.
-You can provide a list of argument to pass to CB in CBARGS.
-
-\(fn MAIL-ADDRESS CB &optional CBARGS)" nil nil)
-
-(autoload 'gravatar-retrieve-synchronously "gravatar" "\
-Retrieve MAIL-ADDRESS gravatar and returns it.
-
-\(fn MAIL-ADDRESS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gravatar" '("gravatar-")))
-
-;;;***
-
-;;;### (autoloads nil "grep" "progmodes/grep.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/grep.el
-
-(defvar grep-window-height nil "\
-Number of lines in a grep window.  If nil, use `compilation-window-height'.")
-
-(custom-autoload 'grep-window-height "grep" t)
-
-(defvar grep-command nil "\
-The default grep command for \\[grep].
-If the grep program used supports an option to always include file names
-in its output (such as the `-H' option to GNU grep), it's a good idea to
-include it when specifying `grep-command'.
-
-In interactive usage, the actual value of this variable is set up
-by `grep-compute-defaults'; to change the default value, use
-Customize or call the function `grep-apply-setting'.")
-
-(custom-autoload 'grep-command "grep" nil)
-
-(defvar grep-find-command nil "\
-The default find command for \\[grep-find].
-In interactive usage, the actual value of this variable is set up
-by `grep-compute-defaults'; to change the default value, use
-Customize or call the function `grep-apply-setting'.")
-
-(custom-autoload 'grep-find-command "grep" nil)
-
-(defvar grep-setup-hook nil "\
-List of hook functions run by `grep-process-setup' (see `run-hooks').")
-
-(custom-autoload 'grep-setup-hook "grep" t)
-
-(defconst grep-regexp-alist '(("^\\(.*?[^/\n]\\):[     ]*\\([1-9][0-9]*\\)[    
]*:" 1 2 ((lambda nil (when grep-highlight-matches (let* ((beg (match-end 0)) 
(end (save-excursion (goto-char beg) (line-end-position))) (mbeg 
(text-property-any beg end 'font-lock-face grep-match-face))) (when mbeg (- 
mbeg beg))))) lambda nil (when grep-highlight-matches (let* ((beg (match-end 
0)) (end (save-excursion (goto-char beg) (line-end-position))) (mbeg 
(text-property-any beg end 'font-lock-face grep-match [...]
-Regexp used to match grep hits.  See `compilation-error-regexp-alist'.")
-
-(defvar grep-program (purecopy "grep") "\
-The default grep program for `grep-command' and `grep-find-command'.
-This variable's value takes effect when `grep-compute-defaults' is called.")
-
-(defvar find-program (purecopy "find") "\
-The default find program.
-This is used by commands like `grep-find-command', `find-dired'
-and others.")
-
-(defvar xargs-program (purecopy "xargs") "\
-The default xargs program for `grep-find-command'.
-See `grep-find-use-xargs'.
-This variable's value takes effect when `grep-compute-defaults' is called.")
-
-(defvar grep-find-use-xargs nil "\
-How to invoke find and grep.
-If `exec', use `find -exec {} ;'.
-If `exec-plus' use `find -exec {} +'.
-If `gnu', use `find -print0' and `xargs -0'.
-Any other value means to use `find -print' and `xargs'.
-
-This variable's value takes effect when `grep-compute-defaults' is called.")
-
-(defvar grep-history nil "\
-History list for grep.")
-
-(defvar grep-find-history nil "\
-History list for grep-find.")
-
-(autoload 'grep-process-setup "grep" "\
-Setup compilation variables and buffer for `grep'.
-Set up `compilation-exit-message-function' and run `grep-setup-hook'.
-
-\(fn)" nil nil)
-
-(autoload 'grep-compute-defaults "grep" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'grep-mode "grep" "\
-Sets `grep-last-buffer' and `compilation-window-height'.
-
-\(fn)" nil nil)
-
-(autoload 'grep "grep" "\
-Run Grep with user-specified COMMAND-ARGS, collect output in a buffer.
-While Grep runs asynchronously, you can use \\[next-error] (M-x next-error),
-or \\<grep-mode-map>\\[compile-goto-error] in the *grep* buffer, to go to the 
lines where Grep found
-matches.  To kill the Grep job before it finishes, type \\[kill-compilation].
-
-Noninteractively, COMMAND-ARGS should specify the Grep command-line
-arguments.
-
-For doing a recursive `grep', see the `rgrep' command.  For running
-Grep in a specific directory, see `lgrep'.
-
-This command uses a special history list for its COMMAND-ARGS, so you
-can easily repeat a grep command.
-
-A prefix argument says to default the COMMAND-ARGS based on the current
-tag the cursor is over, substituting it into the last Grep command
-in the Grep command history (or into `grep-command' if that history
-list is empty).
-
-\(fn COMMAND-ARGS)" t nil)
-
-(autoload 'grep-find "grep" "\
-Run grep via find, with user-specified args COMMAND-ARGS.
-Collect output in a buffer.
-While find runs asynchronously, you can use the \\[next-error] command
-to find the text that grep hits refer to.
-
-This command uses a special history list for its arguments, so you can
-easily repeat a find command.
-
-\(fn COMMAND-ARGS)" t nil)
-
-(defalias 'find-grep 'grep-find)
-
-(autoload 'lgrep "grep" "\
-Run grep, searching for REGEXP in FILES in directory DIR.
-The search is limited to file names matching shell pattern FILES.
-FILES may use abbreviations defined in `grep-files-aliases', e.g.
-entering `ch' is equivalent to `*.[ch]'.
-
-With \\[universal-argument] prefix, you can edit the constructed shell command 
line
-before it is executed.
-With two \\[universal-argument] prefixes, directly edit and run `grep-command'.
-
-Collect output in a buffer.  While grep runs asynchronously, you
-can use \\[next-error] (M-x next-error), or 
\\<grep-mode-map>\\[compile-goto-error] in the grep output buffer,
-to go to the lines where grep found matches.
-
-This command shares argument histories with \\[rgrep] and \\[grep].
-
-\(fn REGEXP &optional FILES DIR CONFIRM)" t nil)
-
-(autoload 'rgrep "grep" "\
-Recursively grep for REGEXP in FILES in directory tree rooted at DIR.
-The search is limited to file names matching shell pattern FILES.
-FILES may use abbreviations defined in `grep-files-aliases', e.g.
-entering `ch' is equivalent to `*.[ch]'.
-
-With \\[universal-argument] prefix, you can edit the constructed shell command 
line
-before it is executed.
-With two \\[universal-argument] prefixes, directly edit and run 
`grep-find-command'.
-
-Collect output in a buffer.  While the recursive grep is running,
-you can use \\[next-error] (M-x next-error), or 
\\<grep-mode-map>\\[compile-goto-error] in the grep output buffer,
-to visit the lines where matches were found.  To kill the job
-before it finishes, type \\[kill-compilation].
-
-This command shares argument histories with \\[lgrep] and \\[grep-find].
-
-When called programmatically and FILES is nil, REGEXP is expected
-to specify a command to run.
-
-\(fn REGEXP &optional FILES DIR CONFIRM)" t nil)
-
-(autoload 'zrgrep "grep" "\
-Recursively grep for REGEXP in gzipped FILES in tree rooted at DIR.
-Like `rgrep' but uses `zgrep' for `grep-program', sets the default
-file name to `*.gz', and sets `grep-highlight-matches' to `always'.
-
-\(fn REGEXP &optional FILES DIR CONFIRM TEMPLATE)" t nil)
-
-(defalias 'rzgrep 'zrgrep)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"grep" '("rgrep-default-command" "grep-" "kill-grep")))
-
-;;;***
-
-;;;### (autoloads nil "gs" "gs.el" (0 0 0 0))
-;;; Generated autoloads from gs.el
-
-(autoload 'gs-load-image "gs" "\
-Load a PS image for display on FRAME.
-SPEC is an image specification, IMG-HEIGHT and IMG-WIDTH are width
-and height of the image in pixels.  WINDOW-AND-PIXMAP-ID is a string of
-the form \"WINDOW-ID PIXMAP-ID\".  Value is non-nil if successful.
-
-\(fn FRAME SPEC IMG-WIDTH IMG-HEIGHT WINDOW-AND-PIXMAP-ID PIXEL-COLORS)" nil 
nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "gs" 
'("gs-")))
-
-;;;***
-
-;;;### (autoloads nil "gssapi" "gnus/gssapi.el" (0 0 0 0))
-;;; Generated autoloads from gnus/gssapi.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gssapi" '("open-gssapi-stream" "gssapi-program")))
-
-;;;***
-
-;;;### (autoloads nil "gud" "progmodes/gud.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/gud.el
-
-(autoload 'gud-gdb "gud" "\
-Run gdb passing it COMMAND-LINE as arguments.
-If COMMAND-LINE names a program FILE to debug, gdb will run in
-a buffer named *gud-FILE*, and the directory containing FILE
-becomes the initial working directory and source-file directory
-for your debugger.
-If COMMAND-LINE requests that gdb attaches to a process PID, gdb
-will run in *gud-PID*, otherwise it will run in *gud*; in these
-cases the initial working directory is the default-directory of
-the buffer in which this command was invoked.
-
-\(fn COMMAND-LINE)" t nil)
-
-(autoload 'sdb "gud" "\
-Run sdb on program FILE in buffer *gud-FILE*.
-The directory containing FILE becomes the initial working directory
-and source-file directory for your debugger.
-
-\(fn COMMAND-LINE)" t nil)
-
-(autoload 'dbx "gud" "\
-Run dbx on program FILE in buffer *gud-FILE*.
-The directory containing FILE becomes the initial working directory
-and source-file directory for your debugger.
-
-\(fn COMMAND-LINE)" t nil)
-
-(autoload 'xdb "gud" "\
-Run xdb on program FILE in buffer *gud-FILE*.
-The directory containing FILE becomes the initial working directory
-and source-file directory for your debugger.
-
-You can set the variable `gud-xdb-directories' to a list of program source
-directories if your program contains sources from more than one directory.
-
-\(fn COMMAND-LINE)" t nil)
-
-(autoload 'perldb "gud" "\
-Run perldb on program FILE in buffer *gud-FILE*.
-The directory containing FILE becomes the initial working directory
-and source-file directory for your debugger.
-
-\(fn COMMAND-LINE)" t nil)
-
-(autoload 'pdb "gud" "\
-Run pdb on program FILE in buffer `*gud-FILE*'.
-The directory containing FILE becomes the initial working directory
-and source-file directory for your debugger.
-
-\(fn COMMAND-LINE)" t nil)
-
-(autoload 'guiler "gud" "\
-Run guiler on program FILE in buffer `*gud-FILE*'.
-The directory containing FILE becomes the initial working directory
-and source-file directory for your debugger.
-
-\(fn COMMAND-LINE)" t nil)
-
-(autoload 'jdb "gud" "\
-Run jdb with command line COMMAND-LINE in a buffer.
-The buffer is named \"*gud*\" if no initial class is given or
-\"*gud-<initial-class-basename>*\" if there is.  If the \"-classpath\"
-switch is given, omit all whitespace between it and its value.
-
-See `gud-jdb-use-classpath' and `gud-jdb-classpath' documentation for
-information on how jdb accesses source files.  Alternatively (if
-`gud-jdb-use-classpath' is nil), see `gud-jdb-directories' for the
-original source file access method.
-
-For general information about commands available to control jdb from
-gud, see `gud-mode'.
-
-\(fn COMMAND-LINE)" t nil)
-
-(autoload 'gdb-script-mode "gud" "\
-Major mode for editing GDB scripts.
-
-\(fn)" t nil)
-
-(defvar gud-tooltip-mode nil "\
-Non-nil if Gud-Tooltip mode is enabled.
-See the `gud-tooltip-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `gud-tooltip-mode'.")
-
-(custom-autoload 'gud-tooltip-mode "gud" nil)
-
-(autoload 'gud-tooltip-mode "gud" "\
-Toggle the display of GUD tooltips.
-With a prefix argument ARG, enable the feature if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-it if ARG is omitted or nil.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"gud" '("gdb-" "gud-")))
-
-;;;***
-
-;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/gv.el
-
-(autoload 'gv-get "gv" "\
-Build the code that applies DO to PLACE.
-PLACE must be a valid generalized variable.
-DO must be a function; it will be called with 2 arguments: GETTER and SETTER,
-where GETTER is a (copyable) Elisp expression that returns the value of PLACE,
-and SETTER is a function which returns the code to set PLACE when called
-with a (not necessarily copyable) Elisp expression that returns the value to
-set it to.
-DO must return an Elisp expression.
-
-\(fn PLACE DO)" nil nil)
-
-(autoload 'gv-letplace "gv" "\
-Build the code manipulating the generalized variable PLACE.
-GETTER will be bound to a copyable expression that returns the value
-of PLACE.
-SETTER will be bound to a function that takes an expression V and returns
-a new expression that sets PLACE to V.
-BODY should return some Elisp expression E manipulating PLACE via GETTER
-and SETTER.
-The returned value will then be an Elisp expression that first evaluates
-all the parts of PLACE that can be evaluated and then runs E.
-
-\(fn (GETTER SETTER) PLACE &rest BODY)" nil t)
-
-(function-put 'gv-letplace 'lisp-indent-function '2)
-
-(autoload 'gv-define-expander "gv" "\
-Use HANDLER to handle NAME as a generalized var.
-NAME is a symbol: the name of a function, macro, or special form.
-HANDLER is a function which takes an argument DO followed by the same
-arguments as NAME.  DO is a function as defined in `gv-get'.
-
-\(fn NAME HANDLER)" nil t)
-
-(function-put 'gv-define-expander 'lisp-indent-function '1)
-
-(autoload 'gv--defun-declaration "gv" "\
-
-
-\(fn SYMBOL NAME ARGS HANDLER &optional FIX)" nil nil)
-
-(or (assq 'gv-expander defun-declarations-alist) (let ((x `(gv-expander 
,(apply-partially #'gv--defun-declaration 'gv-expander)))) (push x 
macro-declarations-alist) (push x defun-declarations-alist)))
-
-(or (assq 'gv-setter defun-declarations-alist) (push `(gv-setter 
,(apply-partially #'gv--defun-declaration 'gv-setter)) 
defun-declarations-alist))
-
-(autoload 'gv-define-setter "gv" "\
-Define a setter method for generalized variable NAME.
-This macro is an easy-to-use substitute for `gv-define-expander' that works
-well for simple place forms.
-Assignments of VAL to (NAME ARGS...) are expanded by binding the argument
-forms (VAL ARGS...) according to ARGLIST, then executing BODY, which must
-return a Lisp form that does the assignment.
-The first arg in ARGLIST (the one that receives VAL) receives an expression
-which can do arbitrary things, whereas the other arguments are all guaranteed
-to be pure and copyable.  Example use:
-  (gv-define-setter aref (v a i) \\=`(aset ,a ,i ,v))
-
-\(fn NAME ARGLIST &rest BODY)" nil t)
-
-(function-put 'gv-define-setter 'lisp-indent-function '2)
-
-(autoload 'gv-define-simple-setter "gv" "\
-Define a simple setter method for generalized variable NAME.
-This macro is an easy-to-use substitute for `gv-define-expander' that works
-well for simple place forms.  Assignments of VAL to (NAME ARGS...) are
-turned into calls of the form (SETTER ARGS... VAL).
-
-If FIX-RETURN is non-nil, then SETTER is not assumed to return VAL and
-instead the assignment is turned into something equivalent to
-  (let ((temp VAL))
-    (SETTER ARGS... temp)
-    temp)
-so as to preserve the semantics of `setf'.
-
-\(fn NAME SETTER &optional FIX-RETURN)" nil t)
-
-(autoload 'setf "gv" "\
-Set each PLACE to the value of its VAL.
-This is a generalized version of `setq'; the PLACEs may be symbolic
-references such as (car x) or (aref x i), as well as plain symbols.
-For example, (setf (cadr x) y) is equivalent to (setcar (cdr x) y).
-The return value is the last VAL in the list.
-
-\(fn PLACE VAL PLACE VAL ...)" nil t)
-
-(put 'gv-place 'edebug-form-spec 'edebug-match-form)
-
-(autoload 'gv-ref "gv" "\
-Return a reference to PLACE.
-This is like the `&' operator of the C language.
-Note: this only works reliably with lexical binding mode, except for very
-simple PLACEs such as (symbol-function \\='foo) which will also work in dynamic
-binding mode.
-
-\(fn PLACE)" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "gv" 
'("gv-")))
-
-;;;***
-
-;;;### (autoloads nil "handwrite" "play/handwrite.el" (0 0 0 0))
-;;; Generated autoloads from play/handwrite.el
-
-(autoload 'handwrite "handwrite" "\
-Turns the buffer into a \"handwritten\" document.
-The functions `handwrite-10pt', `handwrite-11pt', `handwrite-12pt'
-and `handwrite-13pt' set up for various sizes of output.
-
-Variables: `handwrite-linespace'     (default 12)
-           `handwrite-fontsize'      (default 11)
-           `handwrite-numlines'      (default 60)
-           `handwrite-pagenumbering' (default nil)
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"handwrite" '("handwrite-" "menu-bar-handwrite-map")))
-
-;;;***
-
-;;;### (autoloads nil "hanja-util" "language/hanja-util.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from language/hanja-util.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hanja-util" '("han")))
-
-;;;***
-
-;;;### (autoloads nil "hanoi" "play/hanoi.el" (0 0 0 0))
-;;; Generated autoloads from play/hanoi.el
-
-(autoload 'hanoi "hanoi" "\
-Towers of Hanoi diversion.  Use NRINGS rings.
-
-\(fn NRINGS)" t nil)
-
-(autoload 'hanoi-unix "hanoi" "\
-Towers of Hanoi, UNIX doomsday version.
-Displays 32-ring towers that have been progressing at one move per
-second since 1970-01-01 00:00:00 GMT.
-
-Repent before ring 31 moves.
-
-\(fn)" t nil)
-
-(autoload 'hanoi-unix-64 "hanoi" "\
-Like hanoi-unix, but pretend to have a 64-bit clock.
-This is, necessarily (as of Emacs 20.3), a crock.  When the
-current-time interface is made s2G-compliant, hanoi.el will need
-to be updated.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hanoi" '("hanoi-")))
-
-;;;***
-
-;;;### (autoloads nil "hashcash" "mail/hashcash.el" (0 0 0 0))
-;;; Generated autoloads from mail/hashcash.el
-
-(autoload 'hashcash-insert-payment "hashcash" "\
-Insert X-Payment and X-Hashcash headers with a payment for ARG
-
-\(fn ARG)" t nil)
-
-(autoload 'hashcash-insert-payment-async "hashcash" "\
-Insert X-Payment and X-Hashcash headers with a payment for ARG
-Only start calculation.  Results are inserted when ready.
-
-\(fn ARG)" t nil)
-
-(autoload 'hashcash-verify-payment "hashcash" "\
-Verify a hashcash payment
-
-\(fn TOKEN &optional RESOURCE AMOUNT)" nil nil)
-
-(autoload 'mail-add-payment "hashcash" "\
-Add X-Payment: and X-Hashcash: headers with a hashcash payment
-for each recipient address.  Prefix arg sets default payment temporarily.
-Set ASYNC to t to start asynchronous calculation.  (See
-`mail-add-payment-async').
-
-\(fn &optional ARG ASYNC)" t nil)
-
-(autoload 'mail-add-payment-async "hashcash" "\
-Add X-Payment: and X-Hashcash: headers with a hashcash payment
-for each recipient address.  Prefix arg sets default payment temporarily.
-Calculation is asynchronous.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'mail-check-payment "hashcash" "\
-Look for a valid X-Payment: or X-Hashcash: header.
-Prefix arg sets default accept amount temporarily.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hashcash" '("hashcash-")))
-
-;;;***
-
-;;;### (autoloads nil "help-at-pt" "help-at-pt.el" (0 0 0 0))
-;;; Generated autoloads from help-at-pt.el
-
-(autoload 'help-at-pt-string "help-at-pt" "\
-Return the help-echo string at point.
-Normally, the string produced by the `help-echo' text or overlay
-property, or nil, is returned.
-If KBD is non-nil, `kbd-help' is used instead, and any
-`help-echo' property is ignored.  In this case, the return value
-can also be t, if that is the value of the `kbd-help' property.
-
-\(fn &optional KBD)" nil nil)
-
-(autoload 'help-at-pt-kbd-string "help-at-pt" "\
-Return the keyboard help string at point.
-If the `kbd-help' text or overlay property at point produces a
-string, return it.  Otherwise, use the `help-echo' property.
-If this produces no string either, return nil.
-
-\(fn)" nil nil)
-
-(autoload 'display-local-help "help-at-pt" "\
-Display local help in the echo area.
-This displays a short help message, namely the string produced by
-the `kbd-help' property at point.  If `kbd-help' does not produce
-a string, but the `help-echo' property does, then that string is
-printed instead.
-
-A numeric argument ARG prevents display of a message in case
-there is no help.  While ARG can be used interactively, it is
-mainly meant for use from Lisp.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'help-at-pt-cancel-timer "help-at-pt" "\
-Cancel any timer set by `help-at-pt-set-timer'.
-This disables `help-at-pt-display-when-idle'.
-
-\(fn)" t nil)
-
-(autoload 'help-at-pt-set-timer "help-at-pt" "\
-Enable `help-at-pt-display-when-idle'.
-This is done by setting a timer, if none is currently active.
-
-\(fn)" t nil)
-
-(defvar help-at-pt-display-when-idle 'never "\
-Automatically show local help on point-over.
-If the value is t, the string obtained from any `kbd-help' or
-`help-echo' property at point is automatically printed in the
-echo area, if nothing else is already displayed there, or after a
-quit.  If both `kbd-help' and `help-echo' produce help strings,
-`kbd-help' is used.  If the value is a list, the help only gets
-printed if there is a text or overlay property at point that is
-included in this list.  Suggested properties are `keymap',
-`local-map', `button' and `kbd-help'.  Any value other than t or
-a non-empty list disables the feature.
-
-This variable only takes effect after a call to
-`help-at-pt-set-timer'.  The help gets printed after Emacs has
-been idle for `help-at-pt-timer-delay' seconds.  You can call
-`help-at-pt-cancel-timer' to cancel the timer set by, and the
-effect of, `help-at-pt-set-timer'.
-
-When this variable is set through Custom, `help-at-pt-set-timer'
-is called automatically, unless the value is `never', in which
-case `help-at-pt-cancel-timer' is called.  Specifying an empty
-list of properties through Custom will set the timer, thus
-enabling buffer local values.  It sets the actual value to nil.
-Thus, Custom distinguishes between a nil value and other values
-that disable the feature, which Custom identifies with `never'.
-The default is `never'.")
-
-(custom-autoload 'help-at-pt-display-when-idle "help-at-pt" nil)
-
-(autoload 'scan-buf-move-to-region "help-at-pt" "\
-Go to the start of the next region with non-nil PROP property.
-Then run HOOK, which should be a quoted symbol that is a normal
-hook variable, or an expression evaluating to such a symbol.
-Adjacent areas with different non-nil PROP properties are
-considered different regions.
-
-With numeric argument ARG, move to the start of the ARGth next
-such region, then run HOOK.  If ARG is negative, move backward.
-If point is already in a region, then that region does not count
-toward ARG.  If ARG is 0 and point is inside a region, move to
-the start of that region.  If ARG is 0 and point is not in a
-region, print a message to that effect, but do not move point and
-do not run HOOK.  If there are not enough regions to move over,
-an error results and the number of available regions is mentioned
-in the error message.  Point is not moved and HOOK is not run.
-
-\(fn PROP &optional ARG HOOK)" nil nil)
-
-(autoload 'scan-buf-next-region "help-at-pt" "\
-Go to the start of the next region with non-nil help-echo.
-Print the help found there using `display-local-help'.  Adjacent
-areas with different non-nil help-echo properties are considered
-different regions.
-
-With numeric argument ARG, move to the start of the ARGth next
-help-echo region.  If ARG is negative, move backward.  If point
-is already in a help-echo region, then that region does not count
-toward ARG.  If ARG is 0 and point is inside a help-echo region,
-move to the start of that region.  If ARG is 0 and point is not
-in such a region, just print a message to that effect.  If there
-are not enough regions to move over, an error results and the
-number of available regions is mentioned in the error message.
-
-A potentially confusing subtlety is that point can be in a
-help-echo region without any local help being available.  This is
-because `help-echo' can be a function evaluating to nil.  This
-rarely happens in practice.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'scan-buf-previous-region "help-at-pt" "\
-Go to the start of the previous region with non-nil help-echo.
-Print the help found there using `display-local-help'.  Adjacent
-areas with different non-nil help-echo properties are considered
-different regions.  With numeric argument ARG, behaves like
-`scan-buf-next-region' with argument -ARG.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"help-at-pt" '("scan-buf-move-hook" "help-at-pt-")))
-
-;;;***
-
-;;;### (autoloads nil "help-fns" "help-fns.el" (0 0 0 0))
-;;; Generated autoloads from help-fns.el
-
-(autoload 'describe-function "help-fns" "\
-Display the full documentation of FUNCTION (a symbol).
-When called from lisp, FUNCTION may also be a function object.
-
-\(fn FUNCTION)" t nil)
-
-(autoload 'help-C-file-name "help-fns" "\
-Return the name of the C file where SUBR-OR-VAR is defined.
-KIND should be `var' for a variable or `subr' for a subroutine.
-
-\(fn SUBR-OR-VAR KIND)" nil nil)
-
-(autoload 'find-lisp-object-file-name "help-fns" "\
-Guess the file that defined the Lisp object OBJECT, of type TYPE.
-OBJECT should be a symbol associated with a function, variable, or face;
-  alternatively, it can be a function definition.
-If TYPE is `defvar', search for a variable definition.
-If TYPE is `defface', search for a face definition.
-If TYPE is not a symbol, search for a function definition.
-
-The return value is the absolute name of a readable file where OBJECT is
-defined.  If several such files exist, preference is given to a file
-found via `load-path'.  The return value can also be `C-source', which
-means that OBJECT is a function or variable defined in C.  If no
-suitable file is found, return nil.
-
-\(fn OBJECT TYPE)" nil nil)
-
-(autoload 'describe-function-1 "help-fns" "\
-
-
-\(fn FUNCTION)" nil nil)
-
-(autoload 'variable-at-point "help-fns" "\
-Return the bound variable symbol found at or before point.
-Return 0 if there is no such symbol.
-If ANY-SYMBOL is non-nil, don't insist the symbol be bound.
-
-\(fn &optional ANY-SYMBOL)" nil nil)
-
-(autoload 'describe-variable "help-fns" "\
-Display the full documentation of VARIABLE (a symbol).
-Returns the documentation as a string, also.
-If VARIABLE has a buffer-local value in BUFFER or FRAME
-\(default to the current buffer and current frame),
-it is displayed along with the global value.
-
-\(fn VARIABLE &optional BUFFER FRAME)" t nil)
-
-(autoload 'describe-symbol "help-fns" "\
-Display the full documentation of SYMBOL.
-Will show the info of SYMBOL as a function, variable, and/or face.
-Optional arguments BUFFER and FRAME specify for which buffer and
-frame to show the information about SYMBOL; they default to the
-current buffer and the selected frame, respectively.
-
-\(fn SYMBOL &optional BUFFER FRAME)" t nil)
-
-(autoload 'describe-syntax "help-fns" "\
-Describe the syntax specifications in the syntax table of BUFFER.
-The descriptions are inserted in a help buffer, which is then displayed.
-BUFFER defaults to the current buffer.
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'describe-categories "help-fns" "\
-Describe the category specifications in the current category table.
-The descriptions are inserted in a buffer, which is then displayed.
-If BUFFER is non-nil, then describe BUFFER's category table instead.
-BUFFER should be a buffer or a buffer name.
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'doc-file-to-man "help-fns" "\
-Produce an nroff buffer containing the doc-strings from the DOC file.
-
-\(fn FILE)" t nil)
-
-(autoload 'doc-file-to-info "help-fns" "\
-Produce a texinfo buffer with sorted doc-strings from the DOC file.
-
-\(fn FILE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"help-fns" '("help-" "describe-")))
-
-;;;***
-
-;;;### (autoloads nil "help-macro" "help-macro.el" (0 0 0 0))
-;;; Generated autoloads from help-macro.el
-
-(defvar three-step-help nil "\
-Non-nil means give more info about Help command in three steps.
-The three steps are simple prompt, prompt with all options, and
-window listing and describing the options.
-A value of nil means skip the middle step, so that \\[help-command] 
\\[help-command]
-gives the window that lists the options.")
-
-(custom-autoload 'three-step-help "help-macro" t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"help-macro" '("make-help-screen")))
-
-;;;***
-
-;;;### (autoloads nil "help-mode" "help-mode.el" (0 0 0 0))
-;;; Generated autoloads from help-mode.el
-
-(autoload 'help-mode "help-mode" "\
-Major mode for viewing help text and navigating references in it.
-Entry to this mode runs the normal hook `help-mode-hook'.
-Commands:
-\\{help-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'help-mode-setup "help-mode" "\
-Enter Help Mode in the current buffer.
-
-\(fn)" nil nil)
-
-(autoload 'help-mode-finish "help-mode" "\
-Finalize Help Mode setup in current buffer.
-
-\(fn)" nil nil)
-
-(autoload 'help-setup-xref "help-mode" "\
-Invoked from commands using the \"*Help*\" buffer to install some xref info.
-
-ITEM is a (FUNCTION . ARGS) pair appropriate for recreating the help
-buffer after following a reference.  INTERACTIVE-P is non-nil if the
-calling command was invoked interactively.  In this case the stack of
-items for help buffer \"back\" buttons is cleared.
-
-This should be called very early, before the output buffer is cleared,
-because we want to record the \"previous\" position of point so we can
-restore it properly when going back.
-
-\(fn ITEM INTERACTIVE-P)" nil nil)
-
-(autoload 'help-buffer "help-mode" "\
-Return the name of a buffer for inserting help.
-If `help-xref-following' is non-nil, this is the name of the
-current buffer.  Signal an error if this buffer is not derived
-from `help-mode'.
-Otherwise, return \"*Help*\", creating a buffer with that name if
-it does not already exist.
-
-\(fn)" nil nil)
-
-(autoload 'help-make-xrefs "help-mode" "\
-Parse and hyperlink documentation cross-references in the given BUFFER.
-
-Find cross-reference information in a buffer and activate such cross
-references for selection with `help-follow'.  Cross-references have
-the canonical form `...'  and the type of reference may be
-disambiguated by the preceding word(s) used in
-`help-xref-symbol-regexp'.  Faces only get cross-referenced if
-preceded or followed by the word `face'.  Variables without
-variable documentation do not get cross-referenced, unless
-preceded by the word `variable' or `option'.
-
-If the variable `help-xref-mule-regexp' is non-nil, find also
-cross-reference information related to multilingual environment
-\(e.g., coding-systems).  This variable is also used to disambiguate
-the type of reference as the same way as `help-xref-symbol-regexp'.
-
-A special reference `back' is made to return back through a stack of
-help buffers.  Variable `help-back-label' specifies the text for
-that.
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'help-xref-button "help-mode" "\
-Make a hyperlink for cross-reference text previously matched.
-MATCH-NUMBER is the subexpression of interest in the last matched
-regexp.  TYPE is the type of button to use.  Any remaining arguments are
-passed to the button's help-function when it is invoked.
-See `help-make-xrefs'.
-
-\(fn MATCH-NUMBER TYPE &rest ARGS)" nil nil)
-
-(autoload 'help-insert-xref-button "help-mode" "\
-Insert STRING and make a hyperlink from cross-reference text on it.
-TYPE is the type of button to use.  Any remaining arguments are passed
-to the button's help-function when it is invoked.
-See `help-make-xrefs'.
-
-\(fn STRING TYPE &rest ARGS)" nil nil)
-
-(autoload 'help-xref-on-pp "help-mode" "\
-Add xrefs for symbols in `pp's output between FROM and TO.
-
-\(fn FROM TO)" nil nil)
-
-(define-obsolete-function-alias 'help-xref-interned 'describe-symbol "25.1")
-
-(autoload 'help-bookmark-jump "help-mode" "\
-Jump to help-mode bookmark BOOKMARK.
-Handler function for record returned by `help-bookmark-make-record'.
-BOOKMARK is a bookmark name or a bookmark record.
-
-\(fn BOOKMARK)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"help-mode" '("help-" "describe-symbol-backends")))
-
-;;;***
-
-;;;### (autoloads nil "helper" "emacs-lisp/helper.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/helper.el
-
-(autoload 'Helper-describe-bindings "helper" "\
-Describe local key bindings of current mode.
-
-\(fn)" t nil)
-
-(autoload 'Helper-help "helper" "\
-Provide help for current mode.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"helper" '("Helper-")))
-
-;;;***
-
-;;;### (autoloads nil "hex-util" "hex-util.el" (0 0 0 0))
-;;; Generated autoloads from hex-util.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hex-util" '("encode-hex-string" "decode-hex-string")))
-
-;;;***
-
-;;;### (autoloads nil "hexl" "hexl.el" (0 0 0 0))
-;;; Generated autoloads from hexl.el
-
-(autoload 'hexl-mode "hexl" "\
-\\<hexl-mode-map>A mode for editing binary files in hex dump format.
-This is not an ordinary major mode; it alters some aspects
-of the current mode's behavior, but not all; also, you can exit
-Hexl mode and return to the previous mode using `hexl-mode-exit'.
-
-This function automatically converts a buffer into the hexl format
-using the function `hexlify-buffer'.
-
-Each line in the buffer has an \"address\" (displayed in hexadecimal)
-representing the offset into the file that the characters on this line
-are at and 16 characters from the file (displayed as hexadecimal
-values grouped every `hexl-bits' bits, and as their ASCII values).
-
-If any of the characters (displayed as ASCII characters) are
-unprintable (control or meta characters) they will be replaced by
-periods.
-
-If `hexl-mode' is invoked with an argument the buffer is assumed to be
-in hexl format.
-
-A sample format:
-
-  HEX ADDR: 0011 2233 4455 6677 8899 aabb ccdd eeff     ASCII-TEXT
-  --------  ---- ---- ---- ---- ---- ---- ---- ----  ----------------
-  00000000: 5468 6973 2069 7320 6865 786c 2d6d 6f64  This is hexl-mod
-  00000010: 652e 2020 4561 6368 206c 696e 6520 7265  e.  Each line re
-  00000020: 7072 6573 656e 7473 2031 3620 6279 7465  presents 16 byte
-  00000030: 7320 6173 2068 6578 6164 6563 696d 616c  s as hexadecimal
-  00000040: 2041 5343 4949 0a61 6e64 2070 7269 6e74   ASCII.and print
-  00000050: 6162 6c65 2041 5343 4949 2063 6861 7261  able ASCII chara
-  00000060: 6374 6572 732e 2020 416e 7920 636f 6e74  cters.  Any cont
-  00000070: 726f 6c20 6f72 206e 6f6e 2d41 5343 4949  rol or non-ASCII
-  00000080: 2063 6861 7261 6374 6572 730a 6172 6520   characters.are
-  00000090: 6469 7370 6c61 7965 6420 6173 2070 6572  displayed as per
-  000000a0: 696f 6473 2069 6e20 7468 6520 7072 696e  iods in the prin
-  000000b0: 7461 626c 6520 6368 6172 6163 7465 7220  table character
-  000000c0: 7265 6769 6f6e 2e0a                      region..
-
-Movement is as simple as movement in a normal Emacs text buffer.
-Most cursor movement bindings are the same: use \\[hexl-backward-char], 
\\[hexl-forward-char], \\[hexl-next-line], and \\[hexl-previous-line]
-to move the cursor left, right, down, and up.
-
-Advanced cursor movement commands (ala \\[hexl-beginning-of-line], 
\\[hexl-end-of-line], \\[hexl-beginning-of-buffer], and \\[hexl-end-of-buffer]) 
are
-also supported.
-
-There are several ways to change text in hexl mode:
-
-ASCII characters (character between space (0x20) and tilde (0x7E)) are
-bound to self-insert so you can simply type the character and it will
-insert itself (actually overstrike) into the buffer.
-
-\\[hexl-quoted-insert] followed by another keystroke allows you to insert the 
key even if
-it isn't bound to self-insert.  An octal number can be supplied in place
-of another key to insert the octal number's ASCII representation.
-
-\\[hexl-insert-hex-char] will insert a given hexadecimal value (if it is 
between 0 and 0xFF)
-into the buffer at the current point.
-
-\\[hexl-insert-octal-char] will insert a given octal value (if it is between 0 
and 0377)
-into the buffer at the current point.
-
-\\[hexl-insert-decimal-char] will insert a given decimal value (if it is 
between 0 and 255)
-into the buffer at the current point.
-
-\\[hexl-mode-exit] will exit `hexl-mode'.
-
-Note: saving the file with any of the usual Emacs commands
-will actually convert it back to binary format while saving.
-
-You can use \\[hexl-find-file] to visit a file in Hexl mode.
-
-\\[describe-bindings] for advanced commands.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'hexl-find-file "hexl" "\
-Edit file FILENAME as a binary file in hex dump format.
-Switch to a buffer visiting file FILENAME, creating one if none exists,
-and edit the file in `hexl-mode'.
-
-\(fn FILENAME)" t nil)
-
-(autoload 'hexlify-buffer "hexl" "\
-Convert a binary buffer to hexl format.
-This discards the buffer's undo information.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hexl" '("hexl-" "dehexlify-buffer")))
-
-;;;***
-
-;;;### (autoloads nil "hi-lock" "hi-lock.el" (0 0 0 0))
-;;; Generated autoloads from hi-lock.el
-
-(autoload 'hi-lock-mode "hi-lock" "\
-Toggle selective highlighting of patterns (Hi Lock mode).
-With a prefix argument ARG, enable Hi Lock mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Hi Lock mode is automatically enabled when you invoke any of the
-highlighting commands listed below, such as \\[highlight-regexp].
-To enable Hi Lock mode in all buffers, use `global-hi-lock-mode'
-or add (global-hi-lock-mode 1) to your init file.
-
-In buffers where Font Lock mode is enabled, patterns are
-highlighted using font lock.  In buffers where Font Lock mode is
-disabled, patterns are applied using overlays; in this case, the
-highlighting will not be updated as you type.
-
-When Hi Lock mode is enabled, a \"Regexp Highlighting\" submenu
-is added to the \"Edit\" menu.  The commands in the submenu,
-which can be called interactively, are:
-
-\\[highlight-regexp] REGEXP FACE
-  Highlight matches of pattern REGEXP in current buffer with FACE.
-
-\\[highlight-phrase] PHRASE FACE
-  Highlight matches of phrase PHRASE in current buffer with FACE.
-  (PHRASE can be any REGEXP, but spaces will be replaced by matches
-  to whitespace and initial lower-case letters will become case insensitive.)
-
-\\[highlight-lines-matching-regexp] REGEXP FACE
-  Highlight lines containing matches of REGEXP in current buffer with FACE.
-
-\\[highlight-symbol-at-point]
-  Highlight the symbol found near point without prompting, using the next
-  available face automatically.
-
-\\[unhighlight-regexp] REGEXP
-  Remove highlighting on matches of REGEXP in current buffer.
-
-\\[hi-lock-write-interactive-patterns]
-  Write active REGEXPs into buffer as comments (if possible).  They may
-  be read the next time file is loaded or when the \\[hi-lock-find-patterns] 
command
-  is issued.  The inserted regexps are in the form of font lock keywords.
-  (See `font-lock-keywords'.)  They may be edited and re-loaded with 
\\[hi-lock-find-patterns],
-  any valid `font-lock-keywords' form is acceptable.  When a file is
-  loaded the patterns are read if `hi-lock-file-patterns-policy' is
-  `ask' and the user responds y to the prompt, or if
-  `hi-lock-file-patterns-policy' is bound to a function and that
-  function returns t.
-
-\\[hi-lock-find-patterns]
-  Re-read patterns stored in buffer (in the format produced by 
\\[hi-lock-write-interactive-patterns]).
-
-When hi-lock is started and if the mode is not excluded or patterns
-rejected, the beginning of the buffer is searched for lines of the
-form:
-  Hi-lock: FOO
-
-where FOO is a list of patterns.  The patterns must start before
-position (number of characters into buffer)
-`hi-lock-file-patterns-range'.  Patterns will be read until
-Hi-lock: end is found.  A mode is excluded if it's in the list
-`hi-lock-exclude-modes'.
-
-\(fn &optional ARG)" t nil)
-
-(defvar global-hi-lock-mode nil "\
-Non-nil if Global Hi-Lock mode is enabled.
-See the `global-hi-lock-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-hi-lock-mode'.")
-
-(custom-autoload 'global-hi-lock-mode "hi-lock" nil)
-
-(autoload 'global-hi-lock-mode "hi-lock" "\
-Toggle Hi-Lock mode in all buffers.
-With prefix ARG, enable Global Hi-Lock mode if ARG is positive;
-otherwise, disable it.  If called from Lisp, enable the mode if
-ARG is omitted or nil.
-
-Hi-Lock mode is enabled in all buffers where
-`turn-on-hi-lock-if-enabled' would do it.
-See `hi-lock-mode' for more information on Hi-Lock mode.
-
-\(fn &optional ARG)" t nil)
-
-(defalias 'highlight-lines-matching-regexp 'hi-lock-line-face-buffer)
-
-(autoload 'hi-lock-line-face-buffer "hi-lock" "\
-Set face of all lines containing a match of REGEXP to FACE.
-Interactively, prompt for REGEXP using `read-regexp', then FACE.
-Use the global history list for FACE.
-
-Use Font lock mode, if enabled, to highlight REGEXP.  Otherwise,
-use overlays for highlighting.  If overlays are used, the
-highlighting will not update as you type.
-
-\(fn REGEXP &optional FACE)" t nil)
-
-(defalias 'highlight-regexp 'hi-lock-face-buffer)
-
-(autoload 'hi-lock-face-buffer "hi-lock" "\
-Set face of each match of REGEXP to FACE.
-Interactively, prompt for REGEXP using `read-regexp', then FACE.
-Use the global history list for FACE.
-
-Use Font lock mode, if enabled, to highlight REGEXP.  Otherwise,
-use overlays for highlighting.  If overlays are used, the
-highlighting will not update as you type.
-
-\(fn REGEXP &optional FACE)" t nil)
-
-(defalias 'highlight-phrase 'hi-lock-face-phrase-buffer)
-
-(autoload 'hi-lock-face-phrase-buffer "hi-lock" "\
-Set face of each match of phrase REGEXP to FACE.
-Interactively, prompt for REGEXP using `read-regexp', then FACE.
-Use the global history list for FACE.
-
-When called interactively, replace whitespace in user-provided
-regexp with arbitrary whitespace, and make initial lower-case
-letters case-insensitive, before highlighting with `hi-lock-set-pattern'.
-
-Use Font lock mode, if enabled, to highlight REGEXP.  Otherwise,
-use overlays for highlighting.  If overlays are used, the
-highlighting will not update as you type.
-
-\(fn REGEXP &optional FACE)" t nil)
-
-(defalias 'highlight-symbol-at-point 'hi-lock-face-symbol-at-point)
-
-(autoload 'hi-lock-face-symbol-at-point "hi-lock" "\
-Highlight each instance of the symbol at point.
-Uses the next face from `hi-lock-face-defaults' without prompting,
-unless you use a prefix argument.
-Uses `find-tag-default-as-symbol-regexp' to retrieve the symbol at point.
-
-This uses Font lock mode if it is enabled; otherwise it uses overlays,
-in which case the highlighting will not update as you type.
-
-\(fn)" t nil)
-
-(defalias 'unhighlight-regexp 'hi-lock-unface-buffer)
-
-(autoload 'hi-lock-unface-buffer "hi-lock" "\
-Remove highlighting of each match to REGEXP set by hi-lock.
-Interactively, prompt for REGEXP, accepting only regexps
-previously inserted by hi-lock interactive functions.
-If REGEXP is t (or if \\[universal-argument] was specified interactively),
-then remove all hi-lock highlighting.
-
-\(fn REGEXP)" t nil)
-
-(autoload 'hi-lock-write-interactive-patterns "hi-lock" "\
-Write interactively added patterns, if any, into buffer at point.
-
-Interactively added patterns are those normally specified using
-`highlight-regexp' and `highlight-lines-matching-regexp'; they can
-be found in variable `hi-lock-interactive-patterns'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hi-lock" '("hi-lock-" "turn-on-hi-lock-if-enabled")))
-
-;;;***
-
-;;;### (autoloads nil "hideif" "progmodes/hideif.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/hideif.el
-
-(autoload 'hide-ifdef-mode "hideif" "\
-Toggle features to hide/show #ifdef blocks (Hide-Ifdef mode).
-With a prefix argument ARG, enable Hide-Ifdef mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Hide-Ifdef mode is a buffer-local minor mode for use with C and
-C-like major modes.  When enabled, code within #ifdef constructs
-that the C preprocessor would eliminate may be hidden from view.
-Several variables affect how the hiding is done:
-
-`hide-ifdef-env'
-        An association list of defined and undefined symbols for the
-        current project.  Initially, the global value of `hide-ifdef-env'
-        is used.  This variable was a buffer-local variable, which limits
-        hideif to parse only one C/C++ file at a time.  We've extended
-        hideif to support parsing a C/C++ project containing multiple C/C++
-        source files opened simultaneously in different buffers.  Therefore
-        `hide-ifdef-env' can no longer be buffer local but must be global.
-
-`hide-ifdef-define-alist'
-        An association list of defined symbol lists.
-        Use `hide-ifdef-set-define-alist' to save the current `hide-ifdef-env'
-        and `hide-ifdef-use-define-alist' to set the current `hide-ifdef-env'
-        from one of the lists in `hide-ifdef-define-alist'.
-
-`hide-ifdef-lines'
-        Set to non-nil to not show #if, #ifdef, #ifndef, #else, and
-        #endif lines when hiding.
-
-`hide-ifdef-initially'
-        Indicates whether `hide-ifdefs' should be called when Hide-Ifdef mode
-        is activated.
-
-`hide-ifdef-read-only'
-        Set to non-nil if you want to make buffers read only while hiding.
-        After `show-ifdefs', read-only status is restored to previous value.
-
-\\{hide-ifdef-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hideif" '("hif-" "hide-ifdef" "show-ifdef" "previous-ifdef" "next-ifdef" 
"up-ifdef" "down-ifdef" "backward-ifdef" "forward-ifdef" "intern-safe")))
-
-;;;***
-
-;;;### (autoloads nil "hideshow" "progmodes/hideshow.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/hideshow.el
-
-(defvar hs-special-modes-alist (mapcar 'purecopy '((c-mode "{" "}" "/[*/]" nil 
nil) (c++-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) 
(java-mode "{" "}" "/[*/]" nil nil) (js-mode "{" "}" "/[*/]" nil))) "\
-Alist for initializing the hideshow variables for different modes.
-Each element has the form
-  (MODE START END COMMENT-START FORWARD-SEXP-FUNC ADJUST-BEG-FUNC).
-
-If non-nil, hideshow will use these values as regexps to define blocks
-and comments, respectively for major mode MODE.
-
-START, END and COMMENT-START are regular expressions.  A block is
-defined as text surrounded by START and END.
-
-As a special case, START may be a list of the form (COMPLEX-START
-MDATA-SELECTOR), where COMPLEX-START is a regexp w/ multiple parts and
-MDATA-SELECTOR an integer that specifies which sub-match is the proper
-place to adjust point, before calling `hs-forward-sexp-func'.  Point
-is adjusted to the beginning of the specified match.  For example,
-see the `hs-special-modes-alist' entry for `bibtex-mode'.
-
-For some major modes, `forward-sexp' does not work properly.  In those
-cases, FORWARD-SEXP-FUNC specifies another function to use instead.
-
-See the documentation for `hs-adjust-block-beginning' to see what is the
-use of ADJUST-BEG-FUNC.
-
-If any of the elements is left nil or omitted, hideshow tries to guess
-appropriate values.  The regexps should not contain leading or trailing
-whitespace.  Case does not matter.")
-
-(autoload 'hs-minor-mode "hideshow" "\
-Minor mode to selectively hide/show code and comment blocks.
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-When hideshow minor mode is on, the menu bar is augmented with hideshow
-commands and the hideshow commands are enabled.
-The value (hs . t) is added to `buffer-invisibility-spec'.
-
-The main commands are: `hs-hide-all', `hs-show-all', `hs-hide-block',
-`hs-show-block', `hs-hide-level' and `hs-toggle-hiding'.  There is also
-`hs-hide-initial-comment-block' and `hs-mouse-toggle-hiding'.
-
-Turning hideshow minor mode off reverts the menu bar and the
-variables to default values and disables the hideshow commands.
-
-Lastly, the normal hook `hs-minor-mode-hook' is run using `run-hooks'.
-
-Key bindings:
-\\{hs-minor-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'turn-off-hideshow "hideshow" "\
-Unconditionally turn off `hs-minor-mode'.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hideshow" '("hs-")))
-
-;;;***
-
-;;;### (autoloads nil "hilit-chg" "hilit-chg.el" (0 0 0 0))
-;;; Generated autoloads from hilit-chg.el
-
-(autoload 'highlight-changes-mode "hilit-chg" "\
-Toggle highlighting changes in this buffer (Highlight Changes mode).
-With a prefix argument ARG, enable Highlight Changes mode if ARG
-is positive, and disable it otherwise.  If called from Lisp,
-enable the mode if ARG is omitted or nil.
-
-When Highlight Changes is enabled, changes are marked with a text
-property.  Normally they are displayed in a distinctive face, but
-command \\[highlight-changes-visible-mode] can be used to toggle
-this on and off.
-
-Other functions for buffers in this mode include:
-\\[highlight-changes-next-change] - move point to beginning of next change
-\\[highlight-changes-previous-change] - move to beginning of previous change
-\\[highlight-changes-remove-highlight] - remove the change face from the region
-\\[highlight-changes-rotate-faces] - rotate different \"ages\" of changes
-through        various faces.
-\\[highlight-compare-with-file] - mark text as changed by comparing this
-buffer with the contents of a file
-\\[highlight-compare-buffers] highlights differences between two buffers.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'highlight-changes-visible-mode "hilit-chg" "\
-Toggle visibility of highlighting due to Highlight Changes mode.
-With a prefix argument ARG, enable Highlight Changes Visible mode
-if ARG is positive, and disable it otherwise.  If called from
-Lisp, enable the mode if ARG is omitted or nil.
-
-Highlight Changes Visible mode only has an effect when Highlight
-Changes mode is on.  When enabled, the changed text is displayed
-in a distinctive face.
-
-The default value can be customized with variable
-`highlight-changes-visibility-initial-state'.
-
-This command does not itself set Highlight Changes mode.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'highlight-changes-remove-highlight "hilit-chg" "\
-Remove the change face from the region between BEG and END.
-This allows you to manually remove highlighting from uninteresting changes.
-
-\(fn BEG END)" t nil)
-
-(autoload 'highlight-changes-next-change "hilit-chg" "\
-Move to the beginning of the next change, if in Highlight Changes mode.
-
-\(fn)" t nil)
-
-(autoload 'highlight-changes-previous-change "hilit-chg" "\
-Move to the beginning of the previous change, if in Highlight Changes mode.
-
-\(fn)" t nil)
-
-(autoload 'highlight-changes-rotate-faces "hilit-chg" "\
-Rotate the faces if in Highlight Changes mode and the changes are visible.
-
-Current changes are displayed in the face described by the first element
-of `highlight-changes-face-list', one level older changes are shown in
-face described by the second element, and so on.  Very old changes remain
-shown in the last face in the list.
-
-You can automatically rotate colors when the buffer is saved by adding
-this function to `write-file-functions' as a buffer-local value.  To do
-this, eval the following in the buffer to be saved:
-
-  (add-hook \\='write-file-functions \\='highlight-changes-rotate-faces nil t)
-
-\(fn)" t nil)
-
-(autoload 'highlight-compare-buffers "hilit-chg" "\
-Compare two buffers and highlight the differences.
-
-The default is the current buffer and the one in the next window.
-
-If either buffer is modified and is visiting a file, you are prompted
-to save the file.
-
-Unless the buffer is unmodified and visiting a file, the buffer is
-written to a temporary file for comparison.
-
-If a buffer is read-only, differences will be highlighted but no property
-changes are made, so \\[highlight-changes-next-change] and
-\\[highlight-changes-previous-change] will not work.
-
-\(fn BUF-A BUF-B)" t nil)
-
-(autoload 'highlight-compare-with-file "hilit-chg" "\
-Compare this buffer with a file, and highlight differences.
-
-If the buffer has a backup filename, it is used as the default when
-this function is called interactively.
-
-If the current buffer is visiting the file being compared against, it
-also will have its differences highlighted.  Otherwise, the file is
-read in temporarily but the buffer is deleted.
-
-If the buffer is read-only, differences will be highlighted but no property
-changes are made, so \\[highlight-changes-next-change] and
-\\[highlight-changes-previous-change] will not work.
-
-\(fn FILE-B)" t nil)
-
-(defvar global-highlight-changes-mode nil "\
-Non-nil if Global Highlight-Changes mode is enabled.
-See the `global-highlight-changes-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-highlight-changes-mode'.")
-
-(custom-autoload 'global-highlight-changes-mode "hilit-chg" nil)
-
-(autoload 'global-highlight-changes-mode "hilit-chg" "\
-Toggle Highlight-Changes mode in all buffers.
-With prefix ARG, enable Global Highlight-Changes mode if ARG is positive;
-otherwise, disable it.  If called from Lisp, enable the mode if
-ARG is omitted or nil.
-
-Highlight-Changes mode is enabled in all buffers where
-`highlight-changes-mode-turn-on' would do it.
-See `highlight-changes-mode' for more information on Highlight-Changes mode.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hilit-chg" '("highlight-" "hilit-chg-" "global-highlight-changes")))
-
-;;;***
-
-;;;### (autoloads nil "hippie-exp" "hippie-exp.el" (0 0 0 0))
-;;; Generated autoloads from hippie-exp.el
-(push (purecopy '(hippie-exp 1 6)) package--builtin-versions)
-
-(defvar hippie-expand-try-functions-list '(try-complete-file-name-partially 
try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line 
try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill 
try-complete-lisp-symbol-partially try-complete-lisp-symbol) "\
-The list of expansion functions tried in order by `hippie-expand'.
-To change the behavior of `hippie-expand', remove, change the order of,
-or insert functions in this list.")
-
-(custom-autoload 'hippie-expand-try-functions-list "hippie-exp" t)
-
-(autoload 'hippie-expand "hippie-exp" "\
-Try to expand text before point, using multiple methods.
-The expansion functions in `hippie-expand-try-functions-list' are
-tried in order, until a possible expansion is found.  Repeated
-application of `hippie-expand' inserts successively possible
-expansions.
-With a positive numeric argument, jumps directly to the ARG next
-function in this list.  With a negative argument or just 
\\[universal-argument],
-undoes the expansion.
-
-\(fn ARG)" t nil)
-
-(autoload 'make-hippie-expand-function "hippie-exp" "\
-Construct a function similar to `hippie-expand'.
-Make it use the expansion functions in TRY-LIST.  An optional second
-argument VERBOSE non-nil makes the function verbose.
-
-\(fn TRY-LIST &optional VERBOSE)" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hippie-exp" '("hippie-expand-" "he-" "try-")))
-
-;;;***
-
-;;;### (autoloads nil "hl-line" "hl-line.el" (0 0 0 0))
-;;; Generated autoloads from hl-line.el
-
-(autoload 'hl-line-mode "hl-line" "\
-Toggle highlighting of the current line (Hl-Line mode).
-With a prefix argument ARG, enable Hl-Line mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Hl-Line mode is a buffer-local minor mode.  If
-`hl-line-sticky-flag' is non-nil, Hl-Line mode highlights the
-line about the buffer's point in all windows.  Caveat: the
-buffer's point might be different from the point of a
-non-selected window.  Hl-Line mode uses the function
-`hl-line-highlight' on `post-command-hook' in this case.
-
-When `hl-line-sticky-flag' is nil, Hl-Line mode highlights the
-line about point in the selected window only.  In this case, it
-uses the function `hl-line-maybe-unhighlight' in
-addition to `hl-line-highlight' on `post-command-hook'.
-
-\(fn &optional ARG)" t nil)
-
-(defvar global-hl-line-mode nil "\
-Non-nil if Global Hl-Line mode is enabled.
-See the `global-hl-line-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-hl-line-mode'.")
-
-(custom-autoload 'global-hl-line-mode "hl-line" nil)
-
-(autoload 'global-hl-line-mode "hl-line" "\
-Toggle line highlighting in all buffers (Global Hl-Line mode).
-With a prefix argument ARG, enable Global Hl-Line mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-If `global-hl-line-sticky-flag' is non-nil, Global Hl-Line mode
-highlights the line about the current buffer's point in all live
-windows.
-
-Global-Hl-Line mode uses the functions `global-hl-line-highlight'
-and `global-hl-line-maybe-unhighlight' on `post-command-hook'.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hl-line" '("hl-line-" "global-hl-line-")))
-
-;;;***
-
-;;;### (autoloads nil "hmac-def" "net/hmac-def.el" (0 0 0 0))
-;;; Generated autoloads from net/hmac-def.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hmac-def" '("define-hmac-function")))
-
-;;;***
-
-;;;### (autoloads nil "hmac-md5" "net/hmac-md5.el" (0 0 0 0))
-;;; Generated autoloads from net/hmac-md5.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"hmac-md5" '("hmac-md5" "md5-binary")))
-
-;;;***
-
-;;;### (autoloads nil "holidays" "calendar/holidays.el" (0 0 0 0))
-;;; Generated autoloads from calendar/holidays.el
-
-(defvar holiday-general-holidays (mapcar 'purecopy '((holiday-fixed 1 1 "New 
Year's Day") (holiday-float 1 1 3 "Martin Luther King Day") (holiday-fixed 2 2 
"Groundhog Day") (holiday-fixed 2 14 "Valentine's Day") (holiday-float 2 1 3 
"President's Day") (holiday-fixed 3 17 "St. Patrick's Day") (holiday-fixed 4 1 
"April Fools' Day") (holiday-float 5 0 2 "Mother's Day") (holiday-float 5 1 -1 
"Memorial Day") (holiday-fixed 6 14 "Flag Day") (holiday-float 6 0 3 "Father's 
Day") (holiday-fixed 7 [...]
-General holidays.  Default value is for the United States.
-See the documentation for `calendar-holidays' for details.")
-
-(custom-autoload 'holiday-general-holidays "holidays" t)
-
-(put 'holiday-general-holidays 'risky-local-variable t)
-
-(defvar holiday-oriental-holidays (mapcar 'purecopy 
'((holiday-chinese-new-year) (if calendar-chinese-all-holidays-flag (append 
(holiday-chinese 1 15 "Lantern Festival") (holiday-chinese-qingming) 
(holiday-chinese 5 5 "Dragon Boat Festival") (holiday-chinese 7 7 "Double 
Seventh Festival") (holiday-chinese 8 15 "Mid-Autumn Festival") 
(holiday-chinese 9 9 "Double Ninth Festival") 
(holiday-chinese-winter-solstice))))) "\
-Oriental holidays.
-See the documentation for `calendar-holidays' for details.")
-
-(custom-autoload 'holiday-oriental-holidays "holidays" t)
-
-(put 'holiday-oriental-holidays 'risky-local-variable t)
-
-(defvar holiday-local-holidays nil "\
-Local holidays.
-See the documentation for `calendar-holidays' for details.")
-
-(custom-autoload 'holiday-local-holidays "holidays" t)
-
-(put 'holiday-local-holidays 'risky-local-variable t)
-
-(defvar holiday-other-holidays nil "\
-User defined holidays.
-See the documentation for `calendar-holidays' for details.")
-
-(custom-autoload 'holiday-other-holidays "holidays" t)
-
-(put 'holiday-other-holidays 'risky-local-variable t)
-
-(defvar holiday-hebrew-holidays (mapcar 'purecopy '((holiday-hebrew-passover) 
(holiday-hebrew-rosh-hashanah) (holiday-hebrew-hanukkah) (if 
calendar-hebrew-all-holidays-flag (append (holiday-hebrew-tisha-b-av) 
(holiday-hebrew-misc))))) "\
-Jewish holidays.
-See the documentation for `calendar-holidays' for details.")
-
-(custom-autoload 'holiday-hebrew-holidays "holidays" t)
-
-(put 'holiday-hebrew-holidays 'risky-local-variable t)
-
-(defvar holiday-christian-holidays (mapcar 'purecopy '((holiday-easter-etc) 
(holiday-fixed 12 25 "Christmas") (if calendar-christian-all-holidays-flag 
(append (holiday-fixed 1 6 "Epiphany") (holiday-julian 12 25 "Christmas (Julian 
calendar)") (holiday-greek-orthodox-easter) (holiday-fixed 8 15 "Assumption") 
(holiday-advent 0 "Advent"))))) "\
-Christian holidays.
-See the documentation for `calendar-holidays' for details.")
-
-(custom-autoload 'holiday-christian-holidays "holidays" t)
-
-(put 'holiday-christian-holidays 'risky-local-variable t)
-
-(defvar holiday-islamic-holidays (mapcar 'purecopy 
'((holiday-islamic-new-year) (holiday-islamic 9 1 "Ramadan Begins") (if 
calendar-islamic-all-holidays-flag (append (holiday-islamic 1 10 "Ashura") 
(holiday-islamic 3 12 "Mulad-al-Nabi") (holiday-islamic 7 26 "Shab-e-Mi'raj") 
(holiday-islamic 8 15 "Shab-e-Bara't") (holiday-islamic 9 27 "Shab-e Qadr") 
(holiday-islamic 10 1 "Id-al-Fitr") (holiday-islamic 12 10 "Id-al-Adha"))))) "\
-Islamic holidays.
-See the documentation for `calendar-holidays' for details.")
-
-(custom-autoload 'holiday-islamic-holidays "holidays" t)
-
-(put 'holiday-islamic-holidays 'risky-local-variable t)
-
-(defvar holiday-bahai-holidays (mapcar 'purecopy '((holiday-bahai-new-year) 
(holiday-bahai-ridvan) (holiday-fixed 5 23 "Declaration of the Báb") 
(holiday-fixed 5 29 "Ascension of Bahá’u’lláh") (holiday-fixed 7 9 "Martyrdom 
of the Báb") (holiday-fixed 10 20 "Birth of the Báb") (holiday-fixed 11 12 
"Birth of Bahá’u’lláh") (if calendar-bahai-all-holidays-flag (append 
(holiday-fixed 11 26 "Day of the Covenant") (holiday-fixed 11 28 "Ascension of 
`Abdu’l-Bahá"))))) "\
-Bahá’í holidays.
-See the documentation for `calendar-holidays' for details.")
-
-(custom-autoload 'holiday-bahai-holidays "holidays" t)
-
-(put 'holiday-bahai-holidays 'risky-local-variable t)
-
-(defvar holiday-solar-holidays (mapcar 'purecopy '((solar-equinoxes-solstices) 
(holiday-sexp calendar-daylight-savings-starts (format "Daylight Saving Time 
Begins %s" (solar-time-string (/ calendar-daylight-savings-starts-time (float 
60)) calendar-standard-time-zone-name))) (holiday-sexp 
calendar-daylight-savings-ends (format "Daylight Saving Time Ends %s" 
(solar-time-string (/ calendar-daylight-savings-ends-time (float 60)) 
calendar-daylight-time-zone-name))))) "\
-Sun-related holidays.
-See the documentation for `calendar-holidays' for details.")
-
-(custom-autoload 'holiday-solar-holidays "holidays" t)
-
-(put 'holiday-solar-holidays 'risky-local-variable t)
-
-(put 'calendar-holidays 'risky-local-variable t)
-
-(autoload 'holidays "holidays" "\
-Display the holidays for last month, this month, and next month.
-If called with an optional prefix argument ARG, prompts for month and year.
-This function is suitable for execution in a init file.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'list-holidays "holidays" "\
-Display holidays for years Y1 to Y2 (inclusive).
-Y2 defaults to Y1.  The optional list of holidays L defaults to
-`calendar-holidays'.  If you want to control what holidays are
-displayed, use a different list.  For example,
-
-  (list-holidays 2006 2006
-    (append holiday-general-holidays holiday-local-holidays))
-
-will display holidays for the year 2006 defined in the two
-mentioned lists, and nothing else.
-
-When called interactively, this command offers a choice of
-holidays, based on the variables `holiday-solar-holidays' etc.  See the
-documentation of `calendar-holidays' for a list of the variables
-that control the choices, as well as a description of the format
-of a holiday list.
-
-The optional LABEL is used to label the buffer created.
-
-\(fn Y1 &optional Y2 L LABEL)" t nil)
-
-(defalias 'holiday-list 'list-holidays)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"holidays" '("holiday-" "calendar-")))
-
-;;;***
-
-;;;### (autoloads nil "html2text" "net/html2text.el" (0 0 0 0))
-;;; Generated autoloads from net/html2text.el
-
-(autoload 'html2text "html2text" "\
-Convert HTML to plain text in the current buffer.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"html2text" '("html2text-")))
-
-;;;***
-
-;;;### (autoloads nil "htmlfontify" "htmlfontify.el" (0 0 0 0))
-;;; Generated autoloads from htmlfontify.el
-(push (purecopy '(htmlfontify 0 21)) package--builtin-versions)
-
-(autoload 'htmlfontify-buffer "htmlfontify" "\
-Create a new buffer, named for the current buffer + a .html extension,
-containing an inline CSS-stylesheet and formatted CSS-markup HTML
-that reproduces the look of the current Emacs buffer as closely
-as possible.
-
-Dangerous characters in the existing buffer are turned into HTML
-entities, so you should even be able to do HTML-within-HTML
-fontified display.
-
-You should, however, note that random control or non-ASCII
-characters such as ^L (U+000C FORM FEED (FF)) or ¤ (U+00A4
-CURRENCY SIGN) won't get mapped yet.
-
-If the SRCDIR and FILE arguments are set, lookup etags derived
-entries in the `hfy-tags-cache' and add HTML anchors and
-hyperlinks as appropriate.
-
-\(fn &optional SRCDIR FILE)" t nil)
-
-(autoload 'htmlfontify-copy-and-link-dir "htmlfontify" "\
-Trawl SRCDIR and write fontified-and-hyperlinked output in DSTDIR.
-F-EXT and L-EXT specify values for `hfy-extn' and `hfy-link-extn'.
-
-You may also want to set `hfy-page-header' and `hfy-page-footer'.
-
-\(fn SRCDIR DSTDIR &optional F-EXT L-EXT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"htmlfontify" '("hfy-" "htmlfontify-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ibuf-ext" "ibuf-ext.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from ibuf-ext.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ibuf-ext" '("ibuffer-" "filename" "shell-command-" "size" "alphabetic" 
"major-mode" "mode" "print" "predicate" "content" "name" "derived-mode" 
"used-mode" "query-replace" "rename-uniquely" "revert" "replace-regexp" 
"view-and-eval" "eval")))
-
-;;;***
-
-;;;### (autoloads nil "ibuf-macs" "ibuf-macs.el" (0 0 0 0))
-;;; Generated autoloads from ibuf-macs.el
-
-(autoload 'define-ibuffer-column "ibuf-macs" "\
-Define a column SYMBOL for use with `ibuffer-formats'.
-
-BODY will be called with `buffer' bound to the buffer object, and
-`mark' bound to the current mark on the buffer.  The original ibuffer
-buffer will be bound to `ibuffer-buf'.
-
-If NAME is given, it will be used as a title for the column.
-Otherwise, the title will default to a capitalized version of the
-SYMBOL's name.  PROPS is a plist of additional properties to add to
-the text, such as `mouse-face'.  And SUMMARIZER, if given, is a
-function which will be passed a list of all the strings in its column;
-it should return a string to display at the bottom.
-
-If HEADER-MOUSE-MAP is given, it will be used as a keymap for the
-title of the column.
-
-Note that this macro expands into a `defun' for a function named
-ibuffer-make-column-NAME.  If INLINE is non-nil, then the form will be
-inlined into the compiled format versions.  This means that if you
-change its definition, you should explicitly call
-`ibuffer-recompile-formats'.
-
-\(fn SYMBOL (&key NAME INLINE PROPS SUMMARIZER) &rest BODY)" nil t)
-
-(function-put 'define-ibuffer-column 'lisp-indent-function 'defun)
-
-(autoload 'define-ibuffer-sorter "ibuf-macs" "\
-Define a method of sorting named NAME.
-DOCUMENTATION is the documentation of the function, which will be called
-`ibuffer-do-sort-by-NAME'.
-DESCRIPTION is a short string describing the sorting method.
-
-For sorting, the forms in BODY will be evaluated with `a' bound to one
-buffer object, and `b' bound to another.  BODY should return a non-nil
-value if and only if `a' is \"less than\" `b'.
-
-\(fn NAME DOCUMENTATION (&key DESCRIPTION) &rest BODY)" nil t)
-
-(function-put 'define-ibuffer-sorter 'lisp-indent-function '1)
-
-(function-put 'define-ibuffer-sorter 'doc-string-elt '2)
-
-(autoload 'define-ibuffer-op "ibuf-macs" "\
-Generate a function which operates on a buffer.
-OP becomes the name of the function; if it doesn't begin with
-`ibuffer-do-', then that is prepended to it.
-When an operation is performed, this function will be called once for
-each marked buffer, with that buffer current.
-
-ARGS becomes the formal parameters of the function.
-DOCUMENTATION becomes the docstring of the function.
-INTERACTIVE becomes the interactive specification of the function.
-MARK describes which type of mark (:deletion, or nil) this operation
-uses.  :deletion means the function operates on buffers marked for
-deletion, otherwise it acts on normally marked buffers.
-MODIFIER-P describes how the function modifies buffers.  This is used
-to set the modification flag of the Ibuffer buffer itself.  Valid
-values are:
- nil - the function never modifiers buffers
- t - the function it always modifies buffers
- :maybe - attempt to discover this information by comparing the
-  buffer's modification flag.
-DANGEROUS is a boolean which should be set if the user should be
-prompted before performing this operation.
-OPSTRING is a string which will be displayed to the user after the
-operation is complete, in the form:
- \"Operation complete; OPSTRING x buffers\"
-ACTIVE-OPSTRING is a string which will be displayed to the user in a
-confirmation message, in the form:
- \"Really ACTIVE-OPSTRING x buffers?\"
-COMPLEX means this function is special; if COMPLEX is nil BODY
-evaluates once for each marked buffer, MBUF, with MBUF current
-and saving the point.  If COMPLEX is non-nil, BODY evaluates
-without requiring MBUF current.
-BODY define the operation; they are forms to evaluate per each
-marked buffer.  BODY is evaluated with `buf' bound to the
-buffer object.
-
-\(fn OP ARGS DOCUMENTATION (&key INTERACTIVE MARK MODIFIER-P DANGEROUS 
OPSTRING ACTIVE-OPSTRING COMPLEX) &rest BODY)" nil t)
-
-(function-put 'define-ibuffer-op 'lisp-indent-function '2)
-
-(function-put 'define-ibuffer-op 'doc-string-elt '3)
-
-(autoload 'define-ibuffer-filter "ibuf-macs" "\
-Define a filter named NAME.
-DOCUMENTATION is the documentation of the function.
-READER is a form which should read a qualifier from the user.
-DESCRIPTION is a short string describing the filter.
-
-BODY should contain forms which will be evaluated to test whether or
-not a particular buffer should be displayed or not.  The forms in BODY
-will be evaluated with BUF bound to the buffer object, and QUALIFIER
-bound to the current value of the filter.
-
-\(fn NAME DOCUMENTATION (&key READER DESCRIPTION) &rest BODY)" nil t)
-
-(function-put 'define-ibuffer-filter 'lisp-indent-function '2)
-
-(function-put 'define-ibuffer-filter 'doc-string-elt '2)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ibuf-macs" '("ibuffer-")))
-
-;;;***
-
-;;;### (autoloads nil "ibuffer" "ibuffer.el" (0 0 0 0))
-;;; Generated autoloads from ibuffer.el
-
-(autoload 'ibuffer-list-buffers "ibuffer" "\
-Display a list of buffers, in another window.
-If optional argument FILES-ONLY is non-nil, then add a filter for
-buffers which are visiting a file.
-
-\(fn &optional FILES-ONLY)" t nil)
-
-(autoload 'ibuffer-other-window "ibuffer" "\
-Like `ibuffer', but displayed in another window by default.
-If optional argument FILES-ONLY is non-nil, then add a filter for
-buffers which are visiting a file.
-
-\(fn &optional FILES-ONLY)" t nil)
-
-(autoload 'ibuffer "ibuffer" "\
-Begin using Ibuffer to edit a list of buffers.
-Type `h' after entering ibuffer for more information.
-
-All arguments are optional.
-OTHER-WINDOW-P says to use another window.
-NAME specifies the name of the buffer (defaults to \"*Ibuffer*\").
-QUALIFIERS is an initial set of filtering qualifiers to use;
-  see `ibuffer-filtering-qualifiers'.
-NOSELECT means don't select the Ibuffer buffer.
-SHRINK means shrink the buffer to minimal size.  The special
-  value `onewindow' means always use another window.
-FILTER-GROUPS is an initial set of filtering groups to use;
-  see `ibuffer-filter-groups'.
-FORMATS is the value to use for `ibuffer-formats'.
-  If specified, then the variable `ibuffer-formats' will have
-  that value locally in this buffer.
-
-\(fn &optional OTHER-WINDOW-P NAME QUALIFIERS NOSELECT SHRINK FILTER-GROUPS 
FORMATS)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ibuffer" '("ibuffer-" "filename" "process" "mark" "mod" "size" "name" "locked" 
"read-only")))
-
-;;;***
-
-;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from calendar/icalendar.el
-(push (purecopy '(icalendar 0 19)) package--builtin-versions)
-
-(autoload 'icalendar-export-file "icalendar" "\
-Export diary file to iCalendar format.
-All diary entries in the file DIARY-FILENAME are converted to iCalendar
-format.  The result is appended to the file ICAL-FILENAME.
-
-\(fn DIARY-FILENAME ICAL-FILENAME)" t nil)
-
-(autoload 'icalendar-export-region "icalendar" "\
-Export region in diary file to iCalendar format.
-All diary entries in the region from MIN to MAX in the current buffer are
-converted to iCalendar format.  The result is appended to the file
-ICAL-FILENAME.
-This function attempts to return t if something goes wrong.  In this
-case an error string which describes all the errors and problems is
-written into the buffer `*icalendar-errors*'.
-
-\(fn MIN MAX ICAL-FILENAME)" t nil)
-
-(autoload 'icalendar-import-file "icalendar" "\
-Import an iCalendar file and append to a diary file.
-Argument ICAL-FILENAME output iCalendar file.
-Argument DIARY-FILENAME input `diary-file'.
-Optional argument NON-MARKING determines whether events are created as
-non-marking or not.
-
-\(fn ICAL-FILENAME DIARY-FILENAME &optional NON-MARKING)" t nil)
-
-(autoload 'icalendar-import-buffer "icalendar" "\
-Extract iCalendar events from current buffer.
-
-This function searches the current buffer for the first iCalendar
-object, reads it and adds all VEVENT elements to the diary
-DIARY-FILE.
-
-It will ask for each appointment whether to add it to the diary
-unless DO-NOT-ASK is non-nil.  When called interactively,
-DO-NOT-ASK is nil, so that you are asked for each event.
-
-NON-MARKING determines whether diary events are created as
-non-marking.
-
-Return code t means that importing worked well, return code nil
-means that an error has occurred.  Error messages will be in the
-buffer `*icalendar-errors*'.
-
-\(fn &optional DIARY-FILE DO-NOT-ASK NON-MARKING)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"icalendar" '("icalendar-")))
-
-;;;***
-
-;;;### (autoloads nil "icomplete" "icomplete.el" (0 0 0 0))
-;;; Generated autoloads from icomplete.el
-
-(defvar icomplete-mode nil "\
-Non-nil if Icomplete mode is enabled.
-See the `icomplete-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `icomplete-mode'.")
-
-(custom-autoload 'icomplete-mode "icomplete" nil)
-
-(autoload 'icomplete-mode "icomplete" "\
-Toggle incremental minibuffer completion (Icomplete mode).
-With a prefix argument ARG, enable Icomplete mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-When this global minor mode is enabled, typing in the minibuffer
-continuously displays a list of possible completions that match
-the string you have typed.  See `icomplete-completions' for a
-description of how prospective completions are displayed.
-
-For more information, see Info node `(emacs)Icomplete'.
-For options you can set, `\\[customize-group] icomplete'.
-
-You can use the following key bindings to navigate and select
-completions:
-
-\\{icomplete-minibuffer-map}
-
-\(fn &optional ARG)" t nil)
-(when (locate-library "obsolete/iswitchb")
- (autoload 'iswitchb-mode "iswitchb" "Toggle Iswitchb mode." t)
- (make-obsolete 'iswitchb-mode
-   "use `icomplete-mode' or `ido-mode' instead." "24.4"))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"icomplete" '("icomplete-")))
-
-;;;***
-
-;;;### (autoloads nil "icon" "progmodes/icon.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/icon.el
-
-(autoload 'icon-mode "icon" "\
-Major mode for editing Icon code.
-Expression and list commands understand all Icon brackets.
-Tab indents for Icon code.
-Paragraphs are separated by blank lines only.
-Delete converts tabs to spaces as it moves back.
-\\{icon-mode-map}
-Variables controlling indentation style:
- icon-tab-always-indent
-    Non-nil means TAB in Icon mode should always reindent the current line,
-    regardless of where in the line point is when the TAB command is used.
- icon-auto-newline
-    Non-nil means automatically newline before and after braces
-    inserted in Icon code.
- icon-indent-level
-    Indentation of Icon statements within surrounding block.
-    The surrounding block's indentation is the indentation
-    of the line on which the open-brace appears.
- icon-continued-statement-offset
-    Extra indentation given to a substatement, such as the
-    then-clause of an if or body of a while.
- icon-continued-brace-offset
-    Extra indentation given to a brace that starts a substatement.
-    This is in addition to `icon-continued-statement-offset'.
- icon-brace-offset
-    Extra indentation for line if it starts with an open brace.
- icon-brace-imaginary-offset
-    An open brace following other text is treated as if it were
-    this far to the right of the start of its line.
-
-Turning on Icon mode calls the value of the variable `icon-mode-hook'
-with no args, if that value is non-nil.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"icon" '("indent-icon-exp" "icon-" "electric-icon-brace" "end-of-icon-defun" 
"beginning-of-icon-defun" "mark-icon-function" "calculate-icon-indent")))
-
-;;;***
-
-;;;### (autoloads nil "idlw-complete-structtag" 
"progmodes/idlw-complete-structtag.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from progmodes/idlw-complete-structtag.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"idlw-complete-structtag" '("idlwave-")))
-
-;;;***
-
-;;;### (autoloads nil "idlw-help" "progmodes/idlw-help.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from progmodes/idlw-help.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"idlw-help" '("idlwave-")))
-
-;;;***
-
-;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from progmodes/idlw-shell.el
-
-(autoload 'idlwave-shell "idlw-shell" "\
-Run an inferior IDL, with I/O through buffer `(idlwave-shell-buffer)'.
-If buffer exists but shell process is not running, start new IDL.
-If buffer exists and shell process is running, just switch to the buffer.
-
-When called with a prefix ARG, or when `idlwave-shell-use-dedicated-frame'
-is non-nil, the shell buffer and the source buffers will be in
-separate frames.
-
-The command to run comes from variable `idlwave-shell-explicit-file-name',
-with options taken from `idlwave-shell-command-line-options'.
-
-The buffer is put in `idlwave-shell-mode', providing commands for sending
-input and controlling the IDL job.  See help on `idlwave-shell-mode'.
-See also the variable `idlwave-shell-prompt-pattern'.
-
-\(Type \\[describe-mode] in the shell buffer for a list of commands.)
-
-\(fn &optional ARG QUICK)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"idlw-shell" '("idlwave-")))
-
-;;;***
-
-;;;### (autoloads nil "idlw-toolbar" "progmodes/idlw-toolbar.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from progmodes/idlw-toolbar.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"idlw-toolbar" '("idlwave-toolbar-")))
-
-;;;***
-
-;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/idlwave.el
-(push (purecopy '(idlwave 6 1 22)) package--builtin-versions)
-
-(autoload 'idlwave-mode "idlwave" "\
-Major mode for editing IDL source files (version 6.1_em22).
-
-The main features of this mode are
-
-1. Indentation and Formatting
-   --------------------------
-   Like other Emacs programming modes, C-j inserts a newline and indents.
-   TAB is used for explicit indentation of the current line.
-
-   To start a continuation line, use \\[idlwave-split-line].  This
-   function can also be used in the middle of a line to split the line
-   at that point.  When used inside a long constant string, the string
-   is split at that point with the `+' concatenation operator.
-
-   Comments are indented as follows:
-
-   `;;;' Indentation remains unchanged.
-   `;;'  Indent like the surrounding code
-   `;'   Indent to a minimum column.
-
-   The indentation of comments starting in column 0 is never changed.
-
-   Use \\[idlwave-fill-paragraph] to refill a paragraph inside a
-   comment.  The indentation of the second line of the paragraph
-   relative to the first will be retained.  Use
-   \\[idlwave-auto-fill-mode] to toggle auto-fill mode for these
-   comments.  When the variable `idlwave-fill-comment-line-only' is
-   nil, code can also be auto-filled and auto-indented.
-
-   To convert pre-existing IDL code to your formatting style, mark the
-   entire buffer with \\[mark-whole-buffer] and execute
-   \\[idlwave-expand-region-abbrevs].  Then mark the entire buffer
-   again followed by \\[indent-region] (`indent-region').
-
-2. Routine Info
-   ------------
-   IDLWAVE displays information about the calling sequence and the
-   accepted keyword parameters of a procedure or function with
-   \\[idlwave-routine-info].  \\[idlwave-find-module] jumps to the
-   source file of a module.  These commands know about system
-   routines, all routines in idlwave-mode buffers and (when the
-   idlwave-shell is active) about all modules currently compiled under
-   this shell.  It also makes use of pre-compiled or custom-scanned
-   user and library catalogs many popular libraries ship with by
-   default.  Use \\[idlwave-update-routine-info] to update this
-   information, which is also used for completion (see item 4).
-
-3. Online IDL Help
-   ---------------
-
-   \\[idlwave-context-help] displays the IDL documentation relevant
-   for the system variable, keyword, or routines at point.  A single
-   key stroke gets you directly to the right place in the docs.  See
-   the manual to configure where and how the HTML help is displayed.
-
-4. Completion
-   ----------
-   \\[idlwave-complete] completes the names of procedures, functions
-   class names, keyword parameters, system variables and tags, class
-   tags, structure tags, filenames and much more.  It is context
-   sensitive and figures out what is expected at point.  Lower case
-   strings are completed in lower case, other strings in mixed or
-   upper case.
-
-5. Code Templates and Abbreviations
-   --------------------------------
-   Many Abbreviations are predefined to expand to code fragments and templates.
-   The abbreviations start generally with a `\\'.  Some examples:
-
-   \\pr        PROCEDURE template
-   \\fu        FUNCTION template
-   \\c         CASE statement template
-   \\sw        SWITCH statement template
-   \\f         FOR loop template
-   \\r         REPEAT Loop template
-   \\w         WHILE loop template
-   \\i         IF statement template
-   \\elif      IF-ELSE statement template
-   \\b         BEGIN
-
-   For a full list, use \\[idlwave-list-abbrevs].  Some templates also
-   have direct keybindings - see the list of keybindings below.
-
-   \\[idlwave-doc-header] inserts a documentation header at the
-   beginning of the current program unit (pro, function or main).
-   Change log entries can be added to the current program unit with
-   \\[idlwave-doc-modification].
-
-6. Automatic Case Conversion
-   -------------------------
-   The case of reserved words and some abbrevs is controlled by
-   `idlwave-reserved-word-upcase' and `idlwave-abbrev-change-case'.
-
-7. Automatic END completion
-   ------------------------
-   If the variable `idlwave-expand-generic-end' is non-nil, each END typed
-   will be converted to the specific version, like ENDIF, ENDFOR, etc.
-
-8. Hooks
-   -----
-   Loading idlwave.el runs `idlwave-load-hook'.
-   Turning on `idlwave-mode' runs `idlwave-mode-hook'.
-
-9. Documentation and Customization
-   -------------------------------
-   Info documentation for this package is available.  Use
-   \\[idlwave-info] to display (complain to your sysadmin if that does
-   not work).  For Postscript, PDF, and HTML versions of the
-   documentation, check IDLWAVE's homepage at URL
-   `http://github.com/jdtsmith/idlwave'.
-   IDLWAVE has customize support - see the group `idlwave'.
-
-10.Keybindings
-   -----------
-   Here is a list of all keybindings of this mode.
-   If some of the key bindings below show with ??, use \\[describe-key]
-   followed by the key sequence to see what the key sequence does.
-
-\\{idlwave-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"idlwave" '("idlwave-")))
-
-;;;***
-
-;;;### (autoloads nil "ido" "ido.el" (0 0 0 0))
-;;; Generated autoloads from ido.el
-
-(defvar ido-mode nil "\
-Determines for which buffer/file Ido should be enabled.
-The following values are possible:
-- `buffer': Turn only on Ido buffer behavior (switching, killing,
-  displaying...)
-- `file': Turn only on Ido file behavior (finding, writing, inserting...)
-- `both': Turn on Ido buffer and file behavior.
--  nil: Turn off any Ido switching.
-
-Setting this variable directly does not take effect;
-use either \\[customize] or the function `ido-mode'.")
-
-(custom-autoload 'ido-mode "ido" nil)
-
-(autoload 'ido-mode "ido" "\
-Toggle Ido mode on or off.
-With ARG, turn Ido mode on if arg is positive, off otherwise.
-Turning on Ido mode will remap (via a minor-mode keymap) the default
-keybindings for the `find-file' and `switch-to-buffer' families of
-commands to the Ido versions of these functions.
-However, if ARG arg equals `files', remap only commands for files, or
-if it equals `buffers', remap only commands for buffer switching.
-This function also adds a hook to the minibuffer.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'ido-switch-buffer "ido" "\
-Switch to another buffer.
-The buffer is displayed according to `ido-default-buffer-method' -- the
-default is to show it in the same window, unless it is already visible
-in another frame.
-
-As you type in a string, all of the buffers matching the string are
-displayed if substring-matching is used (default).  Look at
-`ido-enable-prefix' and `ido-toggle-prefix'.  When you have found the
-buffer you want, it can then be selected.  As you type, most keys have
-their normal keybindings, except for the following: 
\\<ido-buffer-completion-map>
-
-RET    Select the buffer at the front of the list of matches.
-       If the list is empty, possibly prompt to create new buffer.
-
-\\[ido-select-text]    Use the current input string verbatim.
-
-\\[ido-next-match]     Put the first element at the end of the list.
-\\[ido-prev-match]     Put the last element at the start of the list.
-\\[ido-complete]       Complete a common suffix to the current string that 
matches
-       all buffers.  If there is only one match, select that buffer.
-       If there is no common suffix, show a list of all matching buffers
-       in a separate window.
-\\[ido-edit-input]     Edit input string.
-\\[ido-fallback-command]       Fallback to non-ido version of current command.
-\\[ido-toggle-regexp]  Toggle regexp searching.
-\\[ido-toggle-prefix]  Toggle between substring and prefix matching.
-\\[ido-toggle-case]    Toggle case-sensitive searching of buffer names.
-\\[ido-completion-help]        Show list of matching buffers in separate 
window.
-\\[ido-enter-find-file]        Drop into `ido-find-file'.
-\\[ido-kill-buffer-at-head]    Kill buffer at head of buffer list.
-\\[ido-toggle-ignore]  Toggle ignoring buffers listed in `ido-ignore-buffers'.
-
-\(fn)" t nil)
-
-(autoload 'ido-switch-buffer-other-window "ido" "\
-Switch to another buffer and show it in another window.
-The buffer name is selected interactively by typing a substring.
-For details of keybindings, see `ido-switch-buffer'.
-
-\(fn)" t nil)
-
-(autoload 'ido-display-buffer "ido" "\
-Display a buffer in another window but don't select it.
-The buffer name is selected interactively by typing a substring.
-For details of keybindings, see `ido-switch-buffer'.
-
-\(fn)" t nil)
-
-(autoload 'ido-kill-buffer "ido" "\
-Kill a buffer.
-The buffer name is selected interactively by typing a substring.
-For details of keybindings, see `ido-switch-buffer'.
-
-\(fn)" t nil)
-
-(autoload 'ido-insert-buffer "ido" "\
-Insert contents of a buffer in current buffer after point.
-The buffer name is selected interactively by typing a substring.
-For details of keybindings, see `ido-switch-buffer'.
-
-\(fn)" t nil)
-
-(autoload 'ido-switch-buffer-other-frame "ido" "\
-Switch to another buffer and show it in another frame.
-The buffer name is selected interactively by typing a substring.
-For details of keybindings, see `ido-switch-buffer'.
-
-\(fn)" t nil)
-
-(autoload 'ido-find-file-in-dir "ido" "\
-Switch to another file starting from DIR.
-
-\(fn DIR)" t nil)
-
-(autoload 'ido-find-file "ido" "\
-Edit file with name obtained via minibuffer.
-The file is displayed according to `ido-default-file-method' -- the
-default is to show it in the same window, unless it is already visible
-in another frame.
-
-The file name is selected interactively by typing a substring.  As you
-type in a string, all of the filenames matching the string are displayed
-if substring-matching is used (default).  Look at `ido-enable-prefix' and
-`ido-toggle-prefix'.  When you have found the filename you want, it can
-then be selected.  As you type, most keys have their normal keybindings,
-except for the following: \\<ido-file-completion-map>
-
-RET    Select the file at the front of the list of matches.
-       If the list is empty, possibly prompt to create new file.
-
-\\[ido-select-text]    Use the current input string verbatim.
-
-\\[ido-next-match]     Put the first element at the end of the list.
-\\[ido-prev-match]     Put the last element at the start of the list.
-\\[ido-complete]       Complete a common suffix to the current string that 
matches
-       all files.  If there is only one match, select that file.
-       If there is no common suffix, show a list of all matching files
-       in a separate window.
-\\[ido-magic-delete-char]      Open the specified directory in Dired mode.
-\\[ido-edit-input]     Edit input string (including directory).
-\\[ido-prev-work-directory]    Go to previous directory in work directory 
history.
-\\[ido-next-work-directory]    Go to next directory in work directory history.
-\\[ido-merge-work-directories] Search for file in the work directory history.
-\\[ido-forget-work-directory]  Remove current directory from the work 
directory history.
-\\[ido-prev-work-file] Cycle to previous file in work file history.
-\\[ido-next-work-file] Cycle to next file in work file history.
-\\[ido-wide-find-file-or-pop-dir]      Prompt for a file and use find to 
locate it.
-\\[ido-wide-find-dir-or-delete-dir]    Prompt for a directory and use find to 
locate it.
-\\[ido-make-directory] Prompt for a directory to create in current directory.
-\\[ido-fallback-command]       Fallback to non-Ido version of current command.
-\\[ido-toggle-regexp]  Toggle regexp searching.
-\\[ido-toggle-prefix]  Toggle between substring and prefix matching.
-\\[ido-toggle-case]    Toggle case-sensitive searching of file names.
-\\[ido-toggle-literal] Toggle literal reading of this file.
-\\[ido-completion-help]        Show list of matching files in separate window.
-\\[ido-toggle-ignore]  Toggle ignoring files listed in `ido-ignore-files'.
-
-\(fn)" t nil)
-
-(autoload 'ido-find-file-other-window "ido" "\
-Switch to another file and show it in another window.
-The file name is selected interactively by typing a substring.
-For details of keybindings, see `ido-find-file'.
-
-\(fn)" t nil)
-
-(autoload 'ido-find-alternate-file "ido" "\
-Switch to another file and show it in another window.
-The file name is selected interactively by typing a substring.
-For details of keybindings, see `ido-find-file'.
-
-\(fn)" t nil)
-
-(autoload 'ido-find-file-read-only "ido" "\
-Edit file read-only with name obtained via minibuffer.
-The file name is selected interactively by typing a substring.
-For details of keybindings, see `ido-find-file'.
-
-\(fn)" t nil)
-
-(autoload 'ido-find-file-read-only-other-window "ido" "\
-Edit file read-only in other window with name obtained via minibuffer.
-The file name is selected interactively by typing a substring.
-For details of keybindings, see `ido-find-file'.
-
-\(fn)" t nil)
-
-(autoload 'ido-find-file-read-only-other-frame "ido" "\
-Edit file read-only in other frame with name obtained via minibuffer.
-The file name is selected interactively by typing a substring.
-For details of keybindings, see `ido-find-file'.
-
-\(fn)" t nil)
-
-(autoload 'ido-display-file "ido" "\
-Display a file in another window but don't select it.
-The file name is selected interactively by typing a substring.
-For details of keybindings, see `ido-find-file'.
-
-\(fn)" t nil)
-
-(autoload 'ido-find-file-other-frame "ido" "\
-Switch to another file and show it in another frame.
-The file name is selected interactively by typing a substring.
-For details of keybindings, see `ido-find-file'.
-
-\(fn)" t nil)
-
-(autoload 'ido-write-file "ido" "\
-Write current buffer to a file.
-The file name is selected interactively by typing a substring.
-For details of keybindings, see `ido-find-file'.
-
-\(fn)" t nil)
-
-(autoload 'ido-insert-file "ido" "\
-Insert contents of file in current buffer.
-The file name is selected interactively by typing a substring.
-For details of keybindings, see `ido-find-file'.
-
-\(fn)" t nil)
-
-(autoload 'ido-dired "ido" "\
-Call `dired' the Ido way.
-The directory is selected interactively by typing a substring.
-For details of keybindings, see `ido-find-file'.
-
-\(fn)" t nil)
-
-(autoload 'ido-read-buffer "ido" "\
-Ido replacement for the built-in `read-buffer'.
-Return the name of a buffer selected.
-PROMPT is the prompt to give to the user.  DEFAULT if given is the default
-buffer to be selected, which will go to the front of the list.
-If REQUIRE-MATCH is non-nil, an existing buffer must be selected.
-
-\(fn PROMPT &optional DEFAULT REQUIRE-MATCH PREDICATE)" nil nil)
-
-(autoload 'ido-read-file-name "ido" "\
-Ido replacement for the built-in `read-file-name'.
-Read file name, prompting with PROMPT and completing in directory DIR.
-See `read-file-name' for additional parameters.
-
-\(fn PROMPT &optional DIR DEFAULT-FILENAME MUSTMATCH INITIAL PREDICATE)" nil 
nil)
-
-(autoload 'ido-read-directory-name "ido" "\
-Ido replacement for the built-in `read-directory-name'.
-Read directory name, prompting with PROMPT and completing in directory DIR.
-See `read-directory-name' for additional parameters.
-
-\(fn PROMPT &optional DIR DEFAULT-DIRNAME MUSTMATCH INITIAL)" nil nil)
-
-(autoload 'ido-completing-read "ido" "\
-Ido replacement for the built-in `completing-read'.
-Read a string in the minibuffer with Ido-style completion.
-PROMPT is a string to prompt with; normally it ends in a colon and a space.
-CHOICES is a list of strings which are the possible completions.
-PREDICATE and INHERIT-INPUT-METHOD are currently ignored; they are included
- to be compatible with `completing-read'.
-If REQUIRE-MATCH is non-nil, the user is not allowed to exit unless
- the input is (or completes to) an element of CHOICES or is null.
- If the input is null, `ido-completing-read' returns DEF, or an empty
- string if DEF is nil, regardless of the value of REQUIRE-MATCH.
-If INITIAL-INPUT is non-nil, insert it in the minibuffer initially,
- with point positioned at the end.
-HIST, if non-nil, specifies a history list.
-DEF, if non-nil, is the default value.
-
-\(fn PROMPT CHOICES &optional PREDICATE REQUIRE-MATCH INITIAL-INPUT HIST DEF 
INHERIT-INPUT-METHOD)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ido" '("ido-")))
-
-;;;***
-
-;;;### (autoloads nil "ielm" "ielm.el" (0 0 0 0))
-;;; Generated autoloads from ielm.el
-
-(autoload 'ielm "ielm" "\
-Interactively evaluate Emacs Lisp expressions.
-Switches to the buffer `*ielm*', or creates it if it does not exist.
-See `inferior-emacs-lisp-mode' for details.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ielm" '("inferior-emacs-lisp-mode" "ielm-")))
-
-;;;***
-
-;;;### (autoloads nil "ietf-drums" "mail/ietf-drums.el" (0 0 0 0))
-;;; Generated autoloads from mail/ietf-drums.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ietf-drums" '("ietf-drums-")))
-
-;;;***
-
-;;;### (autoloads nil "iimage" "iimage.el" (0 0 0 0))
-;;; Generated autoloads from iimage.el
-
-(define-obsolete-function-alias 'turn-on-iimage-mode 'iimage-mode "24.1")
-
-(autoload 'iimage-mode "iimage" "\
-Toggle Iimage mode on or off.
-With a prefix argument ARG, enable Iimage mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'.
-\\{iimage-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"iimage" '("iimage-" "turn-off-iimage-mode")))
-
-;;;***
-
-;;;### (autoloads nil "image" "image.el" (0 0 0 0))
-;;; Generated autoloads from image.el
-
-(autoload 'image-type-from-data "image" "\
-Determine the image type from image data DATA.
-Value is a symbol specifying the image type or nil if type cannot
-be determined.
-
-\(fn DATA)" nil nil)
-
-(autoload 'image-type-from-buffer "image" "\
-Determine the image type from data in the current buffer.
-Value is a symbol specifying the image type or nil if type cannot
-be determined.
-
-\(fn)" nil nil)
-
-(autoload 'image-type-from-file-header "image" "\
-Determine the type of image file FILE from its first few bytes.
-Value is a symbol specifying the image type, or nil if type cannot
-be determined.
-
-\(fn FILE)" nil nil)
-
-(autoload 'image-type-from-file-name "image" "\
-Determine the type of image file FILE from its name.
-Value is a symbol specifying the image type, or nil if type cannot
-be determined.
-
-\(fn FILE)" nil nil)
-
-(autoload 'image-type "image" "\
-Determine and return image type.
-SOURCE is an image file name or image data.
-Optional TYPE is a symbol describing the image type.  If TYPE is omitted
-or nil, try to determine the image type from its first few bytes
-of image data.  If that doesn't work, and SOURCE is a file name,
-use its file extension as image type.
-Optional DATA-P non-nil means SOURCE is a string containing image data.
-
-\(fn SOURCE &optional TYPE DATA-P)" nil nil)
-
-(autoload 'image-type-available-p "image" "\
-Return non-nil if image type TYPE is available.
-Image types are symbols like `xbm' or `jpeg'.
-
-\(fn TYPE)" nil nil)
-
-(autoload 'image-type-auto-detected-p "image" "\
-Return t if the current buffer contains an auto-detectable image.
-This function is intended to be used from `magic-fallback-mode-alist'.
-
-The buffer is considered to contain an auto-detectable image if
-its beginning matches an image type in `image-type-header-regexps',
-and that image type is present in `image-type-auto-detectable' with a
-non-nil value.  If that value is non-nil, but not t, then the image type
-must be available.
-
-\(fn)" nil nil)
-
-(autoload 'create-image "image" "\
-Create an image.
-FILE-OR-DATA is an image file name or image data.
-Optional TYPE is a symbol describing the image type.  If TYPE is omitted
-or nil, try to determine the image type from its first few bytes
-of image data.  If that doesn't work, and FILE-OR-DATA is a file name,
-use its file extension as image type.
-Optional DATA-P non-nil means FILE-OR-DATA is a string containing image data.
-Optional PROPS are additional image attributes to assign to the image,
-like, e.g. `:mask MASK'.
-Value is the image created, or nil if images of type TYPE are not supported.
-
-Images should not be larger than specified by `max-image-size'.
-
-Image file names that are not absolute are searched for in the
-\"images\" sub-directory of `data-directory' and
-`x-bitmap-file-path' (in that order).
-
-\(fn FILE-OR-DATA &optional TYPE DATA-P &rest PROPS)" nil nil)
-
-(autoload 'put-image "image" "\
-Put image IMAGE in front of POS in the current buffer.
-IMAGE must be an image created with `create-image' or `defimage'.
-IMAGE is displayed by putting an overlay into the current buffer with a
-`before-string' STRING that has a `display' property whose value is the
-image.  STRING is defaulted if you omit it.
-The overlay created will have the `put-image' property set to t.
-POS may be an integer or marker.
-AREA is where to display the image.  AREA nil or omitted means
-display it in the text area, a value of `left-margin' means
-display it in the left marginal area, a value of `right-margin'
-means display it in the right marginal area.
-
-\(fn IMAGE POS &optional STRING AREA)" nil nil)
-
-(autoload 'insert-image "image" "\
-Insert IMAGE into current buffer at point.
-IMAGE is displayed by inserting STRING into the current buffer
-with a `display' property whose value is the image.  STRING
-defaults to a single space if you omit it.
-AREA is where to display the image.  AREA nil or omitted means
-display it in the text area, a value of `left-margin' means
-display it in the left marginal area, a value of `right-margin'
-means display it in the right marginal area.
-SLICE specifies slice of IMAGE to insert.  SLICE nil or omitted
-means insert whole image.  SLICE is a list (X Y WIDTH HEIGHT)
-specifying the X and Y positions and WIDTH and HEIGHT of image area
-to insert.  A float value 0.0 - 1.0 means relative to the width or
-height of the image; integer values are taken as pixel values.
-
-\(fn IMAGE &optional STRING AREA SLICE)" nil nil)
-
-(autoload 'insert-sliced-image "image" "\
-Insert IMAGE into current buffer at point.
-IMAGE is displayed by inserting STRING into the current buffer
-with a `display' property whose value is the image.  The default
-STRING is a single space.
-AREA is where to display the image.  AREA nil or omitted means
-display it in the text area, a value of `left-margin' means
-display it in the left marginal area, a value of `right-margin'
-means display it in the right marginal area.
-The image is automatically split into ROWS x COLS slices.
-
-\(fn IMAGE &optional STRING AREA ROWS COLS)" nil nil)
-
-(autoload 'remove-images "image" "\
-Remove images between START and END in BUFFER.
-Remove only images that were put in BUFFER with calls to `put-image'.
-BUFFER nil or omitted means use the current buffer.
-
-\(fn START END &optional BUFFER)" nil nil)
-
-(autoload 'find-image "image" "\
-Find an image, choosing one of a list of image specifications.
-
-SPECS is a list of image specifications.
-
-Each image specification in SPECS is a property list.  The contents of
-a specification are image type dependent.  All specifications must at
-least contain the properties `:type TYPE' and either `:file FILE' or
-`:data DATA', where TYPE is a symbol specifying the image type,
-e.g. `xbm', FILE is the file to load the image from, and DATA is a
-string containing the actual image data.  The specification whose TYPE
-is supported, and FILE exists, is used to construct the image
-specification to be returned.  Return nil if no specification is
-satisfied.
-
-The image is looked for in `image-load-path'.
-
-Image files should not be larger than specified by `max-image-size'.
-
-\(fn SPECS)" nil nil)
-
-(autoload 'defimage "image" "\
-Define SYMBOL as an image, and return SYMBOL.
-
-SPECS is a list of image specifications.  DOC is an optional
-documentation string.
-
-Each image specification in SPECS is a property list.  The contents of
-a specification are image type dependent.  All specifications must at
-least contain the properties `:type TYPE' and either `:file FILE' or
-`:data DATA', where TYPE is a symbol specifying the image type,
-e.g. `xbm', FILE is the file to load the image from, and DATA is a
-string containing the actual image data.  The first image
-specification whose TYPE is supported, and FILE exists, is used to
-define SYMBOL.
-
-Example:
-
-   (defimage test-image ((:type xpm :file \"~/test1.xpm\")
-                         (:type xbm :file \"~/test1.xbm\")))
-
-\(fn SYMBOL SPECS &optional DOC)" nil t)
-
-(function-put 'defimage 'doc-string-elt '3)
-
-(autoload 'imagemagick-register-types "image" "\
-Register file types that can be handled by ImageMagick.
-This function is called at startup, after loading the init file.
-It registers the ImageMagick types returned by `imagemagick-filter-types'.
-
-Registered image types are added to `auto-mode-alist', so that
-Emacs visits them in Image mode.  They are also added to
-`image-type-file-name-regexps', so that the `image-type' function
-recognizes these files as having image type `imagemagick'.
-
-If Emacs is compiled without ImageMagick support, this does nothing.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"image" '("image")))
-
-;;;***
-
-;;;### (autoloads nil "image-dired" "image-dired.el" (0 0 0 0))
-;;; Generated autoloads from image-dired.el
-(push (purecopy '(image-dired 0 4 11)) package--builtin-versions)
-
-(autoload 'image-dired-dired-toggle-marked-thumbs "image-dired" "\
-Toggle thumbnails in front of file names in the dired buffer.
-If no marked file could be found, insert or hide thumbnails on the
-current line.  ARG, if non-nil, specifies the files to use instead
-of the marked files.  If ARG is an integer, use the next ARG (or
-previous -ARG, if ARG<0) files.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'image-dired-dired-with-window-configuration "image-dired" "\
-Open directory DIR and create a default window configuration.
-
-Convenience command that:
-
- - Opens dired in folder DIR
- - Splits windows in most useful (?) way
- - Set `truncate-lines' to t
-
-After the command has finished, you would typically mark some
-image files in dired and type
-\\[image-dired-display-thumbs] (`image-dired-display-thumbs').
-
-If called with prefix argument ARG, skip splitting of windows.
-
-The current window configuration is saved and can be restored by
-calling `image-dired-restore-window-configuration'.
-
-\(fn DIR &optional ARG)" t nil)
-
-(autoload 'image-dired-display-thumbs "image-dired" "\
-Display thumbnails of all marked files, in `image-dired-thumbnail-buffer'.
-If a thumbnail image does not exist for a file, it is created on the
-fly.  With prefix argument ARG, display only thumbnail for file at
-point (this is useful if you have marked some files but want to show
-another one).
-
-Recommended usage is to split the current frame horizontally so that
-you have the dired buffer in the left window and the
-`image-dired-thumbnail-buffer' buffer in the right window.
-
-With optional argument APPEND, append thumbnail to thumbnail buffer
-instead of erasing it first.
-
-Optional argument DO-NOT-POP controls if `pop-to-buffer' should be
-used or not.  If non-nil, use `display-buffer' instead of
-`pop-to-buffer'.  This is used from functions like
-`image-dired-next-line-and-display' and
-`image-dired-previous-line-and-display' where we do not want the
-thumbnail buffer to be selected.
-
-\(fn &optional ARG APPEND DO-NOT-POP)" t nil)
-
-(autoload 'image-dired-show-all-from-dir "image-dired" "\
-Make a preview buffer for all images in DIR and display it.
-If the number of files in DIR matching `image-file-name-regexp'
-exceeds `image-dired-show-all-from-dir-max-files', a warning will be
-displayed.
-
-\(fn DIR)" t nil)
-
-(defalias 'image-dired 'image-dired-show-all-from-dir)
-
-(define-obsolete-function-alias 'tumme 'image-dired "24.4")
-
-(autoload 'image-dired-tag-files "image-dired" "\
-Tag marked file(s) in dired.  With prefix ARG, tag file at point.
-
-\(fn ARG)" t nil)
-
-(autoload 'image-dired-delete-tag "image-dired" "\
-Remove tag for selected file(s).
-With prefix argument ARG, remove tag from file at point.
-
-\(fn ARG)" t nil)
-
-(autoload 'image-dired-jump-thumbnail-buffer "image-dired" "\
-Jump to thumbnail buffer.
-
-\(fn)" t nil)
-
-(autoload 'image-dired-setup-dired-keybindings "image-dired" "\
-Setup easy-to-use keybindings for the commands to be used in dired mode.
-Note that n, p and <down> and <up> will be hijacked and bound to
-`image-dired-dired-x-line'.
-
-\(fn)" t nil)
-
-(autoload 'image-dired-display-thumbs-append "image-dired" "\
-Append thumbnails to `image-dired-thumbnail-buffer'.
-
-\(fn)" t nil)
-
-(autoload 'image-dired-display-thumb "image-dired" "\
-Shorthand for `image-dired-display-thumbs' with prefix argument.
-
-\(fn)" t nil)
-
-(autoload 'image-dired-dired-display-external "image-dired" "\
-Display file at point using an external viewer.
-
-\(fn)" t nil)
-
-(autoload 'image-dired-dired-display-image "image-dired" "\
-Display current image file.
-See documentation for `image-dired-display-image' for more information.
-With prefix argument ARG, display image in its original size.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'image-dired-dired-comment-files "image-dired" "\
-Add comment to current or marked files in dired.
-
-\(fn)" t nil)
-
-(autoload 'image-dired-mark-tagged-files "image-dired" "\
-Use regexp to mark files with matching tag.
-A `tag' is a keyword, a piece of meta data, associated with an
-image file and stored in image-dired's database file.  This command
-lets you input a regexp and this will be matched against all tags
-on all image files in the database file.  The files that have a
-matching tag will be marked in the dired buffer.
-
-\(fn)" t nil)
-
-(autoload 'image-dired-dired-edit-comment-and-tags "image-dired" "\
-Edit comment and tags of current or marked image files.
-Edit comment and tags for all marked image files in an
-easy-to-use form.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"image-dired" '("image-dired-")))
-
-;;;***
-
-;;;### (autoloads nil "image-file" "image-file.el" (0 0 0 0))
-;;; Generated autoloads from image-file.el
-
-(defvar image-file-name-extensions (purecopy '("png" "jpeg" "jpg" "gif" "tiff" 
"tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm" "svg")) "\
-A list of image-file filename extensions.
-Filenames having one of these extensions are considered image files,
-in addition to those matching `image-file-name-regexps'.
-
-See `auto-image-file-mode'; if `auto-image-file-mode' is enabled,
-setting this variable directly does not take effect unless
-`auto-image-file-mode' is re-enabled; this happens automatically when
-the variable is set using \\[customize].")
-
-(custom-autoload 'image-file-name-extensions "image-file" nil)
-
-(defvar image-file-name-regexps nil "\
-List of regexps matching image-file filenames.
-Filenames matching one of these regexps are considered image files,
-in addition to those with an extension in `image-file-name-extensions'.
-
-See function `auto-image-file-mode'; if `auto-image-file-mode' is
-enabled, setting this variable directly does not take effect unless
-`auto-image-file-mode' is re-enabled; this happens automatically when
-the variable is set using \\[customize].")
-
-(custom-autoload 'image-file-name-regexps "image-file" nil)
-
-(autoload 'image-file-name-regexp "image-file" "\
-Return a regular expression matching image-file filenames.
-
-\(fn)" nil nil)
-
-(autoload 'insert-image-file "image-file" "\
-Insert the image file FILE into the current buffer.
-Optional arguments VISIT, BEG, END, and REPLACE are interpreted as for
-the command `insert-file-contents'.
-
-\(fn FILE &optional VISIT BEG END REPLACE)" nil nil)
-
-(defvar auto-image-file-mode nil "\
-Non-nil if Auto-Image-File mode is enabled.
-See the `auto-image-file-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `auto-image-file-mode'.")
-
-(custom-autoload 'auto-image-file-mode "image-file" nil)
-
-(autoload 'auto-image-file-mode "image-file" "\
-Toggle visiting of image files as images (Auto Image File mode).
-With a prefix argument ARG, enable Auto Image File mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-An image file is one whose name has an extension in
-`image-file-name-extensions', or matches a regexp in
-`image-file-name-regexps'.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"image-file" '("image-file-")))
-
-;;;***
-
-;;;### (autoloads nil "image-mode" "image-mode.el" (0 0 0 0))
-;;; Generated autoloads from image-mode.el
-
-(autoload 'image-mode "image-mode" "\
-Major mode for image files.
-You can use \\<image-mode-map>\\[image-toggle-display] or 
\\<image-mode-map>\\[image-toggle-hex-display]
-to toggle between display as an image and display as text or hex.
-
-Key bindings:
-\\{image-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'image-minor-mode "image-mode" "\
-Toggle Image minor mode in this buffer.
-With a prefix argument ARG, enable Image minor mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Image minor mode provides the key \\<image-mode-map>\\[image-toggle-display],
-to switch back to `image-mode' and display an image file as the
-actual image.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'image-mode-to-text "image-mode" "\
-Set a non-image mode as major mode in combination with image minor mode.
-A non-mage major mode found from `auto-mode-alist' or fundamental mode
-displays an image file as text.
-
-\(fn)" nil nil)
-
-(autoload 'image-bookmark-jump "image-mode" "\
-
-
-\(fn BMK)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"image-mode" '("image-")))
-
-;;;***
-
-;;;### (autoloads nil "imap" "net/imap.el" (0 0 0 0))
-;;; Generated autoloads from net/imap.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"imap" '("imap-")))
-
-;;;***
-
-;;;### (autoloads nil "imenu" "imenu.el" (0 0 0 0))
-;;; Generated autoloads from imenu.el
-
-(defvar imenu-sort-function nil "\
-The function to use for sorting the index mouse-menu.
-
-Affects only the mouse index menu.
-
-Set this to nil if you don't want any sorting (faster).
-The items in the menu are then presented in the order they were found
-in the buffer.
-
-Set it to `imenu--sort-by-name' if you want alphabetic sorting.
-
-The function should take two arguments and return t if the first
-element should come before the second.  The arguments are cons cells;
-\(NAME . POSITION).  Look at `imenu--sort-by-name' for an example.")
-
-(custom-autoload 'imenu-sort-function "imenu" t)
-
-(defvar imenu-generic-expression nil "\
-List of definition matchers for creating an Imenu index.
-Each element of this list should have the form
-
-  (MENU-TITLE REGEXP INDEX [FUNCTION] [ARGUMENTS...])
-
-MENU-TITLE should be nil (in which case the matches for this
-element are put in the top level of the buffer index) or a
-string (which specifies the title of a submenu into which the
-matches are put).
-REGEXP is a regular expression matching a definition construct
-which is to be displayed in the menu.  REGEXP may also be a
-function, called without arguments.  It is expected to search
-backwards.  It must return true and set `match-data' if it finds
-another element.
-INDEX is an integer specifying which subexpression of REGEXP
-matches the definition's name; this subexpression is displayed as
-the menu item.
-FUNCTION, if present, specifies a function to call when the index
-item is selected by the user.  This function is called with
-arguments consisting of the item name, the buffer position, and
-the ARGUMENTS.
-
-The variable `imenu-case-fold-search' determines whether or not
-the regexp matches are case sensitive, and `imenu-syntax-alist'
-can be used to alter the syntax table for the search.
-
-If non-nil this pattern is passed to `imenu--generic-function' to
-create a buffer index.
-
-For example, see the value of `fortran-imenu-generic-expression'
-used by `fortran-mode' with `imenu-syntax-alist' set locally to
-give the characters which normally have \"symbol\" syntax
-\"word\" syntax during matching.")
-(put 'imenu-generic-expression 'risky-local-variable t)
-
-(make-variable-buffer-local 'imenu-generic-expression)
-
-(defvar imenu-create-index-function 'imenu-default-create-index-function "\
-The function to use for creating an index alist of the current buffer.
-
-It should be a function that takes no arguments and returns
-an index alist of the current buffer.  The function is
-called within a `save-excursion'.
-
-See `imenu--index-alist' for the format of the buffer index alist.")
-
-(make-variable-buffer-local 'imenu-create-index-function)
-
-(defvar imenu-prev-index-position-function 'beginning-of-defun "\
-Function for finding the next index position.
-
-If `imenu-create-index-function' is set to
-`imenu-default-create-index-function', then you must set this variable
-to a function that will find the next index, looking backwards in the
-file.
-
-The function should leave point at the place to be connected to the
-index and it should return nil when it doesn't find another index.")
-
-(make-variable-buffer-local 'imenu-prev-index-position-function)
-
-(defvar imenu-extract-index-name-function nil "\
-Function for extracting the index item name, given a position.
-
-This function is called after `imenu-prev-index-position-function'
-finds a position for an index item, with point at that position.
-It should return the name for that index item.")
-
-(make-variable-buffer-local 'imenu-extract-index-name-function)
-
-(defvar imenu-name-lookup-function nil "\
-Function to compare string with index item.
-
-This function will be called with two strings, and should return
-non-nil if they match.
-
-If nil, comparison is done with `string='.
-Set this to some other function for more advanced comparisons,
-such as \"begins with\" or \"name matches and number of
-arguments match\".")
-
-(make-variable-buffer-local 'imenu-name-lookup-function)
-
-(defvar imenu-default-goto-function 'imenu-default-goto-function "\
-The default function called when selecting an Imenu item.
-The function in this variable is called when selecting a normal index-item.")
-
-(make-variable-buffer-local 'imenu-default-goto-function)
-(put 'imenu--index-alist 'risky-local-variable t)
-
-(make-variable-buffer-local 'imenu-syntax-alist)
-
-(make-variable-buffer-local 'imenu-case-fold-search)
-
-(autoload 'imenu-add-to-menubar "imenu" "\
-Add an `imenu' entry to the menu bar for the current buffer.
-NAME is a string used to name the menu bar item.
-See the command `imenu' for more information.
-
-\(fn NAME)" t nil)
-
-(autoload 'imenu-add-menubar-index "imenu" "\
-Add an Imenu \"Index\" entry on the menu bar for the current buffer.
-
-A trivial interface to `imenu-add-to-menubar' suitable for use in a hook.
-
-\(fn)" t nil)
-
-(autoload 'imenu "imenu" "\
-Jump to a place in the buffer chosen using a buffer menu or mouse menu.
-INDEX-ITEM specifies the position.  See `imenu-choose-buffer-index'
-for more information.
-
-\(fn INDEX-ITEM)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"imenu" '("imenu-")))
-
-;;;***
-
-;;;### (autoloads nil "ind-util" "language/ind-util.el" (0 0 0 0))
-;;; Generated autoloads from language/ind-util.el
-
-(autoload 'indian-compose-region "ind-util" "\
-Compose the region according to `composition-function-table'.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'indian-compose-string "ind-util" "\
-
-
-\(fn STRING)" nil nil)
-
-(autoload 'in-is13194-post-read-conversion "ind-util" "\
-
-
-\(fn LEN)" nil nil)
-
-(autoload 'in-is13194-pre-write-conversion "ind-util" "\
-
-
-\(fn FROM TO)" nil nil)
-
-(autoload 'indian-2-column-to-ucs-region "ind-util" "\
-Convert old Emacs Devanagari characters to UCS.
-
-\(fn FROM TO)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ind-util" '("indian-" "ucs-to-is")))
-
-;;;***
-
-;;;### (autoloads nil "inf-lisp" "progmodes/inf-lisp.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/inf-lisp.el
-
-(autoload 'inferior-lisp "inf-lisp" "\
-Run an inferior Lisp process, input and output via buffer `*inferior-lisp*'.
-If there is a process already running in `*inferior-lisp*', just switch
-to that buffer.
-With argument, allows you to edit the command line (default is value
-of `inferior-lisp-program').  Runs the hooks from
-`inferior-lisp-mode-hook' (after the `comint-mode-hook' is run).
-\(Type \\[describe-mode] in the process buffer for a list of commands.)
-
-\(fn CMD)" t nil)
-
-(defalias 'run-lisp 'inferior-lisp)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"inf-lisp" '("inferior-lisp-" "lisp-" "switch-to-lisp")))
-
-;;;***
-
-;;;### (autoloads nil "info" "info.el" (0 0 0 0))
-;;; Generated autoloads from info.el
-
-(defcustom Info-default-directory-list (let* ((config-dir 
(file-name-as-directory (or (and (featurep 'ns) (let ((dir (expand-file-name 
"../info" data-directory))) (if (file-directory-p dir) dir))) 
configure-info-directory))) (prefixes (prune-directory-list '("/usr/local/" 
"/usr/" "/opt/"))) (suffixes '("share/" "")) (standard-info-dirs (apply #'nconc 
(mapcar (lambda (pfx) (let ((dirs (mapcar (lambda (sfx) (concat pfx sfx 
"info/")) suffixes))) (prune-directory-list dirs))) prefixes))) (di [...]
-Default list of directories to search for Info documentation files.
-They are searched in the order they are given in the list.
-Therefore, the directory of Info files that come with Emacs
-normally should come last (so that local files override standard ones),
-unless Emacs is installed into a non-standard directory.  In the latter
-case, the directory of Info files that come with Emacs should be
-first in this list.
-
-Once Info is started, the list of directories to search
-comes from the variable `Info-directory-list'.
-This variable `Info-default-directory-list' is used as the default
-for initializing `Info-directory-list' when Info is started, unless
-the environment variable INFOPATH is set.
-
-Although this is a customizable variable, that is mainly for technical
-reasons.  Normally, you should either set INFOPATH or customize
-`Info-additional-directory-list', rather than changing this variable." 
:initialize (quote custom-initialize-delay) :type (quote (repeat directory)) 
:group (quote info))
-
-(autoload 'info-other-window "info" "\
-Like `info' but show the Info buffer in another window.
-
-\(fn &optional FILE-OR-NODE BUFFER)" t nil)
- (put 'info 'info-file (purecopy "emacs"))
-
-(autoload 'info "info" "\
-Enter Info, the documentation browser.
-Optional argument FILE-OR-NODE specifies the file to examine;
-the default is the top-level directory of Info.
-Called from a program, FILE-OR-NODE may specify an Info node of the form
-\"(FILENAME)NODENAME\".
-Optional argument BUFFER specifies the Info buffer name;
-the default buffer name is *info*.  If BUFFER exists,
-just switch to BUFFER.  Otherwise, create a new buffer
-with the top-level Info directory.
-
-In interactive use, a non-numeric prefix argument directs
-this command to read a file name from the minibuffer.
-
-A numeric prefix argument of N selects an Info buffer named \"*info*<N>\".
-
-The search path for Info files is in the variable `Info-directory-list'.
-The top-level Info directory is made by combining all the files named `dir'
-in all the directories in that path.
-
-See a list of available Info commands in `Info-mode'.
-
-\(fn &optional FILE-OR-NODE BUFFER)" t nil)
-
-(autoload 'info-emacs-manual "info" "\
-Display the Emacs manual in Info mode.
-
-\(fn)" t nil)
-
-(autoload 'info-emacs-bug "info" "\
-Display the \"Reporting Bugs\" section of the Emacs manual in Info mode.
-
-\(fn)" t nil)
-
-(autoload 'info-standalone "info" "\
-Run Emacs as a standalone Info reader.
-Usage:  emacs -f info-standalone [filename]
-In standalone mode, \\<Info-mode-map>\\[Info-exit] exits Emacs itself.
-
-\(fn)" nil nil)
-
-(autoload 'Info-on-current-buffer "info" "\
-Use Info mode to browse the current Info buffer.
-With a prefix arg, this queries for the node name to visit first;
-otherwise, that defaults to `Top'.
-
-\(fn &optional NODENAME)" t nil)
-
-(autoload 'Info-directory "info" "\
-Go to the Info directory node.
-
-\(fn)" t nil)
-
-(autoload 'Info-index "info" "\
-Look up a string TOPIC in the index for this manual and go to that entry.
-If there are no exact matches to the specified topic, this chooses
-the first match which is a case-insensitive substring of a topic.
-Use the \\<Info-mode-map>\\[Info-index-next] command to see the other matches.
-Give an empty topic name to go to the Index node itself.
-
-\(fn TOPIC)" t nil)
-
-(autoload 'info-apropos "info" "\
-Grovel indices of all known Info files on your system for STRING.
-Build a menu of the possible matches.
-
-\(fn STRING)" t nil)
-
-(autoload 'info-finder "info" "\
-Display descriptions of the keywords in the Finder virtual manual.
-In interactive use, a prefix argument directs this command to read
-a list of keywords separated by comma.  After that, it displays a node
-with a list of packages that contain all specified keywords.
-
-\(fn &optional KEYWORDS)" t nil)
-
-(autoload 'Info-mode "info" "\
-Info mode provides commands for browsing through the Info documentation tree.
-Documentation in Info is divided into \"nodes\", each of which discusses
-one topic and contains references to other nodes which discuss related
-topics.  Info has commands to follow the references and show you other nodes.
-
-\\<Info-mode-map>\\[Info-help] Invoke the Info tutorial.
-\\[Info-exit]  Quit Info: reselect previously selected buffer.
-
-Selecting other nodes:
-\\[Info-mouse-follow-nearest-node]
-       Follow a node reference you click on.
-         This works with menu items, cross references, and
-         the \"next\", \"previous\" and \"up\", depending on where you click.
-\\[Info-follow-nearest-node]   Follow a node reference near point, like 
\\[Info-mouse-follow-nearest-node].
-\\[Info-next]  Move to the \"next\" node of this node.
-\\[Info-prev]  Move to the \"previous\" node of this node.
-\\[Info-up]    Move \"up\" from this node.
-\\[Info-menu]  Pick menu item specified by name (or abbreviation).
-         Picking a menu item causes another node to be selected.
-\\[Info-directory]     Go to the Info directory node.
-\\[Info-top-node]      Go to the Top node of this file.
-\\[Info-final-node]    Go to the final node in this file.
-\\[Info-backward-node] Go backward one node, considering all nodes as forming 
one sequence.
-\\[Info-forward-node]  Go forward one node, considering all nodes as forming 
one sequence.
-\\[Info-next-reference]        Move cursor to next cross-reference or menu 
item.
-\\[Info-prev-reference]        Move cursor to previous cross-reference or menu 
item.
-\\[Info-follow-reference]      Follow a cross reference.  Reads name of 
reference.
-\\[Info-history-back]  Move back in history to the last node you were at.
-\\[Info-history-forward]       Move forward in history to the node you 
returned from after using \\[Info-history-back].
-\\[Info-history]       Go to menu of visited nodes.
-\\[Info-toc]   Go to table of contents of the current Info file.
-
-Moving within a node:
-\\[Info-scroll-up]     Normally, scroll forward a full screen.
-         Once you scroll far enough in a node that its menu appears on the
-         screen but after point, the next scroll moves into its first
-         subnode.  When after all menu items (or if there is no menu),
-         move up to the parent node.
-\\[Info-scroll-down]   Normally, scroll backward.  If the beginning of the 
buffer is
-         already visible, try to go to the previous menu entry, or up
-         if there is none.
-\\[beginning-of-buffer]        Go to beginning of node.
-
-Advanced commands:
-\\[Info-search]        Search through this Info file for specified regexp,
-         and select the node in which the next occurrence is found.
-\\[Info-search-case-sensitively]       Search through this Info file for 
specified regexp case-sensitively.
-\\[isearch-forward], \\[isearch-forward-regexp]        Use Isearch to search 
through multiple Info nodes.
-\\[Info-index] Search for a topic in this manual's Index and go to index entry.
-\\[Info-index-next]    (comma) Move to the next match from a previous 
\\<Info-mode-map>\\[Info-index] command.
-\\[Info-virtual-index] Look for a string and display the index node with 
results.
-\\[info-apropos]       Look for a string in the indices of all manuals.
-\\[Info-goto-node]     Move to node specified by name.
-         You may include a filename as well, as (FILENAME)NODENAME.
-1 .. 9 Pick first ... ninth item in node's menu.
-         Every third `*' is highlighted to help pick the right number.
-\\[Info-copy-current-node-name]        Put name of current Info node in the 
kill ring.
-\\[clone-buffer]       Select a new cloned Info buffer in another window.
-\\[universal-argument] \\[info]        Move to new Info file with completion.
-\\[universal-argument] N \\[info]      Select Info buffer with prefix number 
in the name *info*<N>.
-
-\(fn)" t nil)
- (put 'Info-goto-emacs-command-node 'info-file (purecopy "emacs"))
-
-(autoload 'Info-goto-emacs-command-node "info" "\
-Go to the Info node in the Emacs manual for command COMMAND.
-The command is found by looking up in Emacs manual's indices
-or in another manual found via COMMAND's `info-file' property or
-the variable `Info-file-list-for-emacs'.
-COMMAND must be a symbol or string.
-
-\(fn COMMAND)" t nil)
- (put 'Info-goto-emacs-key-command-node 'info-file (purecopy "emacs"))
-
-(autoload 'Info-goto-emacs-key-command-node "info" "\
-Go to the node in the Emacs manual which describes the command bound to KEY.
-KEY is a string.
-Interactively, if the binding is `execute-extended-command', a command is read.
-The command is found by looking up in Emacs manual's indices
-or in another manual found via COMMAND's `info-file' property or
-the variable `Info-file-list-for-emacs'.
-
-\(fn KEY)" t nil)
-
-(autoload 'Info-speedbar-browser "info" "\
-Initialize speedbar to display an Info node browser.
-This will add a speedbar major display mode.
-
-\(fn)" t nil)
-
-(autoload 'Info-bookmark-jump "info" "\
-This implements the `handler' function interface for the record
-type returned by `Info-bookmark-make-record', which see.
-
-\(fn BMK)" nil nil)
-
-(autoload 'info-display-manual "info" "\
-Display an Info buffer displaying MANUAL.
-If there is an existing Info buffer for MANUAL, display it.
-Otherwise, visit the manual in a new Info buffer.  In interactive
-use, a prefix argument directs this command to limit the
-completion alternatives to currently visited manuals.
-
-\(fn MANUAL)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"info" '("info-" "Info-")))
-
-;;;***
-
-;;;### (autoloads nil "info-look" "info-look.el" (0 0 0 0))
-;;; Generated autoloads from info-look.el
-
-(autoload 'info-lookup-reset "info-look" "\
-Throw away all cached data.
-This command is useful if the user wants to start at the beginning without
-quitting Emacs, for example, after some Info documents were updated on the
-system.
-
-\(fn)" t nil)
- (put 'info-lookup-symbol 'info-file "emacs")
-
-(autoload 'info-lookup-symbol "info-look" "\
-Display the definition of SYMBOL, as found in the relevant manual.
-When this command is called interactively, it reads SYMBOL from the
-minibuffer.  In the minibuffer, use M-n to yank the default argument
-value into the minibuffer so you can edit it.  The default symbol is the
-one found at point.
-
-With prefix arg MODE a query for the symbol help mode is offered.
-
-\(fn SYMBOL &optional MODE)" t nil)
- (put 'info-lookup-file 'info-file "emacs")
-
-(autoload 'info-lookup-file "info-look" "\
-Display the documentation of a file.
-When this command is called interactively, it reads FILE from the minibuffer.
-In the minibuffer, use M-n to yank the default file name
-into the minibuffer so you can edit it.
-The default file name is the one found at point.
-
-With prefix arg MODE a query for the file help mode is offered.
-
-\(fn FILE &optional MODE)" t nil)
-
-(autoload 'info-complete-symbol "info-look" "\
-Perform completion on symbol preceding point.
-
-\(fn &optional MODE)" t nil)
-
-(autoload 'info-complete-file "info-look" "\
-Perform completion on file preceding point.
-
-\(fn &optional MODE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"info-look" '("info-")))
-
-;;;***
-
-;;;### (autoloads nil "info-xref" "info-xref.el" (0 0 0 0))
-;;; Generated autoloads from info-xref.el
-(push (purecopy '(info-xref 3)) package--builtin-versions)
-
-(autoload 'info-xref-check "info-xref" "\
-Check external references in FILENAME, an info document.
-Interactively from an `Info-mode' or `texinfo-mode' buffer the
-current info file is the default.
-
-Results are shown in a `compilation-mode' buffer.  The format is
-a bit rough, but there shouldn't be many problems normally.  The
-file:line:column: is the info document, but of course normally
-any correction should be made in the original .texi file.
-Finding the right place in the .texi is a manual process.
-
-When a target info file doesn't exist there's obviously no way to
-validate node references within it.  A message is given for
-missing target files once per source document.  It could be
-simply that you don't have the target installed, or it could be a
-mistake in the reference.
-
-Indirect info files are understood, just pass the top-level
-foo.info to `info-xref-check' and it traverses all sub-files.
-Compressed info files are accepted too as usual for `Info-mode'.
-
-\"makeinfo\" checks references internal to an info document, but
-not external references, which makes it rather easy for mistakes
-to creep in or node name changes to go unnoticed.
-`Info-validate' doesn't check external references either.
-
-\(fn FILENAME)" t nil)
-
-(autoload 'info-xref-check-all "info-xref" "\
-Check external references in all info documents in the info path.
-`Info-directory-list' and `Info-additional-directory-list' are
-the info paths.  See `info-xref-check' for how each file is
-checked.
-
-The search for \"all\" info files is rather permissive, since
-info files don't necessarily have a \".info\" extension and in
-particular the Emacs manuals normally don't.  If you have a
-source code directory in `Info-directory-list' then a lot of
-extraneous files might be read.  This will be time consuming but
-should be harmless.
-
-\(fn)" t nil)
-
-(autoload 'info-xref-check-all-custom "info-xref" "\
-Check info references in all customize groups and variables.
-Info references can be in `custom-manual' or `info-link' entries
-of the `custom-links' for a variable.
-
-Any `custom-load' autoloads in variables are loaded in order to
-get full link information.  This will be a lot of Lisp packages
-and can take a long time.
-
-\(fn)" t nil)
-
-(autoload 'info-xref-docstrings "info-xref" "\
-Check docstring info node references in source files.
-The given files are searched for docstring hyperlinks like
-
-    Info node `(elisp)Documentation Tips'
-
-and those links checked by attempting to visit the target nodes
-as per `info-xref-check' does.
-
-Interactively filenames are read as a wildcard pattern like
-\"foo*.el\", with the current file as a default.  Usually this
-will be lisp sources, but anything with such hyperlinks can be
-checked, including the Emacs .c sources (or the etc/DOC file of
-all builtins).
-
-Because info node hyperlinks are found by a simple regexp search
-in the files, the Lisp code checked doesn't have to be loaded,
-and links can be in the file commentary or elsewhere too.  Even
-.elc files can usually be checked successfully if you don't have
-the sources handy.
-
-\(fn FILENAME-LIST)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"info-xref" '("info-xref-")))
-
-;;;***
-
-;;;### (autoloads nil "informat" "informat.el" (0 0 0 0))
-;;; Generated autoloads from informat.el
-
-(autoload 'Info-tagify "informat" "\
-Create or update Info file tag table in current buffer or in a region.
-
-\(fn &optional INPUT-BUFFER-NAME)" t nil)
-
-(defvar Info-split-threshold 262144 "\
-The number of characters by which `Info-split' splits an info file.")
-
-(custom-autoload 'Info-split-threshold "informat" t)
-
-(autoload 'Info-split "informat" "\
-Split an info file into an indirect file plus bounded-size subfiles.
-Each subfile will be up to the number of characters that
-`Info-split-threshold' specifies, plus one node.
-
-To use this command, first visit a large Info file that has a tag
-table.  The buffer is modified into a (small) indirect info file which
-should be saved in place of the original visited file.
-
-The subfiles are written in the same directory the original file is
-in, with names generated by appending `-' and a number to the original
-file name.  The indirect file still functions as an Info file, but it
-contains just the tag table and a directory of subfiles.
-
-\(fn)" t nil)
-
-(autoload 'Info-validate "informat" "\
-Check current buffer for validity as an Info file.
-Check that every node pointer points to an existing node.
-
-\(fn)" t nil)
-
-(autoload 'batch-info-validate "informat" "\
-Runs `Info-validate' on the files remaining on the command line.
-Must be used only with -batch, and kills Emacs on completion.
-Each file will be processed even if an error occurred previously.
-For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\"
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"informat" '("Info-validate-")))
-
-;;;***
-
-;;;### (autoloads nil "inline" "emacs-lisp/inline.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/inline.el
-
-(autoload 'define-inline "inline" "\
-
-
-\(fn NAME ARGS &rest BODY)" nil t)
-
-(function-put 'define-inline 'lisp-indent-function 'defun)
-
-(function-put 'define-inline 'doc-string-elt '3)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"inline" '("inline-")))
-
-;;;***
-
-;;;### (autoloads nil "inversion" "cedet/inversion.el" (0 0 0 0))
-;;; Generated autoloads from cedet/inversion.el
-(push (purecopy '(inversion 1 3)) package--builtin-versions)
-
-(autoload 'inversion-require-emacs "inversion" "\
-Declare that you need either EMACS-VER, XEMACS-VER or SXEMACS-ver.
-Only checks one based on which kind of Emacs is being run.
-
-\(fn EMACS-VER XEMACS-VER SXEMACS-VER)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"inversion" '("inversion-")))
-
-;;;***
-
-;;;### (autoloads nil "isearch-x" "international/isearch-x.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from international/isearch-x.el
-
-(autoload 'isearch-toggle-specified-input-method "isearch-x" "\
-Select an input method and turn it on in interactive search.
-
-\(fn)" t nil)
-
-(autoload 'isearch-toggle-input-method "isearch-x" "\
-Toggle input method in interactive search.
-
-\(fn)" t nil)
-
-(autoload 'isearch-process-search-multibyte-characters "isearch-x" "\
-
-
-\(fn LAST-CHAR &optional COUNT)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"isearch-x" '("isearch-")))
-
-;;;***
-
-;;;### (autoloads nil "isearchb" "isearchb.el" (0 0 0 0))
-;;; Generated autoloads from isearchb.el
-(push (purecopy '(isearchb 1 5)) package--builtin-versions)
-
-(autoload 'isearchb-activate "isearchb" "\
-Active isearchb mode for subsequent alphanumeric keystrokes.
-Executing this command again will terminate the search; or, if
-the search has not yet begun, will toggle to the last buffer
-accessed via isearchb.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"isearchb" '("isearchb")))
-
-;;;***
-
-;;;### (autoloads nil "iso-ascii" "international/iso-ascii.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from international/iso-ascii.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"iso-ascii" '("iso-ascii-")))
-
-;;;***
-
-;;;### (autoloads nil "iso-cvt" "international/iso-cvt.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from international/iso-cvt.el
-
-(autoload 'iso-spanish "iso-cvt" "\
-Translate net conventions for Spanish to ISO 8859-1.
-Translate the region between FROM and TO using the table
-`iso-spanish-trans-tab'.
-Optional arg BUFFER is ignored (for use in `format-alist').
-
-\(fn FROM TO &optional BUFFER)" t nil)
-
-(autoload 'iso-german "iso-cvt" "\
-Translate net conventions for German to ISO 8859-1.
-Translate the region FROM and TO using the table
-`iso-german-trans-tab'.
-Optional arg BUFFER is ignored (for use in `format-alist').
-
-\(fn FROM TO &optional BUFFER)" t nil)
-
-(autoload 'iso-iso2tex "iso-cvt" "\
-Translate ISO 8859-1 characters to TeX sequences.
-Translate the region between FROM and TO using the table
-`iso-iso2tex-trans-tab'.
-Optional arg BUFFER is ignored (for use in `format-alist').
-
-\(fn FROM TO &optional BUFFER)" t nil)
-
-(autoload 'iso-tex2iso "iso-cvt" "\
-Translate TeX sequences to ISO 8859-1 characters.
-Translate the region between FROM and TO using the table
-`iso-tex2iso-trans-tab'.
-Optional arg BUFFER is ignored (for use in `format-alist').
-
-\(fn FROM TO &optional BUFFER)" t nil)
-
-(autoload 'iso-gtex2iso "iso-cvt" "\
-Translate German TeX sequences to ISO 8859-1 characters.
-Translate the region between FROM and TO using the table
-`iso-gtex2iso-trans-tab'.
-Optional arg BUFFER is ignored (for use in `format-alist').
-
-\(fn FROM TO &optional BUFFER)" t nil)
-
-(autoload 'iso-iso2gtex "iso-cvt" "\
-Translate ISO 8859-1 characters to German TeX sequences.
-Translate the region between FROM and TO using the table
-`iso-iso2gtex-trans-tab'.
-Optional arg BUFFER is ignored (for use in `format-alist').
-
-\(fn FROM TO &optional BUFFER)" t nil)
-
-(autoload 'iso-iso2duden "iso-cvt" "\
-Translate ISO 8859-1 characters to Duden sequences.
-Translate the region between FROM and TO using the table
-`iso-iso2duden-trans-tab'.
-Optional arg BUFFER is ignored (for use in `format-alist').
-
-\(fn FROM TO &optional BUFFER)" t nil)
-
-(autoload 'iso-iso2sgml "iso-cvt" "\
-Translate ISO 8859-1 characters in the region to SGML entities.
-Use entities from \"ISO 8879:1986//ENTITIES Added Latin 1//EN\".
-Optional arg BUFFER is ignored (for use in `format-alist').
-
-\(fn FROM TO &optional BUFFER)" t nil)
-
-(autoload 'iso-sgml2iso "iso-cvt" "\
-Translate SGML entities in the region to ISO 8859-1 characters.
-Use entities from \"ISO 8879:1986//ENTITIES Added Latin 1//EN\".
-Optional arg BUFFER is ignored (for use in `format-alist').
-
-\(fn FROM TO &optional BUFFER)" t nil)
-
-(autoload 'iso-cvt-read-only "iso-cvt" "\
-Warn that format is read-only.
-
-\(fn &rest IGNORE)" t nil)
-
-(autoload 'iso-cvt-write-only "iso-cvt" "\
-Warn that format is write-only.
-
-\(fn &rest IGNORE)" t nil)
-
-(autoload 'iso-cvt-define-menu "iso-cvt" "\
-Add submenus to the File menu, to convert to and from various formats.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"iso-cvt" '("iso-")))
-
-;;;***
-
-;;;### (autoloads nil "iso-transl" "international/iso-transl.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from international/iso-transl.el
- (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map)
- (autoload 'iso-transl-ctl-x-8-map "iso-transl" "Keymap for C-x 8 prefix." t 
'keymap)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"iso-transl" '("iso-transl-")))
-
-;;;***
-
-;;;### (autoloads nil "ispell" "textmodes/ispell.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/ispell.el
-
-(put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t 
exclusive))))
-
-(defvar ispell-personal-dictionary nil "\
-File name of your personal spelling dictionary, or nil.
-If nil, the default personal dictionary, (\"~/.ispell_DICTNAME\" for ispell or
-\"~/.aspell.LANG.pws\" for Aspell) is used, where DICTNAME is the name of your
-default dictionary and LANG the two letter language code.")
-
-(custom-autoload 'ispell-personal-dictionary "ispell" t)
-
-(put 'ispell-local-dictionary 'safe-local-variable 'string-or-null-p)
-
-(defvar ispell-menu-map nil "\
-Key map for ispell menu.")
-
-(defvar ispell-menu-xemacs nil "\
-Spelling menu for XEmacs.
-If nil when package is loaded, a standard menu will be set,
-and added as a submenu of the \"Edit\" menu.")
-
-(defvar ispell-menu-map-needed (and (not ispell-menu-map) (not (featurep 
'xemacs)) 'reload))
-
-(if ispell-menu-map-needed (progn (setq ispell-menu-map (make-sparse-keymap 
"Spell")) (define-key ispell-menu-map [ispell-change-dictionary] `(menu-item 
,(purecopy "Change Dictionary...") ispell-change-dictionary :help ,(purecopy 
"Supply explicit dictionary file name"))) (define-key ispell-menu-map 
[ispell-kill-ispell] `(menu-item ,(purecopy "Kill Process") (lambda nil 
(interactive) (ispell-kill-ispell nil 'clear)) :enable (and (boundp 
'ispell-process) ispell-process (eq (ispell-process- [...]
-
-(if ispell-menu-map-needed (progn (define-key ispell-menu-map 
[ispell-continue] `(menu-item ,(purecopy "Continue Spell-Checking") 
ispell-continue :enable (and (boundp 'ispell-region-end) (marker-position 
ispell-region-end) (equal (marker-buffer ispell-region-end) (current-buffer))) 
:help ,(purecopy "Continue spell checking last region"))) (define-key 
ispell-menu-map [ispell-word] `(menu-item ,(purecopy "Spell-Check Word") 
ispell-word :help ,(purecopy "Spell-check word at cursor"))) (defi [...]
-
-(if ispell-menu-map-needed (progn (define-key ispell-menu-map [ispell-region] 
`(menu-item ,(purecopy "Spell-Check Region") ispell-region :enable mark-active 
:help ,(purecopy "Spell-check text in marked region"))) (define-key 
ispell-menu-map [ispell-message] `(menu-item ,(purecopy "Spell-Check Message") 
ispell-message :visible (eq major-mode 'mail-mode) :help ,(purecopy "Skip 
headers and included message text"))) (define-key ispell-menu-map 
[ispell-buffer] `(menu-item ,(purecopy "Spell-Ch [...]
-
-(defvar ispell-skip-region-alist `((ispell-words-keyword forward-line) 
(ispell-dictionary-keyword forward-line) (ispell-pdict-keyword forward-line) 
(ispell-parsing-keyword forward-line) (,(purecopy "^---*BEGIN PGP [A-Z ]*--*") 
\, (purecopy "^---*END PGP [A-Z ]*--*")) (,(purecopy "^begin [0-9][0-9][0-9] [^ 
    ]+$") \, (purecopy "\nend\n")) (,(purecopy "^%!PS-Adobe-[123].0") \, 
(purecopy "\n%%EOF\n")) (,(purecopy "^---* \\(Start of \\)?[Ff]orwarded 
[Mm]essage") \, (purecopy "^---* End of [Ff [...]
-Alist expressing beginning and end of regions not to spell check.
-The alist key must be a regular expression.
-Valid forms include:
-  (KEY) - just skip the key.
-  (KEY . REGEXP) - skip to the end of REGEXP.  REGEXP may be string or symbol.
-  (KEY REGEXP) - skip to end of REGEXP.  REGEXP must be a string.
-  (KEY FUNCTION ARGS) - FUNCTION called with ARGS returns end of region.")
-
-(defvar ispell-tex-skip-alists (purecopy '((("\\\\addcontentsline" 
ispell-tex-arg-end 2) ("\\\\add\\(tocontents\\|vspace\\)" ispell-tex-arg-end) 
("\\\\\\([aA]lph\\|arabic\\)" ispell-tex-arg-end) ("\\\\cref" 
ispell-tex-arg-end) ("\\\\bibliographystyle" ispell-tex-arg-end) ("\\\\makebox" 
ispell-tex-arg-end 0) ("\\\\e?psfig" ispell-tex-arg-end) 
("\\\\document\\(class\\|style\\)" . "\\\\begin[       \n]*{[  \n]*document[   
\n]*}")) (("\\(figure\\|table\\)\\*?" ispell-tex-arg-end 0) ("list" ispell- 
[...]
-Lists of regions to be skipped in TeX mode.
-First list is used raw.
-Second list has key placed inside \\begin{}.
-
-Delete or add any regions you want to be automatically selected
-for skipping in latex mode.")
-
-(defconst ispell-html-skip-alists '(("<[cC][oO][dD][eE]\\>[^>]*>" 
"</[cC][oO][dD][eE]*>") ("<[sS][cC][rR][iI][pP][tT]\\>[^>]*>" 
"</[sS][cC][rR][iI][pP][tT]>") ("<[aA][pP][pP][lL][eE][tT]\\>[^>]*>" 
"</[aA][pP][pP][lL][eE][tT]>") ("<[vV][eE][rR][bB]\\>[^>]*>" 
"<[vV][eE][rR][bB]\\>[^>]*>") ("<[tT][tT]/" "/") ("<[^       \n>]" ">") ("&[^   
     \n;]" "[;       \n]")) "\
-Lists of start and end keys to skip in HTML buffers.
-Same format as `ispell-skip-region-alist'.
-Note - substrings of other matches must come last
- (e.g. \"<[tT][tT]/\" and \"<[^ \\t\\n>]\").")
-(put 'ispell-local-pdict 'safe-local-variable 'stringp)
- (define-key esc-map "$" 'ispell-word)
-
-(autoload 'ispell-word "ispell" "\
-Check spelling of word under or before the cursor.
-If the word is not found in dictionary, display possible corrections
-in a window allowing you to choose one.
-
-If optional argument FOLLOWING is non-nil or if `ispell-following-word'
-is non-nil when called interactively, then the following word
-\(rather than preceding) is checked when the cursor is not over a word.
-When the optional argument QUIETLY is non-nil or `ispell-quietly' is non-nil
-when called interactively, non-corrective messages are suppressed.
-
-With a prefix argument (or if CONTINUE is non-nil),
-resume interrupted spell-checking of a buffer or region.
-
-Interactively, in Transient Mark mode when the mark is active, call
-`ispell-region' to check the active region for spelling errors.
-
-Word syntax is controlled by the definition of the chosen dictionary,
-which is in `ispell-local-dictionary-alist' or `ispell-dictionary-alist'.
-
-This will check or reload the dictionary.  Use \\[ispell-change-dictionary]
-or \\[ispell-region] to update the Ispell process.
-
-Return values:
-nil           word is correct or spelling is accepted.
-0             word is inserted into buffer-local definitions.
-\"word\"        word corrected from word list.
-\(\"word\" arg)  word is hand entered.
-quit          spell session exited.
-
-\(fn &optional FOLLOWING QUIETLY CONTINUE REGION)" t nil)
-
-(autoload 'ispell-pdict-save "ispell" "\
-Check to see if the personal dictionary has been modified.
-If so, ask if it needs to be saved.
-
-\(fn &optional NO-QUERY FORCE-SAVE)" t nil)
-
-(autoload 'ispell-help "ispell" "\
-Display a list of the options available when a misspelling is encountered.
-
-Selections are:
-
-DIGIT: Replace the word with a digit offered in the *Choices* buffer.
-SPC:   Accept word this time.
-`i':   Accept word and insert into private dictionary.
-`a':   Accept word for this session.
-`A':   Accept word and place in `buffer-local dictionary'.
-`r':   Replace word with typed-in value.  Rechecked.
-`R':   Replace word with typed-in value.  Query-replaced in buffer.  Rechecked.
-`?':   Show these commands.
-`x':   Exit spelling buffer.  Move cursor to original point.
-`X':   Exit spelling buffer.  Leaves cursor at the current point, and permits
-        the aborted check to be completed later.
-`q':   Quit spelling session (Kills ispell process).
-`l':   Look up typed-in replacement in alternate dictionary.  Wildcards okay.
-`u':   Like `i', but the word is lower-cased first.
-`m':   Place typed-in value in personal dictionary, then recheck current word.
-`C-l':  Redraw screen.
-`C-r':  Recursive edit.
-`C-z':  Suspend Emacs or iconify frame.
-
-\(fn)" nil nil)
-
-(autoload 'ispell-kill-ispell "ispell" "\
-Kill current Ispell process (so that you may start a fresh one).
-With NO-ERROR, just return non-nil if there was no Ispell running.
-With CLEAR, buffer session localwords are cleaned.
-
-\(fn &optional NO-ERROR CLEAR)" t nil)
-
-(autoload 'ispell-change-dictionary "ispell" "\
-Change to dictionary DICT for Ispell.
-With a prefix arg, set it \"globally\", for all buffers.
-Without a prefix arg, set it \"locally\", just for this buffer.
-
-By just answering RET you can find out what the current dictionary is.
-
-\(fn DICT &optional ARG)" t nil)
-
-(autoload 'ispell-region "ispell" "\
-Interactively check a region for spelling errors.
-Return nil if spell session was terminated, otherwise returns shift offset
-amount for last line processed.
-
-\(fn REG-START REG-END &optional RECHECKP SHIFT)" t nil)
-
-(autoload 'ispell-comments-and-strings "ispell" "\
-Check comments and strings in the current buffer for spelling errors.
-
-\(fn)" t nil)
-
-(autoload 'ispell-buffer "ispell" "\
-Check the current buffer for spelling errors interactively.
-
-\(fn)" t nil)
-
-(autoload 'ispell-buffer-with-debug "ispell" "\
-`ispell-buffer' with some output sent to `ispell-debug-buffer' buffer.
-If APPEND is non-n il, append the info to previous buffer if exists.
-
-\(fn &optional APPEND)" t nil)
-
-(autoload 'ispell-continue "ispell" "\
-Continue a halted spelling session beginning with the current word.
-
-\(fn)" t nil)
-
-(autoload 'ispell-complete-word "ispell" "\
-Try to complete the word before or at point.
-If optional INTERIOR-FRAG is non-nil, then the word may be a character
-sequence inside of a word.
-
-Standard ispell choices are then available.
-
-\(fn &optional INTERIOR-FRAG)" t nil)
-
-(autoload 'ispell-complete-word-interior-frag "ispell" "\
-Completes word matching character sequence inside a word.
-
-\(fn)" t nil)
-
-(autoload 'ispell "ispell" "\
-Interactively check a region or buffer for spelling errors.
-If `transient-mark-mode' is on, and a region is active, spell-check
-that region.  Otherwise spell-check the buffer.
-
-Ispell dictionaries are not distributed with Emacs.  If you are
-looking for a dictionary, please see the distribution of the GNU ispell
-program, or do an Internet search; there are various dictionaries
-available on the net.
-
-\(fn)" t nil)
-
-(autoload 'ispell-minor-mode "ispell" "\
-Toggle last-word spell checking (Ispell minor mode).
-With a prefix argument ARG, enable Ispell minor mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Ispell minor mode is a buffer-local minor mode.  When enabled,
-typing SPC or RET warns you if the previous word is incorrectly
-spelled.
-
-All the buffer-local variables and dictionaries are ignored.  To
-read them into the running Ispell process, type \\[ispell-word]
-SPC.
-
-For spell-checking \"on the fly\", not just after typing SPC or
-RET, use `flyspell-mode'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'ispell-message "ispell" "\
-Check the spelling of a mail message or news post.
-Don't check spelling of message headers except the Subject field.
-Don't check included messages.
-
-To abort spell checking of a message region and send the message anyway,
-use the `x' command.  (Any subsequent regions will be checked.)
-The `X' command aborts sending the message so that you can edit the buffer.
-
-To spell-check whenever a message is sent, include the appropriate lines
-in your init file:
-   (add-hook \\='message-send-hook #\\='ispell-message)  ;; GNUS 5
-   (add-hook \\='news-inews-hook #\\='ispell-message)    ;; GNUS 4
-   (add-hook \\='mail-send-hook  #\\='ispell-message)
-   (add-hook \\='mh-before-send-letter-hook #\\='ispell-message)
-
-You can bind this to the key C-c i in GNUS or mail by adding to
-`news-reply-mode-hook' or `mail-mode-hook' the following lambda expression:
-   (function (lambda () (local-set-key \"\\C-ci\" \\='ispell-message)))
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ispell" '("ispell-" "check-ispell-version")))
-
-;;;***
-
-;;;### (autoloads nil "ja-dic-cnv" "international/ja-dic-cnv.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from international/ja-dic-cnv.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ja-dic-cnv" '("skkdic-" "batch-skkdic-convert" "ja-dic-filename")))
-
-;;;***
-
-;;;### (autoloads nil "ja-dic-utl" "international/ja-dic-utl.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from international/ja-dic-utl.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ja-dic-utl" '("skkdic-")))
-
-;;;***
-
-;;;### (autoloads nil "japan-util" "language/japan-util.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from language/japan-util.el
-
-(autoload 'setup-japanese-environment-internal "japan-util" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'japanese-katakana "japan-util" "\
-Convert argument to Katakana and return that.
-The argument may be a character or string.  The result has the same type.
-The argument object is not altered--the value is a copy.
-Optional argument HANKAKU t means to convert to `hankaku' Katakana
-\(`japanese-jisx0201-kana'), in which case return value
-may be a string even if OBJ is a character if two Katakanas are
-necessary to represent OBJ.
-
-\(fn OBJ &optional HANKAKU)" nil nil)
-
-(autoload 'japanese-hiragana "japan-util" "\
-Convert argument to Hiragana and return that.
-The argument may be a character or string.  The result has the same type.
-The argument object is not altered--the value is a copy.
-
-\(fn OBJ)" nil nil)
-
-(autoload 'japanese-hankaku "japan-util" "\
-Convert argument to `hankaku' and return that.
-The argument may be a character or string.  The result has the same type.
-The argument object is not altered--the value is a copy.
-Optional argument ASCII-ONLY non-nil means to return only ASCII character.
-
-\(fn OBJ &optional ASCII-ONLY)" nil nil)
-
-(autoload 'japanese-zenkaku "japan-util" "\
-Convert argument to `zenkaku' and return that.
-The argument may be a character or string.  The result has the same type.
-The argument object is not altered--the value is a copy.
-
-\(fn OBJ)" nil nil)
-
-(autoload 'japanese-katakana-region "japan-util" "\
-Convert Japanese `hiragana' chars in the region to `katakana' chars.
-Optional argument HANKAKU t means to convert to `hankaku katakana' character
-of which charset is `japanese-jisx0201-kana'.
-
-\(fn FROM TO &optional HANKAKU)" t nil)
-
-(autoload 'japanese-hiragana-region "japan-util" "\
-Convert Japanese `katakana' chars in the region to `hiragana' chars.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'japanese-hankaku-region "japan-util" "\
-Convert Japanese `zenkaku' chars in the region to `hankaku' chars.
-`Zenkaku' chars belong to `japanese-jisx0208'
-`Hankaku' chars belong to `ascii' or `japanese-jisx0201-kana'.
-Optional argument ASCII-ONLY non-nil means to convert only to ASCII char.
-
-\(fn FROM TO &optional ASCII-ONLY)" t nil)
-
-(autoload 'japanese-zenkaku-region "japan-util" "\
-Convert hankaku' chars in the region to Japanese `zenkaku' chars.
-`Zenkaku' chars belong to `japanese-jisx0208'
-`Hankaku' chars belong to `ascii' or `japanese-jisx0201-kana'.
-Optional argument KATAKANA-ONLY non-nil means to convert only KATAKANA char.
-
-\(fn FROM TO &optional KATAKANA-ONLY)" t nil)
-
-(autoload 'read-hiragana-string "japan-util" "\
-Read a Hiragana string from the minibuffer, prompting with string PROMPT.
-If non-nil, second arg INITIAL-INPUT is a string to insert before reading.
-
-\(fn PROMPT &optional INITIAL-INPUT)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"japan-util" '("japanese-")))
-
-;;;***
-
-;;;### (autoloads nil "jka-compr" "jka-compr.el" (0 0 0 0))
-;;; Generated autoloads from jka-compr.el
-
-(defvar jka-compr-inhibit nil "\
-Non-nil means inhibit automatic uncompression temporarily.
-Lisp programs can bind this to t to do that.
-It is not recommended to set this variable permanently to anything but nil.")
-
-(autoload 'jka-compr-handler "jka-compr" "\
-
-
-\(fn OPERATION &rest ARGS)" nil nil)
-
-(autoload 'jka-compr-uninstall "jka-compr" "\
-Uninstall jka-compr.
-This removes the entries in `file-name-handler-alist' and `auto-mode-alist'
-and `inhibit-local-variables-suffixes' that were added
-by `jka-compr-installed'.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"jka-compr" '("jka-compr-" "compression-error")))
-
-;;;***
-
-;;;### (autoloads nil "js" "progmodes/js.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/js.el
-(push (purecopy '(js 9)) package--builtin-versions)
-
-(autoload 'js-mode "js" "\
-Major mode for editing JavaScript.
-
-\(fn)" t nil)
-
-(autoload 'js-jsx-mode "js" "\
-Major mode for editing JSX.
-
-To customize the indentation for this mode, set the SGML offset
-variables (`sgml-basic-offset', `sgml-attribute-offset' et al.)
-locally, like so:
-
-  (defun set-jsx-indentation ()
-    (setq-local sgml-basic-offset js-indent-level))
-  (add-hook \\='js-jsx-mode-hook #\\='set-jsx-indentation)
-
-\(fn)" t nil)
- (defalias 'javascript-mode 'js-mode)
-
-(dolist (name (list "node" "nodejs" "gjs" "rhino")) (add-to-list 
'interpreter-mode-alist (cons (purecopy name) 'js-mode)))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "js" 
'("js-" "with-js")))
-
-;;;***
-
-;;;### (autoloads nil "json" "json.el" (0 0 0 0))
-;;; Generated autoloads from json.el
-(push (purecopy '(json 1 4)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"json" '("json-")))
-
-;;;***
-
-;;;### (autoloads nil "kermit" "kermit.el" (0 0 0 0))
-;;; Generated autoloads from kermit.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"kermit" '("kermit-")))
-
-;;;***
-
-;;;### (autoloads nil "keypad" "emulation/keypad.el" (0 0 0 0))
-;;; Generated autoloads from emulation/keypad.el
-
-(defvar keypad-setup nil "\
-Specifies the keypad setup for unshifted keypad keys when NumLock is off.
-When selecting the plain numeric keypad setup, the character returned by the
-decimal key must be specified.")
-
-(custom-autoload 'keypad-setup "keypad" nil)
-
-(defvar keypad-numlock-setup nil "\
-Specifies the keypad setup for unshifted keypad keys when NumLock is on.
-When selecting the plain numeric keypad setup, the character returned by the
-decimal key must be specified.")
-
-(custom-autoload 'keypad-numlock-setup "keypad" nil)
-
-(defvar keypad-shifted-setup nil "\
-Specifies the keypad setup for shifted keypad keys when NumLock is off.
-When selecting the plain numeric keypad setup, the character returned by the
-decimal key must be specified.")
-
-(custom-autoload 'keypad-shifted-setup "keypad" nil)
-
-(defvar keypad-numlock-shifted-setup nil "\
-Specifies the keypad setup for shifted keypad keys when NumLock is off.
-When selecting the plain numeric keypad setup, the character returned by the
-decimal key must be specified.")
-
-(custom-autoload 'keypad-numlock-shifted-setup "keypad" nil)
-
-(autoload 'keypad-setup "keypad" "\
-Set keypad bindings in `function-key-map' according to SETUP.
-If optional second argument NUMLOCK is non-nil, the NumLock On bindings
-are changed.  Otherwise, the NumLock Off bindings are changed.
-If optional third argument SHIFT is non-nil, the shifted keypad
-keys are bound.
-
- Setup      Binding
- -------------------------------------------------------------
- `prefix'   Command prefix argument, i.e.  M-0 .. M-9 and M--
- `S-cursor' Bind shifted keypad keys to the shifted cursor movement keys.
- `cursor'   Bind keypad keys to the cursor movement keys.
- `numeric'  Plain numeric keypad, i.e. 0 .. 9 and .  (or DECIMAL arg)
- `none'     Removes all bindings for keypad keys in function-key-map;
-            this enables any user-defined bindings for the keypad keys
-            in the global and local keymaps.
-
-If SETUP is `numeric' and the optional fourth argument DECIMAL is non-nil,
-the decimal key on the keypad is mapped to DECIMAL instead of `.'
-
-\(fn SETUP &optional NUMLOCK SHIFT DECIMAL)" nil nil)
-
-;;;***
-
-;;;### (autoloads nil "kinsoku" "international/kinsoku.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from international/kinsoku.el
-
-(autoload 'kinsoku "kinsoku" "\
-Go to a line breaking position near point by doing `kinsoku' processing.
-LINEBEG is a buffer position we can't break a line before.
-
-`Kinsoku' processing is to prohibit specific characters to be placed
-at beginning of line or at end of line.  Characters not to be placed
-at beginning and end of line have character category `>' and `<'
-respectively.  This restriction is dissolved by making a line longer or
-shorter.
-
-`Kinsoku' is a Japanese word which originally means ordering to stay
-in one place, and is used for the text processing described above in
-the context of text formatting.
-
-\(fn LINEBEG)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"kinsoku" '("kinsoku-")))
-
-;;;***
-
-;;;### (autoloads nil "kkc" "international/kkc.el" (0 0 0 0))
-;;; Generated autoloads from international/kkc.el
-
-(defvar kkc-after-update-conversion-functions nil "\
-Functions to run after a conversion is selected in `japanese' input method.
-With this input method, a user can select a proper conversion from
-candidate list.  Each time he changes the selection, functions in this
-list are called with two arguments; starting and ending buffer
-positions that contains the current selection.")
-
-(autoload 'kkc-region "kkc" "\
-Convert Kana string in the current region to Kanji-Kana mixed string.
-Users can select a desirable conversion interactively.
-When called from a program, expects two arguments,
-positions FROM and TO (integers or markers) specifying the target region.
-When it returns, the point is at the tail of the selected conversion,
-and the return value is the length of the conversion.
-
-\(fn FROM TO)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"kkc" '("kkc-")))
-
-;;;***
-
-;;;### (autoloads nil "kmacro" "kmacro.el" (0 0 0 0))
-;;; Generated autoloads from kmacro.el
- (global-set-key "\C-x(" 'kmacro-start-macro)
- (global-set-key "\C-x)" 'kmacro-end-macro)
- (global-set-key "\C-xe" 'kmacro-end-and-call-macro)
- (global-set-key [f3] 'kmacro-start-macro-or-insert-counter)
- (global-set-key [f4] 'kmacro-end-or-call-macro)
- (global-set-key "\C-x\C-k" 'kmacro-keymap)
- (autoload 'kmacro-keymap "kmacro" "Keymap for keyboard macro commands." t 
'keymap)
-
-(autoload 'kmacro-exec-ring-item "kmacro" "\
-Execute item ITEM from the macro ring.
-ARG is the number of times to execute the item.
-
-\(fn ITEM ARG)" nil nil)
-
-(autoload 'kmacro-start-macro "kmacro" "\
-Record subsequent keyboard input, defining a keyboard macro.
-The commands are recorded even as they are executed.
-Use \\[kmacro-end-macro] to finish recording and make the macro available.
-Use \\[kmacro-end-and-call-macro] to execute the macro.
-
-Non-nil arg (prefix arg) means append to last macro defined.
-
-With \\[universal-argument] prefix, append to last keyboard macro
-defined.  Depending on `kmacro-execute-before-append', this may begin
-by re-executing the last macro as if you typed it again.
-
-Otherwise, it sets `kmacro-counter' to ARG or 0 if missing before
-defining the macro.
-
-Use \\[kmacro-insert-counter] to insert (and increment) the macro counter.
-The counter value can be set or modified via \\[kmacro-set-counter] and 
\\[kmacro-add-counter].
-The format of the counter can be modified via \\[kmacro-set-format].
-
-Use \\[kmacro-name-last-macro] to give it a permanent name.
-Use \\[kmacro-bind-to-key] to bind it to a key sequence.
-
-\(fn ARG)" t nil)
-
-(autoload 'kmacro-end-macro "kmacro" "\
-Finish defining a keyboard macro.
-The definition was started by \\[kmacro-start-macro].
-The macro is now available for use via \\[kmacro-call-macro],
-or it can be given a name with \\[kmacro-name-last-macro] and then invoked
-under that name.
-
-With numeric arg, repeat macro now that many times,
-counting the definition just completed as the first repetition.
-An argument of zero means repeat until error.
-
-\(fn ARG)" t nil)
-
-(autoload 'kmacro-call-macro "kmacro" "\
-Call the keyboard MACRO that you defined with \\[kmacro-start-macro].
-A prefix argument serves as a repeat count.  Zero means repeat until error.
-MACRO defaults to `last-kbd-macro'.
-
-When you call the macro, you can call the macro again by repeating
-just the last key in the key sequence that you used to call this
-command.  See `kmacro-call-repeat-key' and `kmacro-call-repeat-with-arg'
-for details on how to adjust or disable this behavior.
-
-To make a macro permanent so you can call it even after defining
-others, use \\[kmacro-name-last-macro].
-
-\(fn ARG &optional NO-REPEAT END-MACRO MACRO)" t nil)
-
-(autoload 'kmacro-start-macro-or-insert-counter "kmacro" "\
-Record subsequent keyboard input, defining a keyboard macro.
-The commands are recorded even as they are executed.
-
-Sets the `kmacro-counter' to ARG (or 0 if no prefix arg) before defining the
-macro.
-
-With \\[universal-argument], appends to current keyboard macro (keeping
-the current value of `kmacro-counter').
-
-When defining/executing macro, inserts macro counter and increments
-the counter with ARG or 1 if missing.  With \\[universal-argument],
-inserts previous `kmacro-counter' (but do not modify counter).
-
-The macro counter can be modified via \\[kmacro-set-counter] and 
\\[kmacro-add-counter].
-The format of the counter can be modified via \\[kmacro-set-format].
-
-\(fn ARG)" t nil)
-
-(autoload 'kmacro-end-or-call-macro "kmacro" "\
-End kbd macro if currently being defined; else call last kbd macro.
-With numeric prefix ARG, repeat macro that many times.
-With \\[universal-argument], call second macro in macro ring.
-
-\(fn ARG &optional NO-REPEAT)" t nil)
-
-(autoload 'kmacro-end-and-call-macro "kmacro" "\
-Call last keyboard macro, ending it first if currently being defined.
-With numeric prefix ARG, repeat macro that many times.
-Zero argument means repeat until there is an error.
-
-To give a macro a permanent name, so you can call it
-even after defining other macros, use \\[kmacro-name-last-macro].
-
-\(fn ARG &optional NO-REPEAT)" t nil)
-
-(autoload 'kmacro-end-call-mouse "kmacro" "\
-Move point to the position clicked with the mouse and call last kbd macro.
-If kbd macro currently being defined end it before activating it.
-
-\(fn EVENT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"kmacro" '("kmacro-")))
-
-;;;***
-
-;;;### (autoloads nil "korea-util" "language/korea-util.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from language/korea-util.el
-
-(defvar default-korean-keyboard (purecopy (if (string-match "3" (or (getenv 
"HANGUL_KEYBOARD_TYPE") "")) "3" "")) "\
-The kind of Korean keyboard for Korean input method.
-\"\" for 2, \"3\" for 3.")
-
-(autoload 'setup-korean-environment-internal "korea-util" "\
-
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"korea-util" '("exit-korean-environment" "korean-key-bindings" "isearch-" 
"quail-hangul-switch-" "toggle-korean-input-method")))
-
-;;;***
-
-;;;### (autoloads nil "lao-util" "language/lao-util.el" (0 0 0 0))
-;;; Generated autoloads from language/lao-util.el
-
-(autoload 'lao-compose-string "lao-util" "\
-
-
-\(fn STR)" nil nil)
-
-(autoload 'lao-transcribe-single-roman-syllable-to-lao "lao-util" "\
-Transcribe a Romanized Lao syllable in the region FROM and TO to Lao string.
-Only the first syllable is transcribed.
-The value has the form: (START END LAO-STRING), where
-START and END are the beginning and end positions of the Roman Lao syllable,
-LAO-STRING is the Lao character transcription of it.
-
-Optional 3rd arg STR, if non-nil, is a string to search for Roman Lao
-syllable.  In that case, FROM and TO are indexes to STR.
-
-\(fn FROM TO &optional STR)" nil nil)
-
-(autoload 'lao-transcribe-roman-to-lao-string "lao-util" "\
-Transcribe Romanized Lao string STR to Lao character string.
-
-\(fn STR)" nil nil)
-
-(autoload 'lao-composition-function "lao-util" "\
-
-
-\(fn GSTRING)" nil nil)
-
-(autoload 'lao-compose-region "lao-util" "\
-
-
-\(fn FROM TO)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"lao-util" '("lao-")))
-
-;;;***
-
-;;;### (autoloads nil "latexenc" "international/latexenc.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from international/latexenc.el
-
-(defvar latex-inputenc-coding-alist (purecopy '(("ansinew" . windows-1252) 
("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) 
("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . 
cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) 
("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) 
("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) 
("next" . next) ("utf8" . utf-8) ("utf8x" .  [...]
-Mapping from LaTeX encodings in \"inputenc.sty\" to Emacs coding systems.
-LaTeX encodings are specified with \"\\usepackage[encoding]{inputenc}\".
-Used by the function `latexenc-find-file-coding-system'.")
-
-(custom-autoload 'latex-inputenc-coding-alist "latexenc" t)
-
-(autoload 'latexenc-inputenc-to-coding-system "latexenc" "\
-Return the corresponding coding-system for the specified input encoding.
-Return nil if no matching coding system can be found.
-
-\(fn INPUTENC)" nil nil)
-
-(autoload 'latexenc-coding-system-to-inputenc "latexenc" "\
-Return the corresponding input encoding for the specified coding system.
-Return nil if no matching input encoding can be found.
-
-\(fn CS)" nil nil)
-
-(autoload 'latexenc-find-file-coding-system "latexenc" "\
-Determine the coding system of a LaTeX file if it uses \"inputenc.sty\".
-The mapping from LaTeX's \"inputenc.sty\" encoding names to Emacs
-coding system names is determined from `latex-inputenc-coding-alist'.
-
-\(fn ARG-LIST)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"latexenc" '("latexenc-dont-use-")))
-
-;;;***
-
-;;;### (autoloads nil "latin1-disp" "international/latin1-disp.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from international/latin1-disp.el
-
-(defvar latin1-display nil "\
-Set up Latin-1/ASCII display for ISO8859 character sets.
-This is done for each character set in the list `latin1-display-sets',
-if no font is available to display it.  Characters are displayed using
-the corresponding Latin-1 characters where they match.  Otherwise
-ASCII sequences are used, mostly following the Latin prefix input
-methods.  Some different ASCII sequences are used if
-`latin1-display-mnemonic' is non-nil.
-
-This option also treats some characters in the `mule-unicode-...'
-charsets if you don't have a Unicode font with which to display them.
-
-Setting this variable directly does not take effect;
-use either \\[customize] or the function `latin1-display'.")
-
-(custom-autoload 'latin1-display "latin1-disp" nil)
-
-(autoload 'latin1-display "latin1-disp" "\
-Set up Latin-1/ASCII display for the arguments character SETS.
-See option `latin1-display' for the method.  The members of the list
-must be in `latin1-display-sets'.  With no arguments, reset the
-display for all of `latin1-display-sets'. See also
-`latin1-display-setup'.
-
-\(fn &rest SETS)" nil nil)
-
-(defvar latin1-display-ucs-per-lynx nil "\
-Set up Latin-1/ASCII display for Unicode characters.
-This uses the transliterations of the Lynx browser.  The display isn't
-changed if the display can render Unicode characters.
-
-Setting this variable directly does not take effect;
-use either \\[customize] or the function `latin1-display'.")
-
-(custom-autoload 'latin1-display-ucs-per-lynx "latin1-disp" nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"latin1-disp" '("latin1-display-")))
-
-;;;***
-
-;;;### (autoloads nil "ld-script" "progmodes/ld-script.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from progmodes/ld-script.el
-
-(autoload 'ld-script-mode "ld-script" "\
-A major mode to edit GNU ld script files
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ld-script" '("ld-script-")))
-
-;;;***
-
-;;;### (autoloads nil "ldap" "net/ldap.el" (0 0 0 0))
-;;; Generated autoloads from net/ldap.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ldap" '("ldap-")))
-
-;;;***
-
-;;;### (autoloads nil "legacy-gnus-agent" "gnus/legacy-gnus-agent.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from gnus/legacy-gnus-agent.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"legacy-gnus-agent" '("gnus-agent-")))
-
-;;;***
-
-;;;### (autoloads nil "let-alist" "emacs-lisp/let-alist.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emacs-lisp/let-alist.el
-(push (purecopy '(let-alist 1 0 4)) package--builtin-versions)
-
-(autoload 'let-alist "let-alist" "\
-Let-bind dotted symbols to their cdrs in ALIST and execute BODY.
-Dotted symbol is any symbol starting with a `.'.  Only those present
-in BODY are let-bound and this search is done at compile time.
-
-For instance, the following code
-
-  (let-alist alist
-    (if (and .title .body)
-        .body
-      .site
-      .site.contents))
-
-essentially expands to
-
-  (let ((.title (cdr (assq \\='title alist)))
-        (.body  (cdr (assq \\='body alist)))
-        (.site  (cdr (assq \\='site alist)))
-        (.site.contents (cdr (assq \\='contents (cdr (assq \\='site alist))))))
-    (if (and .title .body)
-        .body
-      .site
-      .site.contents))
-
-If you nest `let-alist' invocations, the inner one can't access
-the variables of the outer one. You can, however, access alists
-inside the original alist by using dots inside the symbol, as
-displayed in the example above.
-
-\(fn ALIST &rest BODY)" nil t)
-
-(function-put 'let-alist 'lisp-indent-function '1)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"let-alist" '("let-alist--")))
-
-;;;***
-
-;;;### (autoloads nil "life" "play/life.el" (0 0 0 0))
-;;; Generated autoloads from play/life.el
-
-(autoload 'life "life" "\
-Run Conway's Life simulation.
-The starting pattern is randomly selected.  Prefix arg (optional first
-arg non-nil from a program) is the number of seconds to sleep between
-generations (this defaults to 1).
-
-\(fn &optional SLEEPTIME)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"life" '("life-")))
-
-;;;***
-
-;;;### (autoloads nil "linum" "linum.el" (0 0 0 0))
-;;; Generated autoloads from linum.el
-(push (purecopy '(linum 0 9 24)) package--builtin-versions)
-
-(autoload 'linum-mode "linum" "\
-Toggle display of line numbers in the left margin (Linum mode).
-With a prefix argument ARG, enable Linum mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-Linum mode is a buffer-local minor mode.
-
-\(fn &optional ARG)" t nil)
-
-(defvar global-linum-mode nil "\
-Non-nil if Global Linum mode is enabled.
-See the `global-linum-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-linum-mode'.")
-
-(custom-autoload 'global-linum-mode "linum" nil)
-
-(autoload 'global-linum-mode "linum" "\
-Toggle Linum mode in all buffers.
-With prefix ARG, enable Global Linum mode if ARG is positive;
-otherwise, disable it.  If called from Lisp, enable the mode if
-ARG is omitted or nil.
-
-Linum mode is enabled in all buffers where
-`linum-on' would do it.
-See `linum-mode' for more information on Linum mode.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"linum" '("linum-")))
-
-;;;***
-
-;;;### (autoloads nil "lisp-mnt" "emacs-lisp/lisp-mnt.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from emacs-lisp/lisp-mnt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"lisp-mnt" '("lm-")))
-
-;;;***
-
-;;;### (autoloads nil "loadhist" "loadhist.el" (0 0 0 0))
-;;; Generated autoloads from loadhist.el
-
-(autoload 'unload-feature "loadhist" "\
-Unload the library that provided FEATURE.
-If the feature is required by any other loaded code, and prefix arg FORCE
-is nil, raise an error.
-
-Standard unloading activities include restoring old autoloads for
-functions defined by the library, undoing any additions that the
-library has made to hook variables or to `auto-mode-alist', undoing
-ELP profiling of functions in that library, unproviding any features
-provided by the library, and canceling timers held in variables
-defined by the library.
-
-If a function `FEATURE-unload-function' is defined, this function
-calls it with no arguments, before doing anything else.  That function
-can do whatever is appropriate to undo the loading of the library.  If
-`FEATURE-unload-function' returns non-nil, that suppresses the
-standard unloading of the library.  Otherwise the standard unloading
-proceeds.
-
-`FEATURE-unload-function' has access to the package's list of
-definitions in the variable `unload-function-defs-list' and could
-remove symbols from it in the event that the package has done
-something strange, such as redefining an Emacs function.
-
-\(fn FEATURE &optional FORCE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"loadhist" '("unload-" "loadhist-hook-functions" "read-feature" "feature-" 
"file-")))
-
-;;;***
-
-;;;### (autoloads nil "locate" "locate.el" (0 0 0 0))
-;;; Generated autoloads from locate.el
-
-(defvar locate-ls-subdir-switches (purecopy "-al") "\
-`ls' switches for inserting subdirectories in `*Locate*' buffers.
-This should contain the \"-l\" switch, but not the \"-F\" or \"-b\" switches.")
-
-(custom-autoload 'locate-ls-subdir-switches "locate" t)
-
-(autoload 'locate "locate" "\
-Run the program `locate', putting results in `*Locate*' buffer.
-Pass it SEARCH-STRING as argument.  Interactively, prompt for SEARCH-STRING.
-With prefix arg ARG, prompt for the exact shell command to run instead.
-
-This program searches for those file names in a database that match
-SEARCH-STRING and normally outputs all matching absolute file names,
-one per line.  The database normally consists of all files on your
-system, or of all files that you have access to.  Consult the
-documentation of the program for the details about how it determines
-which file names match SEARCH-STRING.  (Those details vary highly with
-the version.)
-
-You can specify another program for this command to run by customizing
-the variables `locate-command' or `locate-make-command-line'.
-
-The main use of FILTER is to implement `locate-with-filter'.  See
-the docstring of that function for its meaning.
-
-After preparing the results buffer, this runs `dired-mode-hook' and
-then `locate-post-command-hook'.
-
-\(fn SEARCH-STRING &optional FILTER ARG)" t nil)
-
-(autoload 'locate-with-filter "locate" "\
-Run the executable program `locate' with a filter.
-This function is similar to the function `locate', which see.
-The difference is that, when invoked interactively, the present function
-prompts for both SEARCH-STRING and FILTER.  It passes SEARCH-STRING
-to the locate executable program.  It produces a `*Locate*' buffer
-that lists only those lines in the output of the locate program that
-contain a match for the regular expression FILTER; this is often useful
-to constrain a big search.
-
-ARG is the interactive prefix arg, which has the same effect as in `locate'.
-
-When called from Lisp, this function is identical with `locate',
-except that FILTER is not optional.
-
-\(fn SEARCH-STRING FILTER &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"locate" '("locate-")))
-
-;;;***
-
-;;;### (autoloads nil "log-edit" "vc/log-edit.el" (0 0 0 0))
-;;; Generated autoloads from vc/log-edit.el
-
-(autoload 'log-edit "log-edit" "\
-Setup a buffer to enter a log message.
-The buffer is put in mode MODE or `log-edit-mode' if MODE is nil.
-\\<log-edit-mode-map>
-If SETUP is non-nil, erase the buffer and run `log-edit-hook'.
-Set mark and point around the entire contents of the buffer, so
-that it is easy to kill the contents of the buffer with
-\\[kill-region].  Once the user is done editing the message,
-invoking the command \\[log-edit-done] (`log-edit-done') will
-call CALLBACK to do the actual commit.
-
-PARAMS if non-nil is an alist of variables and buffer-local
-values to give them in the Log Edit buffer.  Possible keys and
-associated values:
- `log-edit-listfun' -- function taking no arguments that returns the list of
- files that are concerned by the current operation (using relative names);
- `log-edit-diff-function' -- function taking no arguments that
- displays a diff of the files concerned by the current operation.
- `vc-log-fileset' -- the VC fileset to be committed (if any).
-
-If BUFFER is non-nil `log-edit' will jump to that buffer, use it
-to edit the log message and go back to the current buffer when
-done.  Otherwise, it uses the current buffer.
-
-\(fn CALLBACK &optional SETUP PARAMS BUFFER MODE &rest IGNORE)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"log-edit" '("log-edit-" "vc-log-")))
-
-;;;***
-
-;;;### (autoloads nil "log-view" "vc/log-view.el" (0 0 0 0))
-;;; Generated autoloads from vc/log-view.el
-
-(autoload 'log-view-mode "log-view" "\
-Major mode for browsing CVS log output.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"log-view" '("log-view-")))
-
-;;;***
-
-;;;### (autoloads nil "lpr" "lpr.el" (0 0 0 0))
-;;; Generated autoloads from lpr.el
-
-(defvar lpr-windows-system (memq system-type '(ms-dos windows-nt)) "\
-Non-nil if running on MS-DOS or MS Windows.")
-
-(defvar lpr-lp-system (memq system-type '(usg-unix-v hpux)) "\
-Non-nil if running on a system type that uses the \"lp\" command.")
-
-(defvar printer-name (and (eq system-type 'ms-dos) "PRN") "\
-The name of a local printer to which data is sent for printing.
-\(Note that PostScript files are sent to `ps-printer-name', which see.)
-
-On Unix-like systems, a string value should be a name understood by
-lpr's -P option; otherwise the value should be nil.
-
-On MS-DOS and MS-Windows systems, a string value is taken as the name of
-a printer device or port, provided `lpr-command' is set to \"\".
-Typical non-default settings would be \"LPT1\" to \"LPT3\" for parallel
-printers, or \"COM1\" to \"COM4\" or \"AUX\" for serial printers, or
-\"//hostname/printer\" for a shared network printer.  You can also set
-it to the name of a file, in which case the output gets appended to that
-file.  If you want to discard the printed output, set this to \"NUL\".")
-
-(custom-autoload 'printer-name "lpr" t)
-
-(defvar lpr-switches nil "\
-List of strings to pass as extra options for the printer program.
-It is recommended to set `printer-name' instead of including an explicit
-switch on this list.
-See `lpr-command'.")
-
-(custom-autoload 'lpr-switches "lpr" t)
-
-(defvar lpr-command (purecopy (cond (lpr-windows-system "") (lpr-lp-system 
"lp") (t "lpr"))) "\
-Name of program for printing a file.
-
-On MS-DOS and MS-Windows systems, if the value is an empty string then
-Emacs will write directly to the printer port named by `printer-name'.
-The programs `print' and `nprint' (the standard print programs on
-Windows NT and Novell Netware respectively) are handled specially, using
-`printer-name' as the destination for output; any other program is
-treated like `lpr' except that an explicit filename is given as the last
-argument.")
-
-(custom-autoload 'lpr-command "lpr" t)
-
-(autoload 'lpr-buffer "lpr" "\
-Print buffer contents without pagination or page headers.
-See the variables `lpr-switches' and `lpr-command'
-for customization of the printer command.
-
-\(fn)" t nil)
-
-(autoload 'print-buffer "lpr" "\
-Paginate and print buffer contents.
-
-The variable `lpr-headers-switches' controls how to paginate.
-If it is nil (the default), we run the `pr' program (or whatever program
-`lpr-page-header-program' specifies) to paginate.
-`lpr-page-header-switches' specifies the switches for that program.
-
-Otherwise, the switches in `lpr-headers-switches' are used
-in the print command itself; we expect them to request pagination.
-
-See the variables `lpr-switches' and `lpr-command'
-for further customization of the printer command.
-
-\(fn)" t nil)
-
-(autoload 'lpr-region "lpr" "\
-Print region contents without pagination or page headers.
-See the variables `lpr-switches' and `lpr-command'
-for customization of the printer command.
-
-\(fn START END)" t nil)
-
-(autoload 'print-region "lpr" "\
-Paginate and print the region contents.
-
-The variable `lpr-headers-switches' controls how to paginate.
-If it is nil (the default), we run the `pr' program (or whatever program
-`lpr-page-header-program' specifies) to paginate.
-`lpr-page-header-switches' specifies the switches for that program.
-
-Otherwise, the switches in `lpr-headers-switches' are used
-in the print command itself; we expect them to request pagination.
-
-See the variables `lpr-switches' and `lpr-command'
-for further customization of the printer command.
-
-\(fn START END)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"lpr" '("lpr-" "print")))
-
-;;;***
-
-;;;### (autoloads nil "ls-lisp" "ls-lisp.el" (0 0 0 0))
-;;; Generated autoloads from ls-lisp.el
-
-(defvar ls-lisp-support-shell-wildcards t "\
-Non-nil means ls-lisp treats file patterns as shell wildcards.
-Otherwise they are treated as Emacs regexps (for backward compatibility).")
-
-(custom-autoload 'ls-lisp-support-shell-wildcards "ls-lisp" t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ls-lisp" '("ls-lisp-")))
-
-;;;***
-
-;;;### (autoloads nil "lunar" "calendar/lunar.el" (0 0 0 0))
-;;; Generated autoloads from calendar/lunar.el
-
-(autoload 'lunar-phases "lunar" "\
-Display the quarters of the moon for last month, this month, and next month.
-If called with an optional prefix argument ARG, prompts for month and year.
-This function is suitable for execution in an init file.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"lunar" '("lunar-" "diary-lunar-phases" "calendar-lunar-phases")))
-
-;;;***
-
-;;;### (autoloads nil "m4-mode" "progmodes/m4-mode.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/m4-mode.el
-
-(autoload 'm4-mode "m4-mode" "\
-A major mode to edit m4 macro files.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"m4-mode" '("m4-")))
-
-;;;***
-
-;;;### (autoloads nil "macros" "macros.el" (0 0 0 0))
-;;; Generated autoloads from macros.el
-
-(autoload 'name-last-kbd-macro "macros" "\
-Assign a name to the last keyboard macro defined.
-Argument SYMBOL is the name to define.
-The symbol's function definition becomes the keyboard macro string.
-Such a \"function\" cannot be called from Lisp, but it is a valid editor 
command.
-
-\(fn SYMBOL)" t nil)
-
-(autoload 'insert-kbd-macro "macros" "\
-Insert in buffer the definition of kbd macro MACRONAME, as Lisp code.
-MACRONAME should be a symbol.
-Optional second arg KEYS means also record the keys it is on
-\(this is the prefix argument, when calling interactively).
-
-This Lisp code will, when executed, define the kbd macro with the same
-definition it has now.  If you say to record the keys, the Lisp code
-will also rebind those keys to the macro.  Only global key bindings
-are recorded since executing this Lisp code always makes global
-bindings.
-
-To save a kbd macro, visit a file of Lisp code such as your `~/.emacs',
-use this command, and then save the file.
-
-\(fn MACRONAME &optional KEYS)" t nil)
-
-(autoload 'kbd-macro-query "macros" "\
-Query user during kbd macro execution.
-  With prefix argument, enters recursive edit, reading keyboard
-commands even within a kbd macro.  You can give different commands
-each time the macro executes.
-  Without prefix argument, asks whether to continue running the macro.
-Your options are: \\<query-replace-map>
-\\[act]        Finish this iteration normally and continue with the next.
-\\[skip]       Skip the rest of this iteration, and start the next.
-\\[exit]       Stop the macro entirely right now.
-\\[recenter]   Redisplay the screen, then ask again.
-\\[edit]       Enter recursive edit; ask again when you exit from that.
-
-\(fn FLAG)" t nil)
-
-(autoload 'apply-macro-to-region-lines "macros" "\
-Apply last keyboard macro to all lines in the region.
-For each line that begins in the region, move to the beginning of
-the line, and run the last keyboard macro.
-
-When called from lisp, this function takes two arguments TOP and
-BOTTOM, describing the current region.  TOP must be before BOTTOM.
-The optional third argument MACRO specifies a keyboard macro to
-execute.
-
-This is useful for quoting or unquoting included text, adding and
-removing comments, or producing tables where the entries are regular.
-
-For example, in Usenet articles, sections of text quoted from another
-author are indented, or have each line start with `>'.  To quote a
-section of text, define a keyboard macro which inserts `>', put point
-and mark at opposite ends of the quoted section, and use
-`\\[apply-macro-to-region-lines]' to mark the entire section.
-
-Suppose you wanted to build a keyword table in C where each entry
-looked like this:
-
-    { \"foo\", foo_data, foo_function },
-    { \"bar\", bar_data, bar_function },
-    { \"baz\", baz_data, baz_function },
-
-You could enter the names in this format:
-
-    foo
-    bar
-    baz
-
-and write a macro to massage a word into a table entry:
-
-    \\C-x (
-       \\M-d { \"\\C-y\", \\C-y_data, \\C-y_function },
-    \\C-x )
-
-and then select the region of un-tablified names and use
-`\\[apply-macro-to-region-lines]' to build the table from the names.
-
-\(fn TOP BOTTOM &optional MACRO)" t nil)
- (define-key ctl-x-map "q" 'kbd-macro-query)
-
-;;;***
-
-;;;### (autoloads nil "mail-extr" "mail/mail-extr.el" (0 0 0 0))
-;;; Generated autoloads from mail/mail-extr.el
-
-(autoload 'mail-extract-address-components "mail-extr" "\
-Given an RFC-822 address ADDRESS, extract full name and canonical address.
-Returns a list of the form (FULL-NAME CANONICAL-ADDRESS).  If no
-name can be extracted, FULL-NAME will be nil.  Also see
-`mail-extr-ignore-single-names' and
-`mail-extr-ignore-realname-equals-mailbox-name'.
-
-If the optional argument ALL is non-nil, then ADDRESS can contain zero
-or more recipients, separated by commas, and we return a list of
-the form ((FULL-NAME CANONICAL-ADDRESS) ...) with one element for
-each recipient.  If ALL is nil, then if ADDRESS contains more than
-one recipients, all but the first is ignored.
-
-ADDRESS may be a string or a buffer.  If it is a buffer, the visible
-\(narrowed) portion of the buffer will be interpreted as the address.
-\(This feature exists so that the clever caller might be able to avoid
-consing a string.)
-
-\(fn ADDRESS &optional ALL)" nil nil)
-
-(autoload 'what-domain "mail-extr" "\
-Convert mail domain DOMAIN to the country it corresponds to.
-
-\(fn DOMAIN)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mail-extr" '("mail-extr-")))
-
-;;;***
-
-;;;### (autoloads nil "mail-hist" "mail/mail-hist.el" (0 0 0 0))
-;;; Generated autoloads from mail/mail-hist.el
-
-(autoload 'mail-hist-define-keys "mail-hist" "\
-Define keys for accessing mail header history.  For use in hooks.
-
-\(fn)" nil nil)
-
-(autoload 'mail-hist-enable "mail-hist" "\
-
-
-\(fn)" nil nil)
-
-(defvar mail-hist-keep-history t "\
-Non-nil means keep a history for headers and text of outgoing mail.")
-
-(custom-autoload 'mail-hist-keep-history "mail-hist" t)
-
-(autoload 'mail-hist-put-headers-into-history "mail-hist" "\
-Put headers and contents of this message into mail header history.
-Each header has its own independent history, as does the body of the
-message.
-
-This function normally would be called when the message is sent.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mail-hist" '("mail-hist-")))
-
-;;;***
-
-;;;### (autoloads nil "mail-parse" "mail/mail-parse.el" (0 0 0 0))
-;;; Generated autoloads from mail/mail-parse.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mail-parse" '("mail-")))
-
-;;;***
-
-;;;### (autoloads nil "mail-prsvr" "mail/mail-prsvr.el" (0 0 0 0))
-;;; Generated autoloads from mail/mail-prsvr.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mail-prsvr" '("mail-parse-")))
-
-;;;***
-
-;;;### (autoloads nil "mail-source" "gnus/mail-source.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from gnus/mail-source.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mail-source" '("mail-source")))
-
-;;;***
-
-;;;### (autoloads nil "mail-utils" "mail/mail-utils.el" (0 0 0 0))
-;;; Generated autoloads from mail/mail-utils.el
-
-(defvar mail-use-rfc822 nil "\
-If non-nil, use a full, hairy RFC822 parser on mail addresses.
-Otherwise, (the default) use a smaller, somewhat faster, and
-often correct parser.")
-
-(custom-autoload 'mail-use-rfc822 "mail-utils" t)
-
-(defvar mail-dont-reply-to-names nil "\
-Regexp specifying addresses to prune from a reply message.
-If this is nil, it is set the first time you compose a reply, to
-a value which excludes your own email address.
-
-Matching addresses are excluded from the CC field in replies, and
-also the To field, unless this would leave an empty To field.")
-
-(custom-autoload 'mail-dont-reply-to-names "mail-utils" t)
-
-(autoload 'mail-file-babyl-p "mail-utils" "\
-Return non-nil if FILE is a Babyl file.
-
-\(fn FILE)" nil nil)
-
-(autoload 'mail-quote-printable "mail-utils" "\
-Convert a string to the \"quoted printable\" Q encoding if necessary.
-If the string contains only ASCII characters and no troublesome ones,
-we return it unconverted.
-
-If the optional argument WRAPPER is non-nil,
-we add the wrapper characters =?ISO-8859-1?Q?....?=.
-
-\(fn STRING &optional WRAPPER)" nil nil)
-
-(autoload 'mail-quote-printable-region "mail-utils" "\
-Convert the region to the \"quoted printable\" Q encoding.
-If the optional argument WRAPPER is non-nil,
-we add the wrapper characters =?ISO-8859-1?Q?....?=.
-
-\(fn BEG END &optional WRAPPER)" t nil)
-
-(autoload 'mail-unquote-printable "mail-utils" "\
-Undo the \"quoted printable\" encoding.
-If the optional argument WRAPPER is non-nil,
-we expect to find and remove the wrapper characters =?ISO-8859-1?Q?....?=.
-
-\(fn STRING &optional WRAPPER)" nil nil)
-
-(autoload 'mail-unquote-printable-region "mail-utils" "\
-Undo the \"quoted printable\" encoding in buffer from BEG to END.
-If the optional argument WRAPPER is non-nil,
-we expect to find and remove the wrapper characters =?ISO-8859-1?Q?....?=.
-On encountering malformed quoted-printable text, exits with an error,
-unless NOERROR is non-nil, in which case it continues, and returns nil
-when finished.  Returns non-nil on successful completion.
-If UNIBYTE is non-nil, insert converted characters as unibyte.
-That is useful if you are going to character code decoding afterward,
-as Rmail does.
-
-\(fn BEG END &optional WRAPPER NOERROR UNIBYTE)" t nil)
-
-(autoload 'mail-fetch-field "mail-utils" "\
-Return the value of the header field whose type is FIELD-NAME.
-If second arg LAST is non-nil, use the last field of type FIELD-NAME.
-If third arg ALL is non-nil, concatenate all such fields with commas between.
-If 4th arg LIST is non-nil, return a list of all such fields.
-The buffer should be narrowed to just the header, else false
-matches may be returned from the message body.
-
-\(fn FIELD-NAME &optional LAST ALL LIST)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mail-utils" '("mail-")))
-
-;;;***
-
-;;;### (autoloads nil "mailabbrev" "mail/mailabbrev.el" (0 0 0 0))
-;;; Generated autoloads from mail/mailabbrev.el
-
-(defvar mail-abbrevs-mode nil "\
-Non-nil if Mail-Abbrevs mode is enabled.
-See the `mail-abbrevs-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `mail-abbrevs-mode'.")
-
-(custom-autoload 'mail-abbrevs-mode "mailabbrev" nil)
-
-(autoload 'mail-abbrevs-mode "mailabbrev" "\
-Toggle abbrev expansion of mail aliases (Mail Abbrevs mode).
-With a prefix argument ARG, enable Mail Abbrevs mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Mail Abbrevs mode is a global minor mode.  When enabled,
-abbrev-like expansion is performed when editing certain mail
-headers (those specified by `mail-abbrev-mode-regexp'), based on
-the entries in your `mail-personal-alias-file'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'mail-abbrevs-setup "mailabbrev" "\
-Initialize use of the `mailabbrev' package.
-
-\(fn)" nil nil)
-
-(autoload 'build-mail-abbrevs "mailabbrev" "\
-Read mail aliases from personal mail alias file and set `mail-abbrevs'.
-By default this is the file specified by `mail-personal-alias-file'.
-
-\(fn &optional FILE RECURSIVEP)" nil nil)
-
-(autoload 'define-mail-abbrev "mailabbrev" "\
-Define NAME as a mail alias abbrev that translates to DEFINITION.
-If DEFINITION contains multiple addresses, separate them with commas.
-
-Optional argument FROM-MAILRC-FILE means that DEFINITION comes
-from a mailrc file.  In that case, addresses are separated with
-spaces and addresses with embedded spaces are surrounded by
-double-quotes.
-
-\(fn NAME DEFINITION &optional FROM-MAILRC-FILE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mailabbrev" '("merge-mail-abbrevs" "mail-" "rebuild-mail-abbrevs")))
-
-;;;***
-
-;;;### (autoloads nil "mailalias" "mail/mailalias.el" (0 0 0 0))
-;;; Generated autoloads from mail/mailalias.el
-
-(defvar mail-complete-style 'angles "\
-Specifies how \\[mail-complete] formats the full name when it completes.
-If nil, they contain just the return address like:
-       address@hidden
-If `parens', they look like:
-       address@hidden (Elvis Parsley)
-If `angles', they look like:
-       Elvis Parsley <address@hidden>")
-
-(custom-autoload 'mail-complete-style "mailalias" t)
-
-(autoload 'expand-mail-aliases "mailalias" "\
-Expand all mail aliases in suitable header fields found between BEG and END.
-If interactive, expand in header fields.
-Suitable header fields are `To', `From', `CC' and `BCC', `Reply-to', and
-their `Resent-' variants.
-
-Optional second arg EXCLUDE may be a regular expression defining text to be
-removed from alias expansions.
-
-\(fn BEG END &optional EXCLUDE)" t nil)
-
-(autoload 'define-mail-alias "mailalias" "\
-Define NAME as a mail alias that translates to DEFINITION.
-This means that sending a message to NAME will actually send to DEFINITION.
-
-Normally, the addresses in DEFINITION must be separated by commas.
-If FROM-MAILRC-FILE is non-nil, then addresses in DEFINITION
-can be separated by spaces; an address can contain spaces
-if it is quoted with double-quotes.
-
-\(fn NAME DEFINITION &optional FROM-MAILRC-FILE)" t nil)
-
-(autoload 'mail-completion-at-point-function "mailalias" "\
-Compute completion data for mail aliases.
-For use on `completion-at-point-functions'.
-
-\(fn)" nil nil)
-
-(autoload 'mail-complete "mailalias" "\
-Perform completion on header field or word preceding point.
-Completable headers are according to `mail-complete-alist'.  If none matches
-current header, calls `mail-complete-function' and passes prefix ARG if any.
-
-\(fn ARG)" t nil)
-
-(make-obsolete 'mail-complete 'mail-completion-at-point-function '"24.1")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mailalias" '("mail-" "build-mail-aliases")))
-
-;;;***
-
-;;;### (autoloads nil "mailcap" "net/mailcap.el" (0 0 0 0))
-;;; Generated autoloads from net/mailcap.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mailcap" '("mailcap-")))
-
-;;;***
-
-;;;### (autoloads nil "mailclient" "mail/mailclient.el" (0 0 0 0))
-;;; Generated autoloads from mail/mailclient.el
-
-(autoload 'mailclient-send-it "mailclient" "\
-Pass current buffer on to the system's mail client.
-Suitable value for `send-mail-function'.
-The mail client is taken to be the handler of mailto URLs.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mailclient" '("mailclient-")))
-
-;;;***
-
-;;;### (autoloads nil "mailheader" "mail/mailheader.el" (0 0 0 0))
-;;; Generated autoloads from mail/mailheader.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mailheader" '("mail-header")))
-
-;;;***
-
-;;;### (autoloads nil "mairix" "net/mairix.el" (0 0 0 0))
-;;; Generated autoloads from net/mairix.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mairix" '("mairix-")))
-
-;;;***
-
-;;;### (autoloads nil "make-mode" "progmodes/make-mode.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from progmodes/make-mode.el
-
-(autoload 'makefile-mode "make-mode" "\
-Major mode for editing standard Makefiles.
-
-If you are editing a file for a different make, try one of the
-variants `makefile-automake-mode', `makefile-gmake-mode',
-`makefile-makepp-mode', `makefile-bsdmake-mode' or,
-`makefile-imake-mode'.  All but the last should be correctly
-chosen based on the file name, except if it is *.mk.  This
-function ends by invoking the function(s) `makefile-mode-hook'.
-
-It is strongly recommended to use `font-lock-mode', because that
-provides additional parsing information.  This is used for
-example to see that a rule action `echo foo: bar' is a not rule
-dependency, despite the colon.
-
-\\{makefile-mode-map}
-
-In the browser, use the following keys:
-
-\\{makefile-browser-map}
-
-Makefile mode can be configured by modifying the following variables:
-
-`makefile-browser-buffer-name':
-    Name of the macro- and target browser buffer.
-
-`makefile-target-colon':
-    The string that gets appended to all target names
-    inserted by `makefile-insert-target'.
-    \":\" or \"::\" are quite common values.
-
-`makefile-macro-assign':
-   The string that gets appended to all macro names
-   inserted by `makefile-insert-macro'.
-   The normal value should be \" = \", since this is what
-   standard make expects.  However, newer makes such as dmake
-   allow a larger variety of different macro assignments, so you
-   might prefer to use \" += \" or \" := \" .
-
-`makefile-tab-after-target-colon':
-   If you want a TAB (instead of a space) to be appended after the
-   target colon, then set this to a non-nil value.
-
-`makefile-browser-leftmost-column':
-   Number of blanks to the left of the browser selection mark.
-
-`makefile-browser-cursor-column':
-   Column in which the cursor is positioned when it moves
-   up or down in the browser.
-
-`makefile-browser-selected-mark':
-   String used to mark selected entries in the browser.
-
-`makefile-browser-unselected-mark':
-   String used to mark unselected entries in the browser.
-
-`makefile-browser-auto-advance-after-selection-p':
-   If this variable is set to a non-nil value the cursor
-   will automagically advance to the next line after an item
-   has been selected in the browser.
-
-`makefile-pickup-everything-picks-up-filenames-p':
-   If this variable is set to a non-nil value then
-   `makefile-pickup-everything' also picks up filenames as targets
-   (i.e. it calls `makefile-pickup-filenames-as-targets'), otherwise
-   filenames are omitted.
-
-`makefile-cleanup-continuations':
-   If this variable is set to a non-nil value then Makefile mode
-   will assure that no line in the file ends with a backslash
-   (the continuation character) followed by any whitespace.
-   This is done by silently removing the trailing whitespace, leaving
-   the backslash itself intact.
-   IMPORTANT: Please note that enabling this option causes Makefile mode
-   to MODIFY A FILE WITHOUT YOUR CONFIRMATION when \"it seems necessary\".
-
-`makefile-browser-hook':
-   A function or list of functions to be called just before the
-   browser is entered. This is executed in the makefile buffer.
-
-`makefile-special-targets-list':
-   List of special targets. You will be offered to complete
-   on one of those in the minibuffer whenever you enter a `.'.
-   at the beginning of a line in Makefile mode.
-
-\(fn)" t nil)
-
-(autoload 'makefile-automake-mode "make-mode" "\
-An adapted `makefile-mode' that knows about automake.
-
-\(fn)" t nil)
-
-(autoload 'makefile-gmake-mode "make-mode" "\
-An adapted `makefile-mode' that knows about gmake.
-
-\(fn)" t nil)
-
-(autoload 'makefile-makepp-mode "make-mode" "\
-An adapted `makefile-mode' that knows about makepp.
-
-\(fn)" t nil)
-
-(autoload 'makefile-bsdmake-mode "make-mode" "\
-An adapted `makefile-mode' that knows about BSD make.
-
-\(fn)" t nil)
-
-(autoload 'makefile-imake-mode "make-mode" "\
-An adapted `makefile-mode' that knows about imake.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"make-mode" '("makefile-")))
-
-;;;***
-
-;;;### (autoloads nil "makeinfo" "textmodes/makeinfo.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/makeinfo.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"makeinfo" '("makeinfo-")))
-
-;;;***
-
-;;;### (autoloads nil "makesum" "makesum.el" (0 0 0 0))
-;;; Generated autoloads from makesum.el
-
-(autoload 'make-command-summary "makesum" "\
-Make a summary of current key bindings in the buffer *Summary*.
-Previous contents of that buffer are killed first.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"makesum" '("double-column")))
-
-;;;***
-
-;;;### (autoloads nil "man" "man.el" (0 0 0 0))
-;;; Generated autoloads from man.el
-
-(defalias 'manual-entry 'man)
-
-(autoload 'man "man" "\
-Get a Un*x manual page and put it in a buffer.
-This command is the top-level command in the man package.
-It runs a Un*x command to retrieve and clean a manpage in the
-background and places the results in a `Man-mode' browsing
-buffer.  The variable `Man-width' defines the number of columns in
-formatted manual pages.  The buffer is displayed immediately.
-The variable `Man-notify-method' defines how the buffer is displayed.
-If a buffer already exists for this man page, it will be displayed
-without running the man command.
-
-For a manpage from a particular section, use either of the
-following.  \"cat(1)\" is how cross-references appear and is
-passed to man as \"1 cat\".
-
-    cat(1)
-    1 cat
-
-To see manpages from all sections related to a subject, use an
-\"all pages\" option (which might be \"-a\" if it's not the
-default), then step through with `Man-next-manpage' 
(\\<Man-mode-map>\\[Man-next-manpage]) etc.
-Add to `Man-switches' to make this option permanent.
-
-    -a chmod
-
-An explicit filename can be given too.  Use -l if it might
-otherwise look like a page name.
-
-    /my/file/name.1.gz
-    -l somefile.1
-
-An \"apropos\" query with -k gives a buffer of matching page
-names or descriptions.  The pattern argument is usually an
-\"grep -E\" style regexp.
-
-    -k pattern
-
-\(fn MAN-ARGS)" t nil)
-
-(autoload 'man-follow "man" "\
-Get a Un*x manual page of the item under point and put it in a buffer.
-
-\(fn MAN-ARGS)" t nil)
-
-(autoload 'Man-bookmark-jump "man" "\
-Default bookmark handler for Man buffers.
-
-\(fn BOOKMARK)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"man" '("Man-" "man")))
-
-;;;***
-
-;;;### (autoloads nil "mantemp" "progmodes/mantemp.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/mantemp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mantemp" '("mantemp-")))
-
-;;;***
-
-;;;### (autoloads nil "map" "emacs-lisp/map.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/map.el
-(push (purecopy '(map 1 1)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"map" '("map")))
-
-;;;***
-
-;;;### (autoloads nil "master" "master.el" (0 0 0 0))
-;;; Generated autoloads from master.el
-(push (purecopy '(master 1 0 2)) package--builtin-versions)
-
-(autoload 'master-mode "master" "\
-Toggle Master mode.
-With a prefix argument ARG, enable Master mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-When Master mode is enabled, you can scroll the slave buffer
-using the following commands:
-
-\\{master-mode-map}
-
-The slave buffer is stored in the buffer-local variable `master-of'.
-You can set this variable using `master-set-slave'.  You can show
-yourself the value of `master-of' by calling `master-show-slave'.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"master" '("master-")))
-
-;;;***
-
-;;;### (autoloads nil "mb-depth" "mb-depth.el" (0 0 0 0))
-;;; Generated autoloads from mb-depth.el
-
-(defvar minibuffer-depth-indicate-mode nil "\
-Non-nil if Minibuffer-Depth-Indicate mode is enabled.
-See the `minibuffer-depth-indicate-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `minibuffer-depth-indicate-mode'.")
-
-(custom-autoload 'minibuffer-depth-indicate-mode "mb-depth" nil)
-
-(autoload 'minibuffer-depth-indicate-mode "mb-depth" "\
-Toggle Minibuffer Depth Indication mode.
-With a prefix argument ARG, enable Minibuffer Depth Indication
-mode if ARG is positive, and disable it otherwise.  If called
-from Lisp, enable the mode if ARG is omitted or nil.
-
-Minibuffer Depth Indication mode is a global minor mode.  When
-enabled, any recursive use of the minibuffer will show the
-recursion depth in the minibuffer prompt.  This is only useful if
-`enable-recursive-minibuffers' is non-nil.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mb-depth" '("minibuffer-depth-")))
-
-;;;***
-
-;;;### (autoloads nil "md4" "md4.el" (0 0 0 0))
-;;; Generated autoloads from md4.el
-(push (purecopy '(md4 1 0)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"md4" '("md4")))
-
-;;;***
-
-;;;### (autoloads nil "message" "gnus/message.el" (0 0 0 0))
-;;; Generated autoloads from gnus/message.el
-
-(define-mail-user-agent 'message-user-agent 'message-mail 
'message-send-and-exit 'message-kill-buffer 'message-send-hook)
-
-(autoload 'message-mode "message" "\
-Major mode for editing mail and news to be sent.
-Like Text Mode but with these additional commands:\\<message-mode-map>
-C-c C-s  `message-send' (send the message)  C-c C-c  `message-send-and-exit'
-C-c C-d  Postpone sending the message       C-c C-k  Kill the message
-C-c C-f  move to a header field (and create it if there isn't):
-        C-c C-f C-t  move to To        C-c C-f C-s  move to Subject
-        C-c C-f C-c  move to Cc        C-c C-f C-b  move to Bcc
-        C-c C-f C-w  move to Fcc       C-c C-f C-r  move to Reply-To
-        C-c C-f C-u  move to Summary   C-c C-f C-n  move to Newsgroups
-        C-c C-f C-k  move to Keywords  C-c C-f C-d  move to Distribution
-        C-c C-f C-o  move to From (\"Originator\")
-        C-c C-f C-f  move to Followup-To
-        C-c C-f C-m  move to Mail-Followup-To
-        C-c C-f C-e  move to Expires
-        C-c C-f C-i  cycle through Importance values
-        C-c C-f s    change subject and append \"(was: <Old Subject>)\"
-        C-c C-f x    crossposting with FollowUp-To header and note in body
-        C-c C-f t    replace To: header with contents of Cc: or Bcc:
-        C-c C-f a    Insert X-No-Archive: header and a note in the body
-C-c C-t  `message-insert-to' (add a To header to a news followup)
-C-c C-l  `message-to-list-only' (removes all but list address in to/cc)
-C-c C-n  `message-insert-newsgroups' (add a Newsgroup header to a news reply)
-C-c C-b  `message-goto-body' (move to beginning of message text).
-C-c C-i  `message-goto-signature' (move to the beginning of the signature).
-C-c C-w  `message-insert-signature' (insert `message-signature-file' file).
-C-c C-y  `message-yank-original' (insert current message, if any).
-C-c C-q  `message-fill-yanked-message' (fill what was yanked).
-C-c C-e  `message-elide-region' (elide the text between point and mark).
-C-c C-v  `message-delete-not-region' (remove the text outside the region).
-C-c C-z  `message-kill-to-signature' (kill the text up to the signature).
-C-c C-r  `message-caesar-buffer-body' (rot13 the message body).
-C-c C-a  `mml-attach-file' (attach a file as MIME).
-C-c C-u  `message-insert-or-toggle-importance'  (insert or cycle importance).
-C-c M-n  `message-insert-disposition-notification-to'  (request receipt).
-C-c M-m  `message-mark-inserted-region' (mark region with enclosing tags).
-C-c M-f  `message-mark-insert-file' (insert file marked with enclosing tags).
-M-RET    `message-newline-and-reformat' (break the line and reformat).
-
-\(fn)" t nil)
-
-(autoload 'message-mail "message" "\
-Start editing a mail message to be sent.
-OTHER-HEADERS is an alist of header/value pairs.  CONTINUE says whether
-to continue editing a message already being composed.  SWITCH-FUNCTION
-is a function used to switch to and display the mail buffer.
-
-\(fn &optional TO SUBJECT OTHER-HEADERS CONTINUE SWITCH-FUNCTION YANK-ACTION 
SEND-ACTIONS RETURN-ACTION &rest IGNORED)" t nil)
-
-(autoload 'message-news "message" "\
-Start editing a news article to be sent.
-
-\(fn &optional NEWSGROUPS SUBJECT)" t nil)
-
-(autoload 'message-reply "message" "\
-Start editing a reply to the article in the current buffer.
-
-\(fn &optional TO-ADDRESS WIDE SWITCH-FUNCTION)" t nil)
-
-(autoload 'message-wide-reply "message" "\
-Make a \"wide\" reply to the message in the current buffer.
-
-\(fn &optional TO-ADDRESS)" t nil)
-
-(autoload 'message-followup "message" "\
-Follow up to the message in the current buffer.
-If TO-NEWSGROUPS, use that as the new Newsgroups line.
-
-\(fn &optional TO-NEWSGROUPS)" t nil)
-
-(autoload 'message-cancel-news "message" "\
-Cancel an article you posted.
-If ARG, allow editing of the cancellation message.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'message-supersede "message" "\
-Start composing a message to supersede the current message.
-This is done simply by taking the old article and adding a Supersedes
-header line with the old Message-ID.
-
-\(fn)" t nil)
-
-(autoload 'message-recover "message" "\
-Reread contents of current buffer from its last auto-save file.
-
-\(fn)" t nil)
-
-(autoload 'message-forward "message" "\
-Forward the current message via mail.
-Optional NEWS will use news to forward instead of mail.
-Optional DIGEST will use digest to forward.
-
-\(fn &optional NEWS DIGEST)" t nil)
-
-(autoload 'message-forward-make-body "message" "\
-
-
-\(fn FORWARD-BUFFER &optional DIGEST)" nil nil)
-
-(autoload 'message-forward-rmail-make-body "message" "\
-
-
-\(fn FORWARD-BUFFER)" nil nil)
-
-(autoload 'message-insinuate-rmail "message" "\
-Let RMAIL use message to forward.
-
-\(fn)" t nil)
-
-(autoload 'message-resend "message" "\
-Resend the current article to ADDRESS.
-
-\(fn ADDRESS)" t nil)
-
-(autoload 'message-bounce "message" "\
-Re-mail the current message.
-This only makes sense if the current message is a bounce message that
-contains some mail you have written which has been bounced back to
-you.
-
-\(fn)" t nil)
-
-(autoload 'message-mail-other-window "message" "\
-Like `message-mail' command, but display mail buffer in another window.
-
-\(fn &optional TO SUBJECT)" t nil)
-
-(autoload 'message-mail-other-frame "message" "\
-Like `message-mail' command, but display mail buffer in another frame.
-
-\(fn &optional TO SUBJECT)" t nil)
-
-(autoload 'message-news-other-window "message" "\
-Start editing a news article to be sent.
-
-\(fn &optional NEWSGROUPS SUBJECT)" t nil)
-
-(autoload 'message-news-other-frame "message" "\
-Start editing a news article to be sent.
-
-\(fn &optional NEWSGROUPS SUBJECT)" t nil)
-
-(autoload 'message-bold-region "message" "\
-Bold all nonblank characters in the region.
-Works by overstriking characters.
-Called from program, takes two arguments START and END
-which specify the range to operate on.
-
-\(fn START END)" t nil)
-
-(autoload 'message-unbold-region "message" "\
-Remove all boldness (overstruck characters) in the region.
-Called from program, takes two arguments START and END
-which specify the range to operate on.
-
-\(fn START END)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"message" '("message-" "nil")))
-
-;;;***
-
-;;;### (autoloads nil "meta-mode" "progmodes/meta-mode.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from progmodes/meta-mode.el
-(push (purecopy '(meta-mode 1 0)) package--builtin-versions)
-
-(autoload 'metafont-mode "meta-mode" "\
-Major mode for editing Metafont sources.
-
-\(fn)" t nil)
-
-(autoload 'metapost-mode "meta-mode" "\
-Major mode for editing MetaPost sources.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"meta-mode" '("meta" "font-lock-match-meta-declaration-item-and-skip-to-next")))
-
-;;;***
-
-;;;### (autoloads nil "metamail" "mail/metamail.el" (0 0 0 0))
-;;; Generated autoloads from mail/metamail.el
-
-(autoload 'metamail-interpret-header "metamail" "\
-Interpret a header part of a MIME message in current buffer.
-Its body part is not interpreted at all.
-
-\(fn)" t nil)
-
-(autoload 'metamail-interpret-body "metamail" "\
-Interpret a body part of a MIME message in current buffer.
-Optional argument VIEWMODE specifies the value of the
-EMACS_VIEW_MODE environment variable (defaulted to 1).
-Optional argument NODISPLAY non-nil means buffer is not
-redisplayed as output is inserted.
-Its header part is not interpreted at all.
-
-\(fn &optional VIEWMODE NODISPLAY)" t nil)
-
-(autoload 'metamail-buffer "metamail" "\
-Process current buffer through `metamail'.
-Optional argument VIEWMODE specifies the value of the
-EMACS_VIEW_MODE environment variable (defaulted to 1).
-Optional argument BUFFER specifies a buffer to be filled (nil
-means current).
-Optional argument NODISPLAY non-nil means buffer is not
-redisplayed as output is inserted.
-
-\(fn &optional VIEWMODE BUFFER NODISPLAY)" t nil)
-
-(autoload 'metamail-region "metamail" "\
-Process current region through `metamail'.
-Optional argument VIEWMODE specifies the value of the
-EMACS_VIEW_MODE environment variable (defaulted to 1).
-Optional argument BUFFER specifies a buffer to be filled (nil
-means current).
-Optional argument NODISPLAY non-nil means buffer is not
-redisplayed as output is inserted.
-
-\(fn BEG END &optional VIEWMODE BUFFER NODISPLAY)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"metamail" '("metamail-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-acros" "mh-e/mh-acros.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-acros.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-acros" '("mh-" "with-mh-folder-updating" "def")))
-
-;;;***
-
-;;;### (autoloads nil "mh-alias" "mh-e/mh-alias.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-alias.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-alias" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-buffers" "mh-e/mh-buffers.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-buffers.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-buffers" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-comp" "mh-e/mh-comp.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-comp.el
-
-(autoload 'mh-smail "mh-comp" "\
-Compose a message with the MH mail system.
-See `mh-send' for more details on composing mail.
-
-\(fn)" t nil)
-
-(autoload 'mh-smail-other-window "mh-comp" "\
-Compose a message with the MH mail system in other window.
-See `mh-send' for more details on composing mail.
-
-\(fn)" t nil)
-
-(autoload 'mh-smail-batch "mh-comp" "\
-Compose a message with the MH mail system.
-
-This function does not prompt the user for any header fields, and
-thus is suitable for use by programs that want to create a mail
-buffer. Users should use \\[mh-smail] to compose mail.
-
-Optional arguments for setting certain fields include TO,
-SUBJECT, and OTHER-HEADERS. Additional arguments are IGNORED.
-
-This function remains for Emacs 21 compatibility. New
-applications should use `mh-user-agent-compose'.
-
-\(fn &optional TO SUBJECT OTHER-HEADERS &rest IGNORED)" nil nil)
-
-(define-mail-user-agent 'mh-e-user-agent 'mh-user-agent-compose 
'mh-send-letter 'mh-fully-kill-draft 'mh-before-send-letter-hook)
-
-(autoload 'mh-user-agent-compose "mh-comp" "\
-Set up mail composition draft with the MH mail system.
-This is the `mail-user-agent' entry point to MH-E. This function
-conforms to the contract specified by `define-mail-user-agent'
-which means that this function should accept the same arguments
-as `compose-mail'.
-
-The optional arguments TO and SUBJECT specify recipients and the
-initial Subject field, respectively.
-
-OTHER-HEADERS is an alist specifying additional header fields.
-Elements look like (HEADER . VALUE) where both HEADER and VALUE
-are strings.
-
-CONTINUE, SWITCH-FUNCTION, YANK-ACTION, SEND-ACTIONS, and
-RETURN-ACTION and any additional arguments are IGNORED.
-
-\(fn &optional TO SUBJECT OTHER-HEADERS CONTINUE SWITCH-FUNCTION YANK-ACTION 
SEND-ACTIONS RETURN-ACTION &rest IGNORED)" nil nil)
-
-(autoload 'mh-send-letter "mh-comp" "\
-Save draft and send message.
-
-When you are all through editing a message, you send it with this
-command. You can give a prefix argument ARG to monitor the first stage
-of the delivery; this output can be found in a buffer called \"*MH-E
-Mail Delivery*\".
-
-The hook `mh-before-send-letter-hook' is run at the beginning of
-this command. For example, if you want to check your spelling in
-your message before sending, add the function `ispell-message'.
-
-Unless `mh-insert-auto-fields' had previously been called
-manually, the function `mh-insert-auto-fields' is called to
-insert fields based upon the recipients. If fields are added, you
-are given a chance to see and to confirm these fields before the
-message is actually sent. You can do away with this confirmation
-by turning off the option `mh-auto-fields-prompt-flag'.
-
-In case the MH \"send\" program is installed under a different name,
-use `mh-send-prog' to tell MH-E the name.
-
-The hook `mh-annotate-msg-hook' is run after annotating the
-message and scan line.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'mh-fully-kill-draft "mh-comp" "\
-Quit editing and delete draft message.
-
-If for some reason you are not happy with the draft, you can use
-this command to kill the draft buffer and delete the draft
-message. Use the command \\[kill-buffer] if you don't want to
-delete the draft message.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-comp" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-compat" "mh-e/mh-compat.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-compat.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-compat" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-e" "mh-e/mh-e.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-e.el
-(push (purecopy '(mh-e 8 6 -4)) package--builtin-versions)
-
-(put 'mh-progs 'risky-local-variable t)
-
-(put 'mh-lib 'risky-local-variable t)
-
-(put 'mh-lib-progs 'risky-local-variable t)
-
-(autoload 'mh-version "mh-e" "\
-Display version information about MH-E and the MH mail handling system.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-e" '("mh-" "def")))
-
-;;;***
-
-;;;### (autoloads nil "mh-folder" "mh-e/mh-folder.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-folder.el
-
-(autoload 'mh-rmail "mh-folder" "\
-Incorporate new mail with MH.
-Scan an MH folder if ARG is non-nil.
-
-This function is an entry point to MH-E, the Emacs interface to
-the MH mail system.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'mh-nmail "mh-folder" "\
-Check for new mail in inbox folder.
-Scan an MH folder if ARG is non-nil.
-
-This function is an entry point to MH-E, the Emacs interface to
-the MH mail system.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'mh-folder-mode "mh-folder" "\
-Major MH-E mode for \"editing\" an MH folder scan 
listing.\\<mh-folder-mode-map>
-
-You can show the message the cursor is pointing to, and step through
-the messages. Messages can be marked for deletion or refiling into
-another folder; these commands are executed all at once with a
-separate command.
-
-Options that control this mode can be changed with
-\\[customize-group]; specify the \"mh\" group. In particular, please
-see the `mh-scan-format-file' option if you wish to modify scan's
-format.
-
-When a folder is visited, the hook `mh-folder-mode-hook' is run.
-
-Ranges
-======
-Many commands that operate on individual messages, such as
-`mh-forward' or `mh-refile-msg' take a RANGE argument. This argument
-can be used in several ways.
-
-If you provide the prefix argument (\\[universal-argument]) to
-these commands, then you will be prompted for the message range.
-This can be any valid MH range which can include messages,
-sequences, and the abbreviations (described in the mh(1) man
-page):
-
-<num1>-<num2>
-    Indicates all messages in the range <num1> to <num2>, inclusive.
-    The range must be nonempty.
-
-<num>:N
-<num>:+N
-<num>:-N
-    Up to N messages beginning with (or ending with) message num. Num
-    may be any of the predefined symbols: first, prev, cur, next or
-    last.
-
-first:N
-prev:N
-next:N
-last:N
-    The first, previous, next or last messages, if they exist.
-
-all
-    All of the messages.
-
-For example, a range that shows all of these things is `1 2 3
-5-10 last:5 unseen'.
-
-If the option `transient-mark-mode' is set to t and you set a
-region in the MH-Folder buffer, then the MH-E command will
-perform the operation on all messages in that region.
-
-\\{mh-folder-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-folder" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-funcs" "mh-e/mh-funcs.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-funcs.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-funcs" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-identity" "mh-e/mh-identity.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from mh-e/mh-identity.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-identity" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-inc" "mh-e/mh-inc.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-inc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-inc" '("mh-inc-spool-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-junk" "mh-e/mh-junk.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-junk.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-junk" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-letter" "mh-e/mh-letter.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-letter.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-letter" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-limit" "mh-e/mh-limit.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-limit.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-limit" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-mime" "mh-e/mh-mime.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-mime.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-mime" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-print" "mh-e/mh-print.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-print.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-print" '("mh-p")))
-
-;;;***
-
-;;;### (autoloads nil "mh-scan" "mh-e/mh-scan.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-scan.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-scan" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-search" "mh-e/mh-search.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-search.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-search" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-seq" "mh-e/mh-seq.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-seq.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-seq" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-show" "mh-e/mh-show.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-show.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-show" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-speed" "mh-e/mh-speed.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-speed.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-speed" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-thread" "mh-e/mh-thread.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-thread.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-thread" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-tool-bar" "mh-e/mh-tool-bar.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from mh-e/mh-tool-bar.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-tool-bar" '("mh-tool-bar-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-utils" "mh-e/mh-utils.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-utils.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-utils" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "mh-xface" "mh-e/mh-xface.el" (0 0 0 0))
-;;; Generated autoloads from mh-e/mh-xface.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mh-xface" '("mh-")))
-
-;;;***
-
-;;;### (autoloads nil "midnight" "midnight.el" (0 0 0 0))
-;;; Generated autoloads from midnight.el
-
-(defvar midnight-mode nil "\
-Non-nil if Midnight mode is enabled.
-See the `midnight-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `midnight-mode'.")
-
-(custom-autoload 'midnight-mode "midnight" nil)
-
-(autoload 'midnight-mode "midnight" "\
-Non-nil means run `midnight-hook' at midnight.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'clean-buffer-list "midnight" "\
-Kill old buffers that have not been displayed recently.
-The relevant variables are `clean-buffer-list-delay-general',
-`clean-buffer-list-delay-special', `clean-buffer-list-kill-buffer-names',
-`clean-buffer-list-kill-never-buffer-names',
-`clean-buffer-list-kill-regexps' and
-`clean-buffer-list-kill-never-regexps'.
-While processing buffers, this procedure displays messages containing
-the current date/time, buffer name, how many seconds ago it was
-displayed (can be nil if the buffer was never displayed) and its
-lifetime, i.e., its \"age\" when it will be purged.
-
-\(fn)" t nil)
-
-(autoload 'midnight-delay-set "midnight" "\
-Modify `midnight-timer' according to `midnight-delay'.
-Sets the first argument SYMB (which must be symbol `midnight-delay')
-to its second argument TM.
-
-\(fn SYMB TM)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"midnight" '("midnight-" "clean-buffer-list-")))
-
-;;;***
-
-;;;### (autoloads nil "minibuf-eldef" "minibuf-eldef.el" (0 0 0 0))
-;;; Generated autoloads from minibuf-eldef.el
-
-(defvar minibuffer-electric-default-mode nil "\
-Non-nil if Minibuffer-Electric-Default mode is enabled.
-See the `minibuffer-electric-default-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `minibuffer-electric-default-mode'.")
-
-(custom-autoload 'minibuffer-electric-default-mode "minibuf-eldef" nil)
-
-(autoload 'minibuffer-electric-default-mode "minibuf-eldef" "\
-Toggle Minibuffer Electric Default mode.
-With a prefix argument ARG, enable Minibuffer Electric Default
-mode if ARG is positive, and disable it otherwise.  If called
-from Lisp, enable the mode if ARG is omitted or nil.
-
-Minibuffer Electric Default mode is a global minor mode.  When
-enabled, minibuffer prompts that show a default value only show
-the default when it's applicable -- that is, when hitting RET
-would yield the default value.  If the user modifies the input
-such that hitting RET would enter a non-default value, the prompt
-is modified to remove the default indication.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"minibuf-eldef" '("minibuf")))
-
-;;;***
-
-;;;### (autoloads nil "misc" "misc.el" (0 0 0 0))
-;;; Generated autoloads from misc.el
-
-(autoload 'copy-from-above-command "misc" "\
-Copy characters from previous nonblank line, starting just above point.
-Copy ARG characters, but not past the end of that line.
-If no argument given, copy the entire rest of the line.
-The characters copied are inserted in the buffer before point.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'zap-up-to-char "misc" "\
-Kill up to, but not including ARGth occurrence of CHAR.
-Case is ignored if `case-fold-search' is non-nil in the current buffer.
-Goes backward if ARG is negative; error if CHAR not found.
-Ignores CHAR at point.
-
-\(fn ARG CHAR)" t nil)
-
-(autoload 'mark-beginning-of-buffer "misc" "\
-Set mark at the beginning of the buffer.
-
-\(fn)" t nil)
-
-(autoload 'mark-end-of-buffer "misc" "\
-Set mark at the end of the buffer.
-
-\(fn)" t nil)
-
-(autoload 'upcase-char "misc" "\
-Uppercasify ARG chars starting from point.  Point doesn't move.
-
-\(fn ARG)" t nil)
-
-(autoload 'forward-to-word "misc" "\
-Move forward until encountering the beginning of a word.
-With argument, do this that many times.
-
-\(fn ARG)" t nil)
-
-(autoload 'backward-to-word "misc" "\
-Move backward until encountering the end of a word.
-With argument, do this that many times.
-
-\(fn ARG)" t nil)
-
-(autoload 'butterfly "misc" "\
-Use butterflies to flip the desired bit on the drive platter.
-Open hands and let the delicate wings flap once.  The disturbance
-ripples outward, changing the flow of the eddy currents in the
-upper atmosphere.  These cause momentary pockets of higher-pressure
-air to form, which act as lenses that deflect incoming cosmic rays,
-focusing them to strike the drive platter and flip the desired bit.
-You can type `M-x butterfly C-M-c' to run it.  This is a permuted
-variation of `C-x M-c M-butterfly' from url `http://xkcd.com/378/'.
-
-\(fn)" t nil)
-
-(autoload 'list-dynamic-libraries "misc" "\
-Display a list of all dynamic libraries known to Emacs.
-\(These are the libraries listed in `dynamic-library-alist'.)
-If optional argument LOADED-ONLY-P (interactively, prefix arg)
-is non-nil, only libraries already loaded are listed.
-Optional argument BUFFER specifies a buffer to use, instead of
-\"*Dynamic Libraries*\".
-The return value is always nil.
-
-\(fn &optional LOADED-ONLY-P BUFFER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"misc" '("list-dynamic-libraries--")))
-
-;;;***
-
-;;;### (autoloads nil "misearch" "misearch.el" (0 0 0 0))
-;;; Generated autoloads from misearch.el
- (add-hook 'isearch-mode-hook 'multi-isearch-setup)
-
-(defvar multi-isearch-next-buffer-function nil "\
-Function to call to get the next buffer to search.
-
-When this variable is set to a function that returns a buffer, then
-after typing another \\[isearch-forward] or \\[isearch-backward] at a failing 
search, the search goes
-to the next buffer in the series and continues searching for the
-next occurrence.
-
-This function should return the next buffer (it doesn't need to switch
-to it), or nil if it can't find the next buffer (when it reaches the
-end of the search space).
-
-The first argument of this function is the current buffer where the
-search is currently searching.  It defines the base buffer relative to
-which this function should find the next buffer.  When the isearch
-direction is backward (when option `isearch-forward' is nil), this function
-should return the previous buffer to search.
-
-If the second argument of this function WRAP is non-nil, then it
-should return the first buffer in the series; and for the backward
-search, it should return the last buffer in the series.")
-
-(defvar multi-isearch-next-buffer-current-function nil "\
-The currently active function to get the next buffer to search.
-Initialized from `multi-isearch-next-buffer-function' when
-Isearch starts.")
-
-(defvar multi-isearch-current-buffer nil "\
-The buffer where the search is currently searching.
-The value is nil when the search still is in the initial buffer.")
-
-(defvar multi-isearch-buffer-list nil "\
-Sequence of buffers visited by multiple buffers Isearch.
-This is nil if Isearch is not currently searching more than one buffer.")
-
-(defvar multi-isearch-file-list nil "\
-Sequence of files visited by multiple file buffers Isearch.")
-
-(autoload 'multi-isearch-setup "misearch" "\
-Set up isearch to search multiple buffers.
-Intended to be added to `isearch-mode-hook'.
-
-\(fn)" nil nil)
-
-(autoload 'multi-isearch-buffers "misearch" "\
-Start multi-buffer Isearch on a list of BUFFERS.
-This list can contain live buffers or their names.
-Interactively read buffer names to search, one by one, ended with RET.
-With a prefix argument, ask for a regexp, and search in buffers
-whose names match the specified regexp.
-
-\(fn BUFFERS)" t nil)
-
-(autoload 'multi-isearch-buffers-regexp "misearch" "\
-Start multi-buffer regexp Isearch on a list of BUFFERS.
-This list can contain live buffers or their names.
-Interactively read buffer names to search, one by one, ended with RET.
-With a prefix argument, ask for a regexp, and search in buffers
-whose names match the specified regexp.
-
-\(fn BUFFERS)" t nil)
-
-(autoload 'multi-isearch-files "misearch" "\
-Start multi-buffer Isearch on a list of FILES.
-Relative file names in this list are expanded to absolute
-file names using the current buffer's value of `default-directory'.
-Interactively read file names to search, one by one, ended with RET.
-With a prefix argument, ask for a wildcard, and search in file buffers
-whose file names match the specified wildcard.
-
-\(fn FILES)" t nil)
-
-(autoload 'multi-isearch-files-regexp "misearch" "\
-Start multi-buffer regexp Isearch on a list of FILES.
-Relative file names in this list are expanded to absolute
-file names using the current buffer's value of `default-directory'.
-Interactively read file names to search, one by one, ended with RET.
-With a prefix argument, ask for a wildcard, and search in file buffers
-whose file names match the specified wildcard.
-
-\(fn FILES)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"misearch" '("multi-isearch-" "misearch-unload-function")))
-
-;;;***
-
-;;;### (autoloads nil "mixal-mode" "progmodes/mixal-mode.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from progmodes/mixal-mode.el
-(push (purecopy '(mixal-mode 0 1)) package--builtin-versions)
-
-(autoload 'mixal-mode "mixal-mode" "\
-Major mode for the mixal asm language.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mixal-mode" '("mixal-")))
-
-;;;***
-
-;;;### (autoloads nil "mm-archive" "gnus/mm-archive.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mm-archive.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mm-archive" '("mm-")))
-
-;;;***
-
-;;;### (autoloads nil "mm-bodies" "gnus/mm-bodies.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mm-bodies.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mm-bodies" '("mm-")))
-
-;;;***
-
-;;;### (autoloads nil "mm-decode" "gnus/mm-decode.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mm-decode.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mm-decode" '("mm-")))
-
-;;;***
-
-;;;### (autoloads nil "mm-encode" "gnus/mm-encode.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mm-encode.el
-
-(autoload 'mm-default-file-encoding "mm-encode" "\
-Return a default encoding for FILE.
-
-\(fn FILE)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mm-encode" '("mm-")))
-
-;;;***
-
-;;;### (autoloads nil "mm-extern" "gnus/mm-extern.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mm-extern.el
-
-(autoload 'mm-extern-cache-contents "mm-extern" "\
-Put the external-body part of HANDLE into its cache.
-
-\(fn HANDLE)" nil nil)
-
-(autoload 'mm-inline-external-body "mm-extern" "\
-Show the external-body part of HANDLE.
-This function replaces the buffer of HANDLE with a buffer contains
-the entire message.
-If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing.
-
-\(fn HANDLE &optional NO-DISPLAY)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mm-extern" '("mm-extern-")))
-
-;;;***
-
-;;;### (autoloads nil "mm-partial" "gnus/mm-partial.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mm-partial.el
-
-(autoload 'mm-inline-partial "mm-partial" "\
-Show the partial part of HANDLE.
-This function replaces the buffer of HANDLE with a buffer contains
-the entire message.
-If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing.
-
-\(fn HANDLE &optional NO-DISPLAY)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mm-partial" '("mm-partial-find-parts")))
-
-;;;***
-
-;;;### (autoloads nil "mm-url" "gnus/mm-url.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mm-url.el
-
-(autoload 'mm-url-insert-file-contents "mm-url" "\
-Insert file contents of URL.
-If `mm-url-use-external' is non-nil, use `mm-url-program'.
-
-\(fn URL)" nil nil)
-
-(autoload 'mm-url-insert-file-contents-external "mm-url" "\
-Insert file contents of URL using `mm-url-program'.
-
-\(fn URL)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mm-url" '("mm-url-")))
-
-;;;***
-
-;;;### (autoloads nil "mm-util" "gnus/mm-util.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mm-util.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mm-util" '("mm-")))
-
-;;;***
-
-;;;### (autoloads nil "mm-uu" "gnus/mm-uu.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mm-uu.el
-
-(autoload 'mm-uu-dissect "mm-uu" "\
-Dissect the current buffer and return a list of uu handles.
-The optional NOHEADER means there's no header in the buffer.
-MIME-TYPE specifies a MIME type and parameters, which defaults to the
-value of `mm-uu-text-plain-type'.
-
-\(fn &optional NOHEADER MIME-TYPE)" nil nil)
-
-(autoload 'mm-uu-dissect-text-parts "mm-uu" "\
-Dissect text parts and put uu handles into HANDLE.
-Assume text has been decoded if DECODED is non-nil.
-
-\(fn HANDLE &optional DECODED)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mm-uu" '("mm-")))
-
-;;;***
-
-;;;### (autoloads nil "mm-view" "gnus/mm-view.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mm-view.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mm-view" '("mm-")))
-
-;;;***
-
-;;;### (autoloads nil "mml" "gnus/mml.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mml.el
-
-(autoload 'mml-to-mime "mml" "\
-Translate the current buffer from MML to MIME.
-
-\(fn)" nil nil)
-
-(autoload 'mml-attach-file "mml" "\
-Attach a file to the outgoing MIME message.
-The file is not inserted or encoded until you send the message with
-`\\[message-send-and-exit]' or `\\[message-send]' in Message mode,
-or `\\[mail-send-and-exit]' or `\\[mail-send]' in Mail mode.
-
-FILE is the name of the file to attach.  TYPE is its
-content-type, a string of the form \"type/subtype\".  DESCRIPTION
-is a one-line description of the attachment.  The DISPOSITION
-specifies how the attachment is intended to be displayed.  It can
-be either \"inline\" (displayed automatically within the message
-body) or \"attachment\" (separate from the body).
-
-\(fn FILE &optional TYPE DESCRIPTION DISPOSITION)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mml" '("mime-to-mml" "mml-")))
-
-;;;***
-
-;;;### (autoloads nil "mml-sec" "gnus/mml-sec.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mml-sec.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mml-sec" '("mml-")))
-
-;;;***
-
-;;;### (autoloads nil "mml-smime" "gnus/mml-smime.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mml-smime.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mml-smime" '("mml-smime-")))
-
-;;;***
-
-;;;### (autoloads nil "mml1991" "gnus/mml1991.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mml1991.el
-
-(autoload 'mml1991-encrypt "mml1991" "\
-
-
-\(fn CONT &optional SIGN)" nil nil)
-
-(autoload 'mml1991-sign "mml1991" "\
-
-
-\(fn CONT)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mml1991" '("mml1991-")))
-
-;;;***
-
-;;;### (autoloads nil "mml2015" "gnus/mml2015.el" (0 0 0 0))
-;;; Generated autoloads from gnus/mml2015.el
-
-(autoload 'mml2015-decrypt "mml2015" "\
-
-
-\(fn HANDLE CTL)" nil nil)
-
-(autoload 'mml2015-decrypt-test "mml2015" "\
-
-
-\(fn HANDLE CTL)" nil nil)
-
-(autoload 'mml2015-verify "mml2015" "\
-
-
-\(fn HANDLE CTL)" nil nil)
-
-(autoload 'mml2015-verify-test "mml2015" "\
-
-
-\(fn HANDLE CTL)" nil nil)
-
-(autoload 'mml2015-encrypt "mml2015" "\
-
-
-\(fn CONT &optional SIGN)" nil nil)
-
-(autoload 'mml2015-sign "mml2015" "\
-
-
-\(fn CONT)" nil nil)
-
-(autoload 'mml2015-self-encrypt "mml2015" "\
-
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mml2015" '("mml2015-")))
-
-;;;***
-
-;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (0 0 0 0))
-;;; Generated autoloads from cedet/mode-local.el
-
-(put 'define-overloadable-function 'doc-string-elt 3)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mode-local" '("make-obsolete-overload" "mode-local-" 
"deactivate-mode-local-bindings" "def" "describe-mode-local-" 
"xref-mode-local-" "overload-" "fetch-overload" "function-overload-p" "set" 
"with-mode-local" "activate-mode-local-bindings" "new-mode-local-bindings" 
"get-mode-local-parent")))
-
-;;;***
-
-;;;### (autoloads nil "modula2" "progmodes/modula2.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/modula2.el
-
-(defalias 'modula-2-mode 'm2-mode)
-
-(autoload 'm2-mode "modula2" "\
-This is a mode intended to support program development in Modula-2.
-All control constructs of Modula-2 can be reached by typing C-c
-followed by the first character of the construct.
-\\<m2-mode-map>
-  \\[m2-begin] begin         \\[m2-case] case
-  \\[m2-definition] definition    \\[m2-else] else
-  \\[m2-for] for           \\[m2-header] header
-  \\[m2-if] if            \\[m2-module] module
-  \\[m2-loop] loop          \\[m2-or] or
-  \\[m2-procedure] procedure     Control-c Control-w with
-  \\[m2-record] record        \\[m2-stdio] stdio
-  \\[m2-type] type          \\[m2-until] until
-  \\[m2-var] var           \\[m2-while] while
-  \\[m2-export] export        \\[m2-import] import
-  \\[m2-begin-comment] begin-comment \\[m2-end-comment] end-comment
-  \\[suspend-emacs] suspend Emacs     \\[m2-toggle] toggle
-  \\[m2-compile] compile           \\[m2-next-error] next-error
-  \\[m2-link] link
-
-   `m2-indent' controls the number of spaces for each indentation.
-   `m2-compile-command' holds the command to compile a Modula-2 program.
-   `m2-link-command' holds the command to link a Modula-2 program.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"modula2" '("m3-font-lock-keywords" "m2-")))
-
-;;;***
-
-;;;### (autoloads nil "morse" "play/morse.el" (0 0 0 0))
-;;; Generated autoloads from play/morse.el
-
-(autoload 'morse-region "morse" "\
-Convert all text in a given region to morse code.
-
-\(fn BEG END)" t nil)
-
-(autoload 'unmorse-region "morse" "\
-Convert morse coded text in region to ordinary ASCII text.
-
-\(fn BEG END)" t nil)
-
-(autoload 'nato-region "morse" "\
-Convert all text in a given region to NATO phonetic alphabet.
-
-\(fn BEG END)" t nil)
-
-(autoload 'denato-region "morse" "\
-Convert NATO phonetic alphabet in region to ordinary ASCII text.
-
-\(fn BEG END)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"morse" '("nato-alphabet" "morse-code")))
-
-;;;***
-
-;;;### (autoloads nil "mouse-copy" "mouse-copy.el" (0 0 0 0))
-;;; Generated autoloads from mouse-copy.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mouse-copy" '("mouse-")))
-
-;;;***
-
-;;;### (autoloads nil "mouse-drag" "mouse-drag.el" (0 0 0 0))
-;;; Generated autoloads from mouse-drag.el
-
-(autoload 'mouse-drag-throw "mouse-drag" "\
-\"Throw\" the page according to a mouse drag.
-
-A \"throw\" is scrolling the page at a speed relative to the distance
-from the original mouse click to the current mouse location.  Try it;
-you'll like it.  It's easier to observe than to explain.
-
-If the mouse is clicked and released in the same place of time we
-assume that the user didn't want to scroll but wanted to whatever
-mouse-2 used to do, so we pass it through.
-
-Throw scrolling was inspired (but is not identical to) the \"hand\"
-option in MacPaint, or the middle button in Tk text widgets.
-
-If `mouse-throw-with-scroll-bar' is non-nil, then this command scrolls
-in the opposite direction.  (Different people have different ideas
-about which direction is natural.  Perhaps it has to do with which
-hemisphere you're in.)
-
-To test this function, evaluate:
-    (global-set-key [down-mouse-2] \\='mouse-drag-throw)
-
-\(fn START-EVENT)" t nil)
-
-(autoload 'mouse-drag-drag "mouse-drag" "\
-\"Drag\" the page according to a mouse drag.
-
-Drag scrolling moves the page according to the movement of the mouse.
-You \"grab\" the character under the mouse and move it around.
-
-If the mouse is clicked and released in the same place of time we
-assume that the user didn't want to scroll but wanted to whatever
-mouse-2 used to do, so we pass it through.
-
-Drag scrolling is identical to the \"hand\" option in MacPaint, or the
-middle button in Tk text widgets.
-
-To test this function, evaluate:
-    (global-set-key [down-mouse-2] \\='mouse-drag-drag)
-
-\(fn START-EVENT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mouse-drag" '("mouse-")))
-
-;;;***
-
-;;;### (autoloads nil "mpc" "mpc.el" (0 0 0 0))
-;;; Generated autoloads from mpc.el
-
-(autoload 'mpc "mpc" "\
-Main entry point for MPC.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mpc" '("mpc-" "tag-browser-tagtypes")))
-
-;;;***
-
-;;;### (autoloads nil "mpuz" "play/mpuz.el" (0 0 0 0))
-;;; Generated autoloads from play/mpuz.el
-
-(autoload 'mpuz "mpuz" "\
-Multiplication puzzle with GNU Emacs.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mpuz" '("mpuz-")))
-
-;;;***
-
-;;;### (autoloads nil "msb" "msb.el" (0 0 0 0))
-;;; Generated autoloads from msb.el
-
-(defvar msb-mode nil "\
-Non-nil if Msb mode is enabled.
-See the `msb-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `msb-mode'.")
-
-(custom-autoload 'msb-mode "msb" nil)
-
-(autoload 'msb-mode "msb" "\
-Toggle Msb mode.
-With a prefix argument ARG, enable Msb mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-This mode overrides the binding(s) of `mouse-buffer-menu' to provide a
-different buffer menu using the function `msb'.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"msb" '("mouse-select-buffer" "msb")))
-
-;;;***
-
-;;;### (autoloads nil "mspools" "mail/mspools.el" (0 0 0 0))
-;;; Generated autoloads from mail/mspools.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mspools" '("mspools-")))
-
-;;;***
-
-;;;### (autoloads nil "mule-diag" "international/mule-diag.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from international/mule-diag.el
-
-(autoload 'list-character-sets "mule-diag" "\
-Display a list of all character sets.
-
-The D column contains the dimension of this character set.  The CH
-column contains the number of characters in a block of this character
-set.  The FINAL-BYTE column contains an ISO-2022 <final-byte> to use
-in the designation escape sequence for this character set in
-ISO-2022-based coding systems.
-
-With prefix ARG, the output format gets more cryptic,
-but still shows the full information.
-
-\(fn ARG)" t nil)
-
-(autoload 'read-charset "mule-diag" "\
-Read a character set from the minibuffer, prompting with string PROMPT.
-It must be an Emacs character set listed in the variable `charset-list'.
-
-Optional arguments are DEFAULT-VALUE and INITIAL-INPUT.
-DEFAULT-VALUE, if non-nil, is the default value.
-INITIAL-INPUT, if non-nil, is a string inserted in the minibuffer initially.
-See the documentation of the function `completing-read' for the detailed
-meanings of these arguments.
-
-\(fn PROMPT &optional DEFAULT-VALUE INITIAL-INPUT)" nil nil)
-
-(autoload 'list-charset-chars "mule-diag" "\
-Display a list of characters in character set CHARSET.
-
-\(fn CHARSET)" t nil)
-
-(autoload 'describe-character-set "mule-diag" "\
-Display information about built-in character set CHARSET.
-
-\(fn CHARSET)" t nil)
-
-(autoload 'describe-coding-system "mule-diag" "\
-Display information about CODING-SYSTEM.
-
-\(fn CODING-SYSTEM)" t nil)
-
-(autoload 'describe-current-coding-system-briefly "mule-diag" "\
-Display coding systems currently used in a brief format in echo area.
-
-The format is \"F[..],K[..],T[..],P>[..],P<[..], default F[..],P<[..],P<[..]\",
-where mnemonics of the following coding systems come in this order
-in place of `..':
-  `buffer-file-coding-system' (of the current buffer)
-  eol-type of `buffer-file-coding-system' (of the current buffer)
-  Value returned by `keyboard-coding-system'
-  eol-type of `keyboard-coding-system'
-  Value returned by `terminal-coding-system'.
-  eol-type of `terminal-coding-system'
-  `process-coding-system' for read (of the current buffer, if any)
-  eol-type of `process-coding-system' for read (of the current buffer, if any)
-  `process-coding-system' for write (of the current buffer, if any)
-  eol-type of `process-coding-system' for write (of the current buffer, if any)
-  default `buffer-file-coding-system'
-  eol-type of default `buffer-file-coding-system'
-  `default-process-coding-system' for read
-  eol-type of `default-process-coding-system' for read
-  `default-process-coding-system' for write
-  eol-type of `default-process-coding-system'
-
-\(fn)" t nil)
-
-(autoload 'describe-current-coding-system "mule-diag" "\
-Display coding systems currently used, in detail.
-
-\(fn)" t nil)
-
-(autoload 'list-coding-systems "mule-diag" "\
-Display a list of all coding systems.
-This shows the mnemonic letter, name, and description of each coding system.
-
-With prefix ARG, the output format gets more cryptic,
-but still contains full information about each coding system.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'list-coding-categories "mule-diag" "\
-Display a list of all coding categories.
-
-\(fn)" nil nil)
-
-(autoload 'describe-font "mule-diag" "\
-Display information about a font whose name is FONTNAME.
-The font must be already used by Emacs.
-
-\(fn FONTNAME)" t nil)
-
-(autoload 'describe-fontset "mule-diag" "\
-Display information about FONTSET.
-This shows which font is used for which character(s).
-
-\(fn FONTSET)" t nil)
-
-(autoload 'list-fontsets "mule-diag" "\
-Display a list of all fontsets.
-This shows the name, size, and style of each fontset.
-With prefix arg, also list the fonts contained in each fontset;
-see the function `describe-fontset' for the format of the list.
-
-\(fn ARG)" t nil)
-
-(autoload 'list-input-methods "mule-diag" "\
-Display information about all input methods.
-
-\(fn)" t nil)
-
-(autoload 'mule-diag "mule-diag" "\
-Display diagnosis of the multilingual environment (Mule).
-
-This shows various information related to the current multilingual
-environment, including lists of input methods, coding systems,
-character sets, and fontsets (if Emacs is running under a window
-system which uses fontsets).
-
-\(fn)" t nil)
-
-(autoload 'font-show-log "mule-diag" "\
-Show log of font listing and opening.
-Prefix arg LIMIT says how many fonts to show for each listing.
-The default is 20.  If LIMIT is negative, do not limit the listing.
-
-\(fn &optional LIMIT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mule-diag" '("insert-section" "list-" "print-" "describe-font-internal" 
"charset-history" "non-iso-charset-alist" "sort-listed-character-sets")))
-
-;;;***
-
-;;;### (autoloads nil "mule-util" "international/mule-util.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from international/mule-util.el
-
-(defsubst string-to-list (string) "\
-Return a list of characters in STRING." (append string nil))
-
-(defsubst string-to-vector (string) "\
-Return a vector of characters in STRING." (vconcat string))
-
-(autoload 'store-substring "mule-util" "\
-Embed OBJ (string or character) at index IDX of STRING.
-
-\(fn STRING IDX OBJ)" nil nil)
-
-(autoload 'truncate-string-to-width "mule-util" "\
-Truncate string STR to end at column END-COLUMN.
-The optional 3rd arg START-COLUMN, if non-nil, specifies the starting
-column; that means to return the characters occupying columns
-START-COLUMN ... END-COLUMN of STR.  Both END-COLUMN and START-COLUMN
-are specified in terms of character display width in the current
-buffer; see also `char-width'.
-
-The optional 4th arg PADDING, if non-nil, specifies a padding
-character (which should have a display width of 1) to add at the end
-of the result if STR doesn't reach column END-COLUMN, or if END-COLUMN
-comes in the middle of a character in STR.  PADDING is also added at
-the beginning of the result if column START-COLUMN appears in the
-middle of a character in STR.
-
-If PADDING is nil, no padding is added in these cases, so
-the resulting string may be narrower than END-COLUMN.
-
-If ELLIPSIS is non-nil, it should be a string which will replace the
-end of STR (including any padding) if it extends beyond END-COLUMN,
-unless the display width of STR is equal to or less than the display
-width of ELLIPSIS.  If it is non-nil and not a string, then ELLIPSIS
-defaults to `truncate-string-ellipsis'.
-
-\(fn STR END-COLUMN &optional START-COLUMN PADDING ELLIPSIS)" nil nil)
-
-(defsubst nested-alist-p (obj) "\
-Return t if OBJ is a nested alist.
-
-Nested alist is a list of the form (ENTRY . BRANCHES), where ENTRY is
-any Lisp object, and BRANCHES is a list of cons cells of the form
-\(KEY-ELEMENT . NESTED-ALIST).
-
-You can use a nested alist to store any Lisp object (ENTRY) for a key
-sequence KEYSEQ, where KEYSEQ is a sequence of KEY-ELEMENT.  KEYSEQ
-can be a string, a vector, or a list." (and obj (listp obj) (listp (cdr obj))))
-
-(autoload 'set-nested-alist "mule-util" "\
-Set ENTRY for KEYSEQ in a nested alist ALIST.
-Optional 4th arg LEN non-nil means the first LEN elements in KEYSEQ
- are considered.
-Optional 5th argument BRANCHES if non-nil is branches for a keyseq
-longer than KEYSEQ.
-See the documentation of `nested-alist-p' for more detail.
-
-\(fn KEYSEQ ENTRY ALIST &optional LEN BRANCHES)" nil nil)
-
-(autoload 'lookup-nested-alist "mule-util" "\
-Look up key sequence KEYSEQ in nested alist ALIST.  Return the definition.
-Optional 3rd argument LEN specifies the length of KEYSEQ.
-Optional 4th argument START specifies index of the starting key.
-The returned value is normally a nested alist of which
-car part is the entry for KEYSEQ.
-If ALIST is not deep enough for KEYSEQ, return number which is
- how many key elements at the front of KEYSEQ it takes
- to reach a leaf in ALIST.
-Optional 5th argument NIL-FOR-TOO-LONG non-nil means return nil
- even if ALIST is not deep enough.
-
-\(fn KEYSEQ ALIST &optional LEN START NIL-FOR-TOO-LONG)" nil nil)
-
-(autoload 'coding-system-post-read-conversion "mule-util" "\
-Return the value of CODING-SYSTEM's `post-read-conversion' property.
-
-\(fn CODING-SYSTEM)" nil nil)
-
-(autoload 'coding-system-pre-write-conversion "mule-util" "\
-Return the value of CODING-SYSTEM's `pre-write-conversion' property.
-
-\(fn CODING-SYSTEM)" nil nil)
-
-(autoload 'coding-system-translation-table-for-decode "mule-util" "\
-Return the value of CODING-SYSTEM's `decode-translation-table' property.
-
-\(fn CODING-SYSTEM)" nil nil)
-
-(autoload 'coding-system-translation-table-for-encode "mule-util" "\
-Return the value of CODING-SYSTEM's `encode-translation-table' property.
-
-\(fn CODING-SYSTEM)" nil nil)
-
-(autoload 'with-coding-priority "mule-util" "\
-Execute BODY like `progn' with CODING-SYSTEMS at the front of priority list.
-CODING-SYSTEMS is a list of coding systems.  See `set-coding-system-priority'.
-This affects the implicit sorting of lists of coding systems returned by
-operations such as `find-coding-systems-region'.
-
-\(fn CODING-SYSTEMS &rest BODY)" nil t)
-(put 'with-coding-priority 'lisp-indent-function 1)
-
-(autoload 'detect-coding-with-priority "mule-util" "\
-Detect a coding system of the text between FROM and TO with PRIORITY-LIST.
-PRIORITY-LIST is an alist of coding categories vs the corresponding
-coding systems ordered by priority.
-
-\(fn FROM TO PRIORITY-LIST)" nil t)
-
-(make-obsolete 'detect-coding-with-priority 'with-coding-priority '"23.1")
-
-(autoload 'detect-coding-with-language-environment "mule-util" "\
-Detect a coding system for the text between FROM and TO with LANG-ENV.
-The detection takes into account the coding system priorities for the
-language environment LANG-ENV.
-
-\(fn FROM TO LANG-ENV)" nil nil)
-
-(autoload 'char-displayable-p "mule-util" "\
-Return non-nil if we should be able to display CHAR.
-On a multi-font display, the test is only whether there is an
-appropriate font from the selected frame's fontset to display
-CHAR's charset in general.  Since fonts may be specified on a
-per-character basis, this may not be accurate.
-
-\(fn CHAR)" nil nil)
-
-(autoload 'filepos-to-bufferpos "mule-util" "\
-Try to return the buffer position corresponding to a particular file position.
-The file position is given as a (0-based) BYTE count.
-The function presumes the file is encoded with CODING-SYSTEM, which defaults
-to `buffer-file-coding-system'.
-QUALITY can be:
-  `approximate', in which case we may cut some corners to avoid
-    excessive work.
-  `exact', in which case we may end up re-(en/de)coding a large
-    part of the file/buffer.
-  nil, in which case we may return nil rather than an approximation.
-
-\(fn BYTE &optional QUALITY CODING-SYSTEM)" nil nil)
-
-(autoload 'bufferpos-to-filepos "mule-util" "\
-Try to return the file byte corresponding to a particular buffer POSITION.
-Value is the file position given as a (0-based) byte count.
-The function presumes the file is encoded with CODING-SYSTEM, which defaults
-to `buffer-file-coding-system'.
-QUALITY can be:
-  `approximate', in which case we may cut some corners to avoid
-    excessive work.
-  `exact', in which case we may end up re-(en/de)coding a large
-    part of the file/buffer.
-  nil, in which case we may return nil rather than an approximation.
-
-\(fn POSITION &optional QUALITY CODING-SYSTEM)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mule-util" '("filepos-to-bufferpos--dos" "truncate-string-ellipsis")))
-
-;;;***
-
-;;;### (autoloads nil "mwheel" "mwheel.el" (0 0 0 0))
-;;; Generated autoloads from mwheel.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mwheel" '("mouse-wheel-" "mwheel-")))
-
-;;;***
-
-;;;### (autoloads nil "net-utils" "net/net-utils.el" (0 0 0 0))
-;;; Generated autoloads from net/net-utils.el
-
-(autoload 'ifconfig "net-utils" "\
-Run ifconfig and display diagnostic output.
-
-\(fn)" t nil)
-
-(autoload 'iwconfig "net-utils" "\
-Run iwconfig and display diagnostic output.
-
-\(fn)" t nil)
-
-(autoload 'netstat "net-utils" "\
-Run netstat and display diagnostic output.
-
-\(fn)" t nil)
-
-(autoload 'arp "net-utils" "\
-Run arp and display diagnostic output.
-
-\(fn)" t nil)
-
-(autoload 'route "net-utils" "\
-Run route and display diagnostic output.
-
-\(fn)" t nil)
-
-(autoload 'traceroute "net-utils" "\
-Run traceroute program for TARGET.
-
-\(fn TARGET)" t nil)
-
-(autoload 'ping "net-utils" "\
-Ping HOST.
-If your system's ping continues until interrupted, you can try setting
-`ping-program-options'.
-
-\(fn HOST)" t nil)
-
-(autoload 'nslookup-host "net-utils" "\
-Lookup the DNS information for HOST.
-
-\(fn HOST)" t nil)
-
-(autoload 'nslookup "net-utils" "\
-Run nslookup program.
-
-\(fn)" t nil)
-
-(autoload 'dns-lookup-host "net-utils" "\
-Lookup the DNS information for HOST (name or IP address).
-
-\(fn HOST)" t nil)
-
-(autoload 'run-dig "net-utils" "\
-Run dig program.
-
-\(fn HOST)" t nil)
-
-(autoload 'ftp "net-utils" "\
-Run ftp program.
-
-\(fn HOST)" t nil)
-
-(autoload 'finger "net-utils" "\
-Finger USER on HOST.
-
-\(fn USER HOST)" t nil)
-
-(autoload 'whois "net-utils" "\
-Send SEARCH-STRING to server defined by the `whois-server-name' variable.
-If `whois-guess-server' is non-nil, then try to deduce the correct server
-from SEARCH-STRING.  With argument, prompt for whois server.
-
-\(fn ARG SEARCH-STRING)" t nil)
-
-(autoload 'whois-reverse-lookup "net-utils" "\
-
-
-\(fn)" t nil)
-
-(autoload 'network-connection-to-service "net-utils" "\
-Open a network connection to SERVICE on HOST.
-
-\(fn HOST SERVICE)" t nil)
-
-(autoload 'network-connection "net-utils" "\
-Open a network connection to HOST on PORT.
-
-\(fn HOST PORT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"net-utils" '("nslookup-" "net" "whois-" "ftp-" "finger-X.500-host-regexps" 
"route-program" "run-network-program" "smbclient" "ifconfig-program" 
"iwconfig-program" "ipconfig" "dig-program" "dns-lookup-program" "arp-program" 
"ping-program" "traceroute-program")))
-
-;;;***
-
-;;;### (autoloads nil "netrc" "net/netrc.el" (0 0 0 0))
-;;; Generated autoloads from net/netrc.el
-
-(autoload 'netrc-credentials "netrc" "\
-Return a user name/password pair.
-Port specifications will be prioritized in the order they are
-listed in the PORTS list.
-
-\(fn MACHINE &rest PORTS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"netrc" '("netrc-")))
-
-;;;***
-
-;;;### (autoloads nil "network-stream" "net/network-stream.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from net/network-stream.el
-
-(autoload 'open-network-stream "network-stream" "\
-Open a TCP connection to HOST, optionally with encryption.
-Normally, return a network process object; with a non-nil
-:return-list parameter, return a list instead (see below).
-Input and output work as for subprocesses; `delete-process'
-closes it.
-
-NAME is the name for the process.  It is modified if necessary to
- make it unique.
-BUFFER is a buffer or buffer name to associate with the process.
- Process output goes at end of that buffer.  BUFFER may be nil,
- meaning that the process is not associated with any buffer.
-HOST is the name or IP address of the host to connect to.
-SERVICE is the name of the service desired, or an integer or
- integer string specifying a port number to connect to.
-
-The remaining PARAMETERS should be a sequence of keywords and
-values:
-
-:type specifies the connection type, one of the following:
-  nil or `network'
-             -- Begin with an ordinary network connection, and if
-                the parameters :success and :capability-command
-                are also supplied, try to upgrade to an encrypted
-                connection via STARTTLS.  Even if that
-                fails (e.g. if HOST does not support TLS), retain
-                an unencrypted connection.
-  `plain'    -- An ordinary, unencrypted network connection.
-  `starttls' -- Begin with an ordinary connection, and try
-                upgrading via STARTTLS.  If that fails for any
-                reason, drop the connection; in that case the
-                returned object is a killed process.
-  `tls'      -- A TLS connection.
-  `ssl'      -- Equivalent to `tls'.
-  `shell'    -- A shell connection.
-
-:return-list specifies this function's return value.
-  If omitted or nil, return a process object.  A non-nil means to
-  return (PROC . PROPS), where PROC is a process object and PROPS
-  is a plist of connection properties, with these keywords:
-   :greeting -- the greeting returned by HOST (a string), or nil.
-   :capabilities -- a string representing HOST's capabilities,
-                    or nil if none could be found.
-   :type -- the resulting connection type; `plain' (unencrypted)
-            or `tls' (TLS-encrypted).
-
-:end-of-command specifies a regexp matching the end of a command.
-
-:end-of-capability specifies a regexp matching the end of the
-  response to the command specified for :capability-command.
-  It defaults to the regexp specified for :end-of-command.
-
-:success specifies a regexp matching a message indicating a
-  successful STARTTLS negotiation.  For instance, the default
-  should be \"^3\" for an NNTP connection.
-
-:capability-command specifies a command used to query the HOST
-  for its capabilities.  For instance, for IMAP this should be
-  \"1 CAPABILITY\\r\\n\".
-
-:starttls-function specifies a function for handling STARTTLS.
-  This function should take one parameter, the response to the
-  capability command, and should return the command to switch on
-  STARTTLS if the server supports STARTTLS, and nil otherwise.
-
-:always-query-capabilities says whether to query the server for
-  capabilities, even if we're doing a `plain' network connection.
-
-:client-certificate should either be a list where the first
-  element is the certificate key file name, and the second
-  element is the certificate file name itself, or t, which
-  means that `auth-source' will be queried for the key and the
-  certificate.  This parameter will only be used when doing TLS
-  or STARTTLS connections.
-
-:use-starttls-if-possible is a boolean that says to do opportunistic
-STARTTLS upgrades even if Emacs doesn't have built-in TLS functionality.
-
-:warn-unless-encrypted is a boolean which, if :return-list is
-non-nil, is used warn the user if the connection isn't encrypted.
-
-:nogreeting is a boolean that can be used to inhibit waiting for
-a greeting from the server.
-
-:nowait, if non-nil, says the connection should be made
-asynchronously, if possible.
-
-:tls-parameters is a list that should be supplied if you're
-opening a TLS connection.  The first element is the TLS
-type (either `gnutls-x509pki' or `gnutls-anon'), and the
-remaining elements should be a keyword list accepted by
-gnutls-boot (as returned by `gnutls-boot-parameters').
-
-\(fn NAME BUFFER HOST SERVICE &rest PARAMETERS)" nil nil)
-
-(defalias 'open-protocol-stream 'open-network-stream)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"network-stream" '("network-stream-")))
-
-;;;***
-
-;;;### (autoloads nil "newst-backend" "net/newst-backend.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from net/newst-backend.el
-
-(autoload 'newsticker-running-p "newst-backend" "\
-Check whether newsticker is running.
-Return t if newsticker is running, nil otherwise.  Newsticker is
-considered to be running if the newsticker timer list is not empty.
-
-\(fn)" nil nil)
-
-(autoload 'newsticker-start "newst-backend" "\
-Start the newsticker.
-Start the timers for display and retrieval.  If the newsticker, i.e. the
-timers, are running already a warning message is printed unless
-DO-NOT-COMPLAIN-IF-RUNNING is not nil.
-Run `newsticker-start-hook' if newsticker was not running already.
-
-\(fn &optional DO-NOT-COMPLAIN-IF-RUNNING)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"newst-backend" '("newsticker-")))
-
-;;;***
-
-;;;### (autoloads nil "newst-plainview" "net/newst-plainview.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from net/newst-plainview.el
-
-(autoload 'newsticker-plainview "newst-plainview" "\
-Start newsticker plainview.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"newst-plainview" '("newsticker-")))
-
-;;;***
-
-;;;### (autoloads nil "newst-reader" "net/newst-reader.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from net/newst-reader.el
-
-(autoload 'newsticker-show-news "newst-reader" "\
-Start reading news.  You may want to bind this to a key.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"newst-reader" '("newsticker-")))
-
-;;;***
-
-;;;### (autoloads nil "newst-ticker" "net/newst-ticker.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from net/newst-ticker.el
-
-(autoload 'newsticker-ticker-running-p "newst-ticker" "\
-Check whether newsticker's actual ticker is running.
-Return t if ticker is running, nil otherwise.  Newsticker is
-considered to be running if the newsticker timer list is not
-empty.
-
-\(fn)" nil nil)
-
-(autoload 'newsticker-start-ticker "newst-ticker" "\
-Start newsticker's ticker (but not the news retrieval).
-Start display timer for the actual ticker if wanted and not
-running already.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"newst-ticker" '("newsticker-")))
-
-;;;***
-
-;;;### (autoloads nil "newst-treeview" "net/newst-treeview.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from net/newst-treeview.el
-
-(autoload 'newsticker-treeview "newst-treeview" "\
-Start newsticker treeview.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"newst-treeview" '("newsticker-")))
-
-;;;***
-
-;;;### (autoloads nil "newsticker" "net/newsticker.el" (0 0 0 0))
-;;; Generated autoloads from net/newsticker.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"newsticker" '("newsticker-version")))
-
-;;;***
-
-;;;### (autoloads nil "nnagent" "gnus/nnagent.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnagent.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnagent" '("nnagent-")))
-
-;;;***
-
-;;;### (autoloads nil "nnbabyl" "gnus/nnbabyl.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnbabyl.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnbabyl" '("nnbabyl-")))
-
-;;;***
-
-;;;### (autoloads nil "nndiary" "gnus/nndiary.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nndiary.el
-
-(autoload 'nndiary-generate-nov-databases "nndiary" "\
-Generate NOV databases in all nndiary directories.
-
-\(fn &optional SERVER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nndiary" '("nndiary-")))
-
-;;;***
-
-;;;### (autoloads nil "nndir" "gnus/nndir.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nndir.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nndir" '("nndir-")))
-
-;;;***
-
-;;;### (autoloads nil "nndoc" "gnus/nndoc.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nndoc.el
-
-(autoload 'nndoc-add-type "nndoc" "\
-Add document DEFINITION to the list of nndoc document definitions.
-If POSITION is nil or `last', the definition will be added
-as the last checked definition, if t or `first', add as the
-first definition, and if any other symbol, add after that
-symbol in the alist.
-
-\(fn DEFINITION &optional POSITION)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nndoc" '("nndoc-")))
-
-;;;***
-
-;;;### (autoloads nil "nndraft" "gnus/nndraft.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nndraft.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nndraft" '("nndraft-")))
-
-;;;***
-
-;;;### (autoloads nil "nneething" "gnus/nneething.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nneething.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nneething" '("nneething-")))
-
-;;;***
-
-;;;### (autoloads nil "nnfolder" "gnus/nnfolder.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnfolder.el
-
-(autoload 'nnfolder-generate-active-file "nnfolder" "\
-Look for mbox folders in the nnfolder directory and make them into groups.
-This command does not work if you use short group names.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnfolder" '("nnfolder-")))
-
-;;;***
-
-;;;### (autoloads nil "nngateway" "gnus/nngateway.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nngateway.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nngateway" '("nngateway-")))
-
-;;;***
-
-;;;### (autoloads nil "nnheader" "gnus/nnheader.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnheader.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnheader" '("nntp-" "nnheader-" "mail-header-" "make-" "gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "nnimap" "gnus/nnimap.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnimap.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnimap" '("nnimap")))
-
-;;;***
-
-;;;### (autoloads nil "nnir" "gnus/nnir.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnir.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnir" '("nnir-" "gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "nnmail" "gnus/nnmail.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnmail.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnmail" '("nnmail-")))
-
-;;;***
-
-;;;### (autoloads nil "nnmaildir" "gnus/nnmaildir.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnmaildir.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnmaildir" '("nnmaildir-")))
-
-;;;***
-
-;;;### (autoloads nil "nnmairix" "gnus/nnmairix.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnmairix.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnmairix" '("nnmairix-")))
-
-;;;***
-
-;;;### (autoloads nil "nnmbox" "gnus/nnmbox.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnmbox.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnmbox" '("nnmbox-")))
-
-;;;***
-
-;;;### (autoloads nil "nnmh" "gnus/nnmh.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnmh.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnmh" '("nnmh-")))
-
-;;;***
-
-;;;### (autoloads nil "nnml" "gnus/nnml.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnml.el
-
-(autoload 'nnml-generate-nov-databases "nnml" "\
-Generate NOV databases in all nnml directories.
-
-\(fn &optional SERVER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnml" '("nnml-")))
-
-;;;***
-
-;;;### (autoloads nil "nnnil" "gnus/nnnil.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnnil.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnnil" '("nnnil-")))
-
-;;;***
-
-;;;### (autoloads nil "nnoo" "gnus/nnoo.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnoo.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnoo" '("nnoo-" "def")))
-
-;;;***
-
-;;;### (autoloads nil "nnregistry" "gnus/nnregistry.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnregistry.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnregistry" '("nnregistry-")))
-
-;;;***
-
-;;;### (autoloads nil "nnrss" "gnus/nnrss.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnrss.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnrss" '("nnrss-")))
-
-;;;***
-
-;;;### (autoloads nil "nnspool" "gnus/nnspool.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnspool.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnspool" '("news-inews-program" "nnspool-")))
-
-;;;***
-
-;;;### (autoloads nil "nntp" "gnus/nntp.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nntp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nntp" '("nntp-")))
-
-;;;***
-
-;;;### (autoloads nil "nnvirtual" "gnus/nnvirtual.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnvirtual.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnvirtual" '("nnvirtual-")))
-
-;;;***
-
-;;;### (autoloads nil "nnweb" "gnus/nnweb.el" (0 0 0 0))
-;;; Generated autoloads from gnus/nnweb.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nnweb" '("nnweb-")))
-
-;;;***
-
-;;;### (autoloads nil "notifications" "notifications.el" (0 0 0 0))
-;;; Generated autoloads from notifications.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"notifications" '("notifications-")))
-
-;;;***
-
-;;;### (autoloads nil "novice" "novice.el" (0 0 0 0))
-;;; Generated autoloads from novice.el
-
-(define-obsolete-variable-alias 'disabled-command-hook 
'disabled-command-function "22.1")
-
-(defvar disabled-command-function 'disabled-command-function "\
-Function to call to handle disabled commands.
-If nil, the feature is disabled, i.e., all commands work normally.")
-
-(autoload 'disabled-command-function "novice" "\
-
-
-\(fn &optional CMD KEYS)" nil nil)
-
-(autoload 'enable-command "novice" "\
-Allow COMMAND to be executed without special confirmation from now on.
-COMMAND must be a symbol.
-This command alters the user's .emacs file so that this will apply
-to future sessions.
-
-\(fn COMMAND)" t nil)
-
-(autoload 'disable-command "novice" "\
-Require special confirmation to execute COMMAND from now on.
-COMMAND must be a symbol.
-This command alters your init file so that this choice applies to
-future sessions.
-
-\(fn COMMAND)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"novice" '("en/disable-command")))
-
-;;;***
-
-;;;### (autoloads nil "nroff-mode" "textmodes/nroff-mode.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from textmodes/nroff-mode.el
-
-(autoload 'nroff-mode "nroff-mode" "\
-Major mode for editing text intended for nroff to format.
-\\{nroff-mode-map}
-Turning on Nroff mode runs `text-mode-hook', then `nroff-mode-hook'.
-Also, try `nroff-electric-mode', for automatically inserting
-closing requests for requests that are used in matched pairs.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nroff-mode" '("nroff-")))
-
-;;;***
-
-;;;### (autoloads nil "nsm" "net/nsm.el" (0 0 0 0))
-;;; Generated autoloads from net/nsm.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nsm" '("network-security-level" "nsm-")))
-
-;;;***
-
-;;;### (autoloads nil "ntlm" "net/ntlm.el" (0 0 0 0))
-;;; Generated autoloads from net/ntlm.el
-(push (purecopy '(ntlm 2 1 0)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ntlm" '("ntlm-")))
-
-;;;***
-
-;;;### (autoloads nil "nxml-enc" "nxml/nxml-enc.el" (0 0 0 0))
-;;; Generated autoloads from nxml/nxml-enc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nxml-enc" '("nxml-")))
-
-;;;***
-
-;;;### (autoloads nil "nxml-maint" "nxml/nxml-maint.el" (0 0 0 0))
-;;; Generated autoloads from nxml/nxml-maint.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nxml-maint" '("nxml-insert-target-repertoire-glyph-set")))
-
-;;;***
-
-;;;### (autoloads nil "nxml-mode" "nxml/nxml-mode.el" (0 0 0 0))
-;;; Generated autoloads from nxml/nxml-mode.el
-
-(autoload 'nxml-mode "nxml-mode" "\
-Major mode for editing XML.
-
-\\[nxml-finish-element] finishes the current element by inserting an end-tag.
-C-c C-i closes a start-tag with `>' and then inserts a balancing end-tag
-leaving point between the start-tag and end-tag.
-\\[nxml-balanced-close-start-tag-block] is similar but for block rather than 
inline elements:
-the start-tag, point, and end-tag are all left on separate lines.
-If `nxml-slash-auto-complete-flag' is non-nil, then inserting a `</'
-automatically inserts the rest of the end-tag.
-
-\\[completion-at-point] performs completion on the symbol preceding point.
-
-\\[nxml-dynamic-markup-word] uses the contents of the current buffer
-to choose a tag to put around the word preceding point.
-
-Sections of the document can be displayed in outline form.  The
-variable `nxml-section-element-name-regexp' controls when an element
-is recognized as a section.  The same key sequences that change
-visibility in outline mode are used except that they start with C-c C-o
-instead of C-c.
-
-Validation is provided by the related minor-mode `rng-validate-mode'.
-This also makes completion schema- and context- sensitive.  Element
-names, attribute names, attribute values and namespace URIs can all be
-completed. By default, `rng-validate-mode' is automatically enabled.
-You can toggle it using \\[rng-validate-mode] or change the default by
-customizing `rng-nxml-auto-validate-flag'.
-
-\\[indent-for-tab-command] indents the current line appropriately.
-This can be customized using the variable `nxml-child-indent'
-and the variable `nxml-attribute-indent'.
-
-\\[nxml-insert-named-char] inserts a character reference using
-the character's name (by default, the Unicode name).
-\\[universal-argument] \\[nxml-insert-named-char] inserts the character 
directly.
-
-The Emacs commands that normally operate on balanced expressions will
-operate on XML markup items.  Thus \\[forward-sexp] will move forward
-across one markup item; \\[backward-sexp] will move backward across
-one markup item; \\[kill-sexp] will kill the following markup item;
-\\[mark-sexp] will mark the following markup item.  By default, each
-tag each treated as a single markup item; to make the complete element
-be treated as a single markup item, set the variable
-`nxml-sexp-element-flag' to t.  For more details, see the function
-`nxml-forward-balanced-item'.
-
-\\[nxml-backward-up-element] and \\[nxml-down-element] move up and down the 
element structure.
-
-Many aspects this mode can be customized using
-\\[customize-group] nxml RET.
-
-\(fn)" t nil)
-(defalias 'xml-mode 'nxml-mode)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nxml-mode" '("nxml-")))
-
-;;;***
-
-;;;### (autoloads nil "nxml-ns" "nxml/nxml-ns.el" (0 0 0 0))
-;;; Generated autoloads from nxml/nxml-ns.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nxml-ns" '("nxml-ns-")))
-
-;;;***
-
-;;;### (autoloads nil "nxml-outln" "nxml/nxml-outln.el" (0 0 0 0))
-;;; Generated autoloads from nxml/nxml-outln.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nxml-outln" '("nxml-")))
-
-;;;***
-
-;;;### (autoloads nil "nxml-parse" "nxml/nxml-parse.el" (0 0 0 0))
-;;; Generated autoloads from nxml/nxml-parse.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nxml-parse" '("nxml-")))
-
-;;;***
-
-;;;### (autoloads nil "nxml-rap" "nxml/nxml-rap.el" (0 0 0 0))
-;;; Generated autoloads from nxml/nxml-rap.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nxml-rap" '("nxml-")))
-
-;;;***
-
-;;;### (autoloads nil "nxml-util" "nxml/nxml-util.el" (0 0 0 0))
-;;; Generated autoloads from nxml/nxml-util.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"nxml-util" '("nxml-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-C" "org/ob-C.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-C.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-C" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-R" "org/ob-R.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-R.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-R" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-asymptote" "org/ob-asymptote.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from org/ob-asymptote.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-asymptote" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-awk" "org/ob-awk.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-awk.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-awk" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-calc" "org/ob-calc.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-calc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-calc" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-clojure" "org/ob-clojure.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-clojure.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-clojure" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-comint" "org/ob-comint.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-comint.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-comint" '("org-babel-comint-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ob-core" "org/ob-core.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ob-core.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-core" '("org-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-css" "org/ob-css.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-css.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-css" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-ditaa" "org/ob-ditaa.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-ditaa.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-ditaa" '("org-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-dot" "org/ob-dot.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-dot.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-dot" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-emacs-lisp" "org/ob-emacs-lisp.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from org/ob-emacs-lisp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-emacs-lisp" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-eval" "org/ob-eval.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-eval.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-eval" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-exp" "org/ob-exp.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-exp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-exp" '("org-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-fortran" "org/ob-fortran.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-fortran.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-fortran" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-gnuplot" "org/ob-gnuplot.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-gnuplot.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-gnuplot" '("org-babel-" "*org-babel-gnuplot-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-haskell" "org/ob-haskell.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-haskell.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-haskell" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-io" "org/ob-io.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-io.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-io" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-java" "org/ob-java.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-java.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-java" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-js" "org/ob-js.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-js.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-js" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ob-keys" "org/ob-keys.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ob-keys.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-keys" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-latex" "org/ob-latex.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-latex.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-latex" '("org-babel-" "convert-pdf")))
-
-;;;***
-
-;;;### (autoloads nil "ob-ledger" "org/ob-ledger.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-ledger.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-ledger" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-lilypond" "org/ob-lilypond.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-lilypond.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-lilypond" '("org-babel-" "lilypond-mode")))
-
-;;;***
-
-;;;### (autoloads nil "ob-lisp" "org/ob-lisp.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-lisp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-lisp" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ob-lob" "org/ob-lob.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ob-lob.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-lob" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-makefile" "org/ob-makefile.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-makefile.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-makefile" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-maxima" "org/ob-maxima.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-maxima.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-maxima" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-mscgen" "org/ob-mscgen.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-mscgen.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-mscgen" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-ocaml" "org/ob-ocaml.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-ocaml.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-ocaml" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-octave" "org/ob-octave.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-octave.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-octave" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-org" "org/ob-org.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-org.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-org" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-perl" "org/ob-perl.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-perl.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-perl" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-picolisp" "org/ob-picolisp.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-picolisp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-picolisp" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-plantuml" "org/ob-plantuml.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-plantuml.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-plantuml" '("org-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-python" "org/ob-python.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-python.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-python" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-ref" "org/ob-ref.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-ref.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-ref" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-ruby" "org/ob-ruby.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-ruby.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-ruby" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-sass" "org/ob-sass.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-sass.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-sass" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-scala" "org/ob-scala.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-scala.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-scala" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-scheme" "org/ob-scheme.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-scheme.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-scheme" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-screen" "org/ob-screen.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-screen.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-screen" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-sh" "org/ob-sh.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-sh.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-sh" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-shen" "org/ob-shen.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-shen.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-shen" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-sql" "org/ob-sql.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-sql.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-sql" '("org-babel-" "dbstring-mysql")))
-
-;;;***
-
-;;;### (autoloads nil "ob-sqlite" "org/ob-sqlite.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-sqlite.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-sqlite" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "ob-table" "org/ob-table.el" (0 0 0 0))
-;;; Generated autoloads from org/ob-table.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-table" '("org-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ob-tangle" 
"org/ob-tangle.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ob-tangle.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ob-tangle" '("org-babel-")))
-
-;;;***
-
-;;;### (autoloads nil "octave" "progmodes/octave.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/octave.el
-
-(autoload 'octave-mode "octave" "\
-Major mode for editing Octave code.
-
-Octave is a high-level language, primarily intended for numerical
-computations.  It provides a convenient command line interface
-for solving linear and nonlinear problems numerically.  Function
-definitions can also be stored in files and used in batch mode.
-
-See Info node `(octave-mode) Using Octave Mode' for more details.
-
-Key bindings:
-\\{octave-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'inferior-octave "octave" "\
-Run an inferior Octave process, I/O via `inferior-octave-buffer'.
-This buffer is put in Inferior Octave mode.  See `inferior-octave-mode'.
-
-Unless ARG is non-nil, switches to this buffer.
-
-The elements of the list `inferior-octave-startup-args' are sent as
-command line arguments to the inferior Octave process on startup.
-
-Additional commands to be executed on startup can be provided either in
-the file specified by `inferior-octave-startup-file' or by the default
-startup file, `~/.emacs-octave'.
-
-\(fn &optional ARG)" t nil)
-
-(defalias 'run-octave 'inferior-octave)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"octave" '("octave-" "inferior-octave-")))
-
-;;;***
-
-;;;### (autoloads nil "ogonek" "international/ogonek.el" (0 0 0 0))
-;;; Generated autoloads from international/ogonek.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ogonek" '("ogonek-")))
-
-;;;***
-
-;;;### (autoloads nil "opascal" "progmodes/opascal.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/opascal.el
-
-(define-obsolete-function-alias 'delphi-mode 'opascal-mode "24.4")
-
-(autoload 'opascal-mode "opascal" "\
-Major mode for editing OPascal code.\\<opascal-mode-map>
-\\[opascal-find-unit]  - Search for a OPascal source file.
-\\[opascal-fill-comment]       - Fill the current comment.
-\\[opascal-new-comment-line]   - If in a // comment, do a new comment line.
-
-\\[indent-region] also works for indenting a whole region.
-
-Customization:
-
- `opascal-indent-level'                (default 3)
-    Indentation of OPascal statements with respect to containing block.
- `opascal-compound-block-indent'       (default 0)
-    Extra indentation for blocks in compound statements.
- `opascal-case-label-indent'           (default 0)
-    Extra indentation for case statement labels.
- `opascal-search-path'                 (default .)
-    Directories to search when finding external units.
- `opascal-verbose'                     (default nil)
-    If true then OPascal token processing progress is reported to the user.
-
-Coloring:
-
- `opascal-keyword-face'                (default `font-lock-keyword-face')
-    Face used to color OPascal keywords.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"opascal" '("opascal-")))
-
-;;;***
-
-;;;### (autoloads nil "org" "org/org.el" (0 0 0 0))
-;;; Generated autoloads from org/org.el
-
-(autoload 'org-babel-do-load-languages "org" "\
-Load the languages defined in `org-babel-load-languages'.
-
-\(fn SYM VALUE)" nil nil)
-
-(autoload 'org-babel-load-file "org" "\
-Load Emacs Lisp source code blocks in the Org-mode FILE.
-This function exports the source code using `org-babel-tangle'
-and then loads the resulting file using `load-file'.  With prefix
-arg (noninteractively: 2nd arg) COMPILE the tangled Emacs Lisp
-file to byte-code before it is loaded.
-
-\(fn FILE &optional COMPILE)" t nil)
-
-(autoload 'org-version "org" "\
-Show the org-mode version in the echo area.
-With prefix argument HERE, insert it at point.
-When FULL is non-nil, use a verbose version string.
-When MESSAGE is non-nil, display a message with the version.
-
-\(fn &optional HERE FULL MESSAGE)" t nil)
-
-(autoload 'turn-on-orgtbl "org" "\
-Unconditionally turn on `orgtbl-mode'.
-
-\(fn)" nil nil)
-
-(autoload 'org-clock-persistence-insinuate "org" "\
-Set up hooks for clock persistence.
-
-\(fn)" nil nil)
-
-(autoload 'org-mode "org" "\
-Outline-based notes management and organizer, alias
-\"Carsten's outline-mode for keeping track of everything.\"
-
-Org-mode develops organizational tasks around a NOTES file which
-contains information about projects as plain text.  Org-mode is
-implemented on top of outline-mode, which is ideal to keep the content
-of large files well structured.  It supports ToDo items, deadlines and
-time stamps, which magically appear in the diary listing of the Emacs
-calendar.  Tables are easily created with a built-in table editor.
-Plain text URL-like links connect to websites, emails (VM), Usenet
-messages (Gnus), BBDB entries, and any files related to the project.
-For printing and sharing of notes, an Org-mode file (or a part of it)
-can be exported as a structured ASCII or HTML file.
-
-The following commands are available:
-
-\\{org-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'org-cycle "org" "\
-TAB-action and visibility cycling for Org-mode.
-
-This is the command invoked in Org-mode by the TAB key.  Its main purpose
-is outline visibility cycling, but it also invokes other actions
-in special contexts.
-
-- When this function is called with a prefix argument, rotate the entire
-  buffer through 3 states (global cycling)
-  1. OVERVIEW: Show only top-level headlines.
-  2. CONTENTS: Show all headlines of all levels, but no body text.
-  3. SHOW ALL: Show everything.
-  When called with two `C-u C-u' prefixes, switch to the startup visibility,
-  determined by the variable `org-startup-folded', and by any VISIBILITY
-  properties in the buffer.
-  When called with three `C-u C-u C-u' prefixed, show the entire buffer,
-  including any drawers.
-
-- When inside a table, re-align the table and move to the next field.
-
-- When point is at the beginning of a headline, rotate the subtree started
-  by this line through 3 different states (local cycling)
-  1. FOLDED:   Only the main headline is shown.
-  2. CHILDREN: The main headline and the direct children are shown.
-               From this state, you can move to one of the children
-               and zoom in further.
-  3. SUBTREE:  Show the entire subtree, including body text.
-  If there is no subtree, switch directly from CHILDREN to FOLDED.
-
-- When point is at the beginning of an empty headline and the variable
-  `org-cycle-level-after-item/entry-creation' is set, cycle the level
-  of the headline by demoting and promoting it to likely levels.  This
-  speeds up creation document structure by pressing TAB once or several
-  times right after creating a new headline.
-
-- When there is a numeric prefix, go up to a heading with level ARG, do
-  a `show-subtree' and return to the previous cursor position.  If ARG
-  is negative, go up that many levels.
-
-- When point is not at the beginning of a headline, execute the global
-  binding for TAB, which is re-indenting the line.  See the option
-  `org-cycle-emulate-tab' for details.
-
-- Special case: if point is at the beginning of the buffer and there is
-  no headline in line 1, this function will act as if called with prefix arg
-  (C-u TAB, same as S-TAB) also when called without prefix arg.
-  But only if also the variable `org-cycle-global-at-bob' is t.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'org-global-cycle "org" "\
-Cycle the global visibility.  For details see `org-cycle'.
-With \\[universal-argument] prefix arg, switch to startup visibility.
-With a numeric prefix, show all headlines up to that level.
-
-\(fn &optional ARG)" t nil)
-(put 'orgstruct-heading-prefix-regexp 'safe-local-variable 'stringp)
-
-(autoload 'orgstruct-mode "org" "\
-Toggle the minor mode `orgstruct-mode'.
-This mode is for using Org-mode structure commands in other
-modes.  The following keys behave as if Org-mode were active, if
-the cursor is on a headline, or on a plain list item (both as
-defined by Org-mode).
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'turn-on-orgstruct "org" "\
-Unconditionally turn on `orgstruct-mode'.
-
-\(fn)" nil nil)
-
-(autoload 'turn-on-orgstruct++ "org" "\
-Unconditionally turn on `orgstruct++-mode'.
-
-\(fn)" nil nil)
-
-(autoload 'org-run-like-in-org-mode "org" "\
-Run a command, pretending that the current buffer is in Org-mode.
-This will temporarily bind local variables that are typically bound in
-Org-mode to the values they have in Org-mode, and then interactively
-call CMD.
-
-\(fn CMD)" nil nil)
-
-(autoload 'org-store-link "org" "\
-\\<org-mode-map>Store an org-link to the current location.
-This link is added to `org-stored-links' and can later be inserted
-into an org-buffer with \\[org-insert-link].
-
-For some link types, a prefix arg is interpreted.
-For links to Usenet articles, arg negates `org-gnus-prefer-web-links'.
-For file links, arg negates `org-context-in-file-links'.
-
-A double prefix arg force skipping storing functions that are not
-part of Org's core.
-
-A triple prefix arg force storing a link for each line in the
-active region.
-
-\(fn ARG)" t nil)
-
-(autoload 'org-insert-link-global "org" "\
-Insert a link like Org-mode does.
-This command can be called in any mode to insert a link in Org-mode syntax.
-
-\(fn)" t nil)
-
-(autoload 'org-open-at-point-global "org" "\
-Follow a link like Org-mode does.
-This command can be called in any mode to follow a link that has
-Org-mode syntax.
-
-\(fn)" t nil)
-
-(autoload 'org-open-link-from-string "org" "\
-Open a link in the string S, as if it was in Org-mode.
-
-\(fn S &optional ARG REFERENCE-BUFFER)" t nil)
-
-(autoload 'org-switchb "org" "\
-Switch between Org buffers.
-With one prefix argument, restrict available buffers to files.
-With two prefix arguments, restrict available buffers to agenda files.
-
-Defaults to `iswitchb' for buffer name completion.
-Set `org-completion-use-ido' to make it use ido instead.
-
-\(fn &optional ARG)" t nil)
-
-(defalias 'org-ido-switchb 'org-switchb)
-
-(defalias 'org-iswitchb 'org-switchb)
-
-(autoload 'org-cycle-agenda-files "org" "\
-Cycle through the files in `org-agenda-files'.
-If the current buffer visits an agenda file, find the next one in the list.
-If the current buffer does not, find the first agenda file.
-
-\(fn)" t nil)
-
-(autoload 'org-submit-bug-report "org" "\
-Submit a bug report on Org-mode via mail.
-
-Don't hesitate to report any problems or inaccurate documentation.
-
-If you don't have setup sending mail from (X)Emacs, please copy the
-output buffer into your mail program, as it gives us important
-information about your Org-mode version and configuration.
-
-\(fn)" t nil)
-
-(autoload 'org-reload "org" "\
-Reload all org lisp files.
-With prefix arg UNCOMPILED, load the uncompiled versions.
-
-\(fn &optional UNCOMPILED)" t nil)
-
-(autoload 'org-customize "org" "\
-Call the customize function with org as argument.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org" '("org" "turn-on-org-cdlatex")))
-
-;;;***
-
-;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (0 0 0 0))
-;;; Generated autoloads from org/org-agenda.el
-
-(autoload 'org-toggle-sticky-agenda "org-agenda" "\
-Toggle `org-agenda-sticky'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'org-agenda "org-agenda" "\
-Dispatch agenda commands to collect entries to the agenda buffer.
-Prompts for a command to execute.  Any prefix arg will be passed
-on to the selected command.  The default selections are:
-
-a     Call `org-agenda-list' to display the agenda for current day or week.
-t     Call `org-todo-list' to display the global todo list.
-T     Call `org-todo-list' to display the global todo list, select only
-      entries with a specific TODO keyword (the user gets a prompt).
-m     Call `org-tags-view' to display headlines with tags matching
-      a condition  (the user is prompted for the condition).
-M     Like `m', but select only TODO entries, no ordinary headlines.
-L     Create a timeline for the current buffer.
-e     Export views to associated files.
-s     Search entries for keywords.
-S     Search entries for keywords, only with TODO keywords.
-/     Multi occur across all agenda files and also files listed
-      in `org-agenda-text-search-extra-files'.
-<     Restrict agenda commands to buffer, subtree, or region.
-      Press several times to get the desired effect.
->     Remove a previous restriction.
-#     List \"stuck\" projects.
-!     Configure what \"stuck\" means.
-C     Configure custom agenda commands.
-
-More commands can be added by configuring the variable
-`org-agenda-custom-commands'.  In particular, specific tags and TODO keyword
-searches can be pre-defined in this way.
-
-If the current buffer is in Org-mode and visiting a file, you can also
-first press `<' once to indicate that the agenda should be temporarily
-\(until the next use of \\[org-agenda]) restricted to the current file.
-Pressing `<' twice means to restrict to the current subtree or region
-\(if active).
-
-\(fn &optional ARG ORG-KEYS RESTRICTION)" t nil)
-
-(autoload 'org-batch-agenda "org-agenda" "\
-Run an agenda command in batch mode and send the result to STDOUT.
-If CMD-KEY is a string of length 1, it is used as a key in
-`org-agenda-custom-commands' and triggers this command.  If it is a
-longer string it is used as a tags/todo match string.
-Parameters are alternating variable names and values that will be bound
-before running the agenda command.
-
-\(fn CMD-KEY &rest PARAMETERS)" nil t)
-
-(autoload 'org-batch-agenda-csv "org-agenda" "\
-Run an agenda command in batch mode and send the result to STDOUT.
-If CMD-KEY is a string of length 1, it is used as a key in
-`org-agenda-custom-commands' and triggers this command.  If it is a
-longer string it is used as a tags/todo match string.
-Parameters are alternating variable names and values that will be bound
-before running the agenda command.
-
-The output gives a line for each selected agenda item.  Each
-item is a list of comma-separated values, like this:
-
-category,head,type,todo,tags,date,time,extra,priority-l,priority-n
-
-category     The category of the item
-head         The headline, without TODO kwd, TAGS and PRIORITY
-type         The type of the agenda entry, can be
-                todo               selected in TODO match
-                tagsmatch          selected in tags match
-                diary              imported from diary
-                deadline           a deadline on given date
-                scheduled          scheduled on given date
-                timestamp          entry has timestamp on given date
-                closed             entry was closed on given date
-                upcoming-deadline  warning about deadline
-                past-scheduled     forwarded scheduled item
-                block              entry has date block including g. date
-todo         The todo keyword, if any
-tags         All tags including inherited ones, separated by colons
-date         The relevant date, like 2007-2-14
-time         The time, like 15:00-16:50
-extra        Sting with extra planning info
-priority-l   The priority letter if any was given
-priority-n   The computed numerical priority
-agenda-day   The day in the agenda where this is listed
-
-\(fn CMD-KEY &rest PARAMETERS)" nil t)
-
-(autoload 'org-store-agenda-views "org-agenda" "\
-Store agenda views.
-
-\(fn &rest PARAMETERS)" t nil)
-
-(autoload 'org-batch-store-agenda-views "org-agenda" "\
-Run all custom agenda commands that have a file argument.
-
-\(fn &rest PARAMETERS)" nil t)
-
-(autoload 'org-agenda-list "org-agenda" "\
-Produce a daily/weekly view from all files in variable `org-agenda-files'.
-The view will be for the current day or week, but from the overview buffer
-you will be able to go to other days/weeks.
-
-With a numeric prefix argument in an interactive call, the agenda will
-span ARG days.  Lisp programs should instead specify SPAN to change
-the number of days.  SPAN defaults to `org-agenda-span'.
-
-START-DAY defaults to TODAY, or to the most recent match for the weekday
-given in `org-agenda-start-on-weekday'.
-
-When WITH-HOUR is non-nil, only include scheduled and deadline
-items if they have an hour specification like [h]h:mm.
-
-\(fn &optional ARG START-DAY SPAN WITH-HOUR)" t nil)
-
-(autoload 'org-search-view "org-agenda" "\
-Show all entries that contain a phrase or words or regular expressions.
-
-With optional prefix argument TODO-ONLY, only consider entries that are
-TODO entries.  The argument STRING can be used to pass a default search
-string into this function.  If EDIT-AT is non-nil, it means that the
-user should get a chance to edit this string, with cursor at position
-EDIT-AT.
-
-The search string can be viewed either as a phrase that should be found as
-is, or it can be broken into a number of snippets, each of which must match
-in a Boolean way to select an entry.  The default depends on the variable
-`org-agenda-search-view-always-boolean'.
-Even if this is turned off (the default) you can always switch to
-Boolean search dynamically by preceding the first word with  \"+\" or \"-\".
-
-The default is a direct search of the whole phrase, where each space in
-the search string can expand to an arbitrary amount of whitespace,
-including newlines.
-
-If using a Boolean search, the search string is split on whitespace and
-each snippet is searched separately, with logical AND to select an entry.
-Words prefixed with a minus must *not* occur in the entry.  Words without
-a prefix or prefixed with a plus must occur in the entry.  Matching is
-case-insensitive.  Words are enclosed by word delimiters (i.e. they must
-match whole words, not parts of a word) if
-`org-agenda-search-view-force-full-words' is set (default is nil).
-
-Boolean search snippets enclosed by curly braces are interpreted as
-regular expressions that must or (when preceded with \"-\") must not
-match in the entry.  Snippets enclosed into double quotes will be taken
-as a whole, to include whitespace.
-
-- If the search string starts with an asterisk, search only in headlines.
-- If (possibly after the leading star) the search string starts with an
-  exclamation mark, this also means to look at TODO entries only, an effect
-  that can also be achieved with a prefix argument.
-- If (possibly after star and exclamation mark) the search string starts
-  with a colon, this will mean that the (non-regexp) snippets of the
-  Boolean search must match as full words.
-
-This command searches the agenda files, and in addition the files listed
-in `org-agenda-text-search-extra-files'.
-
-\(fn &optional TODO-ONLY STRING EDIT-AT)" t nil)
-
-(autoload 'org-todo-list "org-agenda" "\
-Show all (not done) TODO entries from all agenda file in a single list.
-The prefix arg can be used to select a specific TODO keyword and limit
-the list to these.  When using \\[universal-argument], you will be prompted
-for a keyword.  A numeric prefix directly selects the Nth keyword in
-`org-todo-keywords-1'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'org-tags-view "org-agenda" "\
-Show all headlines for all `org-agenda-files' matching a TAGS criterion.
-The prefix arg TODO-ONLY limits the search to TODO entries.
-
-\(fn &optional TODO-ONLY MATCH)" t nil)
-
-(autoload 'org-agenda-list-stuck-projects "org-agenda" "\
-Create agenda view for projects that are stuck.
-Stuck projects are project that have no next actions.  For the definitions
-of what a project is and how to check if it stuck, customize the variable
-`org-stuck-projects'.
-
-\(fn &rest IGNORE)" t nil)
-
-(autoload 'org-diary "org-agenda" "\
-Return diary information from org files.
-This function can be used in a \"sexp\" diary entry in the Emacs calendar.
-It accesses org files and extracts information from those files to be
-listed in the diary.  The function accepts arguments specifying what
-items should be listed.  For a list of arguments allowed here, see the
-variable `org-agenda-entry-types'.
-
-The call in the diary file should look like this:
-
-   &%%(org-diary) ~/path/to/some/orgfile.org
-
-Use a separate line for each org file to check.  Or, if you omit the file name,
-all files listed in `org-agenda-files' will be checked automatically:
-
-   &%%(org-diary)
-
-If you don't give any arguments (as in the example above), the default value
-of `org-agenda-entry-types' is used: (:deadline :scheduled :timestamp :sexp).
-So the example above may also be written as
-
-   &%%(org-diary :deadline :timestamp :sexp :scheduled)
-
-The function expects the lisp variables `entry' and `date' to be provided
-by the caller, because this is how the calendar works.  Don't use this
-function from a program - use `org-agenda-get-day-entries' instead.
-
-\(fn &rest ARGS)" nil nil)
-
-(autoload 'org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item 
"org-agenda" "\
-Do we have a reason to ignore this TODO entry because it has a time stamp?
-
-\(fn &optional END)" nil nil)
-
-(autoload 'org-agenda-set-restriction-lock "org-agenda" "\
-Set restriction lock for agenda, to current subtree or file.
-Restriction will be the file if TYPE is `file', or if TYPE is the
-universal prefix `(4)', or if the cursor is before the first headline
-in the file.  Otherwise, restriction will be to the current subtree.
-
-\(fn &optional TYPE)" t nil)
-
-(autoload 'org-calendar-goto-agenda "org-agenda" "\
-Compute the Org-mode agenda for the calendar date displayed at the cursor.
-This is a command that has to be installed in `calendar-mode-map'.
-
-\(fn)" t nil)
-
-(autoload 'org-agenda-to-appt "org-agenda" "\
-Activate appointments found in `org-agenda-files'.
-With a \\[universal-argument] prefix, refresh the list of
-appointments.
-
-If FILTER is t, interactively prompt the user for a regular
-expression, and filter out entries that don't match it.
-
-If FILTER is a string, use this string as a regular expression
-for filtering entries out.
-
-If FILTER is a function, filter out entries against which
-calling the function returns nil.  This function takes one
-argument: an entry from `org-agenda-get-day-entries'.
-
-FILTER can also be an alist with the car of each cell being
-either `headline' or `category'.  For example:
-
-  ((headline \"IMPORTANT\")
-   (category \"Work\"))
-
-will only add headlines containing IMPORTANT or headlines
-belonging to the \"Work\" category.
-
-ARGS are symbols indicating what kind of entries to consider.
-By default `org-agenda-to-appt' will use :deadline*, :scheduled*
-\(i.e., deadlines and scheduled items with a hh:mm specification)
-and :timestamp entries.  See the docstring of `org-diary' for
-details and examples.
-
-If an entry has a APPT_WARNTIME property, its value will be used
-to override `appt-message-warning-time'.
-
-\(fn &optional REFRESH FILTER &rest ARGS)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-agenda" '("org-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-archive"
-;;;;;;  "org/org-archive.el" (0 0 0 0))
-;;; Generated autoloads from org/org-archive.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-archive" '("org-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-attach" 
"org/org-attach.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/org-attach.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-attach" '("org-attach-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-bbdb" "org/org-bbdb.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/org-bbdb.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-bbdb" '("org-bbdb-")))
-
-;;;***
-
-;;;### (autoloads nil "org-bibtex" "org/org-bibtex.el" (0 0 0 0))
-;;; Generated autoloads from org/org-bibtex.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-bibtex" '("org-")))
-
-;;;***
-
-;;;### (autoloads nil "org-capture" "org/org-capture.el" (0 0 0 0))
-;;; Generated autoloads from org/org-capture.el
-
-(autoload 'org-capture-string "org-capture" "\
-Capture STRING with the template selected by KEYS.
-
-\(fn STRING &optional KEYS)" t nil)
-
-(autoload 'org-capture "org-capture" "\
-Capture something.
-\\<org-capture-mode-map>
-This will let you select a template from `org-capture-templates', and then
-file the newly captured information.  The text is immediately inserted
-at the target location, and an indirect buffer is shown where you can
-edit it.  Pressing \\[org-capture-finalize] brings you back to the previous 
state
-of Emacs, so that you can continue your work.
-
-When called interactively with a \\[universal-argument] prefix argument GOTO, 
don't capture
-anything, just go to the file/headline where the selected template
-stores its notes.  With a double prefix argument \\[universal-argument] 
\\[universal-argument], go to the last note
-stored.
-
-When called with a `C-0' (zero) prefix, insert a template at point.
-
-ELisp programs can set KEYS to a string associated with a template
-in `org-capture-templates'.  In this case, interactive selection
-will be bypassed.
-
-If `org-capture-use-agenda-date' is non-nil, capturing from the
-agenda will use the date at point as the default date.  Then, a
-`C-1' prefix will tell the capture process to use the HH:MM time
-of the day at point (if any) or the current HH:MM time.
-
-\(fn &optional GOTO KEYS)" t nil)
-
-(autoload 'org-capture-import-remember-templates "org-capture" "\
-Set `org-capture-templates' to be similar to `org-remember-templates'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-capture" '("org-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-clock" 
"org/org-clock.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/org-clock.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-clock" '("org-")))
-
-;;;***
-
-;;;### (autoloads nil "org-colview" "org/org-colview.el" (0 0 0 0))
-;;; Generated autoloads from org/org-colview.el
-
-(autoload 'org-columns-remove-overlays "org-colview" "\
-Remove all currently active column overlays.
-
-\(fn)" t nil)
-
-(autoload 'org-columns-get-format-and-top-level "org-colview" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'org-columns "org-colview" "\
-Turn on column view on an org-mode file.
-When COLUMNS-FMT-STRING is non-nil, use it as the column format.
-
-\(fn &optional COLUMNS-FMT-STRING)" t nil)
-
-(autoload 'org-columns-compute "org-colview" "\
-Sum the values of property PROPERTY hierarchically, for the entire buffer.
-
-\(fn PROPERTY)" t nil)
-
-(autoload 'org-columns-number-to-string "org-colview" "\
-Convert a computed column number to a string value, according to FMT.
-
-\(fn N FMT &optional PRINTF)" nil nil)
-
-(autoload 'org-dblock-write:columnview "org-colview" "\
-Write the column view table.
-PARAMS is a property list of parameters:
-
-:width    enforce same column widths with <N> specifiers.
-:id       the :ID: property of the entry where the columns view
-         should be built.  When the symbol `local', call locally.
-         When `global' call column view with the cursor at the beginning
-         of the buffer (usually this means that the whole buffer switches
-         to column view).  When \"file:path/to/file.org\", invoke column
-         view at the start of that file.  Otherwise, the ID is located
-         using `org-id-find'.
-:hlines   When t, insert a hline before each item.  When a number, insert
-         a hline before each level <= that number.
-:vlines   When t, make each column a colgroup to enforce vertical lines.
-:maxlevel When set to a number, don't capture headlines below this level.
-:skip-empty-rows
-         When t, skip rows where all specifiers other than ITEM are empty.
-:format   When non-nil, specify the column view format to use.
-
-\(fn PARAMS)" nil nil)
-
-(autoload 'org-insert-columns-dblock "org-colview" "\
-Create a dynamic block capturing a column view table.
-
-\(fn)" t nil)
-
-(autoload 'org-agenda-columns "org-colview" "\
-Turn on or update column view in the agenda.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-colview" '("org-")))
-
-;;;***
-
-;;;### (autoloads nil "org-compat" "org/org-compat.el" (0 0 0 0))
-;;; Generated autoloads from org/org-compat.el
-
-(autoload 'org-check-version "org-compat" "\
-Try very hard to provide sensible version strings.
-
-\(fn)" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-compat" '("org-")))
-
-;;;***
-
-;;;### (autoloads nil "org-crypt" "org/org-crypt.el" (0 0 0 0))
-;;; Generated autoloads from org/org-crypt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-crypt" '("org-")))
-
-;;;***
-
-;;;### (autoloads nil "org-ctags" "org/org-ctags.el" (0 0 0 0))
-;;; Generated autoloads from org/org-ctags.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-ctags" '("org-ctags-" "y-or-n-minibuffer")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-datetree"
-;;;;;;  "org/org-datetree.el" (0 0 0 0))
-;;; Generated autoloads from org/org-datetree.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-datetree" '("org-datetree-")))
-
-;;;***
-
-;;;### (autoloads nil "org-docview" "org/org-docview.el" (0 0 0 0))
-;;; Generated autoloads from org/org-docview.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-docview" '("org-docview-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-element"
-;;;;;;  "org/org-element.el" (0 0 0 0))
-;;; Generated autoloads from org/org-element.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-element" '("org-element-")))
-
-;;;***
-
-;;;### (autoloads nil "org-entities" "org/org-entities.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from org/org-entities.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-entities" '("replace-amp" "org-entit")))
-
-;;;***
-
-;;;### (autoloads nil "org-eshell" "org/org-eshell.el" (0 0 0 0))
-;;; Generated autoloads from org/org-eshell.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-eshell" '("org-eshell-")))
-
-;;;***
-
-;;;### (autoloads nil "org-faces" "org/org-faces.el" (0 0 0 0))
-;;; Generated autoloads from org/org-faces.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-faces" '("org-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-feed" "org/org-feed.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/org-feed.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-feed" '("org-feed-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-footnote"
-;;;;;;  "org/org-footnote.el" (0 0 0 0))
-;;; Generated autoloads from org/org-footnote.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-footnote" '("org-footnote-")))
-
-;;;***
-
-;;;### (autoloads nil "org-gnus" "org/org-gnus.el" (0 0 0 0))
-;;; Generated autoloads from org/org-gnus.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-gnus" '("org-gnus-")))
-
-;;;***
-
-;;;### (autoloads nil "org-habit" "org/org-habit.el" (0 0 0 0))
-;;; Generated autoloads from org/org-habit.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-habit" '("org-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-id" "org/org-id.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/org-id.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-id" '("org-id-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-indent" 
"org/org-indent.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/org-indent.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-indent" '("org-")))
-
-;;;***
-
-;;;### (autoloads nil "org-info" "org/org-info.el" (0 0 0 0))
-;;; Generated autoloads from org/org-info.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-info" '("org-info-")))
-
-;;;***
-
-;;;### (autoloads nil "org-inlinetask" "org/org-inlinetask.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from org/org-inlinetask.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-inlinetask" '("org-inlinetask-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-irc" "org/org-irc.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/org-irc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-irc" '("org-irc-")))
-
-;;;***
-
-;;;### (autoloads nil "org-list" "org/org-list.el" (0 0 0 0))
-;;; Generated autoloads from org/org-list.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-list" '("org-")))
-
-;;;***
-
-;;;### (autoloads nil "org-macro" "org/org-macro.el" (0 0 0 0))
-;;; Generated autoloads from org/org-macro.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-macro" '("org-macro-")))
-
-;;;***
-
-;;;### (autoloads nil "org-macs" "org/org-macs.el" (0 0 0 0))
-;;; Generated autoloads from org/org-macs.el
-
-(autoload 'org-load-noerror-mustsuffix "org-macs" "\
-Load FILE with optional arguments NOERROR and MUSTSUFFIX.  Drop the MUSTSUFFIX 
argument for XEmacs, which doesn't recognize it.
-
-\(fn FILE)" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-macs" '("org-")))
-
-;;;***
-
-;;;### (autoloads nil "org-mhe" "org/org-mhe.el" (0 0 0 0))
-;;; Generated autoloads from org/org-mhe.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-mhe" '("org-mhe-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-mobile" 
"org/org-mobile.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/org-mobile.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-mobile" '("org-mobile-")))
-
-;;;***
-
-;;;### (autoloads nil "org-mouse" "org/org-mouse.el" (0 0 0 0))
-;;; Generated autoloads from org/org-mouse.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-mouse" '("org-mouse-")))
-
-;;;***
-
-;;;### (autoloads nil "org-pcomplete" "org/org-pcomplete.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from org/org-pcomplete.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-pcomplete" '("org-" "pcomplete/org-mode/")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-plot" "org/org-plot.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/org-plot.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-plot" '("org-plot")))
-
-;;;***
-
-;;;### (autoloads nil "org-protocol" "org/org-protocol.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from org/org-protocol.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-protocol" '("org-protocol-")))
-
-;;;***
-
-;;;### (autoloads nil "org-rmail" "org/org-rmail.el" (0 0 0 0))
-;;; Generated autoloads from org/org-rmail.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-rmail" '("org-rmail-")))
-
-;;;***
-
-;;;### (autoloads nil "org-src" "org/org-src.el" (0 0 0 0))
-;;; Generated autoloads from org/org-src.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-src" '("org-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-table" 
"org/org-table.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/org-table.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-table" '("org" "*orgtbl-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "org-timer" 
"org/org-timer.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/org-timer.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-timer" '("org-timer-")))
-
-;;;***
-
-;;;### (autoloads nil "org-version" "org/org-version.el" (0 0 0 0))
-;;; Generated autoloads from org/org-version.el
-
-(autoload 'org-release "org-version" "\
-The release version of org-mode.
-  Inserted by installing org-mode or when a release is made.
-
-\(fn)" nil nil)
-
-(autoload 'org-git-version "org-version" "\
-The Git version of org-mode.
-  Inserted by installing org-mode or when a release is made.
-
-\(fn)" nil nil)
-
-;;;***
-
-;;;### (autoloads nil "org-w3m" "org/org-w3m.el" (0 0 0 0))
-;;; Generated autoloads from org/org-w3m.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"org-w3m" '("org-w3m-")))
-
-;;;***
-
-;;;### (autoloads nil "outline" "outline.el" (0 0 0 0))
-;;; Generated autoloads from outline.el
-(put 'outline-regexp 'safe-local-variable 'stringp)
-(put 'outline-heading-end-regexp 'safe-local-variable 'stringp)
-
-(autoload 'outline-mode "outline" "\
-Set major mode for editing outlines with selective display.
-Headings are lines which start with asterisks: one for major headings,
-two for subheadings, etc.  Lines not starting with asterisks are body lines.
-
-Body text or subheadings under a heading can be made temporarily
-invisible, or visible again.  Invisible lines are attached to the end
-of the heading, so they move with it, if the line is killed and yanked
-back.  A heading with text hidden under it is marked with an ellipsis (...).
-
-\\{outline-mode-map}
-The commands `outline-hide-subtree', `outline-show-subtree',
-`outline-show-children', `outline-hide-entry',
-`outline-show-entry', `outline-hide-leaves', and `outline-show-branches'
-are used when point is on a heading line.
-
-The variable `outline-regexp' can be changed to control what is a heading.
-A line is a heading if `outline-regexp' matches something at the
-beginning of the line.  The longer the match, the deeper the level.
-
-Turning on outline mode calls the value of `text-mode-hook' and then of
-`outline-mode-hook', if they are non-nil.
-
-\(fn)" t nil)
-
-(autoload 'outline-minor-mode "outline" "\
-Toggle Outline minor mode.
-With a prefix argument ARG, enable Outline minor mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-See the command `outline-mode' for more information on this mode.
-
-\(fn &optional ARG)" t nil)
-(put 'outline-level 'risky-local-variable t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"outline" '("outline-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ox" "org/ox.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ox.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ox" 
'("org-export-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ox-ascii" "org/ox-ascii.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ox-ascii.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ox-ascii" '("org-ascii-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ox-beamer" 
"org/ox-beamer.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ox-beamer.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ox-beamer" '("org-beamer-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ox-html" "org/ox-html.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ox-html.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ox-html" '("org-html-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ox-icalendar"
-;;;;;;  "org/ox-icalendar.el" (0 0 0 0))
-;;; Generated autoloads from org/ox-icalendar.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ox-icalendar" '("org-icalendar-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ox-latex" "org/ox-latex.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ox-latex.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ox-latex" '("org-latex-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ox-man" "org/ox-man.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ox-man.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ox-man" '("org-man-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ox-md" "org/ox-md.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ox-md.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ox-md" '("org-md-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ox-odt" "org/ox-odt.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ox-odt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ox-odt" '("org-odt-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ox-org" "org/ox-org.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ox-org.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ox-org" '("org-org-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ox-publish" 
"org/ox-publish.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ox-publish.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ox-publish" '("org-publish-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ox-texinfo" 
"org/ox-texinfo.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from org/ox-texinfo.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ox-texinfo" '("org-texinfo-")))
-
-;;;***
-
-;;;### (autoloads nil "package" "emacs-lisp/package.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/package.el
-(push (purecopy '(package 1 1 0)) package--builtin-versions)
-
-(defvar package-enable-at-startup t "\
-Whether to activate installed packages when Emacs starts.
-If non-nil, packages are activated after reading the init file
-and before `after-init-hook'.  Activation is not done if
-`user-init-file' is nil (e.g. Emacs was started with \"-q\").
-
-Even if the value is nil, you can type \\[package-initialize] to
-activate the package system at any time.")
-
-(custom-autoload 'package-enable-at-startup "package" t)
-
-(autoload 'package-initialize "package" "\
-Load Emacs Lisp packages, and activate them.
-The variable `package-load-list' controls which packages to load.
-If optional arg NO-ACTIVATE is non-nil, don't activate packages.
-If `user-init-file' does not mention `(package-initialize)', add
-it to the file.
-If called as part of loading `user-init-file', set
-`package-enable-at-startup' to nil, to prevent accidentally
-loading packages twice.
-It is not necessary to adjust `load-path' or `require' the
-individual packages after calling `package-initialize' -- this is
-taken care of by `package-initialize'.
-
-\(fn &optional NO-ACTIVATE)" t nil)
-
-(autoload 'package-import-keyring "package" "\
-Import keys from FILE.
-
-\(fn &optional FILE)" t nil)
-
-(autoload 'package-refresh-contents "package" "\
-Download descriptions of all configured ELPA packages.
-For each archive configured in the variable `package-archives',
-inform Emacs about the latest versions of all packages it offers,
-and make them available for download.
-Optional argument ASYNC specifies whether to perform the
-downloads in the background.
-
-\(fn &optional ASYNC)" t nil)
-
-(autoload 'package-install "package" "\
-Install the package PKG.
-PKG can be a package-desc or a symbol naming one of the available packages
-in an archive in `package-archives'.  Interactively, prompt for its name.
-
-If called interactively or if DONT-SELECT nil, add PKG to
-`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.
-
-\(fn PKG &optional DONT-SELECT)" t nil)
-
-(autoload 'package-install-from-buffer "package" "\
-Install a package from the current buffer.
-The current buffer is assumed to be a single .el or .tar file or
-a directory.  These must follow the packaging guidelines (see
-info node `(elisp)Packaging').
-
-Specially, if current buffer is a directory, the -pkg.el
-description file is not mandatory, in which case the information
-is derived from the main .el file in the directory.
-
-Downloads and installs required packages as needed.
-
-\(fn)" t nil)
-
-(autoload 'package-install-file "package" "\
-Install a package from a file.
-The file can either be a tar file, an Emacs Lisp file, or a
-directory.
-
-\(fn FILE)" t nil)
-
-(autoload 'package-install-selected-packages "package" "\
-Ensure packages in `package-selected-packages' are installed.
-If some packages are not installed propose to install them.
-
-\(fn)" t nil)
-
-(autoload 'package-reinstall "package" "\
-Reinstall package PKG.
-PKG should be either a symbol, the package name, or a package-desc
-object.
-
-\(fn PKG)" t nil)
-
-(autoload 'package-autoremove "package" "\
-Remove packages that are no more needed.
-
-Packages that are no more needed by other packages in
-`package-selected-packages' and their dependencies
-will be deleted.
-
-\(fn)" t nil)
-
-(autoload 'describe-package "package" "\
-Display the full documentation of PACKAGE (a symbol).
-
-\(fn PACKAGE)" t nil)
-
-(autoload 'list-packages "package" "\
-Display a list of packages.
-This first fetches the updated list of packages before
-displaying, unless a prefix argument NO-FETCH is specified.
-The list is displayed in a buffer named `*Packages*'.
-
-\(fn &optional NO-FETCH)" t nil)
-
-(defalias 'package-list-packages 'list-packages)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"package" '("package-" "define-package" "describe-package-1" "bad-signature")))
-
-;;;***
-
-;;;### (autoloads nil "package-x" "emacs-lisp/package-x.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emacs-lisp/package-x.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"package-x" '("package-")))
-
-;;;***
-
-;;;### (autoloads nil "page-ext" "textmodes/page-ext.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/page-ext.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"page-ext" '("previous-page" "pages-" "sort-pages-" "original-page-delimiter" 
"add-new-page" "next-page" "ctl-x-ctl-p-map")))
-
-;;;***
-
-;;;### (autoloads nil "paren" "paren.el" (0 0 0 0))
-;;; Generated autoloads from paren.el
-
-(defvar show-paren-mode nil "\
-Non-nil if Show-Paren mode is enabled.
-See the `show-paren-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `show-paren-mode'.")
-
-(custom-autoload 'show-paren-mode "paren" nil)
-
-(autoload 'show-paren-mode "paren" "\
-Toggle visualization of matching parens (Show Paren mode).
-With a prefix argument ARG, enable Show Paren mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Show Paren mode is a global minor mode.  When enabled, any
-matching parenthesis is highlighted in `show-paren-style' after
-`show-paren-delay' seconds of Emacs idle time.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"paren" '("show-paren-")))
-
-;;;***
-
-;;;### (autoloads nil "parse-time" "calendar/parse-time.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from calendar/parse-time.el
-(put 'parse-time-rules 'risky-local-variable t)
-
-(autoload 'parse-time-string "parse-time" "\
-Parse the time-string STRING into (SEC MIN HOUR DAY MON YEAR DOW DST TZ).
-STRING should be on something resembling an RFC2822 string, a la
-\"Fri, 25 Mar 2016 16:24:56 +0100\", but this function is
-somewhat liberal in what format it accepts, and will attempt to
-return a \"likely\" value even for somewhat malformed strings.
-The values returned are identical to those of `decode-time', but
-any values that are unknown are returned as nil.
-
-\(fn STRING)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"parse-time" '("parse-")))
-
-;;;***
-
-;;;### (autoloads nil "pascal" "progmodes/pascal.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/pascal.el
-
-(autoload 'pascal-mode "pascal" "\
-Major mode for editing Pascal code.\\<pascal-mode-map>
-TAB indents for Pascal code.  Delete converts tabs to spaces as it moves back.
-
-\\[completion-at-point] completes the word around current point with respect 
to position in code
-\\[completion-help-at-point] shows all possible completions at this point.
-
-Other useful functions are:
-
-\\[pascal-mark-defun]  - Mark function.
-\\[pascal-insert-block]        - insert begin ... end;
-\\[pascal-star-comment]        - insert (* ... *)
-\\[pascal-comment-area]        - Put marked area in a comment, fixing nested 
comments.
-\\[pascal-uncomment-area]      - Uncomment an area commented with 
\\[pascal-comment-area].
-\\[pascal-beg-of-defun]        - Move to beginning of current function.
-\\[pascal-end-of-defun]        - Move to end of current function.
-\\[pascal-goto-defun]  - Goto function prompted for in the minibuffer.
-\\[pascal-outline-mode]        - Enter `pascal-outline-mode'.
-
-Variables controlling indentation/edit style:
-
- `pascal-indent-level' (default 3)
-    Indentation of Pascal statements with respect to containing block.
- `pascal-case-indent' (default 2)
-    Indentation for case statements.
- `pascal-auto-newline' (default nil)
-    Non-nil means automatically newline after semicolons and the punctuation
-    mark after an end.
- `pascal-indent-nested-functions' (default t)
-    Non-nil means nested functions are indented.
- `pascal-tab-always-indent' (default t)
-    Non-nil means TAB in Pascal mode should always reindent the current line,
-    regardless of where in the line point is when the TAB command is used.
- `pascal-auto-endcomments' (default t)
-    Non-nil means a comment { ... } is set after the ends which ends cases and
-    functions. The name of the function or case will be set between the braces.
- `pascal-auto-lineup' (default t)
-    List of contexts where auto lineup of :'s or ='s should be done.
-
-See also the user variables `pascal-type-keywords', `pascal-start-keywords' and
-`pascal-separator-keywords'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pascal" '("pascal-" "electric-pascal-")))
-
-;;;***
-
-;;;### (autoloads nil "password-cache" "password-cache.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from password-cache.el
-
-(defvar password-cache t "\
-Whether to cache passwords.")
-
-(custom-autoload 'password-cache "password-cache" t)
-
-(defvar password-cache-expiry 16 "\
-How many seconds passwords are cached, or nil to disable expiring.
-Whether passwords are cached at all is controlled by `password-cache'.")
-
-(custom-autoload 'password-cache-expiry "password-cache" t)
-
-(autoload 'password-in-cache-p "password-cache" "\
-Check if KEY is in the cache.
-
-\(fn KEY)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"password-cache" '("password-")))
-
-;;;***
-
-;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/pcase.el
-
-(autoload 'pcase "pcase" "\
-Evaluate EXP and attempt to match it against structural patterns.
-CASES is a list of elements of the form (PATTERN CODE...).
-
-A structural PATTERN describes a template that identifies a class
-of values.  For example, the pattern \\=`(,foo ,bar) matches any
-two element list, binding its elements to symbols named `foo' and
-`bar' -- in much the same way that `cl-destructuring-bind' would.
-
-A significant difference from `cl-destructuring-bind' is that, if
-a pattern match fails, the next case is tried until either a
-successful match is found or there are no more cases.
-
-Another difference is that pattern elements may be quoted,
-meaning they must match exactly: The pattern \\='(foo bar)
-matches only against two element lists containing the symbols
-`foo' and `bar' in that order.  (As a short-hand, atoms always
-match themselves, such as numbers or strings, and need not be
-quoted.)
-
-Lastly, a pattern can be logical, such as (pred numberp), that
-matches any number-like element; or the symbol `_', that matches
-anything.  Also, when patterns are backquoted, a comma may be
-used to introduce logical patterns inside backquoted patterns.
-
-The complete list of standard patterns is as follows:
-
-  _            matches anything.
-  SYMBOL       matches anything and binds it to SYMBOL.
-                If a SYMBOL is used twice in the same pattern
-                the second occurrence becomes an `eq'uality test.
-  (or PAT...)  matches if any of the patterns matches.
-  (and PAT...) matches if all the patterns match.
-  \\='VAL              matches if the object is `equal' to VAL.
-  ATOM         is a shorthand for \\='ATOM.
-                  ATOM can be a keyword, an integer, or a string.
-  (pred FUN)   matches if FUN applied to the object returns non-nil.
-  (guard BOOLEXP)      matches if BOOLEXP evaluates to non-nil.
-  (let PAT EXP)        matches if EXP matches PAT.
-  (app FUN PAT)        matches if FUN applied to the object matches PAT.
-
-Additional patterns can be defined using `pcase-defmacro'.
-
-The FUN argument in the `app' pattern may have the following forms:
-  SYMBOL or (lambda ARGS BODY)  in which case it's called with one argument.
-  (F ARG1 .. ARGn) in which case F gets called with an n+1'th argument
-                        which is the value being matched.
-So a FUN of the form SYMBOL is equivalent to (FUN).
-FUN can refer to variables bound earlier in the pattern.
-
-See Info node `(elisp) Pattern matching case statement' in the
-Emacs Lisp manual for more information and examples.
-
-\(fn EXP &rest CASES)" nil t)
-
-(function-put 'pcase 'lisp-indent-function '1)
-
-(autoload 'pcase-exhaustive "pcase" "\
-The exhaustive version of `pcase' (which see).
-
-\(fn EXP &rest CASES)" nil t)
-
-(function-put 'pcase-exhaustive 'lisp-indent-function '1)
-
-(autoload 'pcase-lambda "pcase" "\
-Like `lambda' but allow each argument to be a pattern.
-I.e. accepts the usual &optional and &rest keywords, but every
-formal argument can be any pattern accepted by `pcase' (a mere
-variable name being but a special case of it).
-
-\(fn LAMBDA-LIST &rest BODY)" nil t)
-
-(function-put 'pcase-lambda 'doc-string-elt '2)
-
-(function-put 'pcase-lambda 'lisp-indent-function 'defun)
-
-(autoload 'pcase-let* "pcase" "\
-Like `let*' but where you can use `pcase' patterns for bindings.
-BODY should be an expression, and BINDINGS should be a list of bindings
-of the form (PAT EXP).
-
-\(fn BINDINGS &rest BODY)" nil t)
-
-(function-put 'pcase-let* 'lisp-indent-function '1)
-
-(autoload 'pcase-let "pcase" "\
-Like `let' but where you can use `pcase' patterns for bindings.
-BODY should be a list of expressions, and BINDINGS should be a list of bindings
-of the form (PAT EXP).
-The macro is expanded and optimized under the assumption that those
-patterns *will* match, so a mismatch may go undetected or may cause
-any kind of error.
-
-\(fn BINDINGS &rest BODY)" nil t)
-
-(function-put 'pcase-let 'lisp-indent-function '1)
-
-(autoload 'pcase-dolist "pcase" "\
-Like `dolist' but where the binding can be a `pcase' pattern.
-
-\(fn (PATTERN LIST) BODY...)" nil t)
-
-(function-put 'pcase-dolist 'lisp-indent-function '1)
-
-(autoload 'pcase-defmacro "pcase" "\
-Define a new kind of pcase PATTERN, by macro expansion.
-Patterns of the form (NAME ...) will be expanded according
-to this macro.
-
-\(fn NAME ARGS &rest BODY)" nil t)
-
-(function-put 'pcase-defmacro 'lisp-indent-function '2)
-
-(function-put 'pcase-defmacro 'doc-string-elt '3)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcase" '("pcase-")))
-
-;;;***
-
-;;;### (autoloads nil "pcmpl-cvs" "pcmpl-cvs.el" (0 0 0 0))
-;;; Generated autoloads from pcmpl-cvs.el
-
-(autoload 'pcomplete/cvs "pcmpl-cvs" "\
-Completion rules for the `cvs' command.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcmpl-cvs" '("pcmpl-cvs-")))
-
-;;;***
-
-;;;### (autoloads nil "pcmpl-gnu" "pcmpl-gnu.el" (0 0 0 0))
-;;; Generated autoloads from pcmpl-gnu.el
-
-(autoload 'pcomplete/gzip "pcmpl-gnu" "\
-Completion for `gzip'.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/bzip2 "pcmpl-gnu" "\
-Completion for `bzip2'.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/make "pcmpl-gnu" "\
-Completion for GNU `make'.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/tar "pcmpl-gnu" "\
-Completion for the GNU tar utility.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/find "pcmpl-gnu" "\
-Completion for the GNU find utility.
-
-\(fn)" nil nil)
-
-(defalias 'pcomplete/gdb 'pcomplete/xargs)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcmpl-gnu" '("pcmpl-gnu-")))
-
-;;;***
-
-;;;### (autoloads nil "pcmpl-linux" "pcmpl-linux.el" (0 0 0 0))
-;;; Generated autoloads from pcmpl-linux.el
-
-(autoload 'pcomplete/kill "pcmpl-linux" "\
-Completion for GNU/Linux `kill', using /proc filesystem.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/umount "pcmpl-linux" "\
-Completion for GNU/Linux `umount'.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/mount "pcmpl-linux" "\
-Completion for GNU/Linux `mount'.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcmpl-linux" '("pcomplete-pare-list" "pcmpl-linux-")))
-
-;;;***
-
-;;;### (autoloads nil "pcmpl-rpm" "pcmpl-rpm.el" (0 0 0 0))
-;;; Generated autoloads from pcmpl-rpm.el
-
-(autoload 'pcomplete/rpm "pcmpl-rpm" "\
-Completion for the `rpm' command.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcmpl-rpm" '("pcmpl-rpm-")))
-
-;;;***
-
-;;;### (autoloads nil "pcmpl-unix" "pcmpl-unix.el" (0 0 0 0))
-;;; Generated autoloads from pcmpl-unix.el
-
-(autoload 'pcomplete/cd "pcmpl-unix" "\
-Completion for `cd'.
-
-\(fn)" nil nil)
-
-(defalias 'pcomplete/pushd 'pcomplete/cd)
-
-(autoload 'pcomplete/rmdir "pcmpl-unix" "\
-Completion for `rmdir'.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/rm "pcmpl-unix" "\
-Completion for `rm'.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/xargs "pcmpl-unix" "\
-Completion for `xargs'.
-
-\(fn)" nil nil)
-
-(defalias 'pcomplete/time 'pcomplete/xargs)
-
-(autoload 'pcomplete/which "pcmpl-unix" "\
-Completion for `which'.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/chown "pcmpl-unix" "\
-Completion for the `chown' command.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/chgrp "pcmpl-unix" "\
-Completion for the `chgrp' command.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/ssh "pcmpl-unix" "\
-Completion rules for the `ssh' command.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/scp "pcmpl-unix" "\
-Completion rules for the `scp' command.
-Includes files as well as host names followed by a colon.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcmpl-unix" '("pcmpl-")))
-
-;;;***
-
-;;;### (autoloads nil "pcmpl-x" "pcmpl-x.el" (0 0 0 0))
-;;; Generated autoloads from pcmpl-x.el
-
-(autoload 'pcomplete/tlmgr "pcmpl-x" "\
-Completion for the `tlmgr' command.
-
-\(fn)" nil nil)
-
-(autoload 'pcomplete/ack "pcmpl-x" "\
-Completion for the `ack' command.
-Start an argument with `-' to complete short options and `--' for
-long options.
-
-\(fn)" nil nil)
-
-(defalias 'pcomplete/ack-grep 'pcomplete/ack)
-
-(autoload 'pcomplete/ag "pcmpl-x" "\
-Completion for the `ag' command.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcmpl-x" '("pcmpl-x-")))
-
-;;;***
-
-;;;### (autoloads nil "pcomplete" "pcomplete.el" (0 0 0 0))
-;;; Generated autoloads from pcomplete.el
-
-(autoload 'pcomplete "pcomplete" "\
-Support extensible programmable completion.
-To use this function, just bind the TAB key to it, or add it to your
-completion functions list (it should occur fairly early in the list).
-
-\(fn &optional INTERACTIVELY)" t nil)
-
-(autoload 'pcomplete-reverse "pcomplete" "\
-If cycling completion is in use, cycle backwards.
-
-\(fn)" t nil)
-
-(autoload 'pcomplete-expand-and-complete "pcomplete" "\
-Expand the textual value of the current argument.
-This will modify the current buffer.
-
-\(fn)" t nil)
-
-(autoload 'pcomplete-continue "pcomplete" "\
-Complete without reference to any cycling completions.
-
-\(fn)" t nil)
-
-(autoload 'pcomplete-expand "pcomplete" "\
-Expand the textual value of the current argument.
-This will modify the current buffer.
-
-\(fn)" t nil)
-
-(autoload 'pcomplete-help "pcomplete" "\
-Display any help information relative to the current argument.
-
-\(fn)" t nil)
-
-(autoload 'pcomplete-list "pcomplete" "\
-Show the list of possible completions for the current argument.
-
-\(fn)" t nil)
-
-(autoload 'pcomplete-comint-setup "pcomplete" "\
-Setup a comint buffer to use pcomplete.
-COMPLETEF-SYM should be the symbol where the
-dynamic-complete-functions are kept.  For comint mode itself,
-this is `comint-dynamic-complete-functions'.
-
-\(fn COMPLETEF-SYM)" nil nil)
-
-(autoload 'pcomplete-shell-setup "pcomplete" "\
-Setup `shell-mode' to use pcomplete.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcomplete" '("pcomplete-")))
-
-;;;***
-
-;;;### (autoloads nil "pcvs" "vc/pcvs.el" (0 0 0 0))
-;;; Generated autoloads from vc/pcvs.el
-
-(autoload 'cvs-checkout "pcvs" "\
-Run a `cvs checkout MODULES' in DIR.
-Feed the output to a *cvs* buffer, display it in the current window,
-and run `cvs-mode' on it.
-
-With a prefix argument, prompt for cvs FLAGS to use.
-
-\(fn MODULES DIR FLAGS &optional ROOT)" t nil)
-
-(autoload 'cvs-quickdir "pcvs" "\
-Open a *cvs* buffer on DIR without running cvs.
-With a prefix argument, prompt for a directory to use.
-A prefix arg >8 (ex: \\[universal-argument] \\[universal-argument]),
-  prevents reuse of an existing *cvs* buffer.
-Optional argument NOSHOW if non-nil means not to display the buffer.
-FLAGS is ignored.
-
-\(fn DIR &optional FLAGS NOSHOW)" t nil)
-
-(autoload 'cvs-examine "pcvs" "\
-Run a `cvs -n update' in the specified DIRECTORY.
-That is, check what needs to be done, but don't change the disc.
-Feed the output to a *cvs* buffer and run `cvs-mode' on it.
-With a prefix argument, prompt for a directory and cvs FLAGS to use.
-A prefix arg >8 (ex: \\[universal-argument] \\[universal-argument]),
-  prevents reuse of an existing *cvs* buffer.
-Optional argument NOSHOW if non-nil means not to display the buffer.
-
-\(fn DIRECTORY FLAGS &optional NOSHOW)" t nil)
-
-(autoload 'cvs-update "pcvs" "\
-Run a `cvs update' in the current working DIRECTORY.
-Feed the output to a *cvs* buffer and run `cvs-mode' on it.
-With a \\[universal-argument] prefix argument, prompt for a directory to use.
-A prefix arg >8 (ex: \\[universal-argument] \\[universal-argument]),
-  prevents reuse of an existing *cvs* buffer.
-The prefix is also passed to `cvs-flags-query' to select the FLAGS
-  passed to cvs.
-
-\(fn DIRECTORY FLAGS)" t nil)
-
-(autoload 'cvs-status "pcvs" "\
-Run a `cvs status' in the current working DIRECTORY.
-Feed the output to a *cvs* buffer and run `cvs-mode' on it.
-With a prefix argument, prompt for a directory and cvs FLAGS to use.
-A prefix arg >8 (ex: \\[universal-argument] \\[universal-argument]),
-  prevents reuse of an existing *cvs* buffer.
-Optional argument NOSHOW if non-nil means not to display the buffer.
-
-\(fn DIRECTORY FLAGS &optional NOSHOW)" t nil)
-
-(defvar cvs-dired-action 'cvs-quickdir "\
-The action to be performed when opening a CVS directory.
-Sensible values are `cvs-examine', `cvs-status' and `cvs-quickdir'.")
-
-(custom-autoload 'cvs-dired-action "pcvs" t)
-
-(defvar cvs-dired-use-hook '(4) "\
-Whether or not opening a CVS directory should run PCL-CVS.
-A value of nil means never do it.
-`always' means to always do it unless a prefix argument is given to the
-  command that prompted the opening of the directory.
-Anything else means to do it only if the prefix arg is equal to this value.")
-
-(custom-autoload 'cvs-dired-use-hook "pcvs" t)
-
-(defun cvs-dired-noselect (dir) "\
-Run `cvs-examine' if DIR is a CVS administrative directory.
-The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp 
dir) (setq dir (directory-file-name dir)) (when (and (string= "CVS" 
(file-name-nondirectory dir)) (file-readable-p (expand-file-name "Entries" 
dir)) cvs-dired-use-hook (if (eq cvs-dired-use-hook (quote always)) (not 
current-prefix-arg) (equal current-prefix-arg cvs-dired-use-hook))) 
(save-excursion (funcall cvs-dired-action (file-name-directory dir) t t)))))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcvs" '("cvs-" "defun-cvs-mode")))
-
-;;;***
-
-;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (0 0 0 0))
-;;; Generated autoloads from vc/pcvs-defs.el
-
-(defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key 
m [status] `(menu-item ,(purecopy "Directory Status") cvs-status :help 
,(purecopy "A more verbose status of a workarea"))) (define-key m [checkout] 
`(menu-item ,(purecopy "Checkout Module") cvs-checkout :help ,(purecopy "Check 
out a module from the repository"))) (define-key m [update] `(menu-item 
,(purecopy "Update Directory") cvs-update :help ,(purecopy "Fetch updates from 
the repository"))) (define-key m [ex [...]
-Global menu used by PCL-CVS.")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcvs-defs" '("cvs-")))
-
-;;;***
-
-;;;### (autoloads nil "pcvs-info" "vc/pcvs-info.el" (0 0 0 0))
-;;; Generated autoloads from vc/pcvs-info.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcvs-info" '("cvs-")))
-
-;;;***
-
-;;;### (autoloads nil "pcvs-parse" "vc/pcvs-parse.el" (0 0 0 0))
-;;; Generated autoloads from vc/pcvs-parse.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcvs-parse" '("cvs-")))
-
-;;;***
-
-;;;### (autoloads nil "pcvs-util" "vc/pcvs-util.el" (0 0 0 0))
-;;; Generated autoloads from vc/pcvs-util.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pcvs-util" '("cvs-")))
-
-;;;***
-
-;;;### (autoloads nil "perl-mode" "progmodes/perl-mode.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from progmodes/perl-mode.el
-(put 'perl-indent-level 'safe-local-variable 'integerp)
-(put 'perl-continued-statement-offset 'safe-local-variable 'integerp)
-(put 'perl-continued-brace-offset 'safe-local-variable 'integerp)
-(put 'perl-brace-offset 'safe-local-variable 'integerp)
-(put 'perl-brace-imaginary-offset 'safe-local-variable 'integerp)
-(put 'perl-label-offset 'safe-local-variable 'integerp)
-
-(autoload 'perl-mode "perl-mode" "\
-Major mode for editing Perl code.
-Expression and list commands understand all Perl brackets.
-Tab indents for Perl code.
-Comments are delimited with # ... \\n.
-Paragraphs are separated by blank lines only.
-Delete converts tabs to spaces as it moves back.
-\\{perl-mode-map}
-Variables controlling indentation style:
- `perl-tab-always-indent'
-    Non-nil means TAB in Perl mode should always indent the current line,
-    regardless of where in the line point is when the TAB command is used.
- `perl-tab-to-comment'
-    Non-nil means that for lines which don't need indenting, TAB will
-    either delete an empty comment, indent an existing comment, move
-    to end-of-line, or if at end-of-line already, create a new comment.
- `perl-nochange'
-    Lines starting with this regular expression are not auto-indented.
- `perl-indent-level'
-    Indentation of Perl statements within surrounding block.
-    The surrounding block's indentation is the indentation
-    of the line on which the open-brace appears.
- `perl-continued-statement-offset'
-    Extra indentation given to a substatement, such as the
-    then-clause of an if or body of a while.
- `perl-continued-brace-offset'
-    Extra indentation given to a brace that starts a substatement.
-    This is in addition to `perl-continued-statement-offset'.
- `perl-brace-offset'
-    Extra indentation for line if it starts with an open brace.
- `perl-brace-imaginary-offset'
-    An open brace following other text is treated as if it were
-    this far to the right of the start of its line.
- `perl-label-offset'
-    Extra indentation for line that is a label.
- `perl-indent-continued-arguments'
-    Offset of argument lines relative to usual indentation.
-
-Various indentation styles:       K&R  BSD  BLK  GNU  LW
-  perl-indent-level                5    8    0    2    4
-  perl-continued-statement-offset  5    8    4    2    4
-  perl-continued-brace-offset      0    0    0    0   -4
-  perl-brace-offset               -5   -8    0    0    0
-  perl-brace-imaginary-offset      0    0    4    0    0
-  perl-label-offset               -5   -8   -2   -2   -2
-
-Turning on Perl mode runs the normal hook `perl-mode-hook'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"perl-mode" '("perl-" "mark-perl-function" "indent-perl-exp")))
-
-;;;***
-
-;;;### (autoloads nil "picture" "textmodes/picture.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/picture.el
-
-(autoload 'picture-mode "picture" "\
-Switch to Picture mode, in which a quarter-plane screen model is used.
-\\<picture-mode-map>
-Printing characters replace instead of inserting themselves with motion
-afterwards settable by these commands:
-
- Move left after insertion:            \\[picture-movement-left]
- Move right after insertion:           \\[picture-movement-right]
- Move up after insertion:              \\[picture-movement-up]
- Move down after insertion:            \\[picture-movement-down]
-
- Move northwest (nw) after insertion:  \\[picture-movement-nw]
- Move northeast (ne) after insertion:  \\[picture-movement-ne]
- Move southwest (sw) after insertion:  \\[picture-movement-sw]
- Move southeast (se) after insertion:  \\[picture-movement-se]
-
- Move westnorthwest (wnw) after insertion:  C-u \\[picture-movement-nw]
- Move eastnortheast (ene) after insertion:  C-u \\[picture-movement-ne]
- Move westsouthwest (wsw) after insertion:  C-u \\[picture-movement-sw]
- Move eastsoutheast (ese) after insertion:  C-u \\[picture-movement-se]
-
-The current direction is displayed in the mode line.  The initial
-direction is right.  Whitespace is inserted and tabs are changed to
-spaces when required by movement.  You can move around in the buffer
-with these commands:
-
- Move vertically to SAME column in previous line: \\[picture-move-down]
- Move vertically to SAME column in next line:     \\[picture-move-up]
- Move to column following last
-  non-whitespace character:                       \\[picture-end-of-line]
- Move right, inserting spaces if required:        \\[picture-forward-column]
- Move left changing tabs to spaces if required:   \\[picture-backward-column]
- Move in direction of current picture motion:     \\[picture-motion]
- Move opposite to current picture motion:         \\[picture-motion-reverse]
- Move to beginning of next line:                  \\[next-line]
-
-You can edit tabular text with these commands:
-
- Move to column beneath (or at) next interesting
-  character (see variable `picture-tab-chars'):   \\[picture-tab-search]
- Move to next stop in tab stop list:              \\[picture-tab]
- Set tab stops according to context of this line: \\[picture-set-tab-stops]
-   (With ARG, resets tab stops to default value.)
- Change the tab stop list:                        \\[edit-tab-stops]
-
-You can manipulate text with these commands:
- Clear ARG columns after point without moving:    \\[picture-clear-column]
- Delete char at point:                            \\[picture-delete-char]
- Clear ARG columns backward:                      
\\[picture-backward-clear-column]
- Clear ARG lines, advancing over them:            \\[picture-clear-line]
-  (the cleared text is saved in the kill ring)
- Open blank line(s) beneath current line:         \\[picture-open-line]
-
-You can manipulate rectangles with these commands:
-  Clear a rectangle and save it:                  \\[picture-clear-rectangle]
-  Clear a rectangle, saving in a named register:  
\\[picture-clear-rectangle-to-register]
-  Insert currently saved rectangle at point:      \\[picture-yank-rectangle]
-  Insert rectangle from named register:           
\\[picture-yank-rectangle-from-register]
-  Draw a rectangular box around mark and point:   \\[picture-draw-rectangle]
-  Copies a rectangle to a register:               
\\[copy-rectangle-to-register]
-  Undo effects of rectangle overlay commands:     \\[undo]
-
-You can return to the previous mode with \\[picture-mode-exit], which
-also strips trailing whitespace from every line.  Stripping is suppressed
-by supplying an argument.
-
-Entry to this mode calls the value of `picture-mode-hook' if non-nil.
-
-Note that Picture mode commands will work outside of Picture mode, but
-they are not by default assigned to keys.
-
-\(fn)" t nil)
-
-(defalias 'edit-picture 'picture-mode)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"picture" '("picture-")))
-
-;;;***
-
-;;;### (autoloads nil "pinentry" "net/pinentry.el" (0 0 0 0))
-;;; Generated autoloads from net/pinentry.el
-(push (purecopy '(pinentry 0 1)) package--builtin-versions)
-
-(autoload 'pinentry-start "pinentry" "\
-Start a Pinentry service.
-
-Once the environment is properly set, subsequent invocations of
-the gpg command will interact with Emacs for passphrase input.
-
-If the optional QUIET argument is non-nil, messages at startup
-will not be shown.
-
-\(fn &optional QUIET)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pinentry" '("pinentry-")))
-
-;;;***
-
-;;;### (autoloads nil "plstore" "plstore.el" (0 0 0 0))
-;;; Generated autoloads from plstore.el
-
-(autoload 'plstore-open "plstore" "\
-Create a plstore instance associated with FILE.
-
-\(fn FILE)" nil nil)
-
-(autoload 'plstore-mode "plstore" "\
-Major mode for editing PLSTORE files.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"plstore" '("plstore-")))
-
-;;;***
-
-;;;### (autoloads nil "po" "textmodes/po.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/po.el
-
-(autoload 'po-find-file-coding-system "po" "\
-Return a (DECODING . ENCODING) pair, according to PO file's charset.
-Called through `file-coding-system-alist', before the file is visited for real.
-
-\(fn ARG-LIST)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "po" 
'("po-")))
-
-;;;***
-
-;;;### (autoloads nil "pong" "play/pong.el" (0 0 0 0))
-;;; Generated autoloads from play/pong.el
-
-(autoload 'pong "pong" "\
-Play pong and waste time.
-This is an implementation of the classical game pong.
-Move left and right bats and try to bounce the ball to your opponent.
-
-pong-mode keybindings:\\<pong-mode-map>
-
-\\{pong-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pong" '("pong-")))
-
-;;;***
-
-;;;### (autoloads nil "pop3" "net/pop3.el" (0 0 0 0))
-;;; Generated autoloads from net/pop3.el
-
-(autoload 'pop3-movemail "pop3" "\
-Transfer contents of a maildrop to the specified FILE.
-Use streaming commands.
-
-\(fn FILE)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pop3" '("pop3-")))
-
-;;;***
-
-;;;### (autoloads nil "pp" "emacs-lisp/pp.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/pp.el
-
-(autoload 'pp-to-string "pp" "\
-Return a string containing the pretty-printed representation of OBJECT.
-OBJECT can be any Lisp object.  Quoting characters are used as needed
-to make output that `read' can handle, whenever this is possible.
-
-\(fn OBJECT)" nil nil)
-
-(autoload 'pp-buffer "pp" "\
-Prettify the current buffer with printed representation of a Lisp object.
-
-\(fn)" nil nil)
-
-(autoload 'pp "pp" "\
-Output the pretty-printed representation of OBJECT, any Lisp object.
-Quoting characters are printed as needed to make output that `read'
-can handle, whenever this is possible.
-Output stream is STREAM, or value of `standard-output' (which see).
-
-\(fn OBJECT &optional STREAM)" nil nil)
-
-(autoload 'pp-eval-expression "pp" "\
-Evaluate EXPRESSION and pretty-print its value.
-Also add the value to the front of the list in the variable `values'.
-
-\(fn EXPRESSION)" t nil)
-
-(autoload 'pp-macroexpand-expression "pp" "\
-Macroexpand EXPRESSION and pretty-print its value.
-
-\(fn EXPRESSION)" t nil)
-
-(autoload 'pp-eval-last-sexp "pp" "\
-Run `pp-eval-expression' on sexp before point.
-With argument, pretty-print output into current buffer.
-Ignores leading comment characters.
-
-\(fn ARG)" t nil)
-
-(autoload 'pp-macroexpand-last-sexp "pp" "\
-Run `pp-macroexpand-expression' on sexp before point.
-With argument, pretty-print output into current buffer.
-Ignores leading comment characters.
-
-\(fn ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "pp" 
'("pp-")))
-
-;;;***
-
-;;;### (autoloads nil "printing" "printing.el" (0 0 0 0))
-;;; Generated autoloads from printing.el
-(push (purecopy '(printing 6 9 3)) package--builtin-versions)
-
-(autoload 'pr-interface "printing" "\
-Activate the printing interface buffer.
-
-If BUFFER is nil, the current buffer is used for printing.
-
-For more information, type \\[pr-interface-help].
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'pr-ps-directory-preview "printing" "\
-Preview directory using ghostview.
-
-Interactively, the command prompts for N-UP printing number, a directory, a
-file name regexp for matching and, when you use a prefix argument (C-u), the
-command prompts the user for a file name, and saves the PostScript image in
-that file instead of saving it in a temporary file.
-
-Noninteractively, if N-UP is nil, prompts for N-UP printing number.  If DIR is
-nil, prompts for DIRectory.  If FILE-REGEXP is nil, prompts for
-FILE(name)-REGEXP.  The argument FILENAME is treated as follows: if it's nil,
-save the image in a temporary file.  If FILENAME is a string, save the
-PostScript image in a file with that name.  If FILENAME is t, prompts for a
-file name.
-
-See also documentation for `pr-list-directory'.
-
-\(fn N-UP DIR FILE-REGEXP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-directory-using-ghostscript "printing" "\
-Print directory using PostScript through ghostscript.
-
-Interactively, the command prompts for N-UP printing number, a directory, a
-file name regexp for matching and, when you use a prefix argument (C-u), the
-command prompts the user for a file name, and saves the PostScript image in
-that file instead of saving it in a temporary file.
-
-Noninteractively, if N-UP is nil, prompts for N-UP printing number.  If DIR is
-nil, prompts for DIRectory.  If FILE-REGEXP is nil, prompts for
-FILE(name)-REGEXP.  The argument FILENAME is treated as follows: if it's nil,
-save the image in a temporary file.  If FILENAME is a string, save the
-PostScript image in a file with that name.  If FILENAME is t, prompts for a
-file name.
-
-See also documentation for `pr-list-directory'.
-
-\(fn N-UP DIR FILE-REGEXP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-directory-print "printing" "\
-Print directory using PostScript printer.
-
-Interactively, the command prompts for N-UP printing number, a directory, a
-file name regexp for matching and, when you use a prefix argument (C-u), the
-command prompts the user for a file name, and saves the PostScript image in
-that file instead of saving it in a temporary file.
-
-Noninteractively, if N-UP is nil, prompts for N-UP printing number.  If DIR is
-nil, prompts for DIRectory.  If FILE-REGEXP is nil, prompts for
-FILE(name)-REGEXP.  The argument FILENAME is treated as follows: if it's nil,
-save the image in a temporary file.  If FILENAME is a string, save the
-PostScript image in a file with that name.  If FILENAME is t, prompts for a
-file name.
-
-See also documentation for `pr-list-directory'.
-
-\(fn N-UP DIR FILE-REGEXP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-directory-ps-print "printing" "\
-Print directory using PostScript printer or through ghostscript.
-
-It depends on `pr-print-using-ghostscript'.
-
-Interactively, the command prompts for N-UP printing number, a directory, a
-file name regexp for matching and, when you use a prefix argument (C-u), the
-command prompts the user for a file name, and saves the PostScript image in
-that file instead of saving it in a temporary file.
-
-Noninteractively, if N-UP is nil, prompts for N-UP printing number.  If DIR is
-nil, prompts for DIRectory.  If FILE-REGEXP is nil, prompts for
-FILE(name)-REGEXP.  The argument FILENAME is treated as follows: if it's nil,
-save the image in a temporary file.  If FILENAME is a string, save the
-PostScript image in a file with that name.  If FILENAME is t, prompts for a
-file name.
-
-See also documentation for `pr-list-directory'.
-
-\(fn N-UP DIR FILE-REGEXP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-buffer-preview "printing" "\
-Preview buffer using ghostview.
-
-Interactively, the command prompts for N-UP printing number and, when you use a
-prefix argument (C-u), the command prompts the user for a file name, and saves
-the PostScript image in that file instead of saving it in a temporary file.
-
-Noninteractively, if N-UP is nil, prompts for N-UP printing number.  The
-argument FILENAME is treated as follows: if it's nil, save the image in a
-temporary file.  If FILENAME is a string, save the PostScript image in a file
-with that name.  If FILENAME is t, prompts for a file name.
-
-\(fn N-UP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-buffer-using-ghostscript "printing" "\
-Print buffer using PostScript through ghostscript.
-
-Interactively, the command prompts for N-UP printing number and, when you use a
-prefix argument (C-u), the command prompts the user for a file name, and saves
-the PostScript image in that file instead of sending it to the printer.
-
-Noninteractively, if N-UP is nil, prompts for N-UP printing number.  The
-argument FILENAME is treated as follows: if it's nil, send the image to the
-printer.  If FILENAME is a string, save the PostScript image in a file with
-that name.  If FILENAME is t, prompts for a file name.
-
-\(fn N-UP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-buffer-print "printing" "\
-Print buffer using PostScript printer.
-
-Interactively, the command prompts for N-UP printing number and, when you use a
-prefix argument (C-u), the command prompts the user for a file name, and saves
-the PostScript image in that file instead of sending it to the printer.
-
-Noninteractively, if N-UP is nil, prompts for N-UP printing number.  The
-argument FILENAME is treated as follows: if it's nil, send the image to the
-printer.  If FILENAME is a string, save the PostScript image in a file with
-that name.  If FILENAME is t, prompts for a file name.
-
-\(fn N-UP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-buffer-ps-print "printing" "\
-Print buffer using PostScript printer or through ghostscript.
-
-It depends on `pr-print-using-ghostscript'.
-
-Interactively, the command prompts for N-UP printing number and, when you use a
-prefix argument (C-u), the command prompts the user for a file name, and saves
-the PostScript image in that file instead of sending it to the printer.
-
-Noninteractively, if N-UP is nil, prompts for N-UP printing number.  The
-argument FILENAME is treated as follows: if it's nil, send the image to the
-printer.  If FILENAME is a string, save the PostScript image in a file with
-that name.  If FILENAME is t, prompts for a file name.
-
-\(fn N-UP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-region-preview "printing" "\
-Preview region using ghostview.
-
-See also `pr-ps-buffer-preview'.
-
-\(fn N-UP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-region-using-ghostscript "printing" "\
-Print region using PostScript through ghostscript.
-
-See also `pr-ps-buffer-using-ghostscript'.
-
-\(fn N-UP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-region-print "printing" "\
-Print region using PostScript printer.
-
-See also `pr-ps-buffer-print'.
-
-\(fn N-UP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-region-ps-print "printing" "\
-Print region using PostScript printer or through ghostscript.
-
-See also `pr-ps-buffer-ps-print'.
-
-\(fn N-UP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-mode-preview "printing" "\
-Preview major mode using ghostview.
-
-See also `pr-ps-buffer-preview'.
-
-\(fn N-UP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-mode-using-ghostscript "printing" "\
-Print major mode using PostScript through ghostscript.
-
-See also `pr-ps-buffer-using-ghostscript'.
-
-\(fn N-UP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-mode-print "printing" "\
-Print major mode using PostScript printer.
-
-See also `pr-ps-buffer-print'.
-
-\(fn N-UP &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-mode-ps-print "printing" "\
-Print major mode using PostScript or through ghostscript.
-
-See also `pr-ps-buffer-ps-print'.
-
-\(fn N-UP &optional FILENAME)" t nil)
-
-(autoload 'pr-printify-directory "printing" "\
-Replace nonprinting characters in directory with printable representations.
-The printable representations use ^ (for ASCII control characters) or hex.
-The characters tab, linefeed, space, return and formfeed are not affected.
-
-Interactively, the command prompts for a directory and a file name regexp for
-matching.
-
-Noninteractively, if DIR is nil, prompts for DIRectory.  If FILE-REGEXP is nil,
-prompts for FILE(name)-REGEXP.
-
-See also documentation for `pr-list-directory'.
-
-\(fn &optional DIR FILE-REGEXP)" t nil)
-
-(autoload 'pr-printify-buffer "printing" "\
-Replace nonprinting characters in buffer with printable representations.
-The printable representations use ^ (for ASCII control characters) or hex.
-The characters tab, linefeed, space, return and formfeed are not affected.
-
-\(fn)" t nil)
-
-(autoload 'pr-printify-region "printing" "\
-Replace nonprinting characters in region with printable representations.
-The printable representations use ^ (for ASCII control characters) or hex.
-The characters tab, linefeed, space, return and formfeed are not affected.
-
-\(fn)" t nil)
-
-(autoload 'pr-txt-directory "printing" "\
-Print directory using text printer.
-
-Interactively, the command prompts for a directory and a file name regexp for
-matching.
-
-Noninteractively, if DIR is nil, prompts for DIRectory.  If FILE-REGEXP is nil,
-prompts for FILE(name)-REGEXP.
-
-See also documentation for `pr-list-directory'.
-
-\(fn &optional DIR FILE-REGEXP)" t nil)
-
-(autoload 'pr-txt-buffer "printing" "\
-Print buffer using text printer.
-
-\(fn)" t nil)
-
-(autoload 'pr-txt-region "printing" "\
-Print region using text printer.
-
-\(fn)" t nil)
-
-(autoload 'pr-txt-mode "printing" "\
-Print major mode using text printer.
-
-\(fn)" t nil)
-
-(autoload 'pr-despool-preview "printing" "\
-Preview spooled PostScript.
-
-Interactively, when you use a prefix argument (C-u), the command prompts the
-user for a file name, and saves the spooled PostScript image in that file
-instead of saving it in a temporary file.
-
-Noninteractively, the argument FILENAME is treated as follows: if it is nil,
-save the image in a temporary file.  If FILENAME is a string, save the
-PostScript image in a file with that name.
-
-\(fn &optional FILENAME)" t nil)
-
-(autoload 'pr-despool-using-ghostscript "printing" "\
-Print spooled PostScript using ghostscript.
-
-Interactively, when you use a prefix argument (C-u), the command prompts the
-user for a file name, and saves the spooled PostScript image in that file
-instead of sending it to the printer.
-
-Noninteractively, the argument FILENAME is treated as follows: if it is nil,
-send the image to the printer.  If FILENAME is a string, save the PostScript
-image in a file with that name.
-
-\(fn &optional FILENAME)" t nil)
-
-(autoload 'pr-despool-print "printing" "\
-Send the spooled PostScript to the printer.
-
-Interactively, when you use a prefix argument (C-u), the command prompts the
-user for a file name, and saves the spooled PostScript image in that file
-instead of sending it to the printer.
-
-Noninteractively, the argument FILENAME is treated as follows: if it is nil,
-send the image to the printer.  If FILENAME is a string, save the PostScript
-image in a file with that name.
-
-\(fn &optional FILENAME)" t nil)
-
-(autoload 'pr-despool-ps-print "printing" "\
-Send the spooled PostScript to the printer or use ghostscript to print it.
-
-Interactively, when you use a prefix argument (C-u), the command prompts the
-user for a file name, and saves the spooled PostScript image in that file
-instead of sending it to the printer.
-
-Noninteractively, the argument FILENAME is treated as follows: if it is nil,
-send the image to the printer.  If FILENAME is a string, save the PostScript
-image in a file with that name.
-
-\(fn &optional FILENAME)" t nil)
-
-(autoload 'pr-ps-file-preview "printing" "\
-Preview PostScript file FILENAME.
-
-\(fn FILENAME)" t nil)
-
-(autoload 'pr-ps-file-up-preview "printing" "\
-Preview PostScript file FILENAME.
-
-\(fn N-UP IFILENAME &optional OFILENAME)" t nil)
-
-(autoload 'pr-ps-file-using-ghostscript "printing" "\
-Print PostScript file FILENAME using ghostscript.
-
-\(fn FILENAME)" t nil)
-
-(autoload 'pr-ps-file-print "printing" "\
-Print PostScript file FILENAME.
-
-\(fn FILENAME)" t nil)
-
-(autoload 'pr-ps-file-ps-print "printing" "\
-Send PostScript file FILENAME to printer or use ghostscript to print it.
-
-\(fn FILENAME)" t nil)
-
-(autoload 'pr-ps-file-up-ps-print "printing" "\
-Process a PostScript file IFILENAME and send it to printer.
-
-Interactively, the command prompts for N-UP printing number, for an input
-PostScript file IFILENAME and, when you use a prefix argument (C-u), the
-command prompts the user for an output PostScript file name OFILENAME, and
-saves the PostScript image in that file instead of sending it to the printer.
-
-Noninteractively, if N-UP is nil, prompts for N-UP printing number.  The
-argument IFILENAME is treated as follows: if it's t, prompts for an input
-PostScript file name; otherwise, it *must* be a string that it's an input
-PostScript file name.  The argument OFILENAME is treated as follows: if it's
-nil, send the image to the printer.  If OFILENAME is a string, save the
-PostScript image in a file with that name.  If OFILENAME is t, prompts for a
-file name.
-
-\(fn N-UP IFILENAME &optional OFILENAME)" t nil)
-
-(autoload 'pr-toggle-file-duplex "printing" "\
-Toggle duplex for PostScript file.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-file-tumble "printing" "\
-Toggle tumble for PostScript file.
-
-If tumble is off, produces a printing suitable for binding on the left or
-right.
-If tumble is on, produces a printing suitable for binding at the top or
-bottom.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-file-landscape "printing" "\
-Toggle landscape for PostScript file.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-ghostscript "printing" "\
-Toggle printing using ghostscript.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-faces "printing" "\
-Toggle printing with faces.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-spool "printing" "\
-Toggle spooling.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-duplex "printing" "\
-Toggle duplex.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-tumble "printing" "\
-Toggle tumble.
-
-If tumble is off, produces a printing suitable for binding on the left or
-right.
-If tumble is on, produces a printing suitable for binding at the top or
-bottom.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-landscape "printing" "\
-Toggle landscape.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-upside-down "printing" "\
-Toggle upside-down.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-line "printing" "\
-Toggle line number.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-zebra "printing" "\
-Toggle zebra stripes.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-header "printing" "\
-Toggle printing header.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-header-frame "printing" "\
-Toggle printing header frame.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-lock "printing" "\
-Toggle menu lock.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-region "printing" "\
-Toggle whether the region is automagically detected.
-
-\(fn)" t nil)
-
-(autoload 'pr-toggle-mode "printing" "\
-Toggle auto mode.
-
-\(fn)" t nil)
-
-(autoload 'pr-customize "printing" "\
-Customization of the `printing' group.
-
-\(fn &rest IGNORE)" t nil)
-
-(autoload 'lpr-customize "printing" "\
-Customization of the `lpr' group.
-
-\(fn &rest IGNORE)" t nil)
-
-(autoload 'pr-help "printing" "\
-Help for the printing package.
-
-\(fn &rest IGNORE)" t nil)
-
-(autoload 'pr-ps-name "printing" "\
-Interactively select a PostScript printer.
-
-\(fn)" t nil)
-
-(autoload 'pr-txt-name "printing" "\
-Interactively select a text printer.
-
-\(fn)" t nil)
-
-(autoload 'pr-ps-utility "printing" "\
-Interactively select a PostScript utility.
-
-\(fn)" t nil)
-
-(autoload 'pr-show-ps-setup "printing" "\
-Show current ps-print settings.
-
-\(fn &rest IGNORE)" t nil)
-
-(autoload 'pr-show-pr-setup "printing" "\
-Show current printing settings.
-
-\(fn &rest IGNORE)" t nil)
-
-(autoload 'pr-show-lpr-setup "printing" "\
-Show current lpr settings.
-
-\(fn &rest IGNORE)" t nil)
-
-(autoload 'pr-ps-fast-fire "printing" "\
-Fast fire function for PostScript printing.
-
-If a region is active, the region will be printed instead of the whole buffer.
-Also if the current major-mode is defined in `pr-mode-alist', the settings in
-`pr-mode-alist' will be used, that is, the current buffer or region will be
-printed using `pr-ps-mode-ps-print'.
-
-
-Interactively, you have the following situations:
-
-   M-x pr-ps-fast-fire RET
-      The command prompts the user for a N-UP value and printing will
-      immediately be done using the current active printer.
-
-   C-u   M-x pr-ps-fast-fire RET
-   C-u 0 M-x pr-ps-fast-fire RET
-      The command prompts the user for a N-UP value and also for a current
-      PostScript printer, then printing will immediately be done using the new
-      current active printer.
-
-   C-u 1 M-x pr-ps-fast-fire RET
-      The command prompts the user for a N-UP value and also for a file name,
-      and saves the PostScript image in that file instead of sending it to the
-      printer.
-
-   C-u 2 M-x pr-ps-fast-fire RET
-      The command prompts the user for a N-UP value, then for a current
-      PostScript printer and, finally, for a file name.  Then change the active
-      printer to that chosen by user and saves the PostScript image in
-      that file instead of sending it to the printer.
-
-
-Noninteractively, the argument N-UP should be a positive integer greater than
-zero and the argument SELECT is treated as follows:
-
-   If it's nil, send the image to the printer.
-
-   If it's a list or an integer lesser or equal to zero, the command prompts
-   the user for a current PostScript printer, then printing will immediately
-   be done using the new current active printer.
-
-   If it's an integer equal to 1, the command prompts the user for a file name
-   and saves the PostScript image in that file instead of sending it to the
-   printer.
-
-   If it's an integer greater or equal to 2, the command prompts the user for a
-   current PostScript printer and for a file name.  Then change the active
-   printer to that chosen by user and saves the PostScript image in that file
-   instead of sending it to the printer.
-
-   If it's a symbol which it's defined in `pr-ps-printer-alist', it's the new
-   active printer and printing will immediately be done using the new active
-   printer.
-
-   Otherwise, send the image to the printer.
-
-
-Note that this command always behaves as if `pr-auto-region' and `pr-auto-mode'
-are both set to t.
-
-\(fn N-UP &optional SELECT)" t nil)
-
-(autoload 'pr-txt-fast-fire "printing" "\
-Fast fire function for text printing.
-
-If a region is active, the region will be printed instead of the whole buffer.
-Also if the current major-mode is defined in `pr-mode-alist', the settings in
-`pr-mode-alist' will be used, that is, the current buffer or region will be
-printed using `pr-txt-mode'.
-
-Interactively, when you use a prefix argument (C-u), the command prompts the
-user for a new active text printer.
-
-Noninteractively, the argument SELECT-PRINTER is treated as follows:
-
-   If it's nil, the printing is sent to the current active text printer.
-
-   If it's a symbol which it's defined in `pr-txt-printer-alist', it's the new
-   active printer and printing will immediately be done using the new active
-   printer.
-
-   If it's non-nil, the command prompts the user for a new active text printer.
-
-Note that this command always behaves as if `pr-auto-region' and `pr-auto-mode'
-are both set to t.
-
-\(fn &optional SELECT-PRINTER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"printing" '("pr-" "lpr-setup")))
-
-;;;***
-
-;;;### (autoloads nil "proced" "proced.el" (0 0 0 0))
-;;; Generated autoloads from proced.el
-
-(autoload 'proced "proced" "\
-Generate a listing of UNIX system processes.
-\\<proced-mode-map>
-If invoked with optional ARG, do not select the window displaying
-the process information.
-
-This function runs the normal hook `proced-post-display-hook'.
-
-See `proced-mode' for a description of features available in
-Proced buffers.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"proced" '("proced-")))
-
-;;;***
-
-;;;### (autoloads nil "profiler" "profiler.el" (0 0 0 0))
-;;; Generated autoloads from profiler.el
-
-(autoload 'profiler-start "profiler" "\
-Start/restart profilers.
-MODE can be one of `cpu', `mem', or `cpu+mem'.
-If MODE is `cpu' or `cpu+mem', time-based profiler will be started.
-Also, if MODE is `mem' or `cpu+mem', then memory profiler will be started.
-
-\(fn MODE)" t nil)
-
-(autoload 'profiler-find-profile "profiler" "\
-Open profile FILENAME.
-
-\(fn FILENAME)" t nil)
-
-(autoload 'profiler-find-profile-other-window "profiler" "\
-Open profile FILENAME.
-
-\(fn FILENAME)" t nil)
-
-(autoload 'profiler-find-profile-other-frame "profiler" "\
-Open profile FILENAME.
-
-\(fn FILENAME)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"profiler" '("profiler-")))
-
-;;;***
-
-;;;### (autoloads nil "project" "progmodes/project.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/project.el
-
-(autoload 'project-current "project" "\
-Return the project instance in DIR or `default-directory'.
-When no project found in DIR, and MAYBE-PROMPT is non-nil, ask
-the user for a different directory to look in.  If that directory
-is not a part of a detectable project either, return a
-`transient' project instance rooted in it.
-
-\(fn &optional MAYBE-PROMPT DIR)" nil nil)
-
-(autoload 'project-find-regexp "project" "\
-Find all matches for REGEXP in the current project's roots.
-With \\[universal-argument] prefix, you can specify the directory
-to search in, and the file name pattern to search for.
-
-\(fn REGEXP)" t nil)
-
-(autoload 'project-or-external-find-regexp "project" "\
-Find all matches for REGEXP in the project roots or external roots.
-With \\[universal-argument] prefix, you can specify the file name
-pattern to search for.
-
-\(fn REGEXP)" t nil)
-
-(autoload 'project-find-file "project" "\
-Visit a file (with completion) in the current project's roots.
-The completion default is the filename at point, if one is
-recognized.
-
-\(fn)" t nil)
-
-(autoload 'project-or-external-find-file "project" "\
-Visit a file (with completion) in the current project's roots or external 
roots.
-The completion default is the filename at point, if one is
-recognized.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"project" '("project-")))
-
-;;;***
-
-;;;### (autoloads nil "prolog" "progmodes/prolog.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/prolog.el
-
-(autoload 'prolog-mode "prolog" "\
-Major mode for editing Prolog code.
-
-Blank lines and `%%...' separate paragraphs.  `%'s starts a comment
-line and comments can also be enclosed in /* ... */.
-
-If an optional argument SYSTEM is non-nil, set up mode for the given system.
-
-To find out what version of Prolog mode you are running, enter
-`\\[prolog-mode-version]'.
-
-Commands:
-\\{prolog-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'mercury-mode "prolog" "\
-Major mode for editing Mercury programs.
-Actually this is just customized `prolog-mode'.
-
-\(fn)" t nil)
-
-(autoload 'run-prolog "prolog" "\
-Run an inferior Prolog process, input and output via buffer *prolog*.
-With prefix argument ARG, restart the Prolog process if running before.
-
-\(fn ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"prolog" '("prolog-" "mercury-mode-map")))
-
-;;;***
-
-;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (0 0 0 0))
-;;; Generated autoloads from ps-bdf.el
-
-(defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list 
(expand-file-name "fonts/bdf" installation-directory)) 
'("/usr/local/share/emacs/fonts/bdf")) "\
-List of directories to search for `BDF' font files.
-The default value is (\"/usr/local/share/emacs/fonts/bdf\").")
-
-(custom-autoload 'bdf-directory-list "ps-bdf" t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ps-bdf" '("bdf-")))
-
-;;;***
-
-;;;### (autoloads nil "ps-mode" "progmodes/ps-mode.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/ps-mode.el
-(push (purecopy '(ps-mode 1 1 9)) package--builtin-versions)
-
-(autoload 'ps-mode "ps-mode" "\
-Major mode for editing PostScript with GNU Emacs.
-
-Entry to this mode calls `ps-mode-hook'.
-
-The following variables hold user options, and can
-be set through the `customize' command:
-
-  `ps-mode-tab'
-  `ps-mode-paper-size'
-  `ps-mode-print-function'
-  `ps-run-prompt'
-  `ps-run-font-lock-keywords-2'
-  `ps-run-x'
-  `ps-run-dumb'
-  `ps-run-init'
-  `ps-run-error-line-numbers'
-  `ps-run-tmp-dir'
-
-Type \\[describe-variable] for documentation on these options.
-
-
-\\{ps-mode-map}
-
-
-When starting an interactive PostScript process with \\[ps-run-start],
-a second window will be displayed, and `ps-run-mode-hook' will be called.
-The keymap for this second window is:
-
-\\{ps-run-mode-map}
-
-
-When Ghostscript encounters an error it displays an error message
-with a file position. Clicking mouse-2 on this number will bring
-point to the corresponding spot in the PostScript window, if input
-to the interpreter was sent from that window.
-Typing \\<ps-run-mode-map>\\[ps-run-goto-error] when the cursor is at the 
number has the same effect.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ps-mode" '("ps-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "ps-mule" "ps-mule.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from ps-mule.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ps-mule" '("ps-mule-")))
-
-;;;***
-
-;;;### (autoloads nil "ps-print" "ps-print.el" (0 0 0 0))
-;;; Generated autoloads from ps-print.el
-(push (purecopy '(ps-print 7 3 5)) package--builtin-versions)
-
-(defvar ps-page-dimensions-database (purecopy (list (list 'a4 (/ (* 72 21.0) 
2.54) (/ (* 72 29.7) 2.54) "A4") (list 'a3 (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 
2.54) "A3") (list 'letter (* 72 8.5) (* 72 11.0) "Letter") (list 'legal (* 72 
8.5) (* 72 14.0) "Legal") (list 'letter-small (* 72 7.68) (* 72 10.16) 
"LetterSmall") (list 'tabloid (* 72 11.0) (* 72 17.0) "Tabloid") (list 'ledger 
(* 72 17.0) (* 72 11.0) "Ledger") (list 'statement (* 72 5.5) (* 72 8.5) 
"Statement") (list 'executive (* 72 [...]
-List associating a symbolic paper type to its width, height and doc media.
-See `ps-paper-type'.")
-
-(custom-autoload 'ps-page-dimensions-database "ps-print" t)
-
-(defvar ps-paper-type 'letter "\
-Specify the size of paper to format for.
-Should be one of the paper types defined in `ps-page-dimensions-database', for
-example `letter', `legal' or `a4'.")
-
-(custom-autoload 'ps-paper-type "ps-print" t)
-
-(defvar ps-print-color-p (or (fboundp 'x-color-values) (fboundp 
'color-instance-rgb-components)) "\
-Specify how buffer's text color is printed.
-
-Valid values are:
-
-   nil         Do not print colors.
-
-   t           Print colors.
-
-   black-white Print colors on black/white printer.
-               See also `ps-black-white-faces'.
-
-Any other value is treated as t.")
-
-(custom-autoload 'ps-print-color-p "ps-print" t)
-
-(autoload 'ps-print-customize "ps-print" "\
-Customization of ps-print group.
-
-\(fn)" t nil)
-
-(autoload 'ps-print-buffer "ps-print" "\
-Generate and print a PostScript image of the buffer.
-
-Interactively, when you use a prefix argument (\\[universal-argument]), the 
command prompts the
-user for a file name, and saves the PostScript image in that file instead of
-sending it to the printer.
-
-Noninteractively, the argument FILENAME is treated as follows: if it is nil,
-send the image to the printer.  If FILENAME is a string, save the PostScript
-image in a file with that name.
-
-\(fn &optional FILENAME)" t nil)
-
-(autoload 'ps-print-buffer-with-faces "ps-print" "\
-Generate and print a PostScript image of the buffer.
-Like `ps-print-buffer', but includes font, color, and underline information in
-the generated image.  This command works only if you are using a window system,
-so it has a way to determine color values.
-
-\(fn &optional FILENAME)" t nil)
-
-(autoload 'ps-print-region "ps-print" "\
-Generate and print a PostScript image of the region.
-Like `ps-print-buffer', but prints just the current region.
-
-\(fn FROM TO &optional FILENAME)" t nil)
-
-(autoload 'ps-print-region-with-faces "ps-print" "\
-Generate and print a PostScript image of the region.
-Like `ps-print-region', but includes font, color, and underline information in
-the generated image.  This command works only if you are using a window system,
-so it has a way to determine color values.
-
-\(fn FROM TO &optional FILENAME)" t nil)
-
-(autoload 'ps-spool-buffer "ps-print" "\
-Generate and spool a PostScript image of the buffer.
-Like `ps-print-buffer' except that the PostScript image is saved in a local
-buffer to be sent to the printer later.
-
-Use the command `ps-despool' to send the spooled images to the printer.
-
-\(fn)" t nil)
-
-(autoload 'ps-spool-buffer-with-faces "ps-print" "\
-Generate and spool a PostScript image of the buffer.
-Like the command `ps-spool-buffer', but includes font, color, and underline
-information in the generated image.  This command works only if you are using
-a window system, so it has a way to determine color values.
-
-Use the command `ps-despool' to send the spooled images to the printer.
-
-\(fn)" t nil)
-
-(autoload 'ps-spool-region "ps-print" "\
-Generate a PostScript image of the region and spool locally.
-Like `ps-spool-buffer', but spools just the current region.
-
-Use the command `ps-despool' to send the spooled images to the printer.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'ps-spool-region-with-faces "ps-print" "\
-Generate a PostScript image of the region and spool locally.
-Like `ps-spool-region', but includes font, color, and underline information in
-the generated image.  This command works only if you are using a window system,
-so it has a way to determine color values.
-
-Use the command `ps-despool' to send the spooled images to the printer.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'ps-despool "ps-print" "\
-Send the spooled PostScript to the printer.
-
-Interactively, when you use a prefix argument (\\[universal-argument]), the 
command prompts the
-user for a file name, and saves the spooled PostScript image in that file
-instead of sending it to the printer.
-
-Noninteractively, the argument FILENAME is treated as follows: if it is nil,
-send the image to the printer.  If FILENAME is a string, save the PostScript
-image in a file with that name.
-
-\(fn &optional FILENAME)" t nil)
-
-(autoload 'ps-line-lengths "ps-print" "\
-Display the correspondence between a line length and a font size.
-Done using the current ps-print setup.
-Try: pr -t file | awk \\='{printf \"%3d %s
-\", length($0), $0}\\=' | sort -r | head
-
-\(fn)" t nil)
-
-(autoload 'ps-nb-pages-buffer "ps-print" "\
-Display number of pages to print this buffer, for various font heights.
-The table depends on the current ps-print setup.
-
-\(fn NB-LINES)" t nil)
-
-(autoload 'ps-nb-pages-region "ps-print" "\
-Display number of pages to print the region, for various font heights.
-The table depends on the current ps-print setup.
-
-\(fn NB-LINES)" t nil)
-
-(autoload 'ps-setup "ps-print" "\
-Return the current PostScript-generation setup.
-
-\(fn)" nil nil)
-
-(autoload 'ps-extend-face-list "ps-print" "\
-Extend face in ALIST-SYM.
-
-If optional MERGE-P is non-nil, extensions in FACE-EXTENSION-LIST are merged
-with face extension in ALIST-SYM; otherwise, overrides.
-
-If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used;
-otherwise, it should be an alist symbol.
-
-The elements in FACE-EXTENSION-LIST are like those for `ps-extend-face'.
-
-See `ps-extend-face' for documentation.
-
-\(fn FACE-EXTENSION-LIST &optional MERGE-P ALIST-SYM)" nil nil)
-
-(autoload 'ps-extend-face "ps-print" "\
-Extend face in ALIST-SYM.
-
-If optional MERGE-P is non-nil, extensions in FACE-EXTENSION list are merged
-with face extensions in ALIST-SYM; otherwise, overrides.
-
-If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used;
-otherwise, it should be an alist symbol.
-
-The elements of FACE-EXTENSION list have the form:
-
-   (FACE-NAME FOREGROUND BACKGROUND EXTENSION...)
-
-FACE-NAME is a face name symbol.
-
-FOREGROUND and BACKGROUND may be nil or a string that denotes the
-foreground and background colors respectively.
-
-EXTENSION is one of the following symbols:
-   bold      - use bold font.
-   italic    - use italic font.
-   underline - put a line under text.
-   strikeout - like underline, but the line is in middle of text.
-   overline  - like underline, but the line is over the text.
-   shadow    - text will have a shadow.
-   box       - text will be surrounded by a box.
-   outline   - print characters as hollow outlines.
-
-If EXTENSION is any other symbol, it is ignored.
-
-\(fn FACE-EXTENSION &optional MERGE-P ALIST-SYM)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ps-print" '("ps-")))
-
-;;;***
-
-;;;### (autoloads nil "ps-samp" "ps-samp.el" (0 0 0 0))
-;;; Generated autoloads from ps-samp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ps-samp" '("ps-")))
-
-;;;***
-
-;;;### (autoloads nil "pulse" "cedet/pulse.el" (0 0 0 0))
-;;; Generated autoloads from cedet/pulse.el
-(push (purecopy '(pulse 1 0)) package--builtin-versions)
-
-(autoload 'pulse-momentary-highlight-one-line "pulse" "\
-Highlight the line around POINT, unhighlighting before next command.
-Optional argument FACE specifies the face to do the highlighting.
-
-\(fn POINT &optional FACE)" nil nil)
-
-(autoload 'pulse-momentary-highlight-region "pulse" "\
-Highlight between START and END, unhighlighting before next command.
-Optional argument FACE specifies the face to do the highlighting.
-
-\(fn START END &optional FACE)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"pulse" '("pulse-")))
-
-;;;***
-
-;;;### (autoloads nil "puny" "net/puny.el" (0 0 0 0))
-;;; Generated autoloads from net/puny.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"puny" '("puny-")))
-
-;;;***
-
-;;;### (autoloads nil "python" "progmodes/python.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/python.el
-(push (purecopy '(python 0 25 2)) package--builtin-versions)
-
-(add-to-list 'auto-mode-alist (cons (purecopy "\\.pyw?\\'") 'python-mode))
-
-(add-to-list 'interpreter-mode-alist (cons (purecopy "python[0-9.]*") 
'python-mode))
-
-(autoload 'run-python "python" "\
-Run an inferior Python process.
-
-Argument CMD defaults to `python-shell-calculate-command' return
-value.  When called interactively with `prefix-arg', it allows
-the user to edit such value and choose whether the interpreter
-should be DEDICATED for the current buffer.  When numeric prefix
-arg is other than 0 or 4 do not SHOW.
-
-For a given buffer and same values of DEDICATED, if a process is
-already running for it, it will do nothing.  This means that if
-the current buffer is using a global process, the user is still
-able to switch it to use a dedicated one.
-
-Runs the hook `inferior-python-mode-hook' after
-`comint-mode-hook' is run.  (Type \\[describe-mode] in the
-process buffer for a list of commands.)
-
-\(fn &optional CMD DEDICATED SHOW)" t nil)
-
-(autoload 'python-mode "python" "\
-Major mode for editing Python files.
-
-\\{python-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"python" '("python-" "run-python-internal" "inferior-python-mode")))
-
-;;;***
-
-;;;### (autoloads nil "qp" "mail/qp.el" (0 0 0 0))
-;;; Generated autoloads from mail/qp.el
-
-(autoload 'quoted-printable-decode-region "qp" "\
-Decode quoted-printable in the region between FROM and TO, per RFC 2045.
-If CODING-SYSTEM is non-nil, decode bytes into characters with that
-coding-system.
-
-Interactively, you can supply the CODING-SYSTEM argument
-with \\[universal-coding-system-argument].
-
-The CODING-SYSTEM argument is a historical hangover and is deprecated.
-QP encodes raw bytes and should be decoded into raw bytes.  Decoding
-them into characters should be done separately.
-
-\(fn FROM TO &optional CODING-SYSTEM)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "qp" 
'("quoted-printable-")))
-
-;;;***
-
-;;;### (autoloads nil "quail" "international/quail.el" (0 0 0 0))
-;;; Generated autoloads from international/quail.el
-
-(autoload 'quail-title "quail" "\
-Return the title of the current Quail package.
-
-\(fn)" nil nil)
-
-(autoload 'quail-use-package "quail" "\
-Start using Quail package PACKAGE-NAME.
-The remaining arguments are LIBRARIES to be loaded before using the package.
-
-This activates input method defined by PACKAGE-NAME by running
-`quail-activate', which see.
-
-\(fn PACKAGE-NAME &rest LIBRARIES)" nil nil)
-
-(autoload 'quail-define-package "quail" "\
-Define NAME as a new Quail package for input LANGUAGE.
-TITLE is a string to be displayed at mode-line to indicate this package.
-Optional arguments are GUIDANCE, DOCSTRING, TRANSLATION-KEYS,
- FORGET-LAST-SELECTION, DETERMINISTIC, KBD-TRANSLATE, SHOW-LAYOUT,
- CREATE-DECODE-MAP, MAXIMUM-SHORTEST, OVERLAY-PLIST,
- UPDATE-TRANSLATION-FUNCTION, CONVERSION-KEYS and SIMPLE.
-
-GUIDANCE specifies how a guidance string is shown in echo area.
-If it is t, list of all possible translations for the current key is shown
- with the currently selected translation being highlighted.
-If it is an alist, the element has the form (CHAR . STRING).  Each character
- in the current key is searched in the list and the corresponding string is
- shown.
-If it is nil, the current key is shown.
-
-DOCSTRING is the documentation string of this package.  The command
-`describe-input-method' shows this string while replacing the form
-\\=\\<VAR> in the string by the value of VAR.  That value should be a
-string.  For instance, the form \\=\\<quail-translation-docstring> is
-replaced by a description about how to select a translation from a
-list of candidates.
-
-TRANSLATION-KEYS specifies additional key bindings used while translation
-region is active.  It is an alist of single key character vs. corresponding
-command to be called.
-
-FORGET-LAST-SELECTION non-nil means a selected translation is not kept
-for the future to translate the same key.  If this flag is nil, a
-translation selected for a key is remembered so that it can be the
-first candidate when the same key is entered later.
-
-DETERMINISTIC non-nil means the first candidate of translation is
-selected automatically without allowing users to select another
-translation for a key.  In this case, unselected translations are of
-no use for an interactive use of Quail but can be used by some other
-programs.  If this flag is non-nil, FORGET-LAST-SELECTION is also set
-to t.
-
-KBD-TRANSLATE non-nil means input characters are translated from a
-user's keyboard layout to the standard keyboard layout.  See the
-documentation of `quail-keyboard-layout' and
-`quail-keyboard-layout-standard' for more detail.
-
-SHOW-LAYOUT non-nil means the function `quail-help' (as used by
-the command `describe-input-method') should show the user's keyboard
-layout visually with translated characters.  If KBD-TRANSLATE is
-set, it is desirable to also set this flag, unless this package
-defines no translations for single character keys.
-
-CREATE-DECODE-MAP non-nil means decode map is also created.  A decode
-map is an alist of translations and corresponding original keys.
-Although this map is not used by Quail itself, it can be used by some
-other programs.  For instance, Vietnamese supporting needs this map to
-convert Vietnamese text to VIQR format which uses only ASCII
-characters to represent Vietnamese characters.
-
-MAXIMUM-SHORTEST non-nil means break key sequence to get maximum
-length of the shortest sequence.  When we don't have a translation of
-key \"..ABCD\" but have translations of \"..AB\" and \"CD..\", break
-the key at \"..AB\" and start translation of \"CD..\".  Hangul
-packages, for instance, use this facility.  If this flag is nil, we
-break the key just at \"..ABC\" and start translation of \"D..\".
-
-OVERLAY-PLIST if non-nil is a property list put on an overlay which
-covers Quail translation region.
-
-UPDATE-TRANSLATION-FUNCTION if non-nil is a function to call to update
-the current translation region according to a new translation data.  By
-default, a translated text or a user's key sequence (if no translation
-for it) is inserted.
-
-CONVERSION-KEYS specifies additional key bindings used while
-conversion region is active.  It is an alist of single key character
-vs. corresponding command to be called.
-
-If SIMPLE is non-nil, then we do not alter the meanings of
-commands such as C-f, C-b, C-n, C-p and TAB; they are treated as
-non-Quail commands.
-
-\(fn NAME LANGUAGE TITLE &optional GUIDANCE DOCSTRING TRANSLATION-KEYS 
FORGET-LAST-SELECTION DETERMINISTIC KBD-TRANSLATE SHOW-LAYOUT CREATE-DECODE-MAP 
MAXIMUM-SHORTEST OVERLAY-PLIST UPDATE-TRANSLATION-FUNCTION CONVERSION-KEYS 
SIMPLE)" nil nil)
-
-(autoload 'quail-set-keyboard-layout "quail" "\
-Set the current keyboard layout to the same as keyboard KBD-TYPE.
-
-Since some Quail packages depends on a physical layout of keys (not
-characters generated by them), those are created by assuming the
-standard layout defined in `quail-keyboard-layout-standard'.  This
-function tells Quail system the layout of your keyboard so that what
-you type is correctly handled.
-
-\(fn KBD-TYPE)" t nil)
-
-(autoload 'quail-show-keyboard-layout "quail" "\
-Show the physical layout of the keyboard type KEYBOARD-TYPE.
-
-The variable `quail-keyboard-layout-type' holds the currently selected
-keyboard type.
-
-\(fn &optional KEYBOARD-TYPE)" t nil)
-
-(autoload 'quail-define-rules "quail" "\
-Define translation rules of the current Quail package.
-Each argument is a list of KEY and TRANSLATION.
-KEY is a string meaning a sequence of keystrokes to be translated.
-TRANSLATION is a character, a string, a vector, a Quail map, or a function.
-If it is a character, it is the sole translation of KEY.
-If it is a string, each character is a candidate for the translation.
-If it is a vector, each element (string or character) is a candidate
-  for the translation.
-In these cases, a key specific Quail map is generated and assigned to KEY.
-
-If TRANSLATION is a Quail map or a function symbol which returns a Quail map,
- it is used to handle KEY.
-
-The first argument may be an alist of annotations for the following
-rules.  Each element has the form (ANNOTATION . VALUE), where
-ANNOTATION is a symbol indicating the annotation type.  Currently
-the following annotation types are supported.
-
-  append -- the value non-nil means that the following rules should
-       be appended to the rules of the current Quail package.
-
-  face -- the value is a face to use for displaying TRANSLATIONs in
-       candidate list.
-
-  advice -- the value is a function to call after one of RULES is
-       selected.  The function is called with one argument, the
-       selected TRANSLATION string, after the TRANSLATION is
-       inserted.
-
-  no-decode-map --- the value non-nil means that decoding map is not
-       generated for the following translations.
-
-\(fn &rest RULES)" nil t)
-
-(autoload 'quail-install-map "quail" "\
-Install the Quail map MAP in the current Quail package.
-
-Optional 2nd arg NAME, if non-nil, is a name of Quail package for
-which to install MAP.
-
-The installed map can be referred by the function `quail-map'.
-
-\(fn MAP &optional NAME)" nil nil)
-
-(autoload 'quail-install-decode-map "quail" "\
-Install the Quail decode map DECODE-MAP in the current Quail package.
-
-Optional 2nd arg NAME, if non-nil, is a name of Quail package for
-which to install MAP.
-
-The installed decode map can be referred by the function `quail-decode-map'.
-
-\(fn DECODE-MAP &optional NAME)" nil nil)
-
-(autoload 'quail-defrule "quail" "\
-Add one translation rule, KEY to TRANSLATION, in the current Quail package.
-KEY is a string meaning a sequence of keystrokes to be translated.
-TRANSLATION is a character, a string, a vector, a Quail map,
- a function, or a cons.
-It it is a character, it is the sole translation of KEY.
-If it is a string, each character is a candidate for the translation.
-If it is a vector, each element (string or character) is a candidate
- for the translation.
-If it is a cons, the car is one of the above and the cdr is a function
- to call when translating KEY (the return value is assigned to the
- variable `quail-current-data').  If the cdr part is not a function,
- the value itself is assigned to `quail-current-data'.
-In these cases, a key specific Quail map is generated and assigned to KEY.
-
-If TRANSLATION is a Quail map or a function symbol which returns a Quail map,
- it is used to handle KEY.
-
-Optional 3rd argument NAME, if specified, says which Quail package
-to define this translation rule in.  The default is to define it in the
-current Quail package.
-
-Optional 4th argument APPEND, if non-nil, appends TRANSLATION
-to the current translations for KEY instead of replacing them.
-
-\(fn KEY TRANSLATION &optional NAME APPEND)" nil nil)
-
-(autoload 'quail-defrule-internal "quail" "\
-Define KEY as TRANS in a Quail map MAP.
-
-If Optional 4th arg APPEND is non-nil, TRANS is appended to the
-current translations for KEY instead of replacing them.
-
-Optional 5th arg DECODE-MAP is a Quail decode map.
-
-Optional 6th arg PROPS is a property list annotating TRANS.  See the
-function `quail-define-rules' for the detail.
-
-\(fn KEY TRANS MAP &optional APPEND DECODE-MAP PROPS)" nil nil)
-
-(autoload 'quail-update-leim-list-file "quail" "\
-Update entries for Quail packages in `LEIM' list file in directory DIRNAME.
-DIRNAME is a directory containing Emacs input methods;
-normally, it should specify the `leim' subdirectory
-of the Emacs source tree.
-
-It searches for Quail packages under `quail' subdirectory of DIRNAME,
-and update the file \"leim-list.el\" in DIRNAME.
-
-When called from a program, the remaining arguments are additional
-directory names to search for Quail packages under `quail' subdirectory
-of each directory.
-
-\(fn DIRNAME &rest DIRNAMES)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail" '("quail-")))
-
-;;;***
-
-;;;### (autoloads nil "quail/ethiopic" "leim/quail/ethiopic.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from leim/quail/ethiopic.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail/ethiopic" '("ethio-select-a-translation")))
-
-;;;***
-
-;;;### (autoloads nil "quail/hangul" "leim/quail/hangul.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from leim/quail/hangul.el
-
-(autoload 'hangul-input-method-activate "quail/hangul" "\
-Activate Hangul input method INPUT-METHOD.
-FUNC is a function to handle input key.
-HELP-TEXT is a text set in `hangul-input-method-help-text'.
-
-\(fn INPUT-METHOD FUNC HELP-TEXT &rest ARGS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail/hangul" '("hangul" "alphabetp" "notzerop")))
-
-;;;***
-
-;;;### (autoloads nil "quail/indian" "leim/quail/indian.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from leim/quail/indian.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail/indian" '("inscript-" "quail-")))
-
-;;;***
-
-;;;### (autoloads nil "quail/ipa" "leim/quail/ipa.el" (0 0 0 0))
-;;; Generated autoloads from leim/quail/ipa.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail/ipa" '("ipa-x-sampa-")))
-
-;;;***
-
-;;;### (autoloads nil "quail/japanese" "leim/quail/japanese.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from leim/quail/japanese.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail/japanese" '("quail-japanese-")))
-
-;;;***
-
-;;;### (autoloads nil "quail/lao" "leim/quail/lao.el" (0 0 0 0))
-;;; Generated autoloads from leim/quail/lao.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail/lao" '("lao-" "quail-lao-update-translation")))
-
-;;;***
-
-;;;### (autoloads nil "quail/lrt" "leim/quail/lrt.el" (0 0 0 0))
-;;; Generated autoloads from leim/quail/lrt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail/lrt" '("quail-lrt-update-translation")))
-
-;;;***
-
-;;;### (autoloads nil "quail/sisheng" "leim/quail/sisheng.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from leim/quail/sisheng.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail/sisheng" '("quail-make-sisheng-rules" "sisheng-")))
-
-;;;***
-
-;;;### (autoloads nil "quail/thai" "leim/quail/thai.el" (0 0 0 0))
-;;; Generated autoloads from leim/quail/thai.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail/thai" '("thai-generate-quail-map")))
-
-;;;***
-
-;;;### (autoloads nil "quail/tibetan" "leim/quail/tibetan.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from leim/quail/tibetan.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail/tibetan" '("quail-tib" "tibetan-")))
-
-;;;***
-
-;;;### (autoloads nil "quail/uni-input" "leim/quail/uni-input.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from leim/quail/uni-input.el
-
-(autoload 'ucs-input-activate "quail/uni-input" "\
-Activate UCS input method.
-With ARG, activate UCS input method if and only if ARG is positive.
-
-While this input method is active, the variable
-`input-method-function' is bound to the function `ucs-input-method'.
-
-\(fn &optional ARG)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail/uni-input" '("ucs-input-")))
-
-;;;***
-
-;;;### (autoloads nil "quail/viqr" "leim/quail/viqr.el" (0 0 0 0))
-;;; Generated autoloads from leim/quail/viqr.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quail/viqr" '("viet-quail-define-rules")))
-
-;;;***
-
-;;;### (autoloads nil "quickurl" "net/quickurl.el" (0 0 0 0))
-;;; Generated autoloads from net/quickurl.el
-
-(defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn 
(require 'quickurl) (add-hook 'local-write-file-hooks (lambda () 
(quickurl-read) nil)))\n;; End:\n" "\
-Example `quickurl-postfix' text that adds a local variable to the
-`quickurl-url-file' so that if you edit it by hand it will ensure that
-`quickurl-urls' is updated with the new URL list.
-
-To make use of this do something like:
-
-  (setq quickurl-postfix quickurl-reread-hook-postfix)
-
-in your init file (after loading/requiring quickurl).")
-
-(autoload 'quickurl "quickurl" "\
-Insert a URL based on LOOKUP.
-
-If not supplied LOOKUP is taken to be the word at point in the current
-buffer, this default action can be modified via
-`quickurl-grab-lookup-function'.
-
-\(fn &optional LOOKUP)" t nil)
-
-(autoload 'quickurl-ask "quickurl" "\
-Insert a URL, with `completing-read' prompt, based on LOOKUP.
-
-\(fn LOOKUP)" t nil)
-
-(autoload 'quickurl-add-url "quickurl" "\
-Allow the user to interactively add a new URL associated with WORD.
-
-See `quickurl-grab-url' for details on how the default word/URL combination
-is decided.
-
-\(fn WORD URL COMMENT)" t nil)
-
-(autoload 'quickurl-browse-url "quickurl" "\
-Browse the URL associated with LOOKUP.
-
-If not supplied LOOKUP is taken to be the word at point in the
-current buffer, this default action can be modified via
-`quickurl-grab-lookup-function'.
-
-\(fn &optional LOOKUP)" t nil)
-
-(autoload 'quickurl-browse-url-ask "quickurl" "\
-Browse the URL, with `completing-read' prompt, associated with LOOKUP.
-
-\(fn LOOKUP)" t nil)
-
-(autoload 'quickurl-edit-urls "quickurl" "\
-Pull `quickurl-url-file' into a buffer for hand editing.
-
-\(fn)" t nil)
-
-(autoload 'quickurl-list-mode "quickurl" "\
-A mode for browsing the quickurl URL list.
-
-The key bindings for `quickurl-list-mode' are:
-
-\\{quickurl-list-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'quickurl-list "quickurl" "\
-Display `quickurl-list' as a formatted list using `quickurl-list-mode'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"quickurl" '("quickurl-")))
-
-;;;***
-
-;;;### (autoloads nil "radix-tree" "emacs-lisp/radix-tree.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from emacs-lisp/radix-tree.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"radix-tree" '("radix-tree-")))
-
-;;;***
-
-;;;### (autoloads nil "rcirc" "net/rcirc.el" (0 0 0 0))
-;;; Generated autoloads from net/rcirc.el
-
-(autoload 'rcirc "rcirc" "\
-Connect to all servers in `rcirc-server-alist'.
-
-Do not connect to a server if it is already connected.
-
-If ARG is non-nil, instead prompt for connection parameters.
-
-\(fn ARG)" t nil)
-
-(defalias 'irc 'rcirc)
-
-(autoload 'rcirc-connect "rcirc" "\
-
-
-\(fn SERVER &optional PORT NICK USER-NAME FULL-NAME STARTUP-CHANNELS PASSWORD 
ENCRYPTION SERVER-ALIAS)" nil nil)
-
-(defvar rcirc-track-minor-mode nil "\
-Non-nil if Rcirc-Track minor mode is enabled.
-See the `rcirc-track-minor-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `rcirc-track-minor-mode'.")
-
-(custom-autoload 'rcirc-track-minor-mode "rcirc" nil)
-
-(autoload 'rcirc-track-minor-mode "rcirc" "\
-Global minor mode for tracking activity in rcirc buffers.
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rcirc" '("rcirc-" "defun-rcirc-command" "set-rcirc-" "with-rcirc-")))
-
-;;;***
-
-;;;### (autoloads nil "re-builder" "emacs-lisp/re-builder.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from emacs-lisp/re-builder.el
-
-(defalias 'regexp-builder 're-builder)
-
-(autoload 're-builder "re-builder" "\
-Construct a regexp interactively.
-This command makes the current buffer the \"target\" buffer of
-the regexp builder.  It displays a buffer named \"*RE-Builder*\"
-in another window, initially containing an empty regexp.
-
-As you edit the regexp in the \"*RE-Builder*\" buffer, the
-matching parts of the target buffer will be highlighted.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"re-builder" '("reb-" "re-builder-unload-function")))
-
-;;;***
-
-;;;### (autoloads nil "recentf" "recentf.el" (0 0 0 0))
-;;; Generated autoloads from recentf.el
-
-(defvar recentf-mode nil "\
-Non-nil if Recentf mode is enabled.
-See the `recentf-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `recentf-mode'.")
-
-(custom-autoload 'recentf-mode "recentf" nil)
-
-(autoload 'recentf-mode "recentf" "\
-Toggle \"Open Recent\" menu (Recentf mode).
-With a prefix argument ARG, enable Recentf mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-Recentf mode if ARG is omitted or nil.
-
-When Recentf mode is enabled, a \"Open Recent\" submenu is
-displayed in the \"File\" menu, containing a list of files that
-were operated on recently.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"recentf" '("recentf-")))
-
-;;;***
-
-;;;### (autoloads nil "rect" "rect.el" (0 0 0 0))
-;;; Generated autoloads from rect.el
-
-(autoload 'delete-rectangle "rect" "\
-Delete (don't save) text in the region-rectangle.
-The same range of columns is deleted in each line starting with the
-line where the region begins and ending with the line where the region
-ends.
-
-When called from a program the rectangle's corners are START and END.
-With a prefix (or a FILL) argument, also fill lines where nothing has
-to be deleted.
-
-\(fn START END &optional FILL)" t nil)
-
-(autoload 'delete-extract-rectangle "rect" "\
-Delete the contents of the rectangle with corners at START and END.
-Return it as a list of strings, one for each line of the rectangle.
-
-When called from a program the rectangle's corners are START and END.
-With an optional FILL argument, also fill lines where nothing has to be
-deleted.
-
-\(fn START END &optional FILL)" nil nil)
-
-(autoload 'extract-rectangle "rect" "\
-Return the contents of the rectangle with corners at START and END.
-Return it as a list of strings, one for each line of the rectangle.
-
-\(fn START END)" nil nil)
-
-(autoload 'kill-rectangle "rect" "\
-Delete the region-rectangle and save it as the last killed one.
-
-When called from a program the rectangle's corners are START and END.
-You might prefer to use `delete-extract-rectangle' from a program.
-
-With a prefix (or a FILL) argument, also fill lines where nothing has to be
-deleted.
-
-If the buffer is read-only, Emacs will beep and refrain from deleting
-the rectangle, but put it in `killed-rectangle' anyway.  This means that
-you can use this command to copy text from a read-only buffer.
-\(If the variable `kill-read-only-ok' is non-nil, then this won't
-even beep.)
-
-\(fn START END &optional FILL)" t nil)
-
-(autoload 'copy-rectangle-as-kill "rect" "\
-Copy the region-rectangle and save it as the last killed one.
-
-\(fn START END)" t nil)
-
-(autoload 'yank-rectangle "rect" "\
-Yank the last killed rectangle with upper left corner at point.
-
-\(fn)" t nil)
-
-(autoload 'insert-rectangle "rect" "\
-Insert text of RECTANGLE with upper left corner at point.
-RECTANGLE's first line is inserted at point, its second
-line is inserted at a point vertically under point, etc.
-RECTANGLE should be a list of strings.
-After this command, the mark is at the upper left corner
-and point is at the lower right corner.
-
-\(fn RECTANGLE)" nil nil)
-
-(autoload 'open-rectangle "rect" "\
-Blank out the region-rectangle, shifting text right.
-
-The text previously in the region is not overwritten by the blanks,
-but instead winds up to the right of the rectangle.
-
-When called from a program the rectangle's corners are START and END.
-With a prefix (or a FILL) argument, fill with blanks even if there is
-no text on the right side of the rectangle.
-
-\(fn START END &optional FILL)" t nil)
-
-(defalias 'close-rectangle 'delete-whitespace-rectangle)
-
-(autoload 'delete-whitespace-rectangle "rect" "\
-Delete all whitespace following a specified column in each line.
-The left edge of the rectangle specifies the position in each line
-at which whitespace deletion should begin.  On each line in the
-rectangle, all contiguous whitespace starting at that column is deleted.
-
-When called from a program the rectangle's corners are START and END.
-With a prefix (or a FILL) argument, also fill too short lines.
-
-\(fn START END &optional FILL)" t nil)
-
-(autoload 'string-rectangle "rect" "\
-Replace rectangle contents with STRING on each line.
-The length of STRING need not be the same as the rectangle width.
-
-Called from a program, takes three args; START, END and STRING.
-
-\(fn START END STRING)" t nil)
-
-(defalias 'replace-rectangle 'string-rectangle)
-
-(autoload 'string-insert-rectangle "rect" "\
-Insert STRING on each line of region-rectangle, shifting text right.
-
-When called from a program, the rectangle's corners are START and END.
-The left edge of the rectangle specifies the column for insertion.
-This command does not delete or overwrite any existing text.
-
-\(fn START END STRING)" t nil)
-
-(autoload 'clear-rectangle "rect" "\
-Blank out the region-rectangle.
-The text previously in the region is overwritten with blanks.
-
-When called from a program the rectangle's corners are START and END.
-With a prefix (or a FILL) argument, also fill with blanks the parts of the
-rectangle which were empty.
-
-\(fn START END &optional FILL)" t nil)
-
-(autoload 'rectangle-number-lines "rect" "\
-Insert numbers in front of the region-rectangle.
-
-START-AT, if non-nil, should be a number from which to begin
-counting.  FORMAT, if non-nil, should be a format string to pass
-to `format' along with the line count.  When called interactively
-with a prefix argument, prompt for START-AT and FORMAT.
-
-\(fn START END START-AT &optional FORMAT)" t nil)
-
-(autoload 'rectangle-mark-mode "rect" "\
-Toggle the region as rectangular.
-Activates the region if needed.  Only lasts until the region is deactivated.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rect" '("rectangle-" "clear-rectangle-line" "spaces-string" 
"string-rectangle-" "delete-" "ope" "killed-rectangle" "extract-rectangle-" 
"apply-on-rectangle")))
-
-;;;***
-
-;;;### (autoloads nil "refbib" "textmodes/refbib.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/refbib.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"refbib" '("r2b-")))
-
-;;;***
-
-;;;### (autoloads nil "refer" "textmodes/refer.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/refer.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"refer" '("refer-")))
-
-;;;***
-
-;;;### (autoloads nil "refill" "textmodes/refill.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/refill.el
-
-(autoload 'refill-mode "refill" "\
-Toggle automatic refilling (Refill mode).
-With a prefix argument ARG, enable Refill mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Refill mode is a buffer-local minor mode.  When enabled, the
-current paragraph is refilled as you edit.  Self-inserting
-characters only cause refilling if they would cause
-auto-filling.
-
-For true \"word wrap\" behavior, use `visual-line-mode' instead.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"refill" '("refill-")))
-
-;;;***
-
-;;;### (autoloads nil "reftex" "textmodes/reftex.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/reftex.el
-(autoload 'reftex-citation "reftex-cite" nil t)
-(autoload 'reftex-all-document-files "reftex-parse")
-(autoload 'reftex-isearch-minor-mode "reftex-global" nil t)
-(autoload 'reftex-index-phrases-mode "reftex-index" nil t)
-
-(autoload 'turn-on-reftex "reftex" "\
-Turn on RefTeX mode.
-
-\(fn)" nil nil)
-
-(autoload 'reftex-mode "reftex" "\
-Minor mode with distinct support for \\label, \\ref and \\cite in LaTeX.
-
-\\<reftex-mode-map>A Table of Contents of the entire (multifile) document with 
browsing
-capabilities is available with `\\[reftex-toc]'.
-
-Labels can be created with `\\[reftex-label]' and referenced with 
`\\[reftex-reference]'.
-When referencing, you get a menu with all labels of a given type and
-context of the label definition.  The selected label is inserted as a
-\\ref macro.
-
-Citations can be made with `\\[reftex-citation]' which will use a regular 
expression
-to pull out a *formatted* list of articles from your BibTeX
-database.  The selected citation is inserted as a \\cite macro.
-
-Index entries can be made with `\\[reftex-index-selection-or-word]' which 
indexes the word at point
-or the current selection.  More general index entries are created with
-`\\[reftex-index]'.  `\\[reftex-display-index]' displays the compiled index.
-
-Most command have help available on the fly.  This help is accessed by
-pressing `?' to any prompt mentioning this feature.
-
-Extensive documentation about RefTeX is available in Info format.
-You can view this information with `\\[reftex-info]'.
-
-\\{reftex-mode-map}
-Under X, these and other functions will also be available as `Ref' menu
-on the menu bar.
-
-------------------------------------------------------------------------------
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'reftex-reset-scanning-information "reftex" "\
-Reset the symbols containing information from buffer scanning.
-This enforces rescanning the buffer on next use.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reftex" '("reftex-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "reftex-auc" 
"textmodes/reftex-auc.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from textmodes/reftex-auc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reftex-auc" '("reftex-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "reftex-cite"
-;;;;;;  "textmodes/reftex-cite.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/reftex-cite.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reftex-cite" '("reftex-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "reftex-dcr" 
"textmodes/reftex-dcr.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from textmodes/reftex-dcr.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reftex-dcr" '("reftex-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "reftex-global"
-;;;;;;  "textmodes/reftex-global.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/reftex-global.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reftex-global" '("reftex-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "reftex-index"
-;;;;;;  "textmodes/reftex-index.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/reftex-index.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reftex-index" '("reftex-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "reftex-parse"
-;;;;;;  "textmodes/reftex-parse.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/reftex-parse.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reftex-parse" '("reftex-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "reftex-ref" 
"textmodes/reftex-ref.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from textmodes/reftex-ref.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reftex-ref" '("reftex-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "reftex-sel" 
"textmodes/reftex-sel.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from textmodes/reftex-sel.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reftex-sel" '("reftex-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "reftex-toc" 
"textmodes/reftex-toc.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from textmodes/reftex-toc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reftex-toc" '("reftex-")))
-
-;;;***
-
-;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from textmodes/reftex-vars.el
-(put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) 
(symbolp x))))
-(put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) 
(symbolp x))))
-(put 'reftex-level-indent 'safe-local-variable 'integerp)
-(put 'reftex-guess-label-type 'safe-local-variable (lambda (x) (memq x '(nil 
t))))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reftex-vars" '("reftex-")))
-
-;;;***
-
-;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from emacs-lisp/regexp-opt.el
-
-(autoload 'regexp-opt "regexp-opt" "\
-Return a regexp to match a string in the list STRINGS.
-Each string should be unique in STRINGS and should not contain
-any regexps, quoted or not.  Optional PAREN specifies how the
-returned regexp is surrounded by grouping constructs.
-
-The optional argument PAREN can be any of the following:
-
-a string
-    the resulting regexp is preceded by PAREN and followed by
-    \\), e.g.  use \"\\\\(?1:\" to produce an explicitly numbered
-    group.
-
-`words'
-    the resulting regexp is surrounded by \\=\\<\\( and \\)\\>.
-
-`symbols'
-    the resulting regexp is surrounded by \\_<\\( and \\)\\_>.
-
-non-nil
-    the resulting regexp is surrounded by \\( and \\).
-
-nil
-    the resulting regexp is surrounded by \\(?: and \\), if it is
-    necessary to ensure that a postfix operator appended to it will
-    apply to the whole expression.
-
-The resulting regexp is equivalent to but usually more efficient
-than that of a simplified version:
-
- (defun simplified-regexp-opt (strings &optional paren)
-   (let ((parens
-          (cond ((stringp paren)       (cons paren \"\\\\)\"))
-                ((eq paren 'words)    '(\"\\\\\\=<\\\\(\" . \"\\\\)\\\\>\"))
-                ((eq paren 'symbols) '(\"\\\\_<\\\\(\" . \"\\\\)\\\\_>\"))
-                ((null paren)          '(\"\\\\(?:\" . \"\\\\)\"))
-                (t                       '(\"\\\\(\" . \"\\\\)\")))))
-     (concat (car paren)
-             (mapconcat 'regexp-quote strings \"\\\\|\")
-             (cdr paren))))
-
-\(fn STRINGS &optional PAREN)" nil nil)
-
-(autoload 'regexp-opt-depth "regexp-opt" "\
-Return the depth of REGEXP.
-This means the number of non-shy regexp grouping constructs
-\(parenthesized expressions) in REGEXP.
-
-\(fn REGEXP)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"regexp-opt" '("regexp-opt-")))
-
-;;;***
-
-;;;### (autoloads nil "regi" "emacs-lisp/regi.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/regi.el
-(push (purecopy '(regi 1 8)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"regi" '("regi-")))
-
-;;;***
-
-;;;### (autoloads nil "registry" "registry.el" (0 0 0 0))
-;;; Generated autoloads from registry.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"registry" '("registry-")))
-
-;;;***
-
-;;;### (autoloads nil "remember" "textmodes/remember.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/remember.el
-(push (purecopy '(remember 2 0)) package--builtin-versions)
-
-(autoload 'remember "remember" "\
-Remember an arbitrary piece of data.
-INITIAL is the text to initially place in the *Remember* buffer,
-or nil to bring up a blank *Remember* buffer.
-
-With a prefix or a visible region, use the region as INITIAL.
-
-\(fn &optional INITIAL)" t nil)
-
-(autoload 'remember-other-frame "remember" "\
-Call `remember' in another frame.
-
-\(fn &optional INITIAL)" t nil)
-
-(autoload 'remember-clipboard "remember" "\
-Remember the contents of the current clipboard.
-Most useful for remembering things from other applications.
-
-\(fn)" t nil)
-
-(autoload 'remember-diary-extract-entries "remember" "\
-Extract diary entries from the region.
-
-\(fn)" nil nil)
-
-(autoload 'remember-notes "remember" "\
-Return the notes buffer, creating it if needed, and maybe switch to it.
-This buffer is for notes that you want to preserve across Emacs sessions.
-The notes are saved in `remember-data-file'.
-
-If a buffer is already visiting that file, just return it.
-
-Otherwise, create the buffer, and rename it to `remember-notes-buffer-name',
-unless a buffer of that name already exists.  Set the major mode according
-to `remember-notes-initial-major-mode', and enable `remember-notes-mode'
-minor mode.
-
-Use \\<remember-notes-mode-map>\\[remember-notes-save-and-bury-buffer] to save 
and bury the notes buffer.
-
-Interactively, or if SWITCH-TO is non-nil, switch to the buffer.
-Return the buffer.
-
-Set `initial-buffer-choice' to `remember-notes' to visit your notes buffer
-when Emacs starts.  Set `remember-notes-buffer-name' to \"*scratch*\"
-to turn the *scratch* buffer into your notes buffer.
-
-\(fn &optional SWITCH-TO)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"remember" '("remember-")))
-
-;;;***
-
-;;;### (autoloads nil "repeat" "repeat.el" (0 0 0 0))
-;;; Generated autoloads from repeat.el
-(push (purecopy '(repeat 0 51)) package--builtin-versions)
-
-(autoload 'repeat "repeat" "\
-Repeat most recently executed command.
-If REPEAT-ARG is non-nil (interactively, with a prefix argument),
-supply a prefix argument to that command.  Otherwise, give the
-command the same prefix argument it was given before, if any.
-
-If this command is invoked by a multi-character key sequence, it
-can then be repeated by repeating the final character of that
-sequence.  This behavior can be modified by the global variable
-`repeat-on-final-keystroke'.
-
-`repeat' ignores commands bound to input events.  Hence the term
-\"most recently executed command\" shall be read as \"most
-recently executed command not bound to an input event\".
-
-\(fn REPEAT-ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"repeat" '("repeat-")))
-
-;;;***
-
-;;;### (autoloads nil "reporter" "mail/reporter.el" (0 0 0 0))
-;;; Generated autoloads from mail/reporter.el
-
-(autoload 'reporter-submit-bug-report "reporter" "\
-Begin submitting a bug report via email.
-
-ADDRESS is the email address for the package's maintainer.  PKGNAME is
-the name of the package (if you want to include version numbers,
-you must put them into PKGNAME before calling this function).
-Optional PRE-HOOKS and POST-HOOKS are passed to `reporter-dump-state'.
-Optional SALUTATION is inserted at the top of the mail buffer,
-and point is left after the salutation.
-
-VARLIST is the list of variables to dump (see `reporter-dump-state'
-for details).  The optional argument PRE-HOOKS and POST-HOOKS are
-passed to `reporter-dump-state'.  Optional argument SALUTATION is text
-to be inserted at the top of the mail buffer; in that case, point is
-left after that text.
-
-This function prompts for a summary if `reporter-prompt-for-summary-p'
-is non-nil.
-
-This function does not send a message; it uses the given information
-to initialize a message, which the user can then edit and finally send
-\(or decline to send).  The variable `mail-user-agent' controls which
-mail-sending package is used for editing and sending the message.
-
-\(fn ADDRESS PKGNAME VARLIST &optional PRE-HOOKS POST-HOOKS SALUTATION)" nil 
nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reporter" '("reporter-")))
-
-;;;***
-
-;;;### (autoloads nil "reposition" "reposition.el" (0 0 0 0))
-;;; Generated autoloads from reposition.el
-
-(autoload 'reposition-window "reposition" "\
-Make the current definition and/or comment visible.
-Further invocations move it to the top of the window or toggle the
-visibility of comments that precede it.
-  Point is left unchanged unless prefix ARG is supplied.
-  If the definition is fully onscreen, it is moved to the top of the
-window.  If it is partly offscreen, the window is scrolled to get the
-definition (or as much as will fit) onscreen, unless point is in a comment
-which is also partly offscreen, in which case the scrolling attempts to get
-as much of the comment onscreen as possible.
-  Initially `reposition-window' attempts to make both the definition and
-preceding comments visible.  Further invocations toggle the visibility of
-the comment lines.
-  If ARG is non-nil, point may move in order to make the whole defun
-visible (if only part could otherwise be made so), to make the defun line
-visible (if point is in code and it could not be made so, or if only
-comments, including the first comment line, are visible), or to make the
-first comment line visible (if point is in a comment).
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reposition" '("repos-count-screen-lines")))
-
-;;;***
-
-;;;### (autoloads nil "reveal" "reveal.el" (0 0 0 0))
-;;; Generated autoloads from reveal.el
-
-(autoload 'reveal-mode "reveal" "\
-Toggle uncloaking of invisible text near point (Reveal mode).
-With a prefix argument ARG, enable Reveal mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-Reveal mode if ARG is omitted or nil.
-
-Reveal mode is a buffer-local minor mode.  When enabled, it
-reveals invisible text around point.
-
-\(fn &optional ARG)" t nil)
-
-(defvar global-reveal-mode nil "\
-Non-nil if Global Reveal mode is enabled.
-See the `global-reveal-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-reveal-mode'.")
-
-(custom-autoload 'global-reveal-mode "reveal" nil)
-
-(autoload 'global-reveal-mode "reveal" "\
-Toggle Reveal mode in all buffers (Global Reveal mode).
-Reveal mode renders invisible text around point visible again.
-
-With a prefix argument ARG, enable Global Reveal mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"reveal" '("reveal-")))
-
-;;;***
-
-;;;### (autoloads nil "rfc1843" "international/rfc1843.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from international/rfc1843.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rfc1843" '("rfc1843-")))
-
-;;;***
-
-;;;### (autoloads nil "rfc2045" "mail/rfc2045.el" (0 0 0 0))
-;;; Generated autoloads from mail/rfc2045.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rfc2045" '("rfc2045-encode-string")))
-
-;;;***
-
-;;;### (autoloads nil "rfc2047" "mail/rfc2047.el" (0 0 0 0))
-;;; Generated autoloads from mail/rfc2047.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rfc2047" '("rfc2047-")))
-
-;;;***
-
-;;;### (autoloads nil "rfc2104" "net/rfc2104.el" (0 0 0 0))
-;;; Generated autoloads from net/rfc2104.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rfc2104" '("rfc2104-")))
-
-;;;***
-
-;;;### (autoloads nil "rfc2231" "mail/rfc2231.el" (0 0 0 0))
-;;; Generated autoloads from mail/rfc2231.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rfc2231" '("rfc2231-")))
-
-;;;***
-
-;;;### (autoloads nil "rfc2368" "mail/rfc2368.el" (0 0 0 0))
-;;; Generated autoloads from mail/rfc2368.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rfc2368" '("rfc2368-")))
-
-;;;***
-
-;;;### (autoloads nil "rfc822" "mail/rfc822.el" (0 0 0 0))
-;;; Generated autoloads from mail/rfc822.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rfc822" '("rfc822-")))
-
-;;;***
-
-;;;### (autoloads nil "ring" "emacs-lisp/ring.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/ring.el
-
-(autoload 'ring-p "ring" "\
-Return t if X is a ring; nil otherwise.
-
-\(fn X)" nil nil)
-
-(autoload 'make-ring "ring" "\
-Make a ring that can contain SIZE elements.
-
-\(fn SIZE)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ring" '("ring-")))
-
-;;;***
-
-;;;### (autoloads nil "rlogin" "net/rlogin.el" (0 0 0 0))
-;;; Generated autoloads from net/rlogin.el
-
-(autoload 'rlogin "rlogin" "\
-Open a network login connection via `rlogin' with args INPUT-ARGS.
-INPUT-ARGS should start with a host name; it may also contain
-other arguments for `rlogin'.
-
-Input is sent line-at-a-time to the remote connection.
-
-Communication with the remote host is recorded in a buffer `*rlogin-HOST*'
-\(or address@hidden' if the remote username differs).
-If a prefix argument is given and the buffer `*rlogin-HOST*' already exists,
-a new buffer with a different connection will be made.
-
-When called from a program, if the optional second argument BUFFER is
-a string or buffer, it specifies the buffer to use.
-
-The variable `rlogin-program' contains the name of the actual program to
-run.  It can be a relative or absolute path.
-
-The variable `rlogin-explicit-args' is a list of arguments to give to
-the rlogin when starting.  They are added after any arguments given in
-INPUT-ARGS.
-
-If the default value of `rlogin-directory-tracking-mode' is t, then the
-default directory in that buffer is set to a remote (FTP) file name to
-access your home directory on the remote machine.  Occasionally this causes
-an error, if you cannot access the home directory on that machine.  This
-error is harmless as long as you don't try to use that default directory.
-
-If `rlogin-directory-tracking-mode' is neither t nor nil, then the default
-directory is initially set up to your (local) home directory.
-This is useful if the remote machine and your local machine
-share the same files via NFS.  This is the default.
-
-If you wish to change directory tracking styles during a session, use the
-function `rlogin-directory-tracking-mode' rather than simply setting the
-variable.
-
-\(fn INPUT-ARGS &optional BUFFER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rlogin" '("rlogin-")))
-
-;;;***
-
-;;;### (autoloads nil "rmail" "mail/rmail.el" (0 0 0 0))
-;;; Generated autoloads from mail/rmail.el
-
-(defvar rmail-file-name (purecopy "~/RMAIL") "\
-Name of user's primary mail file.")
-
-(custom-autoload 'rmail-file-name "rmail" t)
-
-(put 'rmail-spool-directory 'standard-value '((cond ((file-exists-p 
"/var/mail") "/var/mail/") ((file-exists-p "/var/spool/mail") 
"/var/spool/mail/") ((memq system-type '(hpux usg-unix-v)) "/usr/mail/") (t 
"/usr/spool/mail/"))))
-
-(defvar rmail-spool-directory (purecopy (cond ((file-exists-p "/var/mail") 
"/var/mail/") ((file-exists-p "/var/spool/mail") "/var/spool/mail/") ((memq 
system-type '(hpux usg-unix-v)) "/usr/mail/") (t "/usr/spool/mail/"))) "\
-Name of directory used by system mailer for delivering new mail.
-Its name should end with a slash.")
-
-(custom-autoload 'rmail-spool-directory "rmail" t)
-(custom-initialize-delay 'rmail-spool-directory nil)
-
-(autoload 'rmail-movemail-variant-p "rmail" "\
-Return t if the current movemail variant is any of VARIANTS.
-Currently known variants are `emacs' and `mailutils'.
-
-\(fn &rest VARIANTS)" nil nil)
-
-(defvar rmail-user-mail-address-regexp nil "\
-Regexp matching user mail addresses.
-If non-nil, this variable is used to identify the correspondent
-when receiving new mail.  If it matches the address of the sender,
-the recipient is taken as correspondent of a mail.
-If nil (default value), your `user-login-name' and `user-mail-address'
-are used to exclude yourself as correspondent.
-
-Usually you don't have to set this variable, except if you collect mails
-sent by you under different user names.
-Then it should be a regexp matching your mail addresses.
-
-Setting this variable has an effect only before reading a mail.")
-
-(custom-autoload 'rmail-user-mail-address-regexp "rmail" t)
-
-(define-obsolete-variable-alias 'rmail-dont-reply-to-names 
'mail-dont-reply-to-names "24.1")
-
-(defvar rmail-default-dont-reply-to-names nil "\
-Regexp specifying part of the default value of `mail-dont-reply-to-names'.
-This is used when the user does not set `mail-dont-reply-to-names'
-explicitly.")
-
-(make-obsolete-variable 'rmail-default-dont-reply-to-names 
'mail-dont-reply-to-names "24.1")
-
-(defvar rmail-ignored-headers (purecopy (concat 
"^via:\\|^mail-from:\\|^origin:\\|^references:\\|^sender:" 
"\\|^status:\\|^received:\\|^x400-originator:\\|^x400-recipients:" 
"\\|^x400-received:\\|^x400-mts-identifier:\\|^x400-content-type:" 
"\\|^\\(resent-\\|\\)message-id:\\|^summary-line:\\|^resent-date:" 
"\\|^nntp-posting-host:\\|^path:\\|^x-char.*:\\|^x-face:\\|^face:" 
"\\|^x-mailer:\\|^delivered-to:\\|^lines:" 
"\\|^content-transfer-encoding:\\|^x-coding-system:" "\\|^return-path:\\|^ [...]
-Regexp to match header fields that Rmail should normally hide.
-\(See also `rmail-nonignored-headers', which overrides this regexp.)
-This variable is used for reformatting the message header,
-which normally happens once for each message,
-when you view the message for the first time in Rmail.
-To make a change in this variable take effect
-for a message that you have already viewed,
-go to that message and type \\[rmail-toggle-header] twice.")
-
-(custom-autoload 'rmail-ignored-headers "rmail" t)
-
-(defvar rmail-displayed-headers nil "\
-Regexp to match Header fields that Rmail should display.
-If nil, display all header fields except those matched by
-`rmail-ignored-headers'.")
-
-(custom-autoload 'rmail-displayed-headers "rmail" t)
-
-(defvar rmail-retry-ignored-headers (purecopy 
"^x-authentication-warning:\\|^x-detected-operating-system:\\|^x-spam[-a-z]*:\\|content-type:\\|content-transfer-encoding:\\|mime-version:\\|message-id:")
 "\
-Headers that should be stripped when retrying a failed message.")
-
-(custom-autoload 'rmail-retry-ignored-headers "rmail" t)
-
-(defvar rmail-highlighted-headers (purecopy "^From:\\|^Subject:") "\
-Regexp to match Header fields that Rmail should normally highlight.
-A value of nil means don't highlight.  Uses the face `rmail-highlight'.")
-
-(custom-autoload 'rmail-highlighted-headers "rmail" t)
-
-(defvar rmail-primary-inbox-list nil "\
-List of files that are inboxes for your primary mail file `rmail-file-name'.
-If this is nil, uses the environment variable MAIL.  If that is
-unset, uses a file named by the function `user-login-name' in the
-directory `rmail-spool-directory' (whose value depends on the
-operating system).  For example, \"/var/mail/USER\".")
-
-(custom-autoload 'rmail-primary-inbox-list "rmail" t)
-
-(defvar rmail-secondary-file-directory (purecopy "~/") "\
-Directory for additional secondary Rmail files.")
-
-(custom-autoload 'rmail-secondary-file-directory "rmail" t)
-
-(defvar rmail-secondary-file-regexp (purecopy "\\.xmail$") "\
-Regexp for which files are secondary Rmail files.")
-
-(custom-autoload 'rmail-secondary-file-regexp "rmail" t)
-
-(defvar rmail-mode-hook nil "\
-List of functions to call when Rmail is invoked.")
-
-(defvar rmail-show-message-hook nil "\
-List of functions to call when Rmail displays a message.")
-
-(custom-autoload 'rmail-show-message-hook "rmail" t)
-
-(defvar rmail-file-coding-system nil "\
-Coding system used in RMAIL file.
-
-This is set to nil by default.")
-
-(defvar rmail-insert-mime-forwarded-message-function nil "\
-Function to insert a message in MIME format so it can be forwarded.
-This function is called if `rmail-enable-mime' and
-`rmail-enable-mime-composing' are non-nil.
-It is called with one argument FORWARD-BUFFER, which is a
-buffer containing the message to forward.  The current buffer
-is the outgoing mail buffer.")
-
-(autoload 'rmail "rmail" "\
-Read and edit incoming mail.
-Moves messages into file named by `rmail-file-name' and edits that
-file in RMAIL Mode.
-Type \\[describe-mode] once editing that file, for a list of RMAIL commands.
-
-May be called with file name as argument; then performs rmail editing on
-that file, but does not copy any new mail into the file.
-Interactively, if you supply a prefix argument, then you
-have a chance to specify a file name with the minibuffer.
-
-If `rmail-display-summary' is non-nil, make a summary for this RMAIL file.
-
-\(fn &optional FILE-NAME-ARG)" t nil)
-
-(autoload 'rmail-mode "rmail" "\
-Rmail Mode is used by \\<rmail-mode-map>\\[rmail] for editing Rmail files.
-All normal editing commands are turned off.
-Instead, these commands are available:
-
-\\[rmail-beginning-of-message] Move point to front of this message.
-\\[rmail-end-of-message]       Move point to bottom of this message.
-\\[scroll-up]  Scroll to next screen of this message.
-\\[scroll-down]        Scroll to previous screen of this message.
-\\[rmail-next-undeleted-message]       Move to Next non-deleted message.
-\\[rmail-previous-undeleted-message]   Move to Previous non-deleted message.
-\\[rmail-next-message] Move to Next message whether deleted or not.
-\\[rmail-previous-message]     Move to Previous message whether deleted or not.
-\\[rmail-first-message]        Move to the first message in Rmail file.
-\\[rmail-last-message] Move to the last message in Rmail file.
-\\[rmail-show-message] Jump to message specified by numeric position in file.
-\\[rmail-search]       Search for string and show message it is found in.
-\\[rmail-delete-forward]       Delete this message, move to next nondeleted.
-\\[rmail-delete-backward]      Delete this message, move to previous 
nondeleted.
-\\[rmail-undelete-previous-message]    Undelete message.  Tries current 
message, then earlier messages
-       till a deleted message is found.
-\\[rmail-edit-current-message] Edit the current message.  \\[rmail-cease-edit] 
to return to Rmail.
-\\[rmail-expunge]      Expunge deleted messages.
-\\[rmail-expunge-and-save]     Expunge and save the file.
-\\[rmail-quit]       Quit Rmail: expunge, save, then switch to another buffer.
-\\[save-buffer] Save without expunging.
-\\[rmail-get-new-mail] Move new mail from system spool directory into this 
file.
-\\[rmail-mail] Mail a message (same as \\[mail-other-window]).
-\\[rmail-continue]     Continue composing outgoing message started before.
-\\[rmail-reply]        Reply to this message.  Like \\[rmail-mail] but 
initializes some fields.
-\\[rmail-retry-failure]        Send this message again.  Used on a mailer 
failure message.
-\\[rmail-forward]      Forward this message to another user.
-\\[rmail-output]       Output (append) this message to another mail file.
-\\[rmail-output-as-seen]       Output (append) this message to file as it's 
displayed.
-\\[rmail-output-body-to-file]  Save message body to a file.  Default filename 
comes from Subject line.
-\\[rmail-input]        Input Rmail file.  Run Rmail on that file.
-\\[rmail-add-label]    Add label to message.  It will be displayed in the mode 
line.
-\\[rmail-kill-label]   Kill label.  Remove a label from current message.
-\\[rmail-next-labeled-message]   Move to Next message with specified label
-          (label defaults to last one specified).
-          Standard labels: filed, unseen, answered, forwarded, deleted.
-          Any other label is present only if you add it with 
\\[rmail-add-label].
-\\[rmail-previous-labeled-message]   Move to Previous message with specified 
label
-\\[rmail-summary]      Show headers buffer, with a one line summary of each 
message.
-\\[rmail-summary-by-labels]    Summarize only messages with particular 
label(s).
-\\[rmail-summary-by-recipients]   Summarize only messages with particular 
recipient(s).
-\\[rmail-summary-by-regexp]   Summarize only messages with particular 
regexp(s).
-\\[rmail-summary-by-topic]   Summarize only messages with subject line 
regexp(s).
-\\[rmail-toggle-header]        Toggle display of complete header.
-
-\(fn)" t nil)
-
-(autoload 'rmail-input "rmail" "\
-Run Rmail on file FILENAME.
-
-\(fn FILENAME)" t nil)
-
-(autoload 'rmail-set-remote-password "rmail" "\
-Set PASSWORD to be used for retrieving mail from a POP or IMAP server.
-
-\(fn PASSWORD)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rmail" '("rmail-" "mail-")))
-
-;;;***
-
-;;;### (autoloads nil "rmail-spam-filter" "mail/rmail-spam-filter.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from mail/rmail-spam-filter.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rmail-spam-filter" '("rmail-" "rsf-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "rmailedit" 
"mail/rmailedit.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from mail/rmailedit.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rmailedit" '("rmail-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "rmailkwd" 
"mail/rmailkwd.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from mail/rmailkwd.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rmailkwd" '("rmail-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "rmailmm" "mail/rmailmm.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from mail/rmailmm.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rmailmm" '("rmail-")))
-
-;;;***
-
-;;;### (autoloads nil "rmailout" "mail/rmailout.el" (0 0 0 0))
-;;; Generated autoloads from mail/rmailout.el
-(put 'rmail-output-file-alist 'risky-local-variable t)
-
-(autoload 'rmail-output "rmailout" "\
-Append this message to mail file FILE-NAME.
-Writes mbox format, unless FILE-NAME exists and is Babyl format, in which
-case it writes Babyl.
-
-Interactively, the default file name comes from `rmail-default-file',
-which is updated to the name you use in this command.  In all uses, if
-FILE-NAME is not absolute, it is expanded with the directory part of
-`rmail-default-file'.
-
-If a buffer is visiting FILE-NAME, adds the text to that buffer
-rather than saving the file directly.  If the buffer is an Rmail
-buffer, updates it accordingly.
-
-This command always outputs the complete message header, even if
-the header display is currently pruned.
-
-Optional prefix argument COUNT (default 1) says to output that
-many consecutive messages, starting with the current one (ignoring
-deleted messages).  If `rmail-delete-after-output' is non-nil, deletes
-messages after output.
-
-The optional third argument NOATTRIBUTE, if non-nil, says not to
-set the `filed' attribute, and not to display a \"Wrote file\"
-message (if writing a file directly).
-
-Set the optional fourth argument NOT-RMAIL non-nil if you call this
-from a non-Rmail buffer.  In this case, COUNT is ignored.
-
-\(fn FILE-NAME &optional COUNT NOATTRIBUTE NOT-RMAIL)" t nil)
-
-(autoload 'rmail-output-as-seen "rmailout" "\
-Append this message to mbox file named FILE-NAME.
-The details are as for `rmail-output', except that:
-  i) the header is output as currently seen
- ii) this function cannot write to Babyl files
-iii) an Rmail buffer cannot be visiting FILE-NAME
-
-Note that if NOT-RMAIL is non-nil, there is no difference between this
-function and `rmail-output'.  This argument may be removed in future,
-so you should call `rmail-output' directly in that case.
-
-\(fn FILE-NAME &optional COUNT NOATTRIBUTE NOT-RMAIL)" t nil)
-
-(autoload 'rmail-output-body-to-file "rmailout" "\
-Write this message body to the file FILE-NAME.
-Interactively, the default file name comes from either the message
-\"Subject\" header, or from `rmail-default-body-file'.  Updates the value
-of `rmail-default-body-file' accordingly.  In all uses, if FILE-NAME
-is not absolute, it is expanded with the directory part of
-`rmail-default-body-file'.
-
-Note that this overwrites FILE-NAME (after confirmation), rather
-than appending to it.  Deletes the message after writing if
-`rmail-delete-after-output' is non-nil.
-
-\(fn FILE-NAME)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rmailout" '("rmail-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "rmailsort" 
"mail/rmailsort.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from mail/rmailsort.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rmailsort" '("rmail-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "rmailsum" 
"mail/rmailsum.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from mail/rmailsum.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rmailsum" '("rmail-")))
-
-;;;***
-
-;;;### (autoloads nil "rng-cmpct" "nxml/rng-cmpct.el" (0 0 0 0))
-;;; Generated autoloads from nxml/rng-cmpct.el
-
-(autoload 'rng-c-load-schema "rng-cmpct" "\
-Load a schema in RELAX NG compact syntax from FILENAME.
-Return a pattern.
-
-\(fn FILENAME)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rng-cmpct" '("rng-")))
-
-;;;***
-
-;;;### (autoloads nil "rng-dt" "nxml/rng-dt.el" (0 0 0 0))
-;;; Generated autoloads from nxml/rng-dt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rng-dt" '("rng-dt-")))
-
-;;;***
-
-;;;### (autoloads nil "rng-loc" "nxml/rng-loc.el" (0 0 0 0))
-;;; Generated autoloads from nxml/rng-loc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rng-loc" '("rng-")))
-
-;;;***
-
-;;;### (autoloads nil "rng-maint" "nxml/rng-maint.el" (0 0 0 0))
-;;; Generated autoloads from nxml/rng-maint.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rng-maint" '("rng-")))
-
-;;;***
-
-;;;### (autoloads nil "rng-match" "nxml/rng-match.el" (0 0 0 0))
-;;; Generated autoloads from nxml/rng-match.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rng-match" '("rng-")))
-
-;;;***
-
-;;;### (autoloads nil "rng-nxml" "nxml/rng-nxml.el" (0 0 0 0))
-;;; Generated autoloads from nxml/rng-nxml.el
-
-(autoload 'rng-nxml-mode-init "rng-nxml" "\
-Initialize `nxml-mode' to take advantage of `rng-validate-mode'.
-This is typically called from `nxml-mode-hook'.
-Validation will be enabled if `rng-nxml-auto-validate-flag' is non-nil.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rng-nxml" '("rng-")))
-
-;;;***
-
-;;;### (autoloads nil "rng-parse" "nxml/rng-parse.el" (0 0 0 0))
-;;; Generated autoloads from nxml/rng-parse.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rng-parse" '("rng-parse-")))
-
-;;;***
-
-;;;### (autoloads nil "rng-pttrn" "nxml/rng-pttrn.el" (0 0 0 0))
-;;; Generated autoloads from nxml/rng-pttrn.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rng-pttrn" '("rng-")))
-
-;;;***
-
-;;;### (autoloads nil "rng-uri" "nxml/rng-uri.el" (0 0 0 0))
-;;; Generated autoloads from nxml/rng-uri.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rng-uri" '("rng-")))
-
-;;;***
-
-;;;### (autoloads nil "rng-util" "nxml/rng-util.el" (0 0 0 0))
-;;; Generated autoloads from nxml/rng-util.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rng-util" '("rng-")))
-
-;;;***
-
-;;;### (autoloads nil "rng-valid" "nxml/rng-valid.el" (0 0 0 0))
-;;; Generated autoloads from nxml/rng-valid.el
-
-(autoload 'rng-validate-mode "rng-valid" "\
-Minor mode performing continual validation against a RELAX NG schema.
-
-Checks whether the buffer is a well-formed XML 1.0 document,
-conforming to the XML Namespaces Recommendation and valid against a
-RELAX NG schema.  The mode-line indicates whether it is or not.  Any
-parts of the buffer that cause it not to be are considered errors and
-are highlighted with face `rng-error'.  A description of each error is
-available as a tooltip.  \\[rng-next-error] goes to the next error
-after point.  Clicking mouse-1 on the word `Invalid' in the mode-line
-goes to the first error in the buffer.  If the buffer changes, then it
-will be automatically rechecked when Emacs becomes idle; the
-rechecking will be paused whenever there is input pending.
-
-By default, uses a vacuous schema that allows any well-formed XML
-document.  A schema can be specified explicitly using
-\\[rng-set-schema-file-and-validate], or implicitly based on the buffer's
-file name or on the root element name.  In each case the schema must
-be a RELAX NG schema using the compact schema (such schemas
-conventionally have a suffix of `.rnc').  The variable
-`rng-schema-locating-files' specifies files containing rules
-to use for finding the schema.
-
-\(fn &optional ARG NO-CHANGE-SCHEMA)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rng-valid" '("rng-")))
-
-;;;***
-
-;;;### (autoloads nil "rng-xsd" "nxml/rng-xsd.el" (0 0 0 0))
-;;; Generated autoloads from nxml/rng-xsd.el
-
-(put 'http://www\.w3\.org/2001/XMLSchema-datatypes 'rng-dt-compile 
#'rng-xsd-compile)
-
-(autoload 'rng-xsd-compile "rng-xsd" "\
-Provides W3C XML Schema as a RELAX NG datatypes library.
-NAME is a symbol giving the local name of the datatype.  PARAMS is a
-list of pairs (PARAM-NAME . PARAM-VALUE) where PARAM-NAME is a symbol
-giving the name of the parameter and PARAM-VALUE is a string giving
-its value.  If NAME or PARAMS are invalid, it calls `rng-dt-error'
-passing it arguments in the same style as format; the value from
-`rng-dt-error' will be returned.  Otherwise, it returns a list.  The
-first member of the list is t if any string is a legal value for the
-datatype and nil otherwise.  The second argument is a symbol; this
-symbol will be called as a function passing it a string followed by
-the remaining members of the list.  The function must return an object
-representing the value of the datatype that was represented by the
-string, or nil if the string is not a representation of any value.
-The object returned can be any convenient non-nil value, provided
-that, if two strings represent the same value, the returned objects
-must be equal.
-
-\(fn NAME PARAMS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rng-xsd" '("rng-xsd-" "xsd-duration-reference-dates")))
-
-;;;***
-
-;;;### (autoloads nil "robin" "international/robin.el" (0 0 0 0))
-;;; Generated autoloads from international/robin.el
-
-(autoload 'robin-define-package "robin" "\
-Define a robin package.
-
-NAME is the string of this robin package.
-DOCSTRING is the documentation string of this robin package.
-Each RULE is of the form (INPUT OUTPUT) where INPUT is a string and
-OUTPUT is either a character or a string.  RULES are not evaluated.
-
-If there already exists a robin package whose name is NAME, the new
-one replaces the old one.
-
-\(fn NAME DOCSTRING &rest RULES)" nil t)
-
-(autoload 'robin-modify-package "robin" "\
-Change a rule in an already defined robin package.
-
-NAME is the string specifying a robin package.
-INPUT is a string that specifies the input pattern.
-OUTPUT is either a character or a string to be generated.
-
-\(fn NAME INPUT OUTPUT)" nil nil)
-
-(autoload 'robin-use-package "robin" "\
-Start using robin package NAME, which is a string.
-
-\(fn NAME)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"robin" '("robin-")))
-
-;;;***
-
-;;;### (autoloads nil "rot13" "rot13.el" (0 0 0 0))
-;;; Generated autoloads from rot13.el
-
-(autoload 'rot13 "rot13" "\
-ROT13 encrypt OBJECT, a buffer or string.
-If OBJECT is a buffer, encrypt the region between START and END.
-If OBJECT is a string, encrypt it in its entirety, ignoring START
-and END, and return the encrypted string.
-
-\(fn OBJECT &optional START END)" nil nil)
-
-(autoload 'rot13-string "rot13" "\
-Return ROT13 encryption of STRING.
-
-\(fn STRING)" nil nil)
-
-(autoload 'rot13-region "rot13" "\
-ROT13 encrypt the region between START and END in current buffer.
-
-\(fn START END)" t nil)
-
-(autoload 'rot13-other-window "rot13" "\
-Display current buffer in ROT13 in another window.
-The text itself is not modified, only the way it is displayed is affected.
-
-To terminate the ROT13 display, delete that window.  As long as that window
-is not deleted, any buffer displayed in it will become instantly encoded
-in ROT13.
-
-See also `toggle-rot13-mode'.
-
-\(fn)" t nil)
-
-(autoload 'toggle-rot13-mode "rot13" "\
-Toggle the use of ROT13 encoding for the current window.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rot13" '("rot13-")))
-
-;;;***
-
-;;;### (autoloads nil "rst" "textmodes/rst.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/rst.el
- (add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode)))
-
-(autoload 'rst-mode "rst" "\
-Major mode for editing reStructuredText documents.
-\\<rst-mode-map>
-
-Turning on `rst-mode' calls the normal hooks `text-mode-hook'
-and `rst-mode-hook'.  This mode also supports font-lock
-highlighting.
-
-\\{rst-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'rst-minor-mode "rst" "\
-Toggle ReST minor mode.
-With a prefix argument ARG, enable ReST minor mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-When ReST minor mode is enabled, the ReST mode keybindings
-are installed on top of the major mode bindings.  Use this
-for modes derived from Text mode, like Mail mode.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rst" '("rst-")))
-
-;;;***
-
-;;;### (autoloads nil "rtree" "rtree.el" (0 0 0 0))
-;;; Generated autoloads from rtree.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"rtree" '("rtree-")))
-
-;;;***
-
-;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from progmodes/ruby-mode.el
-(push (purecopy '(ruby-mode 1 2)) package--builtin-versions)
-
-(autoload 'ruby-mode "ruby-mode" "\
-Major mode for editing Ruby code.
-
-\\{ruby-mode-map}
-
-\(fn)" t nil)
-
-(add-to-list 'auto-mode-alist (cons (purecopy (concat "\\(?:\\.\\(?:" 
"rbw?\\|ru\\|rake\\|thor" "\\|jbuilder\\|rabl\\|gemspec\\|podspec" "\\)" "\\|/" 
"\\(?:Gem\\|Rake\\|Cap\\|Thor" "\\|Puppet\\|Berks" 
"\\|Vagrant\\|Guard\\|Pod\\)file" "\\)\\'")) 'ruby-mode))
-
-(dolist (name (list "ruby" "rbx" "jruby" "ruby1.9" "ruby1.8")) (add-to-list 
'interpreter-mode-alist (cons (purecopy name) 'ruby-mode)))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ruby-mode" '("ruby-")))
-
-;;;***
-
-;;;### (autoloads nil "ruler-mode" "ruler-mode.el" (0 0 0 0))
-;;; Generated autoloads from ruler-mode.el
-(push (purecopy '(ruler-mode 1 6)) package--builtin-versions)
-
-(defvar ruler-mode nil "\
-Non-nil if Ruler mode is enabled.
-Use the command `ruler-mode' to change this variable.")
-
-(autoload 'ruler-mode "ruler-mode" "\
-Toggle display of ruler in header line (Ruler mode).
-With a prefix argument ARG, enable Ruler mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ruler-mode" '("ruler-")))
-
-;;;***
-
-;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/rx.el
-
-(autoload 'rx-to-string "rx" "\
-Parse and produce code for regular expression FORM.
-FORM is a regular expression in sexp form.
-NO-GROUP non-nil means don't put shy groups around the result.
-
-\(fn FORM &optional NO-GROUP)" nil nil)
-
-(autoload 'rx "rx" "\
-Translate regular expressions REGEXPS in sexp form to a regexp string.
-REGEXPS is a non-empty sequence of forms of the sort listed below.
-
-Note that `rx' is a Lisp macro; when used in a Lisp program being
-compiled, the translation is performed by the compiler.
-See `rx-to-string' for how to do such a translation at run-time.
-
-The following are valid subforms of regular expressions in sexp
-notation.
-
-STRING
-     matches string STRING literally.
-
-CHAR
-     matches character CHAR literally.
-
-`not-newline', `nonl'
-     matches any character except a newline.
-
-`anything'
-     matches any character
-
-`(any SET ...)'
-`(in SET ...)'
-`(char SET ...)'
-     matches any character in SET ....  SET may be a character or string.
-     Ranges of characters can be specified as `A-Z' in strings.
-     Ranges may also be specified as conses like `(?A . ?Z)'.
-
-     SET may also be the name of a character class: `digit',
-     `control', `hex-digit', `blank', `graph', `print', `alnum',
-     `alpha', `ascii', `nonascii', `lower', `punct', `space', `upper',
-     `word', or one of their synonyms.
-
-`(not (any SET ...))'
-     matches any character not in SET ...
-
-`line-start', `bol'
-     matches the empty string, but only at the beginning of a line
-     in the text being matched
-
-`line-end', `eol'
-     is similar to `line-start' but matches only at the end of a line
-
-`string-start', `bos', `bot'
-     matches the empty string, but only at the beginning of the
-     string being matched against.
-
-`string-end', `eos', `eot'
-     matches the empty string, but only at the end of the
-     string being matched against.
-
-`buffer-start'
-     matches the empty string, but only at the beginning of the
-     buffer being matched against.  Actually equivalent to `string-start'.
-
-`buffer-end'
-     matches the empty string, but only at the end of the
-     buffer being matched against.  Actually equivalent to `string-end'.
-
-`point'
-     matches the empty string, but only at point.
-
-`word-start', `bow'
-     matches the empty string, but only at the beginning of a word.
-
-`word-end', `eow'
-     matches the empty string, but only at the end of a word.
-
-`word-boundary'
-     matches the empty string, but only at the beginning or end of a
-     word.
-
-`(not word-boundary)'
-`not-word-boundary'
-     matches the empty string, but not at the beginning or end of a
-     word.
-
-`symbol-start'
-     matches the empty string, but only at the beginning of a symbol.
-
-`symbol-end'
-     matches the empty string, but only at the end of a symbol.
-
-`digit', `numeric', `num'
-     matches 0 through 9.
-
-`control', `cntrl'
-     matches ASCII control characters.
-
-`hex-digit', `hex', `xdigit'
-     matches 0 through 9, a through f and A through F.
-
-`blank'
-     matches space and tab only.
-
-`graphic', `graph'
-     matches graphic characters--everything except whitespace, ASCII
-     and non-ASCII control characters, surrogates, and codepoints
-     unassigned by Unicode.
-
-`printing', `print'
-     matches whitespace and graphic characters.
-
-`alphanumeric', `alnum'
-     matches alphabetic characters and digits.  (For multibyte characters,
-     it matches according to Unicode character properties.)
-
-`letter', `alphabetic', `alpha'
-     matches alphabetic characters.  (For multibyte characters,
-     it matches according to Unicode character properties.)
-
-`ascii'
-     matches ASCII (unibyte) characters.
-
-`nonascii'
-     matches non-ASCII (multibyte) characters.
-
-`lower', `lower-case'
-     matches anything lower-case.
-
-`upper', `upper-case'
-     matches anything upper-case.
-
-`punctuation', `punct'
-     matches punctuation.  (But at present, for multibyte characters,
-     it matches anything that has non-word syntax.)
-
-`space', `whitespace', `white'
-     matches anything that has whitespace syntax.
-
-`word', `wordchar'
-     matches anything that has word syntax.
-
-`not-wordchar'
-     matches anything that has non-word syntax.
-
-`(syntax SYNTAX)'
-     matches a character with syntax SYNTAX.  SYNTAX must be one
-     of the following symbols, or a symbol corresponding to the syntax
-     character, e.g. `\\.' for `\\s.'.
-
-     `whitespace'              (\\s- in string notation)
-     `punctuation'             (\\s.)
-     `word'                    (\\sw)
-     `symbol'                  (\\s_)
-     `open-parenthesis'                (\\s()
-     `close-parenthesis'       (\\s))
-     `expression-prefix'       (\\s')
-     `string-quote'            (\\s\")
-     `paired-delimiter'                (\\s$)
-     `escape'                  (\\s\\)
-     `character-quote'         (\\s/)
-     `comment-start'           (\\s<)
-     `comment-end'             (\\s>)
-     `string-delimiter'                (\\s|)
-     `comment-delimiter'       (\\s!)
-
-`(not (syntax SYNTAX))'
-     matches a character that doesn't have syntax SYNTAX.
-
-`(category CATEGORY)'
-     matches a character with category CATEGORY.  CATEGORY must be
-     either a character to use for C, or one of the following symbols.
-
-     `consonant'                       (\\c0 in string notation)
-     `base-vowel'                      (\\c1)
-     `upper-diacritical-mark'          (\\c2)
-     `lower-diacritical-mark'          (\\c3)
-     `tone-mark'                       (\\c4)
-     `symbol'                          (\\c5)
-     `digit'                           (\\c6)
-     `vowel-modifying-diacritical-mark'        (\\c7)
-     `vowel-sign'                      (\\c8)
-     `semivowel-lower'                 (\\c9)
-     `not-at-end-of-line'              (\\c<)
-     `not-at-beginning-of-line'                (\\c>)
-     `alpha-numeric-two-byte'          (\\cA)
-     `chinese-two-byte'                        (\\cC)
-     `greek-two-byte'                  (\\cG)
-     `japanese-hiragana-two-byte'      (\\cH)
-     `indian-tow-byte'                 (\\cI)
-     `japanese-katakana-two-byte'      (\\cK)
-     `korean-hangul-two-byte'          (\\cN)
-     `cyrillic-two-byte'               (\\cY)
-     `combining-diacritic'             (\\c^)
-     `ascii'                           (\\ca)
-     `arabic'                          (\\cb)
-     `chinese'                         (\\cc)
-     `ethiopic'                                (\\ce)
-     `greek'                           (\\cg)
-     `korean'                          (\\ch)
-     `indian'                          (\\ci)
-     `japanese'                                (\\cj)
-     `japanese-katakana'               (\\ck)
-     `latin'                           (\\cl)
-     `lao'                             (\\co)
-     `tibetan'                         (\\cq)
-     `japanese-roman'                  (\\cr)
-     `thai'                            (\\ct)
-     `vietnamese'                      (\\cv)
-     `hebrew'                          (\\cw)
-     `cyrillic'                                (\\cy)
-     `can-break'                       (\\c|)
-
-`(not (category CATEGORY))'
-     matches a character that doesn't have category CATEGORY.
-
-`(and SEXP1 SEXP2 ...)'
-`(: SEXP1 SEXP2 ...)'
-`(seq SEXP1 SEXP2 ...)'
-`(sequence SEXP1 SEXP2 ...)'
-     matches what SEXP1 matches, followed by what SEXP2 matches, etc.
-
-`(submatch SEXP1 SEXP2 ...)'
-`(group SEXP1 SEXP2 ...)'
-     like `and', but makes the match accessible with `match-end',
-     `match-beginning', and `match-string'.
-
-`(submatch-n N SEXP1 SEXP2 ...)'
-`(group-n N SEXP1 SEXP2 ...)'
-     like `group', but make it an explicitly-numbered group with
-     group number N.
-
-`(or SEXP1 SEXP2 ...)'
-`(| SEXP1 SEXP2 ...)'
-     matches anything that matches SEXP1 or SEXP2, etc.  If all
-     args are strings, use `regexp-opt' to optimize the resulting
-     regular expression.
-
-`(minimal-match SEXP)'
-     produce a non-greedy regexp for SEXP.  Normally, regexps matching
-     zero or more occurrences of something are \"greedy\" in that they
-     match as much as they can, as long as the overall regexp can
-     still match.  A non-greedy regexp matches as little as possible.
-
-`(maximal-match SEXP)'
-     produce a greedy regexp for SEXP.  This is the default.
-
-Below, `SEXP ...' represents a sequence of regexp forms, treated as if
-enclosed in `(and ...)'.
-
-`(zero-or-more SEXP ...)'
-`(0+ SEXP ...)'
-     matches zero or more occurrences of what SEXP ... matches.
-
-`(* SEXP ...)'
-     like `zero-or-more', but always produces a greedy regexp, independent
-     of `rx-greedy-flag'.
-
-`(*? SEXP ...)'
-     like `zero-or-more', but always produces a non-greedy regexp,
-     independent of `rx-greedy-flag'.
-
-`(one-or-more SEXP ...)'
-`(1+ SEXP ...)'
-     matches one or more occurrences of SEXP ...
-
-`(+ SEXP ...)'
-     like `one-or-more', but always produces a greedy regexp.
-
-`(+? SEXP ...)'
-     like `one-or-more', but always produces a non-greedy regexp.
-
-`(zero-or-one SEXP ...)'
-`(optional SEXP ...)'
-`(opt SEXP ...)'
-     matches zero or one occurrences of A.
-
-`(? SEXP ...)'
-     like `zero-or-one', but always produces a greedy regexp.
-
-`(?? SEXP ...)'
-     like `zero-or-one', but always produces a non-greedy regexp.
-
-`(repeat N SEXP)'
-`(= N SEXP ...)'
-     matches N occurrences.
-
-`(>= N SEXP ...)'
-     matches N or more occurrences.
-
-`(repeat N M SEXP)'
-`(** N M SEXP ...)'
-     matches N to M occurrences.
-
-`(backref N)'
-     matches what was matched previously by submatch N.
-
-`(eval FORM)'
-     evaluate FORM and insert result.  If result is a string,
-     `regexp-quote' it.
-
-`(regexp REGEXP)'
-     include REGEXP in string notation in the result.
-
-\(fn &rest REGEXPS)" nil t)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "rx" 
'("rx-")))
-
-;;;***
-
-;;;### (autoloads nil "sasl" "net/sasl.el" (0 0 0 0))
-;;; Generated autoloads from net/sasl.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sasl" '("sasl-")))
-
-;;;***
-
-;;;### (autoloads nil "sasl-cram" "net/sasl-cram.el" (0 0 0 0))
-;;; Generated autoloads from net/sasl-cram.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sasl-cram" '("sasl-cram-md5-")))
-
-;;;***
-
-;;;### (autoloads nil "sasl-digest" "net/sasl-digest.el" (0 0 0 0))
-;;; Generated autoloads from net/sasl-digest.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sasl-digest" '("sasl-digest-md5-")))
-
-;;;***
-
-;;;### (autoloads nil "sasl-ntlm" "net/sasl-ntlm.el" (0 0 0 0))
-;;; Generated autoloads from net/sasl-ntlm.el
-(push (purecopy '(sasl 1 0)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sasl-ntlm" '("sasl-ntlm-")))
-
-;;;***
-
-;;;### (autoloads nil "sasl-scram-rfc" "net/sasl-scram-rfc.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from net/sasl-scram-rfc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sasl-scram-rfc" '("sasl-scram-")))
-
-;;;***
-
-;;;### (autoloads nil "savehist" "savehist.el" (0 0 0 0))
-;;; Generated autoloads from savehist.el
-(push (purecopy '(savehist 24)) package--builtin-versions)
-
-(defvar savehist-mode nil "\
-Non-nil if Savehist mode is enabled.
-See the `savehist-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `savehist-mode'.")
-
-(custom-autoload 'savehist-mode "savehist" nil)
-
-(autoload 'savehist-mode "savehist" "\
-Toggle saving of minibuffer history (Savehist mode).
-With a prefix argument ARG, enable Savehist mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-When Savehist mode is enabled, minibuffer history is saved
-periodically and when exiting Emacs.  When Savehist mode is
-enabled for the first time in an Emacs session, it loads the
-previous minibuffer history from `savehist-file'.
-
-This mode should normally be turned on from your Emacs init file.
-Calling it at any other time replaces your current minibuffer
-histories, which is probably undesirable.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"savehist" '("savehist-")))
-
-;;;***
-
-;;;### (autoloads nil "saveplace" "saveplace.el" (0 0 0 0))
-;;; Generated autoloads from saveplace.el
-
-(defvar save-place-mode nil "\
-Non-nil if Save-Place mode is enabled.
-See the `save-place-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `save-place-mode'.")
-
-(custom-autoload 'save-place-mode "saveplace" nil)
-
-(autoload 'save-place-mode "saveplace" "\
-Non-nil means automatically save place in each file.
-This means when you visit a file, point goes to the last place
-where it was when you previously visited the same file.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'save-place-local-mode "saveplace" "\
-Toggle whether to save your place in this file between sessions.
-If this mode is enabled, point is recorded when you kill the buffer
-or exit Emacs.  Visiting this file again will go to that position,
-even in a later Emacs session.
-
-If called with a prefix arg, the mode is enabled if and only if
-the argument is positive.
-
-To save places automatically in all files, put this in your init
-file:
-
-\(save-place-mode 1)
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"saveplace" '("save-place" "load-save-place-alist-from-file")))
-
-;;;***
-
-;;;### (autoloads nil "sb-image" "sb-image.el" (0 0 0 0))
-;;; Generated autoloads from sb-image.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sb-image" '("speedbar-" "defimage-speedbar")))
-
-;;;***
-
-;;;### (autoloads nil "scheme" "progmodes/scheme.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/scheme.el
-
-(autoload 'scheme-mode "scheme" "\
-Major mode for editing Scheme code.
-Editing commands are similar to those of `lisp-mode'.
-
-In addition, if an inferior Scheme process is running, some additional
-commands will be defined, for evaluating expressions and controlling
-the interpreter, and the state of the process will be displayed in the
-mode line of all Scheme buffers.  The names of commands that interact
-with the Scheme process start with \"xscheme-\" if you use the MIT
-Scheme-specific `xscheme' package; for more information see the
-documentation for `xscheme-interaction-mode'.  Use \\[run-scheme] to
-start an inferior Scheme using the more general `cmuscheme' package.
-
-Commands:
-Delete converts tabs to spaces as it moves back.
-Blank lines separate paragraphs.  Semicolons start comments.
-\\{scheme-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'dsssl-mode "scheme" "\
-Major mode for editing DSSSL code.
-Editing commands are similar to those of `lisp-mode'.
-
-Commands:
-Delete converts tabs to spaces as it moves back.
-Blank lines separate paragraphs.  Semicolons start comments.
-\\{scheme-mode-map}
-Entering this mode runs the hooks `scheme-mode-hook' and then
-`dsssl-mode-hook' and inserts the value of `dsssl-sgml-declaration' if
-that variable's value is a string.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"scheme" '("scheme-" "dsssl-")))
-
-;;;***
-
-;;;### (autoloads nil "score-mode" "gnus/score-mode.el" (0 0 0 0))
-;;; Generated autoloads from gnus/score-mode.el
-
-(autoload 'gnus-score-mode "score-mode" "\
-Mode for editing Gnus score files.
-This mode is an extended emacs-lisp mode.
-
-\\{gnus-score-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"score-mode" '("gnus-score-" "score-mode-")))
-
-;;;***
-
-;;;### (autoloads nil "scroll-all" "scroll-all.el" (0 0 0 0))
-;;; Generated autoloads from scroll-all.el
-
-(defvar scroll-all-mode nil "\
-Non-nil if Scroll-All mode is enabled.
-See the `scroll-all-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `scroll-all-mode'.")
-
-(custom-autoload 'scroll-all-mode "scroll-all" nil)
-
-(autoload 'scroll-all-mode "scroll-all" "\
-Toggle shared scrolling in same-frame windows (Scroll-All mode).
-With a prefix argument ARG, enable Scroll-All mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-When Scroll-All mode is enabled, scrolling commands invoked in
-one window apply to all visible windows in the same frame.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"scroll-all" '("scroll-all-")))
-
-;;;***
-
-;;;### (autoloads nil "scroll-bar" "scroll-bar.el" (0 0 0 0))
-;;; Generated autoloads from scroll-bar.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"scroll-bar" '("set-scroll-bar-mode" "scroll-bar-" "toggle-" 
"horizontal-scroll-bar" "get-scroll-bar-mode" "previous-scroll-bar-mode")))
-
-;;;***
-
-;;;### (autoloads nil "scroll-lock" "scroll-lock.el" (0 0 0 0))
-;;; Generated autoloads from scroll-lock.el
-
-(autoload 'scroll-lock-mode "scroll-lock" "\
-Buffer-local minor mode for pager-like scrolling.
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.  When enabled, keys that normally move
-point by line or paragraph will scroll the buffer by the
-respective amount of lines instead and point will be kept
-vertically fixed relative to window boundaries during scrolling.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"scroll-lock" '("scroll-lock-")))
-
-;;;***
-
-;;;### (autoloads nil "secrets" "net/secrets.el" (0 0 0 0))
-;;; Generated autoloads from net/secrets.el
-(when (featurep 'dbusbind)
- (autoload 'secrets-show-secrets "secrets" nil t))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"secrets" '("secrets-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic" "cedet/semantic.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic.el
-(push (purecopy '(semantic 2 2)) package--builtin-versions)
-
-(defvar semantic-default-submodes '(global-semantic-idle-scheduler-mode 
global-semanticdb-minor-mode) "\
-List of auxiliary Semantic minor modes enabled by `semantic-mode'.
-The possible elements of this list include the following:
-
- `global-semanticdb-minor-mode'        - Maintain tag database.
- `global-semantic-idle-scheduler-mode' - Reparse buffer when idle.
- `global-semantic-idle-summary-mode'   - Show summary of tag at point.
- `global-semantic-idle-completions-mode' - Show completions when idle.
- `global-semantic-decoration-mode'     - Additional tag decorations.
- `global-semantic-highlight-func-mode' - Highlight the current tag.
- `global-semantic-stickyfunc-mode'     - Show current fun in header line.
- `global-semantic-mru-bookmark-mode'   - Provide `switch-to-buffer'-like
-                                         keybinding for tag names.
- `global-cedet-m3-minor-mode'          - A mouse 3 context menu.
- `global-semantic-idle-local-symbol-highlight-mode' - Highlight references
-                                         of the symbol under point.
-The following modes are more targeted at people who want to see
- some internal information of the semantic parser in action:
- `global-semantic-highlight-edits-mode' - Visualize incremental parser by
-                                         highlighting not-yet parsed changes.
- `global-semantic-show-unmatched-syntax-mode' - Highlight unmatched lexical
-                                         syntax tokens.
- `global-semantic-show-parser-state-mode' - Display the parser cache state.")
-
-(custom-autoload 'semantic-default-submodes "semantic" t)
-
-(defvar semantic-mode nil "\
-Non-nil if Semantic mode is enabled.
-See the `semantic-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `semantic-mode'.")
-
-(custom-autoload 'semantic-mode "semantic" nil)
-
-(autoload 'semantic-mode "semantic" "\
-Toggle parser features (Semantic mode).
-With a prefix argument ARG, enable Semantic mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-Semantic mode if ARG is omitted or nil.
-
-In Semantic mode, Emacs parses the buffers you visit for their
-semantic content.  This information is used by a variety of
-auxiliary minor modes, listed in `semantic-default-submodes';
-all the minor modes in this list are also enabled when you enable
-Semantic mode.
-
-\\{semantic-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic" '("semantic-" "bovinate")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/analyze"
-;;;;;;  "cedet/semantic/analyze.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/analyze.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/analyze" '("semantic-a")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/analyze/complete"
-;;;;;;  "cedet/semantic/analyze/complete.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/analyze/complete.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/analyze/complete" '("semantic-analyze-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/analyze/debug" 
"cedet/semantic/analyze/debug.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/analyze/debug.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/analyze/debug" '("semantic-analyze")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/analyze/fcn" "cedet/semantic/analyze/fcn.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/analyze/fcn.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/analyze/fcn" '("semantic-analyze-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/analyze/refs"
-;;;;;;  "cedet/semantic/analyze/refs.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/analyze/refs.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/analyze/refs" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/bovine"
-;;;;;;  "cedet/semantic/bovine.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/bovine.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/bovine" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/bovine/c"
-;;;;;;  "cedet/semantic/bovine/c.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/bovine/c.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/bovine/c" '("semantic" "c++-mode" "c-mode")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/bovine/debug" "cedet/semantic/bovine/debug.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/bovine/debug.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/bovine/debug" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/bovine/el"
-;;;;;;  "cedet/semantic/bovine/el.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/bovine/el.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/bovine/el" '("lisp-mode" "emacs-lisp-mode" "semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/bovine/gcc"
-;;;;;;  "cedet/semantic/bovine/gcc.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/bovine/gcc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/bovine/gcc" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/bovine/grammar" 
"cedet/semantic/bovine/grammar.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/bovine/grammar.el
-
-(autoload 'bovine-grammar-mode "semantic/bovine/grammar" "\
-Major mode for editing Bovine grammars.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/bovine/grammar" '("bovine-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/bovine/make"
-;;;;;;  "cedet/semantic/bovine/make.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/bovine/make.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/bovine/make" '("semantic-" "makefile-mode")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/bovine/scm"
-;;;;;;  "cedet/semantic/bovine/scm.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/bovine/scm.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/bovine/scm" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/chart" "cedet/semantic/chart.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/chart.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/chart" '("semantic-chart-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/complete"
-;;;;;;  "cedet/semantic/complete.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/complete.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/complete" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/ctxt"
-;;;;;;  "cedet/semantic/ctxt.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/ctxt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/ctxt" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/db"
-;;;;;;  "cedet/semantic/db.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/db.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/db" '("semanticdb-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/db-debug" "cedet/semantic/db-debug.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/db-debug.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/db-debug" '("semanticdb-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/db-ebrowse" "cedet/semantic/db-ebrowse.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/db-ebrowse.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/db-ebrowse" '("semanticdb-" "c++-mode")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/db-el" "cedet/semantic/db-el.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/db-el.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/db-el" '("semanticdb-" "emacs-lisp-mode")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/db-file"
-;;;;;;  "cedet/semantic/db-file.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/db-file.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/db-file" '("semanticdb-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/db-find"
-;;;;;;  "cedet/semantic/db-find.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/db-find.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/db-find" '("semanticdb-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/db-global"
-;;;;;;  "cedet/semantic/db-global.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/db-global.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/db-global" '("semanticdb-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/db-javascript" 
"cedet/semantic/db-javascript.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/db-javascript.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/db-javascript" '("semanticdb-" "javascript-mode")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/db-mode"
-;;;;;;  "cedet/semantic/db-mode.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/db-mode.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/db-mode" '("semanticdb-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/db-ref" "cedet/semantic/db-ref.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/db-ref.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/db-ref" '("semanticdb-ref-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/db-typecache"
-;;;;;;  "cedet/semantic/db-typecache.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/db-typecache.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/db-typecache" '("semanticdb-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/debug"
-;;;;;;  "cedet/semantic/debug.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/debug.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/debug" '("semantic-debug-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/decorate" "cedet/semantic/decorate.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/decorate.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/decorate" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/decorate/include"
-;;;;;;  "cedet/semantic/decorate/include.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/decorate/include.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/decorate/include" '("semantic-decoration-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/decorate/mode"
-;;;;;;  "cedet/semantic/decorate/mode.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/decorate/mode.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/decorate/mode" '("semantic-" "define-semantic-decoration-style")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/dep"
-;;;;;;  "cedet/semantic/dep.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/dep.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/dep" '("semantic-" 
"defcustom-mode-local-semantic-dependency-system-include-path")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/doc"
-;;;;;;  "cedet/semantic/doc.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/doc.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/doc" '("semantic-doc")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/ede-grammar" "cedet/semantic/ede-grammar.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/ede-grammar.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/ede-grammar" '("semantic-ede-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/edit"
-;;;;;;  "cedet/semantic/edit.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/edit.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/edit" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/find"
-;;;;;;  "cedet/semantic/find.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/find.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/find" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/format"
-;;;;;;  "cedet/semantic/format.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/format.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/format" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/fw" "cedet/semantic/fw.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from cedet/semantic/fw.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/fw" '("semantic")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/grammar" "cedet/semantic/grammar.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/grammar.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/grammar" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/grammar-wy" "cedet/semantic/grammar-wy.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/grammar-wy.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/grammar-wy" '("semantic-grammar-wy--")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/html"
-;;;;;;  "cedet/semantic/html.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/html.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/html" '("html-helper-mode" "semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/ia"
-;;;;;;  "cedet/semantic/ia.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/ia.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/ia" '("semantic-ia-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/ia-sb"
-;;;;;;  "cedet/semantic/ia-sb.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/ia-sb.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/ia-sb" '("semantic-ia-s")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/idle"
-;;;;;;  "cedet/semantic/idle.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/idle.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/idle" '("semantic-" "global-semantic-idle-summary-mode" 
"define-semantic-idle-service")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/imenu"
-;;;;;;  "cedet/semantic/imenu.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/imenu.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/imenu" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/java" "cedet/semantic/java.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from cedet/semantic/java.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/java" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/lex"
-;;;;;;  "cedet/semantic/lex.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/lex.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/lex" '("semantic-" "define-lex")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/lex-spp"
-;;;;;;  "cedet/semantic/lex-spp.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/lex-spp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/lex-spp" '("semantic-lex-" "define-lex-spp-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/mru-bookmark"
-;;;;;;  "cedet/semantic/mru-bookmark.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/mru-bookmark.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/mru-bookmark" '("semantic-" "global-semantic-mru-bookmark-mode")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/sb" "cedet/semantic/sb.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from cedet/semantic/sb.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/sb" '("semantic-sb-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/scope"
-;;;;;;  "cedet/semantic/scope.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/scope.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/scope" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/senator"
-;;;;;;  "cedet/semantic/senator.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/senator.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/senator" '("semantic-up-reference" "senator-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/sort"
-;;;;;;  "cedet/semantic/sort.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/sort.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/sort" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/symref"
-;;;;;;  "cedet/semantic/symref.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/symref.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/symref" '("semantic-symref-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/symref/cscope"
-;;;;;;  "cedet/semantic/symref/cscope.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/symref/cscope.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/symref/cscope" '("semantic-symref-cscope--line-re")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/symref/filter" 
"cedet/semantic/symref/filter.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/symref/filter.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/symref/filter" '("semantic-symref-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/symref/global"
-;;;;;;  "cedet/semantic/symref/global.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/symref/global.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/symref/global" '("semantic-symref-global--line-re")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/symref/grep"
-;;;;;;  "cedet/semantic/symref/grep.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/symref/grep.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/symref/grep" '("semantic-symref-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/symref/idutils"
-;;;;;;  "cedet/semantic/symref/idutils.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/symref/idutils.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/symref/idutils" '("semantic-symref-idutils--line-re")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/symref/list"
-;;;;;;  "cedet/semantic/symref/list.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/symref/list.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/symref/list" '("semantic-symref-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/tag"
-;;;;;;  "cedet/semantic/tag.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/tag.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/tag" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/tag-file"
-;;;;;;  "cedet/semantic/tag-file.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/tag-file.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/tag-file" '("semantic-prototype-file")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/tag-ls"
-;;;;;;  "cedet/semantic/tag-ls.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/tag-ls.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/tag-ls" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/tag-write"
-;;;;;;  "cedet/semantic/tag-write.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/tag-write.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/tag-write" '("semantic-tag-write-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/texi"
-;;;;;;  "cedet/semantic/texi.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/texi.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/texi" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/util" "cedet/semantic/util.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from cedet/semantic/util.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/util" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/util-modes"
-;;;;;;  "cedet/semantic/util-modes.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/util-modes.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/util-modes" '("semantic-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/wisent" "cedet/semantic/wisent.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/wisent.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/wisent" '("wisent-" "define-wisent-lexer")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/wisent/comp" "cedet/semantic/wisent/comp.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/wisent/comp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/wisent/comp" '("wisent-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/wisent/grammar" 
"cedet/semantic/wisent/grammar.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/wisent/grammar.el
-
-(autoload 'wisent-grammar-mode "semantic/wisent/grammar" "\
-Major mode for editing Wisent grammars.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/wisent/grammar" '("wisent-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/wisent/java-tags"
-;;;;;;  "cedet/semantic/wisent/java-tags.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/wisent/java-tags.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/wisent/java-tags" '("semantic-" "wisent-java-parse-error")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/wisent/javascript"
-;;;;;;  "cedet/semantic/wisent/javascript.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/wisent/javascript.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/wisent/javascript" '("js-mode" "semantic-" 
"wisent-javascript-jv-expand-tag")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "semantic/wisent/python"
-;;;;;;  "cedet/semantic/wisent/python.el" (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/wisent/python.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/wisent/python" '("wisent-python-" "semantic-" "python-")))
-
-;;;***
-
-;;;### (autoloads nil "semantic/wisent/wisent" 
"cedet/semantic/wisent/wisent.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/semantic/wisent/wisent.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"semantic/wisent/wisent" '("wisent-" "$region" "$nterm" "$action")))
-
-;;;***
-
-;;;### (autoloads nil "sendmail" "mail/sendmail.el" (0 0 0 0))
-;;; Generated autoloads from mail/sendmail.el
-
-(defvar mail-from-style 'default "\
-Specifies how \"From:\" fields look.
-
-If nil, they contain just the return address like:
-       address@hidden
-If `parens', they look like:
-       address@hidden (Elvis Parsley)
-If `angles', they look like:
-       Elvis Parsley <address@hidden>
-
-Otherwise, most addresses look like `angles', but they look like
-`parens' if `angles' would need quoting and `parens' would not.")
-
-(custom-autoload 'mail-from-style "sendmail" t)
-
-(defvar mail-specify-envelope-from nil "\
-If non-nil, specify the envelope-from address when sending mail.
-The value used to specify it is whatever is found in
-the variable `mail-envelope-from', with `user-mail-address' as fallback.
-
-On most systems, specifying the envelope-from address is a
-privileged operation.  This variable affects sendmail and
-smtpmail -- if you use feedmail to send mail, see instead the
-variable `feedmail-deduce-envelope-from'.")
-
-(custom-autoload 'mail-specify-envelope-from "sendmail" t)
-
-(defvar mail-self-blind nil "\
-Non-nil means insert BCC to self in messages to be sent.
-This is done when the message is initialized,
-so you can remove or alter the BCC field to override the default.")
-
-(custom-autoload 'mail-self-blind "sendmail" t)
-
-(defvar mail-interactive t "\
-Non-nil means when sending a message wait for and display errors.
-Otherwise, let mailer send back a message to report errors.")
-
-(custom-autoload 'mail-interactive "sendmail" t)
-
-(defvar send-mail-function (if (and (boundp 'smtpmail-smtp-server) 
smtpmail-smtp-server) 'smtpmail-send-it 'sendmail-query-once) "\
-Function to call to send the current buffer as mail.
-The headers should be delimited by a line which is
-not a valid RFC822 header or continuation line,
-that matches the variable `mail-header-separator'.
-This is used by the default mail-sending commands.  See also
-`message-send-mail-function' for use with the Message package.")
-
-(custom-autoload 'send-mail-function "sendmail" t)
-
-(defvar mail-header-separator (purecopy "--text follows this line--") "\
-Line used to separate headers from text in messages being composed.")
-
-(custom-autoload 'mail-header-separator "sendmail" t)
-
-(defvar mail-archive-file-name nil "\
-Name of file to write all outgoing messages in, or nil for none.
-This is normally an mbox file, but for backwards compatibility may also
-be a Babyl file.")
-
-(custom-autoload 'mail-archive-file-name "sendmail" t)
-
-(defvar mail-default-reply-to nil "\
-Address to insert as default Reply-to field of outgoing messages.
-If nil, it will be initialized from the REPLYTO environment variable
-when you first send mail.")
-
-(custom-autoload 'mail-default-reply-to "sendmail" t)
-
-(defvar mail-personal-alias-file (purecopy "~/.mailrc") "\
-If non-nil, the name of the user's personal mail alias file.
-This file typically should be in same format as the `.mailrc' file used by
-the `Mail' or `mailx' program.
-This file need not actually exist.")
-
-(custom-autoload 'mail-personal-alias-file "sendmail" t)
-
-(defvar mail-setup-hook nil "\
-Normal hook, run each time a new outgoing message is initialized.")
-
-(custom-autoload 'mail-setup-hook "sendmail" t)
-
-(defvar mail-aliases t "\
-Alist of mail address aliases,
-or t meaning should be initialized from your mail aliases file.
-\(The file's name is normally `~/.mailrc', but `mail-personal-alias-file'
-can specify a different file name.)
-The alias definitions in the file have this form:
-    alias ALIAS MEANING")
-
-(defvar mail-yank-prefix "> " "\
-Prefix insert on lines of yanked message being replied to.
-If this is nil, use indentation, as specified by `mail-indentation-spaces'.")
-
-(custom-autoload 'mail-yank-prefix "sendmail" t)
-
-(defvar mail-indentation-spaces 3 "\
-Number of spaces to insert at the beginning of each cited line.
-Used by `mail-yank-original' via `mail-indent-citation'.")
-
-(custom-autoload 'mail-indentation-spaces "sendmail" t)
-
-(defvar mail-citation-hook nil "\
-Hook for modifying a citation just inserted in the mail buffer.
-Each hook function can find the citation between (point) and (mark t),
-and should leave point and mark around the citation text as modified.
-The hook functions can find the header of the cited message
-in the variable `mail-citation-header', whether or not this is included
-in the cited portion of the message.
-
-If this hook is entirely empty (nil), a default action is taken
-instead of no action.")
-
-(custom-autoload 'mail-citation-hook "sendmail" t)
-
-(defvar mail-citation-prefix-regexp (purecopy "\\([    
]*\\(\\w\\|[_.]\\)+>+\\|[       ]*[]>|]\\)+") "\
-Regular expression to match a citation prefix plus whitespace.
-It should match whatever sort of citation prefixes you want to handle,
-with whitespace before and after; it should also match just whitespace.
-The default value matches citations like `foo-bar>' plus whitespace.")
-
-(custom-autoload 'mail-citation-prefix-regexp "sendmail" t)
-
-(defvar mail-signature t "\
-Text inserted at end of mail buffer when a message is initialized.
-If t, it means to insert the contents of the file `mail-signature-file'.
-If a string, that string is inserted.
- (To make a proper signature, the string should begin with \\n\\n-- \\n,
-  which is the standard way to delimit a signature in a message.)
-Otherwise, it should be an expression; it is evaluated
-and should insert whatever you want to insert.")
-
-(custom-autoload 'mail-signature "sendmail" t)
-
-(defvar mail-signature-file (purecopy "~/.signature") "\
-File containing the text inserted at end of mail buffer.")
-
-(custom-autoload 'mail-signature-file "sendmail" t)
-
-(defvar mail-default-directory (purecopy "~/") "\
-Value of `default-directory' for Mail mode buffers.
-This directory is used for auto-save files of Mail mode buffers.
-
-Note that Message mode does not use this variable; it auto-saves
-in `message-auto-save-directory'.")
-
-(custom-autoload 'mail-default-directory "sendmail" t)
-
-(defvar mail-default-headers nil "\
-A string containing header lines, to be inserted in outgoing messages.
-It can contain newlines, and should end in one.  It is inserted
-before you edit the message, so you can edit or delete the lines.")
-
-(custom-autoload 'mail-default-headers "sendmail" t)
-
-(autoload 'sendmail-query-once "sendmail" "\
-Query for `send-mail-function' and send mail with it.
-This also saves the value of `send-mail-function' via Customize.
-
-\(fn)" nil nil)
-
-(define-mail-user-agent 'sendmail-user-agent 'sendmail-user-agent-compose 
'mail-send-and-exit)
-
-(autoload 'sendmail-user-agent-compose "sendmail" "\
-
-
-\(fn &optional TO SUBJECT OTHER-HEADERS CONTINUE SWITCH-FUNCTION YANK-ACTION 
SEND-ACTIONS RETURN-ACTION &rest IGNORED)" nil nil)
-
-(autoload 'mail-mode "sendmail" "\
-Major mode for editing mail to be sent.
-Like Text Mode but with these additional commands:
-
-\\[mail-send]  mail-send (send the message)
-\\[mail-send-and-exit]  mail-send-and-exit (send the message and exit)
-
-Here are commands that move to a header field (and create it if there isn't):
-        \\[mail-to]  move to To:       \\[mail-subject]  move to Subj:
-        \\[mail-bcc]  move to BCC:     \\[mail-cc]  move to CC:
-        \\[mail-fcc]  move to FCC:     \\[mail-reply-to] move to Reply-To:
-         \\[mail-mail-reply-to]  move to Mail-Reply-To:
-         \\[mail-mail-followup-to] move to Mail-Followup-To:
-\\[mail-text]  move to message text.
-\\[mail-signature]  mail-signature (insert `mail-signature-file' file).
-\\[mail-yank-original]  mail-yank-original (insert current message, in Rmail).
-\\[mail-fill-yanked-message]  mail-fill-yanked-message (fill what was yanked).
-\\[mail-insert-file] insert a text file into the message.
-\\[mail-add-attachment] attach to the message a file as binary attachment.
-Turning on Mail mode runs the normal hooks `text-mode-hook' and
-`mail-mode-hook' (in that order).
-
-\(fn)" t nil)
-
-(defvar mail-mailing-lists nil "\
-List of mailing list addresses the user is subscribed to.
-The variable is used to trigger insertion of the \"Mail-Followup-To\"
-header when sending a message to a mailing list.")
-
-(custom-autoload 'mail-mailing-lists "sendmail" t)
-
-(defvar sendmail-coding-system nil "\
-Coding system for encoding the outgoing mail.
-This has higher priority than the default `buffer-file-coding-system'
-and `default-sendmail-coding-system',
-but lower priority than the local value of `buffer-file-coding-system'.
-See also the function `select-message-coding-system'.")
-
-(defvar default-sendmail-coding-system 'iso-latin-1 "\
-Default coding system for encoding the outgoing mail.
-This variable is used only when `sendmail-coding-system' is nil.
-
-This variable is set/changed by the command `set-language-environment'.
-User should not set this variable manually,
-instead use `sendmail-coding-system' to get a constant encoding
-of outgoing mails regardless of the current language environment.
-See also the function `select-message-coding-system'.")
-
-(autoload 'mail "sendmail" "\
-Edit a message to be sent.  Prefix arg means resume editing (don't erase).
-When this function returns, the buffer `*mail*' is selected.
-The value is t if the message was newly initialized; otherwise, nil.
-
-Optionally, the signature file `mail-signature-file' can be inserted at the
-end; see the variable `mail-signature'.
-
-\\<mail-mode-map>
-While editing message, type \\[mail-send-and-exit] to send the message and 
exit.
-
-Various special commands starting with C-c are available in sendmail mode
-to move to message header fields:
-\\{mail-mode-map}
-
-If `mail-self-blind' is non-nil, a BCC to yourself is inserted
-when the message is initialized.
-
-If `mail-default-reply-to' is non-nil, it should be an address (a string);
-a Reply-to: field with that address is inserted.
-
-If `mail-archive-file-name' is non-nil, an FCC field with that file name
-is inserted.
-
-The normal hook `mail-setup-hook' is run after the message is
-initialized.  It can add more default fields to the message.
-
-The first argument, NOERASE, determines what to do when there is
-an existing modified `*mail*' buffer.  If NOERASE is nil, the
-existing mail buffer is used, and the user is prompted whether to
-keep the old contents or to erase them.  If NOERASE has the value
-`new', a new mail buffer will be created instead of using the old
-one.  Any other non-nil value means to always select the old
-buffer without erasing the contents.
-
-The second through fifth arguments,
- TO, SUBJECT, IN-REPLY-TO and CC, specify if non-nil
- the initial contents of those header fields.
- These arguments should not have final newlines.
-The sixth argument REPLYBUFFER is a buffer which contains an
- original message being replied to, or else an action
- of the form (FUNCTION . ARGS) which says how to insert the original.
- Or it can be nil, if not replying to anything.
-The seventh argument ACTIONS is a list of actions to take
- if/when the message is sent.  Each action looks like (FUNCTION . ARGS);
- when the message is sent, we apply FUNCTION to ARGS.
- This is how Rmail arranges to mark messages `answered'.
-
-\(fn &optional NOERASE TO SUBJECT IN-REPLY-TO CC REPLYBUFFER ACTIONS 
RETURN-ACTION)" t nil)
-
-(autoload 'mail-other-window "sendmail" "\
-Like `mail' command, but display mail buffer in another window.
-
-\(fn &optional NOERASE TO SUBJECT IN-REPLY-TO CC REPLYBUFFER SENDACTIONS)" t 
nil)
-
-(autoload 'mail-other-frame "sendmail" "\
-Like `mail' command, but display mail buffer in another frame.
-
-\(fn &optional NOERASE TO SUBJECT IN-REPLY-TO CC REPLYBUFFER SENDACTIONS)" t 
nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sendmail" '("mail-" "sendmail-")))
-
-;;;***
-
-;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/seq.el
-(push (purecopy '(seq 2 19)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"seq" '("seq-")))
-
-;;;***
-
-;;;### (autoloads nil "server" "server.el" (0 0 0 0))
-;;; Generated autoloads from server.el
-
-(put 'server-host 'risky-local-variable t)
-
-(put 'server-port 'risky-local-variable t)
-
-(put 'server-auth-dir 'risky-local-variable t)
-
-(defvar server-name "server" "\
-The name of the Emacs server, if this Emacs process creates one.
-The command `server-start' makes use of this.  It should not be
-changed while a server is running.")
-
-(custom-autoload 'server-name "server" t)
-
-(autoload 'server-start "server" "\
-Allow this Emacs process to be a server for client processes.
-This starts a server communications subprocess through which client
-\"editors\" can send your editing commands to this Emacs job.
-To use the server, set up the program `emacsclient' in the Emacs
-distribution as your standard \"editor\".
-
-Optional argument LEAVE-DEAD (interactively, a prefix arg) means just
-kill any existing server communications subprocess.
-
-If a server is already running, restart it.  If clients are
-running, ask the user for confirmation first, unless optional
-argument INHIBIT-PROMPT is non-nil.
-
-To force-start a server, do \\[server-force-delete] and then
-\\[server-start].
-
-\(fn &optional LEAVE-DEAD INHIBIT-PROMPT)" t nil)
-
-(autoload 'server-force-delete "server" "\
-Unconditionally delete connection file for server NAME.
-If server is running, it is first stopped.
-NAME defaults to `server-name'.  With argument, ask for NAME.
-
-\(fn &optional NAME)" t nil)
-
-(defvar server-mode nil "\
-Non-nil if Server mode is enabled.
-See the `server-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `server-mode'.")
-
-(custom-autoload 'server-mode "server" nil)
-
-(autoload 'server-mode "server" "\
-Toggle Server mode.
-With a prefix argument ARG, enable Server mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-Server mode if ARG is omitted or nil.
-
-Server mode runs a process that accepts commands from the
-`emacsclient' program.  See Info node `Emacs server' and
-`server-start' for details.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'server-save-buffers-kill-terminal "server" "\
-Offer to save each buffer, then kill the current client.
-With ARG non-nil, silently save all file-visiting buffers, then kill.
-
-If emacsclient was started with a list of filenames to edit, then
-only these files will be asked to be saved.
-
-\(fn ARG)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"server" '("server-")))
-
-;;;***
-
-;;;### (autoloads nil "ses" "ses.el" (0 0 0 0))
-;;; Generated autoloads from ses.el
-
-(autoload 'ses-mode "ses" "\
-Major mode for Simple Emacs Spreadsheet.
-
-When you invoke SES in a new buffer, it is divided into cells
-that you can enter data into.  You can navigate the cells with
-the arrow keys and add more cells with the tab key.  The contents
-of these cells can be numbers, text, or Lisp expressions. (To
-enter text, enclose it in double quotes.)
-
-In an expression, you can use cell coordinates to refer to the
-contents of another cell.  For example, you can sum a range of
-cells with `(+ A1 A2 A3)'.  There are specialized functions like
-`ses+' (addition for ranges with empty cells), `ses-average' (for
-performing calculations on cells), and `ses-range' and `ses-select'
-\(for extracting ranges of cells).
-
-Each cell also has a print function that controls how it is
-displayed.
-
-Each SES buffer is divided into a print area and a data area.
-Normally, you can simply use SES to look at and manipulate the print
-area, and let SES manage the data area outside the visible region.
-
-See \"ses-example.ses\" (in `data-directory') for an example
-spreadsheet, and the Info node `(ses)Top.'
-
-In the following, note the separate keymaps for cell editing mode
-and print mode specifications.  Key definitions:
-
-\\{ses-mode-map}
-These key definitions are active only in the print area (the visible
-part):
-\\{ses-mode-print-map}
-These are active only in the minibuffer, when entering or editing a
-formula:
-\\{ses-mode-edit-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ses" '("ses" "noreturn" "1value")))
-
-;;;***
-
-;;;### (autoloads nil "sgml-mode" "textmodes/sgml-mode.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from textmodes/sgml-mode.el
-
-(autoload 'sgml-mode "sgml-mode" "\
-Major mode for editing SGML documents.
-Makes > match <.
-Keys <, &, SPC within <>, \", / and \\=' can be electric depending on
-`sgml-quick-keys'.
-
-An argument of N to a tag-inserting command means to wrap it around
-the next N words.  In Transient Mark mode, when the mark is active,
-N defaults to -1, which means to wrap it around the current region.
-
-If you like upcased tags, put (setq sgml-transformation-function \\='upcase)
-in your init file.
-
-Use \\[sgml-validate] to validate your document with an SGML parser.
-
-Do \\[describe-variable] sgml- SPC to see available variables.
-Do \\[describe-key] on the following bindings to discover what they do.
-\\{sgml-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'html-mode "sgml-mode" "\
-Major mode based on SGML mode for editing HTML documents.
-This allows inserting skeleton constructs used in hypertext documents with
-completion.  See below for an introduction to HTML.  Use
-\\[browse-url-of-buffer] to see how this comes out.  See also `sgml-mode' on
-which this is based.
-
-Do \\[describe-variable] html- SPC and \\[describe-variable] sgml- SPC to see 
available variables.
-
-To write fairly well formatted pages you only need to know few things.  Most
-browsers have a function to read the source code of the page being seen, so
-you can imitate various tricks.  Here's a very short HTML primer which you
-can also view with a browser to see what happens:
-
-<title>A Title Describing Contents</title> should be on every page.  Pages can
-have <h1>Very Major Headlines</h1> through <h6>Very Minor Headlines</h6>
-<hr> Parts can be separated with horizontal rules.
-
-<p>Paragraphs only need an opening tag.  Line breaks and multiple spaces are
-ignored unless the text is <pre>preformatted.</pre>  Text can be marked as
-<b>bold</b>, <i>italic</i> or <u>underlined</u> using the normal M-o or
-Edit/Text Properties/Face commands.
-
-Pages can have <a name=\"SOMENAME\">named points</a> and can link other points
-to them with <a href=\"#SOMENAME\">see also somename</a>.  In the same way <a
-href=\"URL\">see also URL</a> where URL is a filename relative to current
-directory, or absolute as in `http://www.cs.indiana.edu/elisp/w3/docs.html'.
-
-Images in many formats can be inlined with <img src=\"URL\">.
-
-If you mainly create your own documents, `sgml-specials' might be
-interesting.  But note that some HTML 2 browsers can't handle `&apos;'.
-To work around that, do:
-   (eval-after-load \"sgml-mode\" \\='(aset sgml-char-names ?\\=' nil))
-
-\\{html-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sgml-mode" '("html-" "sgml-")))
-
-;;;***
-
-;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from progmodes/sh-script.el
-(push (purecopy '(sh-script 2 0 6)) package--builtin-versions)
-(put 'sh-shell 'safe-local-variable 'symbolp)
-
-(autoload 'sh-mode "sh-script" "\
-Major mode for editing shell scripts.
-This mode works for many shells, since they all have roughly the same syntax,
-as far as commands, arguments, variables, pipes, comments etc. are concerned.
-Unless the file's magic number indicates the shell, your usual shell is
-assumed.  Since filenames rarely give a clue, they are not further analyzed.
-
-This mode adapts to the variations between shells (see `sh-set-shell') by
-means of an inheritance based feature lookup (see `sh-feature').  This
-mechanism applies to all variables (including skeletons) that pertain to
-shell-specific features.  Shell script files can use the `sh-shell' local
-variable to indicate the shell variant to be used for the file.
-
-The default style of this mode is that of Rosenblatt's Korn shell book.
-The syntax of the statements varies with the shell being used.  The
-following commands are available, based on the current shell's syntax:
-\\<sh-mode-map>
-\\[sh-case]     case statement
-\\[sh-for]      for loop
-\\[sh-function]         function definition
-\\[sh-if]       if statement
-\\[sh-indexed-loop]     indexed loop from 1 to n
-\\[sh-while-getopts]    while getopts loop
-\\[sh-repeat]   repeat loop
-\\[sh-select]   select loop
-\\[sh-until]    until loop
-\\[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
-buffer indents as it currently is indented.
-
-
-\\[backward-delete-char-untabify]       Delete backward one position, even if 
it was a tab.
-\\[sh-end-of-command]   Go to end of successive commands.
-\\[sh-beginning-of-command]     Go to beginning of successive commands.
-\\[sh-set-shell]        Set this buffer's shell, and maybe its magic number.
-\\[sh-execute-region]   Have optional header and region be executed in a 
subshell.
-
-`sh-electric-here-document-mode' controls whether insertion of two
-unquoted < insert a here document.  You can control this behavior by
-modifying `sh-mode-hook'.
-
-If you generally program a shell different from your login shell you can
-set `sh-shell-file' accordingly.  If your shell's file name doesn't correctly
-indicate what shell it is use `sh-alias-alist' to translate.
-
-If your shell gives error messages with line numbers, you can use 
\\[executable-interpret]
-with your script for an edit-interpret-debug cycle.
-
-\(fn)" t nil)
-
-(defalias 'shell-script-mode 'sh-mode)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sh-script" '("sh-")))
-
-;;;***
-
-;;;### (autoloads nil "shadow" "emacs-lisp/shadow.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/shadow.el
-
-(autoload 'list-load-path-shadows "shadow" "\
-Display a list of Emacs Lisp files that shadow other files.
-
-If STRINGP is non-nil, returns any shadows as a string.
-Otherwise, if interactive shows any shadows in a `*Shadows*' buffer;
-else prints messages listing any shadows.
-
-This function lists potential load path problems.  Directories in
-the `load-path' variable are searched, in order, for Emacs Lisp
-files.  When a previously encountered file name is found again, a
-message is displayed indicating that the later file is \"hidden\" by
-the earlier.
-
-For example, suppose `load-path' is set to
-
-\(\"/usr/share/emacs/site-lisp\" \"/usr/share/emacs/24.3/lisp\")
-
-and that each of these directories contains a file called XXX.el.  Then
-XXX.el in the site-lisp directory is referred to by all of:
-\(require \\='XXX), (autoload .... \"XXX\"), (load-library \"XXX\") etc.
-
-The first XXX.el file prevents Emacs from seeing the second (unless
-the second is loaded explicitly via `load-file').
-
-When not intended, such shadowings can be the source of subtle
-problems.  For example, the above situation may have arisen because the
-XXX package was not distributed with versions of Emacs prior to
-24.3.  A system administrator downloaded XXX from elsewhere and installed
-it.  Later, XXX was updated and included in the Emacs distribution.
-Unless the system administrator checks for this, the new version of XXX
-will be hidden behind the old (which may no longer work with the new
-Emacs version).
-
-This function performs these checks and flags all possible
-shadowings.  Because a .el file may exist without a corresponding .elc
-\(or vice-versa), these suffixes are essentially ignored.  A file
-XXX.elc in an early directory (that does not contain XXX.el) is
-considered to shadow a later file XXX.el, and vice-versa.
-
-Shadowings are located by calling the (non-interactive) companion
-function, `load-path-shadows-find'.
-
-\(fn &optional STRINGP)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"shadow" '("load-path-shadows-")))
-
-;;;***
-
-;;;### (autoloads nil "shadowfile" "shadowfile.el" (0 0 0 0))
-;;; Generated autoloads from shadowfile.el
-
-(autoload 'shadow-define-cluster "shadowfile" "\
-Edit (or create) the definition of a cluster NAME.
-This is a group of hosts that share directories, so that copying to or from
-one of them is sufficient to update the file on all of them.  Clusters are
-defined by a name, the network address of a primary host (the one we copy
-files to), and a regular expression that matches the hostnames of all the
-sites in the cluster.
-
-\(fn NAME)" t nil)
-
-(autoload 'shadow-define-literal-group "shadowfile" "\
-Declare a single file to be shared between sites.
-It may have different filenames on each site.  When this file is edited, the
-new version will be copied to each of the other locations.  Sites can be
-specific hostnames, or names of clusters (see `shadow-define-cluster').
-
-\(fn)" t nil)
-
-(autoload 'shadow-define-regexp-group "shadowfile" "\
-Make each of a group of files be shared between hosts.
-Prompts for regular expression; files matching this are shared between a list
-of sites, which are also prompted for.  The filenames must be identical on all
-hosts (if they aren't, use `shadow-define-literal-group' instead of this
-function).  Each site can be either a hostname or the name of a cluster (see
-`shadow-define-cluster').
-
-\(fn)" t nil)
-
-(autoload 'shadow-initialize "shadowfile" "\
-Set up file shadowing.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"shadowfile" '("shadow")))
-
-;;;***
-
-;;;### (autoloads nil "shell" "shell.el" (0 0 0 0))
-;;; Generated autoloads from shell.el
-
-(defvar shell-dumb-shell-regexp (purecopy "cmd\\(proxy\\)?\\.exe") "\
-Regexp to match shells that don't save their command history, and
-don't handle the backslash as a quote character.  For shells that
-match this regexp, Emacs will write out the command history when the
-shell finishes, and won't remove backslashes when it unquotes shell
-arguments.")
-
-(custom-autoload 'shell-dumb-shell-regexp "shell" t)
-
-(autoload 'shell "shell" "\
-Run an inferior shell, with I/O through BUFFER (which defaults to `*shell*').
-Interactively, a prefix arg means to prompt for BUFFER.
-If `default-directory' is a remote file name, it is also prompted
-to change if called with a prefix arg.
-
-If BUFFER exists but shell process is not running, make new shell.
-If BUFFER exists and shell process is running, just switch to BUFFER.
-Program used comes from variable `explicit-shell-file-name',
- or (if that is nil) from the ESHELL environment variable,
- or (if that is nil) from `shell-file-name'.
-If a file `~/.emacs_SHELLNAME' exists, or `~/.emacs.d/init_SHELLNAME.sh',
-it is given as initial input (but this may be lost, due to a timing
-error, if the shell discards input when it starts up).
-The buffer is put in Shell mode, giving commands for sending input
-and controlling the subjobs of the shell.  See `shell-mode'.
-See also the variable `shell-prompt-pattern'.
-
-To specify a coding system for converting non-ASCII characters
-in the input and output to the shell, use \\[universal-coding-system-argument]
-before \\[shell].  You can also specify this with 
\\[set-buffer-process-coding-system]
-in the shell buffer, after you start the shell.
-The default comes from `process-coding-system-alist' and
-`default-process-coding-system'.
-
-The shell file name (sans directories) is used to make a symbol name
-such as `explicit-csh-args'.  If that symbol is a variable,
-its value is used as a list of arguments when invoking the shell.
-Otherwise, one argument `-i' is passed to the shell.
-
-\(Type \\[describe-mode] in the shell buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"shell" '("shell-" "dirs" "explicit-")))
-
-;;;***
-
-;;;### (autoloads nil "shr" "net/shr.el" (0 0 0 0))
-;;; Generated autoloads from net/shr.el
-
-(autoload 'shr-render-region "shr" "\
-Display the HTML rendering of the region between BEGIN and END.
-
-\(fn BEGIN END &optional BUFFER)" t nil)
-
-(autoload 'shr-insert-document "shr" "\
-Render the parsed document DOM into the current buffer.
-DOM should be a parse tree as generated by
-`libxml-parse-html-region' or similar.
-
-\(fn DOM)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"shr" '("shr-")))
-
-;;;***
-
-;;;### (autoloads nil "shr-color" "net/shr-color.el" (0 0 0 0))
-;;; Generated autoloads from net/shr-color.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"shr-color" '("shr-color-")))
-
-;;;***
-
-;;;### (autoloads nil "sieve" "net/sieve.el" (0 0 0 0))
-;;; Generated autoloads from net/sieve.el
-
-(autoload 'sieve-manage "sieve" "\
-
-
-\(fn SERVER &optional PORT)" t nil)
-
-(autoload 'sieve-upload "sieve" "\
-
-
-\(fn &optional NAME)" t nil)
-
-(autoload 'sieve-upload-and-bury "sieve" "\
-
-
-\(fn &optional NAME)" t nil)
-
-(autoload 'sieve-upload-and-kill "sieve" "\
-
-
-\(fn &optional NAME)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sieve" '("sieve-")))
-
-;;;***
-
-;;;### (autoloads nil "sieve-manage" "net/sieve-manage.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from net/sieve-manage.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sieve-manage" '("sieve-")))
-
-;;;***
-
-;;;### (autoloads nil "sieve-mode" "net/sieve-mode.el" (0 0 0 0))
-;;; Generated autoloads from net/sieve-mode.el
-
-(autoload 'sieve-mode "sieve-mode" "\
-Major mode for editing Sieve code.
-This is much like C mode except for the syntax of comments.  Its keymap
-inherits from C mode's and it has the same variables for customizing
-indentation.  It has its own abbrev table and its own syntax table.
-
-Turning on Sieve mode runs `sieve-mode-hook'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sieve-mode" '("sieve-")))
-
-;;;***
-
-;;;### (autoloads nil "simula" "progmodes/simula.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/simula.el
-
-(autoload 'simula-mode "simula" "\
-Major mode for editing SIMULA code.
-\\{simula-mode-map}
-Variables controlling indentation style:
- `simula-tab-always-indent'
-    Non-nil means TAB in SIMULA mode should always reindent the current line,
-    regardless of where in the line point is when the TAB command is used.
- `simula-indent-level'
-    Indentation of SIMULA statements with respect to containing block.
- `simula-substatement-offset'
-    Extra indentation after DO, THEN, ELSE, WHEN and OTHERWISE.
- `simula-continued-statement-offset' 3
-    Extra indentation for lines not starting a statement or substatement,
-    e.g. a nested FOR-loop.  If value is a list, each line in a multiple-
-    line continued statement will have the car of the list extra indentation
-    with respect to the previous line of the statement.
- `simula-label-offset' -4711
-    Offset of SIMULA label lines relative to usual indentation.
- `simula-if-indent' (0 . 0)
-    Extra indentation of THEN and ELSE with respect to the starting IF.
-    Value is a cons cell, the car is extra THEN indentation and the cdr
-    extra ELSE indentation.  IF after ELSE is indented as the starting IF.
- `simula-inspect-indent' (0 . 0)
-    Extra indentation of WHEN and OTHERWISE with respect to the
-    corresponding INSPECT.  Value is a cons cell, the car is
-    extra WHEN indentation and the cdr extra OTHERWISE indentation.
- `simula-electric-indent' nil
-    If this variable is non-nil, `simula-indent-line'
-    will check the previous line to see if it has to be reindented.
- `simula-abbrev-keyword' `upcase'
-    Determine how SIMULA keywords will be expanded.  Value is one of
-    the symbols `upcase', `downcase', `capitalize', (as in) `abbrev-table',
-    or nil if they should not be changed.
- `simula-abbrev-stdproc' `abbrev-table'
-    Determine how standard SIMULA procedure and class names will be
-    expanded.  Value is one of the symbols `upcase', `downcase', `capitalize',
-    (as in) `abbrev-table', or nil if they should not be changed.
-
-Turning on SIMULA mode calls the value of the variable simula-mode-hook
-with no arguments, if that value is non-nil.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"simula" '("simula-")))
-
-;;;***
-
-;;;### (autoloads nil "skeleton" "skeleton.el" (0 0 0 0))
-;;; Generated autoloads from skeleton.el
-
-(defvar skeleton-filter-function 'identity "\
-Function for transforming a skeleton proxy's aliases' variable value.")
-
-(autoload 'define-skeleton "skeleton" "\
-Define a user-configurable COMMAND that enters a statement skeleton.
-DOCUMENTATION is that of the command.
-SKELETON is as defined under `skeleton-insert'.
-
-\(fn COMMAND DOCUMENTATION &rest SKELETON)" nil t)
-
-(function-put 'define-skeleton 'doc-string-elt '2)
-
-(autoload 'skeleton-proxy-new "skeleton" "\
-Insert SKELETON.
-Prefix ARG allows wrapping around words or regions (see `skeleton-insert').
-If no ARG was given, but the region is visible, ARG defaults to -1 depending
-on `skeleton-autowrap'.  An ARG of  M-0  will prevent this just for once.
-This command can also be an abbrev expansion (3rd and 4th columns in
-\\[edit-abbrevs]  buffer: \"\"  command-name).
-
-Optional second argument STR may also be a string which will be the value
-of `str' whereas the skeleton's interactor is then ignored.
-
-\(fn SKELETON &optional STR ARG)" nil nil)
-
-(autoload 'skeleton-insert "skeleton" "\
-Insert the complex statement skeleton SKELETON describes very concisely.
-
-With optional second argument REGIONS, wrap first interesting point
-\(`_') in skeleton around next REGIONS words, if REGIONS is positive.
-If REGIONS is negative, wrap REGIONS preceding interregions into first
-REGIONS interesting positions (successive `_'s) in skeleton.
-
-An interregion is the stretch of text between two contiguous marked
-points.  If you marked A B C [] (where [] is the cursor) in
-alphabetical order, the 3 interregions are simply the last 3 regions.
-But if you marked B A [] C, the interregions are B-A, A-[], []-C.
-
-The optional third argument STR, if specified, is the value for the
-variable `str' within the skeleton.  When this is non-nil, the
-interactor gets ignored, and this should be a valid skeleton element.
-
-SKELETON is made up as (INTERACTOR ELEMENT ...).  INTERACTOR may be nil if
-not needed, a prompt-string or an expression for complex read functions.
-
-If ELEMENT is a string or a character it gets inserted (see also
-`skeleton-transformation-function').  Other possibilities are:
-
-       \\n     go to next line and indent according to mode, unless
-                this is the first/last element of a skeleton and point
-                is at bol/eol
-       _       interesting point, interregion here
-       -       interesting point, no interregion interaction, overrides
-               interesting point set by _
-       >       indent line (or interregion if > _) according to major mode
-       @       add position to `skeleton-positions'
-       &       do next ELEMENT if previous moved point
-       |       do next ELEMENT if previous didn't move point
-       -NUM    delete NUM preceding characters (see `skeleton-untabify')
-       resume: skipped, continue here if quit is signaled
-       nil     skipped
-
-After termination, point will be positioned at the last occurrence of -
-or at the first occurrence of _ or at the end of the inserted text.
-
-Note that \\n as the last element of the skeleton only inserts a
-newline if not at eol.  If you want to unconditionally insert a newline
-at the end of the skeleton, use \"\\n\" instead.  Likewise with \\n
-as the first element when at bol.
-
-Further elements can be defined via `skeleton-further-elements'.
-ELEMENT may itself be a SKELETON with an INTERACTOR.  The user is prompted
-repeatedly for different inputs.  The SKELETON is processed as often as
-the user enters a non-empty string.  \\[keyboard-quit] terminates skeleton 
insertion, but
-continues after `resume:' and positions at `_' if any.  If INTERACTOR in
-such a subskeleton is a prompt-string which contains a \".. %s ..\" it is
-formatted with `skeleton-subprompt'.  Such an INTERACTOR may also be a list
-of strings with the subskeleton being repeated once for each string.
-
-Quoted Lisp expressions are evaluated for their side-effects.
-Other Lisp expressions are evaluated and the value treated as above.
-Note that expressions may not return t since this implies an
-endless loop.  Modes can define other symbols by locally setting them
-to any valid skeleton element.  The following local variables are
-available:
-
-       str     first time: read a string according to INTERACTOR
-               then: insert previously read string once more
-       help    help-form during interaction with the user or nil
-       input   initial input (string or cons with index) while reading str
-       v1, v2  local variables for memorizing anything you want
-
-When done with skeleton, but before going back to `_'-point call
-`skeleton-end-hook' if that is non-nil.
-
-\(fn SKELETON &optional REGIONS STR)" nil nil)
-
-(autoload 'skeleton-pair-insert-maybe "skeleton" "\
-Insert the character you type ARG times.
-
-With no ARG, if `skeleton-pair' is non-nil, pairing can occur.  If the region
-is visible the pair is wrapped around it depending on `skeleton-autowrap'.
-Else, if `skeleton-pair-on-word' is non-nil or we are not before or inside a
-word, and if `skeleton-pair-filter-function' returns nil, pairing is performed.
-Pairing is also prohibited if we are right after a quoting character
-such as backslash.
-
-If a match is found in `skeleton-pair-alist', that is inserted, else
-the defaults are used.  These are (), [], {}, <> and (grave
-accent, apostrophe) for the paired ones, and the same character
-twice for the others.
-
-\(fn ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"skeleton" '("skeleton-")))
-
-;;;***
-
-;;;### (autoloads nil "smerge-mode" "vc/smerge-mode.el" (0 0 0 0))
-;;; Generated autoloads from vc/smerge-mode.el
-
-(autoload 'smerge-ediff "smerge-mode" "\
-Invoke ediff to resolve the conflicts.
-NAME-UPPER, NAME-LOWER, and NAME-BASE, if non-nil, are used for the
-buffer names.
-
-\(fn &optional NAME-UPPER NAME-LOWER NAME-BASE)" t nil)
-
-(autoload 'smerge-mode "smerge-mode" "\
-Minor mode to simplify editing output from the diff3 program.
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-\\{smerge-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'smerge-start-session "smerge-mode" "\
-Turn on `smerge-mode' and move point to first conflict marker.
-If no conflict maker is found, turn off `smerge-mode'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"smerge-mode" '("smerge-")))
-
-;;;***
-
-;;;### (autoloads nil "smie" "emacs-lisp/smie.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/smie.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"smie" '("smie-")))
-
-;;;***
-
-;;;### (autoloads nil "smiley" "gnus/smiley.el" (0 0 0 0))
-;;; Generated autoloads from gnus/smiley.el
-
-(autoload 'smiley-region "smiley" "\
-Replace in the region `smiley-regexp-alist' matches with corresponding images.
-A list of images is returned.
-
-\(fn START END)" t nil)
-
-(autoload 'smiley-buffer "smiley" "\
-Run `smiley-region' at the BUFFER, specified in the argument or
-interactively.  If there's no argument, do it at the current buffer.
-
-\(fn &optional BUFFER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"smiley" '("smiley-" "gnus-smiley-file-types")))
-
-;;;***
-
-;;;### (autoloads nil "smime" "gnus/smime.el" (0 0 0 0))
-;;; Generated autoloads from gnus/smime.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"smime" '("smime")))
-
-;;;***
-
-;;;### (autoloads nil "smtpmail" "mail/smtpmail.el" (0 0 0 0))
-;;; Generated autoloads from mail/smtpmail.el
-
-(autoload 'smtpmail-send-it "smtpmail" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'smtpmail-send-queued-mail "smtpmail" "\
-Send mail that was queued as a result of setting `smtpmail-queue-mail'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"smtpmail" '("smtpmail-")))
-
-;;;***
-
-;;;### (autoloads nil "snake" "play/snake.el" (0 0 0 0))
-;;; Generated autoloads from play/snake.el
-
-(autoload 'snake "snake" "\
-Play the Snake game.
-Move the snake around without colliding with its tail or with the border.
-
-Eating dots causes the snake to get longer.
-
-Snake mode keybindings:
-   \\<snake-mode-map>
-\\[snake-start-game]   Starts a new game of Snake
-\\[snake-end-game]     Terminates the current game
-\\[snake-pause-game]   Pauses (or resumes) the current game
-\\[snake-move-left]    Makes the snake move left
-\\[snake-move-right]   Makes the snake move right
-\\[snake-move-up]      Makes the snake move up
-\\[snake-move-down]    Makes the snake move down
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"snake" '("snake-")))
-
-;;;***
-
-;;;### (autoloads nil "snmp-mode" "net/snmp-mode.el" (0 0 0 0))
-;;; Generated autoloads from net/snmp-mode.el
-
-(autoload 'snmp-mode "snmp-mode" "\
-Major mode for editing SNMP MIBs.
-Expression and list commands understand all C brackets.
-Tab indents for C code.
-Comments start with -- and end with newline or another --.
-Delete converts tabs to spaces as it moves back.
-\\{snmp-mode-map}
-Turning on snmp-mode runs the hooks in `snmp-common-mode-hook', then
-`snmp-mode-hook'.
-
-\(fn)" t nil)
-
-(autoload 'snmpv2-mode "snmp-mode" "\
-Major mode for editing SNMPv2 MIBs.
-Expression and list commands understand all C brackets.
-Tab indents for C code.
-Comments start with -- and end with newline or another --.
-Delete converts tabs to spaces as it moves back.
-\\{snmp-mode-map}
-Turning on snmp-mode runs the hooks in `snmp-common-mode-hook',
-then `snmpv2-mode-hook'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"snmp-mode" '("snmp")))
-
-;;;***
-
-;;;### (autoloads nil "soap-client" "net/soap-client.el" (0 0 0 0))
-;;; Generated autoloads from net/soap-client.el
-(push (purecopy '(soap-client 3 1 1)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"soap-client" '("soap-")))
-
-;;;***
-
-;;;### (autoloads nil "soap-inspect" "net/soap-inspect.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from net/soap-inspect.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"soap-inspect" '("soap-")))
-
-;;;***
-
-;;;### (autoloads nil "socks" "net/socks.el" (0 0 0 0))
-;;; Generated autoloads from net/socks.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"socks" '("socks-")))
-
-;;;***
-
-;;;### (autoloads nil "solar" "calendar/solar.el" (0 0 0 0))
-;;; Generated autoloads from calendar/solar.el
-
-(autoload 'sunrise-sunset "solar" "\
-Local time of sunrise and sunset for today.  Accurate to a few seconds.
-If called with an optional prefix argument ARG, prompt for date.
-If called with an optional double prefix argument, prompt for
-longitude, latitude, time zone, and date, and always use standard time.
-
-This function is suitable for execution in an init file.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"solar" '("solar-" "diary-sunrise-sunset" "calendar-")))
-
-;;;***
-
-;;;### (autoloads nil "solitaire" "play/solitaire.el" (0 0 0 0))
-;;; Generated autoloads from play/solitaire.el
-
-(autoload 'solitaire "solitaire" "\
-Play Solitaire.
-
-To play Solitaire, type \\[solitaire].
-\\<solitaire-mode-map>
-Move around the board using the cursor keys.
-Move stones using \\[solitaire-move] followed by a direction key.
-Undo moves using \\[solitaire-undo].
-Check for possible moves using \\[solitaire-do-check].
-\(The variable `solitaire-auto-eval' controls whether to automatically
-check after each move or undo.)
-
-What is Solitaire?
-
-I don't know who invented this game, but it seems to be rather old and
-its origin seems to be northern Africa.  Here's how to play:
-Initially, the board will look similar to this:
-
-       Le Solitaire
-       ============
-
-               o   o   o
-
-               o   o   o
-
-       o   o   o   o   o   o   o
-
-       o   o   o   .   o   o   o
-
-       o   o   o   o   o   o   o
-
-               o   o   o
-
-               o   o   o
-
-Let's call the o's stones and the .'s holes.  One stone fits into one
-hole.  As you can see, all holes but one are occupied by stones.  The
-aim of the game is to get rid of all but one stone, leaving that last
-one in the middle of the board if you're cool.
-
-A stone can be moved if there is another stone next to it, and a hole
-after that one.  Thus there must be three fields in a row, either
-horizontally or vertically, up, down, left or right, which look like
-this:  o  o  .
-
-Then the first stone is moved to the hole, jumping over the second,
-which therefore is taken away.  The above thus `evaluates' to:  .  .  o
-
-That's all.  Here's the board after two moves:
-
-               o   o   o
-
-               .   o   o
-
-       o   o   .   o   o   o   o
-
-       o   .   o   o   o   o   o
-
-       o   o   o   o   o   o   o
-
-               o   o   o
-
-               o   o   o
-
-Pick your favorite shortcuts:
-
-\\{solitaire-mode-map}
-
-\(fn ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"solitaire" '("solitaire-")))
-
-;;;***
-
-;;;### (autoloads nil "sort" "sort.el" (0 0 0 0))
-;;; Generated autoloads from sort.el
-(put 'sort-fold-case 'safe-local-variable 'booleanp)
-
-(autoload 'sort-subr "sort" "\
-General text sorting routine to divide buffer into records and sort them.
-
-We divide the accessible portion of the buffer into disjoint pieces
-called sort records.  A portion of each sort record (perhaps all of
-it) is designated as the sort key.  The records are rearranged in the
-buffer in order by their sort keys.  The records may or may not be
-contiguous.
-
-Usually the records are rearranged in order of ascending sort key.
-If REVERSE is non-nil, they are rearranged in order of descending sort key.
-The variable `sort-fold-case' determines whether alphabetic case affects
-the sort order.
-
-The next four arguments are functions to be called to move point
-across a sort record.  They will be called many times from within sort-subr.
-
-NEXTRECFUN is called with point at the end of the previous record.
-It moves point to the start of the next record.
-It should move point to the end of the buffer if there are no more records.
-The first record is assumed to start at the position of point when sort-subr
-is called.
-
-ENDRECFUN is called with point within the record.
-It should move point to the end of the record.
-
-STARTKEYFUN moves from the start of the record to the start of the key.
-It may return either a non-nil value to be used as the key, or
-else the key is the substring between the values of point after
-STARTKEYFUN and ENDKEYFUN are called.  If STARTKEYFUN is nil, the key
-starts at the beginning of the record.
-
-ENDKEYFUN moves from the start of the sort key to the end of the sort key.
-ENDKEYFUN may be nil if STARTKEYFUN returns a value or if it would be the
-same as ENDRECFUN.
-
-PREDICATE, if non-nil, is the predicate function for comparing
-keys; it is called with two arguments, the keys to compare, and
-should return non-nil if the first key should sort before the
-second key.  If PREDICATE is nil, comparison is done with `<' if
-the keys are numbers, with `compare-buffer-substrings' if the
-keys are cons cells (the car and cdr of each cons cell are taken
-as start and end positions), and with `string<' otherwise.
-
-\(fn REVERSE NEXTRECFUN ENDRECFUN &optional STARTKEYFUN ENDKEYFUN PREDICATE)" 
nil nil)
-
-(autoload 'sort-lines "sort" "\
-Sort lines in region alphabetically; argument means descending order.
-Called from a program, there are three arguments:
-REVERSE (non-nil means reverse order), BEG and END (region to sort).
-The variable `sort-fold-case' determines whether alphabetic case affects
-the sort order.
-
-\(fn REVERSE BEG END)" t nil)
-
-(autoload 'sort-paragraphs "sort" "\
-Sort paragraphs in region alphabetically; argument means descending order.
-Called from a program, there are three arguments:
-REVERSE (non-nil means reverse order), BEG and END (region to sort).
-The variable `sort-fold-case' determines whether alphabetic case affects
-the sort order.
-
-\(fn REVERSE BEG END)" t nil)
-
-(autoload 'sort-pages "sort" "\
-Sort pages in region alphabetically; argument means descending order.
-Called from a program, there are three arguments:
-REVERSE (non-nil means reverse order), BEG and END (region to sort).
-The variable `sort-fold-case' determines whether alphabetic case affects
-the sort order.
-
-\(fn REVERSE BEG END)" t nil)
-(put 'sort-numeric-base 'safe-local-variable 'integerp)
-
-(autoload 'sort-numeric-fields "sort" "\
-Sort lines in region numerically by the ARGth field of each line.
-Fields are separated by whitespace and numbered from 1 up.
-Specified field must contain a number in each line of the region,
-which may begin with \"0x\" or \"0\" for hexadecimal and octal values.
-Otherwise, the number is interpreted according to sort-numeric-base.
-With a negative arg, sorts by the ARGth field counted from the right.
-Called from a program, there are three arguments:
-FIELD, BEG and END.  BEG and END specify region to sort.
-
-\(fn FIELD BEG END)" t nil)
-
-(autoload 'sort-fields "sort" "\
-Sort lines in region lexicographically by the ARGth field of each line.
-Fields are separated by whitespace and numbered from 1 up.
-With a negative arg, sorts by the ARGth field counted from the right.
-Called from a program, there are three arguments:
-FIELD, BEG and END.  BEG and END specify region to sort.
-The variable `sort-fold-case' determines whether alphabetic case affects
-the sort order.
-
-\(fn FIELD BEG END)" t nil)
-
-(autoload 'sort-regexp-fields "sort" "\
-Sort the text in the region region lexicographically.
-If called interactively, prompt for two regular expressions,
-RECORD-REGEXP and KEY-REGEXP.
-
-RECORD-REGEXP specifies the textual units to be sorted.
-  For example, to sort lines, RECORD-REGEXP would be \"^.*$\".
-
-KEY-REGEXP specifies the part of each record (i.e. each match for
-  RECORD-REGEXP) to be used for sorting.
-  If it is \"\\\\digit\", use the digit'th \"\\\\(...\\\\)\"
-  match field specified by RECORD-REGEXP.
-  If it is \"\\\\&\", use the whole record.
-  Otherwise, KEY-REGEXP should be a regular expression with which
-  to search within the record.  If a match for KEY-REGEXP is not
-  found within a record, that record is ignored.
-
-With a negative prefix arg, sort in reverse order.
-
-The variable `sort-fold-case' determines whether alphabetic case affects
-the sort order.
-
-For example: to sort lines in the region by the first word on each line
- starting with the letter \"f\",
- RECORD-REGEXP would be \"^.*$\" and KEY would be \"\\\\=\\<f\\\\w*\\\\>\"
-
-\(fn REVERSE RECORD-REGEXP KEY-REGEXP BEG END)" t nil)
-
-(autoload 'sort-columns "sort" "\
-Sort lines in region alphabetically by a certain range of columns.
-For the purpose of this command, the region BEG...END includes
-the entire line that point is in and the entire line the mark is in.
-The column positions of point and mark bound the range of columns to sort on.
-A prefix argument means sort into REVERSE order.
-The variable `sort-fold-case' determines whether alphabetic case affects
-the sort order.
-
-Note that `sort-columns' rejects text that contains tabs,
-because tabs could be split across the specified columns
-and it doesn't know how to handle that.  Also, when possible,
-it uses the `sort' utility program, which doesn't understand tabs.
-Use \\[untabify] to convert tabs to spaces before sorting.
-
-\(fn REVERSE &optional BEG END)" t nil)
-
-(autoload 'reverse-region "sort" "\
-Reverse the order of lines in a region.
-From a program takes two point or marker arguments, BEG and END.
-
-\(fn BEG END)" t nil)
-
-(autoload 'delete-duplicate-lines "sort" "\
-Delete all but one copy of any identical lines in the region.
-Non-interactively, arguments BEG and END delimit the region.
-Normally it searches forwards, keeping the first instance of
-each identical line.  If REVERSE is non-nil (interactively, with
-a C-u prefix), it searches backwards and keeps the last instance of
-each repeated line.
-
-Identical lines need not be adjacent, unless the argument
-ADJACENT is non-nil (interactively, with a C-u C-u prefix).
-This is a more efficient mode of operation, and may be useful
-on large regions that have already been sorted.
-
-If the argument KEEP-BLANKS is non-nil (interactively, with a
-C-u C-u C-u prefix), it retains repeated blank lines.
-
-Returns the number of deleted lines.  Interactively, or if INTERACTIVE
-is non-nil, it also prints a message describing the number of deletions.
-
-\(fn BEG END &optional REVERSE ADJACENT KEEP-BLANKS INTERACTIVE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sort" '("sort-")))
-
-;;;***
-
-;;;### (autoloads nil "soundex" "soundex.el" (0 0 0 0))
-;;; Generated autoloads from soundex.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"soundex" '("soundex")))
-
-;;;***
-
-;;;### (autoloads nil "spam" "gnus/spam.el" (0 0 0 0))
-;;; Generated autoloads from gnus/spam.el
-
-(autoload 'spam-initialize "spam" "\
-Install the spam.el hooks and do other initialization.
-When SYMBOLS is given, set those variables to t.  This is so you
-can call `spam-initialize' before you set spam-use-* variables on
-explicitly, and matters only if you need the extra headers
-installed through `spam-necessary-extra-headers'.
-
-\(fn &rest SYMBOLS)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"spam" '("spam-")))
-
-;;;***
-
-;;;### (autoloads nil "spam-report" "gnus/spam-report.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from gnus/spam-report.el
-
-(autoload 'spam-report-process-queue "spam-report" "\
-Report all queued requests from `spam-report-requests-file'.
-
-If FILE is given, use it instead of `spam-report-requests-file'.
-If KEEP is t, leave old requests in the file.  If KEEP is the
-symbol `ask', query before flushing the queue file.
-
-\(fn &optional FILE KEEP)" t nil)
-
-(autoload 'spam-report-url-ping-mm-url "spam-report" "\
-Ping a host through HTTP, addressing a specific GET resource. Use
-the external program specified in `mm-url-program' to connect to
-server.
-
-\(fn HOST REPORT)" nil nil)
-
-(autoload 'spam-report-url-to-file "spam-report" "\
-Collect spam report requests in `spam-report-requests-file'.
-Customize `spam-report-url-ping-function' to use this function.
-
-\(fn HOST REPORT)" nil nil)
-
-(autoload 'spam-report-agentize "spam-report" "\
-Add spam-report support to the Agent.
-Spam reports will be queued with \\[spam-report-url-to-file] when
-the Agent is unplugged, and will be submitted in a batch when the
-Agent is plugged.
-
-\(fn)" t nil)
-
-(autoload 'spam-report-deagentize "spam-report" "\
-Remove spam-report support from the Agent.
-Spam reports will be queued with the method used when
-\\[spam-report-agentize] was run.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"spam-report" '("spam-report-")))
-
-;;;***
-
-;;;### (autoloads nil "spam-stat" "gnus/spam-stat.el" (0 0 0 0))
-;;; Generated autoloads from gnus/spam-stat.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"spam-stat" '("spam-stat" "with-spam-stat-max-buffer-size")))
-
-;;;***
-
-;;;### (autoloads nil "spam-wash" "gnus/spam-wash.el" (0 0 0 0))
-;;; Generated autoloads from gnus/spam-wash.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"spam-wash" '("spam-")))
-
-;;;***
-
-;;;### (autoloads nil "speedbar" "speedbar.el" (0 0 0 0))
-;;; Generated autoloads from speedbar.el
-
-(defalias 'speedbar 'speedbar-frame-mode)
-
-(autoload 'speedbar-frame-mode "speedbar" "\
-Enable or disable speedbar.  Positive ARG means turn on, negative turn off.
-A nil ARG means toggle.  Once the speedbar frame is activated, a buffer in
-`speedbar-mode' will be displayed.  Currently, only one speedbar is
-supported at a time.
-`speedbar-before-popup-hook' is called before popping up the speedbar frame.
-`speedbar-before-delete-hook' is called before the frame is deleted.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'speedbar-get-focus "speedbar" "\
-Change frame focus to or from the speedbar frame.
-If the selected frame is not speedbar, then speedbar frame is
-selected.  If the speedbar frame is active, then select the attached frame.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"speedbar" '("speedbar-")))
-
-;;;***
-
-;;;### (autoloads nil "spook" "play/spook.el" (0 0 0 0))
-;;; Generated autoloads from play/spook.el
-
-(autoload 'spook "spook" "\
-Adds that special touch of class to your outgoing mail.
-
-\(fn)" t nil)
-
-(autoload 'snarf-spooks "spook" "\
-Return a vector containing the lines from `spook-phrases-file'.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"spook" '("spook-phrase")))
-
-;;;***
-
-;;;### (autoloads nil "sql" "progmodes/sql.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/sql.el
-(push (purecopy '(sql 3 5)) package--builtin-versions)
-
-(autoload 'sql-add-product-keywords "sql" "\
-Add highlighting KEYWORDS for SQL PRODUCT.
-
-PRODUCT should be a symbol, the name of a SQL product, such as
-`oracle'.  KEYWORDS should be a list; see the variable
-`font-lock-keywords'.  By default they are added at the beginning
-of the current highlighting list.  If optional argument APPEND is
-`set', they are used to replace the current highlighting list.
-If APPEND is any other non-nil value, they are added at the end
-of the current highlighting list.
-
-For example:
-
- (sql-add-product-keywords \\='ms
-  \\='((\"\\\\b\\\\w+_t\\\\b\" . font-lock-type-face)))
-
-adds a fontification pattern to fontify identifiers ending in
-`_t' as data types.
-
-\(fn PRODUCT KEYWORDS &optional APPEND)" nil nil)
-
-(autoload 'sql-mode "sql" "\
-Major mode to edit SQL.
-
-You can send SQL statements to the SQLi buffer using
-\\[sql-send-region].  Such a buffer must exist before you can do this.
-See `sql-help' on how to create SQLi buffers.
-
-\\{sql-mode-map}
-Customization: Entry to this mode runs the `sql-mode-hook'.
-
-When you put a buffer in SQL mode, the buffer stores the last SQLi
-buffer created as its destination in the variable `sql-buffer'.  This
-will be the buffer \\[sql-send-region] sends the region to.  If this
-SQLi buffer is killed, \\[sql-send-region] is no longer able to
-determine where the strings should be sent to.  You can set the
-value of `sql-buffer' using \\[sql-set-sqli-buffer].
-
-For information on how to create multiple SQLi buffers, see
-`sql-interactive-mode'.
-
-Note that SQL doesn't have an escape character unless you specify
-one.  If you specify backslash as escape character in SQL, you
-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)))
-
-\(fn)" t nil)
-
-(autoload 'sql-connect "sql" "\
-Connect to an interactive session using CONNECTION settings.
-
-See `sql-connection-alist' to see how to define connections and
-their settings.
-
-The user will not be prompted for any login parameters if a value
-is specified in the connection settings.
-
-\(fn CONNECTION &optional NEW-NAME)" t nil)
-
-(autoload 'sql-product-interactive "sql" "\
-Run PRODUCT interpreter as an inferior process.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer `*SQL*'.
-
-To specify the SQL product, prefix the call with
-\\[universal-argument].  To set the buffer name as well, prefix
-the call to \\[sql-product-interactive] with
-\\[universal-argument] \\[universal-argument].
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional PRODUCT NEW-NAME)" t nil)
-
-(autoload 'sql-oracle "sql" "\
-Run sqlplus by Oracle as an inferior process.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
-
-Interpreter used comes from variable `sql-oracle-program'.  Login uses
-the variables `sql-user', `sql-password', and `sql-database' as
-defaults, if set.  Additional command line parameters can be stored in
-the list `sql-oracle-options'.
-
-The buffer is put in SQL interactive mode, giving commands for sending
-input.  See `sql-interactive-mode'.
-
-To set the buffer name directly, use \\[universal-argument]
-before \\[sql-oracle].  Once session has started,
-\\[sql-rename-buffer] can be called separately to rename the
-buffer.
-
-To specify a coding system for converting non-ASCII characters
-in the input and output to the process, use 
\\[universal-coding-system-argument]
-before \\[sql-oracle].  You can also specify this with 
\\[set-buffer-process-coding-system]
-in the SQL buffer, after you start the process.
-The default comes from `process-coding-system-alist' and
-`default-process-coding-system'.
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'sql-sybase "sql" "\
-Run isql by Sybase as an inferior process.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
-
-Interpreter used comes from variable `sql-sybase-program'.  Login uses
-the variables `sql-server', `sql-user', `sql-password', and
-`sql-database' as defaults, if set.  Additional command line parameters
-can be stored in the list `sql-sybase-options'.
-
-The buffer is put in SQL interactive mode, giving commands for sending
-input.  See `sql-interactive-mode'.
-
-To set the buffer name directly, use \\[universal-argument]
-before \\[sql-sybase].  Once session has started,
-\\[sql-rename-buffer] can be called separately to rename the
-buffer.
-
-To specify a coding system for converting non-ASCII characters
-in the input and output to the process, use 
\\[universal-coding-system-argument]
-before \\[sql-sybase].  You can also specify this with 
\\[set-buffer-process-coding-system]
-in the SQL buffer, after you start the process.
-The default comes from `process-coding-system-alist' and
-`default-process-coding-system'.
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'sql-informix "sql" "\
-Run dbaccess by Informix as an inferior process.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
-
-Interpreter used comes from variable `sql-informix-program'.  Login uses
-the variable `sql-database' as default, if set.
-
-The buffer is put in SQL interactive mode, giving commands for sending
-input.  See `sql-interactive-mode'.
-
-To set the buffer name directly, use \\[universal-argument]
-before \\[sql-informix].  Once session has started,
-\\[sql-rename-buffer] can be called separately to rename the
-buffer.
-
-To specify a coding system for converting non-ASCII characters
-in the input and output to the process, use 
\\[universal-coding-system-argument]
-before \\[sql-informix].  You can also specify this with 
\\[set-buffer-process-coding-system]
-in the SQL buffer, after you start the process.
-The default comes from `process-coding-system-alist' and
-`default-process-coding-system'.
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'sql-sqlite "sql" "\
-Run sqlite as an inferior process.
-
-SQLite is free software.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
-
-Interpreter used comes from variable `sql-sqlite-program'.  Login uses
-the variables `sql-user', `sql-password', `sql-database', and
-`sql-server' as defaults, if set.  Additional command line parameters
-can be stored in the list `sql-sqlite-options'.
-
-The buffer is put in SQL interactive mode, giving commands for sending
-input.  See `sql-interactive-mode'.
-
-To set the buffer name directly, use \\[universal-argument]
-before \\[sql-sqlite].  Once session has started,
-\\[sql-rename-buffer] can be called separately to rename the
-buffer.
-
-To specify a coding system for converting non-ASCII characters
-in the input and output to the process, use 
\\[universal-coding-system-argument]
-before \\[sql-sqlite].  You can also specify this with 
\\[set-buffer-process-coding-system]
-in the SQL buffer, after you start the process.
-The default comes from `process-coding-system-alist' and
-`default-process-coding-system'.
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'sql-mysql "sql" "\
-Run mysql by TcX as an inferior process.
-
-Mysql versions 3.23 and up are free software.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
-
-Interpreter used comes from variable `sql-mysql-program'.  Login uses
-the variables `sql-user', `sql-password', `sql-database', and
-`sql-server' as defaults, if set.  Additional command line parameters
-can be stored in the list `sql-mysql-options'.
-
-The buffer is put in SQL interactive mode, giving commands for sending
-input.  See `sql-interactive-mode'.
-
-To set the buffer name directly, use \\[universal-argument]
-before \\[sql-mysql].  Once session has started,
-\\[sql-rename-buffer] can be called separately to rename the
-buffer.
-
-To specify a coding system for converting non-ASCII characters
-in the input and output to the process, use 
\\[universal-coding-system-argument]
-before \\[sql-mysql].  You can also specify this with 
\\[set-buffer-process-coding-system]
-in the SQL buffer, after you start the process.
-The default comes from `process-coding-system-alist' and
-`default-process-coding-system'.
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'sql-solid "sql" "\
-Run solsql by Solid as an inferior process.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
-
-Interpreter used comes from variable `sql-solid-program'.  Login uses
-the variables `sql-user', `sql-password', and `sql-server' as
-defaults, if set.
-
-The buffer is put in SQL interactive mode, giving commands for sending
-input.  See `sql-interactive-mode'.
-
-To set the buffer name directly, use \\[universal-argument]
-before \\[sql-solid].  Once session has started,
-\\[sql-rename-buffer] can be called separately to rename the
-buffer.
-
-To specify a coding system for converting non-ASCII characters
-in the input and output to the process, use 
\\[universal-coding-system-argument]
-before \\[sql-solid].  You can also specify this with 
\\[set-buffer-process-coding-system]
-in the SQL buffer, after you start the process.
-The default comes from `process-coding-system-alist' and
-`default-process-coding-system'.
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'sql-ingres "sql" "\
-Run sql by Ingres as an inferior process.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
-
-Interpreter used comes from variable `sql-ingres-program'.  Login uses
-the variable `sql-database' as default, if set.
-
-The buffer is put in SQL interactive mode, giving commands for sending
-input.  See `sql-interactive-mode'.
-
-To set the buffer name directly, use \\[universal-argument]
-before \\[sql-ingres].  Once session has started,
-\\[sql-rename-buffer] can be called separately to rename the
-buffer.
-
-To specify a coding system for converting non-ASCII characters
-in the input and output to the process, use 
\\[universal-coding-system-argument]
-before \\[sql-ingres].  You can also specify this with 
\\[set-buffer-process-coding-system]
-in the SQL buffer, after you start the process.
-The default comes from `process-coding-system-alist' and
-`default-process-coding-system'.
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'sql-ms "sql" "\
-Run osql by Microsoft as an inferior process.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
-
-Interpreter used comes from variable `sql-ms-program'.  Login uses the
-variables `sql-user', `sql-password', `sql-database', and `sql-server'
-as defaults, if set.  Additional command line parameters can be stored
-in the list `sql-ms-options'.
-
-The buffer is put in SQL interactive mode, giving commands for sending
-input.  See `sql-interactive-mode'.
-
-To set the buffer name directly, use \\[universal-argument]
-before \\[sql-ms].  Once session has started,
-\\[sql-rename-buffer] can be called separately to rename the
-buffer.
-
-To specify a coding system for converting non-ASCII characters
-in the input and output to the process, use 
\\[universal-coding-system-argument]
-before \\[sql-ms].  You can also specify this with 
\\[set-buffer-process-coding-system]
-in the SQL buffer, after you start the process.
-The default comes from `process-coding-system-alist' and
-`default-process-coding-system'.
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'sql-postgres "sql" "\
-Run psql by Postgres as an inferior process.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
-
-Interpreter used comes from variable `sql-postgres-program'.  Login uses
-the variables `sql-database' and `sql-server' as default, if set.
-Additional command line parameters can be stored in the list
-`sql-postgres-options'.
-
-The buffer is put in SQL interactive mode, giving commands for sending
-input.  See `sql-interactive-mode'.
-
-To set the buffer name directly, use \\[universal-argument]
-before \\[sql-postgres].  Once session has started,
-\\[sql-rename-buffer] can be called separately to rename the
-buffer.
-
-To specify a coding system for converting non-ASCII characters
-in the input and output to the process, use 
\\[universal-coding-system-argument]
-before \\[sql-postgres].  You can also specify this with 
\\[set-buffer-process-coding-system]
-in the SQL buffer, after you start the process.
-The default comes from `process-coding-system-alist' and
-`default-process-coding-system'.  If your output lines end with ^M,
-your might try undecided-dos as a coding system.  If this doesn't help,
-Try to set `comint-output-filter-functions' like this:
-
-\(setq comint-output-filter-functions (append comint-output-filter-functions
-                                            \\='(comint-strip-ctrl-m)))
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'sql-interbase "sql" "\
-Run isql by Interbase as an inferior process.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
-
-Interpreter used comes from variable `sql-interbase-program'.  Login
-uses the variables `sql-user', `sql-password', and `sql-database' as
-defaults, if set.
-
-The buffer is put in SQL interactive mode, giving commands for sending
-input.  See `sql-interactive-mode'.
-
-To set the buffer name directly, use \\[universal-argument]
-before \\[sql-interbase].  Once session has started,
-\\[sql-rename-buffer] can be called separately to rename the
-buffer.
-
-To specify a coding system for converting non-ASCII characters
-in the input and output to the process, use 
\\[universal-coding-system-argument]
-before \\[sql-interbase].  You can also specify this with 
\\[set-buffer-process-coding-system]
-in the SQL buffer, after you start the process.
-The default comes from `process-coding-system-alist' and
-`default-process-coding-system'.
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'sql-db2 "sql" "\
-Run db2 by IBM as an inferior process.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
-
-Interpreter used comes from variable `sql-db2-program'.  There is not
-automatic login.
-
-The buffer is put in SQL interactive mode, giving commands for sending
-input.  See `sql-interactive-mode'.
-
-If you use \\[sql-accumulate-and-indent] to send multiline commands to
-db2, newlines will be escaped if necessary.  If you don't want that, set
-`comint-input-sender' back to `comint-simple-send' by writing an after
-advice.  See the elisp manual for more information.
-
-To set the buffer name directly, use \\[universal-argument]
-before \\[sql-db2].  Once session has started,
-\\[sql-rename-buffer] can be called separately to rename the
-buffer.
-
-To specify a coding system for converting non-ASCII characters
-in the input and output to the process, use 
\\[universal-coding-system-argument]
-before \\[sql-db2].  You can also specify this with 
\\[set-buffer-process-coding-system]
-in the SQL buffer, after you start the process.
-The default comes from `process-coding-system-alist' and
-`default-process-coding-system'.
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'sql-linter "sql" "\
-Run inl by RELEX as an inferior process.
-
-If buffer `*SQL*' exists but no process is running, make a new process.
-If buffer exists and a process is running, just switch to buffer
-`*SQL*'.
-
-Interpreter used comes from variable `sql-linter-program' - usually `inl'.
-Login uses the variables `sql-user', `sql-password', `sql-database' and
-`sql-server' as defaults, if set.  Additional command line parameters
-can be stored in the list `sql-linter-options'.  Run inl -h to get help on
-parameters.
-
-`sql-database' is used to set the LINTER_MBX environment variable for
-local connections, `sql-server' refers to the server name from the
-`nodetab' file for the network connection (dbc_tcp or friends must run
-for this to work).  If `sql-password' is an empty string, inl will use
-an empty password.
-
-The buffer is put in SQL interactive mode, giving commands for sending
-input.  See `sql-interactive-mode'.
-
-To set the buffer name directly, use \\[universal-argument]
-before \\[sql-linter].  Once session has started,
-\\[sql-rename-buffer] can be called separately to rename the
-buffer.
-
-\(Type \\[describe-mode] in the SQL buffer for a list of commands.)
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload 'sql-vertica "sql" "\
-Run vsql as an inferior process.
-
-\(fn &optional BUFFER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"sql" '("sql-")))
-
-;;;***
-
-;;;### (autoloads nil "srecode" "cedet/srecode.el" (0 0 0 0))
-;;; Generated autoloads from cedet/srecode.el
-(push (purecopy '(srecode 1 2)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode" '("srecode-version")))
-
-;;;***
-
-;;;### (autoloads nil "srecode/args" "cedet/srecode/args.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from cedet/srecode/args.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/args" '("srecode-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "srecode/compile"
-;;;;;;  "cedet/srecode/compile.el" (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/compile.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/compile" '("srecode-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "srecode/cpp"
-;;;;;;  "cedet/srecode/cpp.el" (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/cpp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/cpp" '("srecode-")))
-
-;;;***
-
-;;;### (autoloads nil "srecode/ctxt" "cedet/srecode/ctxt.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from cedet/srecode/ctxt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/ctxt" '("srecode-")))
-
-;;;***
-
-;;;### (autoloads nil "srecode/dictionary" "cedet/srecode/dictionary.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/dictionary.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/dictionary" '("srecode-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "srecode/document"
-;;;;;;  "cedet/srecode/document.el" (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/document.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/document" '("srecode-document-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "srecode/el" 
"cedet/srecode/el.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/el.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/el" '("srecode-semantic-apply-tag-to-dict")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "srecode/expandproto"
-;;;;;;  "cedet/srecode/expandproto.el" (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/expandproto.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/expandproto" '("srecode-")))
-
-;;;***
-
-;;;### (autoloads nil "srecode/extract" "cedet/srecode/extract.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/extract.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/extract" '("srecode-extract")))
-
-;;;***
-
-;;;### (autoloads nil "srecode/fields" "cedet/srecode/fields.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/fields.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/fields" '("srecode-")))
-
-;;;***
-
-;;;### (autoloads nil "srecode/filters" "cedet/srecode/filters.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/filters.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/filters" '("srecode-comment-prefix")))
-
-;;;***
-
-;;;### (autoloads nil "srecode/find" "cedet/srecode/find.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from cedet/srecode/find.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/find" '("srecode-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "srecode/getset"
-;;;;;;  "cedet/srecode/getset.el" (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/getset.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/getset" '("srecode-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "srecode/insert"
-;;;;;;  "cedet/srecode/insert.el" (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/insert.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/insert" '("srecode-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "srecode/map"
-;;;;;;  "cedet/srecode/map.el" (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/map.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/map" '("srecode-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "srecode/mode"
-;;;;;;  "cedet/srecode/mode.el" (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/mode.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/mode" '("srecode-")))
-
-;;;***
-
-;;;### (autoloads nil "srecode/semantic" "cedet/srecode/semantic.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/semantic.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/semantic" '("srecode-semantic-")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "srecode/srt"
-;;;;;;  "cedet/srecode/srt.el" (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/srt.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/srt" '("srecode-read-")))
-
-;;;***
-
-;;;### (autoloads nil "srecode/srt-mode" "cedet/srecode/srt-mode.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/srt-mode.el
-
-(autoload 'srecode-template-mode "srecode/srt-mode" "\
-Major-mode for writing SRecode macros.
-
-\(fn)" t nil)
-
-(defalias 'srt-mode 'srecode-template-mode)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/srt-mode" '("semantic-" "srecode-")))
-
-;;;***
-
-;;;### (autoloads nil "srecode/table" "cedet/srecode/table.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from cedet/srecode/table.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/table" '("srecode-" "object-sort-list")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "srecode/template"
-;;;;;;  "cedet/srecode/template.el" (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/template.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/template" '("semantic-tag-components")))
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "srecode/texi"
-;;;;;;  "cedet/srecode/texi.el" (0 0 0 0))
-;;; Generated autoloads from cedet/srecode/texi.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"srecode/texi" '("semantic-insert-foreign-tag" "srecode-texi-")))
-
-;;;***
-
-;;;### (autoloads nil "starttls" "net/starttls.el" (0 0 0 0))
-;;; Generated autoloads from net/starttls.el
-
-(autoload 'starttls-open-stream "starttls" "\
-Open a TLS connection for a port to a host.
-Returns a subprocess object to represent the connection.
-Input and output work as for subprocesses; `delete-process' closes it.
-Args are NAME BUFFER HOST PORT.
-NAME is name for process.  It is modified if necessary to make it unique.
-BUFFER is the buffer (or `buffer-name') to associate with the process.
- Process output goes at end of that buffer, unless you specify
- an output stream or filter function to handle the output.
- BUFFER may be also nil, meaning that this process is not associated
- with any buffer
-Third arg is name of the host to connect to, or its IP address.
-Fourth arg PORT is an integer specifying a port to connect to.
-If `starttls-use-gnutls' is nil, this may also be a service name, but
-GnuTLS requires a port number.
-
-\(fn NAME BUFFER HOST PORT)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"starttls" '("starttls-")))
-
-;;;***
-
-;;;### (autoloads nil "strokes" "strokes.el" (0 0 0 0))
-;;; Generated autoloads from strokes.el
-
-(autoload 'strokes-global-set-stroke "strokes" "\
-Interactively give STROKE the global binding as COMMAND.
-Works just like `global-set-key', except for strokes.  COMMAND is
-a symbol naming an interactively-callable function.  STROKE is a
-list of sampled positions on the stroke grid as described in the
-documentation for the `strokes-define-stroke' function.
-
-See also `strokes-global-set-stroke-string'.
-
-\(fn STROKE COMMAND)" t nil)
-
-(autoload 'strokes-read-stroke "strokes" "\
-Read a simple stroke (interactively) and return the stroke.
-Optional PROMPT in minibuffer displays before and during stroke reading.
-This function will display the stroke interactively as it is being
-entered in the strokes buffer if the variable
-`strokes-use-strokes-buffer' is non-nil.
-Optional EVENT is acceptable as the starting event of the stroke.
-
-\(fn &optional PROMPT EVENT)" nil nil)
-
-(autoload 'strokes-read-complex-stroke "strokes" "\
-Read a complex stroke (interactively) and return the stroke.
-Optional PROMPT in minibuffer displays before and during stroke reading.
-Note that a complex stroke allows the user to pen-up and pen-down.  This
-is implemented by allowing the user to paint with button 1 or button 2 and
-then complete the stroke with button 3.
-Optional EVENT is acceptable as the starting event of the stroke.
-
-\(fn &optional PROMPT EVENT)" nil nil)
-
-(autoload 'strokes-do-stroke "strokes" "\
-Read a simple stroke from the user and then execute its command.
-This must be bound to a mouse event.
-
-\(fn EVENT)" t nil)
-
-(autoload 'strokes-do-complex-stroke "strokes" "\
-Read a complex stroke from the user and then execute its command.
-This must be bound to a mouse event.
-
-\(fn EVENT)" t nil)
-
-(autoload 'strokes-describe-stroke "strokes" "\
-Displays the command which STROKE maps to, reading STROKE interactively.
-
-\(fn STROKE)" t nil)
-
-(autoload 'strokes-help "strokes" "\
-Get instruction on using the Strokes package.
-
-\(fn)" t nil)
-
-(autoload 'strokes-load-user-strokes "strokes" "\
-Load user-defined strokes from file named by `strokes-file'.
-
-\(fn)" t nil)
-
-(autoload 'strokes-list-strokes "strokes" "\
-Pop up a buffer containing an alphabetical listing of strokes in STROKES-MAP.
-With CHRONOLOGICAL prefix arg (\\[universal-argument]) list strokes 
chronologically
-by command name.
-If STROKES-MAP is not given, `strokes-global-map' will be used instead.
-
-\(fn &optional CHRONOLOGICAL STROKES-MAP)" t nil)
-
-(defvar strokes-mode nil "\
-Non-nil if Strokes mode is enabled.
-See the `strokes-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `strokes-mode'.")
-
-(custom-autoload 'strokes-mode "strokes" nil)
-
-(autoload 'strokes-mode "strokes" "\
-Toggle Strokes mode, a global minor mode.
-With a prefix argument ARG, enable Strokes mode if ARG is
-positive, and disable it otherwise.  If called from Lisp,
-enable the mode if ARG is omitted or nil.
-
-\\<strokes-mode-map>
-Strokes are pictographic mouse gestures which invoke commands.
-Strokes are invoked with \\[strokes-do-stroke].  You can define
-new strokes with \\[strokes-global-set-stroke].  See also
-\\[strokes-do-complex-stroke] for `complex' strokes.
-
-To use strokes for pictographic editing, such as Chinese/Japanese, use
-\\[strokes-compose-complex-stroke], which draws strokes and inserts them.
-Encode/decode your strokes with \\[strokes-encode-buffer],
-\\[strokes-decode-buffer].
-
-\\{strokes-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'strokes-decode-buffer "strokes" "\
-Decode stroke strings in BUFFER and display their corresponding glyphs.
-Optional BUFFER defaults to the current buffer.
-Optional FORCE non-nil will ignore the buffer's read-only status.
-
-\(fn &optional BUFFER FORCE)" t nil)
-
-(autoload 'strokes-compose-complex-stroke "strokes" "\
-Read a complex stroke and insert its glyph into the current buffer.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"strokes" '("strokes-")))
-
-;;;***
-
-;;;### (autoloads nil "studly" "play/studly.el" (0 0 0 0))
-;;; Generated autoloads from play/studly.el
-
-(autoload 'studlify-region "studly" "\
-Studlify-case the region.
-
-\(fn BEGIN END)" t nil)
-
-(autoload 'studlify-word "studly" "\
-Studlify-case the current word, or COUNT words if given an argument.
-
-\(fn COUNT)" t nil)
-
-(autoload 'studlify-buffer "studly" "\
-Studlify-case the current buffer.
-
-\(fn)" t nil)
-
-;;;***
-
-;;;### (autoloads nil "subr-x" "emacs-lisp/subr-x.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/subr-x.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"subr-x" '("read-multiple-choice" "string-" "hash-table-" "when-let" 
"internal--" "if-let" "thread-")))
-
-;;;***
-
-;;;### (autoloads nil "subword" "progmodes/subword.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/subword.el
-
-(define-obsolete-function-alias 'capitalized-words-mode 'subword-mode "25.1")
-
-(autoload 'subword-mode "subword" "\
-Toggle subword movement and editing (Subword mode).
-With a prefix argument ARG, enable Subword mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Subword mode is a buffer-local minor mode.  Enabling it changes
-the definition of a word so that word-based commands stop inside
-symbols with mixed uppercase and lowercase letters,
-e.g. \"GtkWidget\", \"EmacsFrameClass\", \"NSGraphicsContext\".
-
-Here we call these mixed case symbols `nomenclatures'.  Each
-capitalized (or completely uppercase) part of a nomenclature is
-called a `subword'.  Here are some examples:
-
-  Nomenclature           Subwords
-  ===========================================================
-  GtkWindow          =>  \"Gtk\" and \"Window\"
-  EmacsFrameClass    =>  \"Emacs\", \"Frame\" and \"Class\"
-  NSGraphicsContext  =>  \"NS\", \"Graphics\" and \"Context\"
-
-This mode changes the definition of a word so that word commands
-treat nomenclature boundaries as word boundaries.
-
-\\{subword-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(defvar global-subword-mode nil "\
-Non-nil if Global Subword mode is enabled.
-See the `global-subword-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-subword-mode'.")
-
-(custom-autoload 'global-subword-mode "subword" nil)
-
-(autoload 'global-subword-mode "subword" "\
-Toggle Subword mode in all buffers.
-With prefix ARG, enable Global Subword mode if ARG is positive;
-otherwise, disable it.  If called from Lisp, enable the mode if
-ARG is omitted or nil.
-
-Subword mode is enabled in all buffers where
-`(lambda nil (subword-mode 1))' would do it.
-See `subword-mode' for more information on Subword mode.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'superword-mode "subword" "\
-Toggle superword movement and editing (Superword mode).
-With a prefix argument ARG, enable Superword mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Superword mode is a buffer-local minor mode.  Enabling it changes
-the definition of words such that symbols characters are treated
-as parts of words: e.g., in `superword-mode',
-\"this_is_a_symbol\" counts as one word.
-
-\\{superword-mode-map}
-
-\(fn &optional ARG)" t nil)
-
-(defvar global-superword-mode nil "\
-Non-nil if Global Superword mode is enabled.
-See the `global-superword-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-superword-mode'.")
-
-(custom-autoload 'global-superword-mode "subword" nil)
-
-(autoload 'global-superword-mode "subword" "\
-Toggle Superword mode in all buffers.
-With prefix ARG, enable Global Superword mode if ARG is positive;
-otherwise, disable it.  If called from Lisp, enable the mode if
-ARG is omitted or nil.
-
-Superword mode is enabled in all buffers where
-`(lambda nil (superword-mode 1))' would do it.
-See `superword-mode' for more information on Superword mode.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"subword" '("superword-mode-map" "subword-")))
-
-;;;***
-
-;;;### (autoloads nil "supercite" "mail/supercite.el" (0 0 0 0))
-;;; Generated autoloads from mail/supercite.el
-
-(autoload 'sc-cite-original "supercite" "\
-Workhorse citing function which performs the initial citation.
-This is callable from the various mail and news readers' reply
-function according to the agreed upon standard.  See the associated
-info node `(SC)Top' for more details.
-`sc-cite-original' does not do any yanking of the
-original message but it does require a few things:
-
-     1) The reply buffer is the current buffer.
-
-     2) The original message has been yanked and inserted into the
-        reply buffer.
-
-     3) Verbose mail headers from the original message have been
-        inserted into the reply buffer directly before the text of the
-        original message.
-
-     4) Point is at the beginning of the verbose headers.
-
-     5) Mark is at the end of the body of text to be cited.
-
-The region need not be active (and typically isn't when this
-function is called).  Also, the hook `sc-pre-hook' is run before,
-and `sc-post-hook' is run after the guts of this function.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"supercite" '("sc-")))
-
-;;;***
-
-;;;### (autoloads nil "svg" "svg.el" (0 0 0 0))
-;;; Generated autoloads from svg.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"svg" '("svg-")))
-
-;;;***
-
-;;;### (autoloads nil "t-mouse" "t-mouse.el" (0 0 0 0))
-;;; Generated autoloads from t-mouse.el
-
-(define-obsolete-function-alias 't-mouse-mode 'gpm-mouse-mode "23.1")
-
-(defvar gpm-mouse-mode t "\
-Non-nil if Gpm-Mouse mode is enabled.
-See the `gpm-mouse-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `gpm-mouse-mode'.")
-
-(custom-autoload 'gpm-mouse-mode "t-mouse" nil)
-
-(autoload 'gpm-mouse-mode "t-mouse" "\
-Toggle mouse support in GNU/Linux consoles (GPM Mouse mode).
-With a prefix argument ARG, enable GPM Mouse mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-This allows the use of the mouse when operating on a GNU/Linux console,
-in the same way as you can use the mouse under X11.
-It relies on the `gpm' daemon being activated.
-
-Note that when `gpm-mouse-mode' is enabled, you cannot use the
-mouse to transfer text between Emacs and other programs which use
-GPM.  This is due to limitations in GPM and the Linux kernel.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"t-mouse" '("gpm-mouse-")))
-
-;;;***
-
-;;;### (autoloads nil "tabify" "tabify.el" (0 0 0 0))
-;;; Generated autoloads from tabify.el
-
-(autoload 'untabify "tabify" "\
-Convert all tabs in region to multiple spaces, preserving columns.
-If called interactively with prefix ARG, convert for the entire
-buffer.
-
-Called non-interactively, the region is specified by arguments
-START and END, rather than by the position of point and mark.
-The variable `tab-width' controls the spacing of tab stops.
-
-\(fn START END &optional ARG)" t nil)
-
-(autoload 'tabify "tabify" "\
-Convert multiple spaces in region to tabs when possible.
-A group of spaces is partially replaced by tabs
-when this can be done without changing the column they end at.
-If called interactively with prefix ARG, convert for the entire
-buffer.
-
-Called non-interactively, the region is specified by arguments
-START and END, rather than by the position of point and mark.
-The variable `tab-width' controls the spacing of tab stops.
-
-\(fn START END &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tabify" '("tabify-regexp")))
-
-;;;***
-
-;;;### (autoloads nil "table" "textmodes/table.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/table.el
-
-(autoload 'table-insert "table" "\
-Insert an editable text table.
-Insert a table of specified number of COLUMNS and ROWS.  Optional
-parameter CELL-WIDTH and CELL-HEIGHT can specify the size of each
-cell.  The cell size is uniform across the table if the specified size
-is a number.  They can be a list of numbers to specify different size
-for each cell.  When called interactively, the list of number is
-entered by simply listing all the numbers with space characters
-delimiting them.
-
-Examples:
-
-\\[table-insert] inserts a table at the current point location.
-
-Suppose we have the following situation where `-!-' indicates the
-location of point.
-
-    -!-
-
-Type \\[table-insert] and hit ENTER key.  As it asks table
-specification, provide 3 for number of columns, 1 for number of rows,
-5 for cell width and 1 for cell height.  Now you shall see the next
-table and the point is automatically moved to the beginning of the
-first cell.
-
-    +-----+-----+-----+
-    |-!-  |     |     |
-    +-----+-----+-----+
-
-Inside a table cell, there are special key bindings. \\<table-cell-map>
-
-M-9 \\[table-widen-cell] (or \\[universal-argument] 9 \\[table-widen-cell]) 
widens the first cell by 9 character
-width, which results as
-
-    +--------------+-----+-----+
-    |-!-           |     |     |
-    +--------------+-----+-----+
-
-Type TAB \\[table-widen-cell] then type TAB M-2 M-7 \\[table-widen-cell] (or 
\\[universal-argument] 2 7 \\[table-widen-cell]).  Typing
-TAB moves the point forward by a cell. The result now looks like this:
-
-    +--------------+------+--------------------------------+
-    |              |      |-!-                             |
-    +--------------+------+--------------------------------+
-
-If you knew each width of the columns prior to the table creation,
-what you could have done better was to have had given the complete
-width information to `table-insert'.
-
-Cell width(s): 14 6 32
-
-instead of
-
-Cell width(s): 5
-
-This would have eliminated the previously mentioned width adjustment
-work all together.
-
-If the point is in the last cell type S-TAB S-TAB to move it to the
-first cell.  Now type \\[table-heighten-cell] which heighten the row by a line.
-
-    +--------------+------+--------------------------------+
-    |-!-           |      |                                |
-    |              |      |                                |
-    +--------------+------+--------------------------------+
-
-Type \\[table-insert-row-column] and tell it to insert a row.
-
-    +--------------+------+--------------------------------+
-    |-!-           |      |                                |
-    |              |      |                                |
-    +--------------+------+--------------------------------+
-    |              |      |                                |
-    |              |      |                                |
-    +--------------+------+--------------------------------+
-
-Move the point under the table as shown below.
-
-    +--------------+------+--------------------------------+
-    |              |      |                                |
-    |              |      |                                |
-    +--------------+------+--------------------------------+
-    |              |      |                                |
-    |              |      |                                |
-    +--------------+------+--------------------------------+
-    -!-
-
-Type M-x table-insert-row instead of \\[table-insert-row-column].  
\\[table-insert-row-column] does not work
-when the point is outside of the table.  This insertion at
-outside of the table effectively appends a row at the end.
-
-    +--------------+------+--------------------------------+
-    |              |      |                                |
-    |              |      |                                |
-    +--------------+------+--------------------------------+
-    |              |      |                                |
-    |              |      |                                |
-    +--------------+------+--------------------------------+
-    |-!-           |      |                                |
-    |              |      |                                |
-    +--------------+------+--------------------------------+
-
-Text editing inside the table cell produces reasonably expected
-results.
-
-    +--------------+------+--------------------------------+
-    |              |      |                                |
-    |              |      |                                |
-    +--------------+------+--------------------------------+
-    |              |      |Text editing inside the table   |
-    |              |      |cell produces reasonably        |
-    |              |      |expected results.-!-            |
-    +--------------+------+--------------------------------+
-    |              |      |                                |
-    |              |      |                                |
-    +--------------+------+--------------------------------+
-
-Inside a table cell has a special keymap.
-
-\\{table-cell-map}
-
-\(fn COLUMNS ROWS &optional CELL-WIDTH CELL-HEIGHT)" t nil)
-
-(autoload 'table-insert-row "table" "\
-Insert N table row(s).
-When point is in a table the newly inserted row(s) are placed above
-the current row.  When point is outside of the table it must be below
-the table within the table width range, then the newly created row(s)
-are appended at the bottom of the table.
-
-\(fn N)" t nil)
-
-(autoload 'table-insert-column "table" "\
-Insert N table column(s).
-When point is in a table the newly inserted column(s) are placed left
-of the current column.  When point is outside of the table it must be
-right side of the table within the table height range, then the newly
-created column(s) are appended at the right of the table.
-
-\(fn N)" t nil)
-
-(autoload 'table-insert-row-column "table" "\
-Insert row(s) or column(s).
-See `table-insert-row' and `table-insert-column'.
-
-\(fn ROW-COLUMN N)" t nil)
-
-(autoload 'table-recognize "table" "\
-Recognize all tables within the current buffer and activate them.
-Scans the entire buffer and recognizes valid table cells.  If the
-optional numeric prefix argument ARG is negative the tables in the
-buffer become inactive, meaning the tables become plain text and loses
-all the table specific features.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'table-unrecognize "table" "\
-
-
-\(fn)" t nil)
-
-(autoload 'table-recognize-region "table" "\
-Recognize all tables within region.
-BEG and END specify the region to work on.  If the optional numeric
-prefix argument ARG is negative the tables in the region become
-inactive, meaning the tables become plain text and lose all the table
-specific features.
-
-\(fn BEG END &optional ARG)" t nil)
-
-(autoload 'table-unrecognize-region "table" "\
-
-
-\(fn BEG END)" t nil)
-
-(autoload 'table-recognize-table "table" "\
-Recognize a table at point.
-If the optional numeric prefix argument ARG is negative the table
-becomes inactive, meaning the table becomes plain text and loses all
-the table specific features.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'table-unrecognize-table "table" "\
-
-
-\(fn)" t nil)
-
-(autoload 'table-recognize-cell "table" "\
-Recognize a table cell that contains current point.
-Probe the cell dimension and prepare the cell information.  The
-optional two arguments FORCE and NO-COPY are for internal use only and
-must not be specified.  When the optional numeric prefix argument ARG
-is negative the cell becomes inactive, meaning that the cell becomes
-plain text and loses all the table specific features.
-
-\(fn &optional FORCE NO-COPY ARG)" t nil)
-
-(autoload 'table-unrecognize-cell "table" "\
-
-
-\(fn)" t nil)
-
-(autoload 'table-heighten-cell "table" "\
-Heighten the current cell by N lines by expanding the cell vertically.
-Heightening is done by adding blank lines at the bottom of the current
-cell.  Other cells aligned horizontally with the current one are also
-heightened in order to keep the rectangular table structure.  The
-optional argument NO-COPY is internal use only and must not be
-specified.
-
-\(fn N &optional NO-COPY NO-UPDATE)" t nil)
-
-(autoload 'table-shorten-cell "table" "\
-Shorten the current cell by N lines by shrinking the cell vertically.
-Shortening is done by removing blank lines from the bottom of the cell
-and possibly from the top of the cell as well.  Therefore, the cell
-must have some bottom/top blank lines to be shorten effectively.  This
-is applicable to all the cells aligned horizontally with the current
-one because they are also shortened in order to keep the rectangular
-table structure.
-
-\(fn N)" t nil)
-
-(autoload 'table-widen-cell "table" "\
-Widen the current cell by N columns and expand the cell horizontally.
-Some other cells in the same table are widen as well to keep the
-table's rectangle structure.
-
-\(fn N &optional NO-COPY NO-UPDATE)" t nil)
-
-(autoload 'table-narrow-cell "table" "\
-Narrow the current cell by N columns and shrink the cell horizontally.
-Some other cells in the same table are narrowed as well to keep the
-table's rectangle structure.
-
-\(fn N)" t nil)
-
-(autoload 'table-forward-cell "table" "\
-Move point forward to the beginning of the next cell.
-With argument ARG, do it ARG times;
-a negative argument ARG = -N means move backward N cells.
-Do not specify NO-RECOGNIZE and UNRECOGNIZE. They are for internal use only.
-
-Sample Cell Traveling Order (In Irregular Table Cases)
-
-You can actually try how it works in this buffer.  Press
-\\[table-recognize] and go to cells in the following tables and press
-\\[table-forward-cell] or TAB key.
-
-+-----+--+  +--+-----+  +--+--+--+  +--+--+--+  +---------+  +--+---+--+
-|0    |1 |  |0 |1    |  |0 |1 |2 |  |0 |1 |2 |  |0        |  |0 |1  |2 |
-+--+--+  |  |  +--+--+  +--+  |  |  |  |  +--+  +----+----+  +--+-+-+--+
-|2 |3 |  |  |  |2 |3 |  |3 +--+  |  |  +--+3 |  |1   |2   |  |3   |4   |
-|  +--+--+  +--+--+  |  +--+4 |  |  |  |4 +--+  +--+-+-+--+  +----+----+
-|  |4    |  |4    |  |  |5 |  |  |  |  |  |5 |  |3 |4  |5 |  |5        |
-+--+-----+  +-----+--+  +--+--+--+  +--+--+--+  +--+---+--+  +---------+
-
-+--+--+--+  +--+--+--+  +--+--+--+  +--+--+--+
-|0 |1 |2 |  |0 |1 |2 |  |0 |1 |2 |  |0 |1 |2 |
-|  |  |  |  |  +--+  |  |  |  |  |  +--+  +--+
-+--+  +--+  +--+3 +--+  |  +--+  |  |3 +--+4 |
-|3 |  |4 |  |4 +--+5 |  |  |3 |  |  +--+5 +--+
-|  |  |  |  |  |6 |  |  |  |  |  |  |6 |  |7 |
-+--+--+--+  +--+--+--+  +--+--+--+  +--+--+--+
-
-+--+--+--+  +--+--+--+  +--+--+--+--+  +--+-----+--+  +--+--+--+--+
-|0 |1 |2 |  |0 |1 |2 | |0 |1 |2 |3 |  |0 |1    |2 |  |0 |1 |2 |3 |
-|  +--+  |  |  +--+  | |  +--+--+  |  |  |     |  |  |  +--+--+  |
-|  |3 +--+  +--+3 |  | +--+4    +--+  +--+     +--+  +--+4    +--+
-+--+  |4 |  |4 |  +--+ |5 +--+--+6 |  |3 +--+--+4 |  |5 |     |6 |
-|5 +--+  |  |  +--+5 | |  |7 |8 |  |  |  |5 |6 |  |  |  |     |  |
-|  |6 |  |  |  |6 |  | +--+--+--+--+  +--+--+--+--+  +--+-----+--+
-+--+--+--+  +--+--+--+
-
-\(fn &optional ARG NO-RECOGNIZE UNRECOGNIZE)" t nil)
-
-(autoload 'table-backward-cell "table" "\
-Move backward to the beginning of the previous cell.
-With argument ARG, do it ARG times;
-a negative argument ARG = -N means move forward N cells.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'table-span-cell "table" "\
-Span current cell into adjacent cell in DIRECTION.
-DIRECTION is one of symbols; right, left, above or below.
-
-\(fn DIRECTION)" t nil)
-
-(autoload 'table-split-cell-vertically "table" "\
-Split current cell vertically.
-Creates a cell above and a cell below the current point location.
-
-\(fn)" t nil)
-
-(autoload 'table-split-cell-horizontally "table" "\
-Split current cell horizontally.
-Creates a cell on the left and a cell on the right of the current point 
location.
-
-\(fn)" t nil)
-
-(autoload 'table-split-cell "table" "\
-Split current cell in ORIENTATION.
-ORIENTATION is a symbol either horizontally or vertically.
-
-\(fn ORIENTATION)" t nil)
-
-(autoload 'table-justify "table" "\
-Justify contents of a cell, a row of cells or a column of cells.
-WHAT is a symbol `cell', `row' or `column'.  JUSTIFY is a symbol
-`left', `center', `right', `top', `middle', `bottom' or `none'.
-
-\(fn WHAT JUSTIFY)" t nil)
-
-(autoload 'table-justify-cell "table" "\
-Justify cell contents.
-JUSTIFY is a symbol `left', `center' or `right' for horizontal, or `top',
-`middle', `bottom' or `none' for vertical.  When optional PARAGRAPH is
-non-nil the justify operation is limited to the current paragraph,
-otherwise the entire cell contents is justified.
-
-\(fn JUSTIFY &optional PARAGRAPH)" t nil)
-
-(autoload 'table-justify-row "table" "\
-Justify cells of a row.
-JUSTIFY is a symbol `left', `center' or `right' for horizontal,
-or `top', `middle', `bottom' or `none' for vertical.
-
-\(fn JUSTIFY)" t nil)
-
-(autoload 'table-justify-column "table" "\
-Justify cells of a column.
-JUSTIFY is a symbol `left', `center' or `right' for horizontal,
-or `top', `middle', `bottom' or `none' for vertical.
-
-\(fn JUSTIFY)" t nil)
-
-(autoload 'table-fixed-width-mode "table" "\
-Cell width is fixed when this is non-nil.
-Normally it should be nil for allowing automatic cell width expansion
-that widens a cell when it is necessary.  When non-nil, typing in a
-cell does not automatically expand the cell width.  A word that is too
-long to fit in a cell is chopped into multiple lines.  The chopped
-location is indicated by `table-word-continuation-char'.  This
-variable's value can be toggled by \\[table-fixed-width-mode] at
-run-time.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'table-query-dimension "table" "\
-Return the dimension of the current cell and the current table.
-The result is a list (cw ch tw th c r cells) where cw is the cell
-width, ch is the cell height, tw is the table width, th is the table
-height, c is the number of columns, r is the number of rows and cells
-is the total number of cells.  The cell dimension excludes the cell
-frame while the table dimension includes the table frame.  The columns
-and the rows are counted by the number of cell boundaries.  Therefore
-the number tends to be larger than it appears for the tables with
-non-uniform cell structure (heavily spanned and split).  When optional
-WHERE is provided the cell and table at that location is reported.
-
-\(fn &optional WHERE)" t nil)
-
-(autoload 'table-generate-source "table" "\
-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.
-
-References used for this implementation:
-
-HTML:
-        URL `http://www.w3.org'
-
-LaTeX:
-        URL `http://www.maths.tcd.ie/~dwilkins/LaTeXPrimer/Tables.html'
-
-CALS (DocBook DTD):
-        URL `http://www.oasis-open.org/html/a502.htm'
-        URL 
`http://www.oreilly.com/catalog/docbook/chapter/book/table.html#AEN114751'
-
-\(fn LANGUAGE &optional DEST-BUFFER CAPTION)" t nil)
-
-(autoload 'table-insert-sequence "table" "\
-Travel cells forward while inserting a specified sequence string in each cell.
-STR is the base string from which the sequence starts.  When STR is an
-empty string then each cell content is erased.  When STR ends with
-numerical characters (they may optionally be surrounded by a pair of
-parentheses) they are incremented as a decimal number.  Otherwise the
-last character in STR is incremented in ASCII code order.  N is the
-number of sequence elements to insert.  When N is negative the cell
-traveling direction is backward.  When N is zero it travels forward
-entire table.  INCREMENT is the increment between adjacent sequence
-elements and can be a negative number for effectively decrementing.
-INTERVAL is the number of cells to travel between sequence element
-insertion which is normally 1.  When zero or less is given for
-INTERVAL it is interpreted as number of cells per row so that sequence
-is placed straight down vertically as long as the table's cell
-structure is uniform.  JUSTIFY is a symbol `left', `center' or
-`right' that specifies justification of the inserted string.
-
-Example:
-
-  (progn
-    (table-insert 16 3 5 1)
-    (table-forward-cell 15)
-    (table-insert-sequence \"D0\" -16 1 1 \\='center)
-    (table-forward-cell 16)
-    (table-insert-sequence \"A[0]\" -16 1 1 \\='center)
-    (table-forward-cell 1)
-    (table-insert-sequence \"-\" 16 0 1 \\='center))
-
-  (progn
-    (table-insert 16 8 5 1)
-    (table-insert-sequence \"@\" 0 1 2 \\='right)
-    (table-forward-cell 1)
-    (table-insert-sequence \"64\" 0 1 2 \\='left))
-
-\(fn STR N INCREMENT INTERVAL JUSTIFY)" t nil)
-
-(autoload 'table-delete-row "table" "\
-Delete N row(s) of cells.
-Delete N rows of cells from current row.  The current row is the row
-contains the current cell where point is located.  Each row must
-consists from cells of same height.
-
-\(fn N)" t nil)
-
-(autoload 'table-delete-column "table" "\
-Delete N column(s) of cells.
-Delete N columns of cells from current column.  The current column is
-the column contains the current cell where point is located.  Each
-column must consists from cells of same width.
-
-\(fn N)" t nil)
-
-(autoload 'table-capture "table" "\
-Convert plain text into a table by capturing the text in the region.
-Create a table with the text in region as cell contents.  BEG and END
-specify the region.  The text in the region is replaced with a table.
-The removed text is inserted in the table.  When optional
-COL-DELIM-REGEXP and ROW-DELIM-REGEXP are provided the region contents
-is parsed and separated into individual cell contents by using the
-delimiter regular expressions.  This parsing determines the number of
-columns and rows of the table automatically.  If COL-DELIM-REGEXP and
-ROW-DELIM-REGEXP are omitted the result table has only one cell and
-the entire region contents is placed in that cell.  Optional JUSTIFY
-is one of `left', `center' or `right', which specifies the cell
-justification.  Optional MIN-CELL-WIDTH specifies the minimum cell
-width.  Optional COLUMNS specify the number of columns when
-ROW-DELIM-REGEXP is not specified.
-
-
-Example 1:
-
-1, 2, 3, 4
-5, 6, 7, 8
-, 9, 10
-
-Running `table-capture' on above 3 line region with COL-DELIM-REGEXP
-\",\" and ROW-DELIM-REGEXP \"\\n\" creates the following table.  In
-this example the cells are centered and minimum cell width is
-specified as 5.
-
-+-----+-----+-----+-----+
-|  1  |  2  |  3  |  4  |
-+-----+-----+-----+-----+
-|  5  |  6  |  7  |  8  |
-+-----+-----+-----+-----+
-|     |  9  | 10  |     |
-+-----+-----+-----+-----+
-
-Note:
-
-In case the function is called interactively user must use \\[quoted-insert] 
`quoted-insert'
-in order to enter \"\\n\" successfully.  COL-DELIM-REGEXP at the end
-of each row is optional.
-
-
-Example 2:
-
-This example shows how a table can be used for text layout editing.
-Let `table-capture' capture the following region starting from
--!- and ending at -*-, that contains three paragraphs and two item
-name headers.  This time specify empty string for both
-COL-DELIM-REGEXP and ROW-DELIM-REGEXP.
-
--!-`table-capture' is a powerful command however mastering its power
-requires some practice.  Here is a list of items what it can do.
-
-Parse Cell Items      By using column delimiter regular
-                     expression and raw delimiter regular
-                     expression, it parses the specified text
-                     area and extracts cell items from
-                     non-table text and then forms a table out
-                     of them.
-
-Capture Text Area     When no delimiters are specified it
-                     creates a single cell table.  The text in
-                     the specified region is placed in that
-                     cell.-*-
-
-Now the entire content is captured in a cell which is itself a table
-like this.
-
-+-----------------------------------------------------------------+
-|`table-capture' is a powerful command however mastering its power|
-|requires some practice.  Here is a list of items what it can do. |
-|                                                                 |
-|Parse Cell Items      By using column delimiter regular          |
-|                      expression and raw delimiter regular       |
-|                      expression, it parses the specified text   |
-|                      area and extracts cell items from          |
-|                      non-table text and then forms a table out  |
-|                      of them.                                   |
-|                                                                 |
-|Capture Text Area     When no delimiters are specified it        |
-|                      creates a single cell table.  The text in  |
-|                      the specified region is placed in that     |
-|                      cell.                                      |
-+-----------------------------------------------------------------+
-
-By splitting the cell appropriately we now have a table consisting of
-paragraphs occupying its own cell.  Each cell can now be edited
-independently.
-
-+-----------------------------------------------------------------+
-|`table-capture' is a powerful command however mastering its power|
-|requires some practice.  Here is a list of items what it can do. |
-+---------------------+-------------------------------------------+
-|Parse Cell Items     |By using column delimiter regular          |
-|                     |expression and raw delimiter regular       |
-|                     |expression, it parses the specified text   |
-|                     |area and extracts cell items from          |
-|                     |non-table text and then forms a table out  |
-|                     |of them.                                   |
-+---------------------+-------------------------------------------+
-|Capture Text Area    |When no delimiters are specified it        |
-|                     |creates a single cell table.  The text in  |
-|                     |the specified region is placed in that     |
-|                     |cell.                                      |
-+---------------------+-------------------------------------------+
-
-By applying `table-release', which does the opposite process, the
-contents become once again plain text.  `table-release' works as
-companion command to `table-capture' this way.
-
-\(fn BEG END &optional COL-DELIM-REGEXP ROW-DELIM-REGEXP JUSTIFY 
MIN-CELL-WIDTH COLUMNS)" t nil)
-
-(autoload 'table-release "table" "\
-Convert a table into plain text by removing the frame from a table.
-Remove the frame from a table and deactivate the table.  This command
-converts a table into plain text without frames.  It is a companion to
-`table-capture' which does the opposite process.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"table" '("table-" "*table--")))
-
-;;;***
-
-;;;### (autoloads nil "tabulated-list" "emacs-lisp/tabulated-list.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/tabulated-list.el
-(push (purecopy '(tabulated-list 1 0)) package--builtin-versions)
-
-;;;***
-
-;;;### (autoloads nil "talk" "talk.el" (0 0 0 0))
-;;; Generated autoloads from talk.el
-
-(autoload 'talk-connect "talk" "\
-Connect to display DISPLAY for the Emacs talk group.
-
-\(fn DISPLAY)" t nil)
-
-(autoload 'talk "talk" "\
-Connect to the Emacs talk group from the current X display or tty frame.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"talk" '("talk-")))
-
-;;;***
-
-;;;### (autoloads nil "tar-mode" "tar-mode.el" (0 0 0 0))
-;;; Generated autoloads from tar-mode.el
-
-(autoload 'tar-mode "tar-mode" "\
-Major mode for viewing a tar file as a dired-like listing of its contents.
-You can move around using the usual cursor motion commands.
-Letters no longer insert themselves.
-Type `e' to pull a file out of the tar file and into its own buffer;
-or click mouse-2 on the file's line in the Tar mode buffer.
-Type `c' to copy an entry from the tar file into another file on disk.
-
-If you edit a sub-file of this archive (as with the `e' command) and
-save it with \\[save-buffer], the contents of that buffer will be
-saved back into the tar-file buffer; in this way you can edit a file
-inside of a tar archive without extracting it and re-archiving it.
-
-See also: variables `tar-update-datestamp' and `tar-anal-blocksize'.
-\\{tar-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tar-mode" '("tar-")))
-
-;;;***
-
-;;;### (autoloads nil "tcl" "progmodes/tcl.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/tcl.el
-
-(autoload 'tcl-mode "tcl" "\
-Major mode for editing Tcl code.
-Expression and list commands understand all Tcl brackets.
-Tab indents for Tcl code.
-Paragraphs are separated by blank lines only.
-Delete converts tabs to spaces as it moves back.
-
-Variables controlling indentation style:
-  `tcl-indent-level'
-    Indentation of Tcl statements within surrounding block.
-  `tcl-continued-indent-level'
-    Indentation of continuation line relative to first line of command.
-
-Variables controlling user interaction with mode (see variable
-documentation for details):
-  `tcl-tab-always-indent'
-    Controls action of TAB key.
-  `tcl-auto-newline'
-    Non-nil means automatically newline before and after braces, brackets,
-    and semicolons inserted in Tcl code.
-  `tcl-use-smart-word-finder'
-    If not nil, use a smarter, Tcl-specific way to find the current
-    word when looking up help on a Tcl command.
-
-Turning on Tcl mode runs `tcl-mode-hook'.  Read the documentation for
-`tcl-mode-hook' to see what kinds of interesting hook functions
-already exist.
-
-\(fn)" t nil)
-
-(autoload 'inferior-tcl "tcl" "\
-Run inferior Tcl process.
-Prefix arg means enter program name interactively.
-See documentation for function `inferior-tcl-mode' for more information.
-
-\(fn CMD)" t nil)
-
-(autoload 'tcl-help-on-word "tcl" "\
-Get help on Tcl command.  Default is word at point.
-Prefix argument means invert sense of `tcl-use-smart-word-finder'.
-
-\(fn COMMAND &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tcl" '("tcl-" "calculate-tcl-indent" "inferior-tcl-" "indent-tcl-exp" 
"add-log-tcl-defun" "run-tcl" "switch-to-tcl")))
-
-;;;***
-
-;;;### (autoloads nil "tcover-ses" "emacs-lisp/tcover-ses.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from emacs-lisp/tcover-ses.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tcover-ses" '("ses-exercise")))
-
-;;;***
-
-;;;### (autoloads nil "tcover-unsafep" "emacs-lisp/tcover-unsafep.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/tcover-unsafep.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tcover-unsafep" '("testcover-unsafep")))
-
-;;;***
-
-;;;### (autoloads nil "telnet" "net/telnet.el" (0 0 0 0))
-;;; Generated autoloads from net/telnet.el
-
-(autoload 'telnet "telnet" "\
-Open a network login connection to host named HOST (a string).
-Optional arg PORT specifies alternative port to connect to.
-Interactively, use \\[universal-argument] prefix to be prompted for port 
number.
-
-Communication with HOST is recorded in a buffer `*PROGRAM-HOST*'
-where PROGRAM is the telnet program being used.  This program
-is controlled by the contents of the global variable `telnet-host-properties',
-falling back on the value of the global variable `telnet-program'.
-Normally input is edited in Emacs and sent a line at a time.
-
-\(fn HOST &optional PORT)" t nil)
-
-(autoload 'rsh "telnet" "\
-Open a network login connection to host named HOST (a string).
-Communication with HOST is recorded in a buffer `*rsh-HOST*'.
-Normally input is edited in Emacs and sent a line at a time.
-
-\(fn HOST)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"telnet" '("telnet-" "send-process-next-char")))
-
-;;;***
-
-;;;### (autoloads nil "tempo" "tempo.el" (0 0 0 0))
-;;; Generated autoloads from tempo.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tempo" '("tempo-")))
-
-;;;***
-
-;;;### (autoloads nil "term" "term.el" (0 0 0 0))
-;;; Generated autoloads from term.el
-
-(autoload 'make-term "term" "\
-Make a term process NAME in a buffer, running PROGRAM.
-The name of the buffer is made by surrounding NAME with `*'s.
-If there is already a running process in that buffer, it is not restarted.
-Optional third arg STARTFILE is the name of a file to send the contents of to
-the process.  Any more args are arguments to PROGRAM.
-
-\(fn NAME PROGRAM &optional STARTFILE &rest SWITCHES)" nil nil)
-
-(autoload 'term "term" "\
-Start a terminal-emulator in a new buffer.
-The buffer is in Term mode; see `term-mode' for the
-commands to use in that buffer.
-
-\\<term-raw-map>Type \\[switch-to-buffer] to switch to another buffer.
-
-\(fn PROGRAM)" t nil)
-
-(autoload 'ansi-term "term" "\
-Start a terminal-emulator in a new buffer.
-
-\(fn PROGRAM &optional NEW-BUFFER-NAME)" t nil)
-
-(autoload 'serial-term "term" "\
-Start a terminal-emulator for a serial port in a new buffer.
-PORT is the path or name of the serial port.  For example, this
-could be \"/dev/ttyS0\" on Unix.  On Windows, this could be
-\"COM1\" or \"\\\\.\\COM10\".
-SPEED is the speed of the serial port in bits per second.  9600
-is a common value.  SPEED can be nil, see
-`serial-process-configure' for details.
-The buffer is in Term mode; see `term-mode' for the commands to
-use in that buffer.
-\\<term-raw-map>Type \\[switch-to-buffer] to switch to another buffer.
-
-\(fn PORT SPEED)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"term" '("serial-" "term-" "ansi-term-color-vector" 
"explicit-shell-file-name")))
-
-;;;***
-
-;;;### (autoloads nil "testcover" "emacs-lisp/testcover.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emacs-lisp/testcover.el
-
-(autoload 'testcover-start "testcover" "\
-Uses edebug to instrument all macros and functions in FILENAME, then
-changes the instrumentation from edebug to testcover--much faster, no
-problems with type-ahead or post-command-hook, etc.  If BYTE-COMPILE is
-non-nil, byte-compiles each function after instrumenting.
-
-\(fn FILENAME &optional BYTE-COMPILE)" t nil)
-
-(autoload 'testcover-this-defun "testcover" "\
-Start coverage on function under point.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"testcover" '("testcover-")))
-
-;;;***
-
-;;;### (autoloads nil "tetris" "play/tetris.el" (0 0 0 0))
-;;; Generated autoloads from play/tetris.el
-(push (purecopy '(tetris 2 1)) package--builtin-versions)
-
-(autoload 'tetris "tetris" "\
-Play the Tetris game.
-Shapes drop from the top of the screen, and the user has to move and
-rotate the shape to fit in with those at the bottom of the screen so
-as to form complete rows.
-
-tetris-mode keybindings:
-   \\<tetris-mode-map>
-\\[tetris-start-game]  Starts a new game of Tetris
-\\[tetris-end-game]    Terminates the current game
-\\[tetris-pause-game]  Pauses (or resumes) the current game
-\\[tetris-move-left]   Moves the shape one square to the left
-\\[tetris-move-right]  Moves the shape one square to the right
-\\[tetris-rotate-prev] Rotates the shape clockwise
-\\[tetris-rotate-next] Rotates the shape anticlockwise
-\\[tetris-move-bottom] Drops the shape to the bottom of the playing area
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tetris" '("tetris-")))
-
-;;;***
-
-;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/tex-mode.el
-
-(defvar tex-shell-file-name nil "\
-If non-nil, the shell file name to run in the subshell used to run TeX.")
-
-(custom-autoload 'tex-shell-file-name "tex-mode" t)
-
-(defvar tex-directory (purecopy ".") "\
-Directory in which temporary files are written.
-You can make this `/tmp' if your TEXINPUTS has no relative directories in it
-and you don't try to apply \\[tex-region] or \\[tex-buffer] when there are
-`\\input' commands with relative directories.")
-
-(custom-autoload 'tex-directory "tex-mode" t)
-
-(defvar tex-first-line-header-regexp nil "\
-Regexp for matching a first line which `tex-region' should include.
-If this is non-nil, it should be a regular expression string;
-if it matches the first line of the file,
-`tex-region' always includes the first line in the TeX run.")
-
-(custom-autoload 'tex-first-line-header-regexp "tex-mode" t)
-
-(defvar tex-main-file nil "\
-The main TeX source file which includes this buffer's file.
-The command `tex-file' runs TeX on the file specified by `tex-main-file'
-if the variable is non-nil.")
-
-(custom-autoload 'tex-main-file "tex-mode" t)
-
-(defvar tex-offer-save t "\
-If non-nil, ask about saving modified buffers before \\[tex-file] is run.")
-
-(custom-autoload 'tex-offer-save "tex-mode" t)
-
-(defvar tex-run-command (purecopy "tex") "\
-Command used to run TeX subjob.
-TeX Mode sets `tex-command' to this string.
-See the documentation of that variable.")
-
-(custom-autoload 'tex-run-command "tex-mode" t)
-
-(defvar latex-run-command (purecopy "latex") "\
-Command used to run LaTeX subjob.
-LaTeX Mode sets `tex-command' to this string.
-See the documentation of that variable.")
-
-(custom-autoload 'latex-run-command "tex-mode" t)
-
-(defvar slitex-run-command (purecopy "slitex") "\
-Command used to run SliTeX subjob.
-SliTeX Mode sets `tex-command' to this string.
-See the documentation of that variable.")
-
-(custom-autoload 'slitex-run-command "tex-mode" t)
-
-(defvar tex-start-options (purecopy "") "\
-TeX options to use when starting TeX.
-These immediately precede the commands in `tex-start-commands'
-and the input file name, with no separating space and are not shell-quoted.
-If nil, TeX runs with no options.  See the documentation of `tex-command'.")
-
-(custom-autoload 'tex-start-options "tex-mode" t)
-
-(defvar tex-start-commands (purecopy "\\nonstopmode\\input") "\
-TeX commands to use when starting TeX.
-They are shell-quoted and precede the input file name, with a separating space.
-If nil, no commands are used.  See the documentation of `tex-command'.")
-
-(custom-autoload 'tex-start-commands "tex-mode" t)
-
-(defvar latex-block-names nil "\
-User defined LaTeX block names.
-Combined with `latex-standard-block-names' for minibuffer completion.")
-
-(custom-autoload 'latex-block-names "tex-mode" t)
-
-(defvar tex-bibtex-command (purecopy "bibtex") "\
-Command used by `tex-bibtex-file' to gather bibliographic data.
-If this string contains an asterisk (`*'), that is replaced by the file name;
-otherwise, the file name, preceded by blank, is added at the end.")
-
-(custom-autoload 'tex-bibtex-command "tex-mode" t)
-
-(defvar tex-dvi-print-command (purecopy "lpr -d") "\
-Command used by \\[tex-print] to print a .dvi file.
-If this string contains an asterisk (`*'), that is replaced by the file name;
-otherwise, the file name, preceded by blank, is added at the end.")
-
-(custom-autoload 'tex-dvi-print-command "tex-mode" t)
-
-(defvar tex-alt-dvi-print-command (purecopy "lpr -d") "\
-Command used by \\[tex-print] with a prefix arg to print a .dvi file.
-If this string contains an asterisk (`*'), that is replaced by the file name;
-otherwise, the file name, preceded by blank, is added at the end.
-
-If two printers are not enough of a choice, you can set the variable
-`tex-alt-dvi-print-command' to an expression that asks what you want;
-for example,
-
-    (setq tex-alt-dvi-print-command
-         \\='(format \"lpr -P%s\" (read-string \"Use printer: \")))
-
-would tell \\[tex-print] with a prefix argument to ask you which printer to
-use.")
-
-(custom-autoload 'tex-alt-dvi-print-command "tex-mode" t)
-
-(defvar tex-dvi-view-command `(cond ((eq window-system 'x) ,(purecopy "xdvi")) 
((eq window-system 'w32) ,(purecopy "yap")) (t ,(purecopy "dvi2tty * | cat 
-s"))) "\
-Command used by \\[tex-view] to display a `.dvi' file.
-If it is a string, that specifies the command directly.
-If this string contains an asterisk (`*'), that is replaced by the file name;
-otherwise, the file name, preceded by a space, is added at the end.
-
-If the value is a form, it is evaluated to get the command to use.")
-
-(custom-autoload 'tex-dvi-view-command "tex-mode" t)
-
-(defvar tex-show-queue-command (purecopy "lpq") "\
-Command used by \\[tex-show-print-queue] to show the print queue.
-Should show the queue(s) that \\[tex-print] puts jobs on.")
-
-(custom-autoload 'tex-show-queue-command "tex-mode" t)
-
-(defvar tex-default-mode 'latex-mode "\
-Mode to enter for a new file that might be either TeX or LaTeX.
-This variable is used when it can't be determined whether the file
-is plain TeX or LaTeX or what because the file contains no commands.
-Normally set to either `plain-tex-mode' or `latex-mode'.")
-
-(custom-autoload 'tex-default-mode "tex-mode" t)
-
-(defvar tex-open-quote (purecopy "``") "\
-String inserted by typing \\[tex-insert-quote] to open a quotation.")
-
-(custom-autoload 'tex-open-quote "tex-mode" t)
-
-(defvar tex-close-quote (purecopy "''") "\
-String inserted by typing \\[tex-insert-quote] to close a quotation.")
-
-(custom-autoload 'tex-close-quote "tex-mode" t)
-
-(autoload 'tex-mode "tex-mode" "\
-Major mode for editing files of input for TeX, LaTeX, or SliTeX.
-Tries to determine (by looking at the beginning of the file) whether
-this file is for plain TeX, LaTeX, or SliTeX and calls `plain-tex-mode',
-`latex-mode', or `slitex-mode', respectively.  If it cannot be determined,
-such as if there are no commands in the file, the value of `tex-default-mode'
-says which mode to use.
-
-\(fn)" t nil)
-
-(defalias 'TeX-mode 'tex-mode)
-
-(defalias 'plain-TeX-mode 'plain-tex-mode)
-
-(defalias 'LaTeX-mode 'latex-mode)
-
-(autoload 'plain-tex-mode "tex-mode" "\
-Major mode for editing files of input for plain TeX.
-Makes $ and } display the characters they match.
-Makes \" insert \\=`\\=` when it seems to be the beginning of a quotation,
-and \\='\\=' when it appears to be the end; it inserts \" only after a \\.
-
-Use \\[tex-region] to run TeX on the current region, plus a \"header\"
-copied from the top of the file (containing macro definitions, etc.),
-running TeX under a special subshell.  \\[tex-buffer] does the whole buffer.
-\\[tex-file] saves the buffer and then processes the file.
-\\[tex-print] prints the .dvi file made by any of these.
-\\[tex-view] previews the .dvi file made by any of these.
-\\[tex-bibtex-file] runs bibtex on the file of the current buffer.
-
-Use \\[tex-validate-buffer] to check buffer for paragraphs containing
-mismatched $'s or braces.
-
-Special commands:
-\\{plain-tex-mode-map}
-
-Mode variables:
-tex-run-command
-       Command string used by \\[tex-region] or \\[tex-buffer].
-tex-directory
-       Directory in which to create temporary files for TeX jobs
-       run by \\[tex-region] or \\[tex-buffer].
-tex-dvi-print-command
-       Command string used by \\[tex-print] to print a .dvi file.
-tex-alt-dvi-print-command
-       Alternative command string used by \\[tex-print] (when given a prefix
-       argument) to print a .dvi file.
-tex-dvi-view-command
-       Command string used by \\[tex-view] to preview a .dvi file.
-tex-show-queue-command
-       Command string used by \\[tex-show-print-queue] to show the print
-       queue that \\[tex-print] put your job on.
-
-Entering Plain-tex mode runs the hook `text-mode-hook', then the hook
-`tex-mode-hook', and finally the hook `plain-tex-mode-hook'.  When the
-special subshell is initiated, the hook `tex-shell-hook' is run.
-
-\(fn)" t nil)
-
-(autoload 'latex-mode "tex-mode" "\
-Major mode for editing files of input for LaTeX.
-Makes $ and } display the characters they match.
-Makes \" insert \\=`\\=` when it seems to be the beginning of a quotation,
-and \\='\\=' when it appears to be the end; it inserts \" only after a \\.
-
-Use \\[tex-region] to run LaTeX on the current region, plus the preamble
-copied from the top of the file (containing \\documentstyle, etc.),
-running LaTeX under a special subshell.  \\[tex-buffer] does the whole buffer.
-\\[tex-file] saves the buffer and then processes the file.
-\\[tex-print] prints the .dvi file made by any of these.
-\\[tex-view] previews the .dvi file made by any of these.
-\\[tex-bibtex-file] runs bibtex on the file of the current buffer.
-
-Use \\[tex-validate-buffer] to check buffer for paragraphs containing
-mismatched $'s or braces.
-
-Special commands:
-\\{latex-mode-map}
-
-Mode variables:
-latex-run-command
-       Command string used by \\[tex-region] or \\[tex-buffer].
-tex-directory
-       Directory in which to create temporary files for LaTeX jobs
-       run by \\[tex-region] or \\[tex-buffer].
-tex-dvi-print-command
-       Command string used by \\[tex-print] to print a .dvi file.
-tex-alt-dvi-print-command
-       Alternative command string used by \\[tex-print] (when given a prefix
-       argument) to print a .dvi file.
-tex-dvi-view-command
-       Command string used by \\[tex-view] to preview a .dvi file.
-tex-show-queue-command
-       Command string used by \\[tex-show-print-queue] to show the print
-       queue that \\[tex-print] put your job on.
-
-Entering Latex mode runs the hook `text-mode-hook', then
-`tex-mode-hook', and finally `latex-mode-hook'.  When the special
-subshell is initiated, `tex-shell-hook' is run.
-
-\(fn)" t nil)
-
-(autoload 'slitex-mode "tex-mode" "\
-Major mode for editing files of input for SliTeX.
-Makes $ and } display the characters they match.
-Makes \" insert \\=`\\=` when it seems to be the beginning of a quotation,
-and \\='\\=' when it appears to be the end; it inserts \" only after a \\.
-
-Use \\[tex-region] to run SliTeX on the current region, plus the preamble
-copied from the top of the file (containing \\documentstyle, etc.),
-running SliTeX under a special subshell.  \\[tex-buffer] does the whole buffer.
-\\[tex-file] saves the buffer and then processes the file.
-\\[tex-print] prints the .dvi file made by any of these.
-\\[tex-view] previews the .dvi file made by any of these.
-\\[tex-bibtex-file] runs bibtex on the file of the current buffer.
-
-Use \\[tex-validate-buffer] to check buffer for paragraphs containing
-mismatched $'s or braces.
-
-Special commands:
-\\{slitex-mode-map}
-
-Mode variables:
-slitex-run-command
-       Command string used by \\[tex-region] or \\[tex-buffer].
-tex-directory
-       Directory in which to create temporary files for SliTeX jobs
-       run by \\[tex-region] or \\[tex-buffer].
-tex-dvi-print-command
-       Command string used by \\[tex-print] to print a .dvi file.
-tex-alt-dvi-print-command
-       Alternative command string used by \\[tex-print] (when given a prefix
-       argument) to print a .dvi file.
-tex-dvi-view-command
-       Command string used by \\[tex-view] to preview a .dvi file.
-tex-show-queue-command
-       Command string used by \\[tex-show-print-queue] to show the print
-       queue that \\[tex-print] put your job on.
-
-Entering SliTeX mode runs the hook `text-mode-hook', then the hook
-`tex-mode-hook', then the hook `latex-mode-hook', and finally the hook
-`slitex-mode-hook'.  When the special subshell is initiated, the hook
-`tex-shell-hook' is run.
-
-\(fn)" t nil)
-
-(autoload 'tex-start-shell "tex-mode" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'doctex-mode "tex-mode" "\
-Major mode to edit DocTeX files.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tex-mode" '("tex-" "doctex-font-lock-" "latex-" "plain-tex-mode-map")))
-
-;;;***
-
-;;;### (autoloads nil "texinfmt" "textmodes/texinfmt.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/texinfmt.el
-
-(autoload 'texinfo-format-buffer "texinfmt" "\
-Process the current buffer as texinfo code, into an Info file.
-The Info file output is generated in a buffer visiting the Info file
-name specified in the @setfilename command.
-
-Non-nil argument (prefix, if interactive) means don't make tag table
-and don't split the file if large.  You can use `Info-tagify' and
-`Info-split' to do these manually.
-
-\(fn &optional NOSPLIT)" t nil)
-
-(autoload 'texinfo-format-region "texinfmt" "\
-Convert the current region of the Texinfo file to Info format.
-This lets you see what that part of the file will look like in Info.
-The command is bound to \\[texinfo-format-region].  The text that is
-converted to Info is stored in a temporary buffer.
-
-\(fn REGION-BEGINNING REGION-END)" t nil)
-
-(autoload 'texi2info "texinfmt" "\
-Convert the current buffer (written in Texinfo code) into an Info file.
-The Info file output is generated in a buffer visiting the Info file
-names specified in the @setfilename command.
-
-This function automatically updates all node pointers and menus, and
-creates a master menu.  This work is done on a temporary buffer that
-is automatically removed when the Info file is created.  The original
-Texinfo source buffer is not changed.
-
-Non-nil argument (prefix, if interactive) means don't split the file
-if large.  You can use `Info-split' to do this manually.
-
-\(fn &optional NOSPLIT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"texinfmt" '("batch-texinfo-format" "texinf")))
-
-;;;***
-
-;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/texinfo.el
-
-(defvar texinfo-open-quote (purecopy "``") "\
-String inserted by typing \\[texinfo-insert-quote] to open a quotation.")
-
-(custom-autoload 'texinfo-open-quote "texinfo" t)
-
-(defvar texinfo-close-quote (purecopy "''") "\
-String inserted by typing \\[texinfo-insert-quote] to close a quotation.")
-
-(custom-autoload 'texinfo-close-quote "texinfo" t)
-
-(autoload 'texinfo-mode "texinfo" "\
-Major mode for editing Texinfo files.
-
-  It has these extra commands:
-\\{texinfo-mode-map}
-
-  These are files that are used as input for TeX to make printed manuals
-and also to be turned into Info files with \\[makeinfo-buffer] or
-the `makeinfo' program.  These files must be written in a very restricted and
-modified version of TeX input format.
-
-  Editing commands are like text-mode except that the syntax table is
-set up so expression commands skip Texinfo bracket groups.  To see
-what the Info version of a region of the Texinfo file will look like,
-use \\[makeinfo-region], which runs `makeinfo' on the current region.
-
-  You can show the structure of a Texinfo file with \\[texinfo-show-structure].
-This command shows the structure of a Texinfo file by listing the
-lines with the @-sign commands for @chapter, @section, and the like.
-These lines are displayed in another window called the *Occur* window.
-In that window, you can position the cursor over one of the lines and
-use \\[occur-mode-goto-occurrence], to jump to the corresponding spot
-in the Texinfo file.
-
-  In addition, Texinfo mode provides commands that insert various
-frequently used @-sign commands into the buffer.  You can use these
-commands to save keystrokes.  And you can insert balanced braces with
-\\[texinfo-insert-braces] and later use the command \\[up-list] to
-move forward past the closing brace.
-
-Also, Texinfo mode provides functions for automatically creating or
-updating menus and node pointers.  These functions
-
-  * insert the `Next', `Previous' and `Up' pointers of a node,
-  * insert or update the menu for a section, and
-  * create a master menu for a Texinfo source file.
-
-Here are the functions:
-
-    texinfo-update-node                \\[texinfo-update-node]
-    texinfo-every-node-update          \\[texinfo-every-node-update]
-    texinfo-sequential-node-update
-
-    texinfo-make-menu                  \\[texinfo-make-menu]
-    texinfo-all-menus-update           \\[texinfo-all-menus-update]
-    texinfo-master-menu
-
-    texinfo-indent-menu-description (column &optional region-p)
-
-The `texinfo-column-for-description' variable specifies the column to
-which menu descriptions are indented.
-
-Passed an argument (a prefix argument, if interactive), the
-`texinfo-update-node' and `texinfo-make-menu' functions do their jobs
-in the region.
-
-To use the updating commands, you must structure your Texinfo file
-hierarchically, such that each address@hidden' line, with the exception of the
-Top node, is accompanied by some kind of section line, such as an
address@hidden' or address@hidden' line.
-
-If the file has a `top' node, it must be called `top' or `Top' and
-be the first node in the file.
-
-Entering Texinfo mode calls the value of `text-mode-hook', and then the
-value of `texinfo-mode-hook'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"texinfo" '("texinfo-")))
-
-;;;***
-
-;;;### (autoloads nil "texnfo-upd" "textmodes/texnfo-upd.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from textmodes/texnfo-upd.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"texnfo-upd" '("texinfo-")))
-
-;;;***
-
-;;;### (autoloads nil "thai-util" "language/thai-util.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from language/thai-util.el
-
-(autoload 'thai-compose-region "thai-util" "\
-Compose Thai characters in the region.
-When called from a program, expects two arguments,
-positions (integers or markers) specifying the region.
-
-\(fn BEG END)" t nil)
-
-(autoload 'thai-compose-string "thai-util" "\
-Compose Thai characters in STRING and return the resulting string.
-
-\(fn STRING)" nil nil)
-
-(autoload 'thai-compose-buffer "thai-util" "\
-Compose Thai characters in the current buffer.
-
-\(fn)" t nil)
-
-(autoload 'thai-composition-function "thai-util" "\
-
-
-\(fn GSTRING)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"thai-util" '("exit-thai-language-environment-internal" 
"setup-thai-language-environment-internal" "thai-")))
-
-;;;***
-
-;;;### (autoloads nil "thai-word" "language/thai-word.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from language/thai-word.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"thai-word" '("thai-")))
-
-;;;***
-
-;;;### (autoloads nil "thingatpt" "thingatpt.el" (0 0 0 0))
-;;; Generated autoloads from thingatpt.el
-
-(autoload 'forward-thing "thingatpt" "\
-Move forward to the end of the Nth next THING.
-THING should be a symbol specifying a type of syntactic entity.
-Possibilities include `symbol', `list', `sexp', `defun',
-`filename', `url', `email', `word', `sentence', `whitespace',
-`line', and `page'.
-
-\(fn THING &optional N)" nil nil)
-
-(autoload 'bounds-of-thing-at-point "thingatpt" "\
-Determine the start and end buffer locations for the THING at point.
-THING should be a symbol specifying a type of syntactic entity.
-Possibilities include `symbol', `list', `sexp', `defun',
-`filename', `url', `email', `word', `sentence', `whitespace',
-`line', and `page'.
-
-See the file `thingatpt.el' for documentation on how to define a
-valid THING.
-
-Return a cons cell (START . END) giving the start and end
-positions of the thing found.
-
-\(fn THING)" nil nil)
-
-(autoload 'thing-at-point "thingatpt" "\
-Return the THING at point.
-THING should be a symbol specifying a type of syntactic entity.
-Possibilities include `symbol', `list', `sexp', `defun',
-`filename', `url', `email', `word', `sentence', `whitespace',
-`line', `number', and `page'.
-
-When the optional argument NO-PROPERTIES is non-nil,
-strip text properties from the return value.
-
-See the file `thingatpt.el' for documentation on how to define
-a symbol as a valid THING.
-
-\(fn THING &optional NO-PROPERTIES)" nil nil)
-
-(autoload 'sexp-at-point "thingatpt" "\
-Return the sexp at point, or nil if none is found.
-
-\(fn)" nil nil)
-
-(autoload 'symbol-at-point "thingatpt" "\
-Return the symbol at point, or nil if none is found.
-
-\(fn)" nil nil)
-
-(autoload 'number-at-point "thingatpt" "\
-Return the number at point, or nil if none is found.
-
-\(fn)" nil nil)
-
-(autoload 'list-at-point "thingatpt" "\
-Return the Lisp list at point, or nil if none is found.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"thingatpt" '("form-at-point" "thing-at-point-" "sentence-at-point" 
"word-at-point" "in-string-p" "end-of-thing" "beginning-of-thing")))
-
-;;;***
-
-;;;### (autoloads nil "thumbs" "thumbs.el" (0 0 0 0))
-;;; Generated autoloads from thumbs.el
-
-(autoload 'thumbs-find-thumb "thumbs" "\
-Display the thumbnail for IMG.
-
-\(fn IMG)" t nil)
-
-(autoload 'thumbs-show-from-dir "thumbs" "\
-Make a preview buffer for all images in DIR.
-Optional argument REG to select file matching a regexp,
-and SAME-WINDOW to show thumbs in the same window.
-
-\(fn DIR &optional REG SAME-WINDOW)" t nil)
-
-(autoload 'thumbs-dired-show-marked "thumbs" "\
-In dired, make a thumbs buffer with marked files.
-
-\(fn)" t nil)
-
-(autoload 'thumbs-dired-show "thumbs" "\
-In dired, make a thumbs buffer with all files in current directory.
-
-\(fn)" t nil)
-
-(defalias 'thumbs 'thumbs-show-from-dir)
-
-(autoload 'thumbs-dired-setroot "thumbs" "\
-In dired, call the setroot program on the image at point.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"thumbs" '("thumbs-")))
-
-;;;***
-
-;;;### (autoloads nil "thunk" "emacs-lisp/thunk.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/thunk.el
-(push (purecopy '(thunk 1 0)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"thunk" '("thunk-")))
-
-;;;***
-
-;;;### (autoloads nil "tibet-util" "language/tibet-util.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from language/tibet-util.el
-
-(autoload 'tibetan-char-p "tibet-util" "\
-Check if char CH is Tibetan character.
-Returns non-nil if CH is Tibetan. Otherwise, returns nil.
-
-\(fn CH)" nil nil)
-
-(autoload 'tibetan-tibetan-to-transcription "tibet-util" "\
-Transcribe Tibetan string STR and return the corresponding Roman string.
-
-\(fn STR)" nil nil)
-
-(autoload 'tibetan-transcription-to-tibetan "tibet-util" "\
-Convert Tibetan Roman string STR to Tibetan character string.
-The returned string has no composition information.
-
-\(fn STR)" nil nil)
-
-(autoload 'tibetan-compose-string "tibet-util" "\
-Compose Tibetan string STR.
-
-\(fn STR)" nil nil)
-
-(autoload 'tibetan-compose-region "tibet-util" "\
-Compose Tibetan text the region BEG and END.
-
-\(fn BEG END)" t nil)
-
-(autoload 'tibetan-decompose-region "tibet-util" "\
-Decompose Tibetan text in the region FROM and TO.
-This is different from decompose-region because precomposed Tibetan characters
-are decomposed into normal Tibetan character sequences.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'tibetan-decompose-string "tibet-util" "\
-Decompose Tibetan string STR.
-This is different from decompose-string because precomposed Tibetan characters
-are decomposed into normal Tibetan character sequences.
-
-\(fn STR)" nil nil)
-
-(autoload 'tibetan-decompose-buffer "tibet-util" "\
-Decomposes Tibetan characters in the buffer into their components.
-See also the documentation of the function `tibetan-decompose-region'.
-
-\(fn)" t nil)
-
-(autoload 'tibetan-compose-buffer "tibet-util" "\
-Composes Tibetan character components in the buffer.
-See also docstring of the function tibetan-compose-region.
-
-\(fn)" t nil)
-
-(autoload 'tibetan-post-read-conversion "tibet-util" "\
-
-
-\(fn LEN)" nil nil)
-
-(autoload 'tibetan-pre-write-conversion "tibet-util" "\
-
-
-\(fn FROM TO)" nil nil)
-
-(autoload 'tibetan-pre-write-canonicalize-for-unicode "tibet-util" "\
-
-
-\(fn FROM TO)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tibet-util" '("tibetan-")))
-
-;;;***
-
-;;;### (autoloads nil "tildify" "textmodes/tildify.el" (0 0 0 0))
-;;; Generated autoloads from textmodes/tildify.el
-(push (purecopy '(tildify 4 6 1)) package--builtin-versions)
-
-(autoload 'tildify-region "tildify" "\
-Add hard spaces in the region between BEG and END.
-See variables `tildify-pattern', `tildify-space-string', and
-`tildify-ignored-environments-alist' for information about configuration
-parameters.
-This function performs no refilling of the changed text.
-If DONT-ASK is set, or called interactively with prefix argument, user
-won't be prompted for confirmation of each substitution.
-
-\(fn BEG END &optional DONT-ASK)" t nil)
-
-(autoload 'tildify-buffer "tildify" "\
-Add hard spaces in the current buffer.
-See variables `tildify-pattern', `tildify-space-string', and
-`tildify-ignored-environments-alist' for information about configuration
-parameters.
-This function performs no refilling of the changed text.
-If DONT-ASK is set, or called interactively with prefix argument, user
-won't be prompted for confirmation of each substitution.
-
-\(fn &optional DONT-ASK)" t nil)
-
-(autoload 'tildify-space "tildify" "\
-Convert space before point into a hard space if the context is right.
-
-If
- * character before point is a space character,
- * character before that has \"w\" character syntax (i.e. it's a word
-   constituent),
- * `tildify-space-pattern' matches when `looking-back' (no more than 10
-   characters) from before the space character, and
- * all predicates in `tildify-space-predicates' return non-nil,
-replace the space character with value of `tildify-space-string' and
-return t.
-
-Otherwise, if
- * `tildify-double-space-undos' variable is non-nil,
- * character before point is a space character, and
- * text before that is a hard space as defined by
-   `tildify-space-string' variable,
-remove the hard space and leave only the space character.
-
-This function is meant to be used as a `post-self-insert-hook'.
-
-\(fn)" t nil)
-
-(autoload 'tildify-mode "tildify" "\
-Adds electric behavior to space character.
-
-When space is inserted into a buffer in a position where hard space is required
-instead (determined by `tildify-space-pattern' and `tildify-space-predicates'),
-that space character is replaced by a hard space specified by
-`tildify-space-string'.  Converting of the space is done by `tildify-space'.
-
-When `tildify-mode' is enabled, if `tildify-string-alist' specifies a hard 
space
-representation for current major mode, the `tildify-space-string' buffer-local
-variable will be set to the representation.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tildify" '("tildify-")))
-
-;;;***
-
-;;;### (autoloads nil "time" "time.el" (0 0 0 0))
-;;; Generated autoloads from time.el
-
-(defvar display-time-day-and-date nil "\
-Non-nil means \\[display-time] should display day and date as well as time.")
-
-(custom-autoload 'display-time-day-and-date "time" t)
-(put 'display-time-string 'risky-local-variable t)
-
-(autoload 'display-time "time" "\
-Enable display of time, load level, and mail flag in mode lines.
-This display updates automatically every minute.
-If `display-time-day-and-date' is non-nil, the current day and date
-are displayed as well.
-This runs the normal hook `display-time-hook' after each update.
-
-\(fn)" t nil)
-
-(defvar display-time-mode nil "\
-Non-nil if Display-Time mode is enabled.
-See the `display-time-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `display-time-mode'.")
-
-(custom-autoload 'display-time-mode "time" nil)
-
-(autoload 'display-time-mode "time" "\
-Toggle display of time, load level, and mail flag in mode lines.
-With a prefix argument ARG, enable Display Time mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-it if ARG is omitted or nil.
-
-When Display Time mode is enabled, it updates every minute (you
-can control the number of seconds between updates by customizing
-`display-time-interval').  If `display-time-day-and-date' is
-non-nil, the current day and date are displayed as well.  This
-runs the normal hook `display-time-hook' after each update.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'display-time-world "time" "\
-Enable updating display of times in various time zones.
-`display-time-world-list' specifies the zones.
-To turn off the world time display, go to that window and type `q'.
-
-\(fn)" t nil)
-
-(autoload 'emacs-uptime "time" "\
-Return a string giving the uptime of this instance of Emacs.
-FORMAT is a string to format the result, using `format-seconds'.
-For example, the Unix uptime command format is \"%D, %z%2h:%.2m\".
-
-\(fn &optional FORMAT)" t nil)
-
-(autoload 'emacs-init-time "time" "\
-Return a string giving the duration of the Emacs initialization.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"time" '("display-time-" "legacy-style-world-list" 
"zoneinfo-style-world-list")))
-
-;;;***
-
-;;;### (autoloads nil "time-date" "calendar/time-date.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from calendar/time-date.el
-
-(autoload 'date-to-time "time-date" "\
-Parse a string DATE that represents a date-time and return a time value.
-If DATE lacks timezone information, GMT is assumed.
-
-\(fn DATE)" nil nil)
-
-(defalias 'time-to-seconds 'float-time)
-
-(autoload 'seconds-to-time "time-date" "\
-Convert SECONDS to a time value.
-
-\(fn SECONDS)" nil nil)
-
-(autoload 'days-to-time "time-date" "\
-Convert DAYS into a time value.
-
-\(fn DAYS)" nil nil)
-
-(autoload 'time-since "time-date" "\
-Return the time elapsed since TIME.
-TIME should be either a time value or a date-time string.
-
-\(fn TIME)" nil nil)
-
-(define-obsolete-function-alias 'subtract-time 'time-subtract "26.1")
-
-(autoload 'date-to-day "time-date" "\
-Return the number of days between year 1 and DATE.
-DATE should be a date-time string.
-
-\(fn DATE)" nil nil)
-
-(autoload 'days-between "time-date" "\
-Return the number of days between DATE1 and DATE2.
-DATE1 and DATE2 should be date-time strings.
-
-\(fn DATE1 DATE2)" nil nil)
-
-(autoload 'date-leap-year-p "time-date" "\
-Return t if YEAR is a leap year.
-
-\(fn YEAR)" nil nil)
-
-(autoload 'time-to-day-in-year "time-date" "\
-Return the day number within the year corresponding to TIME.
-
-\(fn TIME)" nil nil)
-
-(autoload 'time-to-days "time-date" "\
-The number of days between the Gregorian date 0001-12-31bce and TIME.
-TIME should be a time value.
-The Gregorian date Sunday, December 31, 1bce is imaginary.
-
-\(fn TIME)" nil nil)
-
-(autoload 'safe-date-to-time "time-date" "\
-Parse a string DATE that represents a date-time and return a time value.
-If DATE is malformed, return a time value of zeros.
-
-\(fn DATE)" nil nil)
-
-(autoload 'format-seconds "time-date" "\
-Use format control STRING to format the number SECONDS.
-The valid format specifiers are:
-%y is the number of (365-day) years.
-%d is the number of days.
-%h is the number of hours.
-%m is the number of minutes.
-%s is the number of seconds.
-%z is a non-printing control flag (see below).
-%% is a literal \"%\".
-
-Upper-case specifiers are followed by the unit-name (e.g. \"years\").
-Lower-case specifiers return only the unit.
-
-\"%\" may be followed by a number specifying a width, with an
-optional leading \".\" for zero-padding.  For example, \"%.3Y\" will
-return something of the form \"001 year\".
-
-The \"%z\" specifier does not print anything.  When it is used, specifiers
-must be given in order of decreasing size.  To the left of \"%z\", nothing
-is output until the first non-zero unit is encountered.
-
-This function does not work for SECONDS greater than `most-positive-fixnum'.
-
-\(fn STRING SECONDS)" nil nil)
-
-(autoload 'seconds-to-string "time-date" "\
-Convert the time interval in seconds to a short string.
-
-\(fn DELAY)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"time-date" '("seconds-to-string" "time-" "encode-time-value" 
"with-decoded-time-value")))
-
-;;;***
-
-;;;### (autoloads nil "time-stamp" "time-stamp.el" (0 0 0 0))
-;;; Generated autoloads from time-stamp.el
-(put 'time-stamp-format 'safe-local-variable 'stringp)
-(put 'time-stamp-time-zone 'safe-local-variable 'string-or-null-p)
-(put 'time-stamp-line-limit 'safe-local-variable 'integerp)
-(put 'time-stamp-start 'safe-local-variable 'stringp)
-(put 'time-stamp-end 'safe-local-variable 'stringp)
-(put 'time-stamp-inserts-lines 'safe-local-variable 'symbolp)
-(put 'time-stamp-count 'safe-local-variable 'integerp)
-(put 'time-stamp-pattern 'safe-local-variable 'stringp)
-
-(autoload 'time-stamp "time-stamp" "\
-Update the time stamp string(s) in the buffer.
-A template in a file can be automatically updated with a new time stamp
-every time you save the file.  Add this line to your init file:
-    (add-hook \\='before-save-hook \\='time-stamp)
-or customize `before-save-hook' through Custom.
-Normally the template must appear in the first 8 lines of a file and
-look like one of the following:
-      Time-stamp: <>
-      Time-stamp: \" \"
-The time stamp is written between the brackets or quotes:
-      Time-stamp: <2001-02-18 10:20:51 gildea>
-The time stamp is updated only if the variable `time-stamp-active' is non-nil.
-The format of the time stamp is set by the variable `time-stamp-pattern' or
-`time-stamp-format'.  The variables `time-stamp-pattern',
-`time-stamp-line-limit', `time-stamp-start', `time-stamp-end',
-`time-stamp-count', and `time-stamp-inserts-lines' control finding
-the template.
-
-\(fn)" t nil)
-
-(autoload 'time-stamp-toggle-active "time-stamp" "\
-Toggle `time-stamp-active', setting whether \\[time-stamp] updates a buffer.
-With ARG, turn time stamping on if and only if arg is positive.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"time-stamp" '("time-stamp-")))
-
-;;;***
-
-;;;### (autoloads nil "timeclock" "calendar/timeclock.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from calendar/timeclock.el
-(push (purecopy '(timeclock 2 6 1)) package--builtin-versions)
-
-(defvar timeclock-mode-line-display nil "\
-Non-nil if Timeclock-Mode-Line-Display mode is enabled.
-See the `timeclock-mode-line-display' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `timeclock-mode-line-display'.")
-
-(custom-autoload 'timeclock-mode-line-display "timeclock" nil)
-
-(autoload 'timeclock-mode-line-display "timeclock" "\
-Toggle display of the amount of time left today in the mode line.
-If `timeclock-use-display-time' is non-nil (the default), then
-the function `display-time-mode' must be active, and the mode line
-will be updated whenever the time display is updated.  Otherwise,
-the timeclock will use its own sixty second timer to do its
-updating.  With prefix ARG, turn mode line display on if and only
-if ARG is positive.  Returns the new status of timeclock mode line
-display (non-nil means on).
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'timeclock-in "timeclock" "\
-Clock in, recording the current time moment in the timelog.
-With a numeric prefix ARG, record the fact that today has only that
-many hours in it to be worked.  If ARG is a non-numeric prefix argument
-\(non-nil, but not a number), 0 is assumed (working on a holiday or
-weekend).  *If not called interactively, ARG should be the number of
-_seconds_ worked today*.  This feature only has effect the first time
-this function is called within a day.
-
-PROJECT is the project being clocked into.  If PROJECT is nil, and
-FIND-PROJECT is non-nil -- or the user calls `timeclock-in'
-interactively -- call the function `timeclock-get-project-function' to
-discover the name of the project.
-
-\(fn &optional ARG PROJECT FIND-PROJECT)" t nil)
-
-(autoload 'timeclock-out "timeclock" "\
-Clock out, recording the current time moment in the timelog.
-If a prefix ARG is given, the user has completed the project that was
-begun during the last time segment.
-
-REASON is the user's reason for clocking out.  If REASON is nil, and
-FIND-REASON is non-nil -- or the user calls `timeclock-out'
-interactively -- call the function `timeclock-get-reason-function' to
-discover the reason.
-
-\(fn &optional ARG REASON FIND-REASON)" t nil)
-
-(autoload 'timeclock-status-string "timeclock" "\
-Report the overall timeclock status at the present moment.
-If SHOW-SECONDS is non-nil, display second resolution.
-If TODAY-ONLY is non-nil, the display will be relative only to time
-worked today, ignoring the time worked on previous days.
-
-\(fn &optional SHOW-SECONDS TODAY-ONLY)" t nil)
-
-(autoload 'timeclock-change "timeclock" "\
-Change to working on a different project.
-This clocks out of the current project, then clocks in on a new one.
-With a prefix ARG, consider the previous project as finished at the
-time of changeover.  PROJECT is the name of the last project you were
-working on.
-
-\(fn &optional ARG PROJECT)" t nil)
-
-(autoload 'timeclock-query-out "timeclock" "\
-Ask the user whether to clock out.
-This is a useful function for adding to `kill-emacs-query-functions'.
-
-\(fn)" nil nil)
-
-(autoload 'timeclock-reread-log "timeclock" "\
-Re-read the timeclock, to account for external changes.
-Returns the new value of `timeclock-discrepancy'.
-
-\(fn)" t nil)
-
-(autoload 'timeclock-workday-remaining-string "timeclock" "\
-Return a string representing the amount of time left today.
-Display second resolution if SHOW-SECONDS is non-nil.  If TODAY-ONLY
-is non-nil, the display will be relative only to time worked today.
-See `timeclock-relative' for more information about the meaning of
-\"relative to today\".
-
-\(fn &optional SHOW-SECONDS TODAY-ONLY)" t nil)
-
-(autoload 'timeclock-workday-elapsed-string "timeclock" "\
-Return a string representing the amount of time worked today.
-Display seconds resolution if SHOW-SECONDS is non-nil.  If RELATIVE is
-non-nil, the amount returned will be relative to past time worked.
-
-\(fn &optional SHOW-SECONDS)" t nil)
-
-(autoload 'timeclock-when-to-leave-string "timeclock" "\
-Return a string representing the end of today's workday.
-This string is relative to the value of `timeclock-workday'.  If
-SHOW-SECONDS is non-nil, the value printed/returned will include
-seconds.  If TODAY-ONLY is non-nil, the value returned will be
-relative only to the time worked today, and not to past time.
-
-\(fn &optional SHOW-SECONDS TODAY-ONLY)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"timeclock" '("timeclock-")))
-
-;;;***
-
-;;;### (autoloads nil "timer-list" "emacs-lisp/timer-list.el" (0
-;;;;;;  0 0 0))
-;;; Generated autoloads from emacs-lisp/timer-list.el
-
-(autoload 'timer-list "timer-list" "\
-List all timers in a buffer.
-
-\(fn &optional IGNORE-AUTO NONCONFIRM)" t nil)
- (put 'timer-list 'disabled "Beware: manually canceling timers can ruin your 
Emacs session.")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"timer-list" '("timer-list-")))
-
-;;;***
-
-;;;### (autoloads nil "timezone" "timezone.el" (0 0 0 0))
-;;; Generated autoloads from timezone.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"timezone" '("timezone-")))
-
-;;;***
-
-;;;### (autoloads nil "titdic-cnv" "international/titdic-cnv.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from international/titdic-cnv.el
-
-(autoload 'titdic-convert "titdic-cnv" "\
-Convert a TIT dictionary of FILENAME into a Quail package.
-Optional argument DIRNAME if specified is the directory name under which
-the generated Quail package is saved.
-
-\(fn FILENAME &optional DIRNAME)" t nil)
-
-(autoload 'batch-titdic-convert "titdic-cnv" "\
-Run `titdic-convert' on the files remaining on the command line.
-Use this from the command line, with `-batch';
-it won't work in an interactive Emacs.
-For example, invoke \"emacs -batch -f batch-titdic-convert XXX.tit\" to
- generate Quail package file \"xxx.el\" from TIT dictionary file \"XXX.tit\".
-To get complete usage, invoke \"emacs -batch -f batch-titdic-convert -h\".
-
-\(fn &optional FORCE)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"titdic-cnv" '("batch-miscdic-convert" "miscdic-convert" "ctlau-" 
"ziranma-converter" "py-converter" "quail-" "quick-" "tit-" "tsang-")))
-
-;;;***
-
-;;;### (autoloads nil "tls" "net/tls.el" (0 0 0 0))
-;;; Generated autoloads from net/tls.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tls" '("open-tls-stream" "tls-")))
-
-;;;***
-
-;;;### (autoloads nil "tmm" "tmm.el" (0 0 0 0))
-;;; Generated autoloads from tmm.el
- (define-key global-map "\M-`" 'tmm-menubar)
- (define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse)
-
-(autoload 'tmm-menubar "tmm" "\
-Text-mode emulation of looking and choosing from a menubar.
-See the documentation for `tmm-prompt'.
-X-POSITION, if non-nil, specifies a horizontal position within the menu bar;
-we make that menu bar item (the one at that position) the default choice.
-
-Note that \\[menu-bar-open] by default drops down TTY menus; if you want it
-to invoke `tmm-menubar' instead, customize the variable
-`tty-menu-open-use-tmm' to a non-nil value.
-
-\(fn &optional X-POSITION)" t nil)
-
-(autoload 'tmm-menubar-mouse "tmm" "\
-Text-mode emulation of looking and choosing from a menubar.
-This command is used when you click the mouse in the menubar
-on a console which has no window system but does have a mouse.
-See the documentation for `tmm-prompt'.
-
-\(fn EVENT)" t nil)
-
-(autoload 'tmm-prompt "tmm" "\
-Text-mode emulation of calling the bindings in keymap.
-Creates a text-mode menu of possible choices.  You can access the elements
-in the menu in two ways:
-   *)  via history mechanism from minibuffer;
-   *)  Or via completion-buffer that is automatically shown.
-The last alternative is currently a hack, you cannot use mouse reliably.
-
-MENU is like the MENU argument to `x-popup-menu': either a
-keymap or an alist of alists.
-DEFAULT-ITEM, if non-nil, specifies an initial default choice.
-Its value should be an event that has a binding in MENU.
-
-\(fn MENU &optional IN-POPUP DEFAULT-ITEM)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tmm" '("tmm-")))
-
-;;;***
-
-;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from calendar/todo-mode.el
-
-(autoload 'todo-show "todo-mode" "\
-Visit a todo file and display one of its categories.
-
-When invoked in Todo mode, Todo Archive mode or Todo Filtered
-Items mode, or when invoked anywhere else with a prefix argument,
-prompt for which todo file to visit.  When invoked outside of a
-Todo mode buffer without a prefix argument, visit
-`todo-default-todo-file'.  Subsequent invocations from outside of
-Todo mode revisit this file or, with option
-`todo-show-current-file' non-nil (the default), whichever todo
-file was last visited.
-
-If you call this command before you have created any todo file in
-the current format, and you have an todo file in old format, it
-will ask you whether to convert that file and show it.
-Otherwise, calling this command before any todo file exists
-prompts for a file name and an initial category (defaulting to
-`todo-initial-file' and `todo-initial-category'), creates both of
-these, visits the file and displays the category, and if option
-`todo-add-item-if-new-category' is non-nil (the default), prompts
-for the first item.
-
-The first invocation of this command on an existing todo file
-interacts with the option `todo-show-first': if its value is
-`first' (the default), show the first category in the file; if
-its value is `table', show the table of categories in the file;
-if its value is one of `top', `diary' or `regexp', show the
-corresponding saved top priorities, diary items, or regexp items
-file, if any.  Subsequent invocations always show the file's
-current (i.e., last displayed) category.
-
-In Todo mode just the category's unfinished todo items are shown
-by default.  The done items are hidden, but typing
-`\\[todo-toggle-view-done-items]' displays them below the todo
-items.  With non-nil user option `todo-show-with-done' both todo
-and done items are always shown on visiting a category.
-
-\(fn &optional SOLICIT-FILE INTERACTIVE)" t nil)
-
-(autoload 'todo-mode "todo-mode" "\
-Major mode for displaying, navigating and editing todo lists.
-
-\\{todo-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'todo-archive-mode "todo-mode" "\
-Major mode for archived todo categories.
-
-\\{todo-archive-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'todo-filtered-items-mode "todo-mode" "\
-Mode for displaying and reprioritizing top priority Todo.
-
-\\{todo-filtered-items-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"todo-mode" '("todo-")))
-
-;;;***
-
-;;;### (autoloads nil "tool-bar" "tool-bar.el" (0 0 0 0))
-;;; Generated autoloads from tool-bar.el
-
-(autoload 'toggle-tool-bar-mode-from-frame "tool-bar" "\
-Toggle tool bar on or off, based on the status of the current frame.
-See `tool-bar-mode' for more information.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'tool-bar-add-item "tool-bar" "\
-Add an item to the tool bar.
-ICON names the image, DEF is the key definition and KEY is a symbol
-for the fake function key in the menu keymap.  Remaining arguments
-PROPS are additional items to add to the menu item specification.  See
-Info node `(elisp)Tool Bar'.  Items are added from left to right.
-
-ICON is the base name of a file containing the image to use.  The
-function will first try to use low-color/ICON.xpm if `display-color-cells'
-is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally
-ICON.xbm, using `find-image'.
-
-Use this function only to make bindings in the global value of `tool-bar-map'.
-To define items in any other map, use `tool-bar-local-item'.
-
-\(fn ICON DEF KEY &rest PROPS)" nil nil)
-
-(autoload 'tool-bar-local-item "tool-bar" "\
-Add an item to the tool bar in map MAP.
-ICON names the image, DEF is the key definition and KEY is a symbol
-for the fake function key in the menu keymap.  Remaining arguments
-PROPS are additional items to add to the menu item specification.  See
-Info node `(elisp)Tool Bar'.  Items are added from left to right.
-
-ICON is the base name of a file containing the image to use.  The
-function will first try to use low-color/ICON.xpm if `display-color-cells'
-is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally
-ICON.xbm, using `find-image'.
-
-\(fn ICON DEF KEY MAP &rest PROPS)" nil nil)
-
-(autoload 'tool-bar-add-item-from-menu "tool-bar" "\
-Define tool bar binding for COMMAND in keymap MAP using the given ICON.
-This makes a binding for COMMAND in `tool-bar-map', copying its
-binding from the menu bar in MAP (which defaults to `global-map'), but
-modifies the binding by adding an image specification for ICON.  It
-finds ICON just like `tool-bar-add-item'.  PROPS are additional
-properties to add to the binding.
-
-MAP must contain appropriate binding for `[menu-bar]' which holds a keymap.
-
-Use this function only to make bindings in the global value of `tool-bar-map'.
-To define items in any other map, use `tool-bar-local-item-from-menu'.
-
-\(fn COMMAND ICON &optional MAP &rest PROPS)" nil nil)
-
-(autoload 'tool-bar-local-item-from-menu "tool-bar" "\
-Define local tool bar binding for COMMAND using the given ICON.
-This makes a binding for COMMAND in IN-MAP, copying its binding from
-the menu bar in FROM-MAP (which defaults to `global-map'), but
-modifies the binding by adding an image specification for ICON.  It
-finds ICON just like `tool-bar-add-item'.  PROPS are additional
-properties to add to the binding.
-
-FROM-MAP must contain appropriate binding for `[menu-bar]' which
-holds a keymap.
-
-\(fn COMMAND ICON IN-MAP &optional FROM-MAP &rest PROPS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tool-bar" '("tool-bar-")))
-
-;;;***
-
-;;;### (autoloads nil "tooltip" "tooltip.el" (0 0 0 0))
-;;; Generated autoloads from tooltip.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tooltip" '("tooltip-")))
-
-;;;***
-
-;;;### (autoloads nil "tq" "emacs-lisp/tq.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/tq.el
-
-(autoload 'tq-create "tq" "\
-Create and return a transaction queue communicating with PROCESS.
-PROCESS should be a subprocess capable of sending and receiving
-streams of bytes.  It may be a local process, or it may be connected
-to a tcp server on another machine.
-
-\(fn PROCESS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "tq" 
'("tq-")))
-
-;;;***
-
-;;;### (autoloads nil "trace" "emacs-lisp/trace.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/trace.el
-
-(defvar trace-buffer "*trace-output*" "\
-Trace output will by default go to that buffer.")
-
-(custom-autoload 'trace-buffer "trace" t)
-
-(autoload 'trace-values "trace" "\
-Helper function to get internal values.
-You can call this function to add internal values in the trace buffer.
-
-\(fn &rest VALUES)" nil nil)
-
-(autoload 'trace-function-foreground "trace" "\
-Trace calls to function FUNCTION.
-With a prefix argument, also prompt for the trace buffer (default
-`trace-buffer'), and a Lisp expression CONTEXT.
-
-Tracing a function causes every call to that function to insert
-into BUFFER Lisp-style trace messages that display the function's
-arguments and return values.  It also evaluates CONTEXT, if that is
-non-nil, and inserts its value too.  For example, you can use this
-to track the current buffer, or position of point.
-
-This function creates BUFFER if it does not exist.  This buffer will
-popup whenever FUNCTION is called.  Do not use this function to trace
-functions that switch buffers, or do any other display-oriented
-stuff - use `trace-function-background' instead.
-
-To stop tracing a function, use `untrace-function' or `untrace-all'.
-
-\(fn FUNCTION &optional BUFFER CONTEXT)" t nil)
-
-(autoload 'trace-function-background "trace" "\
-Trace calls to function FUNCTION, quietly.
-This is like `trace-function-foreground', but without popping up
-the output buffer or changing the window configuration.
-
-\(fn FUNCTION &optional BUFFER CONTEXT)" t nil)
-
-(defalias 'trace-function 'trace-function-foreground)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"trace" '("untrace-" "trace-" "inhibit-trace")))
-
-;;;***
-
-;;;### (autoloads nil "tramp" "net/tramp.el" (0 0 0 0))
-;;; Generated autoloads from net/tramp.el
-
-(defvar tramp-mode t "\
-Whether Tramp is enabled.
-If it is set to nil, all remote file names are used literally.")
-
-(custom-autoload 'tramp-mode "tramp" t)
-
-(defvar tramp-syntax 'ftp "\
-Tramp filename syntax to be used.
-
-It can have the following values:
-
-  `ftp' -- Ange-FTP like syntax
-  `sep' -- Syntax as defined for XEmacs originally.")
-
-(custom-autoload 'tramp-syntax "tramp" t)
-
-(defconst tramp-file-name-regexp-unified (if (memq system-type '(cygwin 
windows-nt)) "\\`/\\(\\[.*\\]\\|[^/|:]\\{2,\\}[^/|]*\\):" "\\`/[^/|:][^/|]*:") 
"\
-Value for `tramp-file-name-regexp' for unified remoting.
-See `tramp-file-name-structure' for more explanations.
-
-On W32 systems, the volume letter must be ignored.")
-
-(defconst tramp-file-name-regexp-separate "\\`/\\[.*\\]" "\
-Value for `tramp-file-name-regexp' for separate remoting.
-See `tramp-file-name-structure' for more explanations.")
-
-(defvar tramp-file-name-regexp (cond ((equal tramp-syntax 'ftp) 
tramp-file-name-regexp-unified) ((equal tramp-syntax 'sep) 
tramp-file-name-regexp-separate) (t (error "Wrong `tramp-syntax' defined"))) "\
-Regular expression matching file names handled by Tramp.
-This regexp should match Tramp file names but no other file
-names.  When calling `tramp-register-file-name-handlers', the
-initial value is overwritten by the car of `tramp-file-name-structure'.")
-
-(defconst tramp-completion-file-name-regexp-unified (if (memq system-type 
'(cygwin windows-nt)) "\\`/[^/]\\{2,\\}\\'" "\\`/[^/]*\\'") "\
-Value for `tramp-completion-file-name-regexp' for unified remoting.
-See `tramp-file-name-structure' for more explanations.
-
-On W32 systems, the volume letter must be ignored.")
-
-(defconst tramp-completion-file-name-regexp-separate "\\`/\\([[][^]]*\\)?\\'" 
"\
-Value for `tramp-completion-file-name-regexp' for separate remoting.
-See `tramp-file-name-structure' for more explanations.")
-
-(defconst tramp-completion-file-name-regexp (cond ((equal tramp-syntax 'ftp) 
tramp-completion-file-name-regexp-unified) ((equal tramp-syntax 'sep) 
tramp-completion-file-name-regexp-separate) (t (error "Wrong `tramp-syntax' 
defined"))) "\
-Regular expression matching file names handled by Tramp completion.
-This regexp should match partial Tramp file names only.
-
-Please note that the entry in `file-name-handler-alist' is made when
-this file (tramp.el) is loaded.  This means that this variable must be set
-before loading tramp.el.  Alternatively, `file-name-handler-alist' can be
-updated after changing this variable.
-
-Also see `tramp-file-name-structure'.")
-
-(defun tramp-completion-run-real-handler (operation args) "\
-Invoke `tramp-file-name-handler' for OPERATION.
-First arg specifies the OPERATION, second arg is a list of arguments to
-pass to the OPERATION." (let* ((inhibit-file-name-handlers (\` 
(tramp-completion-file-name-handler cygwin-mount-name-hook-function 
cygwin-mount-map-drive-hook-function \, (and (eq inhibit-file-name-operation 
operation) inhibit-file-name-handlers)))) (inhibit-file-name-operation 
operation)) (apply operation args)))
-(defun tramp-completion-file-name-handler (operation &rest args)
- (tramp-completion-run-real-handler operation args))
-
-(defun tramp-autoload-file-name-handler (operation &rest args) "\
-Load Tramp file name handler, and perform OPERATION." (let ((default-directory 
temporary-file-directory)) (load "tramp" nil t)) (apply operation args))
-
-(defun tramp-register-autoload-file-name-handlers nil "\
-Add Tramp file name handlers to `file-name-handler-alist' during autoload." 
(add-to-list (quote file-name-handler-alist) (cons tramp-file-name-regexp 
(quote tramp-autoload-file-name-handler))) (put (quote 
tramp-autoload-file-name-handler) (quote safe-magic) t) (add-to-list (quote 
file-name-handler-alist) (cons tramp-completion-file-name-regexp (quote 
tramp-completion-file-name-handler))) (put (quote 
tramp-completion-file-name-handler) (quote safe-magic) t))
-
-(tramp-register-autoload-file-name-handlers)
-
-(autoload 'tramp-unload-file-name-handlers "tramp" "\
-Unload Tramp file name handlers from `file-name-handler-alist'.
-
-\(fn)" nil nil)
-
-(defvar tramp-completion-mode nil "\
-If non-nil, external packages signal that they are in file name completion.
-
-This is necessary, because Tramp uses a heuristic depending on last
-input event.  This fails when external packages use other characters
-but <TAB>, <SPACE> or ?\\? for file name completion.  This variable
-should never be set globally, the intention is to let-bind it.")
-
-(autoload 'tramp-unload-tramp "tramp" "\
-Discard Tramp from loading remote files.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tramp" '("tramp-" "with-")))
-
-;;;***
-
-;;;### (autoloads nil "tramp-adb" "net/tramp-adb.el" (0 0 0 0))
-;;; Generated autoloads from net/tramp-adb.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tramp-adb" '("tramp-")))
-
-;;;***
-
-;;;### (autoloads nil "tramp-cache" "net/tramp-cache.el" (0 0 0 0))
-;;; Generated autoloads from net/tramp-cache.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tramp-cache" '("tramp-")))
-
-;;;***
-
-;;;### (autoloads nil "tramp-cmds" "net/tramp-cmds.el" (0 0 0 0))
-;;; Generated autoloads from net/tramp-cmds.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tramp-cmds" '("tramp-")))
-
-;;;***
-
-;;;### (autoloads nil "tramp-compat" "net/tramp-compat.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from net/tramp-compat.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tramp-compat" '("tramp-")))
-
-;;;***
-
-;;;### (autoloads nil "tramp-ftp" "net/tramp-ftp.el" (0 0 0 0))
-;;; Generated autoloads from net/tramp-ftp.el
-
-(autoload 'tramp-ftp-enable-ange-ftp "tramp-ftp" "\
-Reenable Ange-FTP, when Tramp is unloaded.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tramp-ftp" '("tramp-")))
-
-;;;***
-
-;;;### (autoloads nil "tramp-gvfs" "net/tramp-gvfs.el" (0 0 0 0))
-;;; Generated autoloads from net/tramp-gvfs.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tramp-gvfs" '("tramp-" "with-tramp-dbus-call-method")))
-
-;;;***
-
-;;;### (autoloads nil "tramp-gw" "net/tramp-gw.el" (0 0 0 0))
-;;; Generated autoloads from net/tramp-gw.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tramp-gw" '("tramp-gw-" "socks-")))
-
-;;;***
-
-;;;### (autoloads nil "tramp-sh" "net/tramp-sh.el" (0 0 0 0))
-;;; Generated autoloads from net/tramp-sh.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tramp-sh" '("tramp-")))
-
-;;;***
-
-;;;### (autoloads nil "tramp-smb" "net/tramp-smb.el" (0 0 0 0))
-;;; Generated autoloads from net/tramp-smb.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tramp-smb" '("tramp-smb-")))
-
-;;;***
-
-;;;### (autoloads nil "tramp-uu" "net/tramp-uu.el" (0 0 0 0))
-;;; Generated autoloads from net/tramp-uu.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tramp-uu" '("tramp-uu")))
-
-;;;***
-
-;;;### (autoloads nil "trampver" "net/trampver.el" (0 0 0 0))
-;;; Generated autoloads from net/trampver.el
-(push (purecopy '(tramp 2 3 1 -1)) package--builtin-versions)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"trampver" '("tramp-")))
-
-;;;***
-
-;;;### (autoloads nil "tree-widget" "tree-widget.el" (0 0 0 0))
-;;; Generated autoloads from tree-widget.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tree-widget" '("tree-widget-")))
-
-;;;***
-
-;;;### (autoloads nil "tutorial" "tutorial.el" (0 0 0 0))
-;;; Generated autoloads from tutorial.el
-
-(autoload 'help-with-tutorial "tutorial" "\
-Select the Emacs learn-by-doing tutorial.
-If there is a tutorial version written in the language
-of the selected language environment, that version is used.
-If there's no tutorial in that language, `TUTORIAL' is selected.
-With ARG, you are asked to choose which language.
-If DONT-ASK-FOR-REVERT is non-nil the buffer is reverted without
-any question when restarting the tutorial.
-
-If any of the standard Emacs key bindings that are used in the
-tutorial have been changed then an explanatory note about this is
-shown in the beginning of the tutorial buffer.
-
-When the tutorial buffer is killed the content and the point
-position in the buffer is saved so that the tutorial may be
-resumed later.
-
-\(fn &optional ARG DONT-ASK-FOR-REVERT)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tutorial" '("get-lang-string" "lang-strings" "tutorial--")))
-
-;;;***
-
-;;;### (autoloads nil "tv-util" "language/tv-util.el" (0 0 0 0))
-;;; Generated autoloads from language/tv-util.el
-
-(autoload 'tai-viet-composition-function "tv-util" "\
-
-
-\(fn FROM TO FONT-OBJECT STRING)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tv-util" '("tai-viet-")))
-
-;;;***
-
-;;;### (autoloads nil "two-column" "textmodes/two-column.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from textmodes/two-column.el
- (autoload '2C-command "two-column" () t 'keymap)
- (global-set-key "\C-x6" '2C-command)
- (global-set-key [f2] '2C-command)
-
-(autoload '2C-two-columns "two-column" "\
-Split current window vertically for two-column editing.
-\\<global-map>When called the first time, associates a buffer with the current
-buffer in two-column minor mode (use \\[describe-mode] once in the mode,
-for details.).  It runs `2C-other-buffer-hook' in the new buffer.
-When called again, restores the screen layout with the current buffer
-first and the associated buffer to its right.
-
-\(fn &optional BUFFER)" t nil)
-
-(autoload '2C-associate-buffer "two-column" "\
-Associate another buffer with this one in two-column minor mode.
-Can also be used to associate a just previously visited file, by
-accepting the proposed default buffer.
-
-\(See  \\[describe-mode] .)
-
-\(fn)" t nil)
-
-(autoload '2C-split "two-column" "\
-Split a two-column text at point, into two buffers in two-column minor mode.
-Point becomes the local value of `2C-window-width'.  Only lines that
-have the ARG same preceding characters at that column get split.  The
-ARG preceding characters without any leading whitespace become the local
-value for `2C-separator'.  This way lines that continue across both
-columns remain untouched in the first buffer.
-
-This function can be used with a prototype line, to set up things.  You
-write the first line of each column and then split that line.  E.g.:
-
-First column's text    sSs  Second column's text
-                      \\___/\\
-                       /    \\
-   5 character Separator      You type  M-5 \\[2C-split]  with the point here.
-
-\(See  \\[describe-mode] .)
-
-\(fn ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"two-column" '("2C-")))
-
-;;;***
-
-;;;### (autoloads nil "type-break" "type-break.el" (0 0 0 0))
-;;; Generated autoloads from type-break.el
-
-(defvar type-break-mode nil "\
-Non-nil if Type-Break mode is enabled.
-See the `type-break-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `type-break-mode'.")
-
-(custom-autoload 'type-break-mode "type-break" nil)
-
-(autoload 'type-break-mode "type-break" "\
-Enable or disable typing-break mode.
-This is a minor mode, but it is global to all buffers by default.
-
-When this mode is enabled, the user is encouraged to take typing breaks at
-appropriate intervals; either after a specified amount of time or when the
-user has exceeded a keystroke threshold.  When the time arrives, the user
-is asked to take a break.  If the user refuses at that time, Emacs will ask
-again in a short period of time.  The idea is to give the user enough time
-to find a good breaking point in his or her work, but be sufficiently
-annoying to discourage putting typing breaks off indefinitely.
-
-A negative prefix argument disables this mode.
-No argument or any non-negative argument enables it.
-
-The user may enable or disable this mode by setting the variable of the
-same name, though setting it in that way doesn't reschedule a break or
-reset the keystroke counter.
-
-If the mode was previously disabled and is enabled as a consequence of
-calling this function, it schedules a break with `type-break-schedule' to
-make sure one occurs (the user can call that command to reschedule the
-break at any time).  It also initializes the keystroke counter.
-
-The variable `type-break-interval' specifies the number of seconds to
-schedule between regular typing breaks.  This variable doesn't directly
-affect the time schedule; it simply provides a default for the
-`type-break-schedule' command.
-
-If set, the variable `type-break-good-rest-interval' specifies the minimum
-amount of time which is considered a reasonable typing break.  Whenever
-that time has elapsed, typing breaks are automatically rescheduled for
-later even if Emacs didn't prompt you to take one first.  Also, if a break
-is ended before this much time has elapsed, the user will be asked whether
-or not to continue.  A nil value for this variable prevents automatic
-break rescheduling, making `type-break-interval' an upper bound on the time
-between breaks.  In this case breaks will be prompted for as usual before
-the upper bound if the keystroke threshold is reached.
-
-If `type-break-good-rest-interval' is nil and
-`type-break-good-break-interval' is set, then confirmation is required to
-interrupt a break before `type-break-good-break-interval' seconds
-have passed.  This provides for an upper bound on the time between breaks
-together with confirmation of interruptions to these breaks.
-
-The variable `type-break-keystroke-threshold' is used to determine the
-thresholds at which typing breaks should be considered.  You can use
-the command `type-break-guesstimate-keystroke-threshold' to try to
-approximate good values for this.
-
-There are several variables that affect how or when warning messages about
-imminent typing breaks are displayed.  They include:
-
-        `type-break-mode-line-message-mode'
-        `type-break-time-warning-intervals'
-        `type-break-keystroke-warning-intervals'
-        `type-break-warning-repeat'
-        `type-break-warning-countdown-string'
-        `type-break-warning-countdown-string-type'
-
-There are several variables that affect if, how, and when queries to begin
-a typing break occur.  They include:
-
-        `type-break-query-mode'
-        `type-break-query-function'
-        `type-break-query-interval'
-
-The command `type-break-statistics' prints interesting things.
-
-Finally, a file (named `type-break-file-name') is used to store information
-across Emacs sessions.  This provides recovery of the break status between
-sessions and after a crash.  Manual changes to the file may result in
-problems.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'type-break "type-break" "\
-Take a typing break.
-
-During the break, a demo selected from the functions listed in
-`type-break-demo-functions' is run.
-
-After the typing break is finished, the next break is scheduled
-as per the function `type-break-schedule'.
-
-\(fn)" t nil)
-
-(autoload 'type-break-statistics "type-break" "\
-Print statistics about typing breaks in a temporary buffer.
-This includes the last time a typing break was taken, when the next one is
-scheduled, the keystroke thresholds and the current keystroke count, etc.
-
-\(fn)" t nil)
-
-(autoload 'type-break-guesstimate-keystroke-threshold "type-break" "\
-Guess values for the minimum/maximum keystroke threshold for typing breaks.
-
-If called interactively, the user is prompted for their guess as to how
-many words per minute they usually type.  This value should not be your
-maximum WPM, but your average.  Of course, this is harder to gauge since it
-can vary considerably depending on what you are doing.  For example, one
-tends to type less when debugging a program as opposed to writing
-documentation.  (Perhaps a separate program should be written to estimate
-average typing speed.)
-
-From that, this command sets the values in `type-break-keystroke-threshold'
-based on a fairly simple algorithm involving assumptions about the average
-length of words (5).  For the minimum threshold, it uses about a fifth of
-the computed maximum threshold.
-
-When called from Lisp programs, the optional args WORDLEN and FRAC can be
-used to override the default assumption about average word length and the
-fraction of the maximum threshold to which to set the minimum threshold.
-FRAC should be the inverse of the fractional value; for example, a value of
-2 would mean to use one half, a value of 4 would mean to use one quarter, etc.
-
-\(fn WPM &optional WORDLEN FRAC)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"type-break" '("timep" "type-break-")))
-
-;;;***
-
-;;;### (autoloads nil "uce" "mail/uce.el" (0 0 0 0))
-;;; Generated autoloads from mail/uce.el
-
-(autoload 'uce-reply-to-uce "uce" "\
-Compose a reply to unsolicited commercial email (UCE).
-Sets up a reply buffer addressed to: the sender, his postmaster,
-his abuse@ address, and the postmaster of the mail relay used.
-You might need to set `uce-mail-reader' before using this.
-
-\(fn &optional IGNORED)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"uce" '("uce-")))
-
-;;;***
-
-;;;### (autoloads nil "ucs-normalize" "international/ucs-normalize.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from international/ucs-normalize.el
-
-(autoload 'ucs-normalize-NFD-region "ucs-normalize" "\
-Normalize the current region by the Unicode NFD.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'ucs-normalize-NFD-string "ucs-normalize" "\
-Normalize the string STR by the Unicode NFD.
-
-\(fn STR)" nil nil)
-
-(autoload 'ucs-normalize-NFC-region "ucs-normalize" "\
-Normalize the current region by the Unicode NFC.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'ucs-normalize-NFC-string "ucs-normalize" "\
-Normalize the string STR by the Unicode NFC.
-
-\(fn STR)" nil nil)
-
-(autoload 'ucs-normalize-NFKD-region "ucs-normalize" "\
-Normalize the current region by the Unicode NFKD.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'ucs-normalize-NFKD-string "ucs-normalize" "\
-Normalize the string STR by the Unicode NFKD.
-
-\(fn STR)" nil nil)
-
-(autoload 'ucs-normalize-NFKC-region "ucs-normalize" "\
-Normalize the current region by the Unicode NFKC.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'ucs-normalize-NFKC-string "ucs-normalize" "\
-Normalize the string STR by the Unicode NFKC.
-
-\(fn STR)" nil nil)
-
-(autoload 'ucs-normalize-HFS-NFD-region "ucs-normalize" "\
-Normalize the current region by the Unicode NFD and Mac OS's HFS Plus.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'ucs-normalize-HFS-NFD-string "ucs-normalize" "\
-Normalize the string STR by the Unicode NFD and Mac OS's HFS Plus.
-
-\(fn STR)" nil nil)
-
-(autoload 'ucs-normalize-HFS-NFC-region "ucs-normalize" "\
-Normalize the current region by the Unicode NFC and Mac OS's HFS Plus.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'ucs-normalize-HFS-NFC-string "ucs-normalize" "\
-Normalize the string STR by the Unicode NFC and Mac OS's HFS Plus.
-
-\(fn STR)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"ucs-normalize" '("ucs-normalize-" "utf-8-hfs")))
-
-;;;***
-
-;;;### (autoloads nil "underline" "textmodes/underline.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from textmodes/underline.el
-
-(autoload 'underline-region "underline" "\
-Underline all nonblank characters in the region.
-Works by overstriking underscores.
-Called from program, takes two arguments START and END
-which specify the range to operate on.
-
-\(fn START END)" t nil)
-
-(autoload 'ununderline-region "underline" "\
-Remove all underlining (overstruck underscores) in the region.
-Called from program, takes two arguments START and END
-which specify the range to operate on.
-
-\(fn START END)" t nil)
-
-;;;***
-
-;;;### (autoloads "actual autoloads are elsewhere" "undigest" 
"mail/undigest.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from mail/undigest.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"undigest" '("rmail-")))
-
-;;;***
-
-;;;### (autoloads nil "unrmail" "mail/unrmail.el" (0 0 0 0))
-;;; Generated autoloads from mail/unrmail.el
-
-(autoload 'batch-unrmail "unrmail" "\
-Convert old-style Rmail Babyl files to mbox format.
-Specify the input Rmail Babyl file names as command line arguments.
-For each Rmail file, the corresponding output file name
-is made by adding `.mail' at the end.
-For example, invoke `emacs -batch -f batch-unrmail RMAIL'.
-
-\(fn)" nil nil)
-
-(autoload 'unrmail "unrmail" "\
-Convert old-style Rmail Babyl file FILE to mbox format file TO-FILE.
-The variable `unrmail-mbox-format' controls which mbox format to use.
-
-\(fn FILE TO-FILE)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"unrmail" '("unrmail-mbox-format")))
-
-;;;***
-
-;;;### (autoloads nil "unsafep" "emacs-lisp/unsafep.el" (0 0 0 0))
-;;; Generated autoloads from emacs-lisp/unsafep.el
-
-(autoload 'unsafep "unsafep" "\
-Return nil if evaluating FORM couldn't possibly do any harm.
-Otherwise result is a reason why FORM is unsafe.
-UNSAFEP-VARS is a list of symbols with local bindings.
-
-\(fn FORM &optional UNSAFEP-VARS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"unsafep" '("unsafep-" "safe-functions")))
-
-;;;***
-
-;;;### (autoloads nil "url" "url/url.el" (0 0 0 0))
-;;; Generated autoloads from url/url.el
-
-(autoload 'url-retrieve "url" "\
-Retrieve URL asynchronously and call CALLBACK with CBARGS when finished.
-URL is either a string or a parsed URL.  If it is a string
-containing characters that are not valid in a URI, those
-characters are percent-encoded; see `url-encode-url'.
-
-CALLBACK is called when the object has been completely retrieved, with
-the current buffer containing the object, and any MIME headers associated
-with it.  It is called as (apply CALLBACK STATUS CBARGS).
-STATUS is a plist representing what happened during the request,
-with most recent events first, or an empty list if no events have
-occurred.  Each pair is one of:
-
-\(:redirect REDIRECTED-TO) - the request was redirected to this URL
-\(:error (ERROR-SYMBOL . DATA)) - an error occurred.  The error can be
-signaled with (signal ERROR-SYMBOL DATA).
-
-Return the buffer URL will load into, or nil if the process has
-already completed (i.e. URL was a mailto URL or similar; in this case
-the callback is not called).
-
-The variables `url-request-data', `url-request-method' and
-`url-request-extra-headers' can be dynamically bound around the
-request; dynamic binding of other variables doesn't necessarily
-take effect.
-
-If SILENT, then don't message progress reports and the like.
-If INHIBIT-COOKIES, cookies will neither be stored nor sent to
-the server.
-If URL is a multibyte string, it will be encoded as utf-8 and
-URL-encoded before it's used.
-
-\(fn URL CALLBACK &optional CBARGS SILENT INHIBIT-COOKIES)" nil nil)
-
-(autoload 'url-retrieve-synchronously "url" "\
-Retrieve URL synchronously.
-Return the buffer containing the data, or nil if there are no data
-associated with it (the case for dired, info, or mailto URLs that need
-no further processing).  URL is either a string or a parsed URL.
-
-If SILENT is non-nil, don't do any messaging while retrieving.
-If INHIBIT-COOKIES is non-nil, refuse to store cookies.  If
-TIMEOUT is passed, it should be a number that says (in seconds)
-how long to wait for a response before giving up.
-
-\(fn URL &optional SILENT INHIBIT-COOKIES TIMEOUT)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-about" "url/url-about.el" (0 0 0 0))
-;;; Generated autoloads from url/url-about.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-about" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-auth" "url/url-auth.el" (0 0 0 0))
-;;; Generated autoloads from url/url-auth.el
-
-(autoload 'url-get-authentication "url-auth" "\
-Return an authorization string suitable for use in the WWW-Authenticate
-header in an HTTP/1.0 request.
-
-URL    is the url you are requesting authorization to.  This can be either a
-       string representing the URL, or the parsed representation returned by
-       `url-generic-parse-url'
-REALM  is the realm at a specific site we are looking for.  This should be a
-       string specifying the exact realm, or nil or the symbol `any' to
-       specify that the filename portion of the URL should be used as the
-       realm
-TYPE   is the type of authentication to be returned.  This is either a string
-       representing the type (basic, digest, etc), or nil or the symbol `any'
-       to specify that any authentication is acceptable.  If requesting `any'
-       the strongest matching authentication will be returned.  If this is
-       wrong, it's no big deal, the error from the server will specify exactly
-       what type of auth to use
-PROMPT is boolean - specifies whether to ask the user for a username/password
-       if one cannot be found in the cache
-
-\(fn URL REALM TYPE PROMPT &optional ARGS)" nil nil)
-
-(autoload 'url-register-auth-scheme "url-auth" "\
-Register an HTTP authentication method.
-
-TYPE     is a string or symbol specifying the name of the method.
-         This should be the same thing you expect to get returned in
-         an Authenticate header in HTTP/1.0 - it will be downcased.
-FUNCTION is the function to call to get the authorization information.
-         This defaults to `url-?-auth', where ? is TYPE.
-RATING   a rating between 1 and 10 of the strength of the authentication.
-         This is used when asking for the best authentication for a specific
-         URL.  The item with the highest rating is returned.
-
-\(fn TYPE &optional FUNCTION RATING)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-auth" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-cache" "url/url-cache.el" (0 0 0 0))
-;;; Generated autoloads from url/url-cache.el
-
-(autoload 'url-store-in-cache "url-cache" "\
-Store buffer BUFF in the cache.
-
-\(fn &optional BUFF)" nil nil)
-
-(autoload 'url-is-cached "url-cache" "\
-Return non-nil if the URL is cached.
-The actual return value is the last modification time of the cache file.
-
-\(fn URL)" nil nil)
-
-(autoload 'url-cache-extract "url-cache" "\
-Extract FNAM from the local disk cache.
-
-\(fn FNAM)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-cache" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-cid" "url/url-cid.el" (0 0 0 0))
-;;; Generated autoloads from url/url-cid.el
-
-(autoload 'url-cid "url-cid" "\
-
-
-\(fn URL)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-cid" '("url-cid-gnus")))
-
-;;;***
-
-;;;### (autoloads nil "url-cookie" "url/url-cookie.el" (0 0 0 0))
-;;; Generated autoloads from url/url-cookie.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-cookie" '("url-cookie")))
-
-;;;***
-
-;;;### (autoloads nil "url-dav" "url/url-dav.el" (0 0 0 0))
-;;; Generated autoloads from url/url-dav.el
-
-(autoload 'url-dav-supported-p "url-dav" "\
-Return WebDAV protocol version supported by URL.
-Returns nil if WebDAV is not supported.
-
-\(fn URL)" nil nil)
-
-(autoload 'url-dav-request "url-dav" "\
-Perform WebDAV operation METHOD on URL.  Return the parsed responses.
-Automatically creates an XML request body if TAG is non-nil.
-BODY is the XML document fragment to be enclosed by <TAG></TAG>.
-
-DEPTH is how deep the request should propagate.  Default is 0, meaning
-it should apply only to URL.  A negative number means to use
-`Infinity' for the depth.  Not all WebDAV servers support this depth
-though.
-
-HEADERS is an assoc list of extra headers to send in the request.
-
-NAMESPACES is an assoc list of (NAMESPACE . EXPANSION), and these are
-added to the <TAG> element.  The DAV=DAV: namespace is automatically
-added to this list, so most requests can just pass in nil.
-
-\(fn URL METHOD TAG BODY &optional DEPTH HEADERS NAMESPACES)" nil nil)
-
-(autoload 'url-dav-vc-registered "url-dav" "\
-
-
-\(fn URL)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-dav" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-dired" "url/url-dired.el" (0 0 0 0))
-;;; Generated autoloads from url/url-dired.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-dired" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-domsuf" "url/url-domsuf.el" (0 0 0 0))
-;;; Generated autoloads from url/url-domsuf.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-domsuf" '("url-domsuf-")))
-
-;;;***
-
-;;;### (autoloads nil "url-expand" "url/url-expand.el" (0 0 0 0))
-;;; Generated autoloads from url/url-expand.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-expand" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-file" "url/url-file.el" (0 0 0 0))
-;;; Generated autoloads from url/url-file.el
-
-(autoload 'url-file "url-file" "\
-Handle file: and ftp: URLs.
-
-\(fn URL CALLBACK CBARGS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-file" '("url-file-")))
-
-;;;***
-
-;;;### (autoloads nil "url-ftp" "url/url-ftp.el" (0 0 0 0))
-;;; Generated autoloads from url/url-ftp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-ftp" '("url-ftp")))
-
-;;;***
-
-;;;### (autoloads nil "url-future" "url/url-future.el" (0 0 0 0))
-;;; Generated autoloads from url/url-future.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-future" '("url-future-")))
-
-;;;***
-
-;;;### (autoloads nil "url-gw" "url/url-gw.el" (0 0 0 0))
-;;; Generated autoloads from url/url-gw.el
-
-(autoload 'url-gateway-nslookup-host "url-gw" "\
-Attempt to resolve the given HOST using nslookup if possible.
-
-\(fn HOST)" t nil)
-
-(autoload 'url-open-stream "url-gw" "\
-Open a stream to HOST, possibly via a gateway.
-Args per `open-network-stream'.
-Will not make a connection if `url-gateway-unplugged' is non-nil.
-Might do a non-blocking connection; use `process-status' to check.
-
-Optional arg GATEWAY-METHOD specifies the gateway to be used,
-overriding the value of `url-gateway-method'.
-
-\(fn NAME BUFFER HOST SERVICE &optional GATEWAY-METHOD)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-gw" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from url/url-handlers.el
-
-(defvar url-handler-mode nil "\
-Non-nil if Url-Handler mode is enabled.
-See the `url-handler-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `url-handler-mode'.")
-
-(custom-autoload 'url-handler-mode "url-handlers" nil)
-
-(autoload 'url-handler-mode "url-handlers" "\
-Toggle using `url' library for URL filenames (URL Handler mode).
-With a prefix argument ARG, enable URL Handler mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'url-file-handler "url-handlers" "\
-Function called from the `file-name-handler-alist' routines.
-OPERATION is what needs to be done (`file-exists-p', etc).  ARGS are
-the arguments that would have been passed to OPERATION.
-
-\(fn OPERATION &rest ARGS)" nil nil)
-
-(autoload 'url-copy-file "url-handlers" "\
-Copy URL to NEWNAME.  Both args must be strings.
-Signals a `file-already-exists' error if file NEWNAME already exists,
-unless a third argument OK-IF-ALREADY-EXISTS is supplied and non-nil.
-A number as third arg means request confirmation if NEWNAME already exists.
-This is what happens in interactive use with M-x.
-Fourth arg KEEP-TIME non-nil means give the new file the same
-last-modified time as the old one.  (This works on only some systems.)
-Fifth arg PRESERVE-UID-GID is ignored.
-A prefix arg makes KEEP-TIME non-nil.
-
-\(fn URL NEWNAME &optional OK-IF-ALREADY-EXISTS KEEP-TIME PRESERVE-UID-GID)" 
nil nil)
-
-(autoload 'url-file-local-copy "url-handlers" "\
-Copy URL into a temporary file on this machine.
-Returns the name of the local copy, or nil, if FILE is directly
-accessible.
-
-\(fn URL &rest IGNORED)" nil nil)
-
-(autoload 'url-insert-buffer-contents "url-handlers" "\
-Insert the contents of BUFFER into current buffer.
-This is like `url-insert', but also decodes the current buffer as
-if it had been inserted from a file named URL.
-
-\(fn BUFFER URL &optional VISIT BEG END REPLACE)" nil nil)
-
-(autoload 'url-insert-file-contents "url-handlers" "\
-
-
-\(fn URL &optional VISIT BEG END REPLACE)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-handlers" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-history" "url/url-history.el" (0 0 0 0))
-;;; Generated autoloads from url/url-history.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-history" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-http" "url/url-http.el" (0 0 0 0))
-;;; Generated autoloads from url/url-http.el
- (autoload 'url-default-expander "url-expand")
-
-(defalias 'url-https-expand-file-name 'url-default-expander)
- (autoload 'url-https "url-http")
- (autoload 'url-https-file-exists-p "url-http")
- (autoload 'url-https-file-readable-p "url-http")
- (autoload 'url-https-file-attributes "url-http")
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-http" '("url-h")))
-
-;;;***
-
-;;;### (autoloads nil "url-imap" "url/url-imap.el" (0 0 0 0))
-;;; Generated autoloads from url/url-imap.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-imap" '("url-imap")))
-
-;;;***
-
-;;;### (autoloads nil "url-irc" "url/url-irc.el" (0 0 0 0))
-;;; Generated autoloads from url/url-irc.el
-
-(autoload 'url-irc "url-irc" "\
-
-
-\(fn URL)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-irc" '("url-irc-")))
-
-;;;***
-
-;;;### (autoloads nil "url-ldap" "url/url-ldap.el" (0 0 0 0))
-;;; Generated autoloads from url/url-ldap.el
-
-(autoload 'url-ldap "url-ldap" "\
-Perform an LDAP search specified by URL.
-The return value is a buffer displaying the search results in HTML.
-URL can be a URL string, or a URL vector of the type returned by
-`url-generic-parse-url'.
-
-\(fn URL)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-ldap" '("url-ldap-")))
-
-;;;***
-
-;;;### (autoloads nil "url-mailto" "url/url-mailto.el" (0 0 0 0))
-;;; Generated autoloads from url/url-mailto.el
-
-(autoload 'url-mail "url-mailto" "\
-
-
-\(fn &rest ARGS)" t nil)
-
-(autoload 'url-mailto "url-mailto" "\
-Handle the mailto: URL syntax.
-
-\(fn URL)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-mailto" '("url-mail-goto-field")))
-
-;;;***
-
-;;;### (autoloads nil "url-methods" "url/url-methods.el" (0 0 0 0))
-;;; Generated autoloads from url/url-methods.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-methods" '("url-scheme-")))
-
-;;;***
-
-;;;### (autoloads nil "url-misc" "url/url-misc.el" (0 0 0 0))
-;;; Generated autoloads from url/url-misc.el
-
-(autoload 'url-man "url-misc" "\
-Fetch a Unix manual page URL.
-
-\(fn URL)" nil nil)
-
-(autoload 'url-info "url-misc" "\
-Fetch a GNU Info URL.
-
-\(fn URL)" nil nil)
-
-(autoload 'url-generic-emulator-loader "url-misc" "\
-
-
-\(fn URL)" nil nil)
-
-(defalias 'url-rlogin 'url-generic-emulator-loader)
-
-(defalias 'url-telnet 'url-generic-emulator-loader)
-
-(defalias 'url-tn3270 'url-generic-emulator-loader)
-
-(autoload 'url-data "url-misc" "\
-Fetch a data URL (RFC 2397).
-
-\(fn URL)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-misc" '("url-do-terminal-emulator")))
-
-;;;***
-
-;;;### (autoloads nil "url-news" "url/url-news.el" (0 0 0 0))
-;;; Generated autoloads from url/url-news.el
-
-(autoload 'url-news "url-news" "\
-
-
-\(fn URL)" nil nil)
-
-(autoload 'url-snews "url-news" "\
-
-
-\(fn URL)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-news" '("url-news-")))
-
-;;;***
-
-;;;### (autoloads nil "url-nfs" "url/url-nfs.el" (0 0 0 0))
-;;; Generated autoloads from url/url-nfs.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-nfs" '("url-nfs")))
-
-;;;***
-
-;;;### (autoloads nil "url-ns" "url/url-ns.el" (0 0 0 0))
-;;; Generated autoloads from url/url-ns.el
-
-(autoload 'isPlainHostName "url-ns" "\
-
-
-\(fn HOST)" nil nil)
-
-(autoload 'dnsDomainIs "url-ns" "\
-
-
-\(fn HOST DOM)" nil nil)
-
-(autoload 'dnsResolve "url-ns" "\
-
-
-\(fn HOST)" nil nil)
-
-(autoload 'isResolvable "url-ns" "\
-
-
-\(fn HOST)" nil nil)
-
-(autoload 'isInNet "url-ns" "\
-
-
-\(fn IP NET MASK)" nil nil)
-
-(autoload 'url-ns-prefs "url-ns" "\
-
-
-\(fn &optional FILE)" nil nil)
-
-(autoload 'url-ns-user-pref "url-ns" "\
-
-
-\(fn KEY &optional DEFAULT)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-ns" '("url-ns-")))
-
-;;;***
-
-;;;### (autoloads nil "url-parse" "url/url-parse.el" (0 0 0 0))
-;;; Generated autoloads from url/url-parse.el
-
-(autoload 'url-recreate-url "url-parse" "\
-Recreate a URL string from the parsed URLOBJ.
-
-\(fn URLOBJ)" nil nil)
-
-(autoload 'url-generic-parse-url "url-parse" "\
-Return an URL-struct of the parts of URL.
-The CL-style struct contains the following fields:
-
-TYPE     is the URI scheme (string or nil).
-USER     is the user name (string or nil).
-PASSWORD is the password (string [deprecated] or nil).
-HOST     is the host (a registered name, IP literal in square
-         brackets, or IPv4 address in dotted-decimal form).
-PORTSPEC is the specified port (a number), or nil.
-FILENAME is the path AND the query component of the URI.
-TARGET   is the fragment identifier component (used to refer to a
-         subordinate resource, e.g. a part of a webpage).
-ATTRIBUTES is nil; this slot originally stored the attribute and
-         value alists for IMAP URIs, but this feature was removed
-         since it conflicts with RFC 3986.
-FULLNESS is non-nil if the hierarchical sequence component of
-         the URL starts with two slashes, \"//\".
-
-The parser follows RFC 3986, except that it also tries to handle
-URIs that are not fully specified (e.g. lacking TYPE), and it
-does not check for or perform %-encoding.
-
-Here is an example.  The URL
-
-  foo://bob:address@hidden:42/a/b/c.dtb?type=animal&name=narwhal#nose
-
-parses to
-
-  TYPE     = \"foo\"
-  USER     = \"bob\"
-  PASSWORD = \"pass\"
-  HOST     = \"example.com\"
-  PORTSPEC = 42
-  FILENAME = \"/a/b/c.dtb?type=animal&name=narwhal\"
-  TARGET   = \"nose\"
-  ATTRIBUTES = nil
-  FULLNESS = t
-
-\(fn URL)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-parse" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-privacy" "url/url-privacy.el" (0 0 0 0))
-;;; Generated autoloads from url/url-privacy.el
-
-(autoload 'url-setup-privacy-info "url-privacy" "\
-Setup variables that expose info about you and your system.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-privacy" '("url-device-type")))
-
-;;;***
-
-;;;### (autoloads nil "url-proxy" "url/url-proxy.el" (0 0 0 0))
-;;; Generated autoloads from url/url-proxy.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-proxy" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-queue" "url/url-queue.el" (0 0 0 0))
-;;; Generated autoloads from url/url-queue.el
-
-(autoload 'url-queue-retrieve "url-queue" "\
-Retrieve URL asynchronously and call CALLBACK with CBARGS when finished.
-This is like `url-retrieve' (which see for details of the arguments),
-but with limits on the degree of parallelism.  The variable
-`url-queue-parallel-processes' sets the number of concurrent processes.
-The variable `url-queue-timeout' sets a timeout.
-
-\(fn URL CALLBACK &optional CBARGS SILENT INHIBIT-COOKIES)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-queue" '("url-queue")))
-
-;;;***
-
-;;;### (autoloads nil "url-tramp" "url/url-tramp.el" (0 0 0 0))
-;;; Generated autoloads from url/url-tramp.el
-
-(defvar url-tramp-protocols '("ftp" "ssh" "scp" "rsync" "telnet") "\
-List of URL protocols for which the work is handled by Tramp.
-They must also be covered by `url-handler-regexp'.")
-
-(custom-autoload 'url-tramp-protocols "url-tramp" t)
-
-(autoload 'url-tramp-file-handler "url-tramp" "\
-Function called from the `file-name-handler-alist' routines.
-OPERATION is what needs to be done.  ARGS are the arguments that
-would have been passed to OPERATION.
-
-\(fn OPERATION &rest ARGS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-tramp" '("url-tramp-convert-")))
-
-;;;***
-
-;;;### (autoloads nil "url-util" "url/url-util.el" (0 0 0 0))
-;;; Generated autoloads from url/url-util.el
-
-(defvar url-debug nil "\
-What types of debug messages from the URL library to show.
-Debug messages are logged to the *URL-DEBUG* buffer.
-
-If t, all messages will be logged.
-If a number, all messages will be logged, as well shown via `message'.
-If a list, it is a list of the types of messages to be logged.")
-
-(custom-autoload 'url-debug "url-util" t)
-
-(autoload 'url-debug "url-util" "\
-
-
-\(fn TAG &rest ARGS)" nil nil)
-
-(autoload 'url-parse-args "url-util" "\
-
-
-\(fn STR &optional NODOWNCASE)" nil nil)
-
-(autoload 'url-insert-entities-in-string "url-util" "\
-Convert HTML markup-start characters to entity references in STRING.
-Also replaces the \" character, so that the result may be safely used as
-an attribute value in a tag.  Returns a new string with the result of the
-conversion.  Replaces these characters as follows:
-    &  ==>  &amp;
-    <  ==>  &lt;
-    >  ==>  &gt;
-    \"  ==>  &quot;
-
-\(fn STRING)" nil nil)
-
-(autoload 'url-normalize-url "url-util" "\
-Return a \"normalized\" version of URL.
-Strips out default port numbers, etc.
-
-\(fn URL)" nil nil)
-
-(autoload 'url-lazy-message "url-util" "\
-Just like `message', but is a no-op if called more than once a second.
-Will not do anything if `url-show-status' is nil.
-
-\(fn &rest ARGS)" nil nil)
-
-(autoload 'url-get-normalized-date "url-util" "\
-Return a date string that most HTTP servers can understand.
-
-\(fn &optional SPECIFIED-TIME)" nil nil)
-
-(autoload 'url-eat-trailing-space "url-util" "\
-Remove spaces/tabs at the end of a string.
-
-\(fn X)" nil nil)
-
-(autoload 'url-strip-leading-spaces "url-util" "\
-Remove spaces at the front of a string.
-
-\(fn X)" nil nil)
-
-(autoload 'url-display-percentage "url-util" "\
-
-
-\(fn FMT PERC &rest ARGS)" nil nil)
-
-(autoload 'url-percentage "url-util" "\
-
-
-\(fn X Y)" nil nil)
-
-(defalias 'url-basepath 'url-file-directory)
-
-(autoload 'url-file-directory "url-util" "\
-Return the directory part of FILE, for a URL.
-
-\(fn FILE)" nil nil)
-
-(autoload 'url-file-nondirectory "url-util" "\
-Return the nondirectory part of FILE, for a URL.
-
-\(fn FILE)" nil nil)
-
-(autoload 'url-parse-query-string "url-util" "\
-
-
-\(fn QUERY &optional DOWNCASE ALLOW-NEWLINES)" nil nil)
-
-(autoload 'url-build-query-string "url-util" "\
-Build a query-string.
-
-Given a QUERY in the form:
- ((key1 val1)
-  (key2 val2)
-  (key3 val1 val2)
-  (key4)
-  (key5 \"\"))
-
-\(This is the same format as produced by `url-parse-query-string')
-
-This will return a string
-\"key1=val1&key2=val2&key3=val1&key3=val2&key4&key5\". Keys may
-be strings or symbols; if they are symbols, the symbol name will
-be used.
-
-When SEMICOLONS is given, the separator will be \";\".
-
-When KEEP-EMPTY is given, empty values will show as \"key=\"
-instead of just \"key\" as in the example above.
-
-\(fn QUERY &optional SEMICOLONS KEEP-EMPTY)" nil nil)
-
-(autoload 'url-unhex-string "url-util" "\
-Remove %XX embedded spaces, etc in a URL.
-If optional second argument ALLOW-NEWLINES is non-nil, then allow the
-decoding of carriage returns and line feeds in the string, which is normally
-forbidden in URL encoding.
-
-\(fn STR &optional ALLOW-NEWLINES)" nil nil)
-
-(autoload 'url-hexify-string "url-util" "\
-URI-encode STRING and return the result.
-If STRING is multibyte, it is first converted to a utf-8 byte
-string.  Each byte corresponding to an allowed character is left
-as-is, while all other bytes are converted to a three-character
-string: \"%\" followed by two upper-case hex digits.
-
-The allowed characters are specified by ALLOWED-CHARS.  If this
-argument is nil, the list `url-unreserved-chars' determines the
-allowed characters.  Otherwise, ALLOWED-CHARS should be a vector
-whose Nth element is non-nil if character N is allowed.
-
-\(fn STRING &optional ALLOWED-CHARS)" nil nil)
-
-(autoload 'url-encode-url "url-util" "\
-Return a properly URI-encoded version of URL.
-This function also performs URI normalization, e.g. converting
-the scheme to lowercase if it is uppercase.  Apart from
-normalization, if URL is already URI-encoded, this function
-should return it unchanged.
-
-\(fn URL)" nil nil)
-
-(autoload 'url-file-extension "url-util" "\
-Return the filename extension of FNAME.
-If optional argument X is t, then return the basename
-of the file with the extension stripped off.
-
-\(fn FNAME &optional X)" nil nil)
-
-(autoload 'url-truncate-url-for-viewing "url-util" "\
-Return a shortened version of URL that is WIDTH characters wide or less.
-WIDTH defaults to the current frame width.
-
-\(fn URL &optional WIDTH)" nil nil)
-
-(autoload 'url-view-url "url-util" "\
-View the current document's URL.
-Optional argument NO-SHOW means just return the URL, don't show it in
-the minibuffer.
-
-This uses `url-current-object', set locally to the buffer.
-
-\(fn &optional NO-SHOW)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-util" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "url-vars" "url/url-vars.el" (0 0 0 0))
-;;; Generated autoloads from url/url-vars.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"url-vars" '("url-")))
-
-;;;***
-
-;;;### (autoloads nil "userlock" "userlock.el" (0 0 0 0))
-;;; Generated autoloads from userlock.el
-
-(autoload 'ask-user-about-lock "userlock" "\
-Ask user what to do when he wants to edit FILE but it is locked by OPPONENT.
-This function has a choice of three things to do:
-  do (signal \\='file-locked (list FILE OPPONENT))
-    to refrain from editing the file
-  return t (grab the lock on the file)
-  return nil (edit the file even though it is locked).
-You can redefine this function to choose among those three alternatives
-in any way you like.
-
-\(fn FILE OPPONENT)" nil nil)
-
-(autoload 'userlock--ask-user-about-supersession-threat "userlock" "\
-
-
-\(fn FN)" nil nil)
-
-(autoload 'ask-user-about-supersession-threat "userlock" "\
-Ask a user who is about to modify an obsolete buffer what to do.
-This function has two choices: it can return, in which case the modification
-of the buffer will proceed, or it can (signal \\='file-supersession (file)),
-in which case the proposed buffer modification will not be made.
-
-You can rewrite this to use any criterion you like to choose which one to do.
-The buffer in question is current when this function is called.
-
-\(fn FN)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"userlock" '("ask-user-about-" "userlock--check-content-unchanged" "file-")))
-
-;;;***
-
-;;;### (autoloads nil "utf-7" "international/utf-7.el" (0 0 0 0))
-;;; Generated autoloads from international/utf-7.el
-
-(autoload 'utf-7-post-read-conversion "utf-7" "\
-
-
-\(fn LEN)" nil nil)
-
-(autoload 'utf-7-imap-post-read-conversion "utf-7" "\
-
-
-\(fn LEN)" nil nil)
-
-(autoload 'utf-7-pre-write-conversion "utf-7" "\
-
-
-\(fn FROM TO)" nil nil)
-
-(autoload 'utf-7-imap-pre-write-conversion "utf-7" "\
-
-
-\(fn FROM TO)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"utf-7" '("utf-7-")))
-
-;;;***
-
-;;;### (autoloads nil "utf7" "international/utf7.el" (0 0 0 0))
-;;; Generated autoloads from international/utf7.el
-
-(autoload 'utf7-encode "utf7" "\
-Encode UTF-7 STRING.  Use IMAP modification if FOR-IMAP is non-nil.
-
-\(fn STRING &optional FOR-IMAP)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"utf7" '("utf7-")))
-
-;;;***
-
-;;;### (autoloads nil "uudecode" "mail/uudecode.el" (0 0 0 0))
-;;; Generated autoloads from mail/uudecode.el
-
-(autoload 'uudecode-decode-region-external "uudecode" "\
-Uudecode region between START and END using external program.
-If FILE-NAME is non-nil, save the result to FILE-NAME.  The program
-used is specified by `uudecode-decoder-program'.
-
-\(fn START END &optional FILE-NAME)" t nil)
-
-(autoload 'uudecode-decode-region-internal "uudecode" "\
-Uudecode region between START and END without using an external program.
-If FILE-NAME is non-nil, save the result to FILE-NAME.
-
-\(fn START END &optional FILE-NAME)" t nil)
-
-(autoload 'uudecode-decode-region "uudecode" "\
-Uudecode region between START and END.
-If FILE-NAME is non-nil, save the result to FILE-NAME.
-
-\(fn START END &optional FILE-NAME)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"uudecode" '("uudecode-")))
-
-;;;***
-
-;;;### (autoloads nil "vc" "vc/vc.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc.el
-
-(defvar vc-checkout-hook nil "\
-Normal hook (list of functions) run after checking out a file.
-See `run-hooks'.")
-
-(custom-autoload 'vc-checkout-hook "vc" t)
-
-(defvar vc-checkin-hook nil "\
-Normal hook (list of functions) run after commit or file checkin.
-See also `log-edit-done-hook'.")
-
-(custom-autoload 'vc-checkin-hook "vc" t)
-
-(defvar vc-before-checkin-hook nil "\
-Normal hook (list of functions) run before a commit or a file checkin.
-See `run-hooks'.")
-
-(custom-autoload 'vc-before-checkin-hook "vc" t)
-
-(autoload 'vc-responsible-backend "vc" "\
-Return the name of a backend system that is responsible for FILE.
-
-If FILE is already registered, return the
-backend of FILE.  If FILE is not registered, then the
-first backend in `vc-handled-backends' that declares itself
-responsible for FILE is returned.
-
-Note that if FILE is a symbolic link, it will not be resolved --
-the responsible backend system for the symbolic link itself will
-be reported.
-
-\(fn FILE)" nil nil)
-
-(autoload 'vc-next-action "vc" "\
-Do the next logical version control operation on the current fileset.
-This requires that all files in the current VC fileset be in the
-same state.  If not, signal an error.
-
-For merging-based version control systems:
-  If every file in the VC fileset is not registered for version
-   control, register the fileset (but don't commit).
-  If every work file in the VC fileset is added or changed, pop
-   up a *vc-log* buffer to commit the fileset.
-  For a centralized version control system, if any work file in
-   the VC fileset is out of date, offer to update the fileset.
-
-For old-style locking-based version control systems, like RCS:
-  If every file is not registered, register the file(s).
-  If every file is registered and unlocked, check out (lock)
-   the file(s) for editing.
-  If every file is locked by you and has changes, pop up a
-   *vc-log* buffer to check in the changes.  Leave a
-   read-only copy of each changed file after checking in.
-  If every file is locked by you and unchanged, unlock them.
-  If every file is locked by someone else, offer to steal the lock.
-
-\(fn VERBOSE)" t nil)
-
-(autoload 'vc-register "vc" "\
-Register into a version control system.
-If VC-FILESET is given, register the files in that fileset.
-Otherwise register the current file.
-If COMMENT is present, use that as an initial comment.
-
-The version control system to use is found by cycling through the list
-`vc-handled-backends'.  The first backend in that list which declares
-itself responsible for the file (usually because other files in that
-directory are already registered under that backend) will be used to
-register the file.  If no backend declares itself responsible, the
-first backend that could register the file is used.
-
-\(fn &optional VC-FILESET COMMENT)" t nil)
-
-(autoload 'vc-version-diff "vc" "\
-Report diffs between revisions of the fileset in the repository history.
-
-\(fn FILES REV1 REV2)" t nil)
-
-(autoload 'vc-diff "vc" "\
-Display diffs between file revisions.
-Normally this compares the currently selected fileset with their
-working revisions.  With a prefix argument HISTORIC, it reads two revision
-designators specifying which revisions to compare.
-
-The optional argument NOT-URGENT non-nil means it is ok to say no to
-saving the buffer.
-
-\(fn &optional HISTORIC NOT-URGENT)" t nil)
-
-(autoload 'vc-version-ediff "vc" "\
-Show differences between revisions of the fileset in the
-repository history using ediff.
-
-\(fn FILES REV1 REV2)" t nil)
-
-(autoload 'vc-ediff "vc" "\
-Display diffs between file revisions using ediff.
-Normally this compares the currently selected fileset with their
-working revisions.  With a prefix argument HISTORIC, it reads two revision
-designators specifying which revisions to compare.
-
-The optional argument NOT-URGENT non-nil means it is ok to say no to
-saving the buffer.
-
-\(fn HISTORIC &optional NOT-URGENT)" t nil)
-
-(autoload 'vc-root-diff "vc" "\
-Display diffs between VC-controlled whole tree revisions.
-Normally, this compares the tree corresponding to the current
-fileset with the working revision.
-With a prefix argument HISTORIC, prompt for two revision
-designators specifying which revisions to compare.
-
-The optional argument NOT-URGENT non-nil means it is ok to say no to
-saving the buffer.
-
-\(fn HISTORIC &optional NOT-URGENT)" t nil)
-
-(autoload 'vc-root-dir "vc" "\
-Return the root directory for the current VC tree.
-Return nil if the root directory cannot be identified.
-
-\(fn)" nil nil)
-
-(autoload 'vc-revision-other-window "vc" "\
-Visit revision REV of the current file in another window.
-If the current file is named `F', the revision is named `F.~REV~'.
-If `F.~REV~' already exists, use it instead of checking it out again.
-
-\(fn REV)" t nil)
-
-(autoload 'vc-insert-headers "vc" "\
-Insert headers into a file for use with a version control system.
-Headers desired are inserted at point, and are pulled from
-the variable `vc-BACKEND-header'.
-
-\(fn)" t nil)
-
-(autoload 'vc-merge "vc" "\
-Perform a version control merge operation.
-You must be visiting a version controlled file, or in a `vc-dir' buffer.
-On a distributed version control system, this runs a \"merge\"
-operation to incorporate changes from another branch onto the
-current branch, prompting for an argument list.
-
-On a non-distributed version control system, this merges changes
-between two revisions into the current fileset.  This asks for
-two revisions to merge from in the minibuffer.  If the first
-revision is a branch number, then merge all changes from that
-branch.  If the first revision is empty, merge the most recent
-changes from the current branch.
-
-\(fn)" t nil)
-
-(autoload 'vc-message-unresolved-conflicts "vc" "\
-Display a message indicating unresolved conflicts in FILENAME.
-
-\(fn FILENAME)" nil nil)
-
-(defalias 'vc-resolve-conflicts 'smerge-ediff)
-
-(autoload 'vc-create-tag "vc" "\
-Descending recursively from DIR, make a tag called NAME.
-For each registered file, the working revision becomes part of
-the named configuration.  If the prefix argument BRANCHP is
-given, the tag is made as a new branch and the files are
-checked out in that new branch.
-
-\(fn DIR NAME BRANCHP)" t nil)
-
-(autoload 'vc-retrieve-tag "vc" "\
-For each file in or below DIR, retrieve their tagged version NAME.
-NAME can name a branch, in which case this command will switch to the
-named branch in the directory DIR.
-Interactively, prompt for DIR only for VCS that works at file level;
-otherwise use the default directory of the current buffer.
-If NAME is empty, it refers to the latest revisions of the current branch.
-If locking is used for the files in DIR, then there must not be any
-locked files at or below DIR (but if NAME is empty, locked files are
-allowed and simply skipped).
-
-\(fn DIR NAME)" t nil)
-
-(autoload 'vc-print-log "vc" "\
-List the change log of the current fileset in a window.
-If WORKING-REVISION is non-nil, leave point at that revision.
-If LIMIT is non-nil, it should be a number specifying the maximum
-number of revisions to show; the default is `vc-log-show-limit'.
-
-When called interactively with a prefix argument, prompt for
-WORKING-REVISION and LIMIT.
-
-\(fn &optional WORKING-REVISION LIMIT)" t nil)
-
-(autoload 'vc-print-root-log "vc" "\
-List the change log for the current VC controlled tree in a window.
-If LIMIT is non-nil, it should be a number specifying the maximum
-number of revisions to show; the default is `vc-log-show-limit'.
-When called interactively with a prefix argument, prompt for LIMIT.
-
-\(fn &optional LIMIT)" t nil)
-
-(autoload 'vc-log-incoming "vc" "\
-Show a log of changes that will be received with a pull operation from 
REMOTE-LOCATION.
-When called interactively with a prefix argument, prompt for REMOTE-LOCATION.
-
-\(fn &optional REMOTE-LOCATION)" t nil)
-
-(autoload 'vc-log-outgoing "vc" "\
-Show a log of changes that will be sent with a push operation to 
REMOTE-LOCATION.
-When called interactively with a prefix argument, prompt for REMOTE-LOCATION.
-
-\(fn &optional REMOTE-LOCATION)" t nil)
-
-(autoload 'vc-region-history "vc" "\
-Show the history of the region FROM..TO.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'vc-revert "vc" "\
-Revert working copies of the selected fileset to their repository contents.
-This asks for confirmation if the buffer contents are not identical
-to the working revision (except for keyword expansion).
-
-\(fn)" t nil)
-
-(define-obsolete-function-alias 'vc-revert-buffer 'vc-revert "23.1")
-
-(autoload 'vc-pull "vc" "\
-Update the current fileset or branch.
-You must be visiting a version controlled file, or in a `vc-dir' buffer.
-On a distributed version control system, this runs a \"pull\"
-operation to update the current branch, prompting for an argument
-list if required.  Optional prefix ARG forces a prompt for the VCS
-command to run.
-
-On a non-distributed version control system, update the current
-fileset to the tip revisions.  For each unchanged and unlocked
-file, this simply replaces the work file with the latest revision
-on its branch.  If the file contains changes, any changes in the
-tip revision are merged into the working file.
-
-\(fn &optional ARG)" t nil)
-
-(defalias 'vc-update 'vc-pull)
-
-(autoload 'vc-push "vc" "\
-Push the current branch.
-You must be visiting a version controlled file, or in a `vc-dir' buffer.
-On a distributed version control system, this runs a \"push\"
-operation on the current branch, prompting for the precise command
-if required.  Optional prefix ARG non-nil forces a prompt for the
-VCS command to run.
-
-On a non-distributed version control system, this signals an error.
-It also signals an error in a Bazaar bound branch.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'vc-switch-backend "vc" "\
-Make BACKEND the current version control system for FILE.
-FILE must already be registered in BACKEND.  The change is not
-permanent, only for the current session.  This function only changes
-VC's perspective on FILE, it does not register or unregister it.
-By default, this command cycles through the registered backends.
-To get a prompt, use a prefix argument.
-
-\(fn FILE BACKEND)" t nil)
-
-(autoload 'vc-transfer-file "vc" "\
-Transfer FILE to another version control system NEW-BACKEND.
-If NEW-BACKEND has a higher precedence than FILE's current backend
-\(i.e.  it comes earlier in `vc-handled-backends'), then register FILE in
-NEW-BACKEND, using the revision number from the current backend as the
-base level.  If NEW-BACKEND has a lower precedence than the current
-backend, then commit all changes that were made under the current
-backend to NEW-BACKEND, and unregister FILE from the current backend.
-\(If FILE is not yet registered under NEW-BACKEND, register it.)
-
-\(fn FILE NEW-BACKEND)" nil nil)
-
-(autoload 'vc-delete-file "vc" "\
-Delete file and mark it as such in the version control system.
-If called interactively, read FILE, defaulting to the current
-buffer's file name if it's under version control.
-
-\(fn FILE)" t nil)
-
-(autoload 'vc-rename-file "vc" "\
-Rename file OLD to NEW in both work area and repository.
-If called interactively, read OLD and NEW, defaulting OLD to the
-current buffer's file name if it's under version control.
-
-\(fn OLD NEW)" t nil)
-
-(autoload 'vc-update-change-log "vc" "\
-Find change log file and add entries from recent version control logs.
-Normally, find log entries for all registered files in the default
-directory.
-
-With prefix arg of \\[universal-argument], only find log entries for the 
current buffer's file.
-
-With any numeric prefix arg, find log entries for all currently visited
-files that are under version control.  This puts all the entries in the
-log for the default directory, which may not be appropriate.
-
-From a program, any ARGS are assumed to be filenames for which
-log entries should be gathered.
-
-\(fn &rest ARGS)" t nil)
-
-(autoload 'vc-branch-part "vc" "\
-Return the branch part of a revision number REV.
-
-\(fn REV)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "vc" 
'("vc-" "with-vc-properties")))
-
-;;;***
-
-;;;### (autoloads nil "vc-annotate" "vc/vc-annotate.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-annotate.el
-
-(autoload 'vc-annotate "vc-annotate" "\
-Display the edit history of the current FILE using colors.
-
-This command creates a buffer that shows, for each line of the current
-file, when it was last edited and by whom.  Additionally, colors are
-used to show the age of each line--blue means oldest, red means
-youngest, and intermediate colors indicate intermediate ages.  By
-default, the time scale stretches back one year into the past;
-everything that is older than that is shown in blue.
-
-With a prefix argument, this command asks two questions in the
-minibuffer.  First, you may enter a revision number REV; then the buffer
-displays and annotates that revision instead of the working revision
-\(type RET in the minibuffer to leave that default unchanged).  Then,
-you are prompted for the time span in days which the color range
-should cover.  For example, a time span of 20 days means that changes
-over the past 20 days are shown in red to blue, according to their
-age, and everything that is older than that is shown in blue.
-
-If MOVE-POINT-TO is given, move the point to that line.
-
-If VC-BK is given used that VC backend.
-
-Customization variables:
-
-`vc-annotate-menu-elements' customizes the menu elements of the
-mode-specific menu.  `vc-annotate-color-map' and
-`vc-annotate-very-old-color' define the mapping of time to colors.
-`vc-annotate-background' specifies the background color.
-`vc-annotate-background-mode' specifies whether the color map
-should be applied to the background or to the foreground.
-
-\(fn FILE REV &optional DISPLAY-MODE BUF MOVE-POINT-TO VC-BK)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-annotate" '("vc-")))
-
-;;;***
-
-;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-bzr.el
-
-(defconst vc-bzr-admin-dirname ".bzr" "\
-Name of the directory containing Bzr repository status files.")
-
-(defconst vc-bzr-admin-checkout-format-file (concat vc-bzr-admin-dirname 
"/checkout/format") "\
-Name of the format file in a .bzr directory.")
- (defun vc-bzr-registered (file)
-  (if (vc-find-root file vc-bzr-admin-checkout-format-file)
-      (progn
-        (load "vc-bzr" nil t)
-        (vc-bzr-registered file))))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-bzr" '("vc-bzr-")))
-
-;;;***
-
-;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-cvs.el
-(defun vc-cvs-registered (f)
-  "Return non-nil if file F is registered with CVS."
-  (when (file-readable-p (expand-file-name
-                         "CVS/Entries" (file-name-directory f)))
-      (load "vc-cvs" nil t)
-      (vc-cvs-registered f)))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-cvs" '("vc-cvs-")))
-
-;;;***
-
-;;;### (autoloads nil "vc-dav" "vc/vc-dav.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-dav.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-dav" '("vc-dav-")))
-
-;;;***
-
-;;;### (autoloads nil "vc-dir" "vc/vc-dir.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-dir.el
-
-(autoload 'vc-dir "vc-dir" "\
-Show the VC status for \"interesting\" files in and below DIR.
-This allows you to mark files and perform VC operations on them.
-The list omits files which are up to date, with no changes in your copy
-or the repository, if there is nothing in particular to say about them.
-
-Preparing the list of file status takes time; when the buffer
-first appears, it has only the first few lines of summary information.
-The file lines appear later.
-
-Optional second argument BACKEND specifies the VC backend to use.
-Interactively, a prefix argument means to ask for the backend.
-
-These are the commands available for use in the file status buffer:
-
-\\{vc-dir-mode-map}
-
-\(fn DIR &optional BACKEND)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-dir" '("vc-")))
-
-;;;***
-
-;;;### (autoloads nil "vc-dispatcher" "vc/vc-dispatcher.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from vc/vc-dispatcher.el
-
-(autoload 'vc-do-command "vc-dispatcher" "\
-Execute a slave command, notifying user and checking for errors.
-Output from COMMAND goes to BUFFER, or the current buffer if
-BUFFER is t.  If the destination buffer is not already current,
-set it up properly and erase it.  The command is considered
-successful if its exit status does not exceed OKSTATUS (if
-OKSTATUS is nil, that means to ignore error status, if it is
-`async', that means not to wait for termination of the
-subprocess; if it is t it means to ignore all execution errors).
-FILE-OR-LIST is the name of a working file; it may be a list of
-files or be nil (to execute commands that don't expect a file
-name or set of files).  If an optional list of FLAGS is present,
-that is inserted into the command line before the filename.
-Return the return value of the slave command in the synchronous
-case, and the process object in the asynchronous case.
-
-\(fn BUFFER OKSTATUS COMMAND FILE-OR-LIST &rest FLAGS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-dispatcher" '("vc-")))
-
-;;;***
-
-;;;### (autoloads nil "vc-filewise" "vc/vc-filewise.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-filewise.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-filewise" '("vc-")))
-
-;;;***
-
-;;;### (autoloads nil "vc-git" "vc/vc-git.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-git.el
- (defun vc-git-registered (file)
-  "Return non-nil if FILE is registered with git."
-  (if (vc-find-root file ".git")       ; Short cut.
-      (progn
-        (load "vc-git" nil t)
-        (vc-git-registered file))))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-git" '("vc-git-")))
-
-;;;***
-
-;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-hg.el
- (defun vc-hg-registered (file)
-  "Return non-nil if FILE is registered with hg."
-  (if (vc-find-root file ".hg")       ; short cut
-      (progn
-        (load "vc-hg" nil t)
-        (vc-hg-registered file))))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-hg" '("vc-hg-")))
-
-;;;***
-
-;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-mtn.el
-
-(defconst vc-mtn-admin-dir "_MTN" "\
-Name of the monotone directory.")
-
-(defconst vc-mtn-admin-format (concat vc-mtn-admin-dir "/format") "\
-Name of the monotone directory's format file.")
- (defun vc-mtn-registered (file)
-  (if (vc-find-root file vc-mtn-admin-format)
-      (progn
-        (load "vc-mtn" nil t)
-        (vc-mtn-registered file))))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-mtn" '("vc-mtn-")))
-
-;;;***
-
-;;;### (autoloads nil "vc-rcs" "vc/vc-rcs.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-rcs.el
-
-(defvar vc-rcs-master-templates (purecopy '("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) 
"\
-Where to look for RCS master files.
-For a description of possible values, see `vc-check-master-templates'.")
-
-(custom-autoload 'vc-rcs-master-templates "vc-rcs" t)
-
-(defun vc-rcs-registered (f) (vc-default-registered 'RCS f))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-rcs" '("vc-r")))
-
-;;;***
-
-;;;### (autoloads nil "vc-sccs" "vc/vc-sccs.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-sccs.el
-
-(defvar vc-sccs-master-templates (purecopy '("%sSCCS/s.%s" "%ss.%s" 
vc-sccs-search-project-dir)) "\
-Where to look for SCCS master files.
-For a description of possible values, see `vc-check-master-templates'.")
-
-(custom-autoload 'vc-sccs-master-templates "vc-sccs" t)
-
-(defun vc-sccs-registered (f) (vc-default-registered 'SCCS f))
-
-(defun vc-sccs-search-project-dir (_dirname basename) "\
-Return the name of a master file in the SCCS project directory.
-Does not check whether the file exists but returns nil if it does not
-find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs 
dir) (when project-dir (if (file-name-absolute-p project-dir) (setq dirs (quote 
("SCCS" ""))) (setq dirs (quote ("src/SCCS" "src" "source/SCCS" "source"))) 
(setq project-dir (expand-file-name (concat "~" project-dir)))) (while (and 
(not dir) dirs) (setq dir (expand-file-name (car dirs) project-dir)) (unless 
(file-directory-p dir) (setq dir nil) (setq dirs (cdr dirs)))) (and dir 
(expand-file-name (concat "s." base [...]
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-sccs" '("vc-sccs-")))
-
-;;;***
-
-;;;### (autoloads nil "vc-src" "vc/vc-src.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-src.el
-
-(defvar vc-src-master-templates (purecopy '("%s.src/%s,v")) "\
-Where to look for SRC master files.
-For a description of possible values, see `vc-check-master-templates'.")
-
-(custom-autoload 'vc-src-master-templates "vc-src" t)
-
-(defun vc-src-registered (f) (vc-default-registered 'src f))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-src" '("vc-src-")))
-
-;;;***
-
-;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (0 0 0 0))
-;;; Generated autoloads from vc/vc-svn.el
- (defun vc-svn-registered (f)
-  (let ((admin-dir (cond ((and (eq system-type 'windows-nt)
-                               (getenv "SVN_ASP_DOT_NET_HACK"))
-                          "_svn")
-                         (t ".svn"))))
-    (when (vc-find-root f admin-dir)
-      (load "vc-svn" nil t)
-      (vc-svn-registered f))))
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vc-svn" '("vc-svn-")))
-
-;;;***
-
-;;;### (autoloads nil "vcursor" "vcursor.el" (0 0 0 0))
-;;; Generated autoloads from vcursor.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vcursor" '("vcursor-")))
-
-;;;***
-
-;;;### (autoloads nil "vera-mode" "progmodes/vera-mode.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from progmodes/vera-mode.el
-(push (purecopy '(vera-mode 2 28)) package--builtin-versions)
- (add-to-list 'auto-mode-alist (cons (purecopy "\\.vr[hi]?\\'")  'vera-mode))
-
-(autoload 'vera-mode "vera-mode" "\
-Major mode for editing Vera code.
-
-Usage:
-------
-
-  INDENTATION:  Typing `TAB' at the beginning of a line indents the line.
-    The amount of indentation is specified by option `vera-basic-offset'.
-    Indentation can be done for an entire region (`M-C-\\') or buffer (menu).
-    `TAB' always indents the line if option `vera-intelligent-tab' is nil.
-
-  WORD/COMMAND COMPLETION:  Typing `TAB' after a (not completed) word looks
-    for a word in the buffer or a Vera keyword that starts alike, inserts it
-    and adjusts case.  Re-typing `TAB' toggles through alternative word
-    completions.
-
-    Typing `TAB' after a non-word character inserts a tabulator stop (if not
-    at the beginning of a line).  `M-TAB' always inserts a tabulator stop.
-
-  COMMENTS:  `C-c C-c' comments out a region if not commented out, and
-    uncomments a region if already commented out.
-
-  HIGHLIGHTING (fontification):  Vera keywords, predefined types and
-    constants, function names, declaration names, directives, as well as
-    comments and strings are highlighted using different colors.
-
-  VERA VERSION:  OpenVera 1.4 and Vera version 6.2.8.
-
-
-Maintenance:
-------------
-
-To submit a bug report, use the corresponding menu entry within Vera Mode.
-Add a description of the problem and include a reproducible test case.
-
-Feel free to send questions and enhancement requests to <address@hidden>.
-
-Official distribution is at
-URL `http://www.iis.ee.ethz.ch/~zimmi/emacs/vera-mode.html'
-
-
-                                                  The Vera Mode Maintainer
-                                               Reto Zimmermann <address@hidden>
-
-Key bindings:
--------------
-
-\\{vera-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vera-mode" '("vera-")))
-
-;;;***
-
-;;;### (autoloads nil "verilog-mode" "progmodes/verilog-mode.el"
-;;;;;;  (0 0 0 0))
-;;; Generated autoloads from progmodes/verilog-mode.el
-
-(autoload 'verilog-mode "verilog-mode" "\
-Major mode for editing Verilog code.
-\\<verilog-mode-map>
-See \\[describe-function] verilog-auto (\\[verilog-auto]) for details on how
-AUTOs can improve coding efficiency.
-
-Use \\[verilog-faq] for a pointer to frequently asked questions.
-
-NEWLINE, TAB indents for Verilog code.
-Delete converts tabs to spaces as it moves back.
-
-Supports highlighting.
-
-Turning on Verilog mode calls the value of the variable `verilog-mode-hook'
-with no args, if that value is non-nil.
-
-Variables controlling indentation/edit style:
-
- variable `verilog-indent-level'      (default 3)
-   Indentation of Verilog statements with respect to containing block.
- `verilog-indent-level-module'        (default 3)
-   Absolute indentation of Module level Verilog statements.
-   Set to 0 to get initial and always statements lined up
-   on the left side of your screen.
- `verilog-indent-level-declaration'   (default 3)
-   Indentation of declarations with respect to containing block.
-   Set to 0 to get them list right under containing block.
- `verilog-indent-level-behavioral'    (default 3)
-   Indentation of first begin in a task or function block
-   Set to 0 to get such code to lined up underneath the task or
-   function keyword.
- `verilog-indent-level-directive'     (default 1)
-   Indentation of \\=`ifdef/\\=`endif blocks.
- `verilog-cexp-indent'              (default 1)
-   Indentation of Verilog statements broken across lines i.e.:
-      if (a)
-        begin
- `verilog-case-indent'              (default 2)
-   Indentation for case statements.
- `verilog-auto-newline'             (default nil)
-   Non-nil means automatically newline after semicolons and the punctuation
-   mark after an end.
- `verilog-auto-indent-on-newline'   (default t)
-   Non-nil means automatically indent line after newline.
- `verilog-tab-always-indent'        (default t)
-   Non-nil means TAB in Verilog mode should always reindent the current line,
-   regardless of where in the line point is when the TAB command is used.
- `verilog-indent-begin-after-if'    (default t)
-   Non-nil means to indent begin statements following a preceding
-   if, else, while, for and repeat statements, if any.  Otherwise,
-   the begin is lined up with the preceding token.  If t, you get:
-      if (a)
-         begin // amount of indent based on `verilog-cexp-indent'
-   otherwise you get:
-      if (a)
-      begin
- `verilog-auto-endcomments'         (default t)
-   Non-nil means a comment /* ... */ is set after the ends which ends
-   cases, tasks, functions and modules.
-   The type and name of the object will be set between the braces.
- `verilog-minimum-comment-distance' (default 10)
-   Minimum distance (in lines) between begin and end required before a comment
-   will be inserted.  Setting this variable to zero results in every
-   end acquiring a comment; the default avoids too many redundant
-   comments in tight quarters.
- `verilog-auto-lineup'              (default `declarations')
-   List of contexts where auto lineup of code should be done.
-
-Variables controlling other actions:
-
- `verilog-linter'                   (default `surelint')
-   Unix program to call to run the lint checker.  This is the default
-   command for \\[compile-command] and \\[verilog-auto-save-compile].
-
-See \\[customize] for the complete list of variables.
-
-AUTO expansion functions are, in part:
-
-    \\[verilog-auto]  Expand AUTO statements.
-    \\[verilog-delete-auto]  Remove the AUTOs.
-    \\[verilog-inject-auto]  Insert AUTOs for the first time.
-
-Some other functions are:
-
-    \\[verilog-complete-word]    Complete word with appropriate possibilities.
-    \\[verilog-mark-defun]  Mark function.
-    \\[verilog-beg-of-defun]  Move to beginning of current function.
-    \\[verilog-end-of-defun]  Move to end of current function.
-    \\[verilog-label-be]  Label matching begin ... end, fork ... join, etc 
statements.
-
-    \\[verilog-comment-region]  Put marked area in a comment.
-    \\[verilog-uncomment-region]  Uncomment an area commented with 
\\[verilog-comment-region].
-    \\[verilog-insert-block]  Insert begin ... end.
-    \\[verilog-star-comment]    Insert /* ... */.
-
-    \\[verilog-sk-always]  Insert an always @(AS) begin .. end block.
-    \\[verilog-sk-begin]  Insert a begin .. end block.
-    \\[verilog-sk-case]  Insert a case block, prompting for details.
-    \\[verilog-sk-for]  Insert a for (...) begin .. end block, prompting for 
details.
-    \\[verilog-sk-generate]  Insert a generate .. endgenerate block.
-    \\[verilog-sk-header]  Insert a header block at the top of file.
-    \\[verilog-sk-initial]  Insert an initial begin .. end block.
-    \\[verilog-sk-fork]  Insert a fork begin .. end .. join block.
-    \\[verilog-sk-module]  Insert a module .. (/*AUTOARG*/);.. endmodule block.
-    \\[verilog-sk-ovm-class]  Insert an OVM Class block.
-    \\[verilog-sk-uvm-object]  Insert an UVM Object block.
-    \\[verilog-sk-uvm-component]  Insert an UVM Component block.
-    \\[verilog-sk-primitive]  Insert a primitive .. (.. );.. endprimitive 
block.
-    \\[verilog-sk-repeat]  Insert a repeat (..) begin .. end block.
-    \\[verilog-sk-specify]  Insert a specify .. endspecify block.
-    \\[verilog-sk-task]  Insert a task .. begin .. end endtask block.
-    \\[verilog-sk-while]  Insert a while (...) begin .. end block, prompting 
for details.
-    \\[verilog-sk-casex]  Insert a casex (...) item: begin.. end endcase 
block, prompting for details.
-    \\[verilog-sk-casez]  Insert a casez (...) item: begin.. end endcase 
block, prompting for details.
-    \\[verilog-sk-if]  Insert an if (..) begin .. end block.
-    \\[verilog-sk-else-if]  Insert an else if (..) begin .. end block.
-    \\[verilog-sk-comment]  Insert a comment block.
-    \\[verilog-sk-assign]  Insert an assign .. = ..; statement.
-    \\[verilog-sk-function]  Insert a function .. begin .. end endfunction 
block.
-    \\[verilog-sk-input]  Insert an input declaration, prompting for details.
-    \\[verilog-sk-output]  Insert an output declaration, prompting for details.
-    \\[verilog-sk-state-machine]  Insert a state machine definition, prompting 
for details.
-    \\[verilog-sk-inout]  Insert an inout declaration, prompting for details.
-    \\[verilog-sk-wire]  Insert a wire declaration, prompting for details.
-    \\[verilog-sk-reg]  Insert a register declaration, prompting for details.
-    \\[verilog-sk-define-signal]  Define signal under point as a register at 
the top of the module.
-
-All key bindings can be seen in a Verilog-buffer with \\[describe-bindings].
-Key bindings specific to `verilog-mode-map' are:
-
-\\{verilog-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"verilog-mode" '("vl-" "verilog-" "electric-verilog-")))
-
-;;;***
-
-;;;### (autoloads nil "vhdl-mode" "progmodes/vhdl-mode.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from progmodes/vhdl-mode.el
-
-(autoload 'vhdl-mode "vhdl-mode" "\
-Major mode for editing VHDL code.
-
-Usage:
-------
-
-  TEMPLATE INSERTION (electrification):
-    After typing a VHDL keyword and entering `SPC', you are prompted for
-    arguments while a template is generated for that VHDL construct.  Typing
-    `RET' or `C-g' at the first (mandatory) prompt aborts the current
-    template generation.  Optional arguments are indicated by square
-    brackets and removed if the queried string is left empty.  Prompts for
-    mandatory arguments remain in the code if the queried string is left
-    empty.  They can be queried again by `C-c C-t C-q'.  Enabled
-    electrification is indicated by `/e' in the mode line.
-
-      Typing `M-SPC' after a keyword inserts a space without calling the
-    template generator.  Automatic template generation (i.e.
-    electrification) can be disabled (enabled) by typing `C-c C-m C-e' or by
-    setting option `vhdl-electric-mode' (see OPTIONS).
-
-      Template generators can be invoked from the VHDL menu, by key
-    bindings, by typing `C-c C-i C-c' and choosing a construct, or by typing
-    the keyword (i.e. first word of menu entry not in parenthesis) and
-    `SPC'.  The following abbreviations can also be used: arch, attr, cond,
-    conf, comp, cons, func, inst, pack, sig, var.
-
-      Template styles can be customized in customization group
-    `vhdl-template' (see OPTIONS).
-
-
-  HEADER INSERTION:
-    A file header can be inserted by `C-c C-t C-h'.  A file footer
-    (template at the end of the file) can be inserted by `C-c C-t C-f'.
-    See customization group `vhdl-header'.
-
-
-  STUTTERING:
-    Double striking of some keys inserts cumbersome VHDL syntax elements.
-    Stuttering can be disabled (enabled) by typing `C-c C-m C-s' or by
-    option `vhdl-stutter-mode'.  Enabled stuttering is indicated by `/s' in
-    the mode line.  The stuttering keys and their effects are:
-
-      ;;   -->  \" : \"       [   -->  (        --    -->  comment
-      ;;;  -->  \" := \"      [[  -->  [        --CR  -->  comment-out code
-      ..   -->  \" => \"      ]   -->  )        ---   -->  horizontal line
-      ,,   -->  \" <= \"      ]]  -->  ]        ----  -->  display comment
-      ==   -->  \" == \"      \\='\\='  -->  \\\"
-
-
-  WORD COMPLETION:
-    Typing `TAB' after a (not completed) word looks for a VHDL keyword or a
-    word in the buffer that starts alike, inserts it and adjusts case.
-    Re-typing `TAB' toggles through alternative word completions.  This also
-    works in the minibuffer (i.e. in template generator prompts).
-
-      Typing `TAB' after `(' looks for and inserts complete parenthesized
-    expressions (e.g. for array index ranges).  All keywords as well as
-    standard types and subprograms of VHDL have predefined abbreviations
-    (e.g., type \"std\" and `TAB' will toggle through all standard types
-    beginning with \"std\").
-
-      Typing `TAB' after a non-word character indents the line if at the
-    beginning of a line (i.e. no preceding non-blank characters), and
-    inserts a tabulator stop otherwise.  `M-TAB' always inserts a tabulator
-    stop.
-
-
-  COMMENTS:
-        `--'       puts a single comment.
-        `---'      draws a horizontal line for separating code segments.
-        `----'     inserts a display comment, i.e. two horizontal lines
-                   with a comment in between.
-        `--CR'     comments out code on that line.  Re-hitting CR comments
-                   out following lines.
-        `C-c C-c'  comments out a region if not commented out,
-                   uncomments a region if already commented out.  Option
-                   `comment-style' defines where the comment characters
-                   should be placed (beginning of line, indent, etc.).
-
-      You are prompted for comments after object definitions (i.e. signals,
-    variables, constants, ports) and after subprogram and process
-    specifications if option `vhdl-prompt-for-comments' is non-nil.
-    Comments are automatically inserted as additional labels (e.g. after
-    begin statements) and as help comments if `vhdl-self-insert-comments' is
-    non-nil.
-
-      Inline comments (i.e. comments after a piece of code on the same line)
-    are indented at least to `vhdl-inline-comment-column'.  Comments go at
-    maximum to `vhdl-end-comment-column'.  `RET' after a space in a comment
-    will open a new comment line.  Typing beyond `vhdl-end-comment-column'
-    in a comment automatically opens a new comment line.  `M-q' re-fills
-    multi-line comments.
-
-
-  INDENTATION:
-    `TAB' indents a line if at the beginning of the line.  The amount of
-    indentation is specified by option `vhdl-basic-offset'.  `C-c C-i C-l'
-    always indents the current line (is bound to `TAB' if option
-    `vhdl-intelligent-tab' is nil).  If a region is active, `TAB' indents
-    the entire region.
-
-      Indentation can be done for a group of lines (`C-c C-i C-g'), a region
-    (`M-C-\\') or the entire buffer (menu).  Argument and port lists are
-    indented normally (nil) or relative to the opening parenthesis (non-nil)
-    according to option `vhdl-argument-list-indent'.
-
-      If option `vhdl-indent-tabs-mode' is nil, spaces are used instead of
-    tabs.  `\\[tabify]' and `\\[untabify]' allow the conversion of spaces to
-    tabs and vice versa.
-
-      Syntax-based indentation can be very slow in large files.  Option
-    `vhdl-indent-syntax-based' allows you to use faster but simpler 
indentation.
-
-      Option `vhdl-indent-comment-like-next-code-line' controls whether
-    comment lines are indented like the preceding or like the following code
-    line.
-
-
-  ALIGNMENT:
-    The alignment functions align operators, keywords, and inline comments
-    to beautify the code.  `C-c C-a C-a' aligns a group of consecutive lines
-    separated by blank lines, `C-c C-a C-i' a block of lines with same
-    indent.  `C-c C-a C-l' aligns all lines belonging to a list enclosed by
-    a pair of parentheses (e.g. port clause/map, argument list), and `C-c
-    C-a C-d' all lines within the declarative part of a design unit.  `C-c
-    C-a M-a' aligns an entire region.  `C-c C-a C-c' aligns inline comments
-    for a group of lines, and `C-c C-a M-c' for a region.
-
-      If option `vhdl-align-groups' is non-nil, groups of code lines
-    separated by special lines (see option `vhdl-align-group-separate') are
-    aligned individually.  If option `vhdl-align-same-indent' is non-nil,
-    blocks of lines with same indent are aligned separately.  Some templates
-    are automatically aligned after generation if option `vhdl-auto-align'
-    is non-nil.
-
-      Alignment tries to align inline comments at
-    `vhdl-inline-comment-column' and tries inline comment not to exceed
-    `vhdl-end-comment-column'.
-
-      `C-c C-x M-w' fixes up whitespace in a region.  That is, operator
-    symbols are surrounded by one space, and multiple spaces are eliminated.
-
-
-  CODE FILLING:
-    Code filling allows you to condense code (e.g. sensitivity lists or port
-    maps) by removing comments and newlines and re-wrapping so that all
-    lines are maximally filled (block filling).  `C-c C-f C-f' fills a list
-    enclosed by parenthesis, `C-c C-f C-g' a group of lines separated by
-    blank lines, `C-c C-f C-i' a block of lines with same indent, and
-    `C-c C-f M-f' an entire region.
-
-
-  CODE BEAUTIFICATION:
-    `C-c M-b' and `C-c C-b' beautify the code of a region or of the entire
-    buffer respectively.  This includes indentation, alignment, and case
-    fixing.  Code beautification can also be run non-interactively using the
-    command:
-
-      emacs -batch -l ~/.emacs filename.vhd -f vhdl-beautify-buffer
-
-
-  PORT TRANSLATION:
-    Generic and port clauses from entity or component declarations can be
-    copied (`C-c C-p C-w') and pasted as entity and component declarations,
-    as component instantiations and corresponding internal constants and
-    signals, as a generic map with constants as actual generics, and as
-    internal signal initializations (menu).
-
-      To include formals in component instantiations, see option
-    `vhdl-association-list-with-formals'.  To include comments in pasting,
-    see options `vhdl-include-...-comments'.
-
-      A clause with several generic/port names on the same line can be
-    flattened (`C-c C-p C-f') so that only one name per line exists.  The
-    direction of ports can be reversed (`C-c C-p C-r'), i.e., inputs become
-    outputs and vice versa, which can be useful in testbenches.  (This
-    reversion is done on the internal data structure and is only reflected
-    in subsequent paste operations.)
-
-      Names for actual ports, instances, testbenches, and
-    design-under-test instances can be derived from existing names according
-    to options `vhdl-...-name'.  See customization group `vhdl-port'.
-
-
-  SUBPROGRAM TRANSLATION:
-    Similar functionality exists for copying/pasting the interface of
-    subprograms (function/procedure).  A subprogram interface can be copied
-    and then pasted as a subprogram declaration, body or call (uses
-    association list with formals).
-
-
-  TESTBENCH GENERATION:
-    A copied port can also be pasted as a testbench.  The generated
-    testbench includes an entity, an architecture, and an optional
-    configuration.  The architecture contains the component declaration and
-    instantiation of the DUT as well as internal constant and signal
-    declarations.  Additional user-defined templates can be inserted.  The
-    names used for entity/architecture/configuration/DUT as well as the file
-    structure to be generated can be customized. See customization group
-   `vhdl-testbench'.
-
-
-  KEY BINDINGS:
-    Key bindings (`C-c ...') exist for most commands (see in menu).
-
-
-  VHDL MENU:
-    All commands can be found in the VHDL menu including their key bindings.
-
-
-  FILE BROWSER:
-    The speedbar allows browsing of directories and file contents.  It can
-    be accessed from the VHDL menu and is automatically opened if option
-    `vhdl-speedbar-auto-open' is non-nil.
-
-      In speedbar, open files and directories with `mouse-2' on the name and
-    browse/rescan their contents with `mouse-2'/`S-mouse-2' on the `+'.
-
-
-  DESIGN HIERARCHY BROWSER:
-    The speedbar can also be used for browsing the hierarchy of design units
-    contained in the source files of the current directory or the specified
-    projects (see option `vhdl-project-alist').
-
-      The speedbar can be switched between file, directory hierarchy and
-    project hierarchy browsing mode in the speedbar menu or by typing `f',
-    `h' or `H' in speedbar.
-
-      In speedbar, open design units with `mouse-2' on the name and browse
-    their hierarchy with `mouse-2' on the `+'.  Ports can directly be copied
-    from entities and components (in packages).  Individual design units and
-    complete designs can directly be compiled (\"Make\" menu entry).
-
-      The hierarchy is automatically updated upon saving a modified source
-    file when option `vhdl-speedbar-update-on-saving' is non-nil.  The
-    hierarchy is only updated for projects that have been opened once in the
-    speedbar.  The hierarchy is cached between Emacs sessions in a file (see
-    options in group `vhdl-speedbar').
-
-      Simple design consistency checks are done during scanning, such as
-    multiple declarations of the same unit or missing primary units that are
-    required by secondary units.
-
-
-  STRUCTURAL COMPOSITION:
-    Enables simple structural composition.  `C-c C-m C-n' creates a skeleton
-    for a new component.  Subcomponents (i.e. component declaration and
-    instantiation) can be automatically placed from a previously read port
-    (`C-c C-m C-p') or directly from the hierarchy browser (`P').  Finally,
-    all subcomponents can be automatically connected using internal signals
-    and ports (`C-c C-m C-w') following these rules:
-      - subcomponent actual ports with same name are considered to be
-        connected by a signal (internal signal or port)
-      - signals that are only inputs to subcomponents are considered as
-        inputs to this component -> input port created
-      - signals that are only outputs from subcomponents are considered as
-        outputs from this component -> output port created
-      - signals that are inputs to AND outputs from subcomponents are
-        considered as internal connections -> internal signal created
-
-      Purpose:  With appropriate naming conventions it is possible to
-    create higher design levels with only a few mouse clicks or key
-    strokes.  A new design level can be created by simply generating a new
-    component, placing the required subcomponents from the hierarchy
-    browser, and wiring everything automatically.
-
-      Note: Automatic wiring only works reliably on templates of new
-    components and component instantiations that were created by VHDL mode.
-
-      Component declarations can be placed in a components package (option
-    `vhdl-use-components-package') which can be automatically generated for
-    an entire directory or project (`C-c C-m M-p').  The VHDL'93 direct
-    component instantiation is also supported (option
-    `vhdl-use-direct-instantiation').
-
-      Configuration declarations can automatically be generated either from
-    the menu (`C-c C-m C-f') (for the architecture the cursor is in) or from
-    the speedbar menu (for the architecture under the cursor).  The
-    configurations can optionally be hierarchical (i.e. include all
-    component levels of a hierarchical design, option
-    `vhdl-compose-configuration-hierarchical') or include subconfigurations
-    (option `vhdl-compose-configuration-use-subconfiguration').  For
-    subcomponents in hierarchical configurations, the most-recently-analyzed
-    (mra) architecture is selected.  If another architecture is desired, it
-    can be marked as most-recently-analyzed (speedbar menu) before
-    generating the configuration.
-
-      Note: Configurations of subcomponents (i.e. hierarchical configuration
-    declarations) are currently not considered when displaying
-    configurations in speedbar.
-
-      See the options group `vhdl-compose' for all relevant user options.
-
-
-  SOURCE FILE COMPILATION:
-    The syntax of the current buffer can be analyzed by calling a VHDL
-    compiler (menu, `C-c C-k').  The compiler to be used is specified by
-    option `vhdl-compiler'.  The available compilers are listed in option
-    `vhdl-compiler-alist' including all required compilation command,
-    command options, compilation directory, and error message syntax
-    information.  New compilers can be added.
-
-      All the source files of an entire design can be compiled by the `make'
-    command (menu, `C-c M-C-k') if an appropriate Makefile exists.
-
-
-  MAKEFILE GENERATION:
-    Makefiles can be generated automatically by an internal generation
-    routine (`C-c M-k').  The library unit dependency information is
-    obtained from the hierarchy browser.  Makefile generation can be
-    customized for each compiler in option `vhdl-compiler-alist'.
-
-      Makefile generation can also be run non-interactively using the
-    command:
-
-        emacs -batch -l ~/.emacs -l vhdl-mode
-              [-compiler compilername] [-project projectname]
-              -f vhdl-generate-makefile
-
-      The Makefile's default target \"all\" compiles the entire design, the
-    target \"clean\" removes it and the target \"library\" creates the
-    library directory if not existent.  These target names can be customized
-    by option `vhdl-makefile-default-targets'.  The Makefile also includes a
-    target for each primary library unit which allows selective compilation
-    of this unit, its secondary units and its subhierarchy (example:
-    compilation of a design specified by a configuration).  User specific
-    parts can be inserted into a Makefile with option
-    `vhdl-makefile-generation-hook'.
-
-    Limitations:
-      - Only library units and dependencies within the current library are
-        considered.  Makefiles for designs that span multiple libraries are
-        not (yet) supported.
-      - Only one-level configurations are supported (also hierarchical),
-        but configurations that go down several levels are not.
-      - The \"others\" keyword in configurations is not supported.
-
-
-  PROJECTS:
-    Projects can be defined in option `vhdl-project-alist' and a current
-    project be selected using option `vhdl-project' (permanently) or from
-    the menu or speedbar (temporarily).  For each project, title and
-    description strings (for the file headers), source files/directories
-    (for the hierarchy browser and Makefile generation), library name, and
-    compiler-dependent options, exceptions and compilation directory can be
-    specified.  Compilation settings overwrite the settings of option
-    `vhdl-compiler-alist'.
-
-      Project setups can be exported (i.e. written to a file) and imported.
-    Imported setups are not automatically saved in `vhdl-project-alist' but
-    can be saved afterwards in its customization buffer.  When starting
-    Emacs with VHDL Mode (i.e. load a VHDL file or use \"emacs -l
-    vhdl-mode\") in a directory with an existing project setup file, it is
-    automatically loaded and its project activated if option
-    `vhdl-project-auto-load' is non-nil.  Names/paths of the project setup
-    files can be specified in option `vhdl-project-file-name'.  Multiple
-    project setups can be automatically loaded from global directories.
-    This is an alternative to specifying project setups with option
-    `vhdl-project-alist'.
-
-
-  SPECIAL MENUES:
-    As an alternative to the speedbar, an index menu can be added (set
-    option `vhdl-index-menu' to non-nil) or made accessible as a mouse menu
-    (e.g. add \"(global-set-key [S-down-mouse-3] \\='imenu)\" to your start-up
-    file) for browsing the file contents (is not populated if buffer is
-    larger than 256000).  Also, a source file menu can be
-    added (set option `vhdl-source-file-menu' to non-nil) for browsing the
-    current directory for VHDL source files.
-
-
-  VHDL STANDARDS:
-    The VHDL standards to be used are specified in option `vhdl-standard'.
-    Available standards are: VHDL'87/'93(02)/'08, VHDL-AMS, and Math Packages.
-
-
-  KEYWORD CASE:
-    Lower and upper case for keywords and standardized types, attributes,
-    and enumeration values is supported.  If the option
-    `vhdl-upper-case-keywords' is set to non-nil, keywords can be typed in
-    lower case and are converted into upper case automatically (not for
-    types, attributes, and enumeration values).  The case of keywords,
-    types, attributes,and enumeration values can be fixed for an entire
-    region (menu) or buffer (`C-c C-x C-c') according to the options
-    `vhdl-upper-case-{keywords,types,attributes,enum-values}'.
-
-
-  HIGHLIGHTING (fontification):
-    Keywords and standardized types, attributes, enumeration values, and
-    function names (controlled by option `vhdl-highlight-keywords'), as well
-    as comments, strings, and template prompts are highlighted using
-    different colors.  Unit, subprogram, signal, variable, constant,
-    parameter and generic/port names in declarations as well as labels are
-    highlighted if option `vhdl-highlight-names' is non-nil.
-
-      Additional reserved words or words with a forbidden syntax (e.g. words
-    that should be avoided) can be specified in option
-    `vhdl-forbidden-words' or `vhdl-forbidden-syntax' and be highlighted in
-    a warning color (option `vhdl-highlight-forbidden-words').  Verilog
-    keywords are highlighted as forbidden words if option
-    `vhdl-highlight-verilog-keywords' is non-nil.
-
-      Words with special syntax can be highlighted by specifying their
-    syntax and color in option `vhdl-special-syntax-alist' and by setting
-    option `vhdl-highlight-special-words' to non-nil.  This allows you to
-    establish some naming conventions (e.g. to distinguish different kinds
-    of signals or other objects by using name suffices) and to support them
-    visually.
-
-      Option `vhdl-highlight-case-sensitive' can be set to non-nil in order
-    to support case-sensitive highlighting.  However, keywords are then only
-    highlighted if written in lower case.
-
-      Code between \"translate_off\" and \"translate_on\" pragmas is
-    highlighted using a different background color if option
-    `vhdl-highlight-translate-off' is non-nil.
-
-      For documentation and customization of the used colors see
-    customization group `vhdl-highlight-faces' (`\\[customize-group]').  For
-    highlighting of matching parenthesis, see customization group
-    `paren-showing'.  Automatic buffer highlighting is turned on/off by
-    option `global-font-lock-mode' (`font-lock-auto-fontify' in XEmacs).
-
-
-  USER MODELS:
-    VHDL models (templates) can be specified by the user and made accessible
-    in the menu, through key bindings (`C-c C-m ...'), or by keyword
-    electrification.  See option `vhdl-model-alist'.
-
-
-  HIDE/SHOW:
-    The code of blocks, processes, subprograms, component declarations and
-    instantiations, generic/port clauses, and configuration declarations can
-    be hidden using the `Hide/Show' menu or by pressing `S-mouse-2' within
-    the code (see customization group `vhdl-menu').  XEmacs: limited
-    functionality due to old `hideshow.el' package.
-
-
-  CODE UPDATING:
-    - Sensitivity List: `C-c C-u C-s' updates the sensitivity list of the
-      current process, `C-c C-u M-s' of all processes in the current buffer.
-      Limitations:
-        - Only declared local signals (ports, signals declared in
-          architecture and blocks) are automatically inserted.
-        - Global signals declared in packages are not automatically inserted.
-          Insert them once manually (will be kept afterwards).
-        - Out parameters of procedures are considered to be read.
-      Use option `vhdl-entity-file-name' to specify the entity file name
-      (used to obtain the port names).
-      Use option `vhdl-array-index-record-field-in-sensitivity-list' to
-      specify whether to include array indices and record fields in
-      sensitivity lists.
-
-
-  CODE FIXING:
-    `C-c C-x C-p' fixes the closing parenthesis of a generic/port clause
-    (e.g., if the closing parenthesis is on the wrong line or is missing).
-
-
-  PRINTING:
-    PostScript printing with different faces (an optimized set of faces is
-    used if `vhdl-print-customize-faces' is non-nil) or colors (if
-    `ps-print-color-p' is non-nil) is possible using the standard Emacs
-    PostScript printing commands.  Option `vhdl-print-two-column' defines
-    appropriate default settings for nice landscape two-column printing.
-    The paper format can be set by option `ps-paper-type'.  Do not forget to
-    switch `ps-print-color-p' to nil for printing on black-and-white
-    printers.
-
-
-  OPTIONS:
-    User options allow customization of VHDL Mode.  All options are
-    accessible from the \"Options\" menu entry.  Simple options (switches
-    and choices) can directly be changed, while for complex options a
-    customization buffer is opened.  Changed options can be saved for future
-    sessions using the \"Save Options\" menu entry.
-
-      Options and their detailed descriptions can also be accessed by using
-    the \"Customize\" menu entry or the command `\\[customize-option]'
-    (`\\[customize-group]' for groups).  Some customizations only take effect
-    after some action (read the NOTE in the option documentation).
-    Customization can also be done globally (i.e. site-wide, read the
-    INSTALL file).
-
-      Not all options are described in this documentation, so go and see
-    what other useful user options there are (`\\[vhdl-customize]' or menu)!
-
-
-  FILE EXTENSIONS:
-    As default, files with extensions \".vhd\" and \".vhdl\" are
-    automatically recognized as VHDL source files.  To add an extension
-    \".xxx\", add the following line to your Emacs start-up file (`.emacs'):
-
-      (push \\='(\"\\\\.xxx\\\\\\='\" . vhdl-mode) auto-mode-alist)
-
-
-  HINTS:
-    - To start Emacs with open VHDL hierarchy browser without having to load
-      a VHDL file first, use the command:
-
-        emacs -l vhdl-mode -f speedbar-frame-mode
-
-    - Type `C-g C-g' to interrupt long operations or if Emacs hangs.
-
-    - Some features only work on properly indented code.
-
-
-  RELEASE NOTES:
-    See also the release notes (menu) for added features in new releases.
-
-
-Maintenance:
-------------
-
-To submit a bug report, enter `\\[vhdl-submit-bug-report]' within VHDL Mode.
-Add a description of the problem and include a reproducible test case.
-
-Questions and enhancement requests can be sent to <address@hidden>.
-
-The `vhdl-mode-announce' mailing list informs about new VHDL Mode releases.
-The `vhdl-mode-victims' mailing list informs about new VHDL Mode beta
-releases.  You are kindly invited to participate in beta testing.  Subscribe
-to above mailing lists by sending an email to <address@hidden>.
-
-VHDL Mode is officially distributed at
-http://www.iis.ee.ethz.ch/~zimmi/emacs/vhdl-mode.html
-where the latest version can be found.
-
-
-Known problems:
----------------
-
-- XEmacs: Incorrect start-up when automatically opening speedbar.
-- XEmacs: Indentation in XEmacs 21.4 (and higher).
-- Indentation incorrect for new 'postponed' VHDL keyword.
-- Indentation incorrect for 'protected body' construct.
-
-
-                                                The VHDL Mode Authors
-                                            Reto Zimmermann and Rod Whitby
-
-Key bindings:
--------------
-
-\\{vhdl-mode-map}
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vhdl-mode" '("vhdl-")))
-
-;;;***
-
-;;;### (autoloads nil "viet-util" "language/viet-util.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from language/viet-util.el
-
-(autoload 'viet-encode-viscii-char "viet-util" "\
-Return VISCII character code of CHAR if appropriate.
-
-\(fn CHAR)" nil nil)
-
-(autoload 'viet-decode-viqr-region "viet-util" "\
-Convert `VIQR' mnemonics of the current region to Vietnamese characters.
-When called from a program, expects two arguments,
-positions (integers or markers) specifying the stretch of the region.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'viet-decode-viqr-buffer "viet-util" "\
-Convert `VIQR' mnemonics of the current buffer to Vietnamese characters.
-
-\(fn)" t nil)
-
-(autoload 'viet-encode-viqr-region "viet-util" "\
-Convert Vietnamese characters of the current region to `VIQR' mnemonics.
-When called from a program, expects two arguments,
-positions (integers or markers) specifying the stretch of the region.
-
-\(fn FROM TO)" t nil)
-
-(autoload 'viet-encode-viqr-buffer "viet-util" "\
-Convert Vietnamese characters of the current buffer to `VIQR' mnemonics.
-
-\(fn)" t nil)
-
-(autoload 'viqr-post-read-conversion "viet-util" "\
-
-
-\(fn LEN)" nil nil)
-
-(autoload 'viqr-pre-write-conversion "viet-util" "\
-
-
-\(fn FROM TO)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"viet-util" '("viet-viqr-alist" "viqr-regexp")))
-
-;;;***
-
-;;;### (autoloads nil "view" "view.el" (0 0 0 0))
-;;; Generated autoloads from view.el
-
-(defvar view-remove-frame-by-deleting t "\
-Determine how View mode removes a frame no longer needed.
-If nil, make an icon of the frame.  If non-nil, delete the frame.")
-
-(custom-autoload 'view-remove-frame-by-deleting "view" t)
-
-(defvar view-mode nil "\
-Non-nil if View mode is enabled.
-Don't change this variable directly, you must change it by one of the
-functions that enable or disable view mode.")
-
-(make-variable-buffer-local 'view-mode)
-
-(autoload 'kill-buffer-if-not-modified "view" "\
-Like `kill-buffer', but does nothing if the buffer is modified.
-
-\(fn BUF)" nil nil)
-
-(autoload 'view-file "view" "\
-View FILE in View mode, returning to previous buffer when done.
-Emacs commands editing the buffer contents are not available; instead, a
-special set of commands (mostly letters and punctuation) are defined for
-moving around in the buffer.
-Space scrolls forward, Delete scrolls backward.
-For a list of all View commands, type H or h while viewing.
-
-This command runs the normal hook `view-mode-hook'.
-
-\(fn FILE)" t nil)
-
-(autoload 'view-file-other-window "view" "\
-View FILE in View mode in another window.
-When done, return that window to its previous buffer, and kill the
-buffer visiting FILE if unmodified and if it wasn't visited before.
-
-Emacs commands editing the buffer contents are not available; instead,
-a special set of commands (mostly letters and punctuation)
-are defined for moving around in the buffer.
-Space scrolls forward, Delete scrolls backward.
-For a list of all View commands, type H or h while viewing.
-
-This command runs the normal hook `view-mode-hook'.
-
-\(fn FILE)" t nil)
-
-(autoload 'view-file-other-frame "view" "\
-View FILE in View mode in another frame.
-When done, kill the buffer visiting FILE if unmodified and if it wasn't
-visited before; also, maybe delete other frame and/or return to previous
-buffer.
-
-Emacs commands editing the buffer contents are not available; instead,
-a special set of commands (mostly letters and punctuation)
-are defined for moving around in the buffer.
-Space scrolls forward, Delete scrolls backward.
-For a list of all View commands, type H or h while viewing.
-
-This command runs the normal hook `view-mode-hook'.
-
-\(fn FILE)" t nil)
-
-(autoload 'view-buffer "view" "\
-View BUFFER in View mode, returning to previous buffer when done.
-Emacs commands editing the buffer contents are not available; instead, a
-special set of commands (mostly letters and punctuation) are defined for
-moving around in the buffer.
-Space scrolls forward, Delete scrolls backward.
-For a list of all View commands, type H or h while viewing.
-
-This command runs the normal hook `view-mode-hook'.
-
-Optional argument EXIT-ACTION is either nil or a function with buffer as
-argument.  This function is called when finished viewing buffer.  Use
-this argument instead of explicitly setting `view-exit-action'.
-
-Do not set EXIT-ACTION to `kill-buffer' when BUFFER visits a
-file: Users may suspend viewing in order to modify the buffer.
-Exiting View mode will then discard the user's edits.  Setting
-EXIT-ACTION to `kill-buffer-if-not-modified' avoids this.
-
-This function does not enable View mode if the buffer's major-mode
-has a `special' mode-class, because such modes usually have their
-own View-like bindings.
-
-\(fn BUFFER &optional EXIT-ACTION)" t nil)
-
-(autoload 'view-buffer-other-window "view" "\
-View BUFFER in View mode in another window.
-Emacs commands editing the buffer contents are not available;
-instead, a special set of commands (mostly letters and
-punctuation) are defined for moving around in the buffer.
-Space scrolls forward, Delete scrolls backward.
-For a list of all View commands, type H or h while viewing.
-
-This command runs the normal hook `view-mode-hook'.
-
-Optional argument NOT-RETURN is ignored.
-
-Optional argument EXIT-ACTION is either nil or a function with buffer as
-argument.  This function is called when finished viewing buffer.  Use
-this argument instead of explicitly setting `view-exit-action'.
-
-This function does not enable View mode if the buffer's major-mode
-has a `special' mode-class, because such modes usually have their
-own View-like bindings.
-
-\(fn BUFFER &optional NOT-RETURN EXIT-ACTION)" t nil)
-
-(autoload 'view-buffer-other-frame "view" "\
-View BUFFER in View mode in another frame.
-Emacs commands editing the buffer contents are not available;
-instead, a special set of commands (mostly letters and
-punctuation) are defined for moving around in the buffer.
-Space scrolls forward, Delete scrolls backward.
-For a list of all View commands, type H or h while viewing.
-
-This command runs the normal hook `view-mode-hook'.
-
-Optional argument NOT-RETURN is ignored.
-
-Optional argument EXIT-ACTION is either nil or a function with buffer as
-argument.  This function is called when finished viewing buffer.  Use
-this argument instead of explicitly setting `view-exit-action'.
-
-This function does not enable View mode if the buffer's major-mode
-has a `special' mode-class, because such modes usually have their
-own View-like bindings.
-
-\(fn BUFFER &optional NOT-RETURN EXIT-ACTION)" t nil)
-
-(autoload 'view-mode "view" "\
-Toggle View mode, a minor mode for viewing text but not editing it.
-With a prefix argument ARG, enable View mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable View mode
-if ARG is omitted or nil.
-
-When View mode is enabled, commands that do not change the buffer
-contents are available as usual.  Kill commands insert text in
-kill buffers but do not delete.  Most other commands beep and
-tell the user that the buffer is read-only.
-
-\\<view-mode-map>
-
-The following additional commands are provided.  Most commands
-take prefix arguments.  Page commands default to \"page size\"
-lines which is almost a whole window, or number of lines set by
-\\[View-scroll-page-forward-set-page-size] or 
\\[View-scroll-page-backward-set-page-size].
-Half page commands default to and set \"half page size\" lines
-which initially is half a window full.  Search commands default
-to a repeat count of one.
-
-H, h, ?         This message.
-Digits provide prefix arguments.
-\\[negative-argument]  negative prefix argument.
-\\[beginning-of-buffer]        move to the beginning of buffer.
->      move to the end of buffer.
-\\[View-scroll-to-buffer-end]  scroll so that buffer end is at last line of 
window.
-SPC    scroll forward \"page size\" lines.
-         With prefix scroll forward prefix lines.
-DEL, S-SPC  scroll backward \"page size\" lines.
-             With prefix scroll backward prefix lines.
-\\[View-scroll-page-forward-set-page-size]     like  
\\[View-scroll-page-forward]  but with prefix sets \"page size\" to prefix.
-\\[View-scroll-page-backward-set-page-size]    like  
\\[View-scroll-page-backward]  but with prefix sets \"page size\" to prefix.
-\\[View-scroll-half-page-forward]      scroll forward \"half page size\" 
lines.  With prefix, sets
-         \"half page size\" to prefix lines and scrolls forward that much.
-\\[View-scroll-half-page-backward]     scroll backward \"half page size\" 
lines.  With prefix, sets
-         \"half page size\" to prefix lines and scrolls backward that much.
-RET, LFD  scroll forward one line.  With prefix scroll forward prefix line(s).
-y      scroll backward one line.  With prefix scroll backward prefix line(s).
-\\[View-revert-buffer-scroll-page-forward]     revert-buffer if necessary and 
scroll forward.
-         Use this to view a changing file.
-\\[what-line]  prints the current line number.
-\\[View-goto-percent]  goes prefix argument (default 100) percent into buffer.
-\\[View-goto-line]     goes to line given by prefix argument (default first 
line).
-.      set the mark.
-x      exchanges point and mark.
-\\[View-back-to-mark]  return to mark and pops mark ring.
-         Mark ring is pushed at start of every successful search and when
-         jump to line occurs.  The mark is set on jump to buffer start or end.
-\\[point-to-register]  save current position in character register.
-\\='   go to position saved in character register.
-s      do forward incremental search.
-r      do reverse incremental search.
-\\[View-search-regexp-forward] searches forward for regular expression, 
starting after current page.
-         ! and @ have a special meaning at the beginning of the regexp.
-         ! means search for a line with no match for regexp.  @ means start
-         search at beginning (end for backward search) of buffer.
-\\     searches backward for regular expression, starting before current page.
-\\[View-search-last-regexp-forward]    searches forward for last regular 
expression.
-p      searches backward for last regular expression.
-\\[View-quit]  quit View mode, restoring this window and buffer to previous 
state.
-         \\[View-quit] is the normal way to leave view mode.
-\\[View-exit]  exit View mode but stay in current buffer.  Use this if you 
started
-         viewing a buffer (file) and find out you want to edit it.
-         This command restores the previous read-only status of the buffer.
-\\[View-exit-and-edit] exit View mode, and make the current buffer editable
-         even if it was not editable before entry to View mode.
-\\[View-quit-all]      quit View mode, restoring all windows to previous state.
-\\[View-leave] quit View mode and maybe switch buffers, but don't kill this 
buffer.
-\\[View-kill-and-leave]        quit View mode, kill current buffer and go back 
to other buffer.
-
-The effect of \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] 
depends on how view-mode was entered.  If it was
-entered by view-file, view-file-other-window, view-file-other-frame, or
-\\[dired-view-file] (\\[view-file], \\[view-file-other-window],
-\\[view-file-other-frame], or the Dired mode v command),
-then \\[View-quit] will try to kill the current buffer.
-If view-mode was entered from another buffer, by \\[view-buffer],
-\\[view-buffer-other-window], \\[view-buffer-other frame], \\[view-file],
-\\[view-file-other-window], or \\[view-file-other-frame],
-then \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] will return to 
that buffer.
-
-Entry to view-mode runs the normal hook `view-mode-hook'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'view-return-to-alist-update "view" "\
-Update `view-return-to-alist' of buffer BUFFER.
-Remove from `view-return-to-alist' all entries referencing dead
-windows.  Optional argument ITEM non-nil means add ITEM to
-`view-return-to-alist' after purging.  For a description of items
-that can be added see the RETURN-TO-ALIST argument of the
-function `view-mode-exit'.  If `view-return-to-alist' contains an
-entry for the selected window, purge that entry from
-`view-return-to-alist' before adding ITEM.
-
-\(fn BUFFER &optional ITEM)" nil nil)
-
-(make-obsolete 'view-return-to-alist-update '"this function has no effect." 
'"24.1")
-
-(autoload 'view-mode-enter "view" "\
-Enter View mode and set up exit from view mode depending on optional arguments.
-Optional argument QUIT-RESTORE if non-nil must specify a valid
-entry for quitting and restoring any window showing the current
-buffer.  This entry replaces any parameter installed by
-`display-buffer' and is used by `view-mode-exit'.
-
-Optional argument EXIT-ACTION, if non-nil, must specify a
-function that takes a buffer as argument.  This function will be
-called by `view-mode-exit'.
-
-For a list of all View commands, type H or h while viewing.
-
-This function runs the normal hook `view-mode-hook'.
-
-\(fn &optional QUIT-RESTORE EXIT-ACTION)" nil nil)
-
-(autoload 'View-exit-and-edit "view" "\
-Exit View mode and make the current buffer editable.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"view" '("view-" "View-")))
-
-;;;***
-
-;;;### (autoloads nil "viper" "emulation/viper.el" (0 0 0 0))
-;;; Generated autoloads from emulation/viper.el
-(push (purecopy '(viper 3 14 1)) package--builtin-versions)
-
-(autoload 'toggle-viper-mode "viper" "\
-Toggle Viper on/off.
-If Viper is enabled, turn it off.  Otherwise, turn it on.
-
-\(fn)" t nil)
-
-(autoload 'viper-mode "viper" "\
-Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Top'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"viper" '("viper-" "set-viper-state-in-major-mode" 
"this-major-mode-requires-vi-state")))
-
-;;;***
-
-;;;### (autoloads nil "viper-cmd" "emulation/viper-cmd.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from emulation/viper-cmd.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"viper-cmd" '("viper-")))
-
-;;;***
-
-;;;### (autoloads nil "viper-ex" "emulation/viper-ex.el" (0 0 0 0))
-;;; Generated autoloads from emulation/viper-ex.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"viper-ex" '("ex-" "viper-")))
-
-;;;***
-
-;;;### (autoloads nil "viper-init" "emulation/viper-init.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emulation/viper-init.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"viper-init" '("viper-")))
-
-;;;***
-
-;;;### (autoloads nil "viper-keym" "emulation/viper-keym.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emulation/viper-keym.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"viper-keym" '("viper-" "ex-read-filename-map")))
-
-;;;***
-
-;;;### (autoloads nil "viper-macs" "emulation/viper-macs.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emulation/viper-macs.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"viper-macs" '("viper-" "ex-")))
-
-;;;***
-
-;;;### (autoloads nil "viper-mous" "emulation/viper-mous.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emulation/viper-mous.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"viper-mous" '("viper-")))
-
-;;;***
-
-;;;### (autoloads nil "viper-util" "emulation/viper-util.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from emulation/viper-util.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"viper-util" '("viper")))
-
-;;;***
-
-;;;### (autoloads nil "vt-control" "vt-control.el" (0 0 0 0))
-;;; Generated autoloads from vt-control.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vt-control" '("vt-")))
-
-;;;***
-
-;;;### (autoloads nil "vt100-led" "vt100-led.el" (0 0 0 0))
-;;; Generated autoloads from vt100-led.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"vt100-led" '("led-")))
-
-;;;***
-
-;;;### (autoloads nil "w32-fns" "w32-fns.el" (0 0 0 0))
-;;; Generated autoloads from w32-fns.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"w32-fns" '("w32-")))
-
-;;;***
-
-;;;### (autoloads nil "w32-vars" "w32-vars.el" (0 0 0 0))
-;;; Generated autoloads from w32-vars.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"w32-vars" '("w32-")))
-
-;;;***
-
-;;;### (autoloads nil "warnings" "emacs-lisp/warnings.el" (0 0 0
-;;;;;;  0))
-;;; Generated autoloads from emacs-lisp/warnings.el
-
-(defvar warning-prefix-function nil "\
-Function to generate warning prefixes.
-This function, if non-nil, is called with two arguments,
-the severity level and its entry in `warning-levels',
-and should return the entry that should actually be used.
-The warnings buffer is current when this function is called
-and the function can insert text in it.  This text becomes
-the beginning of the warning.")
-
-(defvar warning-series nil "\
-Non-nil means treat multiple `display-warning' calls as a series.
-A marker indicates a position in the warnings buffer
-which is the start of the current series; it means that
-additional warnings in the same buffer should not move point.
-If t, the next warning begins a series (and stores a marker here).
-A symbol with a function definition is like t, except
-also call that function before the next warning.")
-
-(defvar warning-fill-prefix nil "\
-Non-nil means fill each warning text using this string as `fill-prefix'.")
-
-(defvar warning-type-format (purecopy " (%s)") "\
-Format for displaying the warning type in the warning message.
-The result of formatting the type this way gets included in the
-message under the control of the string in `warning-levels'.")
-
-(autoload 'display-warning "warnings" "\
-Display a warning message, MESSAGE.
-TYPE is the warning type: either a custom group name (a symbol),
-or a list of symbols whose first element is a custom group name.
-\(The rest of the symbols represent subcategories, for warning purposes
-only, and you can use whatever symbols you like.)
-
-LEVEL should be either :debug, :warning, :error, or :emergency
-\(but see `warning-minimum-level' and `warning-minimum-log-level').
-Default is :warning.
-
-:emergency -- a problem that will seriously impair Emacs operation soon
-             if you do not attend to it promptly.
-:error     -- data or circumstances that are inherently wrong.
-:warning   -- data or circumstances that are not inherently wrong,
-             but raise suspicion of a possible problem.
-:debug     -- info for debugging only.
-
-BUFFER-NAME, if specified, is the name of the buffer for logging
-the warning.  By default, it is `*Warnings*'.  If this function
-has to create the buffer, it disables undo in the buffer.
-
-See the `warnings' custom group for user customization features.
-
-See also `warning-series', `warning-prefix-function' and
-`warning-fill-prefix' for additional programming features.
-
-\(fn TYPE MESSAGE &optional LEVEL BUFFER-NAME)" nil nil)
-
-(autoload 'lwarn "warnings" "\
-Display a warning message made from (format-message MESSAGE ARGS...).
-\\<special-mode-map>
-Aside from generating the message with `format-message',
-this is equivalent to `display-warning'.
-
-TYPE is the warning type: either a custom group name (a symbol),
-or a list of symbols whose first element is a custom group name.
-\(The rest of the symbols represent subcategories and
-can be whatever you like.)
-
-LEVEL should be either :debug, :warning, :error, or :emergency
-\(but see `warning-minimum-level' and `warning-minimum-log-level').
-
-:emergency -- a problem that will seriously impair Emacs operation soon
-             if you do not attend to it promptly.
-:error     -- invalid data or circumstances.
-:warning   -- suspicious data or circumstances.
-:debug     -- info for debugging only.
-
-\(fn TYPE LEVEL MESSAGE &rest ARGS)" nil nil)
-
-(autoload 'warn "warnings" "\
-Display a warning message made from (format-message MESSAGE ARGS...).
-Aside from generating the message with `format-message',
-this is equivalent to `display-warning', using
-`emacs' as the type and `:warning' as the level.
-
-\(fn MESSAGE &rest ARGS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"warnings" '("warning-" "log-warning-minimum-level" 
"display-warning-minimum-level")))
-
-;;;***
-
-;;;### (autoloads nil "wdired" "wdired.el" (0 0 0 0))
-;;; Generated autoloads from wdired.el
-(push (purecopy '(wdired 2 0)) package--builtin-versions)
-
-(autoload 'wdired-change-to-wdired-mode "wdired" "\
-Put a Dired buffer in Writable Dired (WDired) mode.
-\\<wdired-mode-map>
-In WDired mode, you can edit the names of the files in the
-buffer, the target of the links, and the permission bits of the
-files.  After typing \\[wdired-finish-edit], Emacs modifies the files and
-directories to reflect your edits.
-
-See `wdired-mode'.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"wdired" '("wdired-")))
-
-;;;***
-
-;;;### (autoloads nil "webjump" "net/webjump.el" (0 0 0 0))
-;;; Generated autoloads from net/webjump.el
-
-(autoload 'webjump "webjump" "\
-Jumps to a Web site from a programmable hotlist.
-
-See the documentation for the `webjump-sites' variable for how to customize the
-hotlist.
-
-Please submit bug reports and other feedback to the author, Neil W. Van Dyke
-<address@hidden>.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"webjump" '("webjump-")))
-
-;;;***
-
-;;;### (autoloads nil "which-func" "progmodes/which-func.el" (0 0
-;;;;;;  0 0))
-;;; Generated autoloads from progmodes/which-func.el
- (put 'which-func-format 'risky-local-variable t)
- (put 'which-func-current 'risky-local-variable t)
-
-(define-obsolete-function-alias 'which-func-mode 'which-function-mode "24.1")
-
-(defvar which-function-mode nil "\
-Non-nil if Which-Function mode is enabled.
-See the `which-function-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `which-function-mode'.")
-
-(custom-autoload 'which-function-mode "which-func" nil)
-
-(autoload 'which-function-mode "which-func" "\
-Toggle mode line display of current function (Which Function mode).
-With a prefix argument ARG, enable Which Function mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Which Function mode is a global minor mode.  When enabled, the
-current function name is continuously displayed in the mode line,
-in certain major modes.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"which-func" '("which-func")))
-
-;;;***
-
-;;;### (autoloads nil "whitespace" "whitespace.el" (0 0 0 0))
-;;; Generated autoloads from whitespace.el
-(push (purecopy '(whitespace 13 2 2)) package--builtin-versions)
-
-(autoload 'whitespace-mode "whitespace" "\
-Toggle whitespace visualization (Whitespace mode).
-With a prefix argument ARG, enable Whitespace mode if ARG is
-positive, and disable it otherwise.
-
-If called from Lisp, also enables the mode if ARG is omitted or nil,
-and toggles it if ARG is `toggle'.
-
-See also `whitespace-style', `whitespace-newline' and
-`whitespace-display-mappings'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'whitespace-newline-mode "whitespace" "\
-Toggle newline visualization (Whitespace Newline mode).
-With a prefix argument ARG, enable Whitespace Newline mode if ARG
-is positive, and disable it otherwise.
-
-If called from Lisp, also enables the mode if ARG is omitted or nil,
-and toggles it if ARG is `toggle'.
-
-Use `whitespace-newline-mode' only for NEWLINE visualization
-exclusively.  For other visualizations, including NEWLINE
-visualization together with (HARD) SPACEs and/or TABs, please,
-use `whitespace-mode'.
-
-See also `whitespace-newline' and `whitespace-display-mappings'.
-
-\(fn &optional ARG)" t nil)
-
-(defvar global-whitespace-mode nil "\
-Non-nil if Global Whitespace mode is enabled.
-See the `global-whitespace-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-whitespace-mode'.")
-
-(custom-autoload 'global-whitespace-mode "whitespace" nil)
-
-(autoload 'global-whitespace-mode "whitespace" "\
-Toggle whitespace visualization globally (Global Whitespace mode).
-With a prefix argument ARG, enable Global Whitespace mode if ARG
-is positive, and disable it otherwise.
-
-If called from Lisp, also enables the mode if ARG is omitted or nil,
-and toggles it if ARG is `toggle'.
-
-See also `whitespace-style', `whitespace-newline' and
-`whitespace-display-mappings'.
-
-\(fn &optional ARG)" t nil)
-
-(defvar global-whitespace-newline-mode nil "\
-Non-nil if Global Whitespace-Newline mode is enabled.
-See the `global-whitespace-newline-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `global-whitespace-newline-mode'.")
-
-(custom-autoload 'global-whitespace-newline-mode "whitespace" nil)
-
-(autoload 'global-whitespace-newline-mode "whitespace" "\
-Toggle global newline visualization (Global Whitespace Newline mode).
-With a prefix argument ARG, enable Global Whitespace Newline mode
-if ARG is positive, and disable it otherwise.
-
-If called from Lisp, also enables the mode if ARG is omitted or nil,
-and toggles it if ARG is `toggle'.
-
-Use `global-whitespace-newline-mode' only for NEWLINE
-visualization exclusively.  For other visualizations, including
-NEWLINE visualization together with (HARD) SPACEs and/or TABs,
-please use `global-whitespace-mode'.
-
-See also `whitespace-newline' and `whitespace-display-mappings'.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'whitespace-toggle-options "whitespace" "\
-Toggle local `whitespace-mode' options.
-
-If local whitespace-mode is off, toggle the option given by ARG
-and turn on local whitespace-mode.
-
-If local whitespace-mode is on, toggle the option given by ARG
-and restart local whitespace-mode.
-
-Interactively, it reads one of the following chars:
-
-  CHAR MEANING
-  (VIA FACES)
-   f   toggle face visualization
-   t   toggle TAB visualization
-   s   toggle SPACE and HARD SPACE visualization
-   r   toggle trailing blanks visualization
-   l   toggle \"long lines\" visualization
-   L   toggle \"long lines\" tail visualization
-   n   toggle NEWLINE visualization
-   e   toggle empty line at bob and/or eob visualization
-   C-i toggle indentation SPACEs visualization (via `indent-tabs-mode')
-   I   toggle indentation SPACEs visualization
-   i   toggle indentation TABs visualization
-   C-t toggle big indentation visualization
-   C-a toggle SPACEs after TAB visualization (via `indent-tabs-mode')
-   A   toggle SPACEs after TAB: SPACEs visualization
-   a   toggle SPACEs after TAB: TABs visualization
-   C-b toggle SPACEs before TAB visualization (via `indent-tabs-mode')
-   B   toggle SPACEs before TAB: SPACEs visualization
-   b   toggle SPACEs before TAB: TABs visualization
-
-  (VIA DISPLAY TABLE)
-   T   toggle TAB visualization
-   S   toggle SPACEs before TAB visualization
-   N   toggle NEWLINE visualization
-
-   x   restore `whitespace-style' value
-   ?   display brief help
-
-Non-interactively, ARG should be a symbol or a list of symbols.
-The valid symbols are:
-
-   face                        toggle face visualization
-   tabs                        toggle TAB visualization
-   spaces              toggle SPACE and HARD SPACE visualization
-   trailing            toggle trailing blanks visualization
-   lines               toggle \"long lines\" visualization
-   lines-tail          toggle \"long lines\" tail visualization
-   newline             toggle NEWLINE visualization
-   empty               toggle empty line at bob and/or eob visualization
-   indentation         toggle indentation SPACEs visualization
-   indentation::tab    toggle indentation SPACEs visualization
-   indentation::space  toggle indentation TABs visualization
-   big-indent          toggle big indentation visualization
-   space-after-tab             toggle SPACEs after TAB visualization
-   space-after-tab::tab                toggle SPACEs after TAB: SPACEs 
visualization
-   space-after-tab::space      toggle SPACEs after TAB: TABs visualization
-   space-before-tab            toggle SPACEs before TAB visualization
-   space-before-tab::tab       toggle SPACEs before TAB: SPACEs visualization
-   space-before-tab::space     toggle SPACEs before TAB: TABs visualization
-
-   tab-mark            toggle TAB visualization
-   space-mark          toggle SPACEs before TAB visualization
-   newline-mark                toggle NEWLINE visualization
-
-   whitespace-style    restore `whitespace-style' value
-
-See `whitespace-style' and `indent-tabs-mode' for documentation.
-
-\(fn ARG)" t nil)
-
-(autoload 'global-whitespace-toggle-options "whitespace" "\
-Toggle global `whitespace-mode' options.
-
-If global whitespace-mode is off, toggle the option given by ARG
-and turn on global whitespace-mode.
-
-If global whitespace-mode is on, toggle the option given by ARG
-and restart global whitespace-mode.
-
-Interactively, it accepts one of the following chars:
-
-  CHAR MEANING
-  (VIA FACES)
-   f   toggle face visualization
-   t   toggle TAB visualization
-   s   toggle SPACE and HARD SPACE visualization
-   r   toggle trailing blanks visualization
-   l   toggle \"long lines\" visualization
-   L   toggle \"long lines\" tail visualization
-   n   toggle NEWLINE visualization
-   e   toggle empty line at bob and/or eob visualization
-   C-i toggle indentation SPACEs visualization (via `indent-tabs-mode')
-   I   toggle indentation SPACEs visualization
-   i   toggle indentation TABs visualization
-   C-t toggle big indentation visualization
-   C-a toggle SPACEs after TAB visualization (via `indent-tabs-mode')
-   A   toggle SPACEs after TAB: SPACEs visualization
-   a   toggle SPACEs after TAB: TABs visualization
-   C-b toggle SPACEs before TAB visualization (via `indent-tabs-mode')
-   B   toggle SPACEs before TAB: SPACEs visualization
-   b   toggle SPACEs before TAB: TABs visualization
-
-  (VIA DISPLAY TABLE)
-   T   toggle TAB visualization
-   S   toggle SPACEs before TAB visualization
-   N   toggle NEWLINE visualization
-
-   x   restore `whitespace-style' value
-   ?   display brief help
-
-Non-interactively, ARG should be a symbol or a list of symbols.
-The valid symbols are:
-
-   face                        toggle face visualization
-   tabs                        toggle TAB visualization
-   spaces              toggle SPACE and HARD SPACE visualization
-   trailing            toggle trailing blanks visualization
-   lines               toggle \"long lines\" visualization
-   lines-tail          toggle \"long lines\" tail visualization
-   newline             toggle NEWLINE visualization
-   empty               toggle empty line at bob and/or eob visualization
-   indentation         toggle indentation SPACEs visualization
-   indentation::tab    toggle indentation SPACEs visualization
-   indentation::space  toggle indentation TABs visualization
-   big-indent          toggle big indentation visualization
-   space-after-tab             toggle SPACEs after TAB visualization
-   space-after-tab::tab                toggle SPACEs after TAB: SPACEs 
visualization
-   space-after-tab::space      toggle SPACEs after TAB: TABs visualization
-   space-before-tab            toggle SPACEs before TAB visualization
-   space-before-tab::tab       toggle SPACEs before TAB: SPACEs visualization
-   space-before-tab::space     toggle SPACEs before TAB: TABs visualization
-
-   tab-mark            toggle TAB visualization
-   space-mark          toggle SPACEs before TAB visualization
-   newline-mark                toggle NEWLINE visualization
-
-   whitespace-style    restore `whitespace-style' value
-
-See `whitespace-style' and `indent-tabs-mode' for documentation.
-
-\(fn ARG)" t nil)
-
-(autoload 'whitespace-cleanup "whitespace" "\
-Cleanup some blank problems in all buffer or at region.
-
-It usually applies to the whole buffer, but in transient mark
-mode when the mark is active, it applies to the region.  It also
-applies to the region when it is not in transient mark mode, the
-mark is active and \\[universal-argument] was pressed just before
-calling `whitespace-cleanup' interactively.
-
-See also `whitespace-cleanup-region'.
-
-The problems cleaned up are:
-
-1. empty lines at beginning of buffer.
-2. empty lines at end of buffer.
-   If `whitespace-style' includes the value `empty', remove all
-   empty lines at beginning and/or end of buffer.
-
-3. `tab-width' or more SPACEs at beginning of line.
-   If `whitespace-style' includes the value `indentation':
-   replace `tab-width' or more SPACEs at beginning of line by
-   TABs, if `indent-tabs-mode' is non-nil; otherwise, replace TABs by
-   SPACEs.
-   If `whitespace-style' includes the value `indentation::tab',
-   replace `tab-width' or more SPACEs at beginning of line by TABs.
-   If `whitespace-style' includes the value `indentation::space',
-   replace TABs by SPACEs.
-
-4. SPACEs before TAB.
-   If `whitespace-style' includes the value `space-before-tab':
-   replace SPACEs by TABs, if `indent-tabs-mode' is non-nil;
-   otherwise, replace TABs by SPACEs.
-   If `whitespace-style' includes the value
-   `space-before-tab::tab', replace SPACEs by TABs.
-   If `whitespace-style' includes the value
-   `space-before-tab::space', replace TABs by SPACEs.
-
-5. SPACEs or TABs at end of line.
-   If `whitespace-style' includes the value `trailing', remove
-   all SPACEs or TABs at end of line.
-
-6. `tab-width' or more SPACEs after TAB.
-   If `whitespace-style' includes the value `space-after-tab':
-   replace SPACEs by TABs, if `indent-tabs-mode' is non-nil;
-   otherwise, replace TABs by SPACEs.
-   If `whitespace-style' includes the value
-   `space-after-tab::tab', replace SPACEs by TABs.
-   If `whitespace-style' includes the value
-   `space-after-tab::space', replace TABs by SPACEs.
-
-See `whitespace-style', `indent-tabs-mode' and `tab-width' for
-documentation.
-
-\(fn)" t nil)
-
-(autoload 'whitespace-cleanup-region "whitespace" "\
-Cleanup some blank problems at region.
-
-The problems cleaned up are:
-
-1. `tab-width' or more SPACEs at beginning of line.
-   If `whitespace-style' includes the value `indentation':
-   replace `tab-width' or more SPACEs at beginning of line by TABs,
-   if `indent-tabs-mode' is non-nil; otherwise, replace TABs by
-   SPACEs.
-   If `whitespace-style' includes the value `indentation::tab',
-   replace `tab-width' or more SPACEs at beginning of line by TABs.
-   If `whitespace-style' includes the value `indentation::space',
-   replace TABs by SPACEs.
-
-2. SPACEs before TAB.
-   If `whitespace-style' includes the value `space-before-tab':
-   replace SPACEs by TABs, if `indent-tabs-mode' is non-nil;
-   otherwise, replace TABs by SPACEs.
-   If `whitespace-style' includes the value
-   `space-before-tab::tab', replace SPACEs by TABs.
-   If `whitespace-style' includes the value
-   `space-before-tab::space', replace TABs by SPACEs.
-
-3. SPACEs or TABs at end of line.
-   If `whitespace-style' includes the value `trailing', remove
-   all SPACEs or TABs at end of line.
-
-4. `tab-width' or more SPACEs after TAB.
-   If `whitespace-style' includes the value `space-after-tab':
-   replace SPACEs by TABs, if `indent-tabs-mode' is non-nil;
-   otherwise, replace TABs by SPACEs.
-   If `whitespace-style' includes the value
-   `space-after-tab::tab', replace SPACEs by TABs.
-   If `whitespace-style' includes the value
-   `space-after-tab::space', replace TABs by SPACEs.
-
-See `whitespace-style', `indent-tabs-mode' and `tab-width' for
-documentation.
-
-\(fn START END)" t nil)
-
-(autoload 'whitespace-report "whitespace" "\
-Report some whitespace problems in buffer.
-
-Perform `whitespace-report-region' on the current buffer.
-
-\(fn &optional FORCE REPORT-IF-BOGUS)" t nil)
-
-(autoload 'whitespace-report-region "whitespace" "\
-Report some whitespace problems in a region.
-
-Return nil if there is no whitespace problem; otherwise, return
-non-nil.
-
-If FORCE is non-nil or \\[universal-argument] was pressed just
-before calling `whitespace-report-region' interactively, it
-forces all classes of whitespace problem to be considered
-significant.
-
-If REPORT-IF-BOGUS is t, it reports only when there are any
-whitespace problems in buffer; if it is `never', it does not
-report problems.
-
-Report if some of the following whitespace problems exist:
-
-* If `indent-tabs-mode' is non-nil:
-   empty               1. empty lines at beginning of buffer.
-   empty               2. empty lines at end of buffer.
-   trailing            3. SPACEs or TABs at end of line.
-   indentation         4. line starts with `tab-width' or more SPACEs.
-   space-before-tab    5. SPACEs before TAB.
-   space-after-tab     6. `tab-width' or more SPACEs after TAB.
-
-* If `indent-tabs-mode' is nil:
-   empty               1. empty lines at beginning of buffer.
-   empty               2. empty lines at end of buffer.
-   trailing            3. SPACEs or TABs at end of line.
-   indentation         4. TABS at beginning of line.
-   space-before-tab    5. SPACEs before TAB.
-   space-after-tab     6. `tab-width' or more SPACEs after TAB.
-
-See `whitespace-style' for documentation.
-See also `whitespace-cleanup' and `whitespace-cleanup-region' for
-cleaning up these problems.
-
-\(fn START END &optional FORCE REPORT-IF-BOGUS)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"whitespace" '("whitespace-")))
-
-;;;***
-
-;;;### (autoloads nil "wid-browse" "wid-browse.el" (0 0 0 0))
-;;; Generated autoloads from wid-browse.el
-
-(autoload 'widget-browse-at "wid-browse" "\
-Browse the widget under point.
-
-\(fn POS)" t nil)
-
-(autoload 'widget-browse "wid-browse" "\
-Create a widget browser for WIDGET.
-
-\(fn WIDGET)" t nil)
-
-(autoload 'widget-browse-other-window "wid-browse" "\
-Show widget browser for WIDGET in other window.
-
-\(fn &optional WIDGET)" t nil)
-
-(autoload 'widget-minor-mode "wid-browse" "\
-Minor mode for traversing widgets.
-With a prefix argument ARG, enable the mode if ARG is positive,
-and disable it otherwise.  If called from Lisp, enable the mode
-if ARG is omitted or nil.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"wid-browse" '("widget-")))
-
-;;;***
-
-;;;### (autoloads nil "wid-edit" "wid-edit.el" (0 0 0 0))
-;;; Generated autoloads from wid-edit.el
-
-(autoload 'widgetp "wid-edit" "\
-Return non-nil if WIDGET is a widget.
-
-\(fn WIDGET)" nil nil)
-
-(autoload 'widget-prompt-value "wid-edit" "\
-Prompt for a value matching WIDGET, using PROMPT.
-The current value is assumed to be VALUE, unless UNBOUND is non-nil.
-
-\(fn WIDGET PROMPT &optional VALUE UNBOUND)" nil nil)
-
-(autoload 'widget-create "wid-edit" "\
-Create widget of TYPE.
-The optional ARGS are additional keyword arguments.
-
-\(fn TYPE &rest ARGS)" nil nil)
-
-(autoload 'widget-delete "wid-edit" "\
-Delete WIDGET.
-
-\(fn WIDGET)" nil nil)
-
-(autoload 'widget-insert "wid-edit" "\
-Call `insert' with ARGS even if surrounding text is read only.
-
-\(fn &rest ARGS)" nil nil)
-
-(defvar widget-keymap (let ((map (make-sparse-keymap))) (define-key map "      
" 'widget-forward) (define-key map "   " 'widget-backward) (define-key map 
[(shift tab)] 'widget-backward) (put 'widget-backward :advertised-binding 
[(shift tab)]) (define-key map [backtab] 'widget-backward) (define-key map 
[down-mouse-2] 'widget-button-click) (define-key map [down-mouse-1] 
'widget-button-click) (define-key map [(control 109)] 'widget-button-press) 
map) "\
-Keymap containing useful binding for buffers containing widgets.
-Recommended as a parent keymap for modes using widgets.
-Note that such modes will need to require wid-edit.")
-
-(autoload 'widget-setup "wid-edit" "\
-Setup current buffer so editing string widgets works.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"wid-edit" '("widget-")))
-
-;;;***
-
-;;;### (autoloads nil "windmove" "windmove.el" (0 0 0 0))
-;;; Generated autoloads from windmove.el
-
-(autoload 'windmove-left "windmove" "\
-Select the window to the left of the current one.
-With no prefix argument, or with prefix argument equal to zero,
-\"left\" is relative to the position of point in the window; otherwise
-it is relative to the top edge (for positive ARG) or the bottom edge
-\(for negative ARG) of the current window.
-If no window is at the desired location, an error is signaled.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'windmove-up "windmove" "\
-Select the window above the current one.
-With no prefix argument, or with prefix argument equal to zero, \"up\"
-is relative to the position of point in the window; otherwise it is
-relative to the left edge (for positive ARG) or the right edge (for
-negative ARG) of the current window.
-If no window is at the desired location, an error is signaled.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'windmove-right "windmove" "\
-Select the window to the right of the current one.
-With no prefix argument, or with prefix argument equal to zero,
-\"right\" is relative to the position of point in the window;
-otherwise it is relative to the top edge (for positive ARG) or the
-bottom edge (for negative ARG) of the current window.
-If no window is at the desired location, an error is signaled.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'windmove-down "windmove" "\
-Select the window below the current one.
-With no prefix argument, or with prefix argument equal to zero,
-\"down\" is relative to the position of point in the window; otherwise
-it is relative to the left edge (for positive ARG) or the right edge
-\(for negative ARG) of the current window.
-If no window is at the desired location, an error is signaled.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'windmove-default-keybindings "windmove" "\
-Set up keybindings for `windmove'.
-Keybindings are of the form MODIFIER-{left,right,up,down}.
-Default MODIFIER is `shift'.
-
-\(fn &optional MODIFIER)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"windmove" '("windmove-")))
-
-;;;***
-
-;;;### (autoloads nil "winner" "winner.el" (0 0 0 0))
-;;; Generated autoloads from winner.el
-
-(defvar winner-mode nil "\
-Non-nil if Winner mode is enabled.
-See the `winner-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `winner-mode'.")
-
-(custom-autoload 'winner-mode "winner" nil)
-
-(autoload 'winner-mode "winner" "\
-Toggle Winner mode on or off.
-With a prefix argument ARG, enable Winner mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil, and toggle it if ARG is ‘toggle’.
-
-Winner mode is a global minor mode that records the changes in
-the window configuration (i.e. how the frames are partitioned
-into windows) so that the changes can be \"undone\" using the
-command `winner-undo'.  By default this one is bound to the key
-sequence `C-c <left>'.  If you change your mind (while undoing),
-you can press `C-c <right>' (calling `winner-redo').
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"winner" '("winner-")))
-
-;;;***
-
-;;;### (autoloads nil "woman" "woman.el" (0 0 0 0))
-;;; Generated autoloads from woman.el
-(push (purecopy '(woman 0 551)) package--builtin-versions)
-
-(defvar woman-locale nil "\
-String specifying a manual page locale, or nil.
-If a manual page is available in the specified locale
-\(e.g. \"sv_SE.ISO8859-1\"), it will be offered in preference to the
-default version.  Normally, `set-locale-environment' sets this at startup.")
-
-(custom-autoload 'woman-locale "woman" t)
-
-(autoload 'woman "woman" "\
-Browse UN*X man page for TOPIC (Without using external Man program).
-The major browsing mode used is essentially the standard Man mode.
-Choose the filename for the man page using completion, based on the
-topic selected from the directories specified in `woman-manpath' and
-`woman-path'.  The directory expansions and topics are cached for
-speed, but a non-nil interactive argument forces the caches to be
-updated (e.g. to re-interpret the current directory).
-
-Used non-interactively, arguments are optional: if given then TOPIC
-should be a topic string and non-nil RE-CACHE forces re-caching.
-
-\(fn &optional TOPIC RE-CACHE)" t nil)
-
-(autoload 'woman-dired-find-file "woman" "\
-In dired, run the WoMan man-page browser on this file.
-
-\(fn)" t nil)
-
-(autoload 'woman-find-file "woman" "\
-Find, decode and browse a specific UN*X man-page source file FILE-NAME.
-Use existing buffer if possible; reformat only if prefix arg given.
-When called interactively, optional argument REFORMAT forces reformatting
-of an existing WoMan buffer formatted earlier.
-No external programs are used, except that `gunzip' will be used to
-decompress the file if appropriate.  See the documentation for the
-`woman' command for further details.
-
-\(fn FILE-NAME &optional REFORMAT)" t nil)
-
-(autoload 'woman-bookmark-jump "woman" "\
-Default bookmark handler for Woman buffers.
-
-\(fn BOOKMARK)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"woman" '("woman" "WoMan-" "menu-bar-manuals-menu" "set-woman-file-regexp")))
-
-;;;***
-
-;;;### (autoloads nil "x-dnd" "x-dnd.el" (0 0 0 0))
-;;; Generated autoloads from x-dnd.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"x-dnd" '("x-dnd-")))
-
-;;;***
-
-;;;### (autoloads nil "xml" "xml.el" (0 0 0 0))
-;;; Generated autoloads from xml.el
-
-(autoload 'xml-parse-file "xml" "\
-Parse the well-formed XML file FILE.
-Return the top node with all its children.
-If PARSE-DTD is non-nil, the DTD is parsed rather than skipped.
-
-If PARSE-NS is non-nil, then QNAMES are expanded.  By default,
-the variable `xml-default-ns' is the mapping from namespaces to
-URIs, and expanded names will be returned as a cons
-
-  (\"namespace:\" . \"foo\").
-
-If PARSE-NS is an alist, it will be used as the mapping from
-namespace to URIs instead.
-
-If it is the symbol `symbol-qnames', expanded names will be
-returned as a plain symbol `namespace:foo' instead of a cons.
-
-Both features can be combined by providing a cons cell
-
-  (symbol-qnames . ALIST).
-
-\(fn FILE &optional PARSE-DTD PARSE-NS)" nil nil)
-
-(autoload 'xml-parse-region "xml" "\
-Parse the region from BEG to END in BUFFER.
-Return the XML parse tree, or raise an error if the region does
-not contain well-formed XML.
-
-If BEG is nil, it defaults to `point-min'.
-If END is nil, it defaults to `point-max'.
-If BUFFER is nil, it defaults to the current buffer.
-If PARSE-DTD is non-nil, parse the DTD and return it as the first
-element of the list.
-If PARSE-NS is non-nil, then QNAMES are expanded.  By default,
-the variable `xml-default-ns' is the mapping from namespaces to
-URIs, and expanded names will be returned as a cons
-
-  (\"namespace:\" . \"foo\").
-
-If PARSE-NS is an alist, it will be used as the mapping from
-namespace to URIs instead.
-
-If it is the symbol `symbol-qnames', expanded names will be
-returned as a plain symbol `namespace:foo' instead of a cons.
-
-Both features can be combined by providing a cons cell
-
-  (symbol-qnames . ALIST).
-
-\(fn &optional BEG END BUFFER PARSE-DTD PARSE-NS)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"xml" '("xml-")))
-
-;;;***
-
-;;;### (autoloads nil "xmltok" "nxml/xmltok.el" (0 0 0 0))
-;;; Generated autoloads from nxml/xmltok.el
-
-(autoload 'xmltok-get-declared-encoding-position "xmltok" "\
-Return the position of the encoding in the XML declaration at point.
-If there is a well-formed XML declaration starting at point and it
-contains an encoding declaration, then return (START . END)
-where START and END are the positions of the start and the end
-of the encoding name; if there is no encoding declaration return
-the position where and encoding declaration could be inserted.
-If there is XML that is not well-formed that looks like an XML
-declaration, return nil.  Otherwise, return t.
-If LIMIT is non-nil, then do not consider characters beyond LIMIT.
-
-\(fn &optional LIMIT)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"xmltok" '("xmltok-")))
-
-;;;***
-
-;;;### (autoloads nil "xref" "progmodes/xref.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/xref.el
-
-(autoload 'xref-find-backend "xref" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'xref-pop-marker-stack "xref" "\
-Pop back to where \\[xref-find-definitions] was last invoked.
-
-\(fn)" t nil)
-
-(autoload 'xref-marker-stack-empty-p "xref" "\
-Return t if the marker stack is empty; nil otherwise.
-
-\(fn)" nil nil)
-
-(autoload 'xref-find-definitions "xref" "\
-Find the definition of the identifier at point.
-With prefix argument or when there's no identifier at point,
-prompt for it.
-
-If sufficient information is available to determine a unique
-definition for IDENTIFIER, display it in the selected window.
-Otherwise, display the list of the possible definitions in a
-buffer where the user can select from the list.
-
-\(fn IDENTIFIER)" t nil)
-
-(autoload 'xref-find-definitions-other-window "xref" "\
-Like `xref-find-definitions' but switch to the other window.
-
-\(fn IDENTIFIER)" t nil)
-
-(autoload 'xref-find-definitions-other-frame "xref" "\
-Like `xref-find-definitions' but switch to the other frame.
-
-\(fn IDENTIFIER)" t nil)
-
-(autoload 'xref-find-references "xref" "\
-Find references to the identifier at point.
-With prefix argument, prompt for the identifier.
-
-\(fn IDENTIFIER)" t nil)
-
-(autoload 'xref-find-apropos "xref" "\
-Find all meaningful symbols that match PATTERN.
-The argument has the same meaning as in `apropos'.
-
-\(fn PATTERN)" t nil)
- (define-key esc-map "." #'xref-find-definitions)
- (define-key esc-map "," #'xref-pop-marker-stack)
- (define-key esc-map "?" #'xref-find-references)
- (define-key esc-map [?\C-.] #'xref-find-apropos)
- (define-key ctl-x-4-map "." #'xref-find-definitions-other-window)
- (define-key ctl-x-5-map "." #'xref-find-definitions-other-frame)
-
-(autoload 'xref-collect-matches "xref" "\
-Collect matches for REGEXP inside FILES in DIR.
-FILES is a string with glob patterns separated by spaces.
-IGNORES is a list of glob patterns.
-
-\(fn REGEXP FILES DIR IGNORES)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"xref" '("xref-")))
-
-;;;***
-
-;;;### (autoloads nil "xscheme" "progmodes/xscheme.el" (0 0 0 0))
-;;; Generated autoloads from progmodes/xscheme.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"xscheme" '("xscheme-" "start-scheme" "scheme-" "exit-scheme-interaction-mode" 
"verify-xscheme-buffer" "local-" "global-set-scheme-interaction-buffer" 
"run-scheme" "reset-scheme" "default-xscheme-runlight")))
-
-;;;***
-
-;;;### (autoloads nil "xsd-regexp" "nxml/xsd-regexp.el" (0 0 0 0))
-;;; Generated autoloads from nxml/xsd-regexp.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"xsd-regexp" '("xsdre-")))
-
-;;;***
-
-;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (0 0 0 0))
-;;; Generated autoloads from xt-mouse.el
-
-(defvar xterm-mouse-mode nil "\
-Non-nil if Xterm-Mouse mode is enabled.
-See the `xterm-mouse-mode' command
-for a description of this minor mode.
-Setting this variable directly does not take effect;
-either customize it (see the info node `Easy Customization')
-or call the function `xterm-mouse-mode'.")
-
-(custom-autoload 'xterm-mouse-mode "xt-mouse" nil)
-
-(autoload 'xterm-mouse-mode "xt-mouse" "\
-Toggle XTerm mouse mode.
-With a prefix argument ARG, enable XTerm mouse mode if ARG is
-positive, and disable it otherwise.  If called from Lisp, enable
-the mode if ARG is omitted or nil.
-
-Turn it on to use Emacs mouse commands, and off to use xterm mouse commands.
-This works in terminal emulators compatible with xterm.  It only
-works for simple uses of the mouse.  Basically, only non-modified
-single clicks are supported.  When turned on, the normal xterm
-mouse functionality for such clicks is still available by holding
-down the SHIFT key while pressing the mouse button.
-
-\(fn &optional ARG)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"xt-mouse" '("turn-o" "xt-mouse-epoch" "xterm-mouse-")))
-
-;;;***
-
-;;;### (autoloads nil "xwidget" "xwidget.el" (0 0 0 0))
-;;; Generated autoloads from xwidget.el
-
-(autoload 'xwidget-webkit-browse-url "xwidget" "\
-Ask xwidget-webkit to browse URL.
-NEW-SESSION specifies whether to create a new xwidget-webkit session.
-Interactively, URL defaults to the string looking like a url around point.
-
-\(fn URL &optional NEW-SESSION)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"xwidget" '("xwidget-")))
-
-;;;***
-
-;;;### (autoloads nil "yenc" "mail/yenc.el" (0 0 0 0))
-;;; Generated autoloads from mail/yenc.el
-
-(autoload 'yenc-decode-region "yenc" "\
-Yenc decode region between START and END using an internal decoder.
-
-\(fn START END)" t nil)
-
-(autoload 'yenc-extract-filename "yenc" "\
-Extract file name from an yenc header.
-
-\(fn)" nil nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"yenc" '("yenc-")))
-
-;;;***
-
-;;;### (autoloads nil "zeroconf" "net/zeroconf.el" (0 0 0 0))
-;;; Generated autoloads from net/zeroconf.el
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"zeroconf" '("zeroconf-")))
-
-;;;***
-
-;;;### (autoloads nil "zone" "play/zone.el" (0 0 0 0))
-;;; Generated autoloads from play/zone.el
-
-(autoload 'zone "zone" "\
-Zone out, completely.
-
-\(fn)" t nil)
-
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"zone" '("zone-")))
-
-;;;***
-
-;;;### (autoloads nil nil ("abbrev.el" "bindings.el" "buff-menu.el"
-;;;;;;  "button.el" "calc/calc-aent.el" "calc/calc-embed.el" 
"calc/calc-loaddefs.el"
-;;;;;;  "calc/calc-misc.el" "calc/calc-yank.el" "calendar/cal-loaddefs.el"
-;;;;;;  "calendar/diary-loaddefs.el" "calendar/hol-loaddefs.el" "case-table.el"
-;;;;;;  "cedet/ede/base.el" "cedet/ede/config.el" "cedet/ede/cpp-root.el"
-;;;;;;  "cedet/ede/custom.el" "cedet/ede/dired.el" "cedet/ede/emacs.el"
-;;;;;;  "cedet/ede/files.el" "cedet/ede/generic.el" "cedet/ede/linux.el"
-;;;;;;  "cedet/ede/loaddefs.el" "cedet/ede/locate.el" "cedet/ede/make.el"
-;;;;;;  "cedet/ede/shell.el" "cedet/ede/speedbar.el" "cedet/ede/system.el"
-;;;;;;  "cedet/ede/util.el" "cedet/semantic/analyze.el" 
"cedet/semantic/analyze/complete.el"
-;;;;;;  "cedet/semantic/analyze/refs.el" "cedet/semantic/bovine.el"
-;;;;;;  "cedet/semantic/bovine/c.el" "cedet/semantic/bovine/el.el"
-;;;;;;  "cedet/semantic/bovine/gcc.el" "cedet/semantic/bovine/make.el"
-;;;;;;  "cedet/semantic/bovine/scm.el" "cedet/semantic/complete.el"
-;;;;;;  "cedet/semantic/ctxt.el" "cedet/semantic/db-file.el" 
"cedet/semantic/db-find.el"
-;;;;;;  "cedet/semantic/db-global.el" "cedet/semantic/db-mode.el"
-;;;;;;  "cedet/semantic/db-typecache.el" "cedet/semantic/db.el" 
"cedet/semantic/debug.el"
-;;;;;;  "cedet/semantic/decorate/include.el" "cedet/semantic/decorate/mode.el"
-;;;;;;  "cedet/semantic/dep.el" "cedet/semantic/doc.el" 
"cedet/semantic/edit.el"
-;;;;;;  "cedet/semantic/find.el" "cedet/semantic/format.el" 
"cedet/semantic/html.el"
-;;;;;;  "cedet/semantic/ia-sb.el" "cedet/semantic/ia.el" 
"cedet/semantic/idle.el"
-;;;;;;  "cedet/semantic/imenu.el" "cedet/semantic/lex-spp.el" 
"cedet/semantic/lex.el"
-;;;;;;  "cedet/semantic/loaddefs.el" "cedet/semantic/mru-bookmark.el"
-;;;;;;  "cedet/semantic/scope.el" "cedet/semantic/senator.el" 
"cedet/semantic/sort.el"
-;;;;;;  "cedet/semantic/symref.el" "cedet/semantic/symref/cscope.el"
-;;;;;;  "cedet/semantic/symref/global.el" "cedet/semantic/symref/grep.el"
-;;;;;;  "cedet/semantic/symref/idutils.el" "cedet/semantic/symref/list.el"
-;;;;;;  "cedet/semantic/tag-file.el" "cedet/semantic/tag-ls.el" 
"cedet/semantic/tag-write.el"
-;;;;;;  "cedet/semantic/tag.el" "cedet/semantic/texi.el" 
"cedet/semantic/util-modes.el"
-;;;;;;  "cedet/semantic/wisent/java-tags.el" 
"cedet/semantic/wisent/javascript.el"
-;;;;;;  "cedet/semantic/wisent/python.el" "cedet/srecode/compile.el"
-;;;;;;  "cedet/srecode/cpp.el" "cedet/srecode/document.el" 
"cedet/srecode/el.el"
-;;;;;;  "cedet/srecode/expandproto.el" "cedet/srecode/getset.el"
-;;;;;;  "cedet/srecode/insert.el" "cedet/srecode/java.el" 
"cedet/srecode/loaddefs.el"
-;;;;;;  "cedet/srecode/map.el" "cedet/srecode/mode.el" "cedet/srecode/srt.el"
-;;;;;;  "cedet/srecode/template.el" "cedet/srecode/texi.el" "composite.el"
-;;;;;;  "cus-face.el" "cus-start.el" "custom.el" "dired-aux.el" 
"dired-loaddefs.el"
-;;;;;;  "dired-x.el" "electric.el" "emacs-lisp/backquote.el" 
"emacs-lisp/byte-run.el"
-;;;;;;  "emacs-lisp/cl-extra.el" "emacs-lisp/cl-generic.el" 
"emacs-lisp/cl-loaddefs.el"
-;;;;;;  "emacs-lisp/cl-macs.el" "emacs-lisp/cl-preloaded.el" 
"emacs-lisp/cl-seq.el"
-;;;;;;  "emacs-lisp/eieio-compat.el" "emacs-lisp/eieio-custom.el"
-;;;;;;  "emacs-lisp/eieio-loaddefs.el" "emacs-lisp/eieio-opt.el"
-;;;;;;  "emacs-lisp/eldoc.el" "emacs-lisp/float-sup.el" 
"emacs-lisp/lisp-mode.el"
-;;;;;;  "emacs-lisp/lisp.el" "emacs-lisp/macroexp.el" "emacs-lisp/map-ynp.el"
-;;;;;;  "emacs-lisp/nadvice.el" "emacs-lisp/syntax.el" "emacs-lisp/timer.el"
-;;;;;;  "env.el" "epa-hook.el" "eshell/em-alias.el" "eshell/em-banner.el"
-;;;;;;  "eshell/em-basic.el" "eshell/em-cmpl.el" "eshell/em-dirs.el"
-;;;;;;  "eshell/em-glob.el" "eshell/em-hist.el" "eshell/em-ls.el"
-;;;;;;  "eshell/em-pred.el" "eshell/em-prompt.el" "eshell/em-rebind.el"
-;;;;;;  "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el"
-;;;;;;  "eshell/em-tramp.el" "eshell/em-unix.el" "eshell/em-xtra.el"
-;;;;;;  "eshell/esh-groups.el" "facemenu.el" "faces.el" "files.el"
-;;;;;;  "font-core.el" "font-lock.el" "format.el" "frame.el" "help.el"
-;;;;;;  "hfy-cmap.el" "htmlfontify-loaddefs.el" "ibuf-ext.el" 
"ibuffer-loaddefs.el"
-;;;;;;  "indent.el" "international/characters.el" "international/charprop.el"
-;;;;;;  "international/charscript.el" "international/cp51932.el"
-;;;;;;  "international/eucjp-ms.el" "international/mule-cmds.el"
-;;;;;;  "international/mule-conf.el" "international/mule.el" 
"international/uni-bidi.el"
-;;;;;;  "international/uni-brackets.el" "international/uni-category.el"
-;;;;;;  "international/uni-combining.el" "international/uni-comment.el"
-;;;;;;  "international/uni-decimal.el" "international/uni-decomposition.el"
-;;;;;;  "international/uni-digit.el" "international/uni-lowercase.el"
-;;;;;;  "international/uni-mirrored.el" "international/uni-name.el"
-;;;;;;  "international/uni-numeric.el" "international/uni-old-name.el"
-;;;;;;  "international/uni-titlecase.el" "international/uni-uppercase.el"
-;;;;;;  "isearch.el" "jit-lock.el" "jka-cmpr-hook.el" "language/burmese.el"
-;;;;;;  "language/cham.el" "language/chinese.el" "language/cyrillic.el"
-;;;;;;  "language/czech.el" "language/english.el" "language/ethiopic.el"
-;;;;;;  "language/european.el" "language/georgian.el" "language/greek.el"
-;;;;;;  "language/hebrew.el" "language/indian.el" "language/japanese.el"
-;;;;;;  "language/khmer.el" "language/korean.el" "language/lao.el"
-;;;;;;  "language/misc-lang.el" "language/romanian.el" "language/sinhala.el"
-;;;;;;  "language/slovak.el" "language/tai-viet.el" "language/thai.el"
-;;;;;;  "language/tibetan.el" "language/utf-8-lang.el" "language/vietnamese.el"
-;;;;;;  "ldefs-boot.el" "leim/quail/arabic.el" "leim/quail/croatian.el"
-;;;;;;  "leim/quail/cyril-jis.el" "leim/quail/cyrillic.el" 
"leim/quail/czech.el"
-;;;;;;  "leim/quail/georgian.el" "leim/quail/greek.el" 
"leim/quail/hanja-jis.el"
-;;;;;;  "leim/quail/hanja.el" "leim/quail/hanja3.el" "leim/quail/hebrew.el"
-;;;;;;  "leim/quail/ipa-praat.el" "leim/quail/latin-alt.el" 
"leim/quail/latin-ltx.el"
-;;;;;;  "leim/quail/latin-post.el" "leim/quail/latin-pre.el" 
"leim/quail/persian.el"
-;;;;;;  "leim/quail/programmer-dvorak.el" "leim/quail/py-punct.el"
-;;;;;;  "leim/quail/pypunct-b5.el" "leim/quail/rfc1345.el" 
"leim/quail/sgml-input.el"
-;;;;;;  "leim/quail/slovak.el" "leim/quail/symbol-ksc.el" 
"leim/quail/tamil-dvorak.el"
-;;;;;;  "leim/quail/vntelex.el" "leim/quail/vnvni.el" "leim/quail/welsh.el"
-;;;;;;  "loadup.el" "mail/blessmail.el" "mail/rmail-loaddefs.el"
-;;;;;;  "mail/rmailedit.el" "mail/rmailkwd.el" "mail/rmailmm.el"
-;;;;;;  "mail/rmailmsc.el" "mail/rmailsort.el" "mail/rmailsum.el"
-;;;;;;  "mail/undigest.el" "menu-bar.el" "mh-e/mh-gnus.el" 
"mh-e/mh-loaddefs.el"
-;;;;;;  "minibuffer.el" "mouse.el" "net/tramp-loaddefs.el" "newcomment.el"
-;;;;;;  "obarray.el" "org/ob-core.el" "org/ob-keys.el" "org/ob-lob.el"
-;;;;;;  "org/ob-matlab.el" "org/ob-tangle.el" "org/ob.el" "org/org-archive.el"
-;;;;;;  "org/org-attach.el" "org/org-bbdb.el" "org/org-clock.el"
-;;;;;;  "org/org-datetree.el" "org/org-element.el" "org/org-feed.el"
-;;;;;;  "org/org-footnote.el" "org/org-id.el" "org/org-indent.el"
-;;;;;;  "org/org-install.el" "org/org-irc.el" "org/org-loaddefs.el"
-;;;;;;  "org/org-mobile.el" "org/org-plot.el" "org/org-table.el"
-;;;;;;  "org/org-timer.el" "org/ox-ascii.el" "org/ox-beamer.el" 
"org/ox-html.el"
-;;;;;;  "org/ox-icalendar.el" "org/ox-latex.el" "org/ox-man.el" "org/ox-md.el"
-;;;;;;  "org/ox-odt.el" "org/ox-org.el" "org/ox-publish.el" "org/ox-texinfo.el"
-;;;;;;  "org/ox.el" "progmodes/elisp-mode.el" "progmodes/prog-mode.el"
-;;;;;;  "ps-def.el" "ps-mule.el" "ps-print-loaddefs.el" "register.el"
-;;;;;;  "replace.el" "rfn-eshadow.el" "select.el" "simple.el" "startup.el"
-;;;;;;  "subdirs.el" "subr.el" "textmodes/fill.el" "textmodes/page.el"
-;;;;;;  "textmodes/paragraphs.el" "textmodes/reftex-auc.el" 
"textmodes/reftex-cite.el"
-;;;;;;  "textmodes/reftex-dcr.el" "textmodes/reftex-global.el" 
"textmodes/reftex-index.el"
-;;;;;;  "textmodes/reftex-loaddefs.el" "textmodes/reftex-parse.el"
-;;;;;;  "textmodes/reftex-ref.el" "textmodes/reftex-sel.el" 
"textmodes/reftex-toc.el"
-;;;;;;  "textmodes/text-mode.el" "uniquify.el" "vc/ediff-hook.el"
-;;;;;;  "vc/vc-hooks.el" "version.el" "widget.el" "window.el") (0
-;;;;;;  0 0 0))
-
-;;;***
-
-(provide 'loaddefs)
-;; Local Variables:
-;; version-control: never
-;; no-byte-compile: t
-;; no-update-autoloads: t
-;; coding: utf-8
-;; End:
-;;; loaddefs.el ends here
diff --git a/lisp/leim/quail/arabic.el b/lisp/leim/quail/arabic.el
index b6882bd..22d6117 100644
--- a/lisp/leim/quail/arabic.el
+++ b/lisp/leim/quail/arabic.el
@@ -1,6 +1,6 @@
 ;;; arabic.el --- Quail package for inputting Arabic   -*- coding: utf-8;-*-
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Cloos <address@hidden>
 ;; Keywords: mule, input method, Arabic
diff --git a/lisp/leim/quail/croatian.el b/lisp/leim/quail/croatian.el
index 1559e46..7ebf875 100644
--- a/lisp/leim/quail/croatian.el
+++ b/lisp/leim/quail/croatian.el
@@ -1,6 +1,6 @@
 ;;; croatian.el -- Quail package for inputting Croatian  -*-coding: utf-8;-*-
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Hrvoje Nikšić <address@hidden>
 ;; Keywords: i18n
diff --git a/lisp/leim/quail/cyril-jis.el b/lisp/leim/quail/cyril-jis.el
index 78cb101..609b601 100644
--- a/lisp/leim/quail/cyril-jis.el
+++ b/lisp/leim/quail/cyril-jis.el
@@ -1,6 +1,6 @@
 ;;; cyril-jis.el --- Quail package for inputting JISX0208 Cyrillic letters
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/cyrillic.el b/lisp/leim/quail/cyrillic.el
index e12c002..af9f66c 100644
--- a/lisp/leim/quail/cyrillic.el
+++ b/lisp/leim/quail/cyrillic.el
@@ -1,6 +1,6 @@
 ;;; cyrillic.el --- Quail package for inputting Cyrillic characters
 
-;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/czech.el b/lisp/leim/quail/czech.el
index ddb4af5..762d702 100644
--- a/lisp/leim/quail/czech.el
+++ b/lisp/leim/quail/czech.el
@@ -1,6 +1,6 @@
 ;;; czech.el --- Quail package for inputting Czech -*-coding: utf-8;-*-
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Milan Zamazal <address@hidden>
 ;; Maintainer: Pavel Janík <address@hidden>
diff --git a/lisp/leim/quail/georgian.el b/lisp/leim/quail/georgian.el
index 1d5935e..df29715 100644
--- a/lisp/leim/quail/georgian.el
+++ b/lisp/leim/quail/georgian.el
@@ -1,6 +1,6 @@
 ;;; georgian.el --- Quail package for inputting Georgian characters  
-*-coding: utf-8;-*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Keywords: i18n
diff --git a/lisp/leim/quail/greek.el b/lisp/leim/quail/greek.el
index a0cdd16..05351e0 100644
--- a/lisp/leim/quail/greek.el
+++ b/lisp/leim/quail/greek.el
@@ -1,6 +1,6 @@
 ;;; greek.el --- Quail package for inputting Greek -*-coding: utf-8-*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/hangul.el b/lisp/leim/quail/hangul.el
index 84f5f4b..782d8d5 100644
--- a/lisp/leim/quail/hangul.el
+++ b/lisp/leim/quail/hangul.el
@@ -1,6 +1,6 @@
 ;;; hangul.el --- Korean Hangul input method
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Jihyun Cho <address@hidden>
 ;; Keywords: multilingual, input method, Korean, Hangul
diff --git a/lisp/leim/quail/hanja.el b/lisp/leim/quail/hanja.el
index 88c991a..8c00ad1 100644
--- a/lisp/leim/quail/hanja.el
+++ b/lisp/leim/quail/hanja.el
@@ -1,6 +1,6 @@
 ;;; hanja.el --- Quail-package for Korean Hanja (KSC5601)  -*-coding: utf-8;-*-
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/hanja3.el b/lisp/leim/quail/hanja3.el
index 38aec2e..c140f90 100644
--- a/lisp/leim/quail/hanja3.el
+++ b/lisp/leim/quail/hanja3.el
@@ -1,6 +1,6 @@
 ;;; hanja3.el --- Quail-package for Korean Hanja (KSC5601)  -*-coding: 
utf-8;-*-
 
-;; Copyright (C) 1997, 1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Koaunghi Un <address@hidden>
 ;; Keywords: mule, quail, multilingual, input method, Korean, Hanja
diff --git a/lisp/leim/quail/indian.el b/lisp/leim/quail/indian.el
index 728e352..8f549ae 100644
--- a/lisp/leim/quail/indian.el
+++ b/lisp/leim/quail/indian.el
@@ -1,6 +1,6 @@
 ;;; indian.el --- Quail packages for inputting Indian
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: KAWABATA, Taichi <address@hidden>
 
diff --git a/lisp/leim/quail/ipa-praat.el b/lisp/leim/quail/ipa-praat.el
index 2ae9efe..42bc201 100644
--- a/lisp/leim/quail/ipa-praat.el
+++ b/lisp/leim/quail/ipa-praat.el
@@ -1,6 +1,6 @@
 ;;; ipa-praat.el --- Inputting IPA characters with the conventions of Praat
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Oliver Scholz <address@hidden>
 ;; Keywords: multilingual, input method, IPA
diff --git a/lisp/leim/quail/ipa.el b/lisp/leim/quail/ipa.el
index 4315e5b..6f0368c 100644
--- a/lisp/leim/quail/ipa.el
+++ b/lisp/leim/quail/ipa.el
@@ -1,6 +1,6 @@
 ;;; ipa.el --- Quail package for inputting IPA characters  -*-coding: utf-8;-*-
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/japanese.el b/lisp/leim/quail/japanese.el
index 4130944..98865ac 100644
--- a/lisp/leim/quail/japanese.el
+++ b/lisp/leim/quail/japanese.el
@@ -1,6 +1,6 @@
 ;;; japanese.el --- Quail package for inputting Japanese  -*-coding: 
iso-2022-7bit;-*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/latin-alt.el b/lisp/leim/quail/latin-alt.el
index 30df9ac..6c0dab2 100644
--- a/lisp/leim/quail/latin-alt.el
+++ b/lisp/leim/quail/latin-alt.el
@@ -1,6 +1,6 @@
 ;;; latin-alt.el --- Quail package for inputting various European characters 
-*-coding: utf-8;-*-
 
-;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
 ;;   2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/latin-ltx.el b/lisp/leim/quail/latin-ltx.el
index fb3d2ba..6c5afcd 100644
--- a/lisp/leim/quail/latin-ltx.el
+++ b/lisp/leim/quail/latin-ltx.el
@@ -1,6 +1,6 @@
 ;;; latin-ltx.el --- Quail package for TeX-style input -*-coding: utf-8;-*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
 ;;   2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/latin-post.el b/lisp/leim/quail/latin-post.el
index 5def911..a556448 100644
--- a/lisp/leim/quail/latin-post.el
+++ b/lisp/leim/quail/latin-post.el
@@ -1,6 +1,6 @@
 ;;; latin-post.el --- Quail packages for inputting various European characters 
 -*-coding: utf-8;-*-
 
-;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/latin-pre.el b/lisp/leim/quail/latin-pre.el
index dd23add..9e4726a 100644
--- a/lisp/leim/quail/latin-pre.el
+++ b/lisp/leim/quail/latin-pre.el
@@ -1,6 +1,6 @@
 ;;; latin-pre.el --- Quail packages for inputting various European characters  
-*-coding: utf-8;-*-
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/lrt.el b/lisp/leim/quail/lrt.el
index 5d6cc5a..d3cfce6 100644
--- a/lisp/leim/quail/lrt.el
+++ b/lisp/leim/quail/lrt.el
@@ -1,6 +1,6 @@
 ;;; lrt.el --- Quail package for inputting Lao characters by LRT method  
-*-coding: utf-8;-*-
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/persian.el b/lisp/leim/quail/persian.el
index c5de553..56ba145 100644
--- a/lisp/leim/quail/persian.el
+++ b/lisp/leim/quail/persian.el
@@ -1,6 +1,6 @@
 ;;; persian.el  --- Quail package for inputting Persian/Farsi keyboard -*- 
coding: utf-8;-*-
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Mohsen BANAN <address@hidden>
 ;; X-URL: http://mohsen.1.banan.byname.net/contact
diff --git a/lisp/leim/quail/programmer-dvorak.el 
b/lisp/leim/quail/programmer-dvorak.el
index 6153497..1dc8edc 100644
--- a/lisp/leim/quail/programmer-dvorak.el
+++ b/lisp/leim/quail/programmer-dvorak.el
@@ -1,6 +1,6 @@
 ;;; programmer-dvorak.el --- Quail package for the programmer Dvorak layout
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Joakim Jalap <address@hidden>
 
diff --git a/lisp/leim/quail/py-punct.el b/lisp/leim/quail/py-punct.el
index e332640..9fe06c0 100644
--- a/lisp/leim/quail/py-punct.el
+++ b/lisp/leim/quail/py-punct.el
@@ -1,6 +1,6 @@
 ;;; py-punct.el --- Quail packages for Chinese (pinyin + extra symbols)  
-*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/rfc1345.el b/lisp/leim/quail/rfc1345.el
index 1b50ee3..74f7d09 100644
--- a/lisp/leim/quail/rfc1345.el
+++ b/lisp/leim/quail/rfc1345.el
@@ -1,6 +1,6 @@
 ;;; rfc1345.el --- Quail method for RFC 1345 mnemonics -*- coding: utf-8 -*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Keywords: i18n
diff --git a/lisp/leim/quail/sgml-input.el b/lisp/leim/quail/sgml-input.el
index a2f7440..c334b51 100644
--- a/lisp/leim/quail/sgml-input.el
+++ b/lisp/leim/quail/sgml-input.el
@@ -1,6 +1,6 @@
 ;;; sgml-input.el --- Quail method for Unicode entered as SGML entities -*- 
coding: utf-8 -*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Keywords: i18n
diff --git a/lisp/leim/quail/sisheng.el b/lisp/leim/quail/sisheng.el
index 2f3a968..8a1ddcf 100644
--- a/lisp/leim/quail/sisheng.el
+++ b/lisp/leim/quail/sisheng.el
@@ -1,6 +1,6 @@
 ;;; sisheng.el --- sisheng input method for Chinese pinyin transliteration
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Werner LEMBERG <address@hidden>
 
diff --git a/lisp/leim/quail/slovak.el b/lisp/leim/quail/slovak.el
index e00f03f..817dcd0 100644
--- a/lisp/leim/quail/slovak.el
+++ b/lisp/leim/quail/slovak.el
@@ -1,6 +1,6 @@
 ;;; slovak.el --- Quail package for inputting Slovak  -*-coding: utf-8;-*-
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Authors: Tibor Šimko <address@hidden>
 ;;     Milan Zamazal <address@hidden>
diff --git a/lisp/leim/quail/symbol-ksc.el b/lisp/leim/quail/symbol-ksc.el
index a297cab..31e839b 100644
--- a/lisp/leim/quail/symbol-ksc.el
+++ b/lisp/leim/quail/symbol-ksc.el
@@ -1,6 +1,6 @@
 ;;; symbol-ksc.el --- Quail-package for Korean Symbol (KSC5601) -*-coding: 
utf-8;-*-
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/tamil-dvorak.el b/lisp/leim/quail/tamil-dvorak.el
index c119997..a625d90 100644
--- a/lisp/leim/quail/tamil-dvorak.el
+++ b/lisp/leim/quail/tamil-dvorak.el
@@ -1,6 +1,6 @@
 ;;; tamil-dvorak.el --- Quail package for Tamil input with Dvorak keyboard
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Shakthi Kannan <address@hidden>
 
diff --git a/lisp/leim/quail/tibetan.el b/lisp/leim/quail/tibetan.el
index 6fb20cd..4e1c5b5 100644
--- a/lisp/leim/quail/tibetan.el
+++ b/lisp/leim/quail/tibetan.el
@@ -1,6 +1,6 @@
 ;;; tibetan.el --- Quail package for inputting Tibetan characters -*-coding: 
utf-8-emacs;-*-
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/leim/quail/uni-input.el b/lisp/leim/quail/uni-input.el
index 5edd614..595155e 100644
--- a/lisp/leim/quail/uni-input.el
+++ b/lisp/leim/quail/uni-input.el
@@ -1,6 +1,6 @@
 ;;; uni-input.el --- Hex Unicode input method
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
diff --git a/lisp/leim/quail/vntelex.el b/lisp/leim/quail/vntelex.el
index fa33051..074b806 100644
--- a/lisp/leim/quail/vntelex.el
+++ b/lisp/leim/quail/vntelex.el
@@ -1,6 +1,6 @@
 ;;; vntelex.el --- Quail package for Vietnamese by Telex method
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author:   Werner Lemberg <address@hidden>
 ;; Keywords: multilingual, input method, Vietnamese
diff --git a/lisp/leim/quail/vnvni.el b/lisp/leim/quail/vnvni.el
index 587f56d..5d21030 100644
--- a/lisp/leim/quail/vnvni.el
+++ b/lisp/leim/quail/vnvni.el
@@ -1,6 +1,6 @@
 ;;; vnvni.el --- Quail package for Vietnamese by VNI method
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author:   Werner Lemberg <address@hidden>
 ;;           Nguyen Thai Ngoc Duy <address@hidden>
diff --git a/lisp/leim/quail/welsh.el b/lisp/leim/quail/welsh.el
index 8d1340c..7b0ca2c 100644
--- a/lisp/leim/quail/welsh.el
+++ b/lisp/leim/quail/welsh.el
@@ -1,6 +1,6 @@
 ;;; welsh.el --- Quail package for inputting Welsh characters  -*-coding: 
utf-8;-*-
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Keywords: i18n
diff --git a/lisp/linum.el b/lisp/linum.el
index 122f8e3..8baa263 100644
--- a/lisp/linum.el
+++ b/lisp/linum.el
@@ -1,6 +1,6 @@
 ;;; linum.el --- display line numbers in the left margin -*- lexical-binding: 
t -*-
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Markus Triska <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/loadhist.el b/lisp/loadhist.el
index 071a1ad..28d0b18 100644
--- a/lisp/loadhist.el
+++ b/lisp/loadhist.el
@@ -1,6 +1,6 @@
 ;;; loadhist.el --- lisp functions for working with feature groups
 
-;; Copyright (C) 1995, 1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric S. Raymond <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/loadup.el b/lisp/loadup.el
index 5350024..ecb7284 100644
--- a/lisp/loadup.el
+++ b/lisp/loadup.el
@@ -1,6 +1,6 @@
 ;;; loadup.el --- load up standardly loaded Lisp files for Emacs
 
-;; Copyright (C) 1985-1986, 1992, 1994, 2001-2016 Free Software
+;; Copyright (C) 1985-1986, 1992, 1994, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/locate.el b/lisp/locate.el
index 2d56306..738c333 100644
--- a/lisp/locate.el
+++ b/lisp/locate.el
@@ -1,6 +1,6 @@
 ;;; locate.el --- interface to the locate command
 
-;; Copyright (C) 1996, 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Peter Breton <address@hidden>
 ;; Keywords: unix files
diff --git a/lisp/lpr.el b/lisp/lpr.el
index d09f779..4c8dc2c 100644
--- a/lisp/lpr.el
+++ b/lisp/lpr.el
@@ -1,6 +1,6 @@
 ;;; lpr.el --- print Emacs buffer on line printer
 
-;; Copyright (C) 1985, 1988, 1992, 1994, 2001-2016 Free Software
+;; Copyright (C) 1985, 1988, 1992, 1994, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el
index 8395622..7ae2343 100644
--- a/lisp/ls-lisp.el
+++ b/lisp/ls-lisp.el
@@ -1,6 +1,6 @@
 ;;; ls-lisp.el --- emulate insert-directory completely in Emacs Lisp
 
-;; Copyright (C) 1992, 1994, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Sebastian Kremer <address@hidden>
 ;; Modified by: Francis J. Wright <address@hidden>
diff --git a/lisp/macros.el b/lisp/macros.el
index f7a4732..c134829 100644
--- a/lisp/macros.el
+++ b/lisp/macros.el
@@ -1,6 +1,6 @@
 ;;; macros.el --- non-primitive commands for keyboard macros
 
-;; Copyright (C) 1985-1987, 1992, 1994-1995, 2001-2016 Free Software
+;; Copyright (C) 1985-1987, 1992, 1994-1995, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/mail/binhex.el b/lisp/mail/binhex.el
index a5f3982..1d6828b 100644
--- a/lisp/mail/binhex.el
+++ b/lisp/mail/binhex.el
@@ -1,6 +1,6 @@
 ;;; binhex.el --- decode BinHex-encoded text
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <address@hidden>
 ;; Keywords: binhex news
diff --git a/lisp/mail/blessmail.el b/lisp/mail/blessmail.el
index bdd32c8..fc3b961 100644
--- a/lisp/mail/blessmail.el
+++ b/lisp/mail/blessmail.el
@@ -1,6 +1,6 @@
 ;;; blessmail.el --- decide whether movemail needs special privileges -*- 
no-byte-compile: t -*-
 
-;; Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: internal
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index 650fbfa..c8214c3 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -1,6 +1,6 @@
 ;;; emacsbug.el --- command to report Emacs bugs to appropriate mailing list
 
-;; Copyright (C) 1985, 1994, 1997-1998, 2000-2016 Free Software
+;; Copyright (C) 1985, 1994, 1997-1998, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: K. Shane Hartman
diff --git a/lisp/mail/feedmail.el b/lisp/mail/feedmail.el
index eed664d..1402db4 100644
--- a/lisp/mail/feedmail.el
+++ b/lisp/mail/feedmail.el
@@ -3147,7 +3147,7 @@ been weeded out."
                (setq simple-address (substring address-blob (match-beginning 
2) (match-end 2)))
                (setq address-blob (replace-match "" t t address-blob))
                (if (not (member simple-address address-list))
-                   (add-to-list 'address-list simple-address)))
+                   (push simple-address address-list)))
              ))
          (kill-buffer nil)))
     (identity address-list)))
diff --git a/lisp/mail/flow-fill.el b/lisp/mail/flow-fill.el
index d288142..860d353 100644
--- a/lisp/mail/flow-fill.el
+++ b/lisp/mail/flow-fill.el
@@ -1,6 +1,6 @@
 ;;; flow-fill.el --- interpret RFC2646 "flowed" text
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;; Keywords: mail
diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el
index a90f370..07e24bd 100644
--- a/lisp/mail/footnote.el
+++ b/lisp/mail/footnote.el
@@ -1,6 +1,6 @@
 ;;; footnote.el --- footnote support for message mode
 
-;; Copyright (C) 1997, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Steven L Baur <address@hidden>
 ;; Keywords: mail, news
diff --git a/lisp/mail/hashcash.el b/lisp/mail/hashcash.el
index e1cb7e2..1c24d0a 100644
--- a/lisp/mail/hashcash.el
+++ b/lisp/mail/hashcash.el
@@ -1,6 +1,6 @@
 ;;; hashcash.el --- Add hashcash payments to email
 
-;; Copyright (C) 2003-2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Written by: Paul Foley <address@hidden> (1997-2002)
 ;; Maintainer: Paul Foley <address@hidden>
diff --git a/lisp/mail/ietf-drums.el b/lisp/mail/ietf-drums.el
index 03349d1..fd793a2 100644
--- a/lisp/mail/ietf-drums.el
+++ b/lisp/mail/ietf-drums.el
@@ -1,6 +1,6 @@
 ;;; ietf-drums.el --- Functions for parsing RFC822bis headers
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; This file is part of GNU Emacs.
@@ -143,7 +143,7 @@ backslash and doublequote.")
          (forward-sexp 1))
         ((eq c ?\()
          (forward-sexp 1))
-        ((memq c '(?\  ?\t ?\n))
+        ((memq c '(?\  ?\t ?\n ?\r))
          (delete-char 1))
         (t
          (forward-char 1))))
@@ -172,6 +172,19 @@ backslash and doublequote.")
   "Remove comments and whitespace from STRING."
   (ietf-drums-remove-whitespace (ietf-drums-remove-comments string)))
 
+(defun ietf-drums-remove-garbage (string)
+  "Remove some garbage from STRING."
+  (while (string-match "[][()<>@,;:\\\"/?=]+" string)
+    (setq string (concat (substring string 0 (match-beginning 0))
+                        (substring string (match-end 0)))))
+  string)
+
+(defun ietf-drums-strip-cte (string)
+  "Remove comments, whitespace and garbage from STRING.
+STRING is assumed to be a string that is extracted from
+the Content-Transfer-Encoding header of a mail."
+  (ietf-drums-remove-garbage (inline (ietf-drums-strip string))))
+
 (defun ietf-drums-parse-address (string)
   "Parse STRING and return a MAILBOX / DISPLAY-NAME pair."
   (with-temp-buffer
@@ -179,6 +192,17 @@ backslash and doublequote.")
       (ietf-drums-init string)
       (while (not (eobp))
        (setq c (char-after))
+        ;; If we have an uneven number of quote characters,
+        ;; `forward-sexp' will fail.  In these cases, just delete the
+        ;; final of these quote characters.
+        (when (and (eq c ?\")
+                   (not
+                    (save-excursion
+                      (ignore-errors
+                        (forward-sexp 1)
+                        t))))
+          (delete-char 1)
+          (setq c (char-after)))
        (cond
         ((or (eq c ? )
              (eq c ?\t))
diff --git a/lisp/mail/mail-extr.el b/lisp/mail/mail-extr.el
index 89476d6..180d195 100644
--- a/lisp/mail/mail-extr.el
+++ b/lisp/mail/mail-extr.el
@@ -1,6 +1,6 @@
 ;;; mail-extr.el --- extract full name and address from RFC 822 mail header
 
-;; Copyright (C) 1991-1994, 1997, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1991-1994, 1997, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Joe Wells <address@hidden>
diff --git a/lisp/mail/mail-hist.el b/lisp/mail/mail-hist.el
index 83c418b..b056739 100644
--- a/lisp/mail/mail-hist.el
+++ b/lisp/mail/mail-hist.el
@@ -1,6 +1,6 @@
 ;;; mail-hist.el --- headers and message body history for outgoing mail
 
-;; Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Karl Fogel <address@hidden>
 ;; Created: March, 1994
diff --git a/lisp/mail/mail-parse.el b/lisp/mail/mail-parse.el
index 4fc7e46..0578b98 100644
--- a/lisp/mail/mail-parse.el
+++ b/lisp/mail/mail-parse.el
@@ -1,6 +1,6 @@
 ;;; mail-parse.el --- Interface functions for parsing mail
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; This file is part of GNU Emacs.
@@ -49,6 +49,7 @@
 (defalias 'mail-header-remove-comments 'ietf-drums-remove-comments)
 (defalias 'mail-header-remove-whitespace 'ietf-drums-remove-whitespace)
 (defalias 'mail-header-strip 'ietf-drums-strip)
+(defalias 'mail-header-strip-cte 'ietf-drums-strip-cte)
 (defalias 'mail-header-get-comment 'ietf-drums-get-comment)
 (defalias 'mail-header-parse-address 'ietf-drums-parse-address)
 (defalias 'mail-header-parse-addresses 'ietf-drums-parse-addresses)
diff --git a/lisp/mail/mail-prsvr.el b/lisp/mail/mail-prsvr.el
index 789c002..07f6509 100644
--- a/lisp/mail/mail-prsvr.el
+++ b/lisp/mail/mail-prsvr.el
@@ -1,6 +1,6 @@
 ;;; mail-prsvr.el --- Interface variables for parsing mail
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; This file is part of GNU Emacs.
diff --git a/lisp/mail/mail-utils.el b/lisp/mail/mail-utils.el
index b651719..3cadf12 100644
--- a/lisp/mail/mail-utils.el
+++ b/lisp/mail/mail-utils.el
@@ -1,6 +1,6 @@
 ;;; mail-utils.el --- utility functions used both by rmail and rnews
 
-;; Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: mail, news
diff --git a/lisp/mail/mailabbrev.el b/lisp/mail/mailabbrev.el
index a047f5f..4e3a3f9 100644
--- a/lisp/mail/mailabbrev.el
+++ b/lisp/mail/mailabbrev.el
@@ -1,6 +1,6 @@
 ;;; mailabbrev.el --- abbrev-expansion of mail aliases
 
-;; Copyright (C) 1985-1987, 1992-1993, 1996-1997, 2000-2016 Free
+;; Copyright (C) 1985-1987, 1992-1993, 1996-1997, 2000-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Author: Jamie Zawinski <address@hidden; now address@hidden>
diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el
index 59670a7..8f3f901 100644
--- a/lisp/mail/mailalias.el
+++ b/lisp/mail/mailalias.el
@@ -1,6 +1,6 @@
 ;;; mailalias.el --- expand and complete mailing address aliases -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1985, 1987, 1995-1997, 2001-2016 Free Software
+;; Copyright (C) 1985, 1987, 1995-1997, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/mail/mailclient.el b/lisp/mail/mailclient.el
index eb1305a..8862419 100644
--- a/lisp/mail/mailclient.el
+++ b/lisp/mail/mailclient.el
@@ -1,6 +1,6 @@
 ;;; mailclient.el --- mail sending via system's mail client.
 
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: David Reitter <address@hidden>
 ;; Keywords: mail
diff --git a/lisp/mail/mailheader.el b/lisp/mail/mailheader.el
index cf410b5..bceba77 100644
--- a/lisp/mail/mailheader.el
+++ b/lisp/mail/mailheader.el
@@ -1,6 +1,6 @@
 ;;; mailheader.el --- mail header parsing, merging, formatting
 
-;; Copyright (C) 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Erik Naggum <address@hidden>
 ;; Keywords: tools, mail, news
diff --git a/lisp/mail/metamail.el b/lisp/mail/metamail.el
index b21e4de..4e08028 100644
--- a/lisp/mail/metamail.el
+++ b/lisp/mail/metamail.el
@@ -1,6 +1,6 @@
 ;;; metamail.el --- Metamail interface for GNU Emacs
 
-;; Copyright (C) 1993, 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <address@hidden>
 ;; Keywords: mail, news, mime, multimedia
diff --git a/lisp/mail/mspools.el b/lisp/mail/mspools.el
index 84278c6..21856c3 100644
--- a/lisp/mail/mspools.el
+++ b/lisp/mail/mspools.el
@@ -1,6 +1,6 @@
 ;;; mspools.el --- show mail spools waiting to be read
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Stephen Eglen <address@hidden>
 ;; Maintainer: Stephen Eglen <address@hidden>
diff --git a/lisp/mail/qp.el b/lisp/mail/qp.el
index a295e0c..262191d 100644
--- a/lisp/mail/qp.el
+++ b/lisp/mail/qp.el
@@ -1,6 +1,6 @@
 ;;; qp.el --- Quoted-Printable functions
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: mail, extensions
diff --git a/lisp/mail/reporter.el b/lisp/mail/reporter.el
index 5f4b3ad..b13da94 100644
--- a/lisp/mail/reporter.el
+++ b/lisp/mail/reporter.el
@@ -1,6 +1,6 @@
 ;;; reporter.el --- customizable bug reporting of lisp programs
 
-;; Copyright (C) 1993-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author:          1993-1998 Barry A. Warsaw
 ;; Maintainer: address@hidden
diff --git a/lisp/mail/rfc2045.el b/lisp/mail/rfc2045.el
index c2ddf90..f600050 100644
--- a/lisp/mail/rfc2045.el
+++ b/lisp/mail/rfc2045.el
@@ -1,6 +1,6 @@
 ;;; rfc2045.el --- Functions for decoding rfc2045 headers
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; This file is part of GNU Emacs.
diff --git a/lisp/mail/rfc2047.el b/lisp/mail/rfc2047.el
index e636d61..bcbdc17 100644
--- a/lisp/mail/rfc2047.el
+++ b/lisp/mail/rfc2047.el
@@ -1,6 +1,6 @@
 ;;; rfc2047.el --- functions for encoding and decoding rfc2047 messages
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;;     MORIOKA Tomohiko <address@hidden>
@@ -281,17 +281,7 @@ Should be called narrowed to the head of the message."
                        (encode-coding-region
                         (point-min) (point-max)
                         (mm-charset-to-coding-system
-                         (car message-posting-charset))))
-                 ;; No encoding necessary, but folding is nice
-                 (when nil
-                   (rfc2047-fold-region
-                    (save-excursion
-                      (goto-char (point-min))
-                      (skip-chars-forward "^:")
-                      (when (looking-at ": ")
-                        (forward-char 2))
-                      (point))
-                    (point-max))))
+                         (car message-posting-charset)))))
              ;; We found something that may perhaps be encoded.
              (re-search-forward "^[^:]+: *" nil t)
              (cond
diff --git a/lisp/mail/rfc2231.el b/lisp/mail/rfc2231.el
index 128779a..ba972c7 100644
--- a/lisp/mail/rfc2231.el
+++ b/lisp/mail/rfc2231.el
@@ -1,6 +1,6 @@
 ;;; rfc2231.el --- Functions for decoding rfc2231 headers
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; This file is part of GNU Emacs.
diff --git a/lisp/mail/rfc2368.el b/lisp/mail/rfc2368.el
index 8ea818b..6cb243c 100644
--- a/lisp/mail/rfc2368.el
+++ b/lisp/mail/rfc2368.el
@@ -1,6 +1,6 @@
 ;;; rfc2368.el --- support for rfc2368
 
-;; Copyright (C) 1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Sen Nagata <address@hidden>
 ;; Keywords: mail
diff --git a/lisp/mail/rfc822.el b/lisp/mail/rfc822.el
index c49be71..5edcef5 100644
--- a/lisp/mail/rfc822.el
+++ b/lisp/mail/rfc822.el
@@ -1,6 +1,6 @@
 ;;; rfc822.el --- hairy rfc822 parser for mail and news and suchlike
 
-;; Copyright (C) 1986-1987, 1990, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1986-1987, 1990, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Richard Mlynarik <address@hidden>
diff --git a/lisp/mail/rmail-spam-filter.el b/lisp/mail/rmail-spam-filter.el
index 483c898..648aa22 100644
--- a/lisp/mail/rmail-spam-filter.el
+++ b/lisp/mail/rmail-spam-filter.el
@@ -1,6 +1,6 @@
 ;;; rmail-spam-filter.el --- spam filter for Rmail, the Emacs mail reader
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 ;; Keywords: email, spam, filter, rmail
 ;; Author: Eli Tziperman <eli AT deas.harvard.edu>
 ;; Package: rmail
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index e988225..010d8e3 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -1,6 +1,6 @@
 ;;; rmail.el --- main code of "RMAIL" mail reader for Emacs  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1985-1988, 1993-1998, 2000-2016 Free Software
+;; Copyright (C) 1985-1988, 1993-1998, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/mail/rmailedit.el b/lisp/mail/rmailedit.el
index 46e5e17..df1577f 100644
--- a/lisp/mail/rmailedit.el
+++ b/lisp/mail/rmailedit.el
@@ -1,6 +1,6 @@
 ;;; rmailedit.el --- "RMAIL edit mode"  Edit the current message
 
-;; Copyright (C) 1985, 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: mail
diff --git a/lisp/mail/rmailkwd.el b/lisp/mail/rmailkwd.el
index 6581ee6..761a58f 100644
--- a/lisp/mail/rmailkwd.el
+++ b/lisp/mail/rmailkwd.el
@@ -1,6 +1,6 @@
 ;;; rmailkwd.el --- part of the "RMAIL" mail reader for Emacs
 
-;; Copyright (C) 1985, 1988, 1994, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1985, 1988, 1994, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el
index 9343b11..c6b9cfd 100644
--- a/lisp/mail/rmailmm.el
+++ b/lisp/mail/rmailmm.el
@@ -1,6 +1,6 @@
 ;;; rmailmm.el --- MIME decoding and display stuff for RMAIL
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Alexander Pohoyda
 ;;     Alex Schroeder
diff --git a/lisp/mail/rmailmsc.el b/lisp/mail/rmailmsc.el
index 1185dcc..ac151f9 100644
--- a/lisp/mail/rmailmsc.el
+++ b/lisp/mail/rmailmsc.el
@@ -1,6 +1,6 @@
 ;;; rmailmsc.el --- miscellaneous support functions for the RMAIL mail reader
 
-;; Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: mail
diff --git a/lisp/mail/rmailout.el b/lisp/mail/rmailout.el
index 6785936..a2f9320 100644
--- a/lisp/mail/rmailout.el
+++ b/lisp/mail/rmailout.el
@@ -1,6 +1,6 @@
 ;;; rmailout.el --- "RMAIL" mail reader for Emacs: output message to a file
 
-;; Copyright (C) 1985, 1987, 1993-1994, 2001-2016 Free Software
+;; Copyright (C) 1985, 1987, 1993-1994, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/mail/rmailsort.el b/lisp/mail/rmailsort.el
index 60320b9..681a9c4 100644
--- a/lisp/mail/rmailsort.el
+++ b/lisp/mail/rmailsort.el
@@ -1,6 +1,6 @@
 ;;; rmailsort.el --- Rmail: sort messages
 
-;; Copyright (C) 1990, 1993-1994, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1990, 1993-1994, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Masanobu UMEDA <address@hidden>
diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el
index 0a2ca0b..7c7c9f4 100644
--- a/lisp/mail/rmailsum.el
+++ b/lisp/mail/rmailsum.el
@@ -1,6 +1,6 @@
 ;;; rmailsum.el --- make summary buffers for the mail reader  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1985, 1993-1996, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1985, 1993-1996, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index 3d22209..70c8ea1 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -1,6 +1,6 @@
 ;;; sendmail.el --- mail sending commands for Emacs
 
-;; Copyright (C) 1985-1986, 1992-1996, 1998, 2000-2016 Free Software
+;; Copyright (C) 1985-1986, 1992-1996, 1998, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
@@ -28,8 +28,8 @@
 
 ;;; Code:
 (require 'mail-utils)
-
 (require 'rfc2047)
+(autoload 'message-make-date "message")
 
 (defgroup sendmail nil
   "Mail sending commands for Emacs."
@@ -1409,6 +1409,7 @@ just append to the file, in Babyl format if necessary."
        (require 'mail-utils)
        (insert (mail-rfc822-time-zone time) " ")
        (goto-char (point-max))
+       (insert "Date: " (message-make-date) "\n")
        (insert-buffer-substring mailbuf)
        ;; Make sure messages are separated.
        (goto-char (point-max))
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index f21b847..93bfe0e 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -1,6 +1,6 @@
 ;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail
 
-;; Copyright (C) 1995-1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Tomoji Kagatani <address@hidden>
 ;; Maintainer: Simon Josefsson <address@hidden>
diff --git a/lisp/mail/supercite.el b/lisp/mail/supercite.el
index b38b16f..f3a6e31 100644
--- a/lisp/mail/supercite.el
+++ b/lisp/mail/supercite.el
@@ -1,6 +1,6 @@
 ;;; supercite.el --- minor mode for citing mail and news replies
 
-;; Copyright (C) 1993, 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: 1993 Barry A. Warsaw <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/mail/uce.el b/lisp/mail/uce.el
index ccbb441..3dce1c6 100644
--- a/lisp/mail/uce.el
+++ b/lisp/mail/uce.el
@@ -1,6 +1,6 @@
 ;;; uce.el --- facilitate reply to unsolicited commercial email
 
-;; Copyright (C) 1996, 1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: stanislav shalunov <address@hidden>
 ;; Created: 10 Dec 1996
diff --git a/lisp/mail/undigest.el b/lisp/mail/undigest.el
index 54ee99b..73d7464 100644
--- a/lisp/mail/undigest.el
+++ b/lisp/mail/undigest.el
@@ -1,6 +1,6 @@
-;;; undigest.el --- digest-cracking support for the RMAIL mail reader
+;;; undigest.el --- digest-cracking support for the RMAIL mail reader  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1985-1986, 1994, 1996, 2001-2016 Free Software
+;; Copyright (C) 1985-1986, 1994, 1996, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
@@ -28,6 +28,7 @@
 
 ;;; Code:
 
+(eval-when-compile (require 'cl-lib))
 (require 'rmail)
 
 (defcustom rmail-forward-separator-regex
@@ -59,7 +60,8 @@ each undigestified message as markers.")
               (re-search-forward
                (concat
                 "^Content-type: multipart/digest;"
-                "\\s-* boundary=\"?\\([^\";\n]+\\)[\";\n]") head-end t)
+                "\\s-* boundary=\"?\\([^\";\n]+\\)[\";\n]")
+                head-end t)
               (search-forward (match-string 1) nil t)))
     ;; Ok, prolog separator found
     (let ((start (make-marker))
@@ -69,7 +71,8 @@ each undigestified message as markers.")
       (while (search-forward separator nil t)
        (move-marker start (match-beginning 0))
        (move-marker end (match-end 0))
-       (add-to-list 'result (cons (copy-marker start) (copy-marker end t))))
+       (cl-pushnew (cons (copy-marker start) (copy-marker end t))
+                    result :test #'equal))
       ;; Return the list of marker pairs
       (nreverse result))))
 
@@ -117,8 +120,8 @@ See rmail-digest-methods."
          (while (search-forward separator nil t)
            (move-marker start (match-beginning 0))
            (move-marker end (match-end 0))
-           (add-to-list 'result
-                        (cons (copy-marker start) (copy-marker end t))))
+           (cl-pushnew (cons (copy-marker start) (copy-marker end t))
+                        result :test #'equal))
          ;; Undo masking of separators inside digestified messages
          (goto-char (point-min))
          (while (search-forward
@@ -139,7 +142,8 @@ See rmail-digest-methods."
       (while (search-forward separator nil t)
        (move-marker start (match-beginning 0))
        (move-marker end (match-end 0))
-       (add-to-list 'result (cons (copy-marker start) (copy-marker end t))))
+       (cl-pushnew (cons (copy-marker start) (copy-marker end t))
+                    result :test #'equal))
       ;; Undo masking of separators inside digestified messages
       (goto-char (point-min))
       (while (search-forward "\n- -" nil t)
diff --git a/lisp/mail/unrmail.el b/lisp/mail/unrmail.el
index 1f7b862..2ff6646 100644
--- a/lisp/mail/unrmail.el
+++ b/lisp/mail/unrmail.el
@@ -1,6 +1,6 @@
 ;;; unrmail.el --- convert Rmail Babyl files to mbox files
 
-;; Copyright (C) 1992, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: mail
diff --git a/lisp/mail/uudecode.el b/lisp/mail/uudecode.el
index 6a45a13..e68acbd 100644
--- a/lisp/mail/uudecode.el
+++ b/lisp/mail/uudecode.el
@@ -1,6 +1,6 @@
 ;;; uudecode.el -- elisp native uudecode
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <address@hidden>
 ;; Keywords: uudecode news
diff --git a/lisp/mail/yenc.el b/lisp/mail/yenc.el
index a4ebd0d..c8e2d2c 100644
--- a/lisp/mail/yenc.el
+++ b/lisp/mail/yenc.el
@@ -1,6 +1,6 @@
 ;;; yenc.el --- elisp native yenc decoder
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Jesper Harder <address@hidden>
 ;; Keywords: yenc news
diff --git a/lisp/makesum.el b/lisp/makesum.el
index a65e5ae..48f51de 100644
--- a/lisp/makesum.el
+++ b/lisp/makesum.el
@@ -1,6 +1,6 @@
 ;;; makesum.el --- generate key binding summary for Emacs
 
-;; Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: help
diff --git a/lisp/man.el b/lisp/man.el
index a140e03..4f6e118 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -1,6 +1,6 @@
 ;;; man.el --- browse UNIX manual pages -*- lexical-binding: t -*-
 
-;; Copyright (C) 1993-1994, 1996-1997, 2001-2016 Free Software
+;; Copyright (C) 1993-1994, 1996-1997, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Barry A. Warsaw <address@hidden>
diff --git a/lisp/master.el b/lisp/master.el
index b7c41e8..07e9ee5 100644
--- a/lisp/master.el
+++ b/lisp/master.el
@@ -1,6 +1,6 @@
 ;;; master.el --- make a buffer the master over another buffer
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
 ;; Maintainer: Alex Schroeder <address@hidden>
diff --git a/lisp/mb-depth.el b/lisp/mb-depth.el
index 2eeca2d..57fe7ab 100644
--- a/lisp/mb-depth.el
+++ b/lisp/mb-depth.el
@@ -1,6 +1,6 @@
-;;; mb-depth.el --- Indicate minibuffer-depth in prompt
+;;; mb-depth.el --- Indicate minibuffer-depth in prompt -*- lexical-binding: t 
-*-
 ;;
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Miles Bader <address@hidden>
 ;; Keywords: convenience
@@ -45,13 +45,15 @@ and must return a string.")
 (defun minibuffer-depth-setup ()
   "Set up a minibuffer for `minibuffer-depth-indicate-mode'.
 The prompt should already have been inserted."
-  (when (> (minibuffer-depth) 1)
-    (setq minibuffer-depth-overlay (make-overlay (point-min) (1+ (point-min))))
-    (overlay-put minibuffer-depth-overlay 'before-string
-                (if minibuffer-depth-indicator-function
-                    (funcall minibuffer-depth-indicator-function 
(minibuffer-depth))
-                  (propertize (format "[%d]" (minibuffer-depth)) 'face 
'highlight)))
-    (overlay-put minibuffer-depth-overlay 'evaporate t)))
+  (let ((depth (minibuffer-depth)))
+    (when (> depth 1)
+      (let ((pos (point-min)))
+        (setq minibuffer-depth-overlay (make-overlay pos (1+ pos))))
+      (overlay-put minibuffer-depth-overlay 'before-string
+                   (if minibuffer-depth-indicator-function
+                       (funcall minibuffer-depth-indicator-function depth)
+                     (propertize (format "[%d]" depth) 'face 'highlight)))
+      (overlay-put minibuffer-depth-overlay 'evaporate t))))
 
 ;;;###autoload
 (define-minor-mode minibuffer-depth-indicate-mode
diff --git a/lisp/md4.el b/lisp/md4.el
index e75128b..23d00ab 100644
--- a/lisp/md4.el
+++ b/lisp/md4.el
@@ -1,6 +1,6 @@
-;;; md4.el --- MD4 Message Digest Algorithm.
+;;; md4.el --- MD4 Message Digest Algorithm. -*- lexical-binding: t -*-
 
-;; Copyright (C) 2001, 2004, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2004, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Taro Kawagishi <address@hidden>
 ;; Keywords: MD4
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index d21fa2c..28464f1 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1,6 +1,6 @@
 ;;; menu-bar.el --- define a default menu bar
 
-;; Copyright (C) 1993-1995, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Richard M. Stallman
 ;; Maintainer: address@hidden
@@ -530,14 +530,10 @@
                             (gui-backend-selection-exists-p 'CLIPBOARD))
                         (not buffer-read-only)))))
 
-(defvar gui-select-enable-clipboard)
-
 (defun clipboard-yank ()
   "Insert the clipboard contents, or the last stretch of killed text."
   (interactive "*")
-  (let ((gui-select-enable-clipboard t)
-        (interprogram-paste-function (or interprogram-paste-function
-                                         #'gui-selection-value)))
+  (let ((select-enable-clipboard t))
     (yank)))
 
 (defun clipboard-kill-ring-save (beg end &optional region)
@@ -545,9 +541,7 @@
 If the optional argument REGION is non-nil, the function ignores
 BEG and END, and saves the current region instead."
   (interactive "r\np")
-  (let ((gui-select-enable-clipboard t)
-        (interprogram-cut-function (or interprogram-cut-function
-                                       #'gui-select-text)))
+  (let ((select-enable-clipboard t))
     (kill-ring-save beg end region)))
 
 (defun clipboard-kill-region (beg end &optional region)
@@ -555,9 +549,7 @@ BEG and END, and saves the current region instead."
 If the optional argument REGION is non-nil, the function ignores
 BEG and END, and kills the current region instead."
   (interactive "r\np")
-  (let ((gui-select-enable-clipboard t)
-        (interprogram-cut-function (or interprogram-cut-function
-                                       #'gui-select-text)))
+  (let ((select-enable-clipboard t))
     (kill-region beg end region)))
 
 (defun menu-bar-enable-clipboard ()
diff --git a/lisp/mh-e/ChangeLog.1 b/lisp/mh-e/ChangeLog.1
index 7dde743..31a9ea7 100644
--- a/lisp/mh-e/ChangeLog.1
+++ b/lisp/mh-e/ChangeLog.1
@@ -11419,7 +11419,7 @@
        (dist): Leave release in current directory.
 
 
-  Copyright (C) 2003-2016 Free Software Foundation, Inc.
+  Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/mh-e/ChangeLog.2 b/lisp/mh-e/ChangeLog.2
index 0c0cda2..4871986 100644
--- a/lisp/mh-e/ChangeLog.2
+++ b/lisp/mh-e/ChangeLog.2
@@ -3673,7 +3673,7 @@
 
 See ChangeLog.1 for earlier changes.
 
-  Copyright (C) 2005-2016 Free Software Foundation, Inc.
+  Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/mh-e/mh-acros.el b/lisp/mh-e/mh-acros.el
index f306142..0c89efb 100644
--- a/lisp/mh-e/mh-acros.el
+++ b/lisp/mh-e/mh-acros.el
@@ -1,6 +1,6 @@
 ;;; mh-acros.el --- macros used in MH-E
 
-;; Copyright (C) 2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Satyaki Das <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-alias.el b/lisp/mh-e/mh-alias.el
index 968c33c..e2f747c 100644
--- a/lisp/mh-e/mh-alias.el
+++ b/lisp/mh-e/mh-alias.el
@@ -1,6 +1,6 @@
 ;;; mh-alias.el --- MH-E mail alias completion and expansion
 
-;; Copyright (C) 1994-1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Peter S. Galbraith <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-buffers.el b/lisp/mh-e/mh-buffers.el
index b1da47a..233f898 100644
--- a/lisp/mh-e/mh-buffers.el
+++ b/lisp/mh-e/mh-buffers.el
@@ -1,6 +1,6 @@
 ;;; mh-buffers.el --- MH-E buffer constants and utilities
 
-;; Copyright (C) 1993, 1995, 1997, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1993, 1995, 1997, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el
index 72980b7..c052398 100644
--- a/lisp/mh-e/mh-comp.el
+++ b/lisp/mh-e/mh-comp.el
@@ -1,6 +1,6 @@
 ;;; mh-comp.el --- MH-E functions for composing and sending messages
 
-;; Copyright (C) 1993, 1995, 1997, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1993, 1995, 1997, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el
index 21ff5cb..3f3990e 100644
--- a/lisp/mh-e/mh-compat.el
+++ b/lisp/mh-e/mh-compat.el
@@ -1,6 +1,6 @@
 ;;; mh-compat.el --- make MH-E compatible with various versions of Emacs
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Bill Wohler <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
@@ -283,16 +283,6 @@ DOCSTRING arguments."
 See documentation for `make-obsolete-variable' for a description
 of the arguments OBSOLETE-NAME, CURRENT-NAME, and perhaps WHEN
 and ACCESS-TYPE. This macro is used by XEmacs that lacks WHEN and
-ACCESS-TYPE arguments."
-  (if (featurep 'xemacs)
-      `(make-obsolete-variable ,obsolete-name ,current-name)
-    `(make-obsolete-variable ,obsolete-name ,current-name ,when ,access-type)))
-
-(defmacro mh-make-obsolete-variable (obsolete-name current-name &optional when 
access-type)
-  "Make the byte-compiler warn that OBSOLETE-NAME is obsolete.
-See documentation for `make-obsolete-variable' for a description
-of the arguments OBSOLETE-NAME, CURRENT-NAME, and perhaps WHEN
-and ACCESS-TYPE. This macro is used by XEmacs that lacks WHEN and
 ACCESS-TYPE arguments and by Emacs versions that lack ACCESS-TYPE,
 introduced in Emacs 24."
   (if (featurep 'xemacs)
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
index 12c674d..38558f2 100644
--- a/lisp/mh-e/mh-e.el
+++ b/lisp/mh-e/mh-e.el
@@ -1,6 +1,6 @@
 ;;; mh-e.el --- GNU Emacs interface to the MH mail system
 
-;; Copyright (C) 1985-1988, 1990, 1992-1995, 1997, 1999-2016 Free
+;; Copyright (C) 1985-1988, 1990, 1992-1995, 1997, 1999-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Author: Bill Wohler <address@hidden>
@@ -2330,7 +2330,7 @@ retracted--without question."
 (defcustom-mh mh-fetch-x-image-url nil
   "Control fetching of \"X-Image-URL:\" header field image.
 
-Ths option controls the fetching of the \"X-Image-URL:\" header
+This option controls the fetching of the \"X-Image-URL:\" header
 field image with the following values:
 
 Ask Before Fetching
diff --git a/lisp/mh-e/mh-folder.el b/lisp/mh-e/mh-folder.el
index e43aa1f..acef35d 100644
--- a/lisp/mh-e/mh-folder.el
+++ b/lisp/mh-e/mh-folder.el
@@ -1,6 +1,6 @@
 ;;; mh-folder.el --- MH-Folder mode
 
-;; Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Bill Wohler <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-funcs.el b/lisp/mh-e/mh-funcs.el
index 2e39569..5252f92 100644
--- a/lisp/mh-e/mh-funcs.el
+++ b/lisp/mh-e/mh-funcs.el
@@ -1,6 +1,6 @@
 ;;; mh-funcs.el --- MH-E functions not everyone will use right away
 
-;; Copyright (C) 1993, 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Bill Wohler <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-gnus.el b/lisp/mh-e/mh-gnus.el
index ec55cbb..3afdb75 100644
--- a/lisp/mh-e/mh-gnus.el
+++ b/lisp/mh-e/mh-gnus.el
@@ -1,6 +1,6 @@
 ;;; mh-gnus.el --- make MH-E compatible with various versions of Gnus
 
-;; Copyright (C) 2003-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Satyaki Das <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-identity.el b/lisp/mh-e/mh-identity.el
index 955b487..ecc7f7e 100644
--- a/lisp/mh-e/mh-identity.el
+++ b/lisp/mh-e/mh-identity.el
@@ -1,6 +1,6 @@
 ;;; mh-identity.el --- multiple identify support for MH-E
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Peter S. Galbraith <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-inc.el b/lisp/mh-e/mh-inc.el
index aedcf6b..a7ff8f3 100644
--- a/lisp/mh-e/mh-inc.el
+++ b/lisp/mh-e/mh-inc.el
@@ -1,6 +1,6 @@
 ;;; mh-inc.el --- MH-E "inc" and separate mail spool handling
 
-;; Copyright (C) 2003-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Peter S. Galbraith <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-junk.el b/lisp/mh-e/mh-junk.el
index 8e19ef2..54c3daa 100644
--- a/lisp/mh-e/mh-junk.el
+++ b/lisp/mh-e/mh-junk.el
@@ -1,6 +1,6 @@
 ;;; mh-junk.el --- MH-E interface to anti-spam measures
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Satyaki Das <address@hidden>,
 ;;         Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-letter.el b/lisp/mh-e/mh-letter.el
index 1388657..ca4ec39 100644
--- a/lisp/mh-e/mh-letter.el
+++ b/lisp/mh-e/mh-letter.el
@@ -1,6 +1,6 @@
 ;;; mh-letter.el --- MH-Letter mode
 
-;; Copyright (C) 1993, 1995, 1997, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1993, 1995, 1997, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-limit.el b/lisp/mh-e/mh-limit.el
index d271460..bc4a006 100644
--- a/lisp/mh-e/mh-limit.el
+++ b/lisp/mh-e/mh-limit.el
@@ -1,6 +1,6 @@
 ;;; mh-limit.el --- MH-E display limits
 
-;; Copyright (C) 2001-2003, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2003, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Peter S. Galbraith <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el
index b8d700d..7238de0 100644
--- a/lisp/mh-e/mh-mime.el
+++ b/lisp/mh-e/mh-mime.el
@@ -1,6 +1,6 @@
 ;;; mh-mime.el --- MH-E MIME support
 
-;; Copyright (C) 1993, 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Bill Wohler <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
@@ -56,7 +56,7 @@
 (autoload 'mail-content-type-get "mail-parse")
 (autoload 'mail-decode-encoded-word-string "mail-parse")
 (autoload 'mail-header-parse-content-type "mail-parse")
-(autoload 'mail-header-strip "mail-parse")
+(autoload 'mail-header-strip-cte "mail-parse")
 (autoload 'mail-strip-quoted-names "mail-utils")
 (autoload 'message-options-get "message")
 (autoload 'message-options-set "message")
@@ -580,14 +580,13 @@ If message has been encoded for transfer take that into 
account."
                                (message-fetch-field "Content-Type" t)))
             charset (mail-content-type-get ct 'charset)
             cte (message-fetch-field "Content-Transfer-Encoding")))
-    (when (stringp cte) (setq cte (mail-header-strip cte)))
+    (when (stringp cte) (setq cte (mail-header-strip-cte cte)))
     (when (or (not ct) (equal (car ct) "text/plain"))
       (save-restriction
         (narrow-to-region (min (1+ (mh-mail-header-end)) (point-max))
                           (point-max))
         (mm-decode-body charset
-                        (and cte (intern (downcase
-                                          (gnus-strip-whitespace cte))))
+                        (and cte (intern (downcase cte)))
                         (car ct))))))
 
 (defun mh-mime-display-part (handle)
diff --git a/lisp/mh-e/mh-print.el b/lisp/mh-e/mh-print.el
index 5aa7297..906899d 100644
--- a/lisp/mh-e/mh-print.el
+++ b/lisp/mh-e/mh-print.el
@@ -1,6 +1,6 @@
 ;;; mh-print.el --- MH-E printing support
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Jeffrey C Honig <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-scan.el b/lisp/mh-e/mh-scan.el
index a04ca88..1e708e5 100644
--- a/lisp/mh-e/mh-scan.el
+++ b/lisp/mh-e/mh-scan.el
@@ -1,6 +1,6 @@
 ;;; mh-scan.el --- MH-E scan line constants and utilities
 
-;; Copyright (C) 1993, 1995, 1997, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1993, 1995, 1997, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el
index d5a2d77..099f922 100644
--- a/lisp/mh-e/mh-search.el
+++ b/lisp/mh-e/mh-search.el
@@ -1,6 +1,6 @@
 ;;; mh-search  ---  MH-Search mode
 
-;; Copyright (C) 1993, 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Indexed search by Satyaki Das <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-seq.el b/lisp/mh-e/mh-seq.el
index 5acdc2e..6fc518b 100644
--- a/lisp/mh-e/mh-seq.el
+++ b/lisp/mh-e/mh-seq.el
@@ -1,6 +1,6 @@
 ;;; mh-seq.el --- MH-E sequences support
 
-;; Copyright (C) 1993, 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Bill Wohler <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-show.el b/lisp/mh-e/mh-show.el
index 26e8216..ab320ca 100644
--- a/lisp/mh-e/mh-show.el
+++ b/lisp/mh-e/mh-show.el
@@ -1,6 +1,6 @@
 ;;; mh-show.el --- MH-Show mode
 
-;; Copyright (C) 1993, 1995, 1997, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1993, 1995, 1997, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-speed.el b/lisp/mh-e/mh-speed.el
index 6fcd613..8d14d85 100644
--- a/lisp/mh-e/mh-speed.el
+++ b/lisp/mh-e/mh-speed.el
@@ -1,6 +1,6 @@
 ;;; mh-speed.el --- MH-E speedbar support
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Satyaki Das <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-thread.el b/lisp/mh-e/mh-thread.el
index 2a37cfc..b1b1512 100644
--- a/lisp/mh-e/mh-thread.el
+++ b/lisp/mh-e/mh-thread.el
@@ -1,6 +1,6 @@
 ;;; mh-thread.el --- MH-E threading support
 
-;; Copyright (C) 2002-2004, 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2004, 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Satyaki Das <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-tool-bar.el b/lisp/mh-e/mh-tool-bar.el
index e877a3b..07dd29b 100644
--- a/lisp/mh-e/mh-tool-bar.el
+++ b/lisp/mh-e/mh-tool-bar.el
@@ -1,6 +1,6 @@
 ;;; mh-tool-bar.el --- MH-E tool bar support
 
-;; Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Satyaki Das <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el
index 6697101..3bc5fef 100644
--- a/lisp/mh-e/mh-utils.el
+++ b/lisp/mh-e/mh-utils.el
@@ -1,6 +1,6 @@
 ;;; mh-utils.el --- MH-E general utilities
 
-;; Copyright (C) 1993, 1995, 1997, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1993, 1995, 1997, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Bill Wohler <address@hidden>
diff --git a/lisp/mh-e/mh-xface.el b/lisp/mh-e/mh-xface.el
index e761360..dbfaa35 100644
--- a/lisp/mh-e/mh-xface.el
+++ b/lisp/mh-e/mh-xface.el
@@ -1,6 +1,6 @@
 ;;; mh-xface.el --- MH-E X-Face and Face header field display
 
-;; Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Bill Wohler <address@hidden>
 ;; Maintainer: Bill Wohler <address@hidden>
diff --git a/lisp/midnight.el b/lisp/midnight.el
index 814621f..b9893fb 100644
--- a/lisp/midnight.el
+++ b/lisp/midnight.el
@@ -1,6 +1,6 @@
 ;;; midnight.el --- run something every midnight, e.g., kill old buffers  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Sam Steingold <address@hidden>
 ;; Maintainer: Sam Steingold <address@hidden>
diff --git a/lisp/minibuf-eldef.el b/lisp/minibuf-eldef.el
index 76ae11e..0968001 100644
--- a/lisp/minibuf-eldef.el
+++ b/lisp/minibuf-eldef.el
@@ -1,6 +1,6 @@
 ;;; minibuf-eldef.el --- Only show defaults in prompts when applicable  -*- 
lexical-binding: t -*-
 ;;
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Miles Bader <address@hidden>
 ;; Keywords: convenience
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 576b804..00722ec 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1,6 +1,6 @@
 ;;; minibuffer.el --- Minibuffer completion functions -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Package: emacs
diff --git a/lisp/misc.el b/lisp/misc.el
index 3a73977..dc47c37 100644
--- a/lisp/misc.el
+++ b/lisp/misc.el
@@ -1,6 +1,6 @@
 ;;; misc.el --- some nonstandard editing and utility commands for Emacs
 
-;; Copyright (C) 1989, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: convenience
diff --git a/lisp/misearch.el b/lisp/misearch.el
index 1b9cc92..884b330 100644
--- a/lisp/misearch.el
+++ b/lisp/misearch.el
@@ -1,6 +1,6 @@
 ;;; misearch.el --- isearch extensions for multi-buffer search
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Juri Linkov <address@hidden>
 ;; Keywords: matching
diff --git a/lisp/mouse-copy.el b/lisp/mouse-copy.el
index c0e5ace..44d9973 100644
--- a/lisp/mouse-copy.el
+++ b/lisp/mouse-copy.el
@@ -1,6 +1,6 @@
 ;;; mouse-copy.el --- one-click text copy and move
 
-;; Copyright (C) 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: John Heidemann <address@hidden>
 ;; Keywords: mouse
diff --git a/lisp/mouse-drag.el b/lisp/mouse-drag.el
index e46ea00..5a83e57 100644
--- a/lisp/mouse-drag.el
+++ b/lisp/mouse-drag.el
@@ -1,6 +1,6 @@
 ;;; mouse-drag.el --- use mouse-2 to do a new style of scrolling
 
-;; Copyright (C) 1996-1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: John Heidemann <address@hidden>
 ;; Keywords: mouse
diff --git a/lisp/mouse.el b/lisp/mouse.el
index db9f13b..0f1d446 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -1,6 +1,6 @@
 ;;; mouse.el --- window system-independent mouse support  -*- lexical-binding: 
t -*-
 
-;; Copyright (C) 1993-1995, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 1999-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: hardware, mouse
diff --git a/lisp/mpc.el b/lisp/mpc.el
index aa7fee6..e56e7e4 100644
--- a/lisp/mpc.el
+++ b/lisp/mpc.el
@@ -1,6 +1,6 @@
 ;;; mpc.el --- A client for the Music Player Daemon   -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: multimedia
diff --git a/lisp/msb.el b/lisp/msb.el
index 12edbbf..7b48af7 100644
--- a/lisp/msb.el
+++ b/lisp/msb.el
@@ -1,6 +1,6 @@
 ;;; msb.el --- customizable buffer-selection with multiple menus
 
-;; Copyright (C) 1993-1995, 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Lindberg <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/mwheel.el b/lisp/mwheel.el
index 9e03854..eaeb831 100644
--- a/lisp/mwheel.el
+++ b/lisp/mwheel.el
@@ -1,6 +1,6 @@
 ;;; mwheel.el --- Wheel mouse support
 
-;; Copyright (C) 1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000-2017 Free Software Foundation, Inc.
 ;; Maintainer: William M. Perry <address@hidden>
 ;; Keywords: mouse
 ;; Package: emacs
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index 07c3daf..cafdb3e 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -1,6 +1,6 @@
 ;;; ange-ftp.el --- transparent FTP support for GNU Emacs
 
-;; Copyright (C) 1989-1996, 1998, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1989-1996, 1998, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Andy Norman (address@hidden)
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index b2077d7..a7c879c 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -1,6 +1,6 @@
 ;;; browse-url.el --- pass a URL to a WWW browser
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Denis Howe <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/net/dbus.el b/lisp/net/dbus.el
index 2d7cd2f..d740829 100644
--- a/lisp/net/dbus.el
+++ b/lisp/net/dbus.el
@@ -1,6 +1,6 @@
 ;;; dbus.el --- Elisp bindings for D-Bus. -*- lexical-binding: t -*-
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 ;; Keywords: comm, hardware
diff --git a/lisp/net/dig.el b/lisp/net/dig.el
index 338afca..7e73367 100644
--- a/lisp/net/dig.el
+++ b/lisp/net/dig.el
@@ -1,6 +1,6 @@
 ;;; dig.el --- Domain Name System dig interface
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;; Keywords: DNS BIND dig comm
diff --git a/lisp/net/dns.el b/lisp/net/dns.el
index 487cfc9..8615813 100644
--- a/lisp/net/dns.el
+++ b/lisp/net/dns.el
@@ -1,6 +1,6 @@
 ;;; dns.el --- Domain Name Service lookups
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: network comm
diff --git a/lisp/net/eudc-bob.el b/lisp/net/eudc-bob.el
index fe0e3b8..661ef51 100644
--- a/lisp/net/eudc-bob.el
+++ b/lisp/net/eudc-bob.el
@@ -1,6 +1,6 @@
 ;;; eudc-bob.el --- Binary Objects Support for EUDC
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Oscar Figueiredo <address@hidden>
 ;;         Pavel Janík <address@hidden>
diff --git a/lisp/net/eudc-export.el b/lisp/net/eudc-export.el
index a50892d..2226732 100644
--- a/lisp/net/eudc-export.el
+++ b/lisp/net/eudc-export.el
@@ -1,6 +1,6 @@
 ;;; eudc-export.el --- functions to export EUDC query results
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Oscar Figueiredo <address@hidden>
 ;;         Pavel Janík <address@hidden>
diff --git a/lisp/net/eudc-hotlist.el b/lisp/net/eudc-hotlist.el
index 558ecb6..5c170d0 100644
--- a/lisp/net/eudc-hotlist.el
+++ b/lisp/net/eudc-hotlist.el
@@ -1,6 +1,6 @@
 ;;; eudc-hotlist.el --- hotlist management for EUDC
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Oscar Figueiredo <address@hidden>
 ;;         Pavel Janík <address@hidden>
diff --git a/lisp/net/eudc-vars.el b/lisp/net/eudc-vars.el
index 19da7ec..79d6f2e 100644
--- a/lisp/net/eudc-vars.el
+++ b/lisp/net/eudc-vars.el
@@ -1,6 +1,6 @@
 ;;; eudc-vars.el --- Emacs Unified Directory Client
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Oscar Figueiredo <address@hidden>
 ;;         Pavel Janík <address@hidden>
diff --git a/lisp/net/eudc.el b/lisp/net/eudc.el
index 22e48db..bdd69bf 100644
--- a/lisp/net/eudc.el
+++ b/lisp/net/eudc.el
@@ -1,6 +1,6 @@
 ;;; eudc.el --- Emacs Unified Directory Client
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Oscar Figueiredo <address@hidden>
 ;;         Pavel Janík <address@hidden>
diff --git a/lisp/net/eudcb-bbdb.el b/lisp/net/eudcb-bbdb.el
index 796391b..bfca103 100644
--- a/lisp/net/eudcb-bbdb.el
+++ b/lisp/net/eudcb-bbdb.el
@@ -1,6 +1,6 @@
 ;;; eudcb-bbdb.el --- Emacs Unified Directory Client - BBDB Backend
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Oscar Figueiredo <address@hidden>
 ;;         Pavel Janík <address@hidden>
diff --git a/lisp/net/eudcb-ldap.el b/lisp/net/eudcb-ldap.el
index ae0bb02..e1900e7 100644
--- a/lisp/net/eudcb-ldap.el
+++ b/lisp/net/eudcb-ldap.el
@@ -1,6 +1,6 @@
 ;;; eudcb-ldap.el --- Emacs Unified Directory Client - LDAP Backend
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Oscar Figueiredo <address@hidden>
 ;;         Pavel Janík <address@hidden>
diff --git a/lisp/net/eudcb-mab.el b/lisp/net/eudcb-mab.el
index 0f99ff0..43384e2 100644
--- a/lisp/net/eudcb-mab.el
+++ b/lisp/net/eudcb-mab.el
@@ -1,6 +1,6 @@
 ;;; eudcb-mab.el --- Emacs Unified Directory Client - AddressBook backend
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 ;; Maintainer: Thomas Fitzsimmons <address@hidden>
diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 7672bf0..f7e0634 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -1,6 +1,6 @@
 ;;; eww.el --- Emacs Web Wowser  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: html
@@ -59,7 +59,7 @@
   "Directory where files will downloaded."
   :version "24.4"
   :group 'eww
-  :type 'string)
+  :type 'directory)
 
 ;;;###autoload
 (defcustom eww-suggest-uris
@@ -81,7 +81,7 @@ duplicate entries (if any) removed."
   "Directory where bookmark files will be stored."
   :version "25.1"
   :group 'eww
-  :type 'string)
+  :type 'directory)
 
 (defcustom eww-desktop-remove-duplicates t
   "Whether to remove duplicates from the history when saving desktop data.
@@ -251,6 +251,29 @@ word(s) will be searched for via `eww-search-prefix'."
                          (if uris (format " (default %s)" (car uris)) "")
                          ": ")))
      (list (read-string prompt nil nil uris))))
+  (setq url (eww--dwim-expand-url url))
+  (pop-to-buffer-same-window
+   (if (eq major-mode 'eww-mode)
+       (current-buffer)
+     (get-buffer-create "*eww*")))
+  (eww-setup-buffer)
+  ;; Check whether the domain only uses "Highly Restricted" Unicode
+  ;; IDNA characters.  If not, transform to punycode to indicate that
+  ;; there may be funny business going on.
+  (let ((parsed (url-generic-parse-url url)))
+    (unless (puny-highly-restrictive-domain-p (url-host parsed))
+      (setf (url-host parsed) (puny-encode-domain (url-host parsed)))
+      (setq url (url-recreate-url parsed))))
+  (plist-put eww-data :url url)
+  (plist-put eww-data :title "")
+  (eww-update-header-line-format)
+  (let ((inhibit-read-only t))
+    (insert (format "Loading %s..." url))
+    (goto-char (point-min)))
+  (url-retrieve url 'eww-render
+               (list url nil (current-buffer))))
+
+(defun eww--dwim-expand-url (url)
   (setq url (string-trim url))
   (cond ((string-match-p "\\`file:/" url))
        ;; Don't mangle file: URLs at all.
@@ -275,26 +298,7 @@ word(s) will be searched for via `eww-search-prefix'."
                  (setq url (concat url "/"))))
            (setq url (concat eww-search-prefix
                              (replace-regexp-in-string " " "+" url))))))
-  (pop-to-buffer-same-window
-   (if (eq major-mode 'eww-mode)
-       (current-buffer)
-     (get-buffer-create "*eww*")))
-  (eww-setup-buffer)
-  ;; Check whether the domain only uses "Highly Restricted" Unicode
-  ;; IDNA characters.  If not, transform to punycode to indicate that
-  ;; there may be funny business going on.
-  (let ((parsed (url-generic-parse-url url)))
-    (unless (puny-highly-restrictive-domain-p (url-host parsed))
-      (setf (url-host parsed) (puny-encode-domain (url-host parsed)))
-      (setq url (url-recreate-url parsed))))
-  (plist-put eww-data :url url)
-  (plist-put eww-data :title "")
-  (eww-update-header-line-format)
-  (let ((inhibit-read-only t))
-    (insert (format "Loading %s..." url))
-    (goto-char (point-min)))
-  (url-retrieve url 'eww-render
-               (list url nil (current-buffer))))
+  url)
 
 ;;;###autoload (defalias 'browse-web 'eww)
 
@@ -351,16 +355,25 @@ Currently this means either text/html or 
application/xhtml+xml."
                        "utf-8"))))
         (data-buffer (current-buffer))
         last-coding-system-used)
-    ;; Save the https peer status.
     (with-current-buffer buffer
-      (plist-put eww-data :peer (plist-get status :peer)))
+      ;; Save the https peer status.
+      (plist-put eww-data :peer (plist-get status :peer))
+      ;; Make buffer listings more informative.
+      (setq list-buffers-directory url))
     (unwind-protect
        (progn
          (cond
            ((and eww-use-external-browser-for-content-type
                  (string-match-p eww-use-external-browser-for-content-type
                                  (car content-type)))
-            (eww-browse-with-external-browser url))
+            (erase-buffer)
+            (insert "<title>Unsupported content type</title>")
+            (insert (format "<h1>Content-type %s is unsupported</h1>"
+                            (car content-type)))
+            (insert (format "<a href=%S>Direct link to the document</a>"
+                            url))
+            (goto-char (point-min))
+           (eww-display-html charset url nil point buffer encode))
           ((eww-html-p (car content-type))
            (eww-display-html charset url nil point buffer encode))
           ((equal (car content-type) "application/pdf")
@@ -804,7 +817,10 @@ the like."
 ;;;###autoload
 (defun eww-browse-url (url &optional new-window)
   (when new-window
-    (pop-to-buffer-same-window (generate-new-buffer "*eww*"))
+    (pop-to-buffer-same-window
+     (generate-new-buffer
+      (format "*eww-%s*" (url-host (url-generic-parse-url
+                                    (eww--dwim-expand-url url))))))
     (eww-mode))
   (eww url))
 
@@ -835,6 +851,8 @@ the like."
       (erase-buffer)
       (insert text)
       (goto-char (plist-get elem :point))
+      ;; Make buffer listings more informative.
+      (setq list-buffers-directory (plist-get elem :url))
       (eww-update-header-line-format))))
 
 (defun eww-next-url ()
@@ -1483,6 +1501,7 @@ Differences in #targets are ignored."
 (defun eww-download ()
   "Download URL under point to `eww-download-directory'."
   (interactive)
+  (access-file eww-download-directory "Download failed")
   (let ((url (get-text-property (point) 'shr-url)))
     (if (not url)
         (message "No URL under point")
diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el
index 9ed1c8b..d0dab73 100644
--- a/lisp/net/gnutls.el
+++ b/lisp/net/gnutls.el
@@ -1,6 +1,6 @@
 ;;; gnutls.el --- Support SSL/TLS connections through GnuTLS
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Ted Zlatanov <address@hidden>
 ;; Keywords: comm, tls, ssl, encryption
diff --git a/lisp/net/goto-addr.el b/lisp/net/goto-addr.el
index bc3c403..2c2274d 100644
--- a/lisp/net/goto-addr.el
+++ b/lisp/net/goto-addr.el
@@ -1,6 +1,6 @@
 ;;; goto-addr.el --- click to browse URL or to send to e-mail address
 
-;; Copyright (C) 1995, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Ding <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/net/hmac-def.el b/lisp/net/hmac-def.el
index c5df4fd..2466834 100644
--- a/lisp/net/hmac-def.el
+++ b/lisp/net/hmac-def.el
@@ -1,6 +1,6 @@
 ;;; hmac-def.el --- A macro for defining HMAC functions.
 
-;; Copyright (C) 1999, 2001, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Shuhei KOBAYASHI <address@hidden>
 ;; Keywords: HMAC, RFC2104
diff --git a/lisp/net/hmac-md5.el b/lisp/net/hmac-md5.el
index dfeeeaa..53fa153 100644
--- a/lisp/net/hmac-md5.el
+++ b/lisp/net/hmac-md5.el
@@ -1,6 +1,6 @@
 ;;; hmac-md5.el --- Compute HMAC-MD5.
 
-;; Copyright (C) 1999, 2001, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Shuhei KOBAYASHI <address@hidden>
 ;; Keywords: HMAC, RFC2104, HMAC-MD5, MD5, KEYED-MD5, CRAM-MD5
diff --git a/lisp/net/html2text.el b/lisp/net/html2text.el
index 2b1c205..87c71dc 100644
--- a/lisp/net/html2text.el
+++ b/lisp/net/html2text.el
@@ -1,6 +1,6 @@
 ;;; html2text.el --- a simple html to plain text converter -*- coding: utf-8 
-*-
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Joakim Hove <address@hidden>
 
diff --git a/lisp/net/imap.el b/lisp/net/imap.el
index e5a14d7..ada2c47 100644
--- a/lisp/net/imap.el
+++ b/lisp/net/imap.el
@@ -1,6 +1,6 @@
 ;;; imap.el --- imap library
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;; Keywords: mail
diff --git a/lisp/net/ldap.el b/lisp/net/ldap.el
index d08fdbe..d530338 100644
--- a/lisp/net/ldap.el
+++ b/lisp/net/ldap.el
@@ -1,6 +1,6 @@
 ;;; ldap.el --- client interface to LDAP for Emacs
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Oscar Figueiredo <address@hidden>
 ;; Maintainer: address@hidden
@@ -470,18 +470,17 @@ Additional search parameters can be specified through
   (or host
       (setq host ldap-default-host)
       (error "No LDAP host specified"))
-  (let ((host-plist (cdr (assoc host ldap-host-parameters-alist)))
-       result)
-    (setq result (ldap-search-internal `(host ,host
+  (let* ((host-plist (cdr (assoc host ldap-host-parameters-alist)))
+         (result (ldap-search-internal `(host ,host
                                         filter ,filter
                                          attributes ,attributes
                                          attrsonly ,attrsonly
                                          withdn ,withdn
-                                         ,@host-plist)))
+                                         ,@host-plist))))
     (if ldap-ignore-attribute-codings
        result
       (mapcar (lambda (record)
-               (mapcar 'ldap-decode-attribute record))
+               (mapcar #'ldap-decode-attribute record))
              result))))
 
 (defun ldap-password-read (host)
diff --git a/lisp/net/mailcap.el b/lisp/net/mailcap.el
index f71d7ba..4e53b5a 100644
--- a/lisp/net/mailcap.el
+++ b/lisp/net/mailcap.el
@@ -1,6 +1,6 @@
 ;;; mailcap.el --- MIME media types configuration
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: William M. Perry <address@hidden>
 ;;     Lars Magne Ingebrigtsen <address@hidden>
diff --git a/lisp/net/mairix.el b/lisp/net/mairix.el
index c6e7823..00806a1 100644
--- a/lisp/net/mairix.el
+++ b/lisp/net/mairix.el
@@ -1,6 +1,6 @@
 ;;; mairix.el --- Mairix interface for Emacs
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: David Engster <address@hidden>
 ;; Keywords: mail searching
diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el
index 73d6ff4..06b67dc 100644
--- a/lisp/net/net-utils.el
+++ b/lisp/net/net-utils.el
@@ -1,6 +1,6 @@
 ;;; net-utils.el --- network functions
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author:  Peter Breton <address@hidden>
 ;; Created: Sun Mar 16 1997
diff --git a/lisp/net/netrc.el b/lisp/net/netrc.el
index 274a038..a30d9f6 100644
--- a/lisp/net/netrc.el
+++ b/lisp/net/netrc.el
@@ -1,5 +1,5 @@
 ;;; netrc.el --- .netrc parsing functionality
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: news
diff --git a/lisp/net/network-stream.el b/lisp/net/network-stream.el
index 657672d..bf60eee 100644
--- a/lisp/net/network-stream.el
+++ b/lisp/net/network-stream.el
@@ -1,6 +1,6 @@
 ;;; network-stream.el --- open network processes, possibly with encryption -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: network
@@ -139,6 +139,10 @@ a greeting from the server.
 :nowait, if non-nil, says the connection should be made
 asynchronously, if possible.
 
+:shell-command is a format-spec string that can be used if :type
+is `shell'.  It has two specs, %s for host and %p for port
+number.  Example: \"ssh gateway nc %s %p\".
+
 :tls-parameters is a list that should be supplied if you're
 opening a TLS connection.  The first element is the TLS
 type (either `gnutls-x509pki' or `gnutls-anon'), and the
diff --git a/lisp/net/newst-backend.el b/lisp/net/newst-backend.el
index 41b2172..f38c72a 100644
--- a/lisp/net/newst-backend.el
+++ b/lisp/net/newst-backend.el
@@ -1,6 +1,6 @@
 ;;; newst-backend.el --- Retrieval backend for newsticker.
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author:      Ulf Jasper <address@hidden>
 ;; Filename:    newst-backend.el
@@ -2124,15 +2124,12 @@ which the item got."
       (setq item (list title desc link time age position preformatted-contents
                        preformatted-title extra-elements))
       ;;(newsticker--debug-msg "Adding item %s" item)
-      (catch 'found
-        (mapc (lambda (this-feed)
-                (when (eq (car this-feed) feed-name-symbol)
-                  (setcdr this-feed (nconc (cdr this-feed) (list item)))
-                  (throw 'found this-feed)))
-              data)
-        ;; the feed is not contained
-        (add-to-list 'data (list feed-name-symbol item) t))))
-  data)
+      (let ((this-feed (assq feed-name-symbol data)))
+        (if this-feed
+            (setcdr this-feed (nconc (cdr this-feed) (list item)))
+          ;; The feed is not contained.
+          (setq data (append data (list (list feed-name-symbol item)))))))
+    data))
 
 (defun newsticker--cache-remove (data feed-symbol age)
   "Remove all entries from DATA in the feed FEED-SYMBOL with AGE.
diff --git a/lisp/net/newst-plainview.el b/lisp/net/newst-plainview.el
index 17153f0..eab3e24 100644
--- a/lisp/net/newst-plainview.el
+++ b/lisp/net/newst-plainview.el
@@ -1,6 +1,6 @@
 ;;; newst-plainview.el --- Single buffer frontend for newsticker.
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author:      Ulf Jasper <address@hidden>
 ;; Filename:    newst-plainview.el
diff --git a/lisp/net/newst-reader.el b/lisp/net/newst-reader.el
index 9c29216..c781f0d 100644
--- a/lisp/net/newst-reader.el
+++ b/lisp/net/newst-reader.el
@@ -1,6 +1,6 @@
 ;;; newst-reader.el --- Generic RSS reader functions.
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author:      Ulf Jasper <address@hidden>
 ;; Filename:    newst-reader.el
diff --git a/lisp/net/newst-ticker.el b/lisp/net/newst-ticker.el
index d7e7a44..93198e3 100644
--- a/lisp/net/newst-ticker.el
+++ b/lisp/net/newst-ticker.el
@@ -1,6 +1,6 @@
 ;; newst-ticker.el --- mode line ticker for newsticker.
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author:      Ulf Jasper <address@hidden>
 ;; Filename:    newst-ticker.el
diff --git a/lisp/net/newst-treeview.el b/lisp/net/newst-treeview.el
index c995af5..e93da3e 100644
--- a/lisp/net/newst-treeview.el
+++ b/lisp/net/newst-treeview.el
@@ -1,6 +1,6 @@
 ;;; newst-treeview.el --- Treeview frontend for newsticker.  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author:      Ulf Jasper <address@hidden>
 ;; Filename:    newst-treeview.el
diff --git a/lisp/net/newsticker.el b/lisp/net/newsticker.el
index 7eff422..971bdf6 100644
--- a/lisp/net/newsticker.el
+++ b/lisp/net/newsticker.el
@@ -1,6 +1,6 @@
 ;;; newsticker.el --- A Newsticker for Emacs. -*- lexical-binding: t -*-
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author:      Ulf Jasper <address@hidden>
 ;; Filename:    newsticker.el
diff --git a/lisp/net/nsm.el b/lisp/net/nsm.el
index 5928ab3..ccb596f 100644
--- a/lisp/net/nsm.el
+++ b/lisp/net/nsm.el
@@ -1,6 +1,6 @@
 ;;; nsm.el --- Network Security Manager
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: encryption, security, network
diff --git a/lisp/net/ntlm.el b/lisp/net/ntlm.el
index e272002..4baa8f2 100644
--- a/lisp/net/ntlm.el
+++ b/lisp/net/ntlm.el
@@ -1,6 +1,6 @@
 ;;; ntlm.el --- NTLM (NT LanManager) authentication support
 
-;; Copyright (C) 2001, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Taro Kawagishi <address@hidden>
 ;; Maintainer: Thomas Fitzsimmons <address@hidden>
diff --git a/lisp/net/pinentry.el b/lisp/net/pinentry.el
index 082a9c8..3e43b7d 100644
--- a/lisp/net/pinentry.el
+++ b/lisp/net/pinentry.el
@@ -1,6 +1,6 @@
 ;;; pinentry.el --- GnuPG Pinentry server implementation -*- lexical-binding: 
t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Version: 0.1
diff --git a/lisp/net/pop3.el b/lisp/net/pop3.el
index 3964288..6230a15 100644
--- a/lisp/net/pop3.el
+++ b/lisp/net/pop3.el
@@ -1,6 +1,6 @@
 ;;; pop3.el --- Post Office Protocol (RFC 1460) interface
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Richard L. Pieri <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/net/puny.el b/lisp/net/puny.el
index 50bde85..c718d95 100644
--- a/lisp/net/puny.el
+++ b/lisp/net/puny.el
@@ -1,6 +1,6 @@
 ;;; puny.el --- translate non-ASCII domain names to ASCII
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: mail, net
diff --git a/lisp/net/quickurl.el b/lisp/net/quickurl.el
index 773589a..652eb2f 100644
--- a/lisp/net/quickurl.el
+++ b/lisp/net/quickurl.el
@@ -1,6 +1,6 @@
 ;;; quickurl.el --- insert a URL based on text at point in buffer
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Pearson <address@hidden>
 ;; Maintainer: Dave Pearson <address@hidden>
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index 66e6326..ddff25c 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -1,6 +1,6 @@
 ;;; rcirc.el --- default, simple IRC client          -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Ryan Yeske <address@hidden>
 ;; Maintainers: Ryan Yeske <address@hidden>,
diff --git a/lisp/net/rfc2104.el b/lisp/net/rfc2104.el
index d579f8f..71cf5bd 100644
--- a/lisp/net/rfc2104.el
+++ b/lisp/net/rfc2104.el
@@ -1,6 +1,6 @@
 ;;; rfc2104.el --- RFC2104 Hashed Message Authentication Codes
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;; Keywords: mail
diff --git a/lisp/net/rlogin.el b/lisp/net/rlogin.el
index 921ceff..a07c490 100644
--- a/lisp/net/rlogin.el
+++ b/lisp/net/rlogin.el
@@ -1,6 +1,6 @@
 ;;; rlogin.el --- remote login interface
 
-;; Copyright (C) 1992-1995, 1997-1998, 2001-2016 Free Software
+;; Copyright (C) 1992-1995, 1997-1998, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Noah Friedman
diff --git a/lisp/net/sasl-cram.el b/lisp/net/sasl-cram.el
index 1ac72fe..cd6c7e1 100644
--- a/lisp/net/sasl-cram.el
+++ b/lisp/net/sasl-cram.el
@@ -1,6 +1,6 @@
 ;;; sasl-cram.el --- CRAM-MD5 module for the SASL client framework
 
-;; Copyright (C) 2000, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;;     Kenichi OKADA <address@hidden>
diff --git a/lisp/net/sasl-digest.el b/lisp/net/sasl-digest.el
index 0c77f00..445d4bf 100644
--- a/lisp/net/sasl-digest.el
+++ b/lisp/net/sasl-digest.el
@@ -1,6 +1,6 @@
 ;;; sasl-digest.el --- DIGEST-MD5 module for the SASL client framework
 
-;; Copyright (C) 2000, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;;     Kenichi OKADA <address@hidden>
diff --git a/lisp/net/sasl-ntlm.el b/lisp/net/sasl-ntlm.el
index 66b6ab5..cb6961b 100644
--- a/lisp/net/sasl-ntlm.el
+++ b/lisp/net/sasl-ntlm.el
@@ -1,6 +1,6 @@
 ;;; sasl-ntlm.el --- NTLM (NT Lan Manager) module for the SASL client framework
 
-;; Copyright (C) 2000, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Taro Kawagishi <address@hidden>
 ;; Keywords: SASL, NTLM
diff --git a/lisp/net/sasl-scram-rfc.el b/lisp/net/sasl-scram-rfc.el
index 328c2d4..1dc4803 100644
--- a/lisp/net/sasl-scram-rfc.el
+++ b/lisp/net/sasl-scram-rfc.el
@@ -1,6 +1,6 @@
 ;;; sasl-scram-rfc.el --- SCRAM-SHA-1 module for the SASL client framework  
-*- lexical-binding: t; -*-
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Magnus Henoch <address@hidden>
 ;; Package: sasl
diff --git a/lisp/net/sasl.el b/lisp/net/sasl.el
index 419fef0..6128b91 100644
--- a/lisp/net/sasl.el
+++ b/lisp/net/sasl.el
@@ -1,6 +1,6 @@
 ;;; sasl.el --- SASL client framework
 
-;; Copyright (C) 2000, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Keywords: SASL
diff --git a/lisp/net/secrets.el b/lisp/net/secrets.el
index ea26a52..4d6e48b 100644
--- a/lisp/net/secrets.el
+++ b/lisp/net/secrets.el
@@ -1,6 +1,6 @@
 ;;; secrets.el --- Client interface to gnome-keyring and kwallet. -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 ;; Keywords: comm password passphrase
diff --git a/lisp/net/shr-color.el b/lisp/net/shr-color.el
index 67e3b90..cb081cb 100644
--- a/lisp/net/shr-color.el
+++ b/lisp/net/shr-color.el
@@ -1,6 +1,6 @@
 ;;; shr-color.el --- Simple HTML Renderer color management
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Julien Danjou <address@hidden>
 ;; Keywords: html
diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 9ea143d..b7c4828 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -1,6 +1,6 @@
 ;;; shr.el --- Simple HTML Renderer -*- lexical-binding: t -*-
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: html
@@ -96,8 +96,9 @@ If nil, don't draw horizontal table lines."
 (defcustom shr-width nil
   "Frame width to use for rendering.
 May either be an integer specifying a fixed width in characters,
-or nil, meaning that the full width of the window should be
-used."
+or nil, meaning that the full width of the window should be used.
+If `shr-use-fonts' is set, the mean character width is used to
+compute the pixel width, which is used instead."
   :version "25.1"
   :type '(choice (integer :tag "Fixed width in characters")
                 (const   :tag "Use the width of the window" nil))
@@ -978,7 +979,7 @@ element is the data blob and the second element is the 
content-type."
                      (create-image data nil t :ascent 100
                                    :format content-type))
                     ((eq content-type 'image/svg+xml)
-                     (create-image data 'svg t :ascent 100))
+                     (create-image data 'imagemagick t :ascent 100))
                     ((eq size 'full)
                      (ignore-errors
                        (shr-rescale-image data content-type
@@ -1011,18 +1012,25 @@ element is the data blob and the second element is the 
content-type."
        image)
     (insert (or alt ""))))
 
-(defun shr-rescale-image (data content-type width height)
+(defun shr-rescale-image (data content-type width height
+                               &optional max-width max-height)
   "Rescale DATA, if too big, to fit the current buffer.
-WIDTH and HEIGHT are the sizes given in the HTML data, if any."
+WIDTH and HEIGHT are the sizes given in the HTML data, if any.
+
+The size of the displayed image will not exceed
+MAX-WIDTH/MAX-HEIGHT.  If not given, use the current window
+width/height instead."
   (if (or (not (fboundp 'imagemagick-types))
           (not (get-buffer-window (current-buffer))))
       (create-image data nil t :ascent 100)
     (let* ((edges (window-inside-pixel-edges
                    (get-buffer-window (current-buffer))))
            (max-width (truncate (* shr-max-image-proportion
-                                   (- (nth 2 edges) (nth 0 edges)))))
+                                   (or max-width
+                                       (- (nth 2 edges) (nth 0 edges))))))
            (max-height (truncate (* shr-max-image-proportion
-                                    (- (nth 3 edges) (nth 1 edges)))))
+                                    (or max-height
+                                        (- (nth 3 edges) (nth 1 edges))))))
            (scaling (image-compute-scaling-factor image-scaling-factor)))
       (when (or (and width
                      (> width max-width))
@@ -1059,8 +1067,7 @@ Return a string with image data."
     (when (ignore-errors
            (url-cache-extract (url-cache-create-filename (shr-encode-url url)))
            t)
-      (when (or (search-forward "\n\n" nil t)
-               (search-forward "\r\n\r\n" nil t))
+      (when (re-search-forward "\r?\n\r?\n" nil t)
        (shr-parse-image-data)))))
 
 (declare-function libxml-parse-xml-region "xml.c"
@@ -1079,9 +1086,12 @@ Return a string with image data."
                            obarray)))))))
     ;; SVG images may contain references to further images that we may
     ;; want to block.  So special-case these by parsing the XML data
-    ;; and remove the blocked bits.
-    (when (eq content-type 'image/svg+xml)
+    ;; and remove anything that looks like a blocked bit.
+    (when (and shr-blocked-images
+               (eq content-type 'image/svg+xml))
       (setq data
+            ;; Note that libxml2 doesn't parse everything perfectly,
+            ;; so glitches may occur during this transformation.
            (shr-dom-to-xml
             (libxml-parse-xml-region (point) (point-max)))))
     (list data content-type)))
diff --git a/lisp/net/sieve-manage.el b/lisp/net/sieve-manage.el
index 8f7bd44..1a54e1a 100644
--- a/lisp/net/sieve-manage.el
+++ b/lisp/net/sieve-manage.el
@@ -1,6 +1,6 @@
 ;;; sieve-manage.el --- Implementation of the managesieve protocol in elisp
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;;         Albert Krewinkel <address@hidden>
diff --git a/lisp/net/sieve-mode.el b/lisp/net/sieve-mode.el
index 6aa1b20..87bb3a2 100644
--- a/lisp/net/sieve-mode.el
+++ b/lisp/net/sieve-mode.el
@@ -1,6 +1,6 @@
 ;;; sieve-mode.el --- Sieve code editing commands for Emacs
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 
diff --git a/lisp/net/sieve.el b/lisp/net/sieve.el
index d126d84..665a0a8 100644
--- a/lisp/net/sieve.el
+++ b/lisp/net/sieve.el
@@ -1,6 +1,6 @@
 ;;; sieve.el --- Utilities to manage sieve scripts
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 
diff --git a/lisp/net/snmp-mode.el b/lisp/net/snmp-mode.el
index 4afc460..e6a27f4 100644
--- a/lisp/net/snmp-mode.el
+++ b/lisp/net/snmp-mode.el
@@ -1,6 +1,6 @@
 ;;; snmp-mode.el --- SNMP & SNMPv2 MIB major mode
 
-;; Copyright (C) 1995, 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Paul D. Smith <address@hidden>
 ;; Keywords: data
diff --git a/lisp/net/soap-client.el b/lisp/net/soap-client.el
index f8973a3..5d36cfa 100644
--- a/lisp/net/soap-client.el
+++ b/lisp/net/soap-client.el
@@ -1,6 +1,6 @@
 ;;; soap-client.el --- Access SOAP web services       -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Alexandru Harsanyi <address@hidden>
 ;; Author: Thomas Fitzsimmons <address@hidden>
diff --git a/lisp/net/soap-inspect.el b/lisp/net/soap-inspect.el
index 9e7947a..db83cf8 100644
--- a/lisp/net/soap-inspect.el
+++ b/lisp/net/soap-inspect.el
@@ -1,6 +1,6 @@
 ;;; soap-inspect.el --- Interactive WSDL inspector    -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Alexandru Harsanyi <address@hidden>
 ;; Created: October 2010
diff --git a/lisp/net/socks.el b/lisp/net/socks.el
index f2a8fc3..f18e695 100644
--- a/lisp/net/socks.el
+++ b/lisp/net/socks.el
@@ -1,6 +1,6 @@
 ;;; socks.el --- A Socks v5 Client for Emacs
 
-;; Copyright (C) 1996-2000, 2002, 2007-2016 Free Software Foundation,
+;; Copyright (C) 1996-2000, 2002, 2007-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: William M. Perry <address@hidden>
diff --git a/lisp/net/starttls.el b/lisp/net/starttls.el
index b925590..4de3d69 100644
--- a/lisp/net/starttls.el
+++ b/lisp/net/starttls.el
@@ -1,6 +1,6 @@
 ;;; starttls.el --- STARTTLS functions
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Author: Simon Josefsson <address@hidden>
diff --git a/lisp/net/telnet.el b/lisp/net/telnet.el
index 95c32a5..b38ef6c 100644
--- a/lisp/net/telnet.el
+++ b/lisp/net/telnet.el
@@ -1,6 +1,6 @@
 ;;; telnet.el --- run a telnet session from within an Emacs buffer
 
-;; Copyright (C) 1985, 1988, 1992, 1994, 2001-2016 Free Software
+;; Copyright (C) 1985, 1988, 1992, 1994, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: William F. Schelter
diff --git a/lisp/net/tls.el b/lisp/net/tls.el
index f1219fd..2273d13 100644
--- a/lisp/net/tls.el
+++ b/lisp/net/tls.el
@@ -1,6 +1,6 @@
 ;;; tls.el --- TLS/SSL support via wrapper around GnuTLS
 
-;; Copyright (C) 1996-1999, 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;; Keywords: comm, tls, gnutls, ssl
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index a4218c2..846b195 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -1,6 +1,6 @@
 ;;; tramp-adb.el --- Functions for calling Android Debug Bridge from Tramp
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Jürgen Hötzel <address@hidden>
 ;; Keywords: comm, processes
diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el
index 0d90017..5205ece 100644
--- a/lisp/net/tramp-cache.el
+++ b/lisp/net/tramp-cache.el
@@ -1,6 +1,6 @@
 ;;; tramp-cache.el --- file information caching for Tramp
 
-;; Copyright (C) 2000, 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Daniel Pittman <address@hidden>
 ;;         Michael Albinus <address@hidden>
diff --git a/lisp/net/tramp-cmds.el b/lisp/net/tramp-cmds.el
index 208859d..05adaa4 100644
--- a/lisp/net/tramp-cmds.el
+++ b/lisp/net/tramp-cmds.el
@@ -1,6 +1,6 @@
 ;;; tramp-cmds.el --- Interactive commands for Tramp
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 ;; Keywords: comm, processes
diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el
index 9f1c64d..8e5b3e4 100644
--- a/lisp/net/tramp-compat.el
+++ b/lisp/net/tramp-compat.el
@@ -1,6 +1,6 @@
 ;;; tramp-compat.el --- Tramp compatibility functions
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 ;; Keywords: comm, processes
@@ -349,34 +349,35 @@ This is a string of ten letters or dashes as in ls -l."
 
 ;; `file-name-quoted-p', `file-name-quote' and `file-name-unquote' are
 ;; introduced in Emacs 26.
-(if (fboundp 'file-name-quoted-p)
-    (defalias 'tramp-compat-file-name-quoted-p 'file-name-quoted-p)
-  (defsubst tramp-compat-file-name-quoted-p (name)
-    "Whether NAME is quoted with prefix \"/:\".
+(eval-and-compile
+  (if (fboundp 'file-name-quoted-p)
+      (defalias 'tramp-compat-file-name-quoted-p 'file-name-quoted-p)
+    (defsubst tramp-compat-file-name-quoted-p (name)
+      "Whether NAME is quoted with prefix \"/:\".
 If NAME is a remote file name, check the local part of NAME."
-    (string-match "^/:" (or (file-remote-p name 'localname) name))))
+      (string-match "^/:" (or (file-remote-p name 'localname) name))))
 
-(if (fboundp 'file-name-quote)
-    (defalias 'tramp-compat-file-name-quote 'file-name-quote)
-  (defsubst tramp-compat-file-name-quote (name)
-    "Add the quotation prefix \"/:\" to file NAME.
+  (if (fboundp 'file-name-quote)
+      (defalias 'tramp-compat-file-name-quote 'file-name-quote)
+    (defsubst tramp-compat-file-name-quote (name)
+      "Add the quotation prefix \"/:\" to file NAME.
 If NAME is a remote file name, the local part of NAME is quoted."
-    (concat
-     (file-remote-p name) "/:" (or (file-remote-p name 'localname) name))))
+      (concat
+       (file-remote-p name) "/:" (or (file-remote-p name 'localname) name))))
 
-(if (fboundp 'file-name-unquote)
-    (defalias 'tramp-compat-file-name-unquote 'file-name-unquote)
-  (defsubst tramp-compat-file-name-unquote (name)
-    "Remove quotation prefix \"/:\" from file NAME.
+  (if (fboundp 'file-name-unquote)
+      (defalias 'tramp-compat-file-name-unquote 'file-name-unquote)
+    (defsubst tramp-compat-file-name-unquote (name)
+      "Remove quotation prefix \"/:\" from file NAME.
 If NAME is a remote file name, the local part of NAME is unquoted."
-    (save-match-data
-      (let ((localname (or (file-remote-p name 'localname) name)))
-       (when (tramp-compat-file-name-quoted-p localname)
-         (setq
-          localname
-          (replace-match
-           (if (= (length localname) 2) "/" "") nil t localname)))
-       (concat (file-remote-p name) localname)))))
+      (save-match-data
+       (let ((localname (or (file-remote-p name 'localname) name)))
+         (when (tramp-compat-file-name-quoted-p localname)
+           (setq
+            localname
+            (replace-match
+             (if (= (length localname) 2) "/" "") nil t localname)))
+         (concat (file-remote-p name) localname))))))
 
 (provide 'tramp-compat)
 
diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el
index 20a12eb..85e4f2b 100644
--- a/lisp/net/tramp-ftp.el
+++ b/lisp/net/tramp-ftp.el
@@ -1,6 +1,6 @@
 ;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 ;; Keywords: comm, processes
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index 37aba59..dd42d9c 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -1,6 +1,6 @@
 ;;; tramp-gvfs.el --- Tramp access functions for GVFS daemon
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 ;; Keywords: comm, processes
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 57cb6e1..a3641c6 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -1,6 +1,6 @@
 ;;; tramp-sh.el --- Tramp access functions for (s)sh-like connections
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; (copyright statements below in code to be updated with the above notice)
 
@@ -794,7 +794,7 @@ on the remote host.")
 (defconst tramp-perl-encode
   "%s -e '
 # This script contributed by Juanma Barranquero <address@hidden>.
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 Free Software Foundation, Inc.
 use strict;
 
 my %%trans = do {
@@ -832,7 +832,7 @@ This string is passed to `format', so percent characters 
need to be doubled.")
 (defconst tramp-perl-decode
   "%s -e '
 # This script contributed by Juanma Barranquero <address@hidden>.
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 Free Software Foundation, Inc.
 use strict;
 
 my %%trans = do {
@@ -4655,7 +4655,11 @@ connection if a previous connection has died for some 
reason."
 
          ;; If `non-essential' is non-nil, don't reopen a new connection.
          ;; This variable has been introduced with Emacs 24.1.
-         (when (and (boundp 'non-essential) (symbol-value 'non-essential))
+         ;; We check this for the process related to
+         ;; `tramp-buffer-name'; otherwise `start-file-process'
+         ;; wouldn't run ever when `non-essential' is non-nil.
+         (when (and (boundp 'non-essential) (symbol-value 'non-essential)
+                    (null (get-process (tramp-buffer-name vec))))
            (throw 'non-essential 'non-essential))
 
          (with-tramp-progress-reporter
@@ -5353,12 +5357,14 @@ Nonexistent directories are removed from spec."
       ;; work on older AIX systems.  Recent GNU stat versions (8.24?)
       ;; use shell quoted format for "%N", we check the boundaries "`"
       ;; and "'", therefore.  See Bug#23422 in coreutils.
+      ;; Since GNU stat 8.26, environment variable QUOTING_STYLE is
+      ;; supported.
       (when result
-       (setq tmp
-             (tramp-send-command-and-read
-              vec (format "%s -c '(\"%%N\" %%s)' /" result) 'noerror))
+       (setq result (concat "env QUOTING_STYLE=locale " result)
+             tmp (tramp-send-command-and-read
+                  vec (format "%s -c '(\"%%N\" %%s)' /" result) 'noerror))
        (unless (and (listp tmp) (stringp (car tmp))
-                    (string-match "^`/'$" (car tmp))
+                    (string-match "^\\(`/'\\|‘/’\\)$" (car tmp))
                     (integerp (cadr tmp)))
          (setq result nil)))
       result)))
@@ -5409,8 +5415,13 @@ Nonexistent directories are removed from spec."
   "Determine remote `gvfs-monitor-dir' command."
   (with-tramp-connection-property vec "gvfs-monitor-dir"
     (tramp-message vec 5 "Finding a suitable `gvfs-monitor-dir' command")
-    (tramp-find-executable
-     vec "gvfs-monitor-dir" (tramp-get-remote-path vec) t t)))
+    ;; We distinguish "gvfs-monitor-dir.exe" from cygwin in order to
+    ;; establish better timeouts in filenotify-tests.el.  Any better
+    ;; distinction approach would be welcome!
+    (or (tramp-find-executable
+        vec "gvfs-monitor-dir.exe" (tramp-get-remote-path vec) t t)
+       (tramp-find-executable
+        vec "gvfs-monitor-dir" (tramp-get-remote-path vec) t t))))
 
 (defun tramp-get-remote-inotifywait (vec)
   "Determine remote `inotifywait' command."
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index 70b72d8..53e1ce8 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -1,6 +1,6 @@
 ;;; tramp-smb.el --- Tramp access functions for SMB servers
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 ;; Keywords: comm, processes
diff --git a/lisp/net/tramp-uu.el b/lisp/net/tramp-uu.el
index b3d84bb..ec2f46b 100644
--- a/lisp/net/tramp-uu.el
+++ b/lisp/net/tramp-uu.el
@@ -1,6 +1,6 @@
 ;;; tramp-uu.el --- uuencode in Lisp
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Kai Großjohann <address@hidden>
 ;; Keywords: comm, terminals
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 4103a6e..fc7fdd3 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -1,6 +1,6 @@
 ;;; tramp.el --- Transparent Remote Access, Multiple Protocol
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Kai Großjohann <address@hidden>
 ;;         Michael Albinus <address@hidden>
@@ -4063,7 +4063,11 @@ this file, if that variable is non-nil."
              (file-exists-p tramp-auto-save-directory))
     (make-directory tramp-auto-save-directory t))
 
-  (let ((system-type 'not-windows)
+  (let ((system-type
+        (if (and (stringp tramp-auto-save-directory)
+                 (file-remote-p tramp-auto-save-directory))
+            'not-windows
+          system-type))
        (auto-save-file-name-transforms
         (if (null tramp-auto-save-directory)
             auto-save-file-name-transforms))
@@ -4345,13 +4349,13 @@ Only works for Bourne-like shells."
 
 (eval-after-load "esh-util"
   '(progn
-     (add-hook 'eshell-first-time-mode-hook
+     (add-hook 'eshell-mode-hook
               'tramp-eshell-directory-change)
      (add-hook 'eshell-directory-change-hook
               'tramp-eshell-directory-change)
      (add-hook 'tramp-unload-hook
               (lambda ()
-                (remove-hook 'eshell-first-time-mode-hook
+                (remove-hook 'eshell-mode-hook
                              'tramp-eshell-directory-change)
                 (remove-hook 'eshell-directory-change-hook
                              'tramp-eshell-directory-change)))))
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el
index fad7e7f..9bf9102 100644
--- a/lisp/net/trampver.el
+++ b/lisp/net/trampver.el
@@ -1,12 +1,12 @@
 ;;; trampver.el --- Transparent Remote Access, Multiple Protocol
 ;;; lisp/trampver.el.  Generated from trampver.el.in by configure.
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Kai Großjohann <address@hidden>
 ;; Keywords: comm, processes
 ;; Package: tramp
-;; Version: 2.3.1-pre
+;; Version: 2.3.1
 
 ;; This file is part of GNU Emacs.
 
@@ -32,7 +32,7 @@
 ;; should be changed only there.
 
 ;;;###tramp-autoload
-(defconst tramp-version "2.3.1-pre"
+(defconst tramp-version "2.3.1"
   "This version of Tramp.")
 
 ;;;###tramp-autoload
@@ -54,7 +54,7 @@
 ;; Check for Emacs version.
 (let ((x (if (>= emacs-major-version 23)
     "ok"
-  (format "Tramp 2.3.1-pre is not fit for %s"
+  (format "Tramp 2.3.1 is not fit for %s"
          (when (string-match "^.*$" (emacs-version))
            (match-string 0 (emacs-version)))))))
   (unless (string-match "\\`ok\\'" x) (error "%s" x)))
diff --git a/lisp/net/webjump.el b/lisp/net/webjump.el
index 46f17af..f6e0cf8 100644
--- a/lisp/net/webjump.el
+++ b/lisp/net/webjump.el
@@ -1,6 +1,6 @@
 ;;; webjump.el --- programmable Web hotlist
 
-;; Copyright (C) 1996-1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author:    Neil W. Van Dyke <address@hidden>
 ;; Created:   09-Aug-1996
diff --git a/lisp/net/zeroconf.el b/lisp/net/zeroconf.el
index 421c195..393f3a5 100644
--- a/lisp/net/zeroconf.el
+++ b/lisp/net/zeroconf.el
@@ -1,6 +1,6 @@
-;;; zeroconf.el --- Service browser using Avahi.
+;;; zeroconf.el --- Service browser using Avahi.  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 ;; Keywords: comm, hardware
@@ -99,10 +99,7 @@
 
 ;;; Code:
 
-;;  Pacify byte-compiler.  D-Bus support in the Emacs core can be
-;; disabled with configuration option "--without-dbus".  Declare used
-;; subroutines and variables of `dbus' therefore.
-(defvar dbus-debug)
+(eval-when-compile (require 'cl-lib))
 
 (require 'dbus)
 
@@ -259,7 +256,7 @@ supported keys depend on the service type.")
   "Returns all discovered Avahi service names as list."
   (let (result)
     (maphash
-     (lambda (key value) (add-to-list 'result (zeroconf-service-name value)))
+     (lambda (_key value) (add-to-list 'result (zeroconf-service-name value)))
      zeroconf-services-hash)
     result))
 
@@ -267,7 +264,7 @@ supported keys depend on the service type.")
   "Returns all discovered Avahi service types as list."
   (let (result)
     (maphash
-     (lambda (key value) (add-to-list 'result (zeroconf-service-type value)))
+     (lambda (_key value) (add-to-list 'result (zeroconf-service-type value)))
      zeroconf-services-hash)
     result))
 
@@ -279,7 +276,7 @@ The service type is one of the returned values of
 format of SERVICE."
   (let (result)
     (maphash
-     (lambda (key value)
+     (lambda (_key value)
        (when (equal type (zeroconf-service-type value))
         (add-to-list 'result value)))
      zeroconf-services-hash)
@@ -296,7 +293,7 @@ The key of an entry is a service type.")
 (defun zeroconf-service-add-hook (type event function)
   "Add FUNCTION to the hook of service type TYPE.
 
-EVENT must be either :new or :removed, indicating whether
+EVENT must be either `:new' or `:removed', indicating whether
 FUNCTION shall be called when a new service has been newly
 detected, or removed.
 
@@ -320,15 +317,13 @@ The attributes of SERVICE can be retrieved via the 
functions
 
   (cond
    ((equal event :new)
-    (let ((l-hook (gethash type zeroconf-service-added-hooks-hash nil)))
-      (add-hook 'l-hook function)
-      (puthash type l-hook zeroconf-service-added-hooks-hash)
-      (dolist (service (zeroconf-list-services type))
-       (funcall function service))))
+    (cl-pushnew function (gethash type zeroconf-service-added-hooks-hash)
+                :test #'equal)
+    (dolist (service (zeroconf-list-services type))
+      (funcall function service)))
    ((equal event :removed)
-    (let ((l-hook (gethash type zeroconf-service-removed-hooks-hash nil)))
-      (add-hook 'l-hook function)
-      (puthash type l-hook zeroconf-service-removed-hooks-hash)))
+    (cl-pushnew function (gethash type zeroconf-service-removed-hooks-hash)
+                :test #'equal))
    (t (error "EVENT must be either `:new' or `:removed'"))))
 
 (defun zeroconf-service-remove-hook (type event function)
@@ -336,16 +331,13 @@ The attributes of SERVICE can be retrieved via the 
functions
 
 EVENT must be either :new or :removed and has to match the event
 type used when registering FUNCTION."
-  (let* ((table (cond
-                ((equal event :new)
-                 zeroconf-service-added-hooks-hash)
-                ((equal event :removed)
-                 zeroconf-service-removed-hooks-hash)
-                (t (error "EVENT must be either `:new' or `:removed'"))))
-        (l-hook (gethash type table nil)))
-    (remove-hook 'l-hook function)
-    (if l-hook
-       (puthash type l-hook table)
+  (let* ((table (pcase event
+                  (:new zeroconf-service-added-hooks-hash)
+                  (:removed zeroconf-service-removed-hooks-hash)
+                  (_ (error "EVENT must be either `:new' or `:removed'"))))
+        (functions (remove function (gethash type table))))
+    (if functions
+       (puthash type functions table)
       (remhash type table))))
 
 (defun zeroconf-get-host ()
@@ -580,13 +572,13 @@ DOMAIN is nil, the local domain is used."
      ((string-equal (dbus-event-member-name last-input-event) "ItemNew")
       ;; Add new service.
       (puthash key val zeroconf-services-hash)
-      (run-hook-with-args 'ahook val))
+      (dolist (f ahook) (funcall f val)))
 
      ((string-equal (dbus-event-member-name last-input-event) "ItemRemove")
       ;; Remove the service.
       (remhash key zeroconf-services-hash)
       (remhash key zeroconf-resolved-services-hash)
-      (run-hook-with-args 'rhook val)))))
+      (dolist (f rhook) (funcall f val))))))
 
 (defun zeroconf-register-service-resolver (name type)
   "Register a service resolver at the Avahi daemon."
@@ -653,7 +645,7 @@ For the description of arguments, see 
`zeroconf-resolved-services-hash'."
 
     ;; The TXT field has the signature "as".  Transform to "aay".
     (dolist (elt txt)
-      (add-to-list 'result (dbus-string-to-byte-array elt)))
+      (cl-pushnew (dbus-string-to-byte-array elt) result :test #'equal))
 
     ;; Add the service.
     (dbus-call-method
diff --git a/lisp/newcomment.el b/lisp/newcomment.el
index 80b52ed..1af8929 100644
--- a/lisp/newcomment.el
+++ b/lisp/newcomment.el
@@ -1,6 +1,6 @@
 ;;; newcomment.el --- (un)comment regions of buffers -*- lexical-binding: t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: code extracted from Emacs-20's simple.el
 ;; Maintainer: Stefan Monnier <address@hidden>
diff --git a/lisp/notifications.el b/lisp/notifications.el
index 87dc3c1..194b089 100644
--- a/lisp/notifications.el
+++ b/lisp/notifications.el
@@ -1,6 +1,6 @@
 ;;; notifications.el --- Client interface to desktop notifications.
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Julien Danjou <address@hidden>
 ;; Keywords: comm desktop notifications
diff --git a/lisp/novice.el b/lisp/novice.el
index 1600d14..a5ad2a0 100644
--- a/lisp/novice.el
+++ b/lisp/novice.el
@@ -1,6 +1,6 @@
 ;;; novice.el --- handling of disabled commands ("novice mode") for Emacs
 
-;; Copyright (C) 1985-1987, 1994, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1985-1987, 1994, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/nxml/nxml-enc.el b/lisp/nxml/nxml-enc.el
index 6406f57..b359076 100644
--- a/lisp/nxml/nxml-enc.el
+++ b/lisp/nxml/nxml-enc.el
@@ -1,6 +1,6 @@
 ;;; nxml-enc.el --- XML encoding auto-detection  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML
diff --git a/lisp/nxml/nxml-maint.el b/lisp/nxml/nxml-maint.el
index 5d24d9b..55abca1 100644
--- a/lisp/nxml/nxml-maint.el
+++ b/lisp/nxml/nxml-maint.el
@@ -1,6 +1,6 @@
 ;;; nxml-maint.el --- commands for maintainers of nxml-*.el  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML
diff --git a/lisp/nxml/nxml-mode.el b/lisp/nxml/nxml-mode.el
index 8c249d5..7f9ece7 100644
--- a/lisp/nxml/nxml-mode.el
+++ b/lisp/nxml/nxml-mode.el
@@ -1,6 +1,6 @@
 ;;; nxml-mode.el --- a new XML mode  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2003-2004, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2004, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML
diff --git a/lisp/nxml/nxml-ns.el b/lisp/nxml/nxml-ns.el
index 81506a4..a9388d9 100644
--- a/lisp/nxml/nxml-ns.el
+++ b/lisp/nxml/nxml-ns.el
@@ -1,6 +1,6 @@
 ;;; nxml-ns.el --- XML namespace processing  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML
diff --git a/lisp/nxml/nxml-outln.el b/lisp/nxml/nxml-outln.el
index 289816a..2c414e4 100644
--- a/lisp/nxml/nxml-outln.el
+++ b/lisp/nxml/nxml-outln.el
@@ -1,6 +1,6 @@
 ;;; nxml-outln.el --- outline support for nXML mode  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2004, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML
diff --git a/lisp/nxml/nxml-parse.el b/lisp/nxml/nxml-parse.el
index edf0129..bce8cc9 100644
--- a/lisp/nxml/nxml-parse.el
+++ b/lisp/nxml/nxml-parse.el
@@ -1,6 +1,6 @@
 ;;; nxml-parse.el --- XML parser, sharing infrastructure with nxml-mode  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML
diff --git a/lisp/nxml/nxml-rap.el b/lisp/nxml/nxml-rap.el
index e66289d..0132a2b 100644
--- a/lisp/nxml/nxml-rap.el
+++ b/lisp/nxml/nxml-rap.el
@@ -1,6 +1,6 @@
 ;;; nxml-rap.el --- low-level support for random access parsing for nXML mode  
-*- lexical-binding:t -*-
 
-;; Copyright (C) 2003-2004, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2004, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML
diff --git a/lisp/nxml/nxml-util.el b/lisp/nxml/nxml-util.el
index 282d495..9f08545 100644
--- a/lisp/nxml/nxml-util.el
+++ b/lisp/nxml/nxml-util.el
@@ -1,6 +1,6 @@
 ;;; nxml-util.el --- utility functions for nxml-*.el  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML
diff --git a/lisp/nxml/rng-cmpct.el b/lisp/nxml/rng-cmpct.el
index ed88dfa..a09c77c 100644
--- a/lisp/nxml/rng-cmpct.el
+++ b/lisp/nxml/rng-cmpct.el
@@ -1,6 +1,6 @@
 ;;; rng-cmpct.el --- parsing of RELAX NG Compact Syntax schemas  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML, RelaxNG
diff --git a/lisp/nxml/rng-dt.el b/lisp/nxml/rng-dt.el
index a3cb8bc..6e60609 100644
--- a/lisp/nxml/rng-dt.el
+++ b/lisp/nxml/rng-dt.el
@@ -1,6 +1,6 @@
 ;;; rng-dt.el --- datatype library interface for RELAX NG  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML, RelaxNG
diff --git a/lisp/nxml/rng-loc.el b/lisp/nxml/rng-loc.el
index 376e916..359a717 100644
--- a/lisp/nxml/rng-loc.el
+++ b/lisp/nxml/rng-loc.el
@@ -1,6 +1,6 @@
 ;;; rng-loc.el --- Locate the schema to use for validation  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML, RelaxNG
diff --git a/lisp/nxml/rng-maint.el b/lisp/nxml/rng-maint.el
index 32a041e0..8378b1d 100644
--- a/lisp/nxml/rng-maint.el
+++ b/lisp/nxml/rng-maint.el
@@ -1,6 +1,6 @@
 ;;; rng-maint.el --- commands for RELAX NG maintainers  -*- lexical-binding:t 
-*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML, RelaxNG
diff --git a/lisp/nxml/rng-match.el b/lisp/nxml/rng-match.el
index d2b629e..e340174 100644
--- a/lisp/nxml/rng-match.el
+++ b/lisp/nxml/rng-match.el
@@ -1,6 +1,6 @@
 ;;; rng-match.el --- matching of RELAX NG patterns against XML events  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML, RelaxNG
diff --git a/lisp/nxml/rng-nxml.el b/lisp/nxml/rng-nxml.el
index 954a1eb..caa3d63 100644
--- a/lisp/nxml/rng-nxml.el
+++ b/lisp/nxml/rng-nxml.el
@@ -1,6 +1,6 @@
 ;;; rng-nxml.el --- make nxml-mode take advantage of rng-validate-mode  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML, RelaxNG
diff --git a/lisp/nxml/rng-parse.el b/lisp/nxml/rng-parse.el
index 3ae4b5c..f3afbdd 100644
--- a/lisp/nxml/rng-parse.el
+++ b/lisp/nxml/rng-parse.el
@@ -1,6 +1,6 @@
 ;;; rng-parse.el --- parse an XML file and validate it against a schema  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML, RelaxNG
diff --git a/lisp/nxml/rng-pttrn.el b/lisp/nxml/rng-pttrn.el
index e847f5e..29b5581 100644
--- a/lisp/nxml/rng-pttrn.el
+++ b/lisp/nxml/rng-pttrn.el
@@ -1,6 +1,6 @@
 ;;; rng-pttrn.el --- RELAX NG patterns  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML, RelaxNG
diff --git a/lisp/nxml/rng-uri.el b/lisp/nxml/rng-uri.el
index 8fc0a01..6b3190a 100644
--- a/lisp/nxml/rng-uri.el
+++ b/lisp/nxml/rng-uri.el
@@ -1,6 +1,6 @@
 ;;; rng-uri.el --- URI parsing and manipulation  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML
diff --git a/lisp/nxml/rng-util.el b/lisp/nxml/rng-util.el
index c5d4b65..a804771 100644
--- a/lisp/nxml/rng-util.el
+++ b/lisp/nxml/rng-util.el
@@ -1,6 +1,6 @@
 ;;; rng-util.el --- utility functions for RELAX NG library
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML, RelaxNG
diff --git a/lisp/nxml/rng-valid.el b/lisp/nxml/rng-valid.el
index 239b1d1..6837424 100644
--- a/lisp/nxml/rng-valid.el
+++ b/lisp/nxml/rng-valid.el
@@ -1,6 +1,6 @@
 ;;; rng-valid.el --- real-time validation of XML using RELAX NG  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML, RelaxNG
diff --git a/lisp/nxml/rng-xsd.el b/lisp/nxml/rng-xsd.el
index c0989ae..51a05f8 100644
--- a/lisp/nxml/rng-xsd.el
+++ b/lisp/nxml/rng-xsd.el
@@ -1,6 +1,6 @@
 ;;; rng-xsd.el --- W3C XML Schema datatypes library for RELAX NG  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML, RelaxNG
diff --git a/lisp/nxml/xmltok.el b/lisp/nxml/xmltok.el
index f12905a..69dc541 100644
--- a/lisp/nxml/xmltok.el
+++ b/lisp/nxml/xmltok.el
@@ -1,6 +1,6 @@
 ;;; xmltok.el --- XML tokenization  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML
diff --git a/lisp/nxml/xsd-regexp.el b/lisp/nxml/xsd-regexp.el
index a3f476d..6acb1ff 100644
--- a/lisp/nxml/xsd-regexp.el
+++ b/lisp/nxml/xsd-regexp.el
@@ -1,6 +1,6 @@
 ;;; xsd-regexp.el --- translate W3C XML Schema regexps to Emacs regexps  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: James Clark
 ;; Keywords: wp, hypermedia, languages, XML, regexp
diff --git a/lisp/obarray.el b/lisp/obarray.el
index f015212..aaffe00 100644
--- a/lisp/obarray.el
+++ b/lisp/obarray.el
@@ -1,6 +1,6 @@
 ;;; obarray.el --- obarray functions -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: obarray functions
diff --git a/lisp/obsolete/abbrevlist.el b/lisp/obsolete/abbrevlist.el
index 39aac99..ebef215 100644
--- a/lisp/obsolete/abbrevlist.el
+++ b/lisp/obsolete/abbrevlist.el
@@ -1,6 +1,6 @@
 ;;; abbrevlist.el --- list one abbrev table alphabetically ordered
 
-;; Copyright (C) 1986, 1992, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1992, 2001-2017 Free Software Foundation, Inc.
 ;; Suggested by a previous version by Gildea.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/obsolete/assoc.el b/lisp/obsolete/assoc.el
index ae6e4a2..eab8d13 100644
--- a/lisp/obsolete/assoc.el
+++ b/lisp/obsolete/assoc.el
@@ -1,6 +1,6 @@
 ;;; assoc.el --- insert/delete functions on association lists  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Barry A. Warsaw <address@hidden>
 ;; Keywords: extensions
diff --git a/lisp/obsolete/bruce.el b/lisp/obsolete/bruce.el
index 6a4f209..6af597d 100644
--- a/lisp/obsolete/bruce.el
+++ b/lisp/obsolete/bruce.el
@@ -1,7 +1,7 @@
 ;;; bruce.el --- bruce phrase utility for overloading the Communications
 ;;; Decency Act snoops, if any.
 
-;; Copyright (C) 1988, 1993, 1997, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1988, 1993, 1997, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/obsolete/cc-compat.el b/lisp/obsolete/cc-compat.el
index d761e3e..c9fdf73 100644
--- a/lisp/obsolete/cc-compat.el
+++ b/lisp/obsolete/cc-compat.el
@@ -1,6 +1,6 @@
 ;;; cc-compat.el --- cc-mode compatibility with c-mode.el confusion
 
-;; Copyright (C) 1985, 1987, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992-2017 Free Software Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;            1994-1999 Barry A. Warsaw
diff --git a/lisp/obsolete/cl-compat.el b/lisp/obsolete/cl-compat.el
index 3d282d3..930b59e 100644
--- a/lisp/obsolete/cl-compat.el
+++ b/lisp/obsolete/cl-compat.el
@@ -1,6 +1,6 @@
 ;;; cl-compat.el --- Common Lisp extensions for GNU Emacs Lisp (compatibility)
 
-;; Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Gillespie <address@hidden>
 ;; Version: 2.02
diff --git a/lisp/obsolete/complete.el b/lisp/obsolete/complete.el
index 27ba10f..a6c21bc 100644
--- a/lisp/obsolete/complete.el
+++ b/lisp/obsolete/complete.el
@@ -1,6 +1,6 @@
 ;;; complete.el --- partial completion mechanism plus other goodies
 
-;; Copyright (C) 1990-1993, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1993, 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Gillespie <address@hidden>
 ;; Keywords: abbrev convenience
diff --git a/lisp/obsolete/crisp.el b/lisp/obsolete/crisp.el
index 2f157b2..aa13be1 100644
--- a/lisp/obsolete/crisp.el
+++ b/lisp/obsolete/crisp.el
@@ -1,6 +1,6 @@
 ;;; crisp.el --- CRiSP/Brief Emacs emulator
 
-;; Copyright (C) 1997-1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Gary D. Foster <address@hidden>
 ;; Keywords: emulations brief crisp
diff --git a/lisp/obsolete/cust-print.el b/lisp/obsolete/cust-print.el
index dc1f5d2..b9aef43 100644
--- a/lisp/obsolete/cust-print.el
+++ b/lisp/obsolete/cust-print.el
@@ -1,6 +1,6 @@
 ;;; cust-print.el --- handles print-level and print-circle
 
-;; Copyright (C) 1992, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Daniel LaLiberte <address@hidden>
 ;; Adapted-By: ESR
diff --git a/lisp/obsolete/erc-hecomplete.el b/lisp/obsolete/erc-hecomplete.el
index 5c3e724..4b0b8ef 100644
--- a/lisp/obsolete/erc-hecomplete.el
+++ b/lisp/obsolete/erc-hecomplete.el
@@ -1,6 +1,6 @@
 ;;; erc-hecomplete.el --- Provides Nick name completion for ERC
 
-;; Copyright (C) 2001-2002, 2004, 2006-2016 Free Software Foundation,
+;; Copyright (C) 2001-2002, 2004, 2006-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
diff --git a/lisp/obsolete/eudcb-ph.el b/lisp/obsolete/eudcb-ph.el
index eda9814..06d6f52 100644
--- a/lisp/obsolete/eudcb-ph.el
+++ b/lisp/obsolete/eudcb-ph.el
@@ -1,6 +1,6 @@
 ;;; eudcb-ph.el --- Emacs Unified Directory Client - CCSO PH/QI Backend
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Oscar Figueiredo <address@hidden>
 ;;         Pavel Janík <address@hidden>
diff --git a/lisp/obsolete/fast-lock.el b/lisp/obsolete/fast-lock.el
index 10ab2e9..d1e2c24 100644
--- a/lisp/obsolete/fast-lock.el
+++ b/lisp/obsolete/fast-lock.el
@@ -1,6 +1,6 @@
 ;;; fast-lock.el --- automagic text properties caching for fast Font Lock mode
 
-;; Copyright (C) 1994-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Marshall <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/obsolete/gs.el b/lisp/obsolete/gs.el
index c4cdceb..5bc77d8 100644
--- a/lisp/obsolete/gs.el
+++ b/lisp/obsolete/gs.el
@@ -1,6 +1,6 @@
 ;;; gs.el --- interface to Ghostscript
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: internal
diff --git a/lisp/obsolete/gulp.el b/lisp/obsolete/gulp.el
index 4db0914..11a7e02 100644
--- a/lisp/obsolete/gulp.el
+++ b/lisp/obsolete/gulp.el
@@ -1,6 +1,6 @@
 ;;; gulp.el --- ask for updates for Lisp packages
 
-;; Copyright (C) 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Sam Shteingold <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/obsolete/iswitchb.el b/lisp/obsolete/iswitchb.el
index 1af6c16..71cc917 100644
--- a/lisp/obsolete/iswitchb.el
+++ b/lisp/obsolete/iswitchb.el
@@ -1,6 +1,6 @@
 ;;; iswitchb.el --- switch between buffers using substrings
 
-;; Copyright (C) 1996-1997, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1997, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Stephen Eglen <address@hidden>
 ;; Maintainer: Stephen Eglen <address@hidden>
diff --git a/lisp/obsolete/landmark.el b/lisp/obsolete/landmark.el
index 12dadd2..b6bbca4 100644
--- a/lisp/obsolete/landmark.el
+++ b/lisp/obsolete/landmark.el
@@ -1,6 +1,6 @@
 ;;; landmark.el --- Neural-network robot that learns landmarks  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1996-1997, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1997, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Terrence Brannon (was: <address@hidden>)
 ;; Created: December 16, 1996 - first release to usenet
diff --git a/lisp/obsolete/lazy-lock.el b/lisp/obsolete/lazy-lock.el
index 21ceda2..5fa8fa4 100644
--- a/lisp/obsolete/lazy-lock.el
+++ b/lisp/obsolete/lazy-lock.el
@@ -1,6 +1,6 @@
 ;;; lazy-lock.el --- lazy demand-driven fontification for fast Font Lock mode
 
-;; Copyright (C) 1994-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Marshall <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/obsolete/ledit.el b/lisp/obsolete/ledit.el
index 49cda24..3dde96c 100644
--- a/lisp/obsolete/ledit.el
+++ b/lisp/obsolete/ledit.el
@@ -1,6 +1,6 @@
 ;;; ledit.el --- Emacs side of ledit interface
 
-;; Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: languages
diff --git a/lisp/obsolete/levents.el b/lisp/obsolete/levents.el
index 0211b6a..e445b1a 100644
--- a/lisp/obsolete/levents.el
+++ b/lisp/obsolete/levents.el
@@ -1,6 +1,6 @@
 ;;; levents.el --- emulate the Lucid event data type and associated functions
 
-;; Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: emulations
diff --git a/lisp/obsolete/lmenu.el b/lisp/obsolete/lmenu.el
index be1be87..a790d21 100644
--- a/lisp/obsolete/lmenu.el
+++ b/lisp/obsolete/lmenu.el
@@ -1,6 +1,6 @@
 ;;; lmenu.el --- emulate Lucid's menubar support
 
-;; Copyright (C) 1992-1994, 1997, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1992-1994, 1997, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Keywords: emulations obsolete
diff --git a/lisp/obsolete/longlines.el b/lisp/obsolete/longlines.el
index ff194de..a6c6a0c 100644
--- a/lisp/obsolete/longlines.el
+++ b/lisp/obsolete/longlines.el
@@ -1,6 +1,6 @@
 ;;; longlines.el --- automatically wrap long lines   -*- coding:utf-8 -*-
 
-;; Copyright (C) 2000-2001, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2001, 2004-2017 Free Software Foundation, Inc.
 
 ;; Authors:    Kai Grossjohann <address@hidden>
 ;;             Alex Schroeder <address@hidden>
diff --git a/lisp/obsolete/lucid.el b/lisp/obsolete/lucid.el
index 1a25b0d..bf8347b 100644
--- a/lisp/obsolete/lucid.el
+++ b/lisp/obsolete/lucid.el
@@ -1,6 +1,6 @@
 ;;; lucid.el --- emulate some Lucid Emacs functions
 
-;; Copyright (C) 1993, 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: emulations
diff --git a/lisp/obsolete/messcompat.el b/lisp/obsolete/messcompat.el
index faebcc8..46adf83 100644
--- a/lisp/obsolete/messcompat.el
+++ b/lisp/obsolete/messcompat.el
@@ -1,6 +1,6 @@
 ;;; messcompat.el --- making message mode compatible with mail mode
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: mail, news
diff --git a/lisp/obsolete/mouse-sel.el b/lisp/obsolete/mouse-sel.el
index b4fd761..3e67372 100644
--- a/lisp/obsolete/mouse-sel.el
+++ b/lisp/obsolete/mouse-sel.el
@@ -1,6 +1,6 @@
 ;;; mouse-sel.el --- multi-click selection support
 
-;; Copyright (C) 1993-1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Mike Williams <address@hidden>
 ;; Keywords: mouse
diff --git a/lisp/obsolete/old-emacs-lock.el b/lisp/obsolete/old-emacs-lock.el
index fa6aed0..233c105 100644
--- a/lisp/obsolete/old-emacs-lock.el
+++ b/lisp/obsolete/old-emacs-lock.el
@@ -1,6 +1,6 @@
 ;;; emacs-lock.el --- prevents you from exiting Emacs if a buffer is locked
 
-;; Copyright (C) 1994, 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Tom Wurgler <address@hidden>
 ;; Created: 12/8/94
diff --git a/lisp/obsolete/old-whitespace.el b/lisp/obsolete/old-whitespace.el
index 5119fb0..defd18b 100644
--- a/lisp/obsolete/old-whitespace.el
+++ b/lisp/obsolete/old-whitespace.el
@@ -1,6 +1,6 @@
 ;;; whitespace.el --- warn about and clean bogus whitespaces in the file
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Rajesh Vaidheeswarran <address@hidden>
 ;; Keywords: convenience
diff --git a/lisp/obsolete/options.el b/lisp/obsolete/options.el
index a8b1316..2a61dc0 100644
--- a/lisp/obsolete/options.el
+++ b/lisp/obsolete/options.el
@@ -1,6 +1,6 @@
 ;;; options.el --- edit Options command for Emacs
 
-;; Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Obsolete-since: 22.1
diff --git a/lisp/obsolete/otodo-mode.el b/lisp/obsolete/otodo-mode.el
index e5a49f9..5784601 100644
--- a/lisp/obsolete/otodo-mode.el
+++ b/lisp/obsolete/otodo-mode.el
@@ -1,6 +1,6 @@
 ;;; todo-mode.el --- major mode for editing TODO list files
 
-;; Copyright (C) 1997, 1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Oliver Seidel <address@hidden>
 ;; Maintainer: Stephen Berman <address@hidden>
diff --git a/lisp/obsolete/pc-mode.el b/lisp/obsolete/pc-mode.el
index c76280d..c1b7ff9 100644
--- a/lisp/obsolete/pc-mode.el
+++ b/lisp/obsolete/pc-mode.el
@@ -1,6 +1,6 @@
 ;;; pc-mode.el --- emulate certain key bindings used on PCs
 
-;; Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: emulations
diff --git a/lisp/obsolete/pc-select.el b/lisp/obsolete/pc-select.el
index 9fa573c..59da293 100644
--- a/lisp/obsolete/pc-select.el
+++ b/lisp/obsolete/pc-select.el
@@ -2,7 +2,7 @@
 ;;;                 (or MAC GUI or MS-windoze (bah)) look-and-feel
 ;;;                 including key bindings.
 
-;; Copyright (C) 1995-1997, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-1997, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Staats <address@hidden>
 ;; Keywords: convenience emulations
diff --git a/lisp/obsolete/pgg-def.el b/lisp/obsolete/pgg-def.el
index d8c7cb6..8d59c68 100644
--- a/lisp/obsolete/pgg-def.el
+++ b/lisp/obsolete/pgg-def.el
@@ -1,6 +1,6 @@
 ;;; pgg-def.el --- functions/macros for defining PGG functions
 
-;; Copyright (C) 1999, 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Created: 1999/11/02
diff --git a/lisp/obsolete/pgg-gpg.el b/lisp/obsolete/pgg-gpg.el
index 77de1bb..189b119b 100644
--- a/lisp/obsolete/pgg-gpg.el
+++ b/lisp/obsolete/pgg-gpg.el
@@ -1,6 +1,6 @@
 ;;; pgg-gpg.el --- GnuPG support for PGG.
 
-;; Copyright (C) 1999-2000, 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2000, 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Symmetric encryption and gpg-agent support added by:
diff --git a/lisp/obsolete/pgg-parse.el b/lisp/obsolete/pgg-parse.el
index 884974c..b441177 100644
--- a/lisp/obsolete/pgg-parse.el
+++ b/lisp/obsolete/pgg-parse.el
@@ -1,6 +1,6 @@
 ;;; pgg-parse.el --- OpenPGP packet parsing
 
-;; Copyright (C) 1999, 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Created: 1999/10/28
diff --git a/lisp/obsolete/pgg-pgp.el b/lisp/obsolete/pgg-pgp.el
index 702364f..507fbbb 100644
--- a/lisp/obsolete/pgg-pgp.el
+++ b/lisp/obsolete/pgg-pgp.el
@@ -1,6 +1,6 @@
 ;;; pgg-pgp.el --- PGP 2.* and 6.* support for PGG.
 
-;; Copyright (C) 1999-2000, 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2000, 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Created: 1999/11/02
diff --git a/lisp/obsolete/pgg-pgp5.el b/lisp/obsolete/pgg-pgp5.el
index b8d2ac7..8fd976f 100644
--- a/lisp/obsolete/pgg-pgp5.el
+++ b/lisp/obsolete/pgg-pgp5.el
@@ -1,6 +1,6 @@
 ;;; pgg-pgp5.el --- PGP 5.* support for PGG.
 
-;; Copyright (C) 1999-2000, 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2000, 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Created: 1999/11/02
diff --git a/lisp/obsolete/pgg.el b/lisp/obsolete/pgg.el
index 90efac7..f99d759 100644
--- a/lisp/obsolete/pgg.el
+++ b/lisp/obsolete/pgg.el
@@ -1,6 +1,6 @@
 ;;; pgg.el --- glue for the various PGP implementations.
 
-;; Copyright (C) 1999-2000, 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2000, 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Symmetric encryption added by: Sascha Wilde <address@hidden>
diff --git a/lisp/obsolete/rcompile.el b/lisp/obsolete/rcompile.el
index bd23b8c..dd25068 100644
--- a/lisp/obsolete/rcompile.el
+++ b/lisp/obsolete/rcompile.el
@@ -1,6 +1,6 @@
 ;;; rcompile.el --- run a compilation on a remote machine
 
-;; Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Alon Albert <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/obsolete/s-region.el b/lisp/obsolete/s-region.el
index 27054c1..8a85f3c 100644
--- a/lisp/obsolete/s-region.el
+++ b/lisp/obsolete/s-region.el
@@ -1,6 +1,6 @@
 ;;; s-region.el --- set region using shift key
 
-;; Copyright (C) 1994-1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Morten Welinder <address@hidden>
 ;; Keywords: terminals
diff --git a/lisp/obsolete/sregex.el b/lisp/obsolete/sregex.el
index cac73c9..beca41c 100644
--- a/lisp/obsolete/sregex.el
+++ b/lisp/obsolete/sregex.el
@@ -1,6 +1,6 @@
 ;;; sregex.el --- symbolic regular expressions
 
-;; Copyright (C) 1997-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Bob Glickstein <address@hidden>
 ;; Maintainer: Bob Glickstein <address@hidden>
diff --git a/lisp/obsolete/sup-mouse.el b/lisp/obsolete/sup-mouse.el
index 7b33d9d..4aabe41 100644
--- a/lisp/obsolete/sup-mouse.el
+++ b/lisp/obsolete/sup-mouse.el
@@ -1,6 +1,6 @@
 ;;; sup-mouse.el --- supdup mouse support for lisp machines
 
-;; Copyright (C) 1985-1986, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1986, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Wolfgang Rupprecht
 ;; Maintainer: address@hidden
diff --git a/lisp/obsolete/terminal.el b/lisp/obsolete/terminal.el
index 94ea968..e5d85e6 100644
--- a/lisp/obsolete/terminal.el
+++ b/lisp/obsolete/terminal.el
@@ -1,6 +1,6 @@
 ;;; terminal.el --- terminal emulator for GNU Emacs
 
-;; Copyright (C) 1986-1989, 1993-1994, 2001-2016 Free Software
+;; Copyright (C) 1986-1989, 1993-1994, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Richard Mlynarik <address@hidden>
diff --git a/lisp/obsolete/tpu-edt.el b/lisp/obsolete/tpu-edt.el
index 8733a9b..ee1c277 100644
--- a/lisp/obsolete/tpu-edt.el
+++ b/lisp/obsolete/tpu-edt.el
@@ -1,6 +1,6 @@
 ;;; tpu-edt.el --- Emacs emulating TPU emulating EDT
 
-;; Copyright (C) 1993-1995, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Rob Riepel <address@hidden>
 ;; Maintainer: Rob Riepel <address@hidden>
diff --git a/lisp/obsolete/tpu-extras.el b/lisp/obsolete/tpu-extras.el
index c1b8fc2..06291ce 100644
--- a/lisp/obsolete/tpu-extras.el
+++ b/lisp/obsolete/tpu-extras.el
@@ -1,6 +1,6 @@
 ;;; tpu-extras.el --- scroll margins and free cursor mode for TPU-edt
 
-;; Copyright (C) 1993-1995, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Rob Riepel <address@hidden>
 ;; Maintainer: Rob Riepel <address@hidden>
diff --git a/lisp/obsolete/tpu-mapper.el b/lisp/obsolete/tpu-mapper.el
index 2846223..bb7e28b 100644
--- a/lisp/obsolete/tpu-mapper.el
+++ b/lisp/obsolete/tpu-mapper.el
@@ -1,6 +1,6 @@
 ;;; tpu-mapper.el --- create a TPU-edt X-windows keymap file
 
-;; Copyright (C) 1993-1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Rob Riepel <address@hidden>
 ;; Maintainer: Rob Riepel <address@hidden>
diff --git a/lisp/obsolete/vc-arch.el b/lisp/obsolete/vc-arch.el
index 3b54b65..92eaa62 100644
--- a/lisp/obsolete/vc-arch.el
+++ b/lisp/obsolete/vc-arch.el
@@ -1,6 +1,6 @@
 ;;; vc-arch.el --- VC backend for the Arch version-control system  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author:      FSF (see vc.el for full credits)
 ;; Maintainer:  Stefan Monnier <address@hidden>
diff --git a/lisp/obsolete/vip.el b/lisp/obsolete/vip.el
index ad6364e..ca0bfe7 100644
--- a/lisp/obsolete/vip.el
+++ b/lisp/obsolete/vip.el
@@ -1,6 +1,6 @@
 ;;; vip.el --- a VI Package for GNU Emacs
 
-;; Copyright (C) 1986-1988, 1992-1993, 1998, 2001-2016 Free Software
+;; Copyright (C) 1986-1988, 1992-1993, 1998, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Masahiko Sato <address@hidden>
diff --git a/lisp/obsolete/ws-mode.el b/lisp/obsolete/ws-mode.el
index 029ce7a..62cccf7 100644
--- a/lisp/obsolete/ws-mode.el
+++ b/lisp/obsolete/ws-mode.el
@@ -1,6 +1,6 @@
 ;;; ws-mode.el --- WordStar emulation mode for GNU Emacs
 
-;; Copyright (C) 1991, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Juergen Nickelsen <address@hidden>
 ;; Version: 0.7
diff --git a/lisp/obsolete/xesam.el b/lisp/obsolete/xesam.el
index 62a6e10c..c553d00 100644
--- a/lisp/obsolete/xesam.el
+++ b/lisp/obsolete/xesam.el
@@ -1,6 +1,6 @@
 ;;; xesam.el --- Xesam interface to search engines.
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 ;; Keywords: tools, hypermedia
diff --git a/lisp/obsolete/yow.el b/lisp/obsolete/yow.el
index 517af55..55f19a8 100644
--- a/lisp/obsolete/yow.el
+++ b/lisp/obsolete/yow.el
@@ -1,6 +1,6 @@
 ;;; yow.el --- quote random zippyisms
 
-;; Copyright (C) 1993-1995, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 2000-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Author: Richard Mlynarik
diff --git a/lisp/org/ChangeLog.1 b/lisp/org/ChangeLog.1
index caa461d..4fc9f5f 100644
--- a/lisp/org/ChangeLog.1
+++ b/lisp/org/ChangeLog.1
@@ -32833,7 +32833,7 @@
 ;; add-log-time-zone-rule: t
 ;; End:
 
-       Copyright (C) 2008-2016 Free Software Foundation, Inc.
+       Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lisp/org/ob-C.el b/lisp/org/ob-C.el
index c2e2ffc..8738824 100644
--- a/lisp/org/ob-C.el
+++ b/lisp/org/ob-C.el
@@ -1,6 +1,6 @@
 ;;; ob-C.el --- org-babel functions for C and similar languages
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-R.el b/lisp/org/ob-R.el
index eee9bed..51d3427 100644
--- a/lisp/org/ob-R.el
+++ b/lisp/org/ob-R.el
@@ -1,6 +1,6 @@
 ;;; ob-R.el --- org-babel functions for R code evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;;     Dan Davison
diff --git a/lisp/org/ob-asymptote.el b/lisp/org/ob-asymptote.el
index 2d27757..e3b73c1 100644
--- a/lisp/org/ob-asymptote.el
+++ b/lisp/org/ob-asymptote.el
@@ -1,6 +1,6 @@
 ;;; ob-asymptote.el --- org-babel functions for asymptote evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-awk.el b/lisp/org/ob-awk.el
index 3d074d8..c2ac5ca 100644
--- a/lisp/org/ob-awk.el
+++ b/lisp/org/ob-awk.el
@@ -1,6 +1,6 @@
 ;;; ob-awk.el --- org-babel functions for awk evaluation
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-calc.el b/lisp/org/ob-calc.el
index f5e70de..6298bba 100644
--- a/lisp/org/ob-calc.el
+++ b/lisp/org/ob-calc.el
@@ -1,6 +1,6 @@
 ;;; ob-calc.el --- org-babel functions for calc code evaluation
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-clojure.el b/lisp/org/ob-clojure.el
index c2b76c5..b9af45a 100644
--- a/lisp/org/ob-clojure.el
+++ b/lisp/org/ob-clojure.el
@@ -1,6 +1,6 @@
 ;;; ob-clojure.el --- org-babel functions for clojure evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Joel Boehland
 ;;     Eric Schulte
diff --git a/lisp/org/ob-comint.el b/lisp/org/ob-comint.el
index e5949b6..78c5021 100644
--- a/lisp/org/ob-comint.el
+++ b/lisp/org/ob-comint.el
@@ -1,6 +1,6 @@
 ;;; ob-comint.el --- org-babel functions for interaction with comint buffers
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research, comint
diff --git a/lisp/org/ob-core.el b/lisp/org/ob-core.el
index c76d276..cfbcbe6 100644
--- a/lisp/org/ob-core.el
+++ b/lisp/org/ob-core.el
@@ -1,6 +1,6 @@
 ;;; ob-core.el --- working with code blocks in org-mode
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Authors: Eric Schulte
 ;;     Dan Davison
diff --git a/lisp/org/ob-css.el b/lisp/org/ob-css.el
index 7f3d81a..70c66d4 100644
--- a/lisp/org/ob-css.el
+++ b/lisp/org/ob-css.el
@@ -1,6 +1,6 @@
 ;;; ob-css.el --- org-babel functions for css evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-ditaa.el b/lisp/org/ob-ditaa.el
index 2970630..5eb8e2f 100644
--- a/lisp/org/ob-ditaa.el
+++ b/lisp/org/ob-ditaa.el
@@ -1,6 +1,6 @@
 ;;; ob-ditaa.el --- org-babel functions for ditaa evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-dot.el b/lisp/org/ob-dot.el
index 40ee497..aa0445b 100644
--- a/lisp/org/ob-dot.el
+++ b/lisp/org/ob-dot.el
@@ -1,6 +1,6 @@
 ;;; ob-dot.el --- org-babel functions for dot evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-emacs-lisp.el b/lisp/org/ob-emacs-lisp.el
index ae4d703..d95c475 100644
--- a/lisp/org/ob-emacs-lisp.el
+++ b/lisp/org/ob-emacs-lisp.el
@@ -1,6 +1,6 @@
 ;;; ob-emacs-lisp.el --- org-babel functions for emacs-lisp code evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-eval.el b/lisp/org/ob-eval.el
index 1050eaa..46d21c8 100644
--- a/lisp/org/ob-eval.el
+++ b/lisp/org/ob-eval.el
@@ -1,6 +1,6 @@
 ;;; ob-eval.el --- org-babel functions for external code evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research, comint
diff --git a/lisp/org/ob-exp.el b/lisp/org/ob-exp.el
index dbe7ba7..2677fe5 100644
--- a/lisp/org/ob-exp.el
+++ b/lisp/org/ob-exp.el
@@ -1,6 +1,6 @@
 ;;; ob-exp.el --- Exportation of org-babel source blocks
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Authors: Eric Schulte
 ;;     Dan Davison
diff --git a/lisp/org/ob-fortran.el b/lisp/org/ob-fortran.el
index 08ee5c2..6a6112d 100644
--- a/lisp/org/ob-fortran.el
+++ b/lisp/org/ob-fortran.el
@@ -1,6 +1,6 @@
 ;;; ob-fortran.el --- org-babel functions for fortran
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Authors: Sergey Litvinov
 ;;       Eric Schulte
diff --git a/lisp/org/ob-gnuplot.el b/lisp/org/ob-gnuplot.el
index abf45af..82b103e 100644
--- a/lisp/org/ob-gnuplot.el
+++ b/lisp/org/ob-gnuplot.el
@@ -1,6 +1,6 @@
 ;;; ob-gnuplot.el --- org-babel functions for gnuplot evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-haskell.el b/lisp/org/ob-haskell.el
index fc1b4d7..ce6b8ed 100644
--- a/lisp/org/ob-haskell.el
+++ b/lisp/org/ob-haskell.el
@@ -1,6 +1,6 @@
 ;;; ob-haskell.el --- org-babel functions for haskell evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-io.el b/lisp/org/ob-io.el
index 357f161..1d3a42a 100644
--- a/lisp/org/ob-io.el
+++ b/lisp/org/ob-io.el
@@ -1,6 +1,6 @@
 ;;; ob-io.el --- org-babel functions for Io evaluation
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Andrzej Lichnerowicz
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-java.el b/lisp/org/ob-java.el
index 703a368..70a10e0 100644
--- a/lisp/org/ob-java.el
+++ b/lisp/org/ob-java.el
@@ -1,6 +1,6 @@
 ;;; ob-java.el --- org-babel functions for java evaluation
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-js.el b/lisp/org/ob-js.el
index 8cdf8ae..f4f8116 100644
--- a/lisp/org/ob-js.el
+++ b/lisp/org/ob-js.el
@@ -1,6 +1,6 @@
 ;;; ob-js.el --- org-babel functions for Javascript
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research, js
diff --git a/lisp/org/ob-keys.el b/lisp/org/ob-keys.el
index 06ac322..b71fba4 100644
--- a/lisp/org/ob-keys.el
+++ b/lisp/org/ob-keys.el
@@ -1,6 +1,6 @@
 ;;; ob-keys.el --- key bindings for org-babel
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-latex.el b/lisp/org/ob-latex.el
index c08717d..d008276 100644
--- a/lisp/org/ob-latex.el
+++ b/lisp/org/ob-latex.el
@@ -1,6 +1,6 @@
 ;;; ob-latex.el --- org-babel functions for latex "evaluation"
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-ledger.el b/lisp/org/ob-ledger.el
index d07f257..154e75c 100644
--- a/lisp/org/ob-ledger.el
+++ b/lisp/org/ob-ledger.el
@@ -1,6 +1,6 @@
 ;;; ob-ledger.el --- org-babel functions for ledger evaluation
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric S Fraga
 ;; Keywords: literate programming, reproducible research, accounting
diff --git a/lisp/org/ob-lilypond.el b/lisp/org/ob-lilypond.el
index c271802..b37ecd8 100644
--- a/lisp/org/ob-lilypond.el
+++ b/lisp/org/ob-lilypond.el
@@ -1,6 +1,6 @@
 ;;; ob-lilypond.el --- org-babel functions for lilypond evaluation
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Martyn Jago
 ;; Keywords: babel language, literate programming
diff --git a/lisp/org/ob-lisp.el b/lisp/org/ob-lisp.el
index fb8eb40..2f66549 100644
--- a/lisp/org/ob-lisp.el
+++ b/lisp/org/ob-lisp.el
@@ -1,6 +1,6 @@
 ;;; ob-lisp.el --- org-babel functions for common lisp evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Authors: Joel Boehland
 ;;      Eric Schulte
diff --git a/lisp/org/ob-lob.el b/lisp/org/ob-lob.el
index 909255a..ddfac2a 100644
--- a/lisp/org/ob-lob.el
+++ b/lisp/org/ob-lob.el
@@ -1,6 +1,6 @@
 ;;; ob-lob.el --- functions supporting the Library of Babel
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Authors: Eric Schulte
 ;;      Dan Davison
diff --git a/lisp/org/ob-makefile.el b/lisp/org/ob-makefile.el
index 8f33773..a292800 100644
--- a/lisp/org/ob-makefile.el
+++ b/lisp/org/ob-makefile.el
@@ -1,6 +1,6 @@
 ;;; ob-makefile.el --- org-babel functions for makefile evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;;        Thomas S. Dye
diff --git a/lisp/org/ob-matlab.el b/lisp/org/ob-matlab.el
index 69b4c45..42bbd2b 100644
--- a/lisp/org/ob-matlab.el
+++ b/lisp/org/ob-matlab.el
@@ -1,6 +1,6 @@
 ;;; ob-matlab.el --- org-babel support for matlab evaluation
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Dan Davison
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-maxima.el b/lisp/org/ob-maxima.el
index cedffd6..b567fd4 100644
--- a/lisp/org/ob-maxima.el
+++ b/lisp/org/ob-maxima.el
@@ -1,6 +1,6 @@
 ;;; ob-maxima.el --- org-babel functions for maxima evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric S Fraga
 ;;     Eric Schulte
diff --git a/lisp/org/ob-mscgen.el b/lisp/org/ob-mscgen.el
index dae4c65..b764475 100644
--- a/lisp/org/ob-mscgen.el
+++ b/lisp/org/ob-mscgen.el
@@ -1,6 +1,6 @@
 ;;; ob-msc.el --- org-babel functions for mscgen evaluation
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Juan Pechiar
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-ocaml.el b/lisp/org/ob-ocaml.el
index cac19ab..31f0d01 100644
--- a/lisp/org/ob-ocaml.el
+++ b/lisp/org/ob-ocaml.el
@@ -1,6 +1,6 @@
 ;;; ob-ocaml.el --- org-babel functions for ocaml evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-octave.el b/lisp/org/ob-octave.el
index 46fda16..4a96cdb 100644
--- a/lisp/org/ob-octave.el
+++ b/lisp/org/ob-octave.el
@@ -1,6 +1,6 @@
 ;;; ob-octave.el --- org-babel functions for octave and matlab evaluation
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Dan Davison
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-org.el b/lisp/org/ob-org.el
index af5b548..3535891 100644
--- a/lisp/org/ob-org.el
+++ b/lisp/org/ob-org.el
@@ -1,6 +1,6 @@
 ;;; ob-org.el --- org-babel functions for org code block evaluation
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-perl.el b/lisp/org/ob-perl.el
index 8a92420..4e4407d 100644
--- a/lisp/org/ob-perl.el
+++ b/lisp/org/ob-perl.el
@@ -1,6 +1,6 @@
 ;;; ob-perl.el --- org-babel functions for perl evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Authors: Dan Davison
 ;;      Eric Schulte
diff --git a/lisp/org/ob-picolisp.el b/lisp/org/ob-picolisp.el
index 2a4ddc0..a87c15e 100644
--- a/lisp/org/ob-picolisp.el
+++ b/lisp/org/ob-picolisp.el
@@ -1,6 +1,6 @@
 ;;; ob-picolisp.el --- org-babel functions for picolisp evaluation
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Authors: Thorsten Jolitz
 ;;      Eric Schulte
diff --git a/lisp/org/ob-plantuml.el b/lisp/org/ob-plantuml.el
index 9a0604c..e05565e 100644
--- a/lisp/org/ob-plantuml.el
+++ b/lisp/org/ob-plantuml.el
@@ -1,6 +1,6 @@
 ;;; ob-plantuml.el --- org-babel functions for plantuml evaluation
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Zhang Weize
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-python.el b/lisp/org/ob-python.el
index 2bfbd4e..dfad47b 100644
--- a/lisp/org/ob-python.el
+++ b/lisp/org/ob-python.el
@@ -1,6 +1,6 @@
 ;;; ob-python.el --- org-babel functions for python evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Authors: Eric Schulte
 ;;      Dan Davison
diff --git a/lisp/org/ob-ref.el b/lisp/org/ob-ref.el
index 1be81c4..58cc2d9 100644
--- a/lisp/org/ob-ref.el
+++ b/lisp/org/ob-ref.el
@@ -1,6 +1,6 @@
 ;;; ob-ref.el --- org-babel functions for referencing external data
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Authors: Eric Schulte
 ;;      Dan Davison
diff --git a/lisp/org/ob-ruby.el b/lisp/org/ob-ruby.el
index 75c5db0..88a9987 100644
--- a/lisp/org/ob-ruby.el
+++ b/lisp/org/ob-ruby.el
@@ -1,6 +1,6 @@
 ;;; ob-ruby.el --- org-babel functions for ruby evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-sass.el b/lisp/org/ob-sass.el
index f675914..847c144 100644
--- a/lisp/org/ob-sass.el
+++ b/lisp/org/ob-sass.el
@@ -1,6 +1,6 @@
 ;;; ob-sass.el --- org-babel functions for the sass css generation language
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-scala.el b/lisp/org/ob-scala.el
index 034f681..9bddeed 100644
--- a/lisp/org/ob-scala.el
+++ b/lisp/org/ob-scala.el
@@ -1,6 +1,6 @@
 ;;; ob-scala.el --- org-babel functions for Scala evaluation
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Andrzej Lichnerowicz
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-scheme.el b/lisp/org/ob-scheme.el
index 685fa01..ae77c7c 100644
--- a/lisp/org/ob-scheme.el
+++ b/lisp/org/ob-scheme.el
@@ -1,6 +1,6 @@
 ;;; ob-scheme.el --- org-babel functions for Scheme
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Authors: Eric Schulte
 ;;         Michael Gauland
diff --git a/lisp/org/ob-screen.el b/lisp/org/ob-screen.el
index db89733..a15f7f7 100644
--- a/lisp/org/ob-screen.el
+++ b/lisp/org/ob-screen.el
@@ -1,6 +1,6 @@
 ;;; ob-screen.el --- org-babel support for interactive terminal
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Benjamin Andresen
 ;; Keywords: literate programming, interactive shell
diff --git a/lisp/org/ob-sh.el b/lisp/org/ob-sh.el
index b6f0404..47dbab3 100644
--- a/lisp/org/ob-sh.el
+++ b/lisp/org/ob-sh.el
@@ -1,6 +1,6 @@
 ;;; ob-sh.el --- org-babel functions for shell evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-shen.el b/lisp/org/ob-shen.el
index 413fe0d..d44a48a 100644
--- a/lisp/org/ob-shen.el
+++ b/lisp/org/ob-shen.el
@@ -1,6 +1,6 @@
 ;;; ob-shen.el --- org-babel functions for Shen
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research, shen
diff --git a/lisp/org/ob-sql.el b/lisp/org/ob-sql.el
index 0debc4c..1777582 100644
--- a/lisp/org/ob-sql.el
+++ b/lisp/org/ob-sql.el
@@ -1,6 +1,6 @@
 ;;; ob-sql.el --- org-babel functions for sql evaluation
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-sqlite.el b/lisp/org/ob-sqlite.el
index 705d7ce..4b165dc 100644
--- a/lisp/org/ob-sqlite.el
+++ b/lisp/org/ob-sqlite.el
@@ -1,6 +1,6 @@
 ;;; ob-sqlite.el --- org-babel functions for sqlite database interaction
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-table.el b/lisp/org/ob-table.el
index b9b20ba..1fa9105 100644
--- a/lisp/org/ob-table.el
+++ b/lisp/org/ob-table.el
@@ -1,6 +1,6 @@
 ;;; ob-table.el --- support for calling org-babel functions from tables
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob-tangle.el b/lisp/org/ob-tangle.el
index 2e42d94..437e0a2 100644
--- a/lisp/org/ob-tangle.el
+++ b/lisp/org/ob-tangle.el
@@ -1,6 +1,6 @@
 ;;; ob-tangle.el --- extract source code from org-mode files
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/ob.el b/lisp/org/ob.el
index cc46693..b0c3d52 100644
--- a/lisp/org/ob.el
+++ b/lisp/org/ob.el
@@ -1,6 +1,6 @@
 ;;; ob.el --- working with code blocks in org-mode
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Authors: Eric Schulte
 ;; Keywords: literate programming, reproducible research
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
index 19f9a82..c870ddd 100644
--- a/lisp/org/org-agenda.el
+++ b/lisp/org/org-agenda.el
@@ -1,6 +1,6 @@
 ;;; org-agenda.el --- Dynamic task and appointment lists for Org
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
@@ -2928,7 +2928,7 @@ L   Timeline for current buffer         #   List stuck 
projects (!=configure)
                  type (nth 2 entry)
                  match (nth 3 entry))
            (if (> (length key) 1)
-               (add-to-list 'prefixes (string-to-char key))
+               (pushnew (string-to-char key) prefixes :test #'equal)
              (setq line
                    (format
                     "%-4s%-14s"
diff --git a/lisp/org/org-archive.el b/lisp/org/org-archive.el
index cc75da0..39a6581 100644
--- a/lisp/org/org-archive.el
+++ b/lisp/org/org-archive.el
@@ -1,6 +1,6 @@
 ;;; org-archive.el --- Archiving for Org-mode
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
@@ -29,6 +29,7 @@
 ;;; Code:
 
 (require 'org)
+(eval-when-compile (require 'cl))
 
 (declare-function org-inlinetask-remove-END-maybe "org-inlinetask" ())
 (declare-function org-datetree-find-date-create "org-datetree" (date &optional 
keep-restriction))
@@ -163,11 +164,11 @@ archive file is."
          (setq file (org-extract-archive-file
                      (org-match-string-no-properties 2)))
          (and file (> (length file) 0) (file-exists-p file)
-              (add-to-list 'files file)))))
+              (pushnew file files :test #'equal)))))
     (setq files (nreverse files))
     (setq file (org-extract-archive-file))
     (and file (> (length file) 0) (file-exists-p file)
-        (add-to-list 'files file))
+        (pushnew file files :test #'equal))
     files))
 
 (defun org-extract-archive-file (&optional location)
diff --git a/lisp/org/org-attach.el b/lisp/org/org-attach.el
index 6656728..7d25437 100644
--- a/lisp/org/org-attach.el
+++ b/lisp/org/org-attach.el
@@ -1,6 +1,6 @@
 ;;; org-attach.el --- Manage file attachments to org-mode tasks
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 ;; Keywords: org data task
diff --git a/lisp/org/org-bbdb.el b/lisp/org/org-bbdb.el
index aeee35f..e41bda4 100644
--- a/lisp/org/org-bbdb.el
+++ b/lisp/org/org-bbdb.el
@@ -1,6 +1,6 @@
 ;;; org-bbdb.el --- Support for links to BBDB entries from within Org-mode
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Authors: Carsten Dominik <carsten at orgmode dot org>
 ;;       Thomas Baumann <thomas dot baumann at ch dot tum dot de>
diff --git a/lisp/org/org-bibtex.el b/lisp/org/org-bibtex.el
index 2e849d2..f8b376d 100644
--- a/lisp/org/org-bibtex.el
+++ b/lisp/org/org-bibtex.el
@@ -1,6 +1,6 @@
 ;;; org-bibtex.el --- Org links to BibTeX entries
 ;;
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 ;;
 ;; Authors: Bastien Guerry <address@hidden>
 ;;       Carsten Dominik <carsten dot dominik at gmail dot com>
diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el
index 6b5e857..b302113 100644
--- a/lisp/org/org-capture.el
+++ b/lisp/org/org-capture.el
@@ -1,6 +1,6 @@
 ;;; org-capture.el --- Fast note taking in Org-mode
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el
index 7b55153..0bba925 100644
--- a/lisp/org/org-clock.el
+++ b/lisp/org/org-clock.el
@@ -1,6 +1,6 @@
 ;;; org-clock.el --- The time clocking code for Org-mode
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-colview.el b/lisp/org/org-colview.el
index c089866..a2046af 100644
--- a/lisp/org/org-colview.el
+++ b/lisp/org/org-colview.el
@@ -1,6 +1,6 @@
 ;;; org-colview.el --- Column View in Org-mode
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-compat.el b/lisp/org/org-compat.el
index 912ec5a..42e2271 100644
--- a/lisp/org/org-compat.el
+++ b/lisp/org/org-compat.el
@@ -1,6 +1,6 @@
 ;;; org-compat.el --- Compatibility code for Org-mode
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-crypt.el b/lisp/org/org-crypt.el
index 8abe32b..36144e2 100644
--- a/lisp/org/org-crypt.el
+++ b/lisp/org/org-crypt.el
@@ -1,6 +1,6 @@
 ;;; org-crypt.el --- Public key encryption for org-mode entries
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Emacs Lisp Archive Entry
 ;; Filename: org-crypt.el
diff --git a/lisp/org/org-ctags.el b/lisp/org/org-ctags.el
index ea4f52b..1ecf674 100644
--- a/lisp/org/org-ctags.el
+++ b/lisp/org/org-ctags.el
@@ -1,6 +1,6 @@
 ;;; org-ctags.el - Integrate Emacs "tags" facility with org mode.
 ;;
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Paul Sexton <address@hidden>
 
diff --git a/lisp/org/org-datetree.el b/lisp/org/org-datetree.el
index 8e51e89..891e64f 100644
--- a/lisp/org/org-datetree.el
+++ b/lisp/org/org-datetree.el
@@ -1,6 +1,6 @@
 ;;; org-datetree.el --- Create date entries in a tree
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-docview.el b/lisp/org/org-docview.el
index feed9d8..c5d0115 100644
--- a/lisp/org/org-docview.el
+++ b/lisp/org/org-docview.el
@@ -1,6 +1,6 @@
 ;;; org-docview.el --- support for links to doc-view-mode buffers
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Jan Böcker <jan.boecker at jboecker dot de>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-element.el b/lisp/org/org-element.el
index a19f52c..e9731c1 100644
--- a/lisp/org/org-element.el
+++ b/lisp/org/org-element.el
@@ -1,6 +1,6 @@
 ;;; org-element.el --- Parser And Applications for Org syntax
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Goaziou <n.goaziou at gmail dot com>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-entities.el b/lisp/org/org-entities.el
index b2fd9ba..3ca2cce 100644
--- a/lisp/org/org-entities.el
+++ b/lisp/org/org-entities.el
@@ -1,6 +1,6 @@
 ;;; org-entities.el --- Support for special entities in Org-mode
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>,
 ;;         Ulf Stegemann <ulf at zeitform dot de>
diff --git a/lisp/org/org-eshell.el b/lisp/org/org-eshell.el
index 9c1c4a1..9eddd3f 100644
--- a/lisp/org/org-eshell.el
+++ b/lisp/org/org-eshell.el
@@ -1,6 +1,6 @@
 ;;; org-eshell.el - Support for links to working directories in eshell
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Konrad Hinsen <konrad.hinsen AT fastmail.net>
 
diff --git a/lisp/org/org-faces.el b/lisp/org/org-faces.el
index fe1beb6..c340aca 100644
--- a/lisp/org/org-faces.el
+++ b/lisp/org/org-faces.el
@@ -1,6 +1,6 @@
 ;;; org-faces.el --- Face definitions for Org-mode.
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-feed.el b/lisp/org/org-feed.el
index 38f4a9f..cfb4b4f 100644
--- a/lisp/org/org-feed.el
+++ b/lisp/org/org-feed.el
@@ -1,6 +1,6 @@
 ;;; org-feed.el --- Add RSS feed items to Org files
 ;;
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-footnote.el b/lisp/org/org-footnote.el
index a25afee..553f124 100644
--- a/lisp/org/org-footnote.el
+++ b/lisp/org/org-footnote.el
@@ -1,6 +1,6 @@
 ;;; org-footnote.el --- Footnote support in Org and elsewhere
 ;;
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-gnus.el b/lisp/org/org-gnus.el
index fd7dd0b..1d287a7 100644
--- a/lisp/org/org-gnus.el
+++ b/lisp/org/org-gnus.el
@@ -1,6 +1,6 @@
 ;;; org-gnus.el --- Support for links to Gnus groups and messages from within 
Org-mode
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;;         Tassilo Horn <tassilo at member dot fsf dot org>
diff --git a/lisp/org/org-habit.el b/lisp/org/org-habit.el
index 8848ac4..bbbf845 100644
--- a/lisp/org/org-habit.el
+++ b/lisp/org/org-habit.el
@@ -1,6 +1,6 @@
 ;;; org-habit.el --- The habit tracking code for Org-mode
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <johnw at gnu dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-id.el b/lisp/org/org-id.el
index a6edfcf..54fc733 100644
--- a/lisp/org/org-id.el
+++ b/lisp/org/org-id.el
@@ -1,6 +1,6 @@
 ;;; org-id.el --- Global identifiers for Org-mode entries
 ;;
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-indent.el b/lisp/org/org-indent.el
index 8584435..baaff2f 100644
--- a/lisp/org/org-indent.el
+++ b/lisp/org/org-indent.el
@@ -1,5 +1,5 @@
 ;;; org-indent.el --- Dynamic indentation for  Org-mode
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-info.el b/lisp/org/org-info.el
index 4ee5ee4..c8f6f06 100644
--- a/lisp/org/org-info.el
+++ b/lisp/org/org-info.el
@@ -1,6 +1,6 @@
 ;;; org-info.el --- Support for links to Info nodes from within Org-Mode
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-inlinetask.el b/lisp/org/org-inlinetask.el
index 54de8f7..bf4ab20 100644
--- a/lisp/org/org-inlinetask.el
+++ b/lisp/org/org-inlinetask.el
@@ -1,6 +1,6 @@
 ;;; org-inlinetask.el --- Tasks independent of outline hierarchy
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-irc.el b/lisp/org/org-irc.el
index 333c4b1..1243587 100644
--- a/lisp/org/org-irc.el
+++ b/lisp/org/org-irc.el
@@ -1,6 +1,6 @@
 ;;; org-irc.el --- Store links to IRC sessions
 ;;
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Philip Jackson <address@hidden>
 ;; Keywords: erc, irc, link, org
diff --git a/lisp/org/org-list.el b/lisp/org/org-list.el
index a84c003..4a45fd9 100644
--- a/lisp/org/org-list.el
+++ b/lisp/org/org-list.el
@@ -1,6 +1,6 @@
 ;;; org-list.el --- Plain lists for Org-mode
 ;;
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;;        Bastien Guerry <address@hidden>
diff --git a/lisp/org/org-macro.el b/lisp/org/org-macro.el
index f6bb6b3..f4919d1 100644
--- a/lisp/org/org-macro.el
+++ b/lisp/org/org-macro.el
@@ -1,6 +1,6 @@
 ;;; org-macro.el --- Macro Replacement Code for Org Mode
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Goaziou <address@hidden>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-macs.el b/lisp/org/org-macs.el
index a74a5a0..64e28ce 100644
--- a/lisp/org/org-macs.el
+++ b/lisp/org/org-macs.el
@@ -1,6 +1,6 @@
 ;;; org-macs.el --- Top-level definitions for Org-mode
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-mhe.el b/lisp/org/org-mhe.el
index e8abef9..72c2eee 100644
--- a/lisp/org/org-mhe.el
+++ b/lisp/org/org-mhe.el
@@ -1,6 +1,6 @@
 ;;; org-mhe.el --- Support for links to MH-E messages from within Org-mode
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Thomas Baumann <thomas dot baumann at ch dot tum dot de>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-mobile.el b/lisp/org/org-mobile.el
index f535390..34e6af1 100644
--- a/lisp/org/org-mobile.el
+++ b/lisp/org/org-mobile.el
@@ -1,5 +1,5 @@
 ;;; org-mobile.el --- Code for asymmetric sync with a mobile device
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-mouse.el b/lisp/org/org-mouse.el
index 098165f..7eef5c6 100644
--- a/lisp/org/org-mouse.el
+++ b/lisp/org/org-mouse.el
@@ -1,6 +1,6 @@
 ;;; org-mouse.el --- Better mouse support for org-mode
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Piotr Zielinski <piotr dot zielinski at gmail dot com>
 ;; Maintainer: Carsten Dominik <carsten at orgmode dot org>
diff --git a/lisp/org/org-pcomplete.el b/lisp/org/org-pcomplete.el
index 09e637a..034c20e 100644
--- a/lisp/org/org-pcomplete.el
+++ b/lisp/org/org-pcomplete.el
@@ -1,6 +1,6 @@
 ;;; org-pcomplete.el --- In-buffer completion code
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;;         John Wiegley <johnw at gnu dot org>
diff --git a/lisp/org/org-plot.el b/lisp/org/org-plot.el
index 066fbc9..5ccfbb1 100644
--- a/lisp/org/org-plot.el
+++ b/lisp/org/org-plot.el
@@ -1,6 +1,6 @@
 ;;; org-plot.el --- Support for plotting from Org-mode
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Eric Schulte <schulte dot eric at gmail dot com>
 ;; Keywords: tables, plotting
diff --git a/lisp/org/org-protocol.el b/lisp/org/org-protocol.el
index 667b748..4bd83be 100644
--- a/lisp/org/org-protocol.el
+++ b/lisp/org/org-protocol.el
@@ -1,6 +1,6 @@
 ;;; org-protocol.el --- Intercept calls from emacsclient to trigger custom 
actions.
 ;;
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 ;;
 ;; Authors: Bastien Guerry <address@hidden>
 ;;       Daniel M German <dmg AT uvic DOT org>
diff --git a/lisp/org/org-rmail.el b/lisp/org/org-rmail.el
index 3913fa0..80bfce9 100644
--- a/lisp/org/org-rmail.el
+++ b/lisp/org/org-rmail.el
@@ -1,6 +1,6 @@
 ;;; org-rmail.el --- Support for links to Rmail messages from within Org-mode
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-src.el b/lisp/org/org-src.el
index f0d393f..0e82cfd 100644
--- a/lisp/org/org-src.el
+++ b/lisp/org/org-src.el
@@ -1,6 +1,6 @@
 ;;; org-src.el --- Source code examples in Org
 ;;
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;;        Bastien Guerry <address@hidden>
diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el
index 3292590..08bbf32 100644
--- a/lisp/org/org-table.el
+++ b/lisp/org/org-table.el
@@ -1,6 +1,6 @@
 ;;; org-table.el --- The table editor for Org-mode
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-timer.el b/lisp/org/org-timer.el
index 079bed4..9573747 100644
--- a/lisp/org/org-timer.el
+++ b/lisp/org/org-timer.el
@@ -1,6 +1,6 @@
 ;;; org-timer.el --- The relative timer code for Org-mode
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org-w3m.el b/lisp/org/org-w3m.el
index 894dbef..8360bd0 100644
--- a/lisp/org/org-w3m.el
+++ b/lisp/org/org-w3m.el
@@ -1,6 +1,6 @@
 ;;; org-w3m.el --- Support from copy and paste from w3m to Org-mode
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Andy Stewart <lazycat dot manatee at gmail dot com>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/org.el b/lisp/org/org.el
index 15f4582..02a7a0c 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -1,7 +1,7 @@
 ;;; org.el --- Outline-based notes management and organizer
 
 ;; Carstens outline-mode for keeping track of everything.
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Maintainer: Carsten Dominik <carsten at orgmode dot org>
diff --git a/lisp/org/ox-ascii.el b/lisp/org/ox-ascii.el
index dcca608..6ba70d7 100644
--- a/lisp/org/ox-ascii.el
+++ b/lisp/org/ox-ascii.el
@@ -1,6 +1,6 @@
 ;;; ox-ascii.el --- ASCII Back-End for Org Export Engine
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Goaziou <n.goaziou at gmail dot com>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/ox-beamer.el b/lisp/org/ox-beamer.el
index 4cf1e64..a8d48b6 100644
--- a/lisp/org/ox-beamer.el
+++ b/lisp/org/ox-beamer.el
@@ -1,6 +1,6 @@
 ;;; ox-beamer.el --- Beamer Back-End for Org Export Engine
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten.dominik AT gmail DOT com>
 ;;         Nicolas Goaziou <n.goaziou AT gmail DOT com>
diff --git a/lisp/org/ox-html.el b/lisp/org/ox-html.el
index 1ca360c..86ca3a6 100644
--- a/lisp/org/ox-html.el
+++ b/lisp/org/ox-html.el
@@ -1,6 +1,6 @@
 ;;; ox-html.el --- HTML Back-End for Org Export Engine
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;;      Jambunathan K <kjambunathan at gmail dot com>
diff --git a/lisp/org/ox-icalendar.el b/lisp/org/ox-icalendar.el
index cd54d1e..fe6d08a 100644
--- a/lisp/org/ox-icalendar.el
+++ b/lisp/org/ox-icalendar.el
@@ -1,6 +1,6 @@
 ;;; ox-icalendar.el --- iCalendar Back-End for Org Export Engine
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;;      Nicolas Goaziou <n dot goaziou at gmail dot com>
diff --git a/lisp/org/ox-latex.el b/lisp/org/ox-latex.el
index db4075e..3eee86a 100644
--- a/lisp/org/ox-latex.el
+++ b/lisp/org/ox-latex.el
@@ -1,6 +1,6 @@
 ;;; ox-latex.el --- LaTeX Back-End for Org Export Engine
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Goaziou <n.goaziou at gmail dot com>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/ox-man.el b/lisp/org/ox-man.el
index 1408e14..e5b1479 100644
--- a/lisp/org/ox-man.el
+++ b/lisp/org/ox-man.el
@@ -1,6 +1,6 @@
 ;; ox-man.el --- Man Back-End for Org Export Engine
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Goaziou <n.goaziou at gmail dot com>
 ;;      Luis R Anaya <papoanaya aroba hot mail punto com>
diff --git a/lisp/org/ox-md.el b/lisp/org/ox-md.el
index 102c4a5..ab73f29 100644
--- a/lisp/org/ox-md.el
+++ b/lisp/org/ox-md.el
@@ -1,6 +1,6 @@
 ;;; ox-md.el --- Markdown Back-End for Org Export Engine
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Goaziou <address@hidden>
 ;; Keywords: org, wp, markdown
diff --git a/lisp/org/ox-odt.el b/lisp/org/ox-odt.el
index 944437b..5430bda 100644
--- a/lisp/org/ox-odt.el
+++ b/lisp/org/ox-odt.el
@@ -1,6 +1,6 @@
 ;;; ox-odt.el --- OpenDocument Text Exporter for Org Mode
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Jambunathan K <kjambunathan at gmail dot com>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/org/ox-org.el b/lisp/org/ox-org.el
index aa1d197..312221d 100644
--- a/lisp/org/ox-org.el
+++ b/lisp/org/ox-org.el
@@ -1,6 +1,6 @@
 ;;; ox-org.el --- Org Back-End for Org Export Engine
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Goaziou <address@hidden>
 ;; Keywords: org, wp
diff --git a/lisp/org/ox-publish.el b/lisp/org/ox-publish.el
index 38fdce1..4ebc073 100644
--- a/lisp/org/ox-publish.el
+++ b/lisp/org/ox-publish.el
@@ -1,5 +1,5 @@
 ;;; ox-publish.el --- Publish Related Org Mode Files as a Website
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: David O'Toole <address@hidden>
 ;; Maintainer: Carsten Dominik <carsten DOT dominik AT gmail DOT com>
@@ -662,6 +662,13 @@ See `org-publish-projects'."
         filename pub-dir publishing-function base-dir)))
     (unless no-cache (org-publish-write-cache-file))))
 
+(defun org-publish--run-functions (functions)
+  (cond
+   ((null functions) nil)
+   ((functionp functions) (funcall functions))
+   ((consp functions) (mapc #'funcall functions))
+   (t (error "Neither a function nor a list: %S" functions))))
+
 (defun org-publish-projects (projects)
   "Publish all files belonging to the PROJECTS alist.
 If `:auto-sitemap' is set, publish the sitemap too.  If
@@ -690,7 +697,7 @@ If `:auto-sitemap' is set, publish the sitemap too.  If
            (theindex
             (expand-file-name "theindex.org"
                               (plist-get project-plist :base-directory))))
-       (when preparation-function (run-hooks 'preparation-function))
+       (org-publish--run-functions preparation-function)
        (if sitemap-p (funcall sitemap-function project sitemap-filename))
        ;; Publish all files from PROJECT excepted "theindex.org".  Its
        ;; publishing will be deferred until "theindex.inc" is
@@ -704,7 +711,7 @@ If `:auto-sitemap' is set, publish the sitemap too.  If
         (org-publish-index-generate-theindex
          project (plist-get project-plist :base-directory))
         (org-publish-file theindex project t))
-       (when completion-function (run-hooks 'completion-function))
+       (org-publish--run-functions completion-function)
        (org-publish-write-cache-file)))
    (org-publish-expand-projects projects)))
 
@@ -1171,9 +1178,13 @@ the file including them will be republished as well."
        (goto-char (point-min))
        (while (re-search-forward
                "^#\\+INCLUDE:[ \t]+\"\\([^\t\n\r\"]*\\)\"[ \t]*.*$" nil t)
-         (let* ((included-file (expand-file-name (match-string 1))))
-           (add-to-list 'included-files-ctime
-                        (org-publish-cache-ctime-of-src included-file) t))))
+         (let* ((included-file (expand-file-name (match-string 1)))
+                 (ctime (org-publish-cache-ctime-of-src included-file)))
+            (unless (member ctime included-files-ctime)
+              ;; FIXME: The original code insisted on appending this ctime
+              ;; to the end of the list, even tho the order seems irrelevant.
+              (setq included-files-ctime
+                    (append included-files-ctime (list ctime)))))))
       (unless visiting (kill-buffer buf)))
     (if (null pstamp) t
       (let ((ctime (org-publish-cache-ctime-of-src filename)))
diff --git a/lisp/org/ox-texinfo.el b/lisp/org/ox-texinfo.el
index 01f6dbd..31d91eb 100644
--- a/lisp/org/ox-texinfo.el
+++ b/lisp/org/ox-texinfo.el
@@ -1,6 +1,6 @@
 ;;; ox-texinfo.el --- Texinfo Back-End for Org Export Engine
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 ;; Author: Jonathan Leech-Pepin <jonathan.leechpepin at gmail dot com>
 ;; Keywords: outlines, hypermedia, calendar, wp
 
diff --git a/lisp/org/ox.el b/lisp/org/ox.el
index 89d7973..59b6671 100644
--- a/lisp/org/ox.el
+++ b/lisp/org/ox.el
@@ -1,6 +1,6 @@
 ;;; ox.el --- Generic Export Engine for Org Mode
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Goaziou <n.goaziou at gmail dot com>
 ;; Keywords: outlines, hypermedia, calendar, wp
diff --git a/lisp/outline.el b/lisp/outline.el
index dca5f1a..9ace604 100644
--- a/lisp/outline.el
+++ b/lisp/outline.el
@@ -1,6 +1,6 @@
 ;;; outline.el --- outline mode commands for Emacs
 
-;; Copyright (C) 1986, 1993-1995, 1997, 2000-2016 Free Software
+;; Copyright (C) 1986, 1993-1995, 1997, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/paren.el b/lisp/paren.el
index e37cace..a8ac09c 100644
--- a/lisp/paren.el
+++ b/lisp/paren.el
@@ -1,6 +1,6 @@
 ;;; paren.el --- highlight matching paren
 
-;; Copyright (C) 1993, 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: address@hidden
 ;; Maintainer: address@hidden
diff --git a/lisp/password-cache.el b/lisp/password-cache.el
index 1a771a8..7be3c6f 100644
--- a/lisp/password-cache.el
+++ b/lisp/password-cache.el
@@ -1,6 +1,6 @@
 ;;; password-cache.el --- Read passwords, possibly using a password cache.
 
-;; Copyright (C) 1999-2000, 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2000, 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;; Created: 2003-12-21
diff --git a/lisp/pcmpl-cvs.el b/lisp/pcmpl-cvs.el
index 5cccded..c03be64 100644
--- a/lisp/pcmpl-cvs.el
+++ b/lisp/pcmpl-cvs.el
@@ -1,6 +1,6 @@
 ;;; pcmpl-cvs.el --- functions for dealing with cvs completions
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 ;; Package: pcomplete
diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el
index e4e8f3a..73a0fe5 100644
--- a/lisp/pcmpl-gnu.el
+++ b/lisp/pcmpl-gnu.el
@@ -1,6 +1,6 @@
 ;;; pcmpl-gnu.el --- completions for GNU project tools -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Package: pcomplete
 
diff --git a/lisp/pcmpl-linux.el b/lisp/pcmpl-linux.el
index 3cb38b9..84fb4b9 100644
--- a/lisp/pcmpl-linux.el
+++ b/lisp/pcmpl-linux.el
@@ -1,6 +1,6 @@
 ;;; pcmpl-linux.el --- functions for dealing with GNU/Linux completions
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Package: pcomplete
 
diff --git a/lisp/pcmpl-rpm.el b/lisp/pcmpl-rpm.el
index 4e17fa3..ce5f053 100644
--- a/lisp/pcmpl-rpm.el
+++ b/lisp/pcmpl-rpm.el
@@ -1,6 +1,6 @@
 ;;; pcmpl-rpm.el --- functions for dealing with rpm completions
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Package: pcomplete
 
diff --git a/lisp/pcmpl-unix.el b/lisp/pcmpl-unix.el
index d4939d8..9bcce8b 100644
--- a/lisp/pcmpl-unix.el
+++ b/lisp/pcmpl-unix.el
@@ -1,6 +1,6 @@
 ;;; pcmpl-unix.el --- standard UNIX completions
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Package: pcomplete
 
diff --git a/lisp/pcmpl-x.el b/lisp/pcmpl-x.el
index edbbe54..7aeff54 100644
--- a/lisp/pcmpl-x.el
+++ b/lisp/pcmpl-x.el
@@ -1,6 +1,6 @@
 ;;; pcmpl-x.el --- completion for miscellaneous tools  -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Leo Liu <address@hidden>
 ;; Keywords: processes, tools, convenience
diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el
index 41e3be1..6e45f38 100644
--- a/lisp/pcomplete.el
+++ b/lisp/pcomplete.el
@@ -1,6 +1,6 @@
 ;;; pcomplete.el --- programmable completion -*- lexical-binding: t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 ;; Keywords: processes abbrev
diff --git a/lisp/play/5x5.el b/lisp/play/5x5.el
index c724a1b..312764b 100644
--- a/lisp/play/5x5.el
+++ b/lisp/play/5x5.el
@@ -1,6 +1,6 @@
 ;;; 5x5.el --- simple little puzzle game
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Pearson <address@hidden>
 ;; Maintainer: Dave Pearson <address@hidden>
diff --git a/lisp/play/animate.el b/lisp/play/animate.el
index cdcee62..d074a74 100644
--- a/lisp/play/animate.el
+++ b/lisp/play/animate.el
@@ -1,6 +1,6 @@
 ;;; animate.el --- make text dance
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: Richard Stallman <address@hidden>
 ;; Keywords: games
diff --git a/lisp/play/blackbox.el b/lisp/play/blackbox.el
index 10ea293..d935b02 100644
--- a/lisp/play/blackbox.el
+++ b/lisp/play/blackbox.el
@@ -1,6 +1,6 @@
 ;;; blackbox.el --- blackbox game in Emacs Lisp
 
-;; Copyright (C) 1985-1987, 1992, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1985-1987, 1992, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: F. Thomas May <address@hidden>
diff --git a/lisp/play/bubbles.el b/lisp/play/bubbles.el
index 59de803..4c9754a 100644
--- a/lisp/play/bubbles.el
+++ b/lisp/play/bubbles.el
@@ -1,6 +1,6 @@
 ;;; bubbles.el --- Puzzle game for Emacs
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author:      Ulf Jasper <address@hidden>
 ;; URL:         http://ulf.epplejasper.de/
diff --git a/lisp/play/cookie1.el b/lisp/play/cookie1.el
index 32aa65c..88627d6 100644
--- a/lisp/play/cookie1.el
+++ b/lisp/play/cookie1.el
@@ -1,6 +1,6 @@
 ;;; cookie1.el --- retrieve random phrases from fortune cookie files
 
-;; Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric S. Raymond <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/play/decipher.el b/lisp/play/decipher.el
index 43a3d0f..61a63bd 100644
--- a/lisp/play/decipher.el
+++ b/lisp/play/decipher.el
@@ -1,6 +1,6 @@
 ;;; decipher.el --- cryptanalyze monoalphabetic substitution ciphers
 ;;
-;; Copyright (C) 1995-1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-1996, 2001-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Christopher J. Madsen <address@hidden>
 ;; Keywords: games
diff --git a/lisp/play/dissociate.el b/lisp/play/dissociate.el
index b0fcc44..6bd7f69 100644
--- a/lisp/play/dissociate.el
+++ b/lisp/play/dissociate.el
@@ -1,6 +1,6 @@
 ;;; dissociate.el --- scramble text amusingly for Emacs
 
-;; Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: games
diff --git a/lisp/play/doctor.el b/lisp/play/doctor.el
index f575928..f90e1d0 100644
--- a/lisp/play/doctor.el
+++ b/lisp/play/doctor.el
@@ -1,6 +1,6 @@
 ;;; doctor.el --- psychological help for frustrated users
 
-;; Copyright (C) 1985, 1987, 1994, 1996, 2000-2016 Free Software
+;; Copyright (C) 1985, 1987, 1994, 1996, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/play/dunnet.el b/lisp/play/dunnet.el
index 8ed0bb3..ed5b4c6 100644
--- a/lisp/play/dunnet.el
+++ b/lisp/play/dunnet.el
@@ -1,6 +1,6 @@
 ;;; dunnet.el --- text adventure for Emacs
 
-;; Copyright (C) 1992-1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Ron Schnell <address@hidden>
 ;; Created: 25 Jul 1992
@@ -50,7 +50,7 @@
   (make-local-variable 'scroll-step)
   (setq scroll-step 2))
 
-(defun dun-parse (arg)
+(defun dun-parse (_arg)
   "Function called when return is pressed in interactive mode to parse line."
   (interactive "*p")
   (beginning-of-line)
@@ -210,13 +210,13 @@ disk bursts into flames, and disintegrates.")
   (dun-score nil)
   (setq dun-dead t))
 
-(defun dun-quit (args)
+(defun dun-quit (_args)
   (dun-die nil))
 
 ;;; Print every object in player's inventory.  Special case for the jar,
 ;;; as we must also print what is in it.
 
-(defun dun-inven (args)
+(defun dun-inven (_args)
   (dun-mprinc "You currently have:")
   (dun-mprinc "\n")
   (dolist (curobj dun-inventory)
@@ -265,9 +265,9 @@ on your head.")
 (defun dun-drop (obj)
   (if dun-inbus
       (dun-mprincl "You can't drop anything while on the bus.")
-  (let (objnum ptr)
+  (let (objnum)
     (when (setq objnum (dun-objnum-from-args-std obj))
-      (if (not (setq ptr (member objnum dun-inventory)))
+      (if (not (member objnum dun-inventory))
          (dun-mprincl "You don't have that.")
        (progn
          (dun-remove-obj-from-inven objnum)
@@ -412,10 +412,10 @@ For an explosive time, go to Fourth St. and Vermont.")
 ;;; We try to take an object that is untakable.  Print a message
 ;;; depending on what it is.
 
-(defun dun-try-take (obj)
+(defun dun-try-take (_obj)
   (dun-mprinc "You cannot take that."))
 
-(defun dun-dig (args)
+(defun dun-dig (_args)
   (if dun-inbus
       (dun-mprincl "Digging here reveals nothing.")
   (if (not (member 0 dun-inventory))
@@ -557,7 +557,7 @@ with a bang.  The key seems to have vanished!")
 just try dropping it.")
                    (dun-mprincl"You can't put that there.")))))))))))
 
-(defun dun-type (args)
+(defun dun-type (_args)
   (if (not (= dun-current-room computer-room))
       (dun-mprincl "There is nothing here on which you could type.")
     (if (not dun-computer)
@@ -567,40 +567,40 @@ just try dropping it.")
 
 ;;; Various movement directions
 
-(defun dun-n (args)
+(defun dun-n (_args)
   (dun-move north))
 
-(defun dun-s (args)
+(defun dun-s (_args)
   (dun-move south))
 
-(defun dun-e (args)
+(defun dun-e (_args)
   (dun-move east))
 
-(defun dun-w (args)
+(defun dun-w (_args)
   (dun-move west))
 
-(defun dun-ne (args)
+(defun dun-ne (_args)
   (dun-move northeast))
 
-(defun dun-se (args)
+(defun dun-se (_args)
   (dun-move southeast))
 
-(defun dun-nw (args)
+(defun dun-nw (_args)
   (dun-move northwest))
 
-(defun dun-sw (args)
+(defun dun-sw (_args)
   (dun-move southwest))
 
-(defun dun-up (args)
+(defun dun-up (_args)
   (dun-move up))
 
-(defun dun-down (args)
+(defun dun-down (_args)
   (dun-move down))
 
-(defun dun-in (args)
+(defun dun-in (_args)
   (dun-move in))
 
-(defun dun-out (args)
+(defun dun-out (_args)
   (dun-move out))
 
 (defun dun-go (args)
@@ -774,7 +774,7 @@ engulf you, and you burn to death.")
 huge rocks sliding down from the ceiling, and blocking your way out.\n")
          (setq dun-current-room misty-room)))))
 
-(defun dun-long (args)
+(defun dun-long (_args)
   (setq dun-mode "long"))
 
 (defun dun-turn (obj)
@@ -867,7 +867,7 @@ as you release it, the passageway closes."))
                (dun-mprincl "The button is now in the on position.")
                (setq dun-black t))))))))
 
-(defun dun-swim (args)
+(defun dun-swim (_args)
   (if (not (member dun-current-room (list lakefront-north lakefront-south)))
       (dun-mprincl "I see no water!")
     (if (not (member obj-life dun-inventory))
@@ -882,7 +882,7 @@ to swim.")
        (setq dun-current-room lakefront-north)))))
 
 
-(defun dun-score (args)
+(defun dun-score (_args)
   (if (not dun-endgame)
       (let (total)
        (setq total (dun-reg-score))
@@ -896,7 +896,7 @@ to swim.")
        (dun-mprincl
 "\n\nCongratulations.  You have won.  The wizard password is ‘moby’"))))
 
-(defun dun-help (args)
+(defun dun-help (_args)
   (dun-mprincl
 "Welcome to dunnet (2.02), by Ron Schnell (address@hidden - @RonnieSchnell).
 Here is some useful information (read carefully because there are one
@@ -937,14 +937,14 @@ If you have questions or comments, please contact 
address@hidden
 My home page is http://www.driver-aces.com/ronnie.html
 "))
 
-(defun dun-flush (args)
+(defun dun-flush (_args)
   (if (not (= dun-current-room bathroom))
       (dun-mprincl "I see nothing to flush.")
     (dun-mprincl "Whoooosh!!")
     (dun-put-objs-in-treas (nth urinal dun-room-objects))
     (dun-replace dun-room-objects urinal nil)))
 
-(defun dun-piss (args)
+(defun dun-piss (_args)
   (if (not (= dun-current-room bathroom))
       (dun-mprincl "You can't do that here, don't even bother trying.")
     (if (not dun-gottago)
@@ -956,7 +956,7 @@ My home page is http://www.driver-aces.com/ronnie.html
                                            (list obj-URINE))))))
 
 
-(defun dun-sleep (args)
+(defun dun-sleep (_args)
   (if (not (= dun-current-room bedroom))
       (dun-mprincl
 "You try to go to sleep while standing up here, but can't seem to do it.")
@@ -1012,12 +1012,12 @@ for a moment, then straighten yourself up.
                (dun-mprincl "Your axe breaks it into a million pieces.")
                (dun-remove-obj-from-room dun-current-room objnum)))))))))
 
-(defun dun-drive (args)
+(defun dun-drive (_args)
   (if (not dun-inbus)
       (dun-mprincl "You cannot drive when you aren't in a vehicle.")
     (dun-mprincl "To drive while you are in the bus, just give a direction.")))
 
-(defun dun-superb (args)
+(defun dun-superb (_args)
   (setq dun-mode 'dun-superb))
 
 (defun dun-reg-score ()
@@ -1073,7 +1073,7 @@ for a moment, then straighten yourself up.
       (setq i (1+ i)))
     (setq dun-endgame-questions newques))))
 
-(defun dun-power (args)
+(defun dun-power (_args)
   (if (not (= dun-current-room pc-area))
       (dun-mprincl "That operation is not applicable here.")
     (if (not dun-floppy)
@@ -1113,7 +1113,7 @@ for a moment, then straighten yourself up.
          (dun-doverb dun-ignore dun-verblist (car rest) (cdr rest)))
       (if (not (cdr (assq (intern verb) dun-verblist))) -1
        (setq dun-numcmds (1+ dun-numcmds))
-       (eval (list (cdr (assq (intern verb) dun-verblist)) (quote rest)))))))
+       (funcall (cdr (assq (intern verb) dun-verblist)) rest)))))
 
 
 ;;; Function to take a string and change it into a list of lowercase words.
@@ -1221,11 +1221,10 @@ for a moment, then straighten yourself up.
 ;;; words in the command, except for the verb.
 
 (defun dun-objnum-from-args (obj)
-  (let (objnum)
-    (setq obj (dun-firstword obj))
-    (if (not obj)
-       obj-special
-      (setq objnum (cdr (assq (intern obj) dun-objnames))))))
+  (setq obj (dun-firstword obj))
+  (if (not obj)
+      obj-special
+    (cdr (assq (intern obj) dun-objnames))))
 
 (defun dun-objnum-from-args-std (obj)
   (let (result)
@@ -1251,7 +1250,7 @@ for a moment, then straighten yourself up.
 ;;; Given a unix style pathname, build a list of path components (recursive)
 
 (defun dun-get-path (dirstring startlist)
-  (let (slash pos)
+  (let (slash)
     (if (= (length dirstring) 0)
        startlist
       (if (string= (substring dirstring 0 1) "/")
@@ -2480,7 +2479,7 @@ treasures for points?" "4" "four")
 ;;;; This section defines the UNIX emulation functions for dunnet.
 ;;;;
 
-(defun dun-unix-parse (args)
+(defun dun-unix-parse (_args)
   (interactive "*p")
   (beginning-of-line)
   (let (beg esign)
@@ -2687,13 +2686,13 @@ drwxr-xr-x  3 root     staff          2048 Jan 1 1970 
..")
                            (dun-mprinc var)
                            (dun-mprinc ": Permission denied")
                            (setq nomore t))
-                       (eval (list 'dun-mprinc var))
+                       (dun-mprinc var)
                        (dun-mprinc " ")))))))
            (dun-mprinc "\n")))
 
 
 (defun dun-ftp (args)
-  (let (host username passwd ident newlist)
+  (let (host username ident newlist)
     (if (not (car args))
        (dun-mprincl "ftp: hostname required on command line.")
       (setq host (intern (car args)))
@@ -2768,15 +2767,15 @@ drwxr-xr-x  3 root     staff          2048 Jan 1 1970 
..")
          (dun-fascii 'nil)
        (dun-mprincl "Unknown type.")))))
 
-(defun dun-bin (args)
+(defun dun-bin (_args)
   (dun-mprincl "Type set to binary.")
   (setq dun-ftptype 'binary))
 
-(defun dun-fascii (args)
+(defun dun-fascii (_args)
   (dun-mprincl "Type set to ascii.")
   (setq dun-ftptype 'ascii))
 
-(defun dun-ftpquit (args)
+(defun dun-ftpquit (_args)
   (setq dun-exitf t))
 
 (defun dun-send (args)
@@ -2831,18 +2830,18 @@ drwxr-xr-x  3 root     staff          2048 Jan 1 1970 
..")
        (if (not foo)
            (dun-mprincl "No such file."))))))
 
-(defun dun-ftphelp (args)
+(defun dun-ftphelp (_args)
   (dun-mprincl
    "Possible commands are:\nsend    quit    type   ascii  binary   help"))
 
-(defun dun-uexit (args)
+(defun dun-uexit (_args)
   (setq dungeon-mode 'dungeon)
   (dun-mprincl "\nYou step back from the console.")
   (define-key dun-mode-map "\r" 'dun-parse)
   (if (not dun-batch-mode)
       (dun-messages)))
 
-(defun dun-pwd (args)
+(defun dun-pwd (_args)
   (dun-mprincl dun-cdpath))
 
 (defun dun-uncompress (args)
@@ -3009,7 +3008,7 @@ drwxr-xr-x  3 root     staff          2048 Jan 1 1970 ..")
 ;;;; This section defines the DOS emulation functions for dunnet
 ;;;;
 
-(defun dun-dos-parse (args)
+(defun dun-dos-parse (_args)
   (interactive "*p")
   (beginning-of-line)
   (let (beg)
@@ -3047,7 +3046,7 @@ drwxr-xr-x  3 root     staff          2048 Jan 1 1970 ..")
          (dun-mprincl (upcase args))))
     (dun-mprincl "Must supply file name")))
 
-(defun dun-dos-invd (args)
+(defun dun-dos-invd (_args)
   (sleep-for 1)
   (dun-mprincl "Invalid drive specification"))
 
@@ -3084,11 +3083,11 @@ File not found")))
   (if (not dun-batch-mode)
       (dun-mprinc "\n")))
 
-(defun dun-dos-spawn (args)
+(defun dun-dos-spawn (_args)
   (sleep-for 1)
   (dun-mprincl "Cannot spawn subshell"))
 
-(defun dun-dos-exit (args)
+(defun dun-dos-exit (_args)
   (setq dungeon-mode 'dungeon)
   (dun-mprincl "\nYou power down the machine and step back.")
   (define-key dun-mode-map "\r" 'dun-parse)
@@ -3106,7 +3105,7 @@ File not found")))
   (dun-mprinc dun-combination)
   (dun-mprinc ".\n"))
 
-(defun dun-dos-nil (args))
+(defun dun-dos-nil (_args))
 
 
 ;;;;
@@ -3177,9 +3176,7 @@ File not found")))
 
 
 (defun dun-save-val (varname)
-  (let (value)
-    (setq varname (intern varname))
-    (setq value (eval varname))
+  (let ((value (symbol-value (intern varname))))
     (dun-minsert "(setq ")
     (dun-minsert varname)
     (dun-minsert " ")
@@ -3205,7 +3202,7 @@ File not found")))
 
 
 (defun dun-do-logfile (type how)
-  (let (ferror newscore)
+  (let (ferror)
     (setq ferror nil)
     (switch-to-buffer (get-buffer-create "*score*"))
     (erase-buffer)
@@ -3231,8 +3228,8 @@ File not found")))
            (dun-minsert (cadr (nth (abs room) dun-rooms)))
            (dun-minsert ". score: ")
            (if (> (dun-endgame-score) 0)
-               (dun-minsert (setq newscore (+ 90 (dun-endgame-score))))
-             (dun-minsert (setq newscore (dun-reg-score))))
+               (dun-minsert (+ 90 (dun-endgame-score)))
+             (dun-minsert (dun-reg-score)))
            (dun-minsert " saves: ")
            (dun-minsert dun-numsaves)
            (dun-minsert " commands: ")
@@ -3318,7 +3315,7 @@ File not found")))
          (goto-char (point-max))
          (dun-mprinc "\n"))))
 
-(defun dungeon-nil (arg)
+(defun dungeon-nil (_arg)
   "noop"
   (interactive "*p")
   nil)
@@ -3329,7 +3326,7 @@ File not found")))
   (dun-mprinc "\n")
   (dun-batch-loop))
 
-(unless (not noninteractive)
+(when noninteractive
   (fset 'dun-mprinc 'dun-batch-mprinc)
   (fset 'dun-mprincl 'dun-batch-mprincl)
   (fset 'dun-vparse 'dun-batch-parse)
@@ -3343,8 +3340,8 @@ File not found")))
 
 (provide 'dunnet)
 
-;;; dunnet.el ends here
-
 ;; Local Variables:
 ;; byte-compile-warnings: (not free-vars lexical)
 ;; End:
+
+;;; dunnet.el ends here
diff --git a/lisp/play/fortune.el b/lisp/play/fortune.el
index 4871c45..7b60465 100644
--- a/lisp/play/fortune.el
+++ b/lisp/play/fortune.el
@@ -1,6 +1,6 @@
 ;;; fortune.el --- use fortune to create signatures
 
-;; Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Holger Schauer <address@hidden>
 ;; Keywords: games utils mail
diff --git a/lisp/play/gamegrid.el b/lisp/play/gamegrid.el
index 2c557ba..b0ccbd3 100644
--- a/lisp/play/gamegrid.el
+++ b/lisp/play/gamegrid.el
@@ -1,6 +1,6 @@
 ;;; gamegrid.el --- library for implementing grid-based games on Emacs
 
-;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Glynn Clements <address@hidden>
 ;; Version: 1.02
diff --git a/lisp/play/gametree.el b/lisp/play/gametree.el
index 65ee24c..3954c1d 100644
--- a/lisp/play/gametree.el
+++ b/lisp/play/gametree.el
@@ -1,6 +1,6 @@
 ;;; gametree.el --- manage game analysis trees in Emacs
 
-;; Copyright (C) 1997, 1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Ian T Zimmerman <address@hidden>
 ;; Created: Wed Dec 10 07:41:46 PST 1997
diff --git a/lisp/play/gomoku.el b/lisp/play/gomoku.el
index 02ac240..a2d3447 100644
--- a/lisp/play/gomoku.el
+++ b/lisp/play/gomoku.el
@@ -1,6 +1,6 @@
 ;;; gomoku.el --- Gomoku game between you and Emacs  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1988, 1994, 1996, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1988, 1994, 1996, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Philippe Schnoebelen <address@hidden>
diff --git a/lisp/play/handwrite.el b/lisp/play/handwrite.el
index 1c01106..06b37be 100644
--- a/lisp/play/handwrite.el
+++ b/lisp/play/handwrite.el
@@ -1,6 +1,6 @@
 ;;; handwrite.el --- turns your emacs buffer into a handwritten document
 
-;; Copyright (C) 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Danny Roozendaal (was: <address@hidden>)
 ;; Created: October 21 1996
diff --git a/lisp/play/life.el b/lisp/play/life.el
index fae5133..c5907a9 100644
--- a/lisp/play/life.el
+++ b/lisp/play/life.el
@@ -1,6 +1,6 @@
 ;;; life.el --- John Horton Conway's `Life' game for GNU Emacs
 
-;; Copyright (C) 1988, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Kyle Jones <kyleuunet.uu.net>
 ;; Maintainer: address@hidden
diff --git a/lisp/play/morse.el b/lisp/play/morse.el
index b8b337f..85d9db0 100644
--- a/lisp/play/morse.el
+++ b/lisp/play/morse.el
@@ -1,6 +1,6 @@
 ;;; morse.el --- convert text to morse code and back
 
-;; Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Rick Farnbach <address@hidden>
 ;; Keywords: games
diff --git a/lisp/play/mpuz.el b/lisp/play/mpuz.el
index 377e7b7..8152030 100644
--- a/lisp/play/mpuz.el
+++ b/lisp/play/mpuz.el
@@ -1,6 +1,6 @@
 ;;; mpuz.el --- multiplication puzzle for GNU Emacs
 
-;; Copyright (C) 1990, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Philippe Schnoebelen <address@hidden>
 ;; Overhauled: Daniel Pfeiffer <address@hidden>
diff --git a/lisp/play/pong.el b/lisp/play/pong.el
index bd31983..fb826fb 100644
--- a/lisp/play/pong.el
+++ b/lisp/play/pong.el
@@ -1,6 +1,6 @@
 ;;; pong.el --- classical implementation of pong
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Benjamin Drieu <address@hidden>
 ;; Keywords: games
diff --git a/lisp/play/snake.el b/lisp/play/snake.el
index 371c713..d5904a4 100644
--- a/lisp/play/snake.el
+++ b/lisp/play/snake.el
@@ -1,6 +1,6 @@
 ;;; snake.el --- implementation of Snake for Emacs
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Glynn Clements <address@hidden>
 ;; Created: 1997-09-10
diff --git a/lisp/play/solitaire.el b/lisp/play/solitaire.el
index 8dcaa61..850b805 100644
--- a/lisp/play/solitaire.el
+++ b/lisp/play/solitaire.el
@@ -1,6 +1,6 @@
 ;;; solitaire.el --- game of solitaire in Emacs Lisp
 
-;; Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Jan Schormann <address@hidden>
 ;; Created: Fri afternoon, Jun  3,  1994
diff --git a/lisp/play/spook.el b/lisp/play/spook.el
index 7e8bece..e672772 100644
--- a/lisp/play/spook.el
+++ b/lisp/play/spook.el
@@ -1,6 +1,6 @@
 ;;; spook.el --- spook phrase utility for overloading the NSA line eater
 
-;; Copyright (C) 1988, 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: games
diff --git a/lisp/play/tetris.el b/lisp/play/tetris.el
index d4ab668..d20ac0a 100644
--- a/lisp/play/tetris.el
+++ b/lisp/play/tetris.el
@@ -1,6 +1,6 @@
 ;;; tetris.el --- implementation of Tetris for Emacs
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Glynn Clements <address@hidden>
 ;; Version: 2.01
diff --git a/lisp/play/zone.el b/lisp/play/zone.el
index 0cf5f5b..a718d07 100644
--- a/lisp/play/zone.el
+++ b/lisp/play/zone.el
@@ -1,6 +1,6 @@
 ;;; zone.el --- idle display hacks
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Victor Zandy <address@hidden>
 ;; Maintainer: Thien-Thi Nguyen <address@hidden>
diff --git a/lisp/plstore.el b/lisp/plstore.el
index 01bdd14..b902543 100644
--- a/lisp/plstore.el
+++ b/lisp/plstore.el
@@ -1,5 +1,5 @@
 ;;; plstore.el --- secure plist store -*- lexical-binding: t -*-
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <address@hidden>
 ;; Keywords: PGP, GnuPG
diff --git a/lisp/printing.el b/lisp/printing.el
index 7cf0afb..9970b85 100644
--- a/lisp/printing.el
+++ b/lisp/printing.el
@@ -1,6 +1,6 @@
 ;;; printing.el --- printing utilities
 
-;; Copyright (C) 2000-2001, 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2001, 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;; Maintainer: Vinicius Jose Latorre <address@hidden>
diff --git a/lisp/proced.el b/lisp/proced.el
index db45e20..0736ab0 100644
--- a/lisp/proced.el
+++ b/lisp/proced.el
@@ -1,6 +1,6 @@
 ;;; proced.el --- operate on system processes like dired
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Roland Winkler <address@hidden>
 ;; Keywords: Processes, Unix
diff --git a/lisp/profiler.el b/lisp/profiler.el
index dac42fe..8af2c50 100644
--- a/lisp/profiler.el
+++ b/lisp/profiler.el
@@ -1,6 +1,6 @@
 ;;; profiler.el --- UI and helper functions for Emacs's native profiler -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Tomohiro Matsuyama <address@hidden>
 ;; Keywords: lisp
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index 0c25d4d..10cca6a 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -1,6 +1,6 @@
 ;;; ada-mode.el --- major-mode for editing Ada sources
 
-;; Copyright (C) 1994-1995, 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1995, 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Rolf Ebert      <address@hidden>
 ;;      Markus Heritsch <address@hidden>
diff --git a/lisp/progmodes/ada-prj.el b/lisp/progmodes/ada-prj.el
index 51a8972..f1b9087 100644
--- a/lisp/progmodes/ada-prj.el
+++ b/lisp/progmodes/ada-prj.el
@@ -1,6 +1,6 @@
 ;;; ada-prj.el --- GUI editing of project files for the ada-mode
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Emmanuel Briot <address@hidden>
 ;; Maintainer: Stephen Leake <address@hidden>
@@ -24,17 +24,13 @@
 
 ;;; Commentary:
 
-;;; This package provides a set of functions to easily edit the project
-;;; files used by the ada-mode.
-;;; The only function publicly available here is `ada-customize'.
-;;; See the documentation of the Ada mode for more information on the project
-;;; files.
-;;; Internally, a project file is represented as a property list, with each
-;;; field of the project file matching one property of the list.
-
-
-;;; History:
-;;
+;; This package provides a set of functions to easily edit the project
+;; files used by the ada-mode.
+;; The only function publicly available here is `ada-customize'.
+;; See the documentation of the Ada mode for more information on the project
+;; files.
+;; Internally, a project file is represented as a property list, with each
+;; field of the project file matching one property of the list.
 
 ;;; Code:
 
@@ -45,7 +41,8 @@
 (require 'ada-xref)
 
 (eval-when-compile
-   (require 'ada-mode))
+  (require 'ada-mode))
+(eval-when-compile (require 'cl-lib))
 
 ;; ----- Buffer local variables -------------------------------------------
 
@@ -125,7 +122,7 @@ If the current value of FIELD is the default value, return 
an empty string."
   (let ((file-name (or (plist-get ada-prj-current-values 'filename)
                       (read-file-name "Save project as: ")))
        output)
-    (set 'output
+    (setq output
         (concat
 
          ;;  Save the fields that do not depend on the current buffer
@@ -176,7 +173,7 @@ If the current value of FIELD is the default value, return 
an empty string."
     (kill-buffer "*Edit Ada Mode Project*")
 
     ;; automatically set the new project file as the active one
-    (set 'ada-prj-default-project-file file-name)
+    (setq ada-prj-default-project-file file-name)
 
     ;; force Emacs to reread the project files
     (ada-reread-prj-file file-name)
@@ -195,12 +192,12 @@ One item per line should be found in the file."
       (widen)
       (goto-char (point-min))
       (while (not (eobp))
-       (set 'line (buffer-substring-no-properties (point) (point-at-eol)))
-       (add-to-list 'list line)
+       (setq line (buffer-substring-no-properties (point) (point-at-eol)))
+       (cl-pushnew line list :test #'equal)
        (forward-line 1))
       (kill-buffer nil)
       (set-buffer buffer)
-      (set 'ada-prj-current-values
+      (setq ada-prj-current-values
           (plist-put ada-prj-current-values
                      symbol
                      (append (plist-get ada-prj-current-values symbol)
@@ -215,8 +212,8 @@ One item per line should be found in the file."
       (if (file-directory-p (car subdirs))
          (let ((sub (ada-prj-subdirs-of (car subdirs))))
            (if sub
-               (set 'dirlist (append sub dirlist)))))
-      (set 'subdirs (cdr subdirs)))
+               (setq dirlist (append sub dirlist)))))
+      (setq subdirs (cdr subdirs)))
     dirlist))
 
 (defun ada-prj-load-directory (field &optional file-name)
@@ -227,9 +224,9 @@ If FILE-NAME is nil, ask the user for the name."
   ;;  the user to select a directory
   (let ((use-dialog-box nil))
     (unless file-name
-      (set 'file-name (read-directory-name "Root directory: " nil nil t))))
+      (setq file-name (read-directory-name "Root directory: " nil nil t))))
 
-  (set 'ada-prj-current-values
+  (setq ada-prj-current-values
        (plist-put ada-prj-current-values
                  field
                  (append (plist-get ada-prj-current-values field)
@@ -551,7 +548,7 @@ converted to a directory name."
 Remaining args DUMMY are ignored.
 Save the change in `ada-prj-current-values' so that selecting
 another page and coming back keeps the new value."
-  (set 'ada-prj-current-values
+  (setq ada-prj-current-values
        (plist-put ada-prj-current-values
                  (widget-get widget ':prj-field)
                  (widget-value widget))))
@@ -621,7 +618,7 @@ AFTER-TEXT is inserted just after the widget."
        (inhibit-read-only t)
        widget)
     (unless value
-      (set 'value
+      (setq value
           (if is-list  '() "")))
     (widget-insert text)
     (widget-insert ":")
@@ -649,7 +646,7 @@ AFTER-TEXT is inserted just after the widget."
                         "Load Recursive Directory")
          (widget-insert "\n           ${build_dir}\n")))
 
-    (set 'widget
+    (setq widget
         (if is-list
             (if (< (length value) 15)
                 (widget-create 'editable-list
diff --git a/lisp/progmodes/ada-stmt.el b/lisp/progmodes/ada-stmt.el
index b3f497a..2b39068 100644
--- a/lisp/progmodes/ada-stmt.el
+++ b/lisp/progmodes/ada-stmt.el
@@ -1,6 +1,6 @@
 ;;; ada-stmt.el --- an extension to Ada mode for inserting statement templates
 
-;; Copyright (C) 1987, 1993-1994, 1996-2016 Free Software Foundation,
+;; Copyright (C) 1987, 1993-1994, 1996-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Authors: Daniel Pfeiffer
diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el
index b3248d3..4e19650 100644
--- a/lisp/progmodes/ada-xref.el
+++ b/lisp/progmodes/ada-xref.el
@@ -1,6 +1,6 @@
 ;; ada-xref.el --- for lookup and completion in Ada mode
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Author: Markus Heritsch <address@hidden>
 ;;      Rolf Ebert <address@hidden>
@@ -25,19 +25,14 @@
 ;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
-;;; This Package provides a set of functions to use the output of the
-;;; cross reference capabilities of the GNAT Ada compiler
-;;; for lookup and completion in Ada mode.
-;;;
-;;; If a file *.`adp' exists in the ada-file directory, then it is
-;;; read for configuration information.  It is read only the first
-;;; time a cross-reference is asked for, and is not read later.
 
-;;; You need Emacs >= 20.2 to run this package
-
-
-;;; History:
+;; This Package provides a set of functions to use the output of the
+;; cross reference capabilities of the GNAT Ada compiler
+;; for lookup and completion in Ada mode.
 ;;
+;; If a file *.`adp' exists in the ada-file directory, then it is
+;; read for configuration information.  It is read only the first
+;; time a cross-reference is asked for, and is not read later.
 
 ;;; Code:
 
@@ -47,6 +42,7 @@
 (require 'comint)
 (require 'find-file)
 (require 'ada-mode)
+(eval-when-compile (require 'cl-lib))
 
 ;; ------ User variables
 (defcustom ada-xref-other-buffer t
@@ -318,9 +314,9 @@ CROSS-PREFIX is the prefix to use for the `gnatls' command."
                (forward-line 1)
                (while (not (looking-at "^$"))
                  (back-to-indentation)
-                 (if (looking-at "<Current_Directory>")
-                     (add-to-list 'ada-xref-runtime-library-specs-path  ".")
-                   (add-to-list 'ada-xref-runtime-library-specs-path
+                 (add-to-list 'ada-xref-runtime-library-specs-path
+                               (if (looking-at "<Current_Directory>")
+                                   "."
                                 (buffer-substring-no-properties
                                  (point)
                                  (point-at-eol))))
@@ -332,9 +328,9 @@ CROSS-PREFIX is the prefix to use for the `gnatls' command."
                (forward-line 1)
                (while (not (looking-at "^$"))
                  (back-to-indentation)
-                 (if (looking-at "<Current_Directory>")
-                     (add-to-list 'ada-xref-runtime-library-ali-path ".")
-                   (add-to-list 'ada-xref-runtime-library-ali-path
+                 (add-to-list 'ada-xref-runtime-library-ali-path
+                               (if (looking-at "<Current_Directory>")
+                                   "."
                                 (buffer-substring-no-properties
                                  (point)
                                  (point-at-eol))))
@@ -380,12 +376,12 @@ Assumes environment variable ADA_PROJECT_PATH is set 
properly."
          (forward-line 1) ; first directory in list
          (while (not (looking-at "^$")) ; terminate on blank line
            (back-to-indentation) ; skip whitespace
-           (add-to-list 'src-dir
-                         (if (looking-at "<Current_Directory>")
-                             default-directory
-                          (expand-file-name
-                           (buffer-substring-no-properties
-                            (point) (line-end-position)))))
+           (cl-pushnew (if (looking-at "<Current_Directory>")
+                            default-directory
+                          (expand-file-name
+                           (buffer-substring-no-properties
+                            (point) (line-end-position))))
+                        src-dir :test #'equal)
            (forward-line 1))
 
          ;;  Object path
@@ -394,12 +390,12 @@ Assumes environment variable ADA_PROJECT_PATH is set 
properly."
          (forward-line 1)
          (while (not (looking-at "^$"))
            (back-to-indentation)
-           (add-to-list 'obj-dir
-                         (if (looking-at "<Current_Directory>")
-                             default-directory
-                          (expand-file-name
-                           (buffer-substring-no-properties
-                            (point) (line-end-position)))))
+           (cl-pushnew (if (looking-at "<Current_Directory>")
+                            default-directory
+                          (expand-file-name
+                           (buffer-substring-no-properties
+                            (point) (line-end-position))))
+                        obj-dir :test #'equal)
            (forward-line 1))
 
          ;; Set properties
@@ -831,9 +827,9 @@ Return new value of PROJECT."
           ;; FIXME: strip trailing spaces
           ;; variable name alphabetical order
           ((string= (match-string 1) "ada_project_path")
-           (add-to-list 'ada_project_path
-                        (expand-file-name
-                         (substitute-in-file-name (match-string 2)))))
+           (cl-pushnew (expand-file-name
+                         (substitute-in-file-name (match-string 2)))
+                        ada_project_path :test #'equal))
 
           ((string= (match-string 1) "build_dir")
            (setq project
@@ -841,40 +837,40 @@ Return new value of PROJECT."
                            (file-name-as-directory (match-string 2)))))
 
           ((string= (match-string 1) "casing")
-           (add-to-list 'casing
-                        (expand-file-name (substitute-in-file-name 
(match-string 2)))))
+           (cl-pushnew (expand-file-name (substitute-in-file-name 
(match-string 2)))
+                        casing :test #'equal))
 
           ((string= (match-string 1) "check_cmd")
-           (add-to-list 'check_cmd (match-string 2)))
+           (cl-pushnew (match-string 2) check_cmd :test #'equal))
 
           ((string= (match-string 1) "comp_cmd")
-           (add-to-list 'comp_cmd (match-string 2)))
+           (cl-pushnew (match-string 2) comp_cmd :test #'equal))
 
           ((string= (match-string 1) "debug_post_cmd")
-           (add-to-list 'debug_post_cmd (match-string 2)))
+           (cl-pushnew (match-string 2) debug_post_cmd :test #'equal))
 
           ((string= (match-string 1) "debug_pre_cmd")
-           (add-to-list 'debug_pre_cmd (match-string 2)))
+           (cl-pushnew (match-string 2) debug_pre_cmd :test #'equal))
 
           ((string= (match-string 1) "gpr_file")
            ;; expand now; path is relative to Emacs project file
            (setq gpr_file (expand-file-name (match-string 2))))
 
           ((string= (match-string 1) "make_cmd")
-           (add-to-list 'make_cmd (match-string 2)))
+           (cl-pushnew (match-string 2) make_cmd :test #'equal))
 
           ((string= (match-string 1) "obj_dir")
-           (add-to-list 'obj_dir
-                        (file-name-as-directory
-                         (expand-file-name (match-string 2)))))
+           (cl-pushnew (file-name-as-directory
+                         (expand-file-name (match-string 2)))
+                        obj_dir :test #'equal))
 
           ((string= (match-string 1) "run_cmd")
-           (add-to-list 'run_cmd (match-string 2)))
+           (cl-pushnew (match-string 2) run_cmd :test #'equal))
 
           ((string= (match-string 1) "src_dir")
-           (add-to-list 'src_dir
-                        (file-name-as-directory
-                         (expand-file-name (match-string 2)))))
+           (cl-pushnew (file-name-as-directory
+                         (expand-file-name (match-string 2)))
+                        src_dir :test #'equal))
 
           (t
            ;; any other field in the file is just copied
@@ -1866,8 +1862,8 @@ This function is disabled for operators, and only works 
for identifiers."
                )
              ;; construct a list with the file names and the positions within
              (if (re-search-backward "^X [0-9]+ \\([a-zA-Z0-9._-]+\\)" nil t)
-                 (add-to-list
-                  'declist (list line-ali (match-string 1) line-ada col-ada))
+                 (cl-pushnew (list line-ali (match-string 1) line-ada col-ada)
+                              declist :test #'equal)
                )
              )
            )
diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el
index 3df7c13..2d09e43 100644
--- a/lisp/progmodes/antlr-mode.el
+++ b/lisp/progmodes/antlr-mode.el
@@ -1,6 +1,6 @@
 ;;; antlr-mode.el --- major mode for ANTLR grammar files
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Christoph Wedler <address@hidden>
 ;; Keywords: languages, ANTLR, code generator
diff --git a/lisp/progmodes/asm-mode.el b/lisp/progmodes/asm-mode.el
index 40c2b77..2a1dad6 100644
--- a/lisp/progmodes/asm-mode.el
+++ b/lisp/progmodes/asm-mode.el
@@ -1,6 +1,6 @@
 ;;; asm-mode.el --- mode for editing assembler code
 
-;; Copyright (C) 1991, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric S. Raymond <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/progmodes/autoconf.el b/lisp/progmodes/autoconf.el
index 205e663..6d58faa 100644
--- a/lisp/progmodes/autoconf.el
+++ b/lisp/progmodes/autoconf.el
@@ -1,6 +1,6 @@
 ;;; autoconf.el --- mode for editing Autoconf configure.ac files
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Keywords: languages
diff --git a/lisp/progmodes/bat-mode.el b/lisp/progmodes/bat-mode.el
index 78c30bf..156331c 100644
--- a/lisp/progmodes/bat-mode.el
+++ b/lisp/progmodes/bat-mode.el
@@ -1,6 +1,6 @@
 ;;; bat-mode.el --- Major mode for editing DOS/Windows scripts
 
-;; Copyright (C) 2003, 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Arni Magnusson <address@hidden>
 ;; Keywords: languages
diff --git a/lisp/progmodes/bug-reference.el b/lisp/progmodes/bug-reference.el
index 50a2ff6..210f035 100644
--- a/lisp/progmodes/bug-reference.el
+++ b/lisp/progmodes/bug-reference.el
@@ -1,6 +1,6 @@
 ;; bug-reference.el --- buttonize bug references
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Tom Tromey <address@hidden>
 ;; Created: 21 Mar 2007
diff --git a/lisp/progmodes/cc-align.el b/lisp/progmodes/cc-align.el
index a2077be..7cb36c4 100644
--- a/lisp/progmodes/cc-align.el
+++ b/lisp/progmodes/cc-align.el
@@ -1,6 +1,6 @@
 ;;; cc-align.el --- custom indentation functions for CC Mode
 
-;; Copyright (C) 1985, 1987, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992-2017 Free Software Foundation, Inc.
 
 ;; Authors:    2004- Alan Mackenzie
 ;;             1998- Martin Stjernholm
diff --git a/lisp/progmodes/cc-awk.el b/lisp/progmodes/cc-awk.el
index 525a748..736f1de 100644
--- a/lisp/progmodes/cc-awk.el
+++ b/lisp/progmodes/cc-awk.el
@@ -1,6 +1,6 @@
 ;;; cc-awk.el --- AWK specific code within cc-mode.
 
-;; Copyright (C) 1988, 1994, 1996, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1988, 1994, 1996, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Alan Mackenzie <address@hidden> (originally based on awk-mode.el)
diff --git a/lisp/progmodes/cc-bytecomp.el b/lisp/progmodes/cc-bytecomp.el
index 47ff8e4..e98b3df 100644
--- a/lisp/progmodes/cc-bytecomp.el
+++ b/lisp/progmodes/cc-bytecomp.el
@@ -1,6 +1,6 @@
 ;;; cc-bytecomp.el --- compile time setup for proper compilation
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author:     Martin Stjernholm
 ;; Maintainer: address@hidden
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el
index cdca67c..561e676 100644
--- a/lisp/progmodes/cc-cmds.el
+++ b/lisp/progmodes/cc-cmds.el
@@ -1,6 +1,6 @@
 ;;; cc-cmds.el --- user level commands for CC Mode
 
-;; Copyright (C) 1985, 1987, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992-2017 Free Software Foundation, Inc.
 
 ;; Authors:    2003- Alan Mackenzie
 ;;             1998- Martin Stjernholm
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index ab4baa2..3fdd561 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -1,6 +1,6 @@
 ;;; cc-defs.el --- compile time definitions for CC Mode
 
-;; Copyright (C) 1985, 1987, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992-2017 Free Software Foundation, Inc.
 
 ;; Authors:    2003- Alan Mackenzie
 ;;             1998- Martin Stjernholm
@@ -94,7 +94,7 @@
 
 ;;; Variables also used at compile time.
 
-(defconst c-version "5.33"
+(defconst c-version "5.32.99"
   "CC Mode version number.")
 
 (defconst c-version-sym (intern c-version))
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 5a26c0f..fd7aa50 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -1,6 +1,6 @@
 ;;; cc-engine.el --- core syntax guessing engine for CC mode -*- coding: utf-8 
-*-
 
-;; Copyright (C) 1985, 1987, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992-2017 Free Software Foundation, Inc.
 
 ;; Authors:    2001- Alan Mackenzie
 ;;             1998- Martin Stjernholm
@@ -313,7 +313,8 @@ comment at the start of cc-engine.el for more info."
                   (c-macro-is-genuine-p))
              (progn
                (setq c-macro-cache (cons (point) nil)
-                     c-macro-cache-start-pos here)
+                     c-macro-cache-start-pos here
+                     c-macro-cache-syntactic nil)
                t)
            (goto-char here)
            nil))))))
@@ -344,7 +345,8 @@ comment at the start of cc-engine.el for more info."
                (forward-char)
                t)))
      (when (car c-macro-cache)
-       (setcdr c-macro-cache (point)))))
+       (setcdr c-macro-cache (point))
+       (setq c-macro-cache-syntactic nil))))
 
 (defun c-syntactic-end-of-macro ()
   ;; Go to the end of a CPP directive, or a "safe" pos just before.
@@ -364,7 +366,8 @@ comment at the start of cc-engine.el for more info."
        (goto-char c-macro-cache-syntactic)
       (setq s (parse-partial-sexp here there))
       (while (and (or (nth 3 s)         ; in a string
-                     (nth 4 s)) ; in a comment (maybe at end of line comment)
+                     (and (nth 4 s) ; in a comment (maybe at end of line 
comment)
+                          (not (eq (nth 7 s) 'syntax-table)))) ; Not a pseudo 
comment
                  (> there here))       ; No infinite loops, please.
        (setq there (1- (nth 8 s)))
        (setq s (parse-partial-sexp here there)))
@@ -389,7 +392,8 @@ comment at the start of cc-engine.el for more info."
                  (> there here))       ; No infinite loops, please.
        (setq here (1+ (nth 8 s)))
        (setq s (parse-partial-sexp here there)))
-      (when (nth 4 s)
+      (when (and (nth 4 s)
+                (not (eq (nth 7 s) 'syntax-table))) ; no pseudo comments.
        (goto-char (1- (nth 8 s))))
       (setq c-macro-cache-no-comment (point)))
     (point)))
@@ -1708,46 +1712,127 @@ comment at the start of cc-engine.el for more info."
         `((c-debug-remove-face beg end 'c-debug-is-sws-face)
           (c-debug-remove-face beg end 'c-debug-in-sws-face)))))
 
-(defsubst c-invalidate-sws-region-after (beg end)
-  ;; Called from `after-change-functions'.  Note that if
-  ;; `c-forward-sws' or `c-backward-sws' are used outside
+;; The type of literal position `end' is in in a `before-change-functions'
+;; function - one of `c', `c++', `pound', or nil (but NOT `string').
+(defvar c-sws-lit-type nil)
+;; A cons (START . STOP) of the bounds of the comment or CPP construct
+;; enclosing END, if any, else nil.
+(defvar c-sws-lit-limits nil)
+
+(defun c-invalidate-sws-region-before (end)
+  ;; Called from c-before-change.  END is the end of the change region, the
+  ;; standard parameter given to all before-change-functions.
+  ;;
+  ;; Note whether END is inside a comment or CPP construct, and if so note its
+  ;; bounds in `c-sws-lit-limits' and type in `c-sws-lit-type'.
+  (save-excursion
+    (goto-char end)
+    (let* ((limits (c-literal-limits))
+          (lit-type (c-literal-type limits)))
+      (cond
+       ((memq lit-type '(c c++))
+       (setq c-sws-lit-type lit-type
+             c-sws-lit-limits limits))
+       ((c-beginning-of-macro)
+       (setq c-sws-lit-type 'pound
+             c-sws-lit-limits (cons (point)
+                                    (progn (c-end-of-macro) (point)))))
+       (t (setq c-sws-lit-type nil
+               c-sws-lit-limits nil))))))
+
+(defun c-invalidate-sws-region-after-del (beg end old-len)
+  ;; Text has been deleted, OLD-LEN characters of it starting from position
+  ;; BEG.  END is typically eq to BEG.  Should there have been a comment or
+  ;; CPP construct open at END before the deletion, check whether this
+  ;; deletion deleted or "damaged" its opening delimiter.  If so, return the
+  ;; current position of where the construct ended, otherwise return nil.
+  (when c-sws-lit-limits
+    (setcdr c-sws-lit-limits (- (cdr c-sws-lit-limits) old-len))
+    (if (and (< beg (+ (car c-sws-lit-limits) 2)) ; A lazy assumption that
+                                                 ; comment delimiters are 2
+                                                 ; chars long.
+            (or (get-text-property end 'c-in-sws)
+                (next-single-property-change end 'c-in-sws nil
+                                             (cdr c-sws-lit-limits))
+                (get-text-property end 'c-is-sws)
+                (next-single-property-change end 'c-is-sws nil
+                                             (cdr c-sws-lit-limits))))
+       (cdr c-sws-lit-limits))))
+
+(defun c-invalidate-sws-region-after-ins (end)
+  ;; Text has been inserted, ending at buffer position END.  Should there be a
+  ;; literal or CPP construct open at END, check whether there are `c-in-sws'
+  ;; or `c-is-sws' text properties inside this literal.  If there are, return
+  ;; the buffer position of the end of the literal, else return nil.
+  (save-excursion
+    (let* ((limits (c-literal-limits))
+          (lit-type (c-literal-type limits)))
+      (goto-char end)
+      (when (and (not (memq lit-type '(c c++)))
+                (c-beginning-of-macro))
+       (setq lit-type 'pound
+             limits (cons (point)
+                          (progn (c-end-of-macro) (point)))))
+      (when (memq lit-type '(c c++ pound))
+       (let ((next-in (next-single-property-change (car limits) 'c-in-sws
+                                                   nil (cdr limits)))
+             (next-is (next-single-property-change (car limits) 'c-is-sws
+                                                   nil (cdr limits))))
+         (and (or next-in next-is)
+              (cdr limits)))))))
+
+(defun c-invalidate-sws-region-after (beg end old-len)
+  ;; Called from `after-change-functions'.  Remove any stale `c-in-sws' or
+  ;; `c-is-sws' text properties from the vicinity of the change.  BEG, END,
+  ;; and OLD-LEN are the standard arguments given to after-change functions.
+  ;;
+  ;; Note that if `c-forward-sws' or `c-backward-sws' are used outside
   ;; `c-save-buffer-state' or similar then this will remove the cache
   ;; properties right after they're added.
   ;;
   ;; This function does hidden buffer changes.
+  (let ((del-end
+        (and (> old-len 0)
+             (c-invalidate-sws-region-after-del beg end old-len)))
+       (ins-end
+        (and (> end beg)
+             (c-invalidate-sws-region-after-ins end))))
+    (save-excursion
+      ;; Adjust the end to remove the properties in any following simple
+      ;; ws up to and including the next line break, if there is any
+      ;; after the changed region. This is necessary e.g. when a rung
+      ;; marked empty line is converted to a line comment by inserting
+      ;; "//" before the line break. In that case the line break would
+      ;; keep the rung mark which could make a later `c-backward-sws'
+      ;; move into the line comment instead of over it.
+      (goto-char end)
+      (skip-chars-forward " \t\f\v")
+      (when (and (eolp) (not (eobp)))
+       (setq end (1+ (point)))))
+
+    (when (and (= beg end)
+              (get-text-property beg 'c-in-sws)
+              (> beg (point-min))
+              (get-text-property (1- beg) 'c-in-sws))
+      ;; Ensure that an `c-in-sws' range gets broken.  Note that it isn't
+      ;; safe to keep a range that was continuous before the change.  E.g:
+      ;;
+      ;;    #define foo
+      ;;         \
+      ;;    bar
+      ;;
+      ;; There can be a "ladder" between "#" and "b".  Now, if the newline
+      ;; after "foo" is removed then "bar" will become part of the cpp
+      ;; directive instead of a syntactically relevant token.  In that
+      ;; case there's no longer syntactic ws from "#" to "b".
+      (setq beg (1- beg)))
 
-  (save-excursion
-    ;; Adjust the end to remove the properties in any following simple
-    ;; ws up to and including the next line break, if there is any
-    ;; after the changed region. This is necessary e.g. when a rung
-    ;; marked empty line is converted to a line comment by inserting
-    ;; "//" before the line break. In that case the line break would
-    ;; keep the rung mark which could make a later `c-backward-sws'
-    ;; move into the line comment instead of over it.
-    (goto-char end)
-    (skip-chars-forward " \t\f\v")
-    (when (and (eolp) (not (eobp)))
-      (setq end (1+ (point)))))
-
-  (when (and (= beg end)
-            (get-text-property beg 'c-in-sws)
-            (> beg (point-min))
-            (get-text-property (1- beg) 'c-in-sws))
-    ;; Ensure that an `c-in-sws' range gets broken.  Note that it isn't
-    ;; safe to keep a range that was continuous before the change.  E.g:
-    ;;
-    ;;    #define foo
-    ;;         \
-    ;;    bar
-    ;;
-    ;; There can be a "ladder" between "#" and "b".  Now, if the newline
-    ;; after "foo" is removed then "bar" will become part of the cpp
-    ;; directive instead of a syntactically relevant token.  In that
-    ;; case there's no longer syntactic ws from "#" to "b".
-    (setq beg (1- beg)))
-
-  (c-debug-sws-msg "c-invalidate-sws-region-after [%s..%s]" beg end)
-  (c-remove-is-and-in-sws beg end))
+    (setq end (max (or del-end end)
+                  (or ins-end end)
+                  end))
+
+    (c-debug-sws-msg "c-invalidate-sws-region-after [%s..%s]" beg end)
+    (c-remove-is-and-in-sws beg end)))
 
 (defun c-forward-sws ()
   ;; Used by `c-forward-syntactic-ws' to implement the unbounded search.
@@ -2326,7 +2411,9 @@ comment at the start of cc-engine.el for more info."
               (s (parse-partial-sexp base here nil nil s))
               ty)
          (cond
-          ((or (nth 3 s) (nth 4 s))    ; in a string or comment
+          ((or (nth 3 s)
+               (and (nth 4 s)
+                    (not (eq (nth 7 s) 'syntax-table)))) ; in a string or 
comment
            (setq ty (cond
                      ((nth 3 s) 'string)
                      ((nth 7 s) 'c++)
@@ -2372,7 +2459,9 @@ comment at the start of cc-engine.el for more info."
               (s (parse-partial-sexp base here nil nil s))
               ty start)
          (cond
-          ((or (nth 3 s) (nth 4 s))    ; in a string or comment
+          ((or (nth 3 s)
+               (and (nth 4 s)
+                    (not (eq (nth 7 s) 'syntax-table)))) ; in a string or 
comment
            (setq ty (cond
                      ((nth 3 s) 'string)
                      ((nth 7 s) 'c++)
@@ -2398,7 +2487,7 @@ comment at the start of cc-engine.el for more info."
 
           (t (list s))))))))
 
-(defsubst c-state-pp-to-literal (from to &optional not-in-delimiter)
+(defun c-state-pp-to-literal (from to &optional not-in-delimiter)
   ;; Do a parse-partial-sexp from FROM to TO, returning either
   ;;     (STATE TYPE (BEG . END))     if TO is in a literal; or
   ;;     (STATE)                      otherwise,
@@ -2417,7 +2506,9 @@ comment at the start of cc-engine.el for more info."
       (let ((s (parse-partial-sexp from to))
            ty co-st)
        (cond
-        ((or (nth 3 s) (nth 4 s))      ; in a string or comment
+        ((or (nth 3 s)
+             (and (nth 4 s)
+                  (not (eq (nth 7 s) 'syntax-table)))) ; in a string or comment
          (setq ty (cond
                    ((nth 3 s) 'string)
                    ((nth 7 s) 'c++)
@@ -2479,7 +2570,8 @@ comment at the start of cc-engine.el for more info."
   (cond
    ((nth 3 state)                      ; A string
     (list (point) (nth 3 state) (nth 8 state)))
-   ((nth 4 state)                      ; A comment
+   ((and (nth 4 state)                 ; A comment
+        (not (eq (nth 7 state) 'syntax-table))) ; but not a psuedo comment.
     (list (point)
          (if (eq (nth 7 state) 1) 'c++ 'c)
          (nth 8 state)))
@@ -2616,7 +2708,7 @@ comment at the start of cc-engine.el for more info."
     (widen)
     (save-excursion
       (let ((pos (c-state-safe-place here)))
-           (car (cddr (c-state-pp-to-literal pos here)))))))
+       (car (cddr (c-state-pp-to-literal pos here)))))))
 
 (defsubst c-state-lit-beg (pos)
   ;; Return the start of the literal containing POS, or POS itself.
@@ -2627,7 +2719,8 @@ comment at the start of cc-engine.el for more info."
   ;; Return a position outside of a string/comment/macro at or before POS.
   ;; STATE is the parse-partial-sexp state at POS.
   (let ((res (if (or (nth 3 state)     ; in a string?
-                    (nth 4 state))     ; in a comment?
+                    (and (nth 4 state)
+                         (not (eq (nth 7 state) 'syntax-table)))) ; in a 
comment?
                 (nth 8 state)
               pos)))
     (save-excursion
@@ -2850,11 +2943,23 @@ comment at the start of cc-engine.el for more info."
   ;; o - ('BOD START-POINT) - scan forwards from START-POINT, which is at the
   ;;   top level.
   ;; o - ('IN-LIT nil) - point is inside the literal containing point-min.
-  (let ((cache-pos (c-get-cache-scan-pos here))        ; highest position 
below HERE in cache (or 1)
-       BOD-pos             ; position of 2nd BOD before HERE.
-       strategy            ; 'forward, 'backward, 'BOD, or 'IN-LIT.
-       start-point
-       how-far)                        ; putative scanning distance.
+  (let* ((in-macro-start             ; start of macro containing HERE or nil.
+         (save-excursion
+           (goto-char here)
+           (and (c-beginning-of-macro)
+                (point))))
+        (changed-macro-start
+         (and in-macro-start
+              (not (and c-state-old-cpp-beg
+                        (= in-macro-start c-state-old-cpp-beg)))
+              in-macro-start))
+        (cache-pos (c-get-cache-scan-pos (if changed-macro-start
+                                             (min changed-macro-start here)
+                                           here))) ; highest suitable position 
in cache (or 1)
+        BOD-pos                      ; position of 2nd BOD before HERE.
+        strategy                     ; 'forward, 'backward, 'BOD, or 'IN-LIT.
+        start-point
+        how-far)                       ; putative scanning distance.
     (setq good-pos (or good-pos (c-state-get-min-scan-pos)))
     (cond
      ((< here (c-state-get-min-scan-pos))
@@ -2864,7 +2969,9 @@ comment at the start of cc-engine.el for more info."
            how-far 0))
      ((<= good-pos here)
       (setq strategy 'forward
-           start-point (max good-pos cache-pos)
+           start-point (if changed-macro-start
+                           cache-pos
+                         (max good-pos cache-pos))
            how-far (- here start-point)))
      ((< (- good-pos here) (- here cache-pos)) ; FIXME!!! ; apply some sort of 
weighting.
       (setq strategy 'backward
@@ -3372,7 +3479,7 @@ comment at the start of cc-engine.el for more info."
      ((and (consp (car c-state-cache))
           (> (cdar c-state-cache) here))
       ;; CASE 1: The top of the cache is a brace pair which now encloses
-      ;; `here'.  As good-pos, return the address. of the "{".  Since we've no
+      ;; `here'.  As good-pos, return the address of the "{".  Since we've no
       ;; knowledge of what's inside these braces, we have no alternative but
       ;; to direct the caller to scan the buffer from the opening brace.
       (setq pos (caar c-state-cache))
@@ -4857,7 +4964,8 @@ comment at the start of cc-engine.el for more info."
         (lit-limits
          (if lim
              (let ((s (parse-partial-sexp lim (point))))
-               (when (or (nth 3 s) (nth 4 s))
+               (when (or (nth 3 s)
+                         (and (nth 4 s) (not (eq (nth 7 s) 'syntax-table))))
                  (cons (nth 8 s)
                        (progn (parse-partial-sexp (point) (point-max)
                                                   nil nil
@@ -4910,7 +5018,8 @@ point isn't in one.  SAFE-POS, if non-nil, is a position 
before point which is
 a known \"safe position\", i.e. outside of any string or comment."
   (if safe-pos
       (let ((s (parse-partial-sexp safe-pos (point))))
-       (and (or (nth 3 s) (nth 4 s))
+       (and (or (nth 3 s)
+                (and (nth 4 s) (not (eq (nth 7 s) 'syntax-table))))
             (nth 8 s)))
     (car (cddr (c-state-semi-pp-to-literal (point))))))
 
@@ -5011,7 +5120,8 @@ comment at the start of cc-engine.el for more info."
                 'syntax-table))        ; stop-comment
 
        ;; Gather details of the non-literal-bit - starting pos and size.
-       (setq size (- (if (or (nth 4 s) (nth 3 s))
+       (setq size (- (if (or (and (nth 4 s) (not (eq (nth 7 s) 'syntax-table)))
+                             (nth 3 s))
                          (nth 8 s)
                        (point))
                      pos))
@@ -5019,7 +5129,8 @@ comment at the start of cc-engine.el for more info."
            (setq stack (cons (cons pos size) stack)))
 
        ;; Move forward to the end of the comment/string.
-       (if (or (nth 4 s) (nth 3 s))
+       (if (or (and (nth 4 s) (not (eq (nth 7 s) 'syntax-table)))
+               (nth 3 s))
            (setq s (parse-partial-sexp
                     (point)
                     start
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index 26a002a..f623b9f 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -1,6 +1,6 @@
 ;;; cc-fonts.el --- font lock support for CC Mode
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Authors:    2003- Alan Mackenzie
 ;;             2002- Martin Stjernholm
@@ -1311,6 +1311,13 @@ casts and declarations are fontified.  Used on level 2 
and higher."
                     ;; multiline declaration.
                     (c-put-char-property (1- match-pos)
                                          'c-type 'c-decl-arg-start))
+                   ;; Got an open paren preceded by an arith operator.
+                   ((and (eq (char-before match-pos) ?\()
+                         (save-excursion
+                           (and (zerop (c-backward-token-2 2))
+                                (looking-at c-arithmetic-op-regexp))))
+                    (setq context nil
+                          c-restricted-<>-arglists nil))
                    (t (setq context 'arglist
                             c-restricted-<>-arglists t))))
 
@@ -1486,6 +1493,22 @@ casts and declarations are fontified.  Used on level 2 
and higher."
 
       nil)))
 
+(defun c-font-lock-enum-body (limit)
+  ;; Fontify the identifiers of each enum we find by searching forward.
+  ;;
+  ;; This function will be called from font-lock for a region bounded by POINT
+  ;; and LIMIT, as though it were to identify a keyword for
+  ;; font-lock-keyword-face.  It always returns NIL to inhibit this and
+  ;; prevent a repeat invocation.  See elisp/lispref page "Search-based
+  ;; Fontification".
+  (while (search-forward-regexp c-enum-clause-introduction-re limit t)
+    (when (save-excursion
+           (backward-char)
+           (c-backward-over-enum-header))
+      (c-forward-syntactic-ws)
+      (c-font-lock-declarators limit t nil t)))
+  nil)
+
 (defun c-font-lock-enum-tail (limit)
   ;; Fontify an enum's identifiers when POINT is within the enum's brace
   ;; block.
@@ -2013,29 +2036,14 @@ on level 2 only and so aren't combined with 
`c-complex-decl-matchers'."
 generic casts and declarations are fontified.  Used on level 2 and
 higher."
 
-  t `(,@(when (c-lang-const c-brace-id-list-kwds)
+  t `(,@(when (c-lang-const c-brace-list-decl-kwds)
       ;; Fontify the remaining identifiers inside an enum list when we start
       ;; inside it.
          `(c-font-lock-enum-tail
       ;; Fontify the identifiers inside enum lists.  (The enum type
       ;; name is handled by `c-simple-decl-matchers' or
       ;; `c-complex-decl-matchers' below.
-           (,(c-make-font-lock-search-function
-              (concat
-               "\\<\\("
-               (c-make-keywords-re nil (c-lang-const c-brace-id-list-kwds))
-               "\\)\\>"
-               ;; Disallow various common punctuation chars that can't come
-               ;; before the '{' of the enum list, to avoid searching too far.
-               "[^][{};/#=]*"
-               "{")
-              '((c-font-lock-declarators limit t nil t)
-                (save-match-data
-                  (goto-char (match-end 0))
-                  (c-put-char-property (1- (point)) 'c-type
-                                       'c-decl-id-start)
-                  (c-forward-syntactic-ws))
-                (goto-char (match-end 0)))))))
+           c-font-lock-enum-body))
 
        ;; Fontify labels after goto etc.
        ,@(when (c-lang-const c-before-label-kwds)
diff --git a/lisp/progmodes/cc-guess.el b/lisp/progmodes/cc-guess.el
index d957334..153b3a3 100644
--- a/lisp/progmodes/cc-guess.el
+++ b/lisp/progmodes/cc-guess.el
@@ -1,6 +1,6 @@
 ;;; cc-guess.el --- guess indentation values by scanning existing code
 
-;; Copyright (C) 1985, 1987, 1992-2006, 2011-2016 Free Software
+;; Copyright (C) 1985, 1987, 1992-2006, 2011-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author:     1994-1995 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index 3c32848..0374046 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -1,6 +1,6 @@
 ;;; cc-langs.el --- language specific settings for CC Mode -*- coding: utf-8 
-*-
 
-;; Copyright (C) 1985, 1987, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992-2017 Free Software Foundation, Inc.
 
 ;; Authors:    2002- Alan Mackenzie
 ;;             1998- Martin Stjernholm
@@ -1248,6 +1248,22 @@ operators."
 (c-lang-defvar c-assignment-op-regexp
   (c-lang-const c-assignment-op-regexp))
 
+(c-lang-defconst c-arithmetic-operators
+  "List of all arithmetic operators, including \"+=\", etc."
+  ;; Note: in the following, there are too many operators for AWK and IDL.
+  t (append (c-lang-const c-assignment-operators)
+           '("+" "-" "*" "/" "%"
+             "<<" ">>"
+             "<" ">" "<=" ">="
+             "==" "!="
+             "&" "^" "|"
+             "&&" "||")))
+
+(c-lang-defconst c-arithmetic-op-regexp
+  t (c-make-keywords-re nil
+      (c-lang-const c-arithmetic-operators)))
+(c-lang-defvar c-arithmetic-op-regexp (c-lang-const c-arithmetic-op-regexp))
+
 (c-lang-defconst c-:$-multichar-token-regexp
   ;; Regexp matching all tokens ending in ":" which are longer than one char.
   ;; Currently (2016-01-07) only used in C++ Mode.
@@ -1429,6 +1445,15 @@ properly."
   t    "*/"
   awk  nil)
 
+(c-lang-defconst c-block-comment-ender-regexp
+  ;; Regexp which matches the end of a block comment (if such exists in the
+  ;; language)
+  t (if (c-lang-const c-block-comment-ender)
+       (regexp-quote (c-lang-const c-block-comment-ender))
+      "\\<\\>"))
+(c-lang-defvar c-block-comment-ender-regexp
+              (c-lang-const c-block-comment-ender-regexp))
+
 (c-lang-defconst c-comment-start-regexp
   ;; Regexp to match the start of any type of comment.
   t (let ((re (c-make-keywords-re nil
@@ -3276,6 +3301,24 @@ the invalidity of the putative template construct."
   c++ "[<;{},>()]")
 (c-lang-defvar c-<>-notable-chars-re (c-lang-const c-<>-notable-chars-re))
 
+(c-lang-defconst c-enum-clause-introduction-re
+  ;; A regexp loosely matching the start of an enum clause, starting at the
+  ;; keyword itself, and extending up to the "{".  It may match text which
+  ;; isn't such a construct; more accurate tests will rule these out when
+  ;; needed.
+  t (if (c-lang-const c-brace-list-decl-kwds)
+       (concat
+        "\\<\\("
+        (c-make-keywords-re nil (c-lang-const c-brace-list-decl-kwds))
+        "\\)\\>"
+        ;; Disallow various common punctuation chars that can't come
+        ;; before the '{' of the enum list, to avoid searching too far.
+        "[^][{};/#=]*"
+        "{")
+      "\\<\\>"))
+(c-lang-defvar c-enum-clause-introduction-re
+              (c-lang-const c-enum-clause-introduction-re))
+
 (c-lang-defconst c-enums-contain-decls
   "Non-nil means that an enum structure can contain declarations."
   t nil
diff --git a/lisp/progmodes/cc-menus.el b/lisp/progmodes/cc-menus.el
index 92e5643..126b419 100644
--- a/lisp/progmodes/cc-menus.el
+++ b/lisp/progmodes/cc-menus.el
@@ -1,6 +1,6 @@
 ;;; cc-menus.el --- imenu support for CC Mode
 
-;; Copyright (C) 1985, 1987, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992-2017 Free Software Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index 5b0679a..e2969c6 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -1,6 +1,6 @@
 ;;; cc-mode.el --- major mode for editing C and similar languages
 
-;; Copyright (C) 1985, 1987, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992-2017 Free Software Foundation, Inc.
 
 ;; Authors:    2003- Alan Mackenzie
 ;;             1998- Martin Stjernholm
@@ -1068,7 +1068,8 @@ Note that the style variables are always made local to 
the buffer."
                        (parse-partial-sexp pps-position (point) nil nil 
pps-state)
                        pps-position (point))
                  (or (nth 3 pps-state)    ; in a string?
-                     (nth 4 pps-state)))) ; in a comment?
+                     (and (nth 4 pps-state)
+                          (not (eq (nth 7 pps-state) 'syntax-table)))))) ; in 
a comment?
          (goto-char (match-beginning 1))
          (setq mbeg (point))
          (if (> (c-no-comment-end-of-macro) mbeg)
@@ -1209,6 +1210,7 @@ Note that the style variables are always made local to 
the buffer."
          ;; Are we coalescing two tokens together, e.g. "fo o" -> "foo"?
          (when (< beg end)
            (c-unfind-coalesced-tokens beg end))
+         (c-invalidate-sws-region-before end)
          ;; Are we (potentially) disrupting the syntactic context which
          ;; makes a type a type?  E.g. by inserting stuff after "foo" in
          ;; "foo bar;", or before "foo" in "typedef foo *bar;"?
@@ -1338,7 +1340,7 @@ Note that the style variables are always made local to 
the buffer."
              (c-clear-char-property-with-value beg end 'syntax-table nil)))
 
          (c-trim-found-types beg end old-len) ; maybe we don't need all of 
these.
-         (c-invalidate-sws-region-after beg end)
+         (c-invalidate-sws-region-after beg end old-len)
          ;; (c-invalidate-state-cache beg) ; moved to `c-before-change'.
          (c-invalidate-find-decl-cache beg)
 
diff --git a/lisp/progmodes/cc-styles.el b/lisp/progmodes/cc-styles.el
index 7859218..d350549 100644
--- a/lisp/progmodes/cc-styles.el
+++ b/lisp/progmodes/cc-styles.el
@@ -1,6 +1,6 @@
 ;;; cc-styles.el --- support for styles in CC Mode
 
-;; Copyright (C) 1985, 1987, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992-2017 Free Software Foundation, Inc.
 
 ;; Authors:    2004- Alan Mackenzie
 ;;             1998- Martin Stjernholm
diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el
index 7a6f4ba..a6a96d1 100644
--- a/lisp/progmodes/cc-vars.el
+++ b/lisp/progmodes/cc-vars.el
@@ -1,6 +1,6 @@
 ;;; cc-vars.el --- user customization variables for CC Mode
 
-;; Copyright (C) 1985, 1987, 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992-2017 Free Software Foundation, Inc.
 
 ;; Authors:    2002- Alan Mackenzie
 ;;             1998- Martin Stjernholm
diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el
index 0830214..5bc7b66 100644
--- a/lisp/progmodes/cfengine.el
+++ b/lisp/progmodes/cfengine.el
@@ -1,6 +1,6 @@
 ;;; cfengine.el --- mode for editing Cfengine files
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Maintainer: Ted Zlatanov <address@hidden>
diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el
index 007619d..cafd5ac 100644
--- a/lisp/progmodes/cmacexp.el
+++ b/lisp/progmodes/cmacexp.el
@@ -1,6 +1,6 @@
 ;;; cmacexp.el --- expand C macros in a region
 
-;; Copyright (C) 1992, 1994, 1996, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1992, 1994, 1996, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Francesco Potortì <address@hidden>
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 7f20e79..d35388e 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -1,6 +1,6 @@
 ;;; compile.el --- run compiler as inferior of Emacs, parse error messages  
-*- lexical-binding:t -*-
 
-;; Copyright (C) 1985-1987, 1993-1999, 2001-2016 Free Software
+;; Copyright (C) 1985-1987, 1993-1999, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Authors: Roland McGrath <address@hidden>,
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
index 1138b4d..f4cb478 100644
--- a/lisp/progmodes/cperl-mode.el
+++ b/lisp/progmodes/cperl-mode.el
@@ -1,6 +1,6 @@
 ;;; cperl-mode.el --- Perl code editing commands for Emacs
 
-;; Copyright (C) 1985-1987, 1991-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1987, 1991-2017 Free Software Foundation, Inc.
 
 ;; Author: Ilya Zakharevich
 ;;     Bob Olson
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
index 4e029ea..e35a76e 100644
--- a/lisp/progmodes/cpp.el
+++ b/lisp/progmodes/cpp.el
@@ -1,6 +1,6 @@
 ;;; cpp.el --- highlight or hide text according to cpp conditionals
 
-;; Copyright (C) 1994-1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <address@hidden>
 ;; Keywords: c, faces, tools
diff --git a/lisp/progmodes/cwarn.el b/lisp/progmodes/cwarn.el
index 6c800ab..1c6905a 100644
--- a/lisp/progmodes/cwarn.el
+++ b/lisp/progmodes/cwarn.el
@@ -1,6 +1,6 @@
 ;;; cwarn.el --- highlight suspicious C and C++ constructions
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Anders Lindgren
 ;; Keywords: c, languages, faces
diff --git a/lisp/progmodes/dcl-mode.el b/lisp/progmodes/dcl-mode.el
index ef4ac91..d8e9e03 100644
--- a/lisp/progmodes/dcl-mode.el
+++ b/lisp/progmodes/dcl-mode.el
@@ -1,6 +1,6 @@
 ;;; dcl-mode.el --- major mode for editing DCL command files
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Odd Gripenstam <address@hidden>
 ;; Maintainer: Odd Gripenstam <address@hidden>
diff --git a/lisp/progmodes/ebnf-abn.el b/lisp/progmodes/ebnf-abn.el
index 553beae..a3780eb 100644
--- a/lisp/progmodes/ebnf-abn.el
+++ b/lisp/progmodes/ebnf-abn.el
@@ -1,6 +1,6 @@
 ;;; ebnf-abn.el --- parser for ABNF (Augmented BNF)
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;; Maintainer: Vinicius Jose Latorre <address@hidden>
diff --git a/lisp/progmodes/ebnf-bnf.el b/lisp/progmodes/ebnf-bnf.el
index a2d51c9..a257d39 100644
--- a/lisp/progmodes/ebnf-bnf.el
+++ b/lisp/progmodes/ebnf-bnf.el
@@ -1,6 +1,6 @@
 ;;; ebnf-bnf.el --- parser for EBNF
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;; Maintainer: Vinicius Jose Latorre <address@hidden>
diff --git a/lisp/progmodes/ebnf-dtd.el b/lisp/progmodes/ebnf-dtd.el
index 0963d27..2bea954 100644
--- a/lisp/progmodes/ebnf-dtd.el
+++ b/lisp/progmodes/ebnf-dtd.el
@@ -1,6 +1,6 @@
 ;;; ebnf-dtd.el --- parser for DTD (Data Type Description for XML)
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;; Maintainer: Vinicius Jose Latorre <address@hidden>
diff --git a/lisp/progmodes/ebnf-ebx.el b/lisp/progmodes/ebnf-ebx.el
index eb0fd62..84c67df 100644
--- a/lisp/progmodes/ebnf-ebx.el
+++ b/lisp/progmodes/ebnf-ebx.el
@@ -1,6 +1,6 @@
 ;;; ebnf-ebx.el --- parser for EBNF used to specify XML (EBNFX)
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;; Maintainer: Vinicius Jose Latorre <address@hidden>
diff --git a/lisp/progmodes/ebnf-iso.el b/lisp/progmodes/ebnf-iso.el
index 3b092cd..8847c40 100644
--- a/lisp/progmodes/ebnf-iso.el
+++ b/lisp/progmodes/ebnf-iso.el
@@ -1,6 +1,6 @@
 ;;; ebnf-iso.el --- parser for ISO EBNF
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;; Maintainer: Vinicius Jose Latorre <address@hidden>
diff --git a/lisp/progmodes/ebnf-otz.el b/lisp/progmodes/ebnf-otz.el
index b78a748..31dfd95 100644
--- a/lisp/progmodes/ebnf-otz.el
+++ b/lisp/progmodes/ebnf-otz.el
@@ -1,6 +1,6 @@
 ;;; ebnf-otz.el --- syntactic chart OpTimiZer
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;; Maintainer: Vinicius Jose Latorre <address@hidden>
diff --git a/lisp/progmodes/ebnf-yac.el b/lisp/progmodes/ebnf-yac.el
index aaffce9..3aa02a8 100644
--- a/lisp/progmodes/ebnf-yac.el
+++ b/lisp/progmodes/ebnf-yac.el
@@ -1,6 +1,6 @@
 ;;; ebnf-yac.el --- parser for Yacc/Bison
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;; Maintainer: Vinicius Jose Latorre <address@hidden>
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el
index c4e6268..a8229df 100644
--- a/lisp/progmodes/ebnf2ps.el
+++ b/lisp/progmodes/ebnf2ps.el
@@ -1,6 +1,6 @@
 ;;; ebnf2ps.el --- translate an EBNF to a syntactic chart on PostScript
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;; Maintainer: Vinicius Jose Latorre <address@hidden>
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
index 5a9870b..0b5d7aa 100644
--- a/lisp/progmodes/ebrowse.el
+++ b/lisp/progmodes/ebrowse.el
@@ -1,6 +1,6 @@
 ;;; ebrowse.el --- Emacs C++ class browser & tags facility
 
-;; Copyright (C) 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2017 Free Software Foundation, Inc.
 
 ;; Author: Gerd Moellmann <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index d6f2679..53a0f66 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -1,6 +1,6 @@
 ;;; elisp-mode.el --- Emacs Lisp mode  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1985-1986, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1986, 1999-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: lisp, languages
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index c72f061..8d635cb 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -1,6 +1,6 @@
 ;;; etags.el --- etags facility for Emacs  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1985-1986, 1988-1989, 1992-1996, 1998, 2000-2016 Free
+;; Copyright (C) 1985-1986, 1988-1989, 1992-1996, 1998, 2000-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Author: Roland McGrath <address@hidden>
diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el
index 173bf85..da148bd 100644
--- a/lisp/progmodes/executable.el
+++ b/lisp/progmodes/executable.el
@@ -1,6 +1,6 @@
 ;;; executable.el --- base functionality for executable interpreter scripts 
-*- byte-compile-dynamic: t -*-
 
-;; Copyright (C) 1994-1996, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1996, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Daniel Pfeiffer <address@hidden>
 ;; Keywords: languages, unix
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index d9a3472..b3661bf 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -1,6 +1,6 @@
 ;;; f90.el --- Fortran-90 mode (free format)  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1995-1997, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-1997, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Torbjörn Einarsson <address@hidden>
 ;; Maintainer: Glenn Morris <address@hidden>
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index 846ec22..e488c19 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -1,6 +1,6 @@
 ;;; flymake.el --- a universal on-the-fly syntax checker  -*- lexical-binding: 
t; -*-
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author:  Pavel Kobyakov <address@hidden>
 ;; Maintainer: Leo Liu <address@hidden>
diff --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el
index bd08d3f..b15da92 100644
--- a/lisp/progmodes/fortran.el
+++ b/lisp/progmodes/fortran.el
@@ -1,6 +1,6 @@
 ;;; fortran.el --- Fortran mode for GNU Emacs
 
-;; Copyright (C) 1986, 1993-1995, 1997-2016 Free Software Foundation,
+;; Copyright (C) 1986, 1993-1995, 1997-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Michael D. Prange <address@hidden>
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index 4f8709a..a30669d 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -1,6 +1,6 @@
 ;;; gdb-mi.el --- User Interface for running GDB  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Nick Roberts <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/progmodes/glasses.el b/lisp/progmodes/glasses.el
index 17f5ffd..f476ac0 100644
--- a/lisp/progmodes/glasses.el
+++ b/lisp/progmodes/glasses.el
@@ -1,6 +1,6 @@
 ;;; glasses.el --- make cantReadThis readable
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Milan Zamazal <address@hidden>
 ;; Maintainer: Milan Zamazal <address@hidden>
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index 5112c6b..22d4f2a 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -1,6 +1,6 @@
 ;;; grep.el --- run `grep' and display the results  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1985-1987, 1993-1999, 2001-2016 Free Software
+;; Copyright (C) 1985-1987, 1993-1999, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Roland McGrath <address@hidden>
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 0bdafdb..1301758 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -1,6 +1,6 @@
 ;;; gud.el --- Grand Unified Debugger mode for running GDB and other debuggers 
 -*- lexical-binding:t -*-
 
-;; Copyright (C) 1992-1996, 1998, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1992-1996, 1998, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Eric S. Raymond <address@hidden>
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el
index 9fbb7d6..b34ea1c 100644
--- a/lisp/progmodes/hideif.el
+++ b/lisp/progmodes/hideif.el
@@ -1,6 +1,6 @@
 ;;; hideif.el --- hides selected code within ifdef  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1988, 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Brian Marick
 ;;     Daniel LaLiberte <address@hidden>
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index cabdf45..5328526 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -1,6 +1,6 @@
 ;;; hideshow.el --- minor mode cmds to selectively display code/comment blocks
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Author: Thien-Thi Nguyen <address@hidden>
 ;;      Dan Nicolaescu <address@hidden>
@@ -582,7 +582,7 @@ and then further adjusted to be at the end of the line."
          (setq p (line-end-position)))
        ;; `q' is the point at the end of the block
        (hs-forward-sexp mdata 1)
-       (setq q (if (looking-back hs-block-end-regexp)
+       (setq q (if (looking-back hs-block-end-regexp nil)
                    (match-beginning 0)
                  (point)))
         (when (and (< p q) (> (count-lines p q) 1))
diff --git a/lisp/progmodes/icon.el b/lisp/progmodes/icon.el
index c91f98e..0c699a0 100644
--- a/lisp/progmodes/icon.el
+++ b/lisp/progmodes/icon.el
@@ -1,6 +1,6 @@
 ;;; icon.el --- mode for editing Icon code
 
-;; Copyright (C) 1989, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Chris Smith <address@hidden>
 ;; Created: 15 Feb 89
diff --git a/lisp/progmodes/idlw-complete-structtag.el 
b/lisp/progmodes/idlw-complete-structtag.el
index 26cd46b..d2758cc 100644
--- a/lisp/progmodes/idlw-complete-structtag.el
+++ b/lisp/progmodes/idlw-complete-structtag.el
@@ -1,6 +1,6 @@
 ;;; idlw-complete-structtag.el --- Completion of structure tags.
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: J.D. Smith <address@hidden>
diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el
index 9a3199f..e82ed06 100644
--- a/lisp/progmodes/idlw-help.el
+++ b/lisp/progmodes/idlw-help.el
@@ -1,6 +1,6 @@
 ;;; idlw-help.el --- HTML Help code for IDLWAVE
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 ;;
 ;; Authors: J.D. Smith <address@hidden>
 ;;          Carsten Dominik <address@hidden>
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index af2e48d..1282f08 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -1,6 +1,6 @@
 ;; idlw-shell.el --- run IDL as an inferior process of Emacs.
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Authors: J.D. Smith <address@hidden>
 ;;          Carsten Dominik <address@hidden>
@@ -3597,7 +3597,7 @@ Existing overlays are recycled, in order to minimize 
consumption."
       (if ov-alist
          (while (setq ov-list (pop ov-alist))
            (while (setq ov (pop (cdr ov-list)))
-             (add-to-list 'old-buffers (overlay-buffer ov))
+             (pushnew (overlay-buffer ov) old-buffers)
              (delete-overlay ov))))
 
       (setq ov-alist idlwave-shell-bp-overlays
diff --git a/lisp/progmodes/idlw-toolbar.el b/lisp/progmodes/idlw-toolbar.el
index d857bfd..2fda49d 100644
--- a/lisp/progmodes/idlw-toolbar.el
+++ b/lisp/progmodes/idlw-toolbar.el
@@ -1,6 +1,6 @@
 ;;; idlw-toolbar.el --- a debugging toolbar for IDLWAVE
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: J.D. Smith <address@hidden>
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index bc607ac..f070000 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -1,6 +1,6 @@
 ;; idlwave.el --- IDL editing mode for GNU Emacs
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Authors: J.D. Smith <address@hidden>
 ;;          Carsten Dominik <address@hidden>
diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el
index 843c79e..7de3a79 100644
--- a/lisp/progmodes/inf-lisp.el
+++ b/lisp/progmodes/inf-lisp.el
@@ -1,6 +1,6 @@
 ;;; inf-lisp.el --- an inferior-lisp mode
 
-;; Copyright (C) 1988, 1993-1994, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1988, 1993-1994, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Olin Shivers <address@hidden>
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index 6fff981..74dd4ad 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -1,6 +1,6 @@
 ;;; js.el --- Major mode for editing JavaScript  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Karl Landstrom <address@hidden>
 ;;         Daniel Colascione <address@hidden>
@@ -552,6 +552,20 @@ don't indent the first one's initializer; otherwise, 
indent it.
   :safe 'symbolp
   :group 'js)
 
+(defcustom js-chain-indent nil
+  "Use \"chained\" indentation.
+Chained indentation applies when the current line starts with \".\".
+If the previous expression also contains a \".\" at the same level,
+then the \".\"s will be lined up:
+
+  let x = svg.mumble()
+             .chained;
+"
+  :version "26.1"
+  :type 'boolean
+  :safe 'booleanp
+  :group 'js)
+
 ;;; KeyMap
 
 (defvar js-mode-map
@@ -560,8 +574,8 @@ don't indent the first one's initializer; otherwise, indent 
it.
     (define-key keymap [(control ?c) (control ?j)] #'js-set-js-context)
     (define-key keymap [(control meta ?x)] #'js-eval-defun)
     (define-key keymap [(meta ?.)] #'js-find-symbol)
-    (easy-menu-define nil keymap "Javascript Menu"
-      '("Javascript"
+    (easy-menu-define nil keymap "JavaScript Menu"
+      '("JavaScript"
         ["Select New Mozilla Context..." js-set-js-context
          (fboundp #'inferior-moz-process)]
         ["Evaluate Expression in Mozilla Context..." js-eval
@@ -1698,7 +1712,7 @@ This performs fontification according to 
`js--class-styles'."
               nil))))))
 
 (defun js-syntax-propertize (start end)
-  ;; Javascript allows immediate regular expression objects, written /.../.
+  ;; JavaScript allows immediate regular expression objects, written /.../.
   (goto-char start)
   (js-syntax-propertize-regexp end)
   (funcall
@@ -1706,10 +1720,10 @@ This performs fontification according to 
`js--class-styles'."
     ;; Distinguish /-division from /-regexp chars (and from /-comment-starter).
     ;; FIXME: Allow regexps after infix ops like + ...
     ;; https://developer.mozilla.org/en/JavaScript/Reference/Operators
-    ;; We can probably just add +, -, !, <, >, %, ^, ~, |, &, ?, : at which
+    ;; We can probably just add +, -, <, >, %, ^, ~, ?, : at which
     ;; point I think only * and / would be missing which could also be added,
     ;; but need care to avoid affecting the // and */ comment markers.
-    ("\\(?:^\\|[=([{,:;]\\|\\_<return\\_>\\)\\(?:[ \t]\\)*\\(/\\)[^/*]"
+    ("\\(?:^\\|[=([{,:;|&!]\\|\\_<return\\_>\\)\\(?:[ \t]\\)*\\(/\\)[^/*]"
      (1 (ignore
         (forward-char -1)
          (when (or (not (memq (char-after (match-beginning 0)) '(?\s ?\t)))
@@ -1771,6 +1785,24 @@ This performs fontification according to 
`js--class-styles'."
                  ;; return NaN anyway.  Shouldn't be a problem.
                  (memq (char-before) '(?, ?} ?{))))))))
 
+(defun js--find-newline-backward ()
+  "Move backward to the nearest newline that is not in a block comment."
+  (let ((continue t)
+        (result t))
+    (while continue
+      (setq continue nil)
+      (if (search-backward "\n" nil t)
+          (let ((parse (syntax-ppss)))
+            ;; We match the end of a // comment but not a newline in a
+            ;; block comment.
+            (when (nth 4 parse)
+              (goto-char (nth 8 parse))
+              ;; If we saw a block comment, keep trying.
+              (unless (nth 7 parse)
+                (setq continue t))))
+        (setq result nil)))
+    result))
+
 (defun js--continued-expression-p ()
   "Return non-nil if the current line continues an expression."
   (save-excursion
@@ -1780,7 +1812,7 @@ This performs fontification according to 
`js--class-styles'."
             (progn
               (forward-comment (- (point)))
               (not (memq (char-before) '(?, ?\[ ?\()))))
-      (and (js--re-search-backward "\n" nil t)
+      (and (js--find-newline-backward)
            (progn
              (skip-chars-backward " \t")
              (or (bobp) (backward-char))
@@ -1790,6 +1822,63 @@ This performs fontification according to 
`js--class-styles'."
                   (and (progn (backward-char)
                               (not (looking-at "+\\+\\|--\\|/[/*]"))))))))))
 
+(defun js--skip-term-backward ()
+  "Skip a term before point; return t if a term was skipped."
+  (let ((term-skipped nil))
+    ;; Skip backward over balanced parens.
+    (let ((progress t))
+      (while progress
+        (setq progress nil)
+        ;; First skip whitespace.
+        (skip-syntax-backward " ")
+        ;; Now if we're looking at closing paren, skip to the opener.
+        ;; This doesn't strictly follow JS syntax, in that we might
+        ;; skip something nonsensical like "()[]{}", but it is enough
+        ;; if it works ok for valid input.
+        (when (memq (char-before) '(?\] ?\) ?\}))
+          (setq progress t term-skipped t)
+          (backward-list))))
+    ;; Maybe skip over a symbol.
+    (let ((save-point (point)))
+      (if (and (< (skip-syntax-backward "w_") 0)
+                 (looking-at js--name-re))
+          ;; Skipped.
+          (progn
+            (setq term-skipped t)
+            (skip-syntax-backward " "))
+        ;; Did not skip, so restore point.
+        (goto-char save-point)))
+    (when (and term-skipped (> (point) (point-min)))
+      (backward-char)
+      (eq (char-after) ?.))))
+
+(defun js--skip-terms-backward ()
+  "Skip any number of terms backward.
+Move point to the earliest \".\" without changing paren levels.
+Returns t if successful, nil if no term was found."
+  (when (js--skip-term-backward)
+    ;; Found at least one.
+    (let ((last-point (point)))
+      (while (js--skip-term-backward)
+        (setq last-point (point)))
+      (goto-char last-point)
+      t)))
+
+(defun js--chained-expression-p ()
+  "A helper for js--proper-indentation that handles chained expressions.
+A chained expression is when the current line starts with '.' and the
+previous line also has a '.' expression.
+This function returns the indentation for the current line if it is
+a chained expression line; otherwise nil.
+This should only be called while point is at the start of the line's content,
+as determined by `back-to-indentation'."
+  (when js-chain-indent
+    (save-excursion
+      (when (and (eq (char-after) ?.)
+                 (js--continued-expression-p)
+                 (js--find-newline-backward)
+                 (js--skip-terms-backward))
+        (current-column)))))
 
 (defun js--end-of-do-while-loop-p ()
   "Return non-nil if point is on the \"while\" of a do-while statement.
@@ -1852,7 +1941,8 @@ nil."
   "Helper function for `js--proper-indentation'.
 Return the proper indentation of the current line if it belongs to a 
declaration
 statement spanning multiple lines; otherwise, return nil."
-  (let (at-opening-bracket)
+  (let (forward-sexp-function ; Use Lisp version.
+        at-opening-bracket)
     (save-excursion
       (back-to-indentation)
       (when (not (looking-at js--declaration-keyword-re))
@@ -1929,6 +2019,7 @@ indentation is aligned to that column."
     (let ((bracket (nth 1 parse-status))
           declaration-keyword-end
           at-closing-bracket-p
+          forward-sexp-function ; Use Lisp version.
           comma-p)
       (when (looking-at js--declaration-keyword-re)
         (setq declaration-keyword-end (match-end 0))
@@ -1964,6 +2055,7 @@ indentation is aligned to that column."
                   ;; At or after the first loop?
                   (>= (point) beg)
                   (js--array-comp-indentation bracket beg))))
+          ((js--chained-expression-p))
           ((js--ctrl-statement-indentation))
           ((js--multi-line-declaration-indentation))
           ((nth 1 parse-status)
@@ -2618,7 +2710,7 @@ current buffer.  Pushes a mark onto the tag ring just like
 ;;; MozRepl integration
 
 (define-error 'js-moz-bad-rpc "Mozilla RPC Error") ;; '(timeout error))
-(define-error 'js-js-error "Javascript Error") ;; '(js-error error))
+(define-error 'js-js-error "JavaScript Error") ;; '(js-error error))
 
 (defun js--wait-for-matching-output
   (process regexp timeout &optional start)
@@ -3122,7 +3214,7 @@ with `js--js-encode-value'."
 Inside the lexical scope of `with-js', `js?', `js!',
 `js-new', `js-eval', `js-list', `js<', `js>', `js-get-service',
 `js-create-instance', and `js-qi' are defined."
-
+  (declare (indent 0) (debug t))
   `(progn
      (js--js-enter-repl)
      (unwind-protect
@@ -3299,7 +3391,7 @@ With argument, run even if no intervening GC has 
happened."
 
 (defun js-eval (js)
   "Evaluate the JavaScript in JS and return JSON-decoded result."
-  (interactive "MJavascript to evaluate: ")
+  (interactive "MJavaScript to evaluate: ")
   (with-js
    (let* ((content-window (js--js-content-window
                            (js--get-js-context)))
@@ -3339,11 +3431,8 @@ left-to-right."
                          (eq (cl-fifth window-info) 2))
               do (push window-info windows))
 
-     (cl-loop for window-info in windows
-              for window = (cl-first window-info)
-              collect (list (cl-second window-info)
-                            (cl-third window-info)
-                            window)
+     (cl-loop for (window title location) in windows
+              collect (list title location window)
 
               for gbrowser = (js< window "gBrowser")
               if (js-handle? gbrowser)
@@ -3576,7 +3665,7 @@ Change with `js-set-js-context'.")
 (defun js-set-js-context (context)
   "Set the JavaScript context to CONTEXT.
 When called interactively, prompt for CONTEXT."
-  (interactive (list (js--read-tab "Javascript Context: ")))
+  (interactive (list (js--read-tab "JavaScript Context: ")))
   (setq js--js-context context))
 
 (defun js--get-js-context ()
@@ -3590,7 +3679,7 @@ If one hasn't been set, or if it's stale, prompt for a 
new one."
                (`browser (not (js? (js< (cdr js--js-context)
                                         "contentDocument"))))
                (x (error "Unmatched case in js--get-js-context: %S" x))))
-     (setq js--js-context (js--read-tab "Javascript Context: ")))
+     (setq js--js-context (js--read-tab "JavaScript Context: ")))
    js--js-context))
 
 (defun js--js-content-window (context)
@@ -3758,6 +3847,8 @@ If one hasn't been set, or if it's stale, prompt for a 
new one."
         c-line-comment-starter "//"
         c-comment-start-regexp "/[*/]\\|\\s!"
         comment-start-skip "\\(//+\\|/\\*+\\)\\s *")
+  (setq-local comment-line-break-function #'c-indent-new-comment-line)
+  (setq-local c-block-comment-start-regexp "/\\*")
 
   (setq-local electric-indent-chars
              (append "{}():;," electric-indent-chars)) ;FIXME: js2-mode adds 
"[]*".
diff --git a/lisp/progmodes/ld-script.el b/lisp/progmodes/ld-script.el
index c82775e..389ddfc 100644
--- a/lisp/progmodes/ld-script.el
+++ b/lisp/progmodes/ld-script.el
@@ -1,6 +1,6 @@
 ;;; ld-script.el --- GNU linker script editing mode for Emacs
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Masatake YAMATO<address@hidden>
 ;; Keywords: languages, faces
diff --git a/lisp/progmodes/m4-mode.el b/lisp/progmodes/m4-mode.el
index f2e4d68..b48654f 100644
--- a/lisp/progmodes/m4-mode.el
+++ b/lisp/progmodes/m4-mode.el
@@ -1,6 +1,6 @@
 ;;; m4-mode.el --- m4 code editing commands for Emacs
 
-;; Copyright (C) 1996-1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Andrew Csillag <address@hidden>
 ;; Keywords: languages, faces
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index fb71420..5cda7bb 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -1,6 +1,6 @@
 ;;; make-mode.el --- makefile editing commands for Emacs -*- lexical-binding:t 
-*-
 
-;; Copyright (C) 1992, 1994, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Thomas Neumann <address@hidden>
 ;;     Eric S. Raymond <address@hidden>
diff --git a/lisp/progmodes/mantemp.el b/lisp/progmodes/mantemp.el
index ea9d400..7a3c0fb 100644
--- a/lisp/progmodes/mantemp.el
+++ b/lisp/progmodes/mantemp.el
@@ -1,6 +1,6 @@
 ;;; mantemp.el --- create manual template instantiations from g++ 2.7.2 output
 
-;; Copyright (C) 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Tom Houlder <address@hidden>
 ;; Created: 10 Dec 1996
diff --git a/lisp/progmodes/meta-mode.el b/lisp/progmodes/meta-mode.el
index 503cfcf..3db3b8a 100644
--- a/lisp/progmodes/meta-mode.el
+++ b/lisp/progmodes/meta-mode.el
@@ -1,6 +1,6 @@
 ;;; meta-mode.el --- major mode for editing Metafont or MetaPost sources -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Ulrik Vieth <address@hidden>
 ;; Version: 1.0
diff --git a/lisp/progmodes/mixal-mode.el b/lisp/progmodes/mixal-mode.el
index cfae569..a0e44f7 100644
--- a/lisp/progmodes/mixal-mode.el
+++ b/lisp/progmodes/mixal-mode.el
@@ -1,6 +1,6 @@
 ;;; mixal-mode.el --- Major mode for the mix asm language.
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Pieter E.J. Pareit <address@hidden>
 ;; Maintainer: Pieter E.J. Pareit <address@hidden>
diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el
index 4f223f2..ac9ba63 100644
--- a/lisp/progmodes/octave.el
+++ b/lisp/progmodes/octave.el
@@ -1,6 +1,6 @@
 ;;; octave.el --- editing octave source files under emacs  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Kurt Hornik <address@hidden>
 ;;        John Eaton <address@hidden>
diff --git a/lisp/progmodes/opascal.el b/lisp/progmodes/opascal.el
index 6a02280..6a61564 100644
--- a/lisp/progmodes/opascal.el
+++ b/lisp/progmodes/opascal.el
@@ -1,6 +1,6 @@
 ;;; opascal.el --- major mode for editing Object Pascal source in Emacs  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1998-1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Authors: Ray Blaak <address@hidden>,
 ;;          Simon South <address@hidden>
diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
index 76441ea..bf49ba4 100644
--- a/lisp/progmodes/pascal.el
+++ b/lisp/progmodes/pascal.el
@@ -1,6 +1,6 @@
 ;;; pascal.el --- major mode for editing pascal source in Emacs -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1993-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-2017 Free Software Foundation, Inc.
 
 ;; Author: Espen Skoglund <address@hidden>
 ;; Keywords: languages
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
index 7ed87e8..a516f07 100644
--- a/lisp/progmodes/perl-mode.el
+++ b/lisp/progmodes/perl-mode.el
@@ -1,6 +1,6 @@
 ;;; perl-mode.el --- Perl code editing commands for GNU Emacs  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1990, 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: William F. Mann
 ;; Maintainer: address@hidden
diff --git a/lisp/progmodes/prog-mode.el b/lisp/progmodes/prog-mode.el
index 718b339..8f66f1c 100644
--- a/lisp/progmodes/prog-mode.el
+++ b/lisp/progmodes/prog-mode.el
@@ -1,6 +1,6 @@
 ;;; prog-mode.el --- Generic major mode for programming  -*- lexical-binding: 
t -*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: internal
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index a51c383..ed1d564 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -1,6 +1,6 @@
 ;;; project.el --- Operations on the current project  -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index 2b23c51..c234cca 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -1,6 +1,6 @@
 ;;; prolog.el --- major mode for Prolog (and Mercury) -*- lexical-binding:t -*-
 
-;; Copyright (C) 1986-1987, 1997-1999, 2002-2003, 2011-2016 Free
+;; Copyright (C) 1986-1987, 1997-1999, 2002-2003, 2011-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Authors: Emil Åström <emil_astrom(at)hotmail(dot)com>
diff --git a/lisp/progmodes/ps-mode.el b/lisp/progmodes/ps-mode.el
index 3b06945..7e2b7fd 100644
--- a/lisp/progmodes/ps-mode.el
+++ b/lisp/progmodes/ps-mode.el
@@ -1,6 +1,6 @@
 ;;; ps-mode.el --- PostScript mode for GNU Emacs
 
-;; Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author:     Peter Kleiweg <address@hidden>
 ;; Maintainer: Peter Kleiweg <address@hidden>
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 3701812..90b5e4e 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -1,6 +1,6 @@
 ;;; python.el --- Python's flying circus support for Emacs -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Fabián E. Gallina <address@hidden>
 ;; URL: https://github.com/fgallina/python.el
@@ -4415,6 +4415,15 @@ It must be a function with two arguments: TYPE and 
NAME.")
       "*class definition*"
     "*function definition*"))
 
+(defun python-imenu--get-defun-type-name ()
+  "Return defun type and name at current position."
+  (when (looking-at python-nav-beginning-of-defun-regexp)
+    (let ((split (split-string (match-string-no-properties 0))))
+      (if (= (length split) 2)
+          split
+        (list (concat (car split) " " (cadr split))
+              (car (last split)))))))
+
 (defun python-imenu--put-parent (type name pos tree)
   "Add the parent with TYPE, NAME and POS to TREE."
   (let ((label
@@ -4432,11 +4441,9 @@ not be passed explicitly unless you know what you are 
doing."
   (setq min-indent (or min-indent 0)
         prev-indent (or prev-indent python-indent-offset))
   (let* ((pos (python-nav-backward-defun))
-         (type)
-         (name (when (and pos (looking-at 
python-nav-beginning-of-defun-regexp))
-                 (let ((split (split-string (match-string-no-properties 0))))
-                   (setq type (car split))
-                   (cadr split))))
+         (defun-type-name (and pos (python-imenu--get-defun-type-name)))
+         (type (car defun-type-name))
+         (name (cadr defun-type-name))
          (label (when name
                   (funcall python-imenu-format-item-label-function type name)))
          (indent (current-indentation))
@@ -4686,7 +4693,8 @@ likely an invalid python file."
     (let ((dedenter-pos (python-info-dedenter-statement-p)))
       (when dedenter-pos
         (goto-char dedenter-pos)
-        (let* ((pairs '(("elif" "elif" "if")
+        (let* ((cur-line (line-beginning-position))
+               (pairs '(("elif" "elif" "if")
                         ("else" "if" "elif" "except" "for" "while")
                         ("except" "except" "try")
                         ("finally" "else" "except" "try")))
@@ -4702,7 +4710,22 @@ likely an invalid python file."
               (let ((indentation (current-indentation)))
                 (when (and (not (memq indentation collected-indentations))
                            (or (not collected-indentations)
-                               (< indentation (apply #'min 
collected-indentations))))
+                               (< indentation (apply #'min 
collected-indentations)))
+                           ;; There must be no line with indentation
+                           ;; smaller than `indentation' (except for
+                           ;; blank lines) between the found opening
+                           ;; block and the current line, otherwise it
+                           ;; is not an opening block.
+                           (save-excursion
+                             (forward-line)
+                             (let ((no-back-indent t))
+                               (save-match-data
+                                 (while (and (< (point) cur-line)
+                                             (setq no-back-indent
+                                                   (or (> 
(current-indentation) indentation)
+                                                       
(python-info-current-line-empty-p))))
+                                   (forward-line)))
+                               no-back-indent)))
                   (setq collected-indentations
                         (cons indentation collected-indentations))
                   (when (member (match-string-no-properties 0)
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index e7b37ac..036d071 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -1,6 +1,6 @@
 ;;; ruby-mode.el --- Major mode for editing Ruby files
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Authors: Yukihiro Matsumoto
 ;;     Nobuyoshi Nakada
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el
index 66d9ed6..0dcf9b4 100644
--- a/lisp/progmodes/scheme.el
+++ b/lisp/progmodes/scheme.el
@@ -1,6 +1,6 @@
 ;;; scheme.el --- Scheme (and DSSSL) editing mode    -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 1986-1988, 1997-1998, 2001-2016 Free Software
+;; Copyright (C) 1986-1988, 1997-1998, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Bill Rozas <address@hidden>
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 5d362e4..a0bbf55 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1,6 +1,6 @@
 ;;; sh-script.el --- shell-script editing commands for Emacs  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1993-1997, 1999, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1993-1997, 1999, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Daniel Pfeiffer <address@hidden>
@@ -1629,8 +1629,6 @@ with your script for an edit-interpret-debug cycle."
 
   (setq-local skeleton-pair-default-alist
              sh-skeleton-pair-default-alist)
-  (setq-local skeleton-end-hook
-             (lambda () (or (eolp) (newline) (indent-relative))))
 
   (setq-local paragraph-start (concat page-delimiter "\\|$"))
   (setq-local paragraph-separate (concat paragraph-start "\\|#!/"))
@@ -1683,6 +1681,7 @@ with your script for an edit-interpret-debug cycle."
          ((string-match "[.]bash\\>"   buffer-file-name) "bash")
          ((string-match "[.]ksh\\>"    buffer-file-name) "ksh")
          ((string-match "[.]t?csh\\(rc\\)?\\>" buffer-file-name) "csh")
+         ((string-match "[.]zsh\\(rc\\|env\\)?\\>" buffer-file-name) "zsh")
         ((equal (file-name-nondirectory buffer-file-name) ".profile") "sh")
          (t sh-shell-file))
    nil nil)
diff --git a/lisp/progmodes/simula.el b/lisp/progmodes/simula.el
index d627309..505a2ea 100644
--- a/lisp/progmodes/simula.el
+++ b/lisp/progmodes/simula.el
@@ -1,6 +1,6 @@
 ;;; simula.el --- SIMULA 87 code editing commands for Emacs
 
-;; Copyright (C) 1992, 1994, 1996, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1992, 1994, 1996, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Hans Henrik Eriksen <address@hidden>
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index 9608a7d..8868343 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -1,6 +1,6 @@
 ;;; sql.el --- specialized comint.el for SQL interpreters  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
 ;; Maintainer: Michael Mauger <address@hidden>
@@ -933,10 +933,10 @@ Starts `sql-interactive-mode' after doing some setup."
   :version "20.8"
   :group 'SQL)
 
-(defcustom sql-sqlite-login-params '((database :file 
".*\\.\\(db\\|sqlite[23]?\\)"))
+(defcustom sql-sqlite-login-params '((database :file nil))
   "List of login parameters needed to connect to SQLite."
   :type 'sql-login-params
-  :version "24.1"
+  :version "26.1"
   :group 'SQL)
 
 ;; Customization for MySQL
@@ -2790,7 +2790,7 @@ local variable."
     ;; Iterate until we've moved the desired number of stmt ends
     (while (not (= (cl-signum arg) 0))
       ;; if we're looking at the terminator, jump by 2
-      (if (or (and (> 0 arg) (looking-back term))
+      (if (or (and (> 0 arg) (looking-back term nil))
               (and (< 0 arg) (looking-at term)))
           (setq n 2)
         (setq n 1))
@@ -2954,13 +2954,15 @@ value.  (The property value is used as the PREDICATE 
argument to
       ((plist-member plist :file)
        (expand-file-name
         (read-file-name prompt
-                        (file-name-directory last-value) default t
+                        (file-name-directory last-value) default 'confirm
                         (file-name-nondirectory last-value)
                         (when (plist-get plist :file)
                           `(lambda (f)
-                             (string-match
-                              (concat "\\<" ,(plist-get plist :file) "\\>")
-                              (file-name-nondirectory f)))))))
+                             (if (not (file-regular-p f))
+                                 t
+                               (string-match
+                                (concat "\\<" ,(plist-get plist :file) "\\>")
+                                (file-name-nondirectory f))))))))
 
       ((plist-member plist :completion)
        (completing-read prompt-def (plist-get plist :completion) nil t
diff --git a/lisp/progmodes/subword.el b/lisp/progmodes/subword.el
index 102e0da..ede2f42 100644
--- a/lisp/progmodes/subword.el
+++ b/lisp/progmodes/subword.el
@@ -1,6 +1,6 @@
 ;;; subword.el --- Handling capitalized subwords in a nomenclature -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Masatake YAMATO
 
diff --git a/lisp/progmodes/tcl.el b/lisp/progmodes/tcl.el
index 93f3291..2c7ce03 100644
--- a/lisp/progmodes/tcl.el
+++ b/lisp/progmodes/tcl.el
@@ -1,6 +1,6 @@
 ;;; tcl.el --- Tcl code editing commands for Emacs
 
-;; Copyright (C) 1994, 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1998-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Author: Tom Tromey <address@hidden>
diff --git a/lisp/progmodes/vera-mode.el b/lisp/progmodes/vera-mode.el
index 00b287e..0663600 100644
--- a/lisp/progmodes/vera-mode.el
+++ b/lisp/progmodes/vera-mode.el
@@ -1,6 +1,6 @@
 ;;; vera-mode.el --- major mode for editing Vera files
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author:      Reto Zimmermann <address@hidden>
 ;; Maintainer:  Reto Zimmermann <address@hidden>
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
index 5368b61..48ee555 100644
--- a/lisp/progmodes/verilog-mode.el
+++ b/lisp/progmodes/verilog-mode.el
@@ -1,6 +1,6 @@
 ;;; verilog-mode.el --- major mode for editing verilog source in Emacs
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael McNamara <address@hidden>
 ;;    Wilson Snyder <address@hidden>
@@ -1416,8 +1416,10 @@ If set will become buffer local.")
     (define-key map "\M-\C-b"  'electric-verilog-backward-sexp)
     (define-key map "\M-\C-f"  'electric-verilog-forward-sexp)
     (define-key map "\M-\r"    `electric-verilog-terminate-and-indent)
-    (define-key map "\M-\t"    'verilog-complete-word)
-    (define-key map "\M-?"     'verilog-show-completions)
+    (define-key map "\M-\t"    (if (fboundp 'completion-at-point)
+                                   'completion-at-point 
'verilog-complete-word))
+    (define-key map "\M-?"     (if (fboundp 'completion-help-at-point)
+                                   'completion-help-at-point 
'verilog-show-completions))
     ;; Note \C-c and letter are reserved for users
     (define-key map "\C-c`"    'verilog-lint-off)
     (define-key map "\C-c*"    'verilog-delete-auto-star-implicit)
@@ -1448,7 +1450,7 @@ If set will become buffer local.")
 (easy-menu-define
   verilog-menu verilog-mode-map "Menu for Verilog mode"
   (verilog-easy-menu-filter
-   '("Verilog"
+   `("Verilog"
      ("Choose Compilation Action"
       ["None"
        (progn
@@ -1540,7 +1542,8 @@ If set will become buffer local.")
       :help            "Take a signal vector on the current line and expand it 
to multiple lines"]
      ["Insert begin-end block"         verilog-insert-block
       :help            "Insert begin ... end"]
-     ["Complete word"                  verilog-complete-word
+     ["Complete word" ,(if (fboundp 'completion-at-point)
+                           'completion-at-point 'verilog-complete-word)
       :help            "Complete word at point"]
      "----"
      ["Recompute AUTOs"                        verilog-auto
@@ -3806,7 +3809,7 @@ AUTO expansion functions are, in part:
 
 Some other functions are:
 
-    \\[verilog-complete-word]    Complete word with appropriate possibilities.
+    \\[completion-at-point]    Complete word with appropriate possibilities.
     \\[verilog-mark-defun]  Mark function.
     \\[verilog-beg-of-defun]  Move to beginning of current function.
     \\[verilog-end-of-defun]  Move to end of current function.
@@ -3920,6 +3923,9 @@ Key bindings specific to `verilog-mode-map' are:
                                       verilog-forward-sexp-function)
                  hs-special-modes-alist))))
 
+  (add-hook 'completion-at-point-functions
+            #'verilog-completion-at-point nil 'local)
+
   ;; Stuff for autos
   (add-hook 'write-contents-hooks 'verilog-auto-save-check nil 'local)
   ;; verilog-mode-hook call added by define-derived-mode
@@ -7198,6 +7204,9 @@ Region is defined by B and EDPOS."
 Repeated use of \\[verilog-complete-word] will show you all of them.
 Normally, when there is more than one possible completion,
 it displays a list of all possible completions.")
+(when (boundp 'completion-cycle-threshold)
+  (make-obsolete-variable
+   'verilog-toggle-completions 'completion-cycle-threshold "26.1"))
 
 
 (defvar verilog-type-keywords
@@ -7480,21 +7489,33 @@ exact match, nil otherwise."
 (defvar verilog-last-word-shown nil)
 (defvar verilog-last-completions nil)
 
+(defun verilog-completion-at-point ()
+  "Used as an element of `completion-at-point-functions'.
+\(See also `verilog-type-keywords' and
+`verilog-separator-keywords'.)"
+  (let* ((b (save-excursion (skip-chars-backward "a-zA-Z0-9_") (point)))
+         (e (save-excursion (skip-chars-forward "a-zA-Z0-9_") (point)))
+         (verilog-str (buffer-substring b e))
+         ;; The following variable is used in verilog-completion
+         (verilog-buffer-to-use (current-buffer))
+         (allcomp (if (and verilog-toggle-completions
+                           (string= verilog-last-word-shown verilog-str))
+                      verilog-last-completions
+                    (all-completions verilog-str 'verilog-completion))))
+    (list b e allcomp)))
+
 (defun verilog-complete-word ()
   "Complete word at current point.
 \(See also `verilog-toggle-completions', `verilog-type-keywords',
 and `verilog-separator-keywords'.)"
-  ;; FIXME: Provide completion-at-point-function.
+  ;; NOTE: This is just a fallback for Emacs versions lacking
+  ;; `completion-at-point'.
   (interactive)
-  (let* ((b (save-excursion (skip-chars-backward "a-zA-Z0-9_") (point)))
-        (e (save-excursion (skip-chars-forward "a-zA-Z0-9_") (point)))
+  (let* ((comp-info (verilog-completion-at-point))
+         (b (nth 0 comp-info))
+        (e (nth 1 comp-info))
         (verilog-str (buffer-substring b e))
-        ;; The following variable is used in verilog-completion
-        (verilog-buffer-to-use (current-buffer))
-        (allcomp (if (and verilog-toggle-completions
-                          (string= verilog-last-word-shown verilog-str))
-                     verilog-last-completions
-                   (all-completions verilog-str 'verilog-completion)))
+        (allcomp (nth 2 comp-info))
         (match (if verilog-toggle-completions
                    "" (try-completion
                        verilog-str (mapcar (lambda (elm)
@@ -7542,23 +7563,15 @@ and `verilog-separator-keywords'.)"
 
 (defun verilog-show-completions ()
   "Show all possible completions at current point."
+  ;; NOTE: This is just a fallback for Emacs versions lacking
+  ;; `completion-help-at-point'.
   (interactive)
-  (let* ((b (save-excursion (skip-chars-backward "a-zA-Z0-9_") (point)))
-        (e (save-excursion (skip-chars-forward "a-zA-Z0-9_") (point)))
-        (verilog-str (buffer-substring b e))
-        ;; The following variable is used in verilog-completion
-        (verilog-buffer-to-use (current-buffer))
-        (allcomp (if (and verilog-toggle-completions
-                          (string= verilog-last-word-shown verilog-str))
-                     verilog-last-completions
-                   (all-completions verilog-str 'verilog-completion))))
-    ;; Show possible completions in a temporary buffer.
-    (with-output-to-temp-buffer "*Completions*"
-      (display-completion-list allcomp))
-    ;; Wait for a key press. Then delete *Completion*  window
-    (momentary-string-display "" (point))
-    (delete-window (get-buffer-window (get-buffer "*Completions*")))))
-
+  ;; Show possible completions in a temporary buffer.
+  (with-output-to-temp-buffer "*Completions*"
+    (display-completion-list (nth 2 (verilog-completion-at-point))))
+  ;; Wait for a key press. Then delete *Completion*  window
+  (momentary-string-display "" (point))
+  (delete-window (get-buffer-window (get-buffer "*Completions*"))))
 
 (defun verilog-get-default-symbol ()
   "Return symbol around current point as a string."
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index 0756c79..6c76d7e 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -1,6 +1,6 @@
 ;;; vhdl-mode.el --- major mode for editing VHDL code
 
-;; Copyright (C) 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2017 Free Software Foundation, Inc.
 
 ;; Authors:     Reto Zimmermann <address@hidden>
 ;;              Rodney J. Whitby <address@hidden>
@@ -126,6 +126,14 @@
 
 ;;; Code:
 
+(eval-when-compile (require 'cl))
+(eval-and-compile
+  ;; Before Emacs-24.4, `pushnew' expands to runtime calls to `cl-adjoin'
+  ;; even for relatively simple cases such as used here.  We only test <25
+  ;; because it's easier and sufficient.
+  (when (or (featurep 'xemacs) (< emacs-major-version 25))
+    (require 'cl)))
+
 ;; Emacs 21+ handling
 (defconst vhdl-emacs-21 (and (<= 21 emacs-major-version) (not (featurep 
'xemacs)))
   "Non-nil if GNU Emacs 21, 22, ... is used.")
@@ -14314,7 +14322,7 @@ of PROJECT."
       (vhdl-scan-directory-contents dir-name project nil
                                    (format "(%s/%s) " act-dir num-dir)
                                    (cdr dir-list))
-      (add-to-list 'dir-list-tmp (file-name-directory dir-name))
+      (pushnew (file-name-directory dir-name) dir-list-tmp :test #'equal)
       (setq dir-list (cdr dir-list)
            act-dir (1+ act-dir)))
     (vhdl-aput 'vhdl-directory-alist project (list (nreverse dir-list-tmp)))
@@ -16406,8 +16414,8 @@ component instantiation."
             (if (or (member constant-name single-list)
                     (member constant-name multi-list))
                 (progn (setq single-list (delete constant-name single-list))
-                       (add-to-list 'multi-list constant-name))
-              (add-to-list 'single-list constant-name))
+                       (pushnew constant-name multi-list :test #'equal))
+              (pushnew constant-name single-list :test #'equal))
             (unless (match-string 1)
               (setq generic-alist (cdr generic-alist)))
             (vhdl-forward-syntactic-ws))
@@ -16433,12 +16441,12 @@ component instantiation."
                     (member signal-name multi-out-list))
                 (setq single-out-list (delete signal-name single-out-list))
                 (setq multi-out-list (delete signal-name multi-out-list))
-                (add-to-list 'local-list signal-name))
+                (pushnew signal-name local-list :test #'equal))
                ((member signal-name single-in-list)
                 (setq single-in-list (delete signal-name single-in-list))
-                (add-to-list 'multi-in-list signal-name))
+                (pushnew signal-name multi-in-list :test #'equal))
                ((not (member signal-name multi-in-list))
-                (add-to-list 'single-in-list signal-name)))
+                (pushnew signal-name single-in-list :test #'equal)))
             ;; output signal
             (cond
              ((member signal-name local-list)
@@ -16447,17 +16455,18 @@ component instantiation."
                   (member signal-name multi-in-list))
               (setq single-in-list (delete signal-name single-in-list))
               (setq multi-in-list (delete signal-name multi-in-list))
-              (add-to-list 'local-list signal-name))
+              (pushnew signal-name local-list :test #'equal))
              ((member signal-name single-out-list)
               (setq single-out-list (delete signal-name single-out-list))
-              (add-to-list 'multi-out-list signal-name))
+              (pushnew signal-name multi-out-list :test #'equal))
              ((not (member signal-name multi-out-list))
-              (add-to-list 'single-out-list signal-name))))
+              (pushnew signal-name single-out-list :test #'equal))))
           (unless (match-string 1)
             (setq port-alist (cdr port-alist)))
           (vhdl-forward-syntactic-ws))
         (push (list inst-name (nreverse constant-alist)
-                    (nreverse signal-alist)) inst-alist))
+                    (nreverse signal-alist))
+               inst-alist))
        ;; prepare signal insertion
        (vhdl-goto-marker arch-decl-pos)
        (forward-line 1)
@@ -16534,14 +16543,14 @@ component instantiation."
                         generic-end-pos
                         (vhdl-compose-insert-generic constant-entry)))
                  (setq generic-pos (point-marker))
-                 (add-to-list 'written-list constant-name))
+                 (pushnew constant-name written-list :test #'equal))
                 (t
                  (vhdl-goto-marker
                   (vhdl-max-marker generic-inst-pos generic-pos))
                  (setq generic-end-pos
                        (vhdl-compose-insert-generic constant-entry))
                  (setq generic-inst-pos (point-marker))
-                   (add-to-list 'written-list constant-name))))
+                   (pushnew constant-name written-list :test #'equal))))
           (setq constant-alist (cdr constant-alist)))
         (when (/= constant-temp-pos generic-inst-pos)
           (vhdl-goto-marker (vhdl-max-marker constant-temp-pos generic-pos))
@@ -16560,14 +16569,14 @@ component instantiation."
                        (vhdl-max-marker
                         port-end-pos (vhdl-compose-insert-port signal-entry)))
                  (setq port-in-pos (point-marker))
-                 (add-to-list 'written-list signal-name))
+                 (pushnew signal-name written-list :test #'equal))
                 ((member signal-name multi-out-list)
                  (vhdl-goto-marker (vhdl-max-marker port-out-pos port-in-pos))
                  (setq port-end-pos
                        (vhdl-max-marker
                         port-end-pos (vhdl-compose-insert-port signal-entry)))
                  (setq port-out-pos (point-marker))
-                 (add-to-list 'written-list signal-name))
+                 (pushnew signal-name written-list :test #'equal))
                 ((or (member signal-name single-in-list)
                      (member signal-name single-out-list))
                  (vhdl-goto-marker
@@ -16576,12 +16585,12 @@ component instantiation."
                    (vhdl-max-marker port-out-pos port-in-pos)))
                  (setq port-end-pos (vhdl-compose-insert-port signal-entry))
                  (setq port-inst-pos (point-marker))
-                 (add-to-list 'written-list signal-name))
+                 (pushnew signal-name written-list :test #'equal))
                 ((equal (upcase (nth 2 signal-entry)) "OUT")
                  (vhdl-goto-marker signal-pos)
                  (vhdl-compose-insert-signal signal-entry)
                  (setq signal-pos (point-marker))
-                 (add-to-list 'written-list signal-name)))
+                 (pushnew signal-name written-list :test #'equal)))
           (setq signal-alist (cdr signal-alist)))
         (when (/= port-temp-pos port-inst-pos)
           (vhdl-goto-marker
@@ -16932,7 +16941,7 @@ no project is defined."
   "Remove duplicate elements from IN-LIST."
   (let (out-list)
     (while in-list
-      (add-to-list 'out-list (car in-list))
+      (pushnew (car in-list) out-list :test #'equal)
       (setq in-list (cdr in-list)))
     out-list))
 
diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el
index 2fc24a8..4151334 100644
--- a/lisp/progmodes/which-func.el
+++ b/lisp/progmodes/which-func.el
@@ -1,6 +1,6 @@
 ;;; which-func.el --- print current function in mode line  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1994, 1997-1998, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1994, 1997-1998, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author:   Alex Rezinsky <address@hidden>
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 05cd979..a507755 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -1,6 +1,6 @@
 ;; xref.el --- Cross-referencing commands              -*-lexical-binding:t-*-
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -918,6 +918,10 @@ IGNORES is a list of glob patterns."
   (grep-compute-defaults)
   (defvar grep-find-template)
   (defvar grep-highlight-matches)
+  ;; 'grep -E -foo' results in 'grep: oo: No such file or directory'.
+  ;; while 'grep -e -foo' inexplicably doesn't.
+  (when (eq (aref regexp 0) ?-)
+    (setq regexp (concat "\\" regexp)))
   (let* ((grep-find-template (replace-regexp-in-string "-e " "-E "
                                                        grep-find-template t t))
          (grep-highlight-matches nil)
diff --git a/lisp/progmodes/xscheme.el b/lisp/progmodes/xscheme.el
index 214f381..4502c6d 100644
--- a/lisp/progmodes/xscheme.el
+++ b/lisp/progmodes/xscheme.el
@@ -1,6 +1,6 @@
 ;;; xscheme.el --- run MIT Scheme under Emacs        -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 1986-1987, 1989-1990, 2001-2016 Free Software
+;; Copyright (C) 1986-1987, 1989-1990, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/ps-bdf.el b/lisp/ps-bdf.el
index bde0bb5..f49cbd7 100644
--- a/lisp/ps-bdf.el
+++ b/lisp/ps-bdf.el
@@ -1,6 +1,6 @@
 ;;; ps-bdf.el --- BDF font file handler for ps-print
 
-;; Copyright (C) 1998-1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-1999, 2001-2017 Free Software Foundation, Inc.
 ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
 ;;   2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/lisp/ps-def.el b/lisp/ps-def.el
index fbb61b5..ea51c2a 100644
--- a/lisp/ps-def.el
+++ b/lisp/ps-def.el
@@ -1,6 +1,6 @@
 ;;; ps-def.el --- XEmacs and Emacs definitions for ps-print -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;;     Kenichi Handa <address@hidden> (multi-byte characters)
diff --git a/lisp/ps-mule.el b/lisp/ps-mule.el
index f14cd0d..0a59010 100644
--- a/lisp/ps-mule.el
+++ b/lisp/ps-mule.el
@@ -1,6 +1,6 @@
 ;;; ps-mule.el --- provide multi-byte character facility to ps-print
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;;     Kenichi Handa <address@hidden> (multi-byte characters)
diff --git a/lisp/ps-print.el b/lisp/ps-print.el
index 71523a9..7476ab3 100644
--- a/lisp/ps-print.el
+++ b/lisp/ps-print.el
@@ -1,6 +1,6 @@
 ;;; ps-print.el --- print text from the buffer as PostScript -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1993-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-2017 Free Software Foundation, Inc.
 
 ;; Author: Jim Thompson (was <address@hidden>)
 ;;     Jacques Duthen (was <address@hidden>)
diff --git a/lisp/ps-samp.el b/lisp/ps-samp.el
index 03efa85..f86e526 100644
--- a/lisp/ps-samp.el
+++ b/lisp/ps-samp.el
@@ -1,6 +1,6 @@
 ;;; ps-samp.el --- ps-print sample setup code
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Jim Thompson (was <address@hidden>)
 ;;     Jacques Duthen (was <address@hidden>)
diff --git a/lisp/recentf.el b/lisp/recentf.el
index e30e646..4f05739 100644
--- a/lisp/recentf.el
+++ b/lisp/recentf.el
@@ -1,6 +1,6 @@
 ;;; recentf.el --- setup a menu of recently opened files
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: David Ponce <address@hidden>
 ;; Created: July 19 1999
@@ -82,7 +82,7 @@ See the command `recentf-save-list'."
                 recentf-mode
                 (recentf-load-list)))))
 
-(defcustom recentf-save-file-modes 384 ;; 0600
+(defcustom recentf-save-file-modes #o600
   "Mode bits of recentf save file, as an integer, or nil.
 If non-nil, after writing `recentf-save-file', set its mode bits to
 this value.  By default give R/W access only to the user who owns that
diff --git a/lisp/rect.el b/lisp/rect.el
index f9bebc4..a4fa282 100644
--- a/lisp/rect.el
+++ b/lisp/rect.el
@@ -1,6 +1,6 @@
 ;;; rect.el --- rectangle functions for GNU Emacs  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1985, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1999-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: Didier Verna <address@hidden>
 ;; Keywords: internal
diff --git a/lisp/register.el b/lisp/register.el
index 045a430..7cc3ccd 100644
--- a/lisp/register.el
+++ b/lisp/register.el
@@ -1,6 +1,6 @@
 ;;; register.el --- register commands for Emacs      -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 1985, 1993-1994, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1985, 1993-1994, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/registry.el b/lisp/registry.el
index 20f8e8d..27664dc 100644
--- a/lisp/registry.el
+++ b/lisp/registry.el
@@ -1,6 +1,6 @@
 ;;; registry.el --- Track and remember data items by various fields
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Teodor Zlatanov <address@hidden>
 ;; Keywords: data
diff --git a/lisp/repeat.el b/lisp/repeat.el
index d116ec6..c55a50a 100644
--- a/lisp/repeat.el
+++ b/lisp/repeat.el
@@ -1,6 +1,6 @@
 ;;; repeat.el --- convenient way to repeat the previous command  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Will Mengarini <address@hidden>
 ;; Created: Mo 02 Mar 98
diff --git a/lisp/replace.el b/lisp/replace.el
index a172174..ff91734 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -1,6 +1,6 @@
 ;;; replace.el --- replace commands for Emacs -*- lexical-binding: t -*-
 
-;; Copyright (C) 1985-1987, 1992, 1994, 1996-1997, 2000-2016 Free
+;; Copyright (C) 1985-1987, 1992, 1994, 1996-1997, 2000-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/reposition.el b/lisp/reposition.el
index 532c9ad..ce24d29 100644
--- a/lisp/reposition.el
+++ b/lisp/reposition.el
@@ -1,6 +1,6 @@
 ;;; reposition.el --- center a Lisp function or comment on the screen
 
-;; Copyright (C) 1991, 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael D. Ernst <address@hidden>
 ;; Created: Jan 1991
diff --git a/lisp/reveal.el b/lisp/reveal.el
index 4898785..66f5bc4 100644
--- a/lisp/reveal.el
+++ b/lisp/reveal.el
@@ -1,6 +1,6 @@
 ;;; reveal.el --- Automatically reveal hidden text at point -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: outlines
diff --git a/lisp/rfn-eshadow.el b/lisp/rfn-eshadow.el
index 362ffa7..f5df7f8 100644
--- a/lisp/rfn-eshadow.el
+++ b/lisp/rfn-eshadow.el
@@ -1,6 +1,6 @@
 ;;; rfn-eshadow.el --- Highlight `shadowed' part of read-file-name input text
 ;;
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Miles Bader <address@hidden>
 ;; Keywords: convenience minibuffer
diff --git a/lisp/rot13.el b/lisp/rot13.el
index d0e4048..20a0dbe 100644
--- a/lisp/rot13.el
+++ b/lisp/rot13.el
@@ -1,6 +1,6 @@
 ;;; rot13.el --- display a buffer in ROT13  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1988, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Howard Gayle
 ;; Maintainer: address@hidden
diff --git a/lisp/rtree.el b/lisp/rtree.el
index 662e043..b4c9d48 100644
--- a/lisp/rtree.el
+++ b/lisp/rtree.el
@@ -1,6 +1,6 @@
 ;;; rtree.el --- functions for manipulating range trees
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 
diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el
index 74e4969..4f09a18 100644
--- a/lisp/ruler-mode.el
+++ b/lisp/ruler-mode.el
@@ -1,6 +1,6 @@
 ;;; ruler-mode.el --- display a ruler in the header line
 
-;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: David Ponce <address@hidden>
diff --git a/lisp/savehist.el b/lisp/savehist.el
index e700a17..9a3c5cf 100644
--- a/lisp/savehist.el
+++ b/lisp/savehist.el
@@ -1,6 +1,6 @@
 ;;; savehist.el --- Save minibuffer history
 
-;; Copyright (C) 1997, 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Hrvoje Niksic <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/saveplace.el b/lisp/saveplace.el
index 0230279..603ab65 100644
--- a/lisp/saveplace.el
+++ b/lisp/saveplace.el
@@ -1,6 +1,6 @@
 ;;; saveplace.el --- automatically save place in files
 
-;; Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Karl Fogel <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/sb-image.el b/lisp/sb-image.el
index 6d68fc8..b94978a 100644
--- a/lisp/sb-image.el
+++ b/lisp/sb-image.el
@@ -1,6 +1,6 @@
 ;;; sb-image --- Image management for speedbar
 
-;; Copyright (C) 1999-2003, 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2003, 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: file, tags, tools
diff --git a/lisp/scroll-all.el b/lisp/scroll-all.el
index 5c10255..59efe8c 100644
--- a/lisp/scroll-all.el
+++ b/lisp/scroll-all.el
@@ -1,6 +1,6 @@
 ;;; scroll-all.el --- scroll all buffers together minor mode
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Gary D. Foster <address@hidden>
 ;; Keywords: convenience scroll lock
diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el
index e5fe316..5290a7b 100644
--- a/lisp/scroll-bar.el
+++ b/lisp/scroll-bar.el
@@ -1,6 +1,6 @@
 ;;; scroll-bar.el --- window system-independent scroll bar support
 
-;; Copyright (C) 1993-1995, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 1999-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: hardware
diff --git a/lisp/scroll-lock.el b/lisp/scroll-lock.el
index c90a395..50868e7 100644
--- a/lisp/scroll-lock.el
+++ b/lisp/scroll-lock.el
@@ -1,6 +1,6 @@
 ;;; scroll-lock.el --- Scroll lock scrolling.
 
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Ralf Angeli <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/select.el b/lisp/select.el
index 874b4bd..a4a7925 100644
--- a/lisp/select.el
+++ b/lisp/select.el
@@ -1,6 +1,6 @@
 ;;; select.el --- lisp portion of standard selection support  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: internal
diff --git a/lisp/server.el b/lisp/server.el
index 85d51c8..1d26cae 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -1,6 +1,6 @@
 ;;; server.el --- Lisp code for GNU Emacs running as server process -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1986-1987, 1992, 1994-2016 Free Software Foundation,
+;; Copyright (C) 1986-1987, 1992, 1994-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: William Sommerfeld <address@hidden>
diff --git a/lisp/ses.el b/lisp/ses.el
index c80415e..76d4ca5 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -1,7 +1,7 @@
 
 ;;; ses.el -- Simple Emacs Spreadsheet  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Jonathan Yavner <address@hidden>
 ;; Maintainer: Vincent Belaïche  <address@hidden>
diff --git a/lisp/shadowfile.el b/lisp/shadowfile.el
index 5e54f0f..21d0f0a 100644
--- a/lisp/shadowfile.el
+++ b/lisp/shadowfile.el
@@ -1,6 +1,6 @@
 ;;; shadowfile.el --- automatic file copying
 
-;; Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Boris Goldowsky <address@hidden>
 ;; Keywords: comm files
diff --git a/lisp/shell.el b/lisp/shell.el
index cabd1e5..c7ba64e 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -1,6 +1,6 @@
 ;;; shell.el --- specialized comint.el for running the shell -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1988, 1993-1997, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1988, 1993-1997, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Olin Shivers <address@hidden>
@@ -544,11 +544,14 @@ control whether input and output cause the window to 
scroll to the end of the
 buffer."
   (setq comint-prompt-regexp shell-prompt-pattern)
   (shell-completion-vars)
-  (set (make-local-variable 'paragraph-separate) "\\'")
-  (set (make-local-variable 'paragraph-start) comint-prompt-regexp)
-  (set (make-local-variable 'font-lock-defaults) '(shell-font-lock-keywords t))
-  (set (make-local-variable 'shell-dirstack) nil)
-  (set (make-local-variable 'shell-last-dir) nil)
+  (setq-local paragraph-separate "\\'")
+  (setq-local paragraph-start comint-prompt-regexp)
+  (setq-local font-lock-defaults '(shell-font-lock-keywords t))
+  (setq-local shell-dirstack nil)
+  (setq-local shell-last-dir nil)
+  ;; People expect Shell mode to keep the last line of output at
+  ;; window bottom.
+  (setq-local scroll-conservatively 101)
   (shell-dirtrack-mode 1)
 
   ;; By default, ansi-color applies faces using overlays.  This is
@@ -997,6 +1000,8 @@ command again."
       (let ((pt (point))
            (regexp
             (concat
+              ;; comint-process-echoes is the thing that breaks the
+              ;; throbber
              (if comint-process-echoes
                  ;; Skip command echo if the process echoes
                  (concat "\\(" (regexp-quote shell-dirstack-query) "\n\\)")
diff --git a/lisp/simple.el b/lisp/simple.el
index 0ee2f06..441713a 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -1,6 +1,6 @@
 ;;; simple.el --- basic editing commands for Emacs  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1985-1987, 1993-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1987, 1993-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: internal
@@ -1699,6 +1699,7 @@ If the value is non-nil and not a number, we wait 2 
seconds."
                   ;; Don't show the help message if the binding isn't
                   ;; significantly shorter than the M-x command the user typed.
                   (< len (- max 5))))
+      (input-pending-p)    ;Dummy call to trigger input-processing, bug#23002.
       (let ((candidate (pop candidates)))
         (when (equal name
                        (car-safe (completion-try-completion
@@ -5409,11 +5410,15 @@ also checks the value of `use-empty-active-region'."
        ;; region is active when there's no mark.
        (progn (cl-assert (mark)) t)))
 
+(defun region-bounds ()
+  "Return the boundaries of the region as a list of (START . END) positions."
+  (funcall region-extract-function 'bounds))
+
 (defun region-noncontiguous-p ()
   "Return non-nil if the region contains several pieces.
 An example is a rectangular region handled as a list of
 separate contiguous regions for each line."
-  (> (length (funcall region-extract-function 'bounds)) 1))
+  (> (length (region-bounds)) 1))
 
 (defvar redisplay-unhighlight-region-function
   (lambda (rol) (when (overlayp rol) (delete-overlay rol))))
@@ -7567,7 +7572,7 @@ More precisely, a char with closeparen syntax is 
self-inserted.")
 
 ;; This executes C-g typed while Emacs is waiting for a command.
 ;; Quitting out of a program does not go through here;
-;; that happens in the QUIT macro at the C code level.
+;; that happens in the maybe_quit function at the C code level.
 (defun keyboard-quit ()
   "Signal a `quit' condition.
 During execution of Lisp code, this character causes a quit directly.
diff --git a/lisp/skeleton.el b/lisp/skeleton.el
index 0e81e2d..92de90c 100644
--- a/lisp/skeleton.el
+++ b/lisp/skeleton.el
@@ -1,6 +1,6 @@
 ;;; skeleton.el --- Lisp language extension for writing statement skeletons
 
-;; Copyright (C) 1993-1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Daniel Pfeiffer <address@hidden>
 ;; Maintainer: address@hidden
@@ -59,8 +59,7 @@ region.")
 (make-obsolete-variable 'skeleton-autowrap nil "24.5")
 
 (defvar skeleton-end-newline t
-  "If non-nil, make sure that the skeleton inserted ends with a newline.
-This just influences the way the default `skeleton-end-hook' behaves.")
+  "If non-nil, make sure that the skeleton inserted ends with a newline.")
 
 (defvar skeleton-end-hook nil
   "Hook called at end of skeleton but before going to point of interest.
@@ -187,6 +186,10 @@ The optional third argument STR, if specified, is the 
value for the
 variable `str' within the skeleton.  When this is non-nil, the
 interactor gets ignored, and this should be a valid skeleton element.
 
+When done with skeleton, but before going back to `_'-point, add
+a newline (unless `skeleton-end-newline' is nil) and run the hook
+`skeleton-end-hook'.
+
 SKELETON is made up as (INTERACTOR ELEMENT ...).  INTERACTOR may be nil if
 not needed, a prompt-string or an expression for complex read functions.
 
@@ -235,10 +238,7 @@ available:
                then: insert previously read string once more
        help    help-form during interaction with the user or nil
        input   initial input (string or cons with index) while reading str
-       v1, v2  local variables for memorizing anything you want
-
-When done with skeleton, but before going back to `_'-point call
-`skeleton-end-hook' if that is non-nil."
+       v1, v2  local variables for memorizing anything you want"
   (let ((skeleton-regions regions))
     (and skeleton-regions
         (setq skeleton-regions
diff --git a/lisp/sort.el b/lisp/sort.el
index 7f8acfc..88a784f 100644
--- a/lisp/sort.el
+++ b/lisp/sort.el
@@ -1,6 +1,6 @@
 ;;; sort.el --- commands to sort text in an Emacs buffer -*- lexical-binding: 
t -*-
 
-;; Copyright (C) 1986-1987, 1994-1995, 2001-2016 Free Software
+;; Copyright (C) 1986-1987, 1994-1995, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Howie Kaye
diff --git a/lisp/soundex.el b/lisp/soundex.el
index 7019044..e0d8330 100644
--- a/lisp/soundex.el
+++ b/lisp/soundex.el
@@ -1,6 +1,6 @@
 ;;; soundex.el --- implement Soundex algorithm
 
-;; Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Christian Plaunt <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index 4ed00ae..3113471 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -1,6 +1,6 @@
 ;;; speedbar --- quick access to files and tags in a frame
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 ;; Keywords: file, tags, tools
diff --git a/lisp/startup.el b/lisp/startup.el
index 4a04f9c..91e7e36 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1,6 +1,6 @@
 ;;; startup.el --- process Emacs shell arguments  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1985-1986, 1992, 1994-2016 Free Software Foundation,
+;; Copyright (C) 1985-1986, 1992, 1994-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/strokes.el b/lisp/strokes.el
index 5a2020d..a70c3f5 100644
--- a/lisp/strokes.el
+++ b/lisp/strokes.el
@@ -1,6 +1,6 @@
 ;;; strokes.el --- control Emacs through mouse strokes
 
-;; Copyright (C) 1997, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: David Bakhash <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/subr.el b/lisp/subr.el
index 99b1429..a204577 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1,6 +1,6 @@
 ;;; subr.el --- basic lisp subroutines for Emacs  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1985-1986, 1992, 1994-1995, 1999-2016 Free Software
+;; Copyright (C) 1985-1986, 1992, 1994-1995, 1999-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
@@ -384,6 +384,126 @@ configuration."
   (declare (compiler-macro internal--compiler-macro-cXXr))
   (cdr (cdr x)))
 
+(defun caaar (x)
+  "Return the `car' of the `car' of the `car' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (car (car (car x))))
+
+(defun caadr (x)
+  "Return the `car' of the `car' of the `cdr' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (car (car (cdr x))))
+
+(defun cadar (x)
+  "Return the `car' of the `cdr' of the `car' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (car (cdr (car x))))
+
+(defun caddr (x)
+  "Return the `car' of the `cdr' of the `cdr' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (car (cdr (cdr x))))
+
+(defun cdaar (x)
+  "Return the `cdr' of the `car' of the `car' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (cdr (car (car x))))
+
+(defun cdadr (x)
+  "Return the `cdr' of the `car' of the `cdr' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (cdr (car (cdr x))))
+
+(defun cddar (x)
+  "Return the `cdr' of the `cdr' of the `car' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (cdr (cdr (car x))))
+
+(defun cdddr (x)
+  "Return the `cdr' of the `cdr' of the `cdr' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (cdr (cdr (cdr x))))
+
+(defun caaaar (x)
+  "Return the `car' of the `car' of the `car' of the `car' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (car (car (car (car x)))))
+
+(defun caaadr (x)
+  "Return the `car' of the `car' of the `car' of the `cdr' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (car (car (car (cdr x)))))
+
+(defun caadar (x)
+  "Return the `car' of the `car' of the `cdr' of the `car' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (car (car (cdr (car x)))))
+
+(defun caaddr (x)
+  "Return the `car' of the `car' of the `cdr' of the `cdr' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (car (car (cdr (cdr x)))))
+
+(defun cadaar (x)
+  "Return the `car' of the `cdr' of the `car' of the `car' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (car (cdr (car (car x)))))
+
+(defun cadadr (x)
+  "Return the `car' of the `cdr' of the `car' of the `cdr' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (car (cdr (car (cdr x)))))
+
+(defun caddar (x)
+  "Return the `car' of the `cdr' of the `cdr' of the `car' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (car (cdr (cdr (car x)))))
+
+(defun cadddr (x)
+  "Return the `car' of the `cdr' of the `cdr' of the `cdr' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (car (cdr (cdr (cdr x)))))
+
+(defun cdaaar (x)
+  "Return the `cdr' of the `car' of the `car' of the `car' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (cdr (car (car (car x)))))
+
+(defun cdaadr (x)
+  "Return the `cdr' of the `car' of the `car' of the `cdr' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (cdr (car (car (cdr x)))))
+
+(defun cdadar (x)
+  "Return the `cdr' of the `car' of the `cdr' of the `car' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (cdr (car (cdr (car x)))))
+
+(defun cdaddr (x)
+  "Return the `cdr' of the `car' of the `cdr' of the `cdr' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (cdr (car (cdr (cdr x)))))
+
+(defun cddaar (x)
+  "Return the `cdr' of the `cdr' of the `car' of the `car' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (cdr (cdr (car (car x)))))
+
+(defun cddadr (x)
+  "Return the `cdr' of the `cdr' of the `car' of the `cdr' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (cdr (cdr (car (cdr x)))))
+
+(defun cdddar (x)
+  "Return the `cdr' of the `cdr' of the `cdr' of the `car' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (cdr (cdr (cdr (car x)))))
+
+(defun cddddr (x)
+  "Return the `cdr' of the `cdr' of the `cdr' of the `cdr' of X."
+  (declare (compiler-macro internal--compiler-macro-cXXr))
+  (cdr (cdr (cdr (cdr x)))))
+
 (defun last (list &optional n)
   "Return the last link of LIST.  Its car is the last element.
 If LIST is nil, return nil.
@@ -1297,8 +1417,10 @@ be a list of the form returned by `event-start' and 
`event-end'."
 ;; bug#23850
 (make-obsolete 'string-to-unibyte   "use `encode-coding-string'." "26.1")
 (make-obsolete 'string-as-unibyte   "use `encode-coding-string'." "26.1")
+(make-obsolete 'string-make-unibyte   "use `encode-coding-string'." "26.1")
 (make-obsolete 'string-to-multibyte "use `decode-coding-string'." "26.1")
 (make-obsolete 'string-as-multibyte "use `decode-coding-string'." "26.1")
+(make-obsolete 'string-make-multibyte "use `decode-coding-string'." "26.1")
 
 (defun log10 (x)
   "Return (log X 10), the log base 10 of X."
@@ -1310,8 +1432,7 @@ be a list of the form returned by `event-start' and 
`event-end'."
 (make-obsolete 'focus-frame "it does nothing." "22.1")
 (defalias 'unfocus-frame 'ignore "")
 (make-obsolete 'unfocus-frame "it does nothing." "22.1")
-(make-obsolete 'make-variable-frame-local
-              "explicitly check for a frame-parameter instead." "22.2")
+
 (set-advertised-calling-convention
  'all-completions '(string collection &optional predicate) "23.1")
 (set-advertised-calling-convention 'unintern '(name obarray) "23.3")
diff --git a/lisp/svg.el b/lisp/svg.el
index a92c6df..65e031b 100644
--- a/lisp/svg.el
+++ b/lisp/svg.el
@@ -1,6 +1,6 @@
 ;;; svg.el --- SVG image creation functions -*- lexical-binding: t -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: image
diff --git a/lisp/t-mouse.el b/lisp/t-mouse.el
index 5ea1bdd..2ed2fcb 100644
--- a/lisp/t-mouse.el
+++ b/lisp/t-mouse.el
@@ -4,7 +4,7 @@
 ;; Maintainer: address@hidden
 ;; Keywords: mouse gpm linux
 
-;; Copyright (C) 1994-1995, 1998, 2006-2016 Free Software Foundation,
+;; Copyright (C) 1994-1995, 1998, 2006-2017 Free Software Foundation,
 ;; Inc.
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/tabify.el b/lisp/tabify.el
index 6f3e63e..75ff61d 100644
--- a/lisp/tabify.el
+++ b/lisp/tabify.el
@@ -1,6 +1,6 @@
 ;;; tabify.el --- tab conversion commands for Emacs
 
-;; Copyright (C) 1985, 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Package: emacs
diff --git a/lisp/talk.el b/lisp/talk.el
index ae8bd28..f35f934 100644
--- a/lisp/talk.el
+++ b/lisp/talk.el
@@ -1,6 +1,6 @@
 ;;; talk.el --- allow several users to talk to each other through Emacs
 
-;; Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: comm, frames
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el
index 0520369..f25b1a4 100644
--- a/lisp/tar-mode.el
+++ b/lisp/tar-mode.el
@@ -1,6 +1,6 @@
 ;;; tar-mode.el --- simple editing of tar files from GNU Emacs
 
-;; Copyright (C) 1990-1991, 1993-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1990-1991, 1993-2017 Free Software Foundation, Inc.
 
 ;; Author: Jamie Zawinski <address@hidden>
 ;; Maintainer: address@hidden
@@ -544,6 +544,7 @@ MODE should be an integer which is a file mode value."
                (dir (if (eq (tar-header-link-type descriptor) 5)
                         name
                       (file-name-directory name)))
+               (link-desc (tar--describe-as-link descriptor))
                (start (tar-header-data-start descriptor))
                (end (+ start (tar-header-size descriptor))))
           (unless (file-directory-p name)
@@ -552,6 +553,10 @@ MODE should be an integer which is a file mode value."
                 (make-directory dir t))
             (unless (file-directory-p name)
              (let ((coding-system-for-write 'no-conversion))
+                (when link-desc
+                  (lwarn '(tar link) :warning
+                         "Extracted `%s', %s, as a normal file"
+                         name link-desc))
                (write-region start end name)))
             (set-file-modes name (tar-header-mode descriptor))))))))
 
@@ -816,19 +821,23 @@ tar-file's buffer."
          nil
          (error "This line does not describe a tar-file entry"))))
 
-(defun tar--check-descriptor (descriptor)
+(defun tar--describe-as-link (descriptor)
   (let ((link-p (tar-header-link-type descriptor)))
     (if link-p
-       (error "This is %s, not a real file"
-              (cond ((eq link-p 5) "a directory")
-                    ((eq link-p 20) "a tar directory header")
-                    ((eq link-p 28) "a next has longname")
-                    ((eq link-p 29) "a multivolume-continuation")
-                    ((eq link-p 35) "a sparse entry")
-                    ((eq link-p 38) "a volume header")
-                    ((eq link-p 55) "a pax global extended header")
-                    ((eq link-p 72) "a pax extended header")
-                    (t "a link"))))))
+       (cond ((eq link-p 5) "a directory")
+              ((eq link-p 20) "a tar directory header")
+              ((eq link-p 28) "a next has longname")
+              ((eq link-p 29) "a multivolume-continuation")
+              ((eq link-p 35) "a sparse entry")
+              ((eq link-p 38) "a volume header")
+              ((eq link-p 55) "a pax global extended header")
+              ((eq link-p 72) "a pax extended header")
+              (t "a link")))))
+
+(defun tar--check-descriptor (descriptor)
+  (let ((link-desc (tar--describe-as-link descriptor)))
+    (when link-desc
+      (error "This is %s, not a real file" link-desc))))
 
 (defun tar-get-descriptor ()
   (let* ((descriptor (tar-current-descriptor))
diff --git a/lisp/tempo.el b/lisp/tempo.el
index beb4dba..e4c5003 100644
--- a/lisp/tempo.el
+++ b/lisp/tempo.el
@@ -1,6 +1,6 @@
 ;;; tempo.el --- Flexible template insertion
 
-;; Copyright (C) 1994-1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: David Kågedal <address@hidden>
 ;; Created: 16 Feb 1994
diff --git a/lisp/term.el b/lisp/term.el
index a4c652b..063a6ea 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -1,6 +1,6 @@
 ;;; term.el --- general command interpreter in a window stuff
 
-;; Copyright (C) 1988, 1990, 1992, 1994-1995, 2001-2016 Free Software
+;; Copyright (C) 1988, 1990, 1992, 1994-1995, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Per Bothner <address@hidden>
@@ -341,6 +341,7 @@
 (defconst term-protocol-version "0.96")
 
 (eval-when-compile (require 'ange-ftp))
+(eval-when-compile (require 'cl-lib))
 (require 'ring)
 (require 'ehelp)
 
@@ -404,6 +405,7 @@ state 4: term-terminal-parameter contains pending output.")
 (defvar term-kill-echo-list nil
   "A queue of strings whose echo we want suppressed.")
 (defvar term-terminal-parameter)
+(defvar term-terminal-undecoded-bytes nil)
 (defvar term-terminal-previous-parameter)
 (defvar term-current-face 'term)
 (defvar term-scroll-start 0 "Top-most line (inclusive) of scrolling region.")
@@ -1015,7 +1017,6 @@ Entry to this mode runs the hooks on `term-mode-hook'."
 
   ;; These local variables are set to their local values:
   (make-local-variable 'term-saved-home-marker)
-  (make-local-variable 'term-terminal-parameter)
   (make-local-variable 'term-saved-cursor)
   (make-local-variable 'term-prompt-regexp)
   (make-local-variable 'term-input-ring-size)
@@ -1052,6 +1053,7 @@ Entry to this mode runs the hooks on `term-mode-hook'."
   (make-local-variable 'term-ansi-current-invisible)
 
   (make-local-variable 'term-terminal-parameter)
+  (make-local-variable 'term-terminal-undecoded-bytes)
   (make-local-variable 'term-terminal-previous-parameter)
   (make-local-variable 'term-terminal-previous-parameter-2)
   (make-local-variable 'term-terminal-previous-parameter-3)
@@ -2748,6 +2750,10 @@ See `term-prompt-regexp'."
 
          (when term-log-buffer
            (princ str term-log-buffer))
+          (when term-terminal-undecoded-bytes
+            (setq str (concat term-terminal-undecoded-bytes str))
+            (setq str-length (length str))
+            (setq term-terminal-undecoded-bytes nil))
          (cond ((eq term-terminal-state 4) ;; Have saved pending output.
                 (setq str (concat term-terminal-parameter str))
                 (setq term-terminal-parameter nil)
@@ -2763,13 +2769,6 @@ See `term-prompt-regexp'."
                                       str i))
                   (when (not funny) (setq funny str-length))
                   (cond ((> funny i)
-                         ;; Decode the string before counting
-                         ;; characters, to avoid garbling of certain
-                         ;; multibyte characters (bug#1006).
-                         (setq decoded-substring
-                               (decode-coding-string
-                                (substring str i funny)
-                                locale-coding-system))
                          (cond ((eq term-terminal-state 1)
                                 ;; We are in state 1, we need to wrap
                                 ;; around.  Go to the beginning of
@@ -2778,7 +2777,31 @@ See `term-prompt-regexp'."
                                 (term-down 1 t)
                                 (term-move-columns (- (term-current-column)))
                                 (setq term-terminal-state 0)))
+                         ;; Decode the string before counting
+                         ;; characters, to avoid garbling of certain
+                         ;; multibyte characters (bug#1006).
+                         (setq decoded-substring
+                               (decode-coding-string
+                                (substring str i funny)
+                                locale-coding-system))
                          (setq count (length decoded-substring))
+                          ;; Check for multibyte characters that ends
+                          ;; before end of string, and save it for
+                          ;; next time.
+                          (when (= funny str-length)
+                            (let ((partial 0))
+                              (while (eq (char-charset (aref decoded-substring
+                                                             (- count 1 
partial)))
+                                         'eight-bit)
+                                (cl-incf partial))
+                              (when (> partial 0)
+                                (setq term-terminal-undecoded-bytes
+                                      (substring decoded-substring (- 
partial)))
+                                (setq decoded-substring
+                                      (substring decoded-substring 0 (- 
partial)))
+                                (cl-decf str-length partial)
+                                (cl-decf count partial)
+                                (cl-decf funny partial))))
                          (setq temp (- (+ (term-horizontal-column) count)
                                        term-width))
                          (cond ((or term-suppress-hard-newline (<= temp 0)))
@@ -2878,15 +2901,16 @@ See `term-prompt-regexp'."
                         ((eq char ?\017))     ; Shift In - ignored
                         ((eq char ?\^G) ;; (terminfo: bel)
                          (beep t))
-                        ((and (eq char ?\032)
-                               (not handled-ansi-message))
-                         (let ((end (string-match "\r?$" str i)))
+                        ((eq char ?\032)
+                         (let ((end (string-match "\r?\n" str i)))
                            (if end
-                               (funcall term-command-hook
-                                        (decode-coding-string
-                                         (prog1 (substring str (1+ i) end)
-                                           (setq i (match-end 0)))
-                                         locale-coding-system))
+                                (progn
+                                  (unless handled-ansi-message
+                                    (funcall term-command-hook
+                                             (decode-coding-string
+                                              (substring str (1+ i) end)
+                                              locale-coding-system)))
+                                  (setq i (1- (match-end 0))))
                              (setq term-terminal-parameter (substring str i))
                              (setq term-terminal-state 4)
                              (setq i str-length))))
diff --git a/lisp/term/AT386.el b/lisp/term/AT386.el
index 6346942..ac02774 100644
--- a/lisp/term/AT386.el
+++ b/lisp/term/AT386.el
@@ -1,6 +1,6 @@
 ;;; AT386.el --- terminal support package for IBM AT keyboards
 
-;; Copyright (C) 1992, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric S. Raymond <address@hidden>
 ;; Keywords: terminals
diff --git a/lisp/term/README b/lisp/term/README
index 0c090ad..9cb844b 100644
--- a/lisp/term/README
+++ b/lisp/term/README
@@ -1,4 +1,4 @@
-Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/lisp/term/common-win.el b/lisp/term/common-win.el
index 937e47f..cce8458 100644
--- a/lisp/term/common-win.el
+++ b/lisp/term/common-win.el
@@ -1,6 +1,6 @@
 ;;; common-win.el --- common part of handling window systems
 
-;; Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: terminals
diff --git a/lisp/term/internal.el b/lisp/term/internal.el
index 0fd0f22..00a908a 100644
--- a/lisp/term/internal.el
+++ b/lisp/term/internal.el
@@ -1,6 +1,6 @@
 ;;; internal.el --- support for PC internal terminal
 
-;; Copyright (C) 1993-1994, 1998-1999, 2001-2016 Free Software
+;; Copyright (C) 1993-1994, 1998-1999, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Morten Welinder <address@hidden>
diff --git a/lisp/term/iris-ansi.el b/lisp/term/iris-ansi.el
index 5217e42..d3ddb19 100644
--- a/lisp/term/iris-ansi.el
+++ b/lisp/term/iris-ansi.el
@@ -1,6 +1,6 @@
 ;;; iris-ansi.el --- configure Emacs for SGI xwsh and winterm apps
 
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Dan Nicolaescu <address@hidden>
 
diff --git a/lisp/term/news.el b/lisp/term/news.el
index 5738644..241db33 100644
--- a/lisp/term/news.el
+++ b/lisp/term/news.el
@@ -1,6 +1,6 @@
 ;;; news.el --- keypad and function key bindings for the Sony NEWS keyboard
 
-;; Copyright (C) 1989, 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: FSF
 ;; Keywords: terminals
diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el
index 41d6d72..caad515 100644
--- a/lisp/term/ns-win.el
+++ b/lisp/term/ns-win.el
@@ -1,6 +1,6 @@
 ;;; ns-win.el --- lisp side of interface with NeXT/Open/GNUstep/macOS window 
system  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1993-1994, 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2005-2017 Free Software Foundation, Inc.
 
 ;; Authors: Carl Edman
 ;;     Christian Limpach
diff --git a/lisp/term/pc-win.el b/lisp/term/pc-win.el
index 031768c..b6f2acc 100644
--- a/lisp/term/pc-win.el
+++ b/lisp/term/pc-win.el
@@ -1,6 +1,6 @@
 ;;; pc-win.el --- setup support for `PC windows' (whatever that is)  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1994, 1996-1997, 1999, 2001-2016 Free Software
+;; Copyright (C) 1994, 1996-1997, 1999, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Morten Welinder <address@hidden>
@@ -263,7 +263,7 @@ Consult the selection.  Treat empty strings as if they were 
unset."
       (if (w16-selection-owner-p selection)
           t)
     ;; FIXME: Other systems don't obey
-    ;; gui-select-enable-clipboard here.
+    ;; select-enable-clipboard here.
     (with-demoted-errors "w16-set-clipboard-data: %S"
       (w16-set-clipboard-data value))
     value))
diff --git a/lisp/term/rxvt.el b/lisp/term/rxvt.el
index 97d3865..d80bb78 100644
--- a/lisp/term/rxvt.el
+++ b/lisp/term/rxvt.el
@@ -1,6 +1,6 @@
 ;;; rxvt.el --- define function key sequences and standard colors for rxvt
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Eli Zaretskii
 ;; Keywords: terminals
diff --git a/lisp/term/screen.el b/lisp/term/screen.el
index d7ee770..cb07d19 100644
--- a/lisp/term/screen.el
+++ b/lisp/term/screen.el
@@ -1,5 +1,5 @@
 ;;; screen.el --- terminal initialization for screen and tmux  -*- 
lexical-binding: t -*-
-;; Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 (require 'term/xterm)
 
diff --git a/lisp/term/sun.el b/lisp/term/sun.el
index ef40db1..88e63d2 100644
--- a/lisp/term/sun.el
+++ b/lisp/term/sun.el
@@ -1,6 +1,6 @@
 ;;; sun.el --- keybinding for standard default sunterm keys
 
-;; Copyright (C) 1987, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Jeff Peck <address@hidden>
 ;; Keywords: terminals
diff --git a/lisp/term/tmux.el b/lisp/term/tmux.el
new file mode 100644
index 0000000..60d18d7
--- /dev/null
+++ b/lisp/term/tmux.el
@@ -0,0 +1,25 @@
+;;; tmux.el --- terminal initialization for tmux  -*- lexical-binding: t -*-
+;; Copyright (C) 2017 Free Software Foundation, Inc.
+
+(require 'term/xterm)
+
+(defcustom xterm-tmux-extra-capabilities '(modifyOtherKeys)
+  "Extra capabilities supported under \"tmux\".
+Some features of tmux depend on the terminal emulator in which
+it runs, which can change when the tmux session is moved to another tty."
+  :version "26.1"
+  :type xterm--extra-capabilities-type
+  :group 'xterm)
+
+(defun terminal-init-tmux ()
+  "Terminal initialization function for tmux."
+  ;; Treat a tmux terminal similar to an xterm, but don't use
+  ;; xterm-extra-capabilities's `check' setting since that doesn't seem
+  ;; to work so well (it depends too much on the surrounding terminal
+  ;; emulator, which can change during the session, bug#20356).
+  (let ((xterm-extra-capabilities xterm-tmux-extra-capabilities))
+    (tty-run-terminal-initialization (selected-frame) "xterm")))
+
+(provide 'term/tmux)
+
+;; tmux.el ends here
diff --git a/lisp/term/tty-colors.el b/lisp/term/tty-colors.el
index a886950..252a430 100644
--- a/lisp/term/tty-colors.el
+++ b/lisp/term/tty-colors.el
@@ -1,6 +1,6 @@
 ;;; tty-colors.el --- color support for character terminals
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Eli Zaretskii
 ;; Maintainer: address@hidden
diff --git a/lisp/term/tvi970.el b/lisp/term/tvi970.el
index e25a3b6..862cd79 100644
--- a/lisp/term/tvi970.el
+++ b/lisp/term/tvi970.el
@@ -1,6 +1,6 @@
 ;;; tvi970.el --- terminal support for the Televideo 970
 
-;; Copyright (C) 1992, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Jim Blandy <address@hidden>
 ;; Keywords: terminals
diff --git a/lisp/term/vt100.el b/lisp/term/vt100.el
index 16a1c27..bc17138 100644
--- a/lisp/term/vt100.el
+++ b/lisp/term/vt100.el
@@ -1,6 +1,6 @@
 ;;; vt100.el --- define VT100 function key sequences in function-key-map
 
-;; Copyright (C) 1989, 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: FSF
 ;; Keywords: terminals
diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el
index d8cf5ef..fda9388 100644
--- a/lisp/term/w32-win.el
+++ b/lisp/term/w32-win.el
@@ -1,6 +1,6 @@
 ;;; w32-win.el --- parse switches controlling interface with W32 window system 
-*- lexical-binding: t -*-
 
-;; Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Kevin Gallo
 ;; Keywords: terminals
diff --git a/lisp/term/w32console.el b/lisp/term/w32console.el
index bf1550f..f8b8b3c 100644
--- a/lisp/term/w32console.el
+++ b/lisp/term/w32console.el
@@ -1,6 +1,6 @@
 ;;; w32console.el -- Setup w32 console keys and colors.
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: FSF
 ;; Keywords: terminals
diff --git a/lisp/term/wyse50.el b/lisp/term/wyse50.el
index d3ee7a0..a6b2e7c 100644
--- a/lisp/term/wyse50.el
+++ b/lisp/term/wyse50.el
@@ -1,6 +1,6 @@
 ;;; wyse50.el --- terminal support code for Wyse 50
 
-;; Copyright (C) 1989, 1993-1994, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1989, 1993-1994, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Daniel Pfeiffer <address@hidden>,
diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
index c8e79e3..532d039 100644
--- a/lisp/term/x-win.el
+++ b/lisp/term/x-win.el
@@ -1,6 +1,6 @@
 ;;; x-win.el --- parse relevant switches and set up for X  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: FSF
 ;; Keywords: terminals, i18n
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el
index 5fc6056..339d05d 100644
--- a/lisp/term/xterm.el
+++ b/lisp/term/xterm.el
@@ -1,6 +1,6 @@
 ;;; xterm.el --- define function key sequences and standard colors for xterm  
-*- lexical-binding: t -*-
 
-;; Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: FSF
 ;; Keywords: terminals
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index 6342110..596570c 100644
--- a/lisp/textmodes/artist.el
+++ b/lisp/textmodes/artist.el
@@ -1,6 +1,6 @@
 ;;; artist.el --- draw ascii graphics with your mouse
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author:       Tomas Abrahamsson <address@hidden>
 ;; Maintainer:   Tomas Abrahamsson <address@hidden>
diff --git a/lisp/textmodes/bib-mode.el b/lisp/textmodes/bib-mode.el
index 8b40558..74d2144 100644
--- a/lisp/textmodes/bib-mode.el
+++ b/lisp/textmodes/bib-mode.el
@@ -1,6 +1,6 @@
 ;;; bib-mode.el --- major mode for editing bib files
 
-;; Copyright (C) 1989, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Henry Kautz
 ;; (according to authors.el)
diff --git a/lisp/textmodes/bibtex-style.el b/lisp/textmodes/bibtex-style.el
index f4113e1..393bbd1 100644
--- a/lisp/textmodes/bibtex-style.el
+++ b/lisp/textmodes/bibtex-style.el
@@ -1,6 +1,6 @@
 ;;; bibtex-style.el --- Major mode for BibTeX Style files -*- lexical-binding: 
t -*-
 
-;; Copyright (C) 2005, 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: tex
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index bc9bf79..6cbdc1ef 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -1,6 +1,6 @@
 ;;; bibtex.el --- BibTeX mode for GNU Emacs -*- lexical-binding: t -*-
 
-;; Copyright (C) 1992, 1994-1999, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1992, 1994-1999, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Stefan Schoef <address@hidden>
diff --git a/lisp/textmodes/conf-mode.el b/lisp/textmodes/conf-mode.el
index 8ae8b0b..054d8db 100644
--- a/lisp/textmodes/conf-mode.el
+++ b/lisp/textmodes/conf-mode.el
@@ -1,6 +1,6 @@
 ;;; conf-mode.el --- Simple major mode for editing conf/ini/properties files
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Daniel Pfeiffer <address@hidden>
 ;; Keywords: conf ini windows java
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 9e36a88..19f74da 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -1,6 +1,6 @@
 ;;; css-mode.el --- Major mode to edit CSS files  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Maintainer: Simen Heggestøyl <address@hidden>
@@ -27,7 +27,6 @@
 
 ;;; Todo:
 
-;; - electric ; and }
 ;; - filling code with auto-fill-mode
 ;; - fix font-lock errors with multi-line selectors
 
@@ -36,6 +35,7 @@
 (require 'seq)
 (require 'sgml-mode)
 (require 'smie)
+(require 'eww)
 
 (defgroup css nil
   "Cascading Style Sheets (CSS) editing mode."
@@ -622,6 +622,12 @@ cannot be completed sensibly: `custom-ident',
     (modify-syntax-entry ?- "_" st)
     st))
 
+(defvar css-mode-map
+  (let ((map (make-sparse-keymap)))
+    (define-key map [remap info-lookup-symbol] 'css-lookup-symbol)
+    map)
+  "Keymap used in `css-mode'.")
+
 (eval-and-compile
   (defconst css--uri-re
     (concat
@@ -667,6 +673,8 @@ cannot be completed sensibly: `custom-ident',
     ;; Variables.
     (,(concat "--" css-ident-re) (0 font-lock-variable-name-face))
     ;; Selectors.
+    ;; Allow plain ":root" as a selector.
+    ("^[ \t]*\\(:root\\)\\(?:[\n \t]*\\)*{" (1 'css-selector keep))
     ;; FIXME: attribute selectors don't work well because they may contain
     ;; strings which have already been highlighted as f-l-string-face and
     ;; thus prevent this highlighting from being applied (actually now that
@@ -1086,5 +1094,112 @@ pseudo-elements, pseudo-classes, at-rules, and 
bang-rules."
   (setq-local font-lock-defaults
               (list (scss-font-lock-keywords) nil t)))
 
+
+
+(defvar css--mdn-lookup-history nil)
+
+(defcustom css-lookup-url-format
+  "https://developer.mozilla.org/en-US/docs/Web/CSS/%s?raw&macros";
+  "Format for a URL where CSS documentation can be found.
+The format should include a single \"%s\" substitution.
+The name of the CSS property, @-id, pseudo-class, or pseudo-element
+to look up will be substituted there."
+  :version "26.1"
+  :type 'string
+  :group 'css)
+
+(defun css--mdn-after-render ()
+  (setf header-line-format nil)
+  (goto-char (point-min))
+  (let ((window (get-buffer-window (current-buffer) 'visible)))
+    (when window
+      (when (re-search-forward "^Summary" nil 'move)
+        (beginning-of-line)
+        (set-window-start window (point))))))
+
+(defconst css--mdn-symbol-regexp
+  (concat "\\("
+         ;; @-ids.
+         "\\(@" (regexp-opt css-at-ids) "\\)"
+         "\\|"
+         ;; ;; Known properties.
+         (regexp-opt css-property-ids t)
+         "\\|"
+         ;; Pseudo-classes.
+         "\\(:" (regexp-opt css-pseudo-class-ids) "\\)"
+         "\\|"
+         ;; Pseudo-elements with either one or two ":"s.
+         "\\(::?" (regexp-opt css-pseudo-element-ids) "\\)"
+         "\\)")
+  "Regular expression to match the CSS symbol at point.")
+
+(defconst css--mdn-property-regexp
+  (concat "\\_<" (regexp-opt css-property-ids t) "\\s-*\\(?:\\=\\|:\\)")
+  "Regular expression to match a CSS property.")
+
+(defconst css--mdn-completion-list
+  (nconc
+   ;; @-ids.
+   (mapcar (lambda (atrule) (concat "@" atrule)) css-at-ids)
+   ;; Pseudo-classes.
+   (mapcar (lambda (class) (concat ":" class)) css-pseudo-class-ids)
+   ;; Pseudo-elements with either one or two ":"s.
+   (mapcar (lambda (elt) (concat ":" elt)) css-pseudo-element-ids)
+   (mapcar (lambda (elt) (concat "::" elt)) css-pseudo-element-ids)
+   ;; Properties.
+   css-property-ids)
+  "List of all symbols available for lookup via MDN.")
+
+(defun css--mdn-find-symbol ()
+  "A helper for `css-lookup-symbol' that finds the symbol at point.
+Returns the symbol, a string, or nil if none found."
+  (save-excursion
+    ;; Skip backward over a word first.
+    (skip-chars-backward "-[:alnum:] \t")
+    ;; Now skip ":" or "@" to see if it's a pseudo-element or at-id.
+    (skip-chars-backward "@:")
+    (if (looking-at css--mdn-symbol-regexp)
+       (match-string-no-properties 0)
+      (let ((bound (save-excursion
+                    (beginning-of-line)
+                    (point))))
+       (when (re-search-backward css--mdn-property-regexp bound t)
+         (match-string-no-properties 1))))))
+
+;;;###autoload
+(defun css-lookup-symbol (symbol)
+  "Display the CSS documentation for SYMBOL, as found on MDN.
+When this command is used interactively, it picks a default
+symbol based on the CSS text before point -- either an @-keyword,
+a property name, a pseudo-class, or a pseudo-element, depending
+on what is seen near point."
+  (interactive
+   (list
+    (let* ((sym (css--mdn-find-symbol))
+          (enable-recursive-minibuffers t)
+          (value (completing-read
+                  (if sym
+                      (format "Describe CSS symbol (default %s): " sym)
+                    "Describe CSS symbol: ")
+                  css--mdn-completion-list nil nil nil
+                  'css--mdn-lookup-history sym)))
+      (if (equal value "") sym value))))
+  (when symbol
+    ;; If we see a single-colon pseudo-element like ":after", turn it
+    ;; into "::after".
+    (when (and (eq (aref symbol 0) ?:)
+              (member (substring symbol 1) css-pseudo-element-ids))
+      (setq symbol (concat ":" symbol)))
+    (let ((url (format css-lookup-url-format symbol))
+          (buffer (get-buffer-create "*MDN CSS*")))
+      (save-selected-window
+        ;; Make sure to display the buffer before calling `eww', as
+        ;; that calls `pop-to-buffer-same-window'.
+        (switch-to-buffer-other-window buffer)
+        (with-current-buffer buffer
+          (eww-mode)
+          (add-hook 'eww-after-render-hook #'css--mdn-after-render nil t)
+          (eww url))))))
+
 (provide 'css-mode)
 ;;; css-mode.el ends here
diff --git a/lisp/textmodes/dns-mode.el b/lisp/textmodes/dns-mode.el
index 521b1f3..02cb2a2 100644
--- a/lisp/textmodes/dns-mode.el
+++ b/lisp/textmodes/dns-mode.el
@@ -1,6 +1,6 @@
 ;;; dns-mode.el --- a mode for viewing/editing Domain Name System master files
 
-;; Copyright (C) 2000-2001, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2001, 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;; Keywords: DNS master zone file SOA comm
@@ -32,6 +32,9 @@
 
 ;; RFC 1034, "DOMAIN NAMES - CONCEPTS AND FACILITIES", P. Mockapetris.
 ;; RFC 1035, "DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION", P. Mockapetris.
+;; RFC 5155, "DNS Security (DNSSEC) Hashed Authenticated Denial of Existence"
+;; RFC 6698, "The DNS-Based Authentication of Named Entities (DANE)
+;;             Transport Layer Security (TLS) Protocol: TLSA"
 
 ;;; Release history:
 
@@ -50,13 +53,13 @@
 
 (defconst dns-mode-types '("A" "NS" "MD" "MF" "CNAME" "SOA" "MB" "MG" "MR"
                           "NULL" "WKS" "PTR" "HINFO" "MINFO" "MX" "TXT"
-                          "RP" "AFSDB" "X25" "ISDN" "RT" "NSAP" "NSAP"
+                          "RP" "AFSDB" "X25" "ISDN" "RT" "NSAP"
                           "SIG" "KEY" "PX" "GPOS" "AAAA" "LOC" "NXT"
                           "EID" "NIMLOC" "SRV" "ATMA" "NAPTR" "KX" "CERT"
                           "A6" "DNAME" "SINK" "OPT" "APL" "DS" "SSHFP"
                           "RRSIG" "NSEC" "DNSKEY" "UINFO" "UID" "GID"
                           "UNSPEC" "TKEY" "TSIG" "IXFR" "AXFR" "MAILB"
-                          "MAILA")
+                          "MAILA" "TLSA" "NSEC3")
   "List of strings with known DNS types.")
 
 ;; Font lock.
diff --git a/lisp/textmodes/enriched.el b/lisp/textmodes/enriched.el
index 5562a75..7ace2a5 100644
--- a/lisp/textmodes/enriched.el
+++ b/lisp/textmodes/enriched.el
@@ -1,6 +1,6 @@
 ;;; enriched.el --- read and save files in text/enriched format
 
-;; Copyright (C) 1994-1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Boris Goldowsky <address@hidden>
 ;; Keywords: wp, faces
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el
index 173d1c9..2957bc6 100644
--- a/lisp/textmodes/fill.el
+++ b/lisp/textmodes/fill.el
@@ -1,6 +1,6 @@
 ;;; fill.el --- fill commands for Emacs
 
-;; Copyright (C) 1985-1986, 1992, 1994-1997, 1999, 2001-2016 Free
+;; Copyright (C) 1985-1986, 1992, 1994-1997, 1999, 2001-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index bfe839a..3a32b75 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -1,6 +1,6 @@
 ;;; flyspell.el --- On-the-fly spell checker  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Manuel Serrano <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 23ee412..9747bd6 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1,6 +1,6 @@
 ;;; ispell.el --- interface to International Ispell Versions 3.1 and 3.2  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1994-1995, 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1995, 1997-2017 Free Software Foundation, Inc.
 
 ;; Author:           Ken Stevens <address@hidden>
 ;; Status          : Release with 3.1.12+ and 3.2.0+ ispell.
@@ -1290,8 +1290,8 @@ aspell is used along with Emacs).")
         (cl-pushnew (if (cadr adict) ;; Do not touch hunspell uninitialized 
entries
                         (list
                          (nth 0 adict)   ; dict name
-                         "[[:alpha:]]"   ; casechars
-                         "[^[:alpha:]]"  ; not-casechars
+                         (nth 1 adict)   ; casechars
+                         (nth 2 adict)   ; not-casechars
                          (nth 3 adict)   ; otherchars
                          (nth 4 adict)   ; many-otherchars-p
                          (nth 5 adict)   ; ispell-args
@@ -3133,7 +3133,14 @@ Must be called after `ispell-buffer-local-parsing' due 
to dependence on mode."
               (if (string= "" comment-end) "^" (regexp-quote comment-end)))
           (if (and (null ispell-check-comments) comment-start)
               (regexp-quote comment-start))
-          (ispell-begin-skip-region ispell-skip-region-alist)
+          ;; If they set ispell-skip-region-alist to nil, mapconcat
+          ;; will produce an empty string, which will then match
+          ;; anything without moving point, something
+          ;; ispell-skip-region doesn't expect.  Perhaps we should be
+          ;; more defensive and delq "" above as well, in addition to
+          ;; deleting nil elements.
+          (if ispell-skip-region-alist
+              (ispell-begin-skip-region ispell-skip-region-alist))
           (ispell--make-filename-or-URL-re)))
    "\\|"))
 
diff --git a/lisp/textmodes/makeinfo.el b/lisp/textmodes/makeinfo.el
index 16ce88d..9edc759 100644
--- a/lisp/textmodes/makeinfo.el
+++ b/lisp/textmodes/makeinfo.el
@@ -1,6 +1,6 @@
 ;;; makeinfo.el --- run makeinfo conveniently
 
-;; Copyright (C) 1991, 1993, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1993, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Robert J. Chassell
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/nroff-mode.el b/lisp/textmodes/nroff-mode.el
index 35996bc..cea0c60 100644
--- a/lisp/textmodes/nroff-mode.el
+++ b/lisp/textmodes/nroff-mode.el
@@ -1,6 +1,6 @@
 ;;; nroff-mode.el --- GNU Emacs major mode for editing nroff source
 
-;; Copyright (C) 1985-1986, 1994-1995, 1997, 2001-2016 Free Software
+;; Copyright (C) 1985-1986, 1994-1995, 1997, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/page-ext.el b/lisp/textmodes/page-ext.el
index f67e85e..8542b95 100644
--- a/lisp/textmodes/page-ext.el
+++ b/lisp/textmodes/page-ext.el
@@ -1,6 +1,6 @@
 ;;; page-ext.el --- extended page handling commands
 
-;; Copyright (C) 1990-1991, 1993-1994, 2001-2016 Free Software
+;; Copyright (C) 1990-1991, 1993-1994, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Robert J. Chassell <address@hidden>
diff --git a/lisp/textmodes/page.el b/lisp/textmodes/page.el
index 22c7359..936896c 100644
--- a/lisp/textmodes/page.el
+++ b/lisp/textmodes/page.el
@@ -1,6 +1,6 @@
 ;;; page.el --- page motion commands for Emacs
 
-;; Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: wp convenience
diff --git a/lisp/textmodes/paragraphs.el b/lisp/textmodes/paragraphs.el
index b7523ca..f0671f4 100644
--- a/lisp/textmodes/paragraphs.el
+++ b/lisp/textmodes/paragraphs.el
@@ -1,6 +1,6 @@
 ;;; paragraphs.el --- paragraph and sentence parsing
 
-;; Copyright (C) 1985-1987, 1991, 1994-1997, 1999-2016 Free Software
+;; Copyright (C) 1985-1987, 1991, 1994-1997, 1999-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el
index 01d67b5..09d0a2f 100644
--- a/lisp/textmodes/picture.el
+++ b/lisp/textmodes/picture.el
@@ -1,6 +1,6 @@
 ;;; picture.el --- "Picture mode" -- editing using quarter-plane screen model
 
-;; Copyright (C) 1985, 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: K. Shane Hartman
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/po.el b/lisp/textmodes/po.el
index 9261543..822596c 100644
--- a/lisp/textmodes/po.el
+++ b/lisp/textmodes/po.el
@@ -1,6 +1,6 @@
 ;;; po.el --- basic support of PO translation files
 
-;; Copyright (C) 1995-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Authors: François Pinard <address@hidden>,
 ;;          Greg McGary <address@hidden>,
diff --git a/lisp/textmodes/refbib.el b/lisp/textmodes/refbib.el
index 46bf3c7..6b72126 100644
--- a/lisp/textmodes/refbib.el
+++ b/lisp/textmodes/refbib.el
@@ -1,6 +1,6 @@
 ;;; refbib.el --- convert refer-style references to ones usable by Latex bib
 
-;; Copyright (C) 1989, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Henry Kautz <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/refer.el b/lisp/textmodes/refer.el
index 4c9e62b..1843c8e 100644
--- a/lisp/textmodes/refer.el
+++ b/lisp/textmodes/refer.el
@@ -1,6 +1,6 @@
 ;;; refer.el --- look up references in bibliography files
 
-;; Copyright (C) 1992, 1996, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1996, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Ashwin Ram <address@hidden>
 ;; Maintainer: Gernot Heiser <address@hidden>
diff --git a/lisp/textmodes/refill.el b/lisp/textmodes/refill.el
index db0b097..f65c9ad 100644
--- a/lisp/textmodes/refill.el
+++ b/lisp/textmodes/refill.el
@@ -1,6 +1,6 @@
 ;;; refill.el --- `auto-fill' by refilling paragraphs on changes
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Maintainer: Miles Bader <address@hidden>
diff --git a/lisp/textmodes/reftex-auc.el b/lisp/textmodes/reftex-auc.el
index 8efe8a2..1e0a564 100644
--- a/lisp/textmodes/reftex-auc.el
+++ b/lisp/textmodes/reftex-auc.el
@@ -1,6 +1,6 @@
 ;;; reftex-auc.el --- RefTeX's interface to AUCTeX
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/reftex-cite.el b/lisp/textmodes/reftex-cite.el
index fd7915c..7f1887c 100644
--- a/lisp/textmodes/reftex-cite.el
+++ b/lisp/textmodes/reftex-cite.el
@@ -1,6 +1,6 @@
 ;;; reftex-cite.el --- creating citations with RefTeX
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/reftex-dcr.el b/lisp/textmodes/reftex-dcr.el
index 65742f3..16bc621 100644
--- a/lisp/textmodes/reftex-dcr.el
+++ b/lisp/textmodes/reftex-dcr.el
@@ -1,6 +1,6 @@
 ;;; reftex-dcr.el --- viewing cross references and citations with RefTeX
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/reftex-global.el b/lisp/textmodes/reftex-global.el
index c8c62a0..91d2b48 100644
--- a/lisp/textmodes/reftex-global.el
+++ b/lisp/textmodes/reftex-global.el
@@ -1,6 +1,6 @@
 ;;; reftex-global.el --- operations on entire documents with RefTeX
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/reftex-index.el b/lisp/textmodes/reftex-index.el
index 4dd190d..6544029 100644
--- a/lisp/textmodes/reftex-index.el
+++ b/lisp/textmodes/reftex-index.el
@@ -1,6 +1,6 @@
 ;;; reftex-index.el --- index support with RefTeX
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/reftex-parse.el b/lisp/textmodes/reftex-parse.el
index 9180bea..af2810d 100644
--- a/lisp/textmodes/reftex-parse.el
+++ b/lisp/textmodes/reftex-parse.el
@@ -1,6 +1,6 @@
 ;;; reftex-parse.el --- parser functions for RefTeX
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: address@hidden
@@ -270,7 +270,10 @@ of master file."
                 (when (eq (char-before) ?\\) (backward-char))
                  ;; Insert in List
                  (setq toc-entry (funcall reftex-section-info-function file))
-                 (when toc-entry
+                 (when (and toc-entry
+                            (eq ;; Either both are t or both are nil.
+                             (= (char-after bound) ?%)
+                             (string-suffix-p ".dtx" file)))
                    ;; It can happen that section info returns nil
                    (setq level (nth 5 toc-entry))
                    (setq highest-level (min highest-level level))
diff --git a/lisp/textmodes/reftex-ref.el b/lisp/textmodes/reftex-ref.el
index fdde4aa..dd18354 100644
--- a/lisp/textmodes/reftex-ref.el
+++ b/lisp/textmodes/reftex-ref.el
@@ -1,6 +1,6 @@
 ;;; reftex-ref.el --- code to create labels and references with RefTeX
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/reftex-sel.el b/lisp/textmodes/reftex-sel.el
index d3a7ee4..a4533ad 100644
--- a/lisp/textmodes/reftex-sel.el
+++ b/lisp/textmodes/reftex-sel.el
@@ -1,6 +1,6 @@
 ;;; reftex-sel.el --- the selection modes for RefTeX
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el
index a4c8da0..ab49ae8 100644
--- a/lisp/textmodes/reftex-toc.el
+++ b/lisp/textmodes/reftex-toc.el
@@ -1,6 +1,6 @@
 ;;; reftex-toc.el --- RefTeX's table of contents mode
 
-;; Copyright (C) 1997-2000, 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2000, 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el
index d6de53b..03da584 100644
--- a/lisp/textmodes/reftex-vars.el
+++ b/lisp/textmodes/reftex-vars.el
@@ -1,6 +1,6 @@
 ;;; reftex-vars.el --- configuration variables for RefTeX
 
-;; Copyright (C) 1997-1999, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1999, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: address@hidden
@@ -151,6 +151,24 @@ distribution.  Mixed-case symbols are convenience 
aliases.")
       (?A    . "\\citeauthor*{%l}")
       (?y    . "\\citeyear{%l}")
       (?n    . "\\nocite{%l}")))
+    (biblatex "The Biblatex package"
+     ((?\C-m . "\\cite[][]{%l}")
+      (?C    . "\\cite*[][]{%l}")
+      (?t    . "\\textcite[][]{%l}")
+      (?T    . "\\textcite*[][]{%l}")
+      (?p    . "\\parencite[][]{%l}")
+      (?P    . "\\parencite*[][]{%l}")
+      (?f    . "\\footcite[][]{%l}")
+      (?s    . "\\smartcite[][]{%l}")
+      (?u    . "\\autocite[][]{%l}")
+      (?U    . "\\autocite*[][]{%l}")
+      (?a    . "\\citeauthor{%l}")
+      (?A    . "\\citeauthor*{%l}")
+      (?i    . "\\citetitle{%l}")
+      (?I    . "\\citetitle*{%l}")
+      (?y    . "\\citeyear{%l}")
+      (?Y    . "\\citeyear*{%l}")
+      (?n    . "\\nocite{%l}")))
     (amsrefs "The AMSRefs package"
      ((?\C-m . "\\cite{%l}")
       (?p    . "\\cite{%l}")
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
index adc5076..18b3598 100644
--- a/lisp/textmodes/reftex.el
+++ b/lisp/textmodes/reftex.el
@@ -1,5 +1,5 @@
 ;;; reftex.el --- minor mode for doing \label, \ref, \cite, \index in LaTeX
-;; Copyright (C) 1997-2000, 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2000, 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <address@hidden>
 ;; Maintainer: address@hidden
@@ -1015,8 +1015,8 @@ This enforces rescanning the buffer on next use."
     ;; Calculate the regular expressions
     (let* (
 ;          (wbol "\\(\\`\\|[\n\r]\\)[ \t]*")
-           (wbol "\\(^\\)[ \t]*") ; Need to keep the empty group because
-                                  ; match numbers are hard coded
+           (wbol "\\(^\\)%?[ \t]*") ; Need to keep the empty group because
+                                    ; match numbers are hard coded
            (label-re (concat "\\(?:"
                             (mapconcat 'identity reftex-label-regexps "\\|")
                             "\\)"))
diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el
index 99d34ad..388e49c 100644
--- a/lisp/textmodes/remember.el
+++ b/lisp/textmodes/remember.el
@@ -1,6 +1,6 @@
 ;;; remember --- a mode for quickly jotting down things to remember
 
-;; Copyright (C) 1999-2001, 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2001, 2003-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el
index 7161dd3..261e98e 100644
--- a/lisp/textmodes/rst.el
+++ b/lisp/textmodes/rst.el
@@ -1,6 +1,6 @@
-;;; rst.el --- Mode for viewing and editing reStructuredText-documents.
+;;; rst.el --- Mode for viewing and editing reStructuredText-documents  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: Stefan Merten <stefan at merten-home dot de>
 ;; Author: Stefan Merten <stefan at merten-home dot de>,
@@ -100,15 +100,30 @@
 
 ;; FIXME: Check through major mode conventions again.
 
-;; FIXME: Add proper ";;;###autoload" comments.
-
-;; FIXME: When 24.1 is common place remove use of `lexical-let' and put "-*-
-;;        lexical-binding: t -*-" in the first line.
-
 ;; FIXME: Embed complicated `defconst's in `eval-when-compile'.
 
-;; FIXME: Use `testcover'. Mark up a function with sufficient test coverage by
-;;        a comment tagged with `testcover' after the `defun'.
+;; Common Lisp stuff
+(require 'cl-lib)
+
+;; Correct wrong declaration.
+(def-edebug-spec push
+  (&or [form symbolp] [form gv-place]))
+
+;; Correct wrong declaration. This still doesn't support dotted destructuring
+;; though.
+(def-edebug-spec cl-lambda-list
+  (([&rest cl-macro-arg]
+    [&optional ["&optional" cl-&optional-arg &rest cl-&optional-arg]]
+    [&optional ["&rest" arg]]
+    [&optional ["&key" [cl-&key-arg &rest cl-&key-arg]
+               &optional "&allow-other-keys"]]
+    [&optional ["&aux" &rest
+               &or (symbolp &optional def-form) symbolp]]
+    )))
+
+;; Add missing declaration.
+(def-edebug-spec cl-type-spec sexp) ;; This is not exactly correct but good
+                                   ;; enough.
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Support for `testcover'
@@ -129,9 +144,9 @@ considered constants.  Revert it with this function after 
each `defcustom'."
     (setq testcover-module-constants
          (delq nil
                (mapcar
-                (lambda (sym)
-                  (if (not (plist-member (symbol-plist sym) 'standard-value))
-                      sym))
+                #'(lambda (sym)
+                    (if (not (plist-member (symbol-plist sym) 'standard-value))
+                        sym))
                 testcover-module-constants)))))
 
 (defun rst-testcover-add-compose (fun)
@@ -144,69 +159,72 @@ considered constants.  Revert it with this function after 
each `defcustom'."
   (when (boundp 'testcover-1value-functions)
     (add-to-list 'testcover-1value-functions fun)))
 
+
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Common Lisp stuff
-
-;; Only use of macros is allowed - may be replaced by `cl-lib' some time.
-(eval-when-compile
-  (require 'cl))
-
-;; Redefine some functions from `cl.el' in a proper namespace until they may be
-;; used from there.
-
-(defun rst-signum (x)
+;; Helpers.
+
+(cl-defmacro rst-destructuring-dolist
+    ((arglist list &optional result) &rest body)
+  "`cl-dolist' with destructuring of the list elements.
+ARGLIST is a Common List argument list which may include
+destructuring.  LIST, RESULT and BODY are as for `cl-dolist'.
+Note that definitions in ARGLIST are visible only in the BODY and
+neither in RESULT nor in LIST."
+  ;; FIXME: It would be very useful if the definitions in ARGLIST would be
+  ;;        visible in RESULT. But may be this is rather a
+  ;;        `rst-destructuring-do' then.
+  (declare (debug
+           (&define ([&or symbolp cl-macro-list] def-form &optional def-form)
+                    cl-declarations def-body))
+           (indent 1))
+  (let ((var (make-symbol "--rst-destructuring-dolist-var--")))
+  `(cl-dolist (,var ,list ,result)
+     (cl-destructuring-bind ,arglist ,var
+       ,@body))))
+
+(defun rst-forward-line-strict (n &optional limit)
   ;; testcover: ok.
-  "Return 1 if X is positive, -1 if negative, 0 if zero."
-  (cond
-   ((> x 0) 1)
-   ((< x 0) -1)
-   (t 0)))
-
-(defun rst-some (seq &optional pred)
-  ;; testcover: ok.
-  "Return non-nil if any element of SEQ yields non-nil when PRED is applied.
-Apply PRED to each element of list SEQ until the first non-nil
-result is yielded and return this result.  PRED defaults to
-`identity'."
-  (unless pred
-    (setq pred 'identity))
-  (catch 'rst-some
-    (dolist (elem seq)
-      (let ((r (funcall pred elem)))
-       (when r
-         (throw 'rst-some r))))))
-
-(defun rst-position-if (pred seq)
-  ;; testcover: ok.
-  "Return position of first element satisfying PRED in list SEQ or nil."
-  (catch 'rst-position-if
-    (let ((i 0))
-      (dolist (elem seq)
-       (when (funcall pred elem)
-         (throw 'rst-position-if i))
-       (incf i)))))
-
-(defun rst-position (elem seq)
+  "Try to move point to beginning of line I + N where I is the current line.
+Return t if movement is successful.  Otherwise don't move point
+and return nil.  If a position is given by LIMIT, movement
+happened but the following line is missing and thus its beginning
+can not be reached but the movement reached at least LIMIT
+consider this a successful movement.  LIMIT is ignored in other
+cases."
+  (let ((start (point)))
+    (if (and (zerop (forward-line n))
+            (or (bolp)
+                (and limit
+                     (>= (point) limit))))
+       t
+      (goto-char start)
+      nil)))
+
+(defun rst-forward-line-looking-at (n rst-re-args &optional fun)
   ;; testcover: ok.
-  "Return position of ELEM in list SEQ or nil.
-Comparison done with `equal'."
-  ;; Create a closure containing `elem' so the `lambda' always sees our
-  ;; parameter instead of an `elem' which may be in dynamic scope at the time
-  ;; of execution of the `lambda'.
-  (lexical-let ((elem elem))
-    (rst-position-if (function (lambda (e)
-                                (equal elem e)))
-                    seq)))
-
-(defun rst-member-if (pred seq)
-  ;; testcover: ok.
-  "Return sublist of SEQ starting with the element whose car satisfies PRED."
-  (let (found)
-    (while (and (not found) seq)
-      (if (funcall pred (car seq))
-         (setq found seq)
-       (setq seq (cdr seq))))
-    found))
+  "Move forward N lines and if successful check whether RST-RE-ARGS is matched.
+Moving forward is done by `rst-forward-line-strict'.  RST-RE-ARGS
+is a single or a list of arguments for `rst-re'.  FUN is a
+function defaulting to `identity' which is called after the call
+to `looking-at' receiving its return value as the first argument.
+When FUN is called match data is just set by `looking-at' and
+point is at the beginning of the line.  Return nil if moving
+forward failed or otherwise the return value of FUN.  Preserve
+global match data, point, mark and current buffer."
+  (unless (listp rst-re-args)
+    (setq rst-re-args (list rst-re-args)))
+  (unless fun
+    (setq fun #'identity))
+  (save-match-data
+    (save-excursion
+      (when (rst-forward-line-strict n)
+       (funcall fun (looking-at (apply #'rst-re rst-re-args)))))))
+
+(rst-testcover-add-1value 'rst-delete-entire-line)
+(defun rst-delete-entire-line (n)
+  "Move N lines and delete the entire line."
+  (delete-region (line-beginning-position (+ n 1))
+                 (line-beginning-position (+ n 2))))
 
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -226,7 +244,7 @@ and before TAIL-RE and DELIM-RE in VAR or DEFAULT for no 
match."
 ;; Use CVSHeader to really get information from CVS and not other version
 ;; control systems.
 (defconst rst-cvs-header
-  "$CVSHeader: sm/rst_el/rst.el,v 1.600 2016/07/31 11:13:44 stefan Exp $")
+  "$CVSHeader: sm/rst_el/rst.el,v 1.1058.2.9 2017/01/08 09:54:50 stefan Exp $")
 (defconst rst-cvs-rev
   (rst-extract-version "\\$" "CVSHeader: \\S + " "[0-9]+\\(?:\\.[0-9]+\\)+"
                       " .*" rst-cvs-header "0.0")
@@ -240,22 +258,22 @@ and before TAIL-RE and DELIM-RE in VAR or DEFAULT for no 
match."
 ;; Use LastChanged... to really get information from SVN.
 (defconst rst-svn-rev
   (rst-extract-version "\\$" "LastChangedRevision: " "[0-9]+" " "
-                      "$LastChangedRevision: 7963 $")
+                      "$LastChangedRevision: 8015 $")
   "The SVN revision of this file.
 SVN revision is the upstream (docutils) revision.")
 (defconst rst-svn-timestamp
   (rst-extract-version "\\$" "LastChangedDate: " ".+?+" " "
-                      "$LastChangedDate: 2016-07-31 13:13:21 +0200 (Sun, 31 
Jul 2016) $")
+                      "$LastChangedDate: 2017-01-08 10:54:35 +0100 (Sun, 08 
Jan 2017) $")
   "The SVN time stamp of this file.")
 
 ;; Maintained by the release process.
 (defconst rst-official-version
   (rst-extract-version "%" "OfficialVersion: " "[0-9]+\\(?:\\.[0-9]+\\)+" " "
-                      "%OfficialVersion: 1.5.0 %")
+                      "%OfficialVersion: 1.5.2 %")
   "Official version of the package.")
 (defconst rst-official-cvs-rev
   (rst-extract-version "[%$]" "Revision: " "[0-9]+\\(?:\\.[0-9]+\\)+" " "
-                      "%Revision: 1.600 %")
+                      "$Revision: 1.1058.2.9 $")
   "CVS revision of this file in the official version.")
 
 (defconst rst-version
@@ -278,6 +296,9 @@ in parentheses follows the development revision and the 
time stamp.")
     ("1.4.1" . "24.5")
     ("1.4.2" . "24.5")
     ("1.5.0" . "26.1")
+    ("1.5.1" . "26.2")
+    ("1.5.2" . "26.2")
+    ;; Whatever the Emacs version is this rst.el version ends up in.
     ))
 
 (unless (assoc rst-official-version rst-package-emacs-version-alist)
@@ -368,6 +389,7 @@ in parentheses follows the development revision and the 
time stamp.")
 
     ;; Various starts
     (bul-sta bul-tag bli-sfx) ; Start of a bulleted item.
+    (bul-beg lin-beg bul-sta) ; A bullet item at the beginning of a line.
 
     ;; Explicit markup tag (`exm')
     (exm-tag "\\.\\.")
@@ -571,34 +593,34 @@ referenceable group (\"\\(...\\)\").
 
 After interpretation of ARGS the results are concatenated as for
 `:seq'."
-  (apply 'concat
+  (apply #'concat
         (mapcar
-         (lambda (re)
-           (cond
-            ((stringp re)
-             re)
-            ((symbolp re)
-             (cadr (assoc re rst-re-alist)))
-            ((characterp re)
-             (regexp-quote (char-to-string re)))
-            ((listp re)
-             (let ((nested
-                    (mapcar (lambda (elt)
-                              (rst-re elt))
-                            (cdr re))))
-               (cond
-                ((eq (car re) :seq)
-                 (mapconcat 'identity nested ""))
-                ((eq (car re) :shy)
-                 (concat "\\(?:" (mapconcat 'identity nested "") "\\)"))
-                ((eq (car re) :grp)
-                 (concat "\\(" (mapconcat 'identity nested "") "\\)"))
-                ((eq (car re) :alt)
-                 (concat "\\(?:" (mapconcat 'identity nested "\\|") "\\)"))
-                (t
-                 (error "Unknown list car: %s" (car re))))))
-            (t
-             (error "Unknown object type for building regex: %s" re))))
+         #'(lambda (re)
+             (cond
+              ((stringp re)
+               re)
+              ((symbolp re)
+               (cadr (assoc re rst-re-alist)))
+              ((characterp re)
+               (regexp-quote (char-to-string re)))
+              ((listp re)
+               (let ((nested
+                      (mapcar (lambda (elt)
+                                (rst-re elt))
+                              (cdr re))))
+                 (cond
+                  ((eq (car re) :seq)
+                   (mapconcat #'identity nested ""))
+                  ((eq (car re) :shy)
+                   (concat "\\(?:" (mapconcat #'identity nested "") "\\)"))
+                  ((eq (car re) :grp)
+                   (concat "\\(" (mapconcat #'identity nested "") "\\)"))
+                  ((eq (car re) :alt)
+                   (concat "\\(?:" (mapconcat #'identity nested "\\|") "\\)"))
+                  (t
+                   (error "Unknown list car: %s" (car re))))))
+              (t
+               (error "Unknown object type for building regex: %s" re))))
          args)))
 
 ;; FIXME: Remove circular dependency between `rst-re' and `rst-re-alist'.
@@ -610,7 +632,7 @@ After interpretation of ARGS the results are concatenated 
as for
       (dolist (re rst-re-alist-def rst-re-alist)
        (setq rst-re-alist
              (nconc rst-re-alist
-                    (list (list (car re) (apply 'rst-re (cdr re))))))))
+                    (list (list (car re) (apply #'rst-re (cdr re))))))))
     "Alist mapping symbols from `rst-re-alist-def' to regex strings."))
 
 
@@ -630,9 +652,9 @@ After interpretation of ARGS the results are concatenated 
as for
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Class rst-Ado
 
-(defstruct
+(cl-defstruct
   (rst-Ado
-   (:constructor nil) ;; Prevent creating unchecked values.
+   (:constructor nil) ; Prevent creating unchecked values.
    ;; Construct a transition.
    (:constructor
     rst-Ado-new-transition
@@ -682,61 +704,45 @@ This type is immutable."
   ;; testcover: ok.
   "Validate CHAR to be a valid adornment character.
 Return CHAR if so or signal an error otherwise."
-  (cond
-   ((not (characterp char))
-    (signal 'wrong-type-argument (list 'characterp char)))
-   ((memq char rst-adornment-chars)
-    char)
-   (t
-    (signal 'args-out-of-range
-           (list (format
-                  "Character must be a valid adornment character, not '%s'"
-                  char))))))
+  (cl-check-type char character)
+  (cl-check-type char (satisfies
+                      (lambda (c)
+                        (memq c rst-adornment-chars)))
+                "Character must be a valid adornment character")
+  char)
 
 ;; Public methods
 
 (defun rst-Ado-is-transition (self)
   ;; testcover: ok.
   "Return non-nil if SELF is a transition adornment."
-  (unless (rst-Ado-p self)
-    (signal 'wrong-type-argument
-           (list 'rst-Ado-p self)))
+  (cl-check-type self rst-Ado)
   (eq (rst-Ado--style self) 'transition))
 
 (defun rst-Ado-is-section (self)
   ;; testcover: ok.
   "Return non-nil if SELF is a section adornment."
-  (unless (rst-Ado-p self)
-    (signal 'wrong-type-argument
-           (list 'rst-Ado-p self)))
+  (cl-check-type self rst-Ado)
   (not (rst-Ado-is-transition self)))
 
 (defun rst-Ado-is-simple (self)
   ;; testcover: ok.
   "Return non-nil if SELF is a simple section adornment."
-  (unless (rst-Ado-p self)
-    (signal 'wrong-type-argument
-           (list 'rst-Ado-p self)))
+  (cl-check-type self rst-Ado)
   (eq (rst-Ado--style self) 'simple))
 
 (defun rst-Ado-is-over-and-under (self)
   ;; testcover: ok.
   "Return non-nil if SELF is a over-and-under section adornment."
-  (unless (rst-Ado-p self)
-    (signal 'wrong-type-argument
-           (list 'rst-Ado-p self)))
+  (cl-check-type self rst-Ado)
   (eq (rst-Ado--style self) 'over-and-under))
 
 (defun rst-Ado-equal (self other)
   ;; testcover: ok.
   "Return non-nil when SELF and OTHER are equal."
+  (cl-check-type self rst-Ado)
+  (cl-check-type other rst-Ado)
   (cond
-   ((not (rst-Ado-p self))
-    (signal 'wrong-type-argument
-           (list 'rst-Ado-p self)))
-   ((not (rst-Ado-p other))
-    (signal 'wrong-type-argument
-           (list 'rst-Ado-p other)))
    ((not (eq (rst-Ado--style self) (rst-Ado--style other)))
     nil)
    ((rst-Ado-is-transition self))
@@ -744,22 +750,19 @@ Return CHAR if so or signal an error otherwise."
 
 (defun rst-Ado-position (self ados)
   ;; testcover: ok.
-  "Return position of of SELF in ADOS or nil."
-  (unless (rst-Ado-p self)
-    (signal 'wrong-type-argument
-           (list 'rst-Ado-p self)))
-  (lexical-let ((ado self)) ;; Create closure.
-    (rst-position-if (function (lambda (e)
-                                (rst-Ado-equal ado e)))
-                    ados)))
+  "Return position of SELF in ADOS or nil."
+  (cl-check-type self rst-Ado)
+  (cl-position-if #'(lambda (e)
+                     (rst-Ado-equal self e))
+                 ados))
 
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Class rst-Hdr
 
-(defstruct
+(cl-defstruct
   (rst-Hdr
-   (:constructor nil) ;; Prevent creating unchecked values.
+   (:constructor nil) ; Prevent creating unchecked values.
    ;; Construct while all parameters must be valid.
    (:constructor
     rst-Hdr-new
@@ -784,7 +787,7 @@ Return CHAR if so or signal an error otherwise."
      &aux
      (ado (rst-Hdr--validate-ado (rst-Ado-new-invert ado-arg)))
      (indent (rst-Hdr--validate-indent indent-arg ado t))))
-   (:copier rst-Hdr-copy)) ;; Not really needed for an immutable type.
+   (:copier nil)) ; Not really needed for an immutable type.
   "Representation of reStructuredText section header characteristics.
 
 This type is immutable."
@@ -800,10 +803,8 @@ This type is immutable."
   "Validate INDENT to be a valid indentation for ADO.
 Return INDENT if so or signal an error otherwise.  If LAX don't
 signal an error and return a valid indent."
+  (cl-check-type indent integer)
   (cond
-   ((not (integerp indent))
-    (signal 'wrong-type-argument
-           (list 'integerp 'null indent)))
    ((zerop indent)
     indent)
    ((rst-Ado-is-simple ado)
@@ -816,33 +817,34 @@ signal an error and return a valid indent."
        0
       (signal 'args-out-of-range
              '("Indentation must not be negative"))))
-   (indent))) ;; Implicitly over-and-under.
+   ;; Implicitly over-and-under.
+   (indent)))
 
 (defun rst-Hdr--validate-ado (ado)
   ;; testcover: ok.
   "Validate ADO to be a valid adornment.
 Return ADO if so or signal an error otherwise."
+  (cl-check-type ado rst-Ado)
   (cond
-   ((not (rst-Ado-p ado))
-    (signal 'wrong-type-argument
-           (list 'rst-Ado-p ado)))
    ((rst-Ado-is-transition ado)
     (signal 'args-out-of-range
            '("Adornment for header must not be transition.")))
-   (t
-    ado)))
+   (ado)))
 
 ;; Public class methods
 
+(defvar rst-preferred-adornments) ; Forward declaration.
+
 (defun rst-Hdr-preferred-adornments ()
   ;; testcover: ok.
   "Return preferred adornments as list of `rst-Hdr'."
-  (mapcar (lambda (el)
-           (rst-Hdr-new-lax
-            (if (eq (cadr el) 'over-and-under)
-                (rst-Ado-new-over-and-under (car el))
-              (rst-Ado-new-simple (car el)))
-            (caddr el)))
+  (mapcar (cl-function
+          (lambda ((character style indent))
+            (rst-Hdr-new-lax
+             (if (eq style 'over-and-under)
+                 (rst-Ado-new-over-and-under character)
+               (rst-Ado-new-simple character))
+             indent)))
          rst-preferred-adornments))
 
 ;; Public methods
@@ -850,238 +852,238 @@ Return ADO if so or signal an error otherwise."
 (defun rst-Hdr-member-ado (self hdrs)
   ;; testcover: ok.
   "Return sublist of HDRS whose car's adornment equals that of SELF or nil."
-  (unless (rst-Hdr-p self)
-    (signal 'wrong-type-argument
-           (list 'rst-Hdr-p self)))
-  (let ((pos (rst-Ado-position (rst-Hdr-ado self) (rst-Hdr-ado-map hdrs))))
-    (and pos (nthcdr pos hdrs))))
+  (cl-check-type self rst-Hdr)
+  (let ((ado (rst-Hdr-ado self)))
+    (cl-member-if #'(lambda (hdr)
+                     (rst-Ado-equal ado (rst-Hdr-ado hdr)))
+                 hdrs)))
 
 (defun rst-Hdr-ado-map (selves)
   ;; testcover: ok.
   "Return `rst-Ado' list extracted from elements of SELVES."
-  (mapcar 'rst-Hdr-ado selves))
+  (mapcar #'rst-Hdr-ado selves))
 
 (defun rst-Hdr-get-char (self)
   ;; testcover: ok.
   "Return character of the adornment of SELF."
-  (unless (rst-Hdr-p self)
-    (signal 'wrong-type-argument
-           (list 'rst-Hdr-p self)))
+  (cl-check-type self rst-Hdr)
   (rst-Ado-char (rst-Hdr-ado self)))
 
 (defun rst-Hdr-is-over-and-under (self)
   ;; testcover: ok.
   "Return non-nil if SELF is a over-and-under section header."
-  (unless (rst-Hdr-p self)
-    (signal 'wrong-type-argument
-           (list 'rst-Hdr-p self)))
+  (cl-check-type self rst-Hdr)
   (rst-Ado-is-over-and-under (rst-Hdr-ado self)))
 
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Class rst-Ttl
 
-(defstruct
+(cl-defstruct
   (rst-Ttl
-   (:constructor nil) ;; Prevent creating unchecked values.
+   (:constructor nil) ; Prevent creating unchecked values.
    ;; Construct with valid parameters for all attributes.
-   (:constructor
-    rst-Ttl-new
+   (:constructor ; Private constructor
+    rst-Ttl--new
     (ado-arg
      match-arg
      indent-arg
      text-arg
-     &optional
-     hdr-arg
-     level-arg
      &aux
      (ado (rst-Ttl--validate-ado ado-arg))
      (match (rst-Ttl--validate-match match-arg ado))
      (indent (rst-Ttl--validate-indent indent-arg ado))
      (text (rst-Ttl--validate-text text-arg ado))
-     (hdr (and hdr-arg (rst-Ttl--validate-hdr hdr-arg ado indent)))
-     (level (and level-arg (rst-Ttl--validate-level level-arg)))))
-   (:copier rst-Ttl-copy))
-  "Representation of a reStructuredText section header as found in the buffer.
-This type gathers information about an adorned part in the
-buffer. Thus only the basic attributes are immutable. Although
-the remaining attributes are `setf'-able the respective setters
-should be used."
+     (hdr (condition-case nil
+             (rst-Hdr-new ado indent)
+           (error nil)))))
+   (:copier nil)) ; Not really needed for an immutable type.
+  "Representation of a reStructuredText section header as found in a buffer.
+This type gathers information about an adorned part in the buffer.
+
+This type is immutable."
   ;; The adornment characteristics or nil for a title candidate.
   (ado nil :read-only t)
-  ;; The match-data for `ado' as returned by `match-data'. Match group 0
-  ;; matches the whole construct.  Match group 1 matches the overline adornment
-  ;; if present.  Match group 2 matches the section title text or the
-  ;; transition.  Match group 3 matches the underline adornment.
+  ;; The match-data for `ado' in a form similarly returned by `match-data' (but
+  ;; not necessarily with markers in buffers). Match group 0 matches the whole
+  ;; construct.  Match group 1 matches the overline adornment if present.
+  ;; Match group 2 matches the section title text or the transition.  Match
+  ;; group 3 matches the underline adornment.
   (match nil :read-only t)
   ;; An indentation found for the title line or nil for a transition.
   (indent nil :read-only t)
   ;; The text of the title or nil for a transition.
   (text nil :read-only t)
   ;; The header characteristics if it is a valid section header.
-  (hdr nil)
-  ;; The hierarchical level of the section header starting with 0.
-  (level nil))
+  (hdr nil :read-only t)
+  ;; FIXME refactoring: Should have an attribute `buffer' for the buffer this
+  ;;                    title is found in.  This breaks lots and lots of tests.
+  ;;                    However, with private constructor they may not be
+  ;;                    necessary any more.  In case it is really a buffer then
+  ;;                    also `match' could be real data from `match-data' which
+  ;;                    contains markers instead of integers.
+  )
 
 ;; Private class methods
 
 (defun rst-Ttl--validate-ado (ado)
   ;; testcover: ok.
   "Return valid ADO or signal error."
-  (unless (or (null ado) (rst-Ado-p ado))
-    (signal 'wrong-type-argument
-           (list 'null 'rst-Ado-p ado)))
+  (cl-check-type ado (or null rst-Ado))
   ado)
 
 (defun rst-Ttl--validate-match (match ado)
   ;; testcover: ok.
   "Return valid MATCH matching ADO or signal error."
-  (unless (listp match)
-    (signal 'wrong-type-argument
-           (list 'listp match)))
-  (unless (equal (length match) 8)
-    (signal 'args-out-of-range
-           '("Match data must consist of exactly 8 buffer positions.")))
-  (mapcar (lambda (pos)
-           (unless (or (null pos) (integer-or-marker-p pos))
-             (signal 'wrong-type-argument
-                     (list 'integer-or-marker-p 'null pos))))
-         match)
-  (unless (and (integer-or-marker-p (nth 0 match))
-              (integer-or-marker-p (nth 1 match)))
-    (signal 'args-out-of-range
-           '("First two elements of match data must be buffer positions.")))
-  (cond
-   ((null ado)
-    (unless (and (null (nth 2 match))
-                (null (nth 3 match))
-                (integer-or-marker-p (nth 4 match))
-                (integer-or-marker-p (nth 5 match))
-                (null (nth 6 match))
-                (null (nth 7 match)))
-      (signal 'args-out-of-range
-             '("For a title candidate exactly the third match pair must be 
set."))))
-   ((rst-Ado-is-transition ado)
-    (unless (and (null (nth 2 match))
-                (null (nth 3 match))
-                (integer-or-marker-p (nth 4 match))
-                (integer-or-marker-p (nth 5 match))
-                (null (nth 6 match))
-                (null (nth 7 match)))
+  (cl-check-type ado (or null rst-Ado))
+  (cl-check-type match list)
+  (cl-check-type match (satisfies (lambda (m)
+                                   (equal (length m) 8)))
+                "Match data must consist of exactly 8 buffer positions.")
+  (dolist (pos match)
+    (cl-check-type pos (or null integer-or-marker)))
+  (cl-destructuring-bind (all-beg all-end
+                         ovr-beg ovr-end
+                         txt-beg txt-end
+                         und-beg und-end) match
+    (unless (and (integer-or-marker-p all-beg) (integer-or-marker-p all-end))
       (signal 'args-out-of-range
-             '("For a transition exactly the third match pair must be set."))))
-   ((rst-Ado-is-simple ado)
-    (unless (and (null (nth 2 match))
-                (null (nth 3 match))
-                (integer-or-marker-p (nth 4 match))
-                (integer-or-marker-p (nth 5 match))
-                (integer-or-marker-p (nth 6 match))
-                (integer-or-marker-p (nth 7 match)))
-    (signal 'args-out-of-range
-           '("For a simple section adornment exactly the third and fourth 
match pair must be set."))))
-   (t ;; over-and-under
-    (unless (and (integer-or-marker-p (nth 2 match))
-                (integer-or-marker-p (nth 3 match))
-                (integer-or-marker-p (nth 4 match))
-                (integer-or-marker-p (nth 5 match))
-                (or (null (nth 6 match)) (integer-or-marker-p (nth 6 match)))
-                (or (null (nth 7 match)) (integer-or-marker-p (nth 7 match))))
-    (signal 'args-out-of-range
-           '("For a over-and-under section adornment all match pairs must be 
set.")))))
+             '("First two elements of match data must be buffer positions.")))
+    (cond
+     ((null ado)
+      (unless (and (null ovr-beg) (null ovr-end)
+                  (integer-or-marker-p txt-beg) (integer-or-marker-p txt-end)
+                  (null und-beg) (null und-end))
+       (signal 'args-out-of-range
+               '("For a title candidate exactly the third match pair must be 
set."))))
+     ((rst-Ado-is-transition ado)
+      (unless (and (null ovr-beg) (null ovr-end)
+                  (integer-or-marker-p txt-beg) (integer-or-marker-p txt-end)
+                  (null und-beg) (null und-end))
+       (signal 'args-out-of-range
+               '("For a transition exactly the third match pair must be 
set."))))
+     ((rst-Ado-is-simple ado)
+      (unless (and (null ovr-beg) (null ovr-end)
+                  (integer-or-marker-p txt-beg) (integer-or-marker-p txt-end)
+                  (integer-or-marker-p und-beg) (integer-or-marker-p und-end))
+       (signal 'args-out-of-range
+               '("For a simple section adornment exactly the third and fourth 
match pair must be set."))))
+     (t ; over-and-under
+      (unless (and (integer-or-marker-p ovr-beg) (integer-or-marker-p ovr-end)
+                  (integer-or-marker-p txt-beg) (integer-or-marker-p txt-end)
+                  (or (null und-beg) (integer-or-marker-p und-beg))
+                  (or (null und-end) (integer-or-marker-p und-end)))
+       (signal 'args-out-of-range
+               '("For a over-and-under section adornment all match pairs must 
be set."))))))
   match)
 
 (defun rst-Ttl--validate-indent (indent ado)
   ;; testcover: ok.
   "Return valid INDENT for ADO or signal error."
   (if (and ado (rst-Ado-is-transition ado))
-      (unless (null indent)
-       (signal 'args-out-of-range
-               '("Indent for a transition must be nil.")))
-    (unless (integerp indent)
-      (signal 'wrong-type-argument
-             (list 'integerp indent)))
-    (unless (>= indent 0)
-      (signal 'args-out-of-range
-             '("Indent for a section header must be non-negative."))))
+      (cl-check-type indent null
+                    "Indent for a transition must be nil.")
+    (cl-check-type indent (integer 0 *)
+                  "Indent for a section header must be non-negative."))
   indent)
 
-(defun rst-Ttl--validate-hdr (hdr ado indent)
-  ;; testcover: ok.
-  "Return valid HDR in relation to ADO and INDENT or signal error."
-  (unless (rst-Hdr-p hdr)
-    (signal 'wrong-type-argument
-           (list 'rst-Hdr-p hdr)))
-  (unless (rst-Ado-equal (rst-Hdr-ado hdr) ado)
-    (signal 'args-out-of-range
-           '("Basic adornment and adornment in header must match.")))
-  (unless (equal (rst-Hdr-indent hdr) indent)
-    (signal 'args-out-of-range
-           '("Basic indent and indent in header must match.")))
-  hdr)
-
 (defun rst-Ttl--validate-text (text ado)
   ;; testcover: ok.
   "Return valid TEXT for ADO or signal error."
   (if (and ado (rst-Ado-is-transition ado))
-      (unless (null text)
-       (signal 'args-out-of-range
-               '("Transitions may not have title text.")))
-    (unless (stringp text)
-      (signal 'wrong-type-argument
-             (list 'stringp text))))
+      (cl-check-type text null
+                    "Transitions may not have title text.")
+    (cl-check-type text string))
   text)
 
-(defun rst-Ttl--validate-level (level)
+;; Public class methods
+
+(defun rst-Ttl-from-buffer (ado beg-ovr beg-txt beg-und txt)
   ;; testcover: ok.
-  "Return valid LEVEL or signal error."
-  (unless (integerp level)
-    (signal 'wrong-type-argument
-           (list 'integerp level)))
-  (unless (>= level 0)
-    (signal 'args-out-of-range
-           '("Level must be non-negative.")))
-  level)
+  "Return a `rst-Ttl' constructed from information in the current buffer.
+ADO is the adornment or nil for a title candidate.  BEG-OVR and
+BEG-UND are the starting points of the overline or underline,
+respectively.  They may be nil if the respective thing is missing.
+BEG-TXT is the beginning of the title line or the transition and
+must be given.  The end of the line is used as the end point.  TXT
+is the title text or nil.  If TXT is given the indentation of the
+line containing BEG-TXT is used as indentation.  Match group 0 is
+derived from the remaining information."
+  (cl-check-type beg-txt integer-or-marker)
+  (save-excursion
+    (let ((end-ovr (when beg-ovr
+                    (goto-char beg-ovr)
+                    (line-end-position)))
+         (end-txt (progn
+                    (goto-char beg-txt)
+                    (line-end-position)))
+         (end-und (when beg-und
+                    (goto-char beg-und)
+                    (line-end-position)))
+         (ind (when txt
+                (goto-char beg-txt)
+                (current-indentation))))
+      (rst-Ttl--new ado
+                   (list
+                    (or beg-ovr beg-txt) (or end-und end-txt)
+                    beg-ovr end-ovr
+                    beg-txt end-txt
+                    beg-und end-und)
+                   ind txt))))
 
 ;; Public methods
 
-(defun rst-Ttl-evaluate-hdr (self)
-  ;; testcover: ok.
-  "Check for `ado' and `indent' in SELF forming a valid `rst-Hdr'.
-Set and return it or nil if no valid `rst-Hdr' can be formed."
-  (setf (rst-Ttl-hdr self)
-       (condition-case nil
-           (rst-Hdr-new (rst-Ttl-ado self) (rst-Ttl-indent self))
-         (error nil))))
-
-(defun rst-Ttl-set-level (self level)
-  ;; testcover: ok.
-  "In SELF set and return LEVEL or nil if invalid."
-  (setf (rst-Ttl-level self)
-       (rst-Ttl--validate-level level)))
-
 (defun rst-Ttl-get-title-beginning (self)
   ;; testcover: ok.
   "Return position of beginning of title text of SELF.
 This position should always be at the start of a line."
+  (cl-check-type self rst-Ttl)
   (nth 4 (rst-Ttl-match self)))
 
 (defun rst-Ttl-get-beginning (self)
   ;; testcover: ok.
   "Return position of beginning of whole SELF."
+  (cl-check-type self rst-Ttl)
   (nth 0 (rst-Ttl-match self)))
 
 (defun rst-Ttl-get-end (self)
   ;; testcover: ok.
   "Return position of end of whole SELF."
+  (cl-check-type self rst-Ttl)
   (nth 1 (rst-Ttl-match self)))
 
+(defun rst-Ttl-is-section (self)
+  ;; testcover: ok.
+  "Return non-nil if SELF is a section header or candidate."
+  (cl-check-type self rst-Ttl)
+  (rst-Ttl-text self))
+
+(defun rst-Ttl-is-candidate (self)
+  ;; testcover: ok.
+  "Return non-nil if SELF is a candidate for a section header."
+  (cl-check-type self rst-Ttl)
+  (not (rst-Ttl-ado self)))
+
+(defun rst-Ttl-contains (self position)
+  "Return whether SELF contain POSITION.
+Return 0 if SELF contains POSITION, < 0 if SELF ends before
+POSITION and > 0 if SELF starts after position."
+  (cl-check-type self rst-Ttl)
+  (cl-check-type position integer-or-marker)
+  (cond
+   ((< (nth 1 (rst-Ttl-match self)) position)
+    -1)
+   ((> (nth 0 (rst-Ttl-match self)) position)
+    +1)
+   (0)))
+
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Class rst-Stn
 
-(defstruct
+(cl-defstruct
   (rst-Stn
-   (:constructor nil) ;; Prevent creating unchecked values.
+   (:constructor nil) ; Prevent creating unchecked values.
    ;; Construct while all parameters must be valid.
    (:constructor
     rst-Stn-new
@@ -1102,45 +1104,33 @@ This type is immutable."
   (level nil :read-only t)
   ;; The list of children of the node.
   (children nil :read-only t))
+;; FIXME refactoring: Should have an attribute `buffer' for the buffer this
+;;                    title is found in. Or use `rst-Ttl-buffer'.
 
 ;; Private class methods
 
 (defun rst-Stn--validate-ttl (ttl)
   ;; testcover: ok.
   "Return valid TTL or signal error."
-  (unless (or (null ttl) (rst-Ttl-p ttl))
-    (signal 'wrong-type-argument
-           (list 'null 'rst-Ttl-p ttl)))
+  (cl-check-type ttl (or null rst-Ttl))
   ttl)
 
 (defun rst-Stn--validate-level (level ttl)
   ;; testcover: ok.
   "Return valid LEVEL for TTL or signal error."
-  (unless (integerp level)
-    (signal 'wrong-type-argument
-           (list 'integerp level)))
-  (when ttl
-    (unless (or (not (rst-Ttl-level ttl))
-               (equal (rst-Ttl-level ttl) level))
-      (signal 'args-out-of-range
-             '("A title must have correct level or none at all.")))
-    (when (< level 0)
-      ;; testcover: Never reached because a title may not have a negative level
-      (signal 'args-out-of-range
-             '("Top level node must not have a title."))))
+  (cl-check-type level integer)
+  (when (and ttl (< level 0))
+    ;; testcover: Never reached because a title may not have a negative level
+    (signal 'args-out-of-range
+           '("Top level node must not have a title.")))
   level)
 
 (defun rst-Stn--validate-children (children ttl)
   ;; testcover: ok.
   "Return valid CHILDREN for TTL or signal error."
-  (unless (listp children)
-    (signal 'wrong-type-argument
-           (list 'listp children)))
-  (mapcar (lambda (child)
-           (unless (rst-Stn-p child)
-             (signal 'wrong-type-argument
-                     (list 'rst-Stn-p child))))
-         children)
+  (cl-check-type children list)
+  (dolist (child children)
+    (cl-check-type child rst-Stn))
   (unless (or ttl children)
     (signal 'args-out-of-range
            '("A missing node must have children.")))
@@ -1152,9 +1142,7 @@ This type is immutable."
   ;; testcover: ok.
   "Return the beginning of the title of SELF.
 Handles missing node properly."
-  (unless (rst-Stn-p self)
-    (signal 'wrong-type-argument
-           (list 'rst-Stn-p self)))
+  (cl-check-type self rst-Stn)
   (let ((ttl (rst-Stn-ttl self)))
     (if ttl
        (rst-Ttl-get-title-beginning ttl)
@@ -1164,9 +1152,7 @@ Handles missing node properly."
   ;; testcover: ok.
   "Return title text of SELF or DEFAULT if SELF is a missing node.
 For a missing node and no DEFAULT given return a standard title text."
-  (unless (rst-Stn-p self)
-    (signal 'wrong-type-argument
-           (list 'rst-Stn-p self)))
+  (cl-check-type self rst-Stn)
   (let ((ttl (rst-Stn-ttl self)))
     (cond
      (ttl
@@ -1177,9 +1163,7 @@ For a missing node and no DEFAULT given return a standard 
title text."
 (defun rst-Stn-is-top (self)
   ;; testcover: ok.
   "Return non-nil if SELF is a top level node."
-  (unless (rst-Stn-p self)
-    (signal 'wrong-type-argument
-           (list 'rst-Stn-p self)))
+  (cl-check-type self rst-Stn)
   (< (rst-Stn-level self) 0))
 
 
@@ -1203,13 +1187,13 @@ as well but give an additional message."
            (forwarder-function (intern forwarder-function-name)))
       (unless (fboundp forwarder-function)
         (defalias forwarder-function
-          (lexical-let ((key key) (def def))
-            (lambda ()
-              (interactive)
-              (call-interactively def)
-              (message "[Deprecated use of key %s; use key %s instead]"
-          (key-description (this-command-keys))
-          (key-description key))))
+          (lambda ()
+            (interactive)
+            (call-interactively def)
+            (message "[Deprecated use of key %s; use key %s instead]"
+                     (key-description (this-command-keys))
+                     (key-description key)))
+          ;; FIXME: In Emacs-25 we could use (:documentation ...) instead.
           (format "Deprecated binding for %s, use \\[%s] instead."
                   def def)))
       (dolist (dep-key deprecated)
@@ -1220,40 +1204,40 @@ as well but give an additional message."
   (let ((map (make-sparse-keymap)))
 
     ;; \C-c is the general keymap.
-    (rst-define-key map [?\C-c ?\C-h] 'describe-prefix-bindings)
+    (rst-define-key map [?\C-c ?\C-h] #'describe-prefix-bindings)
 
     ;;
     ;; Section Adornments
     ;;
     ;; The adjustment function that adorns or rotates a section title.
-    (rst-define-key map [?\C-c ?\C-=] 'rst-adjust [?\C-c ?\C-a t])
-    (rst-define-key map [?\C-=] 'rst-adjust) ; Does not work on macOS and
-                                            ; on consoles.
+    (rst-define-key map [?\C-c ?\C-=] #'rst-adjust [?\C-c ?\C-a t])
+    (rst-define-key map [?\C-=] #'rst-adjust) ; Does not work on macOS and
+                                             ; on consoles.
 
     ;; \C-c \C-a is the keymap for adornments.
-    (rst-define-key map [?\C-c ?\C-a ?\C-h] 'describe-prefix-bindings)
+    (rst-define-key map [?\C-c ?\C-a ?\C-h] #'describe-prefix-bindings)
     ;; Another binding which works with all types of input.
-    (rst-define-key map [?\C-c ?\C-a ?\C-a] 'rst-adjust)
+    (rst-define-key map [?\C-c ?\C-a ?\C-a] #'rst-adjust)
     ;; Display the hierarchy of adornments implied by the current document
     ;; contents.
-    (rst-define-key map [?\C-c ?\C-a ?\C-d] 'rst-display-hdr-hierarchy)
+    (rst-define-key map [?\C-c ?\C-a ?\C-d] #'rst-display-hdr-hierarchy)
     ;; Homogenize the adornments in the document.
-    (rst-define-key map [?\C-c ?\C-a ?\C-s] 'rst-straighten-sections
+    (rst-define-key map [?\C-c ?\C-a ?\C-s] #'rst-straighten-sections
                    [?\C-c ?\C-s])
 
     ;;
     ;; Section Movement and Selection
     ;;
     ;; Mark the subsection where the cursor is.
-    (rst-define-key map [?\C-\M-h] 'rst-mark-section
+    (rst-define-key map [?\C-\M-h] #'rst-mark-section
                    ;; Same as mark-defun sgml-mark-current-element.
                    [?\C-c ?\C-m])
     ;; Move backward/forward between section titles.
     ;; FIXME: Also bind similar to outline mode.
-    (rst-define-key map [?\C-\M-a] 'rst-backward-section
+    (rst-define-key map [?\C-\M-a] #'rst-backward-section
                    ;; Same as beginning-of-defun.
                    [?\C-c ?\C-n])
-    (rst-define-key map [?\C-\M-e] 'rst-forward-section
+    (rst-define-key map [?\C-\M-e] #'rst-forward-section
                    ;; Same as end-of-defun.
                    [?\C-c ?\C-p])
 
@@ -1261,69 +1245,69 @@ as well but give an additional message."
     ;; Operating on regions
     ;;
     ;; \C-c \C-r is the keymap for regions.
-    (rst-define-key map [?\C-c ?\C-r ?\C-h] 'describe-prefix-bindings)
+    (rst-define-key map [?\C-c ?\C-r ?\C-h] #'describe-prefix-bindings)
     ;; Makes region a line-block.
-    (rst-define-key map [?\C-c ?\C-r ?\C-l] 'rst-line-block-region
+    (rst-define-key map [?\C-c ?\C-r ?\C-l] #'rst-line-block-region
                    [?\C-c ?\C-d])
     ;; Shift region left or right according to tabs.
-    (rst-define-key map [?\C-c ?\C-r tab] 'rst-shift-region
+    (rst-define-key map [?\C-c ?\C-r tab] #'rst-shift-region
                    [?\C-c ?\C-r t] [?\C-c ?\C-l t])
 
     ;;
     ;; Operating on lists
     ;;
     ;; \C-c \C-l is the keymap for lists.
-    (rst-define-key map [?\C-c ?\C-l ?\C-h] 'describe-prefix-bindings)
+    (rst-define-key map [?\C-c ?\C-l ?\C-h] #'describe-prefix-bindings)
     ;; Makes paragraphs in region as a bullet list.
-    (rst-define-key map [?\C-c ?\C-l ?\C-b] 'rst-bullet-list-region
+    (rst-define-key map [?\C-c ?\C-l ?\C-b] #'rst-bullet-list-region
                    [?\C-c ?\C-b])
     ;; Makes paragraphs in region as a enumeration.
-    (rst-define-key map [?\C-c ?\C-l ?\C-e] 'rst-enumerate-region
+    (rst-define-key map [?\C-c ?\C-l ?\C-e] #'rst-enumerate-region
                    [?\C-c ?\C-e])
     ;; Converts bullets to an enumeration.
-    (rst-define-key map [?\C-c ?\C-l ?\C-c] 'rst-convert-bullets-to-enumeration
+    (rst-define-key map [?\C-c ?\C-l ?\C-c] 
#'rst-convert-bullets-to-enumeration
                    [?\C-c ?\C-v])
     ;; Make sure that all the bullets in the region are consistent.
-    (rst-define-key map [?\C-c ?\C-l ?\C-s] 'rst-straighten-bullets-region
+    (rst-define-key map [?\C-c ?\C-l ?\C-s] #'rst-straighten-bullets-region
                    [?\C-c ?\C-w])
     ;; Insert a list item.
-    (rst-define-key map [?\C-c ?\C-l ?\C-i] 'rst-insert-list)
+    (rst-define-key map [?\C-c ?\C-l ?\C-i] #'rst-insert-list)
 
     ;;
     ;; Table-of-Contents Features
     ;;
     ;; \C-c \C-t is the keymap for table of contents.
-    (rst-define-key map [?\C-c ?\C-t ?\C-h] 'describe-prefix-bindings)
+    (rst-define-key map [?\C-c ?\C-t ?\C-h] #'describe-prefix-bindings)
     ;; Enter a TOC buffer to view and move to a specific section.
-    (rst-define-key map [?\C-c ?\C-t ?\C-t] 'rst-toc)
+    (rst-define-key map [?\C-c ?\C-t ?\C-t] #'rst-toc)
     ;; Insert a TOC here.
-    (rst-define-key map [?\C-c ?\C-t ?\C-i] 'rst-toc-insert
+    (rst-define-key map [?\C-c ?\C-t ?\C-i] #'rst-toc-insert
                    [?\C-c ?\C-i])
     ;; Update the document's TOC (without changing the cursor position).
-    (rst-define-key map [?\C-c ?\C-t ?\C-u] 'rst-toc-update
+    (rst-define-key map [?\C-c ?\C-t ?\C-u] #'rst-toc-update
                    [?\C-c ?\C-u])
-    ;; Go to the section under the cursor (cursor must be in TOC).
-    (rst-define-key map [?\C-c ?\C-t ?\C-j] 'rst-goto-section
+    ;; Go to the section under the cursor (cursor must be in internal TOC).
+    (rst-define-key map [?\C-c ?\C-t ?\C-j] #'rst-toc-follow-link
                    [?\C-c ?\C-f])
 
     ;;
     ;; Converting Documents from Emacs
     ;;
     ;; \C-c \C-c is the keymap for compilation.
-    (rst-define-key map [?\C-c ?\C-c ?\C-h] 'describe-prefix-bindings)
+    (rst-define-key map [?\C-c ?\C-c ?\C-h] #'describe-prefix-bindings)
     ;; Run one of two pre-configured toolset commands on the document.
-    (rst-define-key map [?\C-c ?\C-c ?\C-c] 'rst-compile
+    (rst-define-key map [?\C-c ?\C-c ?\C-c] #'rst-compile
                    [?\C-c ?1])
-    (rst-define-key map [?\C-c ?\C-c ?\C-a] 'rst-compile-alt-toolset
+    (rst-define-key map [?\C-c ?\C-c ?\C-a] #'rst-compile-alt-toolset
                    [?\C-c ?2])
     ;; Convert the active region to pseudo-xml using the docutils tools.
-    (rst-define-key map [?\C-c ?\C-c ?\C-x] 'rst-compile-pseudo-region
+    (rst-define-key map [?\C-c ?\C-c ?\C-x] #'rst-compile-pseudo-region
                    [?\C-c ?3])
     ;; Convert the current document to PDF and launch a viewer on the results.
-    (rst-define-key map [?\C-c ?\C-c ?\C-p] 'rst-compile-pdf-preview
+    (rst-define-key map [?\C-c ?\C-c ?\C-p] #'rst-compile-pdf-preview
                    [?\C-c ?4])
     ;; Convert the current document to S5 slides and view in a web browser.
-    (rst-define-key map [?\C-c ?\C-c ?\C-s] 'rst-compile-slides-preview
+    (rst-define-key map [?\C-c ?\C-c ?\C-s] #'rst-compile-slides-preview
                    [?\C-c ?5])
 
     map)
@@ -1333,7 +1317,8 @@ This inherits from Text mode.")
 
 ;; Abbrevs.
 (define-abbrev-table 'rst-mode-abbrev-table
-  (mapcar (lambda (x) (append x '(nil 0 system)))
+  (mapcar #'(lambda (x)
+             (append x '(nil 0 system)))
           '(("contents" ".. contents::\n..\n   ")
             ("con" ".. contents::\n..\n   ")
             ("cont" "[...]")
@@ -1381,6 +1366,7 @@ The hook for `text-mode' is run before this one."
 (require 'newcomment)
 
 (defvar electric-pair-pairs)
+(defvar electric-indent-inhibit)
 
 ;; Use rst-mode for *.rst and *.rest files.  Many ReStructured-Text files
 ;; use *.txt, but this is too generic to be set as a default.
@@ -1411,10 +1397,10 @@ highlighting.
                        (:seq hws-tag par-tag- bli-sfx))))
 
   ;; Indenting and filling.
-  (setq-local indent-line-function 'rst-indent-line)
+  (setq-local indent-line-function #'rst-indent-line)
   (setq-local adaptive-fill-mode t)
   (setq-local adaptive-fill-regexp (rst-re 'hws-tag 'par-tag- "?" 'hws-tag))
-  (setq-local adaptive-fill-function 'rst-adaptive-fill)
+  (setq-local adaptive-fill-function #'rst-adaptive-fill)
   (setq-local fill-paragraph-handle-comment nil)
 
   ;; Comments.
@@ -1430,18 +1416,18 @@ highlighting.
 
   ;; Commenting in reStructuredText is very special so use our own set of
   ;; functions.
-  (setq-local comment-line-break-function 'rst-comment-line-break)
-  (setq-local comment-indent-function 'rst-comment-indent)
-  (setq-local comment-insert-comment-function 'rst-comment-insert-comment)
-  (setq-local comment-region-function 'rst-comment-region)
-  (setq-local uncomment-region-function 'rst-uncomment-region)
+  (setq-local comment-line-break-function #'rst-comment-line-break)
+  (setq-local comment-indent-function #'rst-comment-indent)
+  (setq-local comment-insert-comment-function #'rst-comment-insert-comment)
+  (setq-local comment-region-function #'rst-comment-region)
+  (setq-local uncomment-region-function #'rst-uncomment-region)
 
   (setq-local electric-pair-pairs '((?\" . ?\") (?\* . ?\*) (?\` . ?\`)))
 
   ;; Imenu and which function.
   ;; FIXME: Check documentation of `which-function' for alternative ways to
   ;;        determine the current function name.
-  (setq-local imenu-create-index-function 'rst-imenu-create-index)
+  (setq-local imenu-create-index-function #'rst-imenu-create-index)
 
   ;; Font lock.
   (setq-local font-lock-defaults
@@ -1449,7 +1435,7 @@ highlighting.
                t nil nil nil
                (font-lock-multiline . t)
                (font-lock-mark-block-function . mark-paragraph)))
-  (add-hook 'font-lock-extend-region-functions 'rst-font-lock-extend-region t)
+  (add-hook 'font-lock-extend-region-functions #'rst-font-lock-extend-region t)
 
   ;; Text after a changed line may need new fontification.
   (setq-local jit-lock-contextually t)
@@ -1562,9 +1548,9 @@ file."
   :type `(repeat
          (group :tag "Adornment specification"
                 (choice :tag "Adornment character"
-                        ,@(mapcar (lambda (char)
-                                    (list 'const
-                                          :tag (char-to-string char) char))
+                        ,@(mapcar #'(lambda (char)
+                                      (list 'const
+                                            :tag (char-to-string char) char))
                                   rst-adornment-chars))
                 (radio :tag "Adornment type"
                        (const :tag "Overline and underline" over-and-under)
@@ -1603,17 +1589,12 @@ search starts after this entry.  Return nil if no new 
preferred
              ;; Start searching after the level of the previous adornment.
              (cdr (rst-Hdr-member-ado prev (rst-Hdr-preferred-adornments))))
          (rst-Hdr-preferred-adornments))))
-    (car
-     (rst-member-if (lambda (cand)
-                     (not (rst-Hdr-member-ado cand seen)))
-                   candidates))))
-
-(defun rst-delete-entire-line ()
-  "Delete the entire current line without using the `kill-ring'."
-  (delete-region (line-beginning-position)
-                 (line-beginning-position 2)))
+    (cl-find-if #'(lambda (cand)
+                   (not (rst-Hdr-member-ado cand seen)))
+               candidates)))
 
 (defun rst-update-section (hdr)
+  ;; testcover: ok.
   "Unconditionally update the style of the section header at point to HDR.
 If there are existing overline and/or underline from the
 existing adornment, they are removed before adding the
@@ -1621,163 +1602,149 @@ requested adornment."
   (end-of-line)
   (let ((indent (or (rst-Hdr-indent hdr) 0))
        (marker (point-marker))
-       len)
+       new)
 
     ;; Fixup whitespace at the beginning and end of the line.
-    (beginning-of-line)
+    (1value
+     (rst-forward-line-strict 0))
     (delete-horizontal-space)
     (insert (make-string indent ? ))
-
     (end-of-line)
     (delete-horizontal-space)
-
-    ;; Set the current column, we're at the end of the title line.
-    (setq len (+ (current-column) indent))
+    (setq new (make-string (+ (current-column) indent) (rst-Hdr-get-char hdr)))
 
     ;; Remove previous line if it is an adornment.
-    (save-excursion
-      (forward-line -1) ;; FIXME testcover: Doesn't work when in first line of
-                        ;;                  buffer.
-      (if (and (looking-at (rst-re 'ado-beg-2-1))
+    ;; FIXME refactoring: Check whether this deletes `hdr' which *has* all the
+    ;;                    data necessary.
+    (when (and (rst-forward-line-looking-at -1 'ado-beg-2-1)
               ;; Avoid removing the underline of a title right above us.
-              (save-excursion (forward-line -1)
-                              (not (looking-at (rst-re 'ttl-beg-1)))))
-         (rst-delete-entire-line)))
+              (not (rst-forward-line-looking-at -2 'ttl-beg-1)))
+      (rst-delete-entire-line -1))
 
     ;; Remove following line if it is an adornment.
-    (save-excursion
-      (forward-line +1) ;; FIXME testcover: Doesn't work when in last line
-                        ;;                  of buffer.
-      (if (looking-at (rst-re 'ado-beg-2-1))
-         (rst-delete-entire-line))
-      ;; Add a newline if we're at the end of the buffer unless it is the final
-      ;; empty line, for the subsequent inserting of the underline.
-      (if (and (= (point) (buffer-end 1)) (not (bolp)))
-         (newline 1)))
-
-    ;; Insert overline.
-    (when (rst-Hdr-is-over-and-under hdr)
-      (save-excursion
-       (beginning-of-line)
-       (open-line 1)
-       (insert (make-string len (rst-Hdr-get-char hdr)))))
+    (when (rst-forward-line-looking-at +1 'ado-beg-2-1)
+      (rst-delete-entire-line +1))
 
     ;; Insert underline.
-    (1value ;; Line has been inserted above.
-     (forward-line +1))
+    (unless (rst-forward-line-strict +1)
+      ;; Normalize buffer by adding final newline.
+      (newline 1))
     (open-line 1)
-    (insert (make-string len (rst-Hdr-get-char hdr)))
+    (insert new)
+
+    ;; Insert overline.
+    (when (rst-Hdr-is-over-and-under hdr)
+      (1value ; Underline inserted above.
+       (rst-forward-line-strict -1))
+      (open-line 1)
+      (insert new))
 
-    (1value ;; Line has been inserted above.
-     (forward-line +1))
     (goto-char marker)))
 
-(defun rst-classify-adornment (adornment end)
+(defun rst-classify-adornment (adornment end &optional accept-over-only)
+  ;; testcover: ok.
   "Classify adornment string for section titles and transitions.
 ADORNMENT is the complete adornment string as found in the buffer
 with optional trailing whitespace.  END is the point after the
 last character of ADORNMENT.  Return a `rst-Ttl' or nil if no
-syntactically valid adornment is found."
+syntactically valid adornment is found.  If ACCEPT-OVER-ONLY an
+overline with a missing underline is accepted as valid and
+returned."
   (save-excursion
     (save-match-data
       (when (string-match (rst-re 'ado-beg-2-1) adornment)
        (goto-char end)
        (let* ((ado-ch (string-to-char (match-string 2 adornment)))
-              (ado-re (rst-re ado-ch 'adorep3-hlp))
-              (end-pnt (point))
+              (ado-re (rst-re ado-ch 'adorep3-hlp)) ; RE matching the
+                                                    ; adornment.
               (beg-pnt (progn
-                         (1value ;; No lines may be left to move.
-                          (forward-line 0))
+                         (1value
+                          (rst-forward-line-strict 0))
                          (point)))
               (nxt-emp ; Next line nonexistent or empty
-               (save-excursion
-                 (or (not (zerop (forward-line 1)))
-                     ;; FIXME testcover: Add test classifying at the end of
-                     ;;                  buffer.
-                     (looking-at (rst-re 'lin-end)))))
+               (not (rst-forward-line-looking-at +1 'lin-end #'not)))
               (prv-emp ; Previous line nonexistent or empty
-               (save-excursion
-                 (or (not (zerop (forward-line -1)))
-                     (looking-at (rst-re 'lin-end)))))
+               (not (rst-forward-line-looking-at -1 'lin-end #'not)))
               txt-blw
               (ttl-blw ; Title found below starting here.
-               (save-excursion
-                 (and
-                  (zerop (forward-line 1)) ;; FIXME testcover: Add test
-                                           ;; classifying at the end of
-                                           ;; buffer.
-                  (looking-at (rst-re 'ttl-beg-1))
-                  (setq txt-blw (match-string-no-properties 1))
-                  (point))))
+               (rst-forward-line-looking-at
+                +1 'ttl-beg-1
+                #'(lambda (mtcd)
+                    (when mtcd
+                      (setq txt-blw (match-string-no-properties 1))
+                      (point)))))
               txt-abv
               (ttl-abv ; Title found above starting here.
-               (save-excursion
-                 (and
-                  (zerop (forward-line -1))
-                  (looking-at (rst-re 'ttl-beg-1))
-                  (setq txt-abv (match-string-no-properties 1))
-                  (point))))
+               (rst-forward-line-looking-at
+                 -1 'ttl-beg-1
+                 #'(lambda (mtcd)
+                     (when mtcd
+                       (setq txt-abv (match-string-no-properties 1))
+                       (point)))))
               (und-fnd ; Matching underline found starting here.
-               (save-excursion
-                 (and ttl-blw
-                  (zerop (forward-line 2)) ;; FIXME testcover: Add test
-                                           ;; classifying at the end of
-                                           ;; buffer.
-                  (looking-at (rst-re ado-re 'lin-end))
-                  (point))))
+               (and ttl-blw
+                    (rst-forward-line-looking-at
+                     +2 (list ado-re 'lin-end)
+                     #'(lambda (mtcd)
+                         (when mtcd
+                           (point))))))
               (ovr-fnd ; Matching overline found starting here.
-               (save-excursion
-                 (and ttl-abv
-                  (zerop (forward-line -2))
-                  (looking-at (rst-re ado-re 'lin-end))
-                  (point))))
-              ado ind txt beg-ovr end-ovr beg-txt end-txt beg-und end-und)
+               (and ttl-abv
+                    (rst-forward-line-looking-at
+                     -2 (list ado-re 'lin-end)
+                     #'(lambda (mtcd)
+                         (when mtcd
+                           (point))))))
+              (und-wng ; Wrong underline found starting here.
+               (and ttl-blw
+                    (not und-fnd)
+                    (rst-forward-line-looking-at
+                     +2 'ado-beg-2-1
+                     #'(lambda (mtcd)
+                         (when mtcd
+                           (point))))))
+              (ovr-wng ; Wrong overline found starting here.
+               (and ttl-abv (not ovr-fnd)
+                    (rst-forward-line-looking-at
+                      -2 'ado-beg-2-1
+                      #'(lambda (mtcd)
+                          (when (and
+                                 mtcd
+                                 ;; An adornment above may be a legal
+                                 ;; adornment for the line above - consider it
+                                 ;; a wrong overline only when it is equally
+                                 ;; long.
+                                 (equal
+                                  (length (match-string-no-properties 1))
+                                  (length adornment)))
+                            (point)))))))
          (cond
           ((and nxt-emp prv-emp)
            ;; A transition.
-           (setq ado (rst-Ado-new-transition)
-                 beg-txt beg-pnt
-                 end-txt end-pnt))
-          ((or und-fnd ovr-fnd)
+           (rst-Ttl-from-buffer (rst-Ado-new-transition)
+                                nil beg-pnt nil nil))
+          (ovr-fnd ; Prefer overline match over underline match.
            ;; An overline with an underline.
-           (setq ado (rst-Ado-new-over-and-under ado-ch))
-           (let (;; Prefer overline match over underline match.
-                 (und-pnt (if ovr-fnd beg-pnt und-fnd))
-                 (ovr-pnt (if ovr-fnd ovr-fnd beg-pnt))
-                 (txt-pnt (if ovr-fnd ttl-abv ttl-blw)))
-             (goto-char ovr-pnt)
-             (setq beg-ovr (point)
-                   end-ovr (line-end-position))
-             (goto-char txt-pnt)
-             (setq beg-txt (point)
-                   end-txt (line-end-position)
-                   ind (current-indentation)
-                   txt (if ovr-fnd txt-abv txt-blw))
-             (goto-char und-pnt)
-             (setq beg-und (point)
-                   end-und (line-end-position))))
-          (ttl-abv
+           (rst-Ttl-from-buffer (rst-Ado-new-over-and-under ado-ch)
+                                ovr-fnd ttl-abv beg-pnt txt-abv))
+          (und-fnd
+           ;; An overline with an underline.
+           (rst-Ttl-from-buffer (rst-Ado-new-over-and-under ado-ch)
+                                beg-pnt ttl-blw und-fnd txt-blw))
+          ((and ttl-abv (not ovr-wng))
            ;; An underline.
-           (setq ado (rst-Ado-new-simple ado-ch)
-                 beg-und beg-pnt
-                 end-und end-pnt)
-           (goto-char ttl-abv)
-           (setq beg-txt (point)
-                 end-txt (line-end-position)
-                 ind (current-indentation)
-                 txt txt-abv))
+           (rst-Ttl-from-buffer (rst-Ado-new-simple ado-ch)
+                                nil ttl-abv beg-pnt txt-abv))
+          ((and accept-over-only ttl-blw (not und-wng))
+           ;; An overline with a missing underline.
+           (rst-Ttl-from-buffer (rst-Ado-new-over-and-under ado-ch)
+                                beg-pnt ttl-blw nil txt-blw))
           (t
            ;; Invalid adornment.
-           (setq ado nil)))
-         (if ado
-             (rst-Ttl-new ado
-                          (list
-                           (or beg-ovr beg-txt)
-                           (or end-und end-txt)
-                           beg-ovr end-ovr beg-txt end-txt beg-und end-und)
-                          ind txt)))))))
+           nil)))))))
 
 (defun rst-ttl-at-point ()
+  ;; testcover: ok.
   "Find a section title line around point and return its characteristics.
 If the point is on an adornment line find the respective title
 line.  If the point is on an empty line check previous or next
@@ -1785,89 +1752,57 @@ line whether it is a suitable title line and use it if 
so.  If
 point is on a suitable title line use it.  Return a `rst-Ttl' for
 a section header or nil if no title line is found."
   (save-excursion
-    (1value ;; No lines may be left to move.
-     (forward-line 0))
-    (let ((orig-pnt (point))
-         (orig-end (line-end-position)))
-      (cond
-       ((looking-at (rst-re 'ado-beg-2-1))
-       ;; Adornment found - consider it.
-       (let ((char (string-to-char (match-string-no-properties 2)))
-             (r (rst-classify-adornment (match-string-no-properties 0)
-                                        (match-end 0))))
-         (cond
-          ((not r)
-           ;; Invalid adornment - check whether this is an overline with
-           ;; missing underline.
-           (if (and
-                (zerop (forward-line 1))
-                (looking-at (rst-re 'ttl-beg-1)))
-               (rst-Ttl-new (rst-Ado-new-over-and-under char)
-                            (list orig-pnt (line-end-position)
-                                  orig-pnt orig-end
-                                  (point) (line-end-position)
-                                  nil nil)
-                            (current-indentation)
-                            (match-string-no-properties 1))))
-          ((rst-Ado-is-transition (rst-Ttl-ado r))
-           nil)
-          ;; Return any other classification as is.
-          (r))))
-       ((looking-at (rst-re 'lin-end))
-       ;; Empty line found - check surrounding lines for a title.
-       (or
-        (save-excursion
-          (if (and (zerop (forward-line -1))
-                   (looking-at (rst-re 'ttl-beg-1)))
-              (rst-Ttl-new nil
-                           (list (point) (line-end-position)
-                                 nil nil
-                                 (point) (line-end-position)
-                                 nil nil)
-                           (current-indentation)
-                           (match-string-no-properties 1))))
-        (save-excursion
-          (if (and (zerop (forward-line 1))
-                   (looking-at (rst-re 'ttl-beg-1)))
-              (rst-Ttl-new nil
-                           (list (point) (line-end-position)
-                                 nil nil
-                                 (point) (line-end-position)
-                                 nil nil)
-                           (current-indentation)
-                           (match-string-no-properties 1))))))
-       ((looking-at (rst-re 'ttl-beg-1))
-       ;; Title line found - check for a following underline.
-       (let ((txt (match-string-no-properties 1)))
-         (or (rst-classify-adornment
-              (buffer-substring-no-properties
-               (line-beginning-position 2) (line-end-position 2))
-              (line-end-position 2))
-             ;; No valid adornment found.
-             (rst-Ttl-new nil
-                          (list (point) (line-end-position)
-                                nil nil
-                                (point) (line-end-position)
-                                nil nil)
-                          (current-indentation)
-                          txt))))))))
+    (save-match-data
+      (1value
+       (rst-forward-line-strict 0))
+      (let* (cnd-beg ; Beginning of a title candidate.
+            cnd-txt ; Text of a title candidate.
+            (cnd-fun #'(lambda (mtcd) ; Function setting title candidate data.
+                         (when mtcd
+                           (setq cnd-beg (match-beginning 0))
+                           (setq cnd-txt (match-string-no-properties 1))
+                           t)))
+            ttl)
+       (cond
+        ((looking-at (rst-re 'ado-beg-2-1))
+         ;; Adornment found - consider it.
+         (setq ttl (rst-classify-adornment (match-string-no-properties 0)
+                                           (match-end 0) t)))
+        ((looking-at (rst-re 'lin-end))
+         ;; Empty line found - check surrounding lines for a title.
+         (or
+          (rst-forward-line-looking-at -1 'ttl-beg-1 cnd-fun)
+          (rst-forward-line-looking-at +1 'ttl-beg-1 cnd-fun)))
+        ((looking-at (rst-re 'ttl-beg-1))
+         ;; Title line found - check for a following underline.
+         (setq ttl (rst-forward-line-looking-at
+                    1 'ado-beg-2-1
+                    #'(lambda (mtcd)
+                        (when mtcd
+                          (rst-classify-adornment
+                           (match-string-no-properties 0) (match-end 0))))))
+         ;; Title candidate found if no valid adornment found.
+         (funcall cnd-fun (not ttl))))
+       (cond
+        ((and ttl (rst-Ttl-is-section ttl))
+         ttl)
+        (cnd-beg
+         (rst-Ttl-from-buffer nil nil cnd-beg nil cnd-txt)))))))
 
 ;; The following function and variables are used to maintain information about
 ;; current section adornment in a buffer local cache. Thus they can be used for
 ;; font-locking and manipulation commands.
 
-(defvar rst-all-ttls-cache nil
+(defvar-local rst-all-ttls-cache nil
   "All section adornments in the buffer as found by `rst-all-ttls'.
 Set to t when no section adornments were found.")
-(make-variable-buffer-local 'rst-all-ttls-cache)
 
 ;; FIXME: If this variable is set to a different value font-locking of section
 ;;        headers is wrong.
-(defvar rst-hdr-hierarchy-cache nil
+(defvar-local rst-hdr-hierarchy-cache nil
   "Section hierarchy in the buffer as determined by `rst-hdr-hierarchy'.
 Set to t when no section adornments were found.
 Value depends on `rst-all-ttls-cache'.")
-(make-variable-buffer-local 'rst-hdr-hierarchy-cache)
 
 (rst-testcover-add-1value 'rst-reset-section-caches)
 (defun rst-reset-section-caches ()
@@ -1876,94 +1811,91 @@ Should be called by interactive functions which deal 
with sections."
   (setq rst-all-ttls-cache nil
        rst-hdr-hierarchy-cache nil))
 
+(defun rst-all-ttls-compute ()
+  ;; testcover: ok.
+  "Return a list of `rst-Ttl' for current buffer with ascending line number."
+  (save-excursion
+    (save-match-data
+      (let (ttls)
+       (goto-char (point-min))
+       ;; Iterate over all the section titles/adornments in the file.
+       (while (re-search-forward (rst-re 'ado-beg-2-1) nil t)
+         (let ((ttl (rst-classify-adornment
+                     (match-string-no-properties 0) (point))))
+           (when (and ttl (rst-Ttl-is-section ttl))
+             (when (rst-Ttl-hdr ttl)
+               (push ttl ttls))
+             (goto-char (rst-Ttl-get-end ttl)))))
+       (nreverse ttls)))))
+
 (defun rst-all-ttls ()
   "Return all the section adornments in the current buffer.
 Return a list of `rst-Ttl' with ascending line number.
 
 Uses and sets `rst-all-ttls-cache'."
   (unless rst-all-ttls-cache
-    (let (positions)
-      ;; Iterate over all the section titles/adornments in the file.
-      (save-excursion
-       (save-match-data
-         (goto-char (point-min))
-         (while (re-search-forward (rst-re 'ado-beg-2-1) nil t)
-           (let ((ttl (rst-classify-adornment
-                       (match-string-no-properties 0) (point))))
-             (when (and ttl (rst-Ado-is-section (rst-Ttl-ado ttl)))
-               (when (rst-Ttl-evaluate-hdr ttl)
-                 (push ttl positions))
-               (goto-char (rst-Ttl-get-end ttl)))))
-         (setq positions (nreverse positions))
-         (setq rst-all-ttls-cache (or positions t))))))
+    (setq rst-all-ttls-cache (or (rst-all-ttls-compute) t)))
   (if (eq rst-all-ttls-cache t)
       nil
-    (mapcar 'rst-Ttl-copy rst-all-ttls-cache)))
+    (copy-sequence rst-all-ttls-cache)))
 
 (defun rst-infer-hdr-hierarchy (hdrs)
+  ;; testcover: ok.
   "Build a hierarchy from HDRS.
 HDRS reflects the order in which the headers appear in the
 buffer.  Return a `rst-Hdr' list representing the hierarchy of
 headers in the buffer.  Indentation is unified."
-  (let (ado2indents)
+  (let (ado2indents) ; Associates `rst-Ado' with the set of indents seen for 
it.
     (dolist (hdr hdrs)
       (let* ((ado (rst-Hdr-ado hdr))
             (indent (rst-Hdr-indent hdr))
             (found (assoc ado ado2indents)))
         (if found
-           (unless (member indent (cdr found))
-             ;; Append newly found indent.
-             (setcdr found (append (cdr found) (list indent))))
+           (setcdr found (cl-adjoin indent (cdr found)))
          (push (list ado indent) ado2indents))))
-    (mapcar (lambda (ado_indents)
-             (let ((ado (car ado_indents))
-                   (indents (cdr ado_indents)))
-               (rst-Hdr-new
-                ado
-                (if (> (length indents) 1)
-                    ;; Indentations used inconsistently - use default.
-                    rst-default-indent
-                  ;; Only one indentation used - use this.
-                  (car indents)))))
+    (mapcar (cl-function
+            (lambda ((ado consistent &rest inconsistent))
+              (rst-Hdr-new ado (if inconsistent
+                                   rst-default-indent
+                                 consistent))))
            (nreverse ado2indents))))
 
-(defun rst-hdr-hierarchy (&optional ignore-current)
+(defun rst-hdr-hierarchy (&optional ignore-position)
+  ;; testcover: ok.
   "Return the hierarchy of section titles in the file as a `rst-Hdr' list.
 Each returned element may be used directly to create a section
-adornment on that level.  If IGNORE-CURRENT a title found on the
-current line is not taken into account when building the
+adornment on that level.  If IGNORE-POSITION a title containing
+this position is not taken into account when building the
 hierarchy unless it appears again elsewhere.  This catches cases
 where the current title is edited and may not be final regarding
 its level.
 
-Uses and sets `rst-hdr-hierarchy-cache' unless IGNORE-CURRENT is
+Uses and sets `rst-hdr-hierarchy-cache' unless IGNORE-POSITION is
 given."
   (let* ((all-ttls (rst-all-ttls))
-        (ignore-position (if ignore-current
-                             (line-beginning-position)))
         (ignore-ttl
          (if ignore-position
-             (car (member-if
-                   (lambda (ttl)
-                     (equal ignore-position (rst-Ttl-get-title-beginning ttl)))
-                   all-ttls))))
+             (cl-find-if
+              #'(lambda (ttl)
+                  (equal (rst-Ttl-contains ttl ignore-position) 0))
+              all-ttls)))
         (really-ignore
          (if ignore-ttl
-             (<= (count-if
-                  (lambda (ttl)
-                    (rst-Ado-equal (rst-Ttl-ado ignore-ttl) (rst-Ttl-ado ttl)))
+             (<= (cl-count-if
+                  #'(lambda (ttl)
+                      (rst-Ado-equal (rst-Ttl-ado ignore-ttl)
+                                     (rst-Ttl-ado ttl)))
                   all-ttls)
                  1)))
         (real-ttls (delq (if really-ignore ignore-ttl) all-ttls)))
-    (mapcar ;; Protect cache.
-     'rst-Hdr-copy
-     (if (and (not ignore-current) rst-hdr-hierarchy-cache)
+    (copy-sequence ; Protect cache.
+     (if (and (not ignore-position) rst-hdr-hierarchy-cache)
         (if (eq rst-hdr-hierarchy-cache t)
             nil
           rst-hdr-hierarchy-cache)
-       (let ((r (rst-infer-hdr-hierarchy (mapcar 'rst-Ttl-hdr real-ttls))))
+       (let ((r (rst-infer-hdr-hierarchy (mapcar #'rst-Ttl-hdr real-ttls))))
         (setq rst-hdr-hierarchy-cache
-              (if ignore-current
+              (if ignore-position
                   ;; Clear cache reflecting that a possible update is not
                   ;; reflected.
                   nil
@@ -1971,48 +1903,43 @@ given."
         r)))))
 
 (defun rst-all-ttls-with-level ()
+  ;; testcover: ok.
   "Return the section adornments with levels set according to hierarchy.
-Return a list of `rst-Ttl' with ascending line number."
-    (let ((hier (rst-Hdr-ado-map (rst-hdr-hierarchy))))
-      (mapcar
-       (lambda (ttl)
-        (rst-Ttl-set-level ttl (rst-Ado-position (rst-Ttl-ado ttl) hier))
-        ttl)
-       (rst-all-ttls))))
+Return a list of (`rst-Ttl' . LEVEL) with ascending line number."
+  (let ((hier (rst-Hdr-ado-map (rst-hdr-hierarchy))))
+    (mapcar
+     #'(lambda (ttl)
+        (cons ttl (rst-Ado-position (rst-Ttl-ado ttl) hier)))
+     (rst-all-ttls))))
 
 (defun rst-get-previous-hdr ()
   "Return the `rst-Hdr' before point or nil if none."
-  (let ((ttls (rst-all-ttls))
-       (curpos (line-beginning-position))
-       prev)
-
-    ;; Search for the adornments around the current line.
-    (while (and ttls (< (rst-Ttl-get-title-beginning (car ttls)) curpos))
-      (setq prev (car ttls)
-            ttls (cdr ttls)))
+  (let ((prev (cl-find-if #'(lambda (ttl)
+                             (< (rst-Ttl-contains ttl (point)) 0))
+                         (rst-all-ttls)
+                         :from-end t)))
     (and prev (rst-Ttl-hdr prev))))
 
 (defun rst-adornment-complete-p (ado indent)
-  "Return true if the adornment ADO around point is complete using INDENT.
+  ;; testcover: ok.
+  "Return t if the adornment ADO around point is complete using INDENT.
 The adornment is complete if it is a completely correct
 reStructuredText adornment for the title line at point.  This
 includes indentation and correct length of adornment lines."
   ;; Note: we assume that the detection of the overline as being the underline
   ;; of a preceding title has already been detected, and has been eliminated
   ;; from the adornment that is given to us.
-  (let ((exps (rst-re "^" (rst-Ado-char ado)
-                     (format "\\{%d\\}"
-                             (+ (save-excursion
-                                  ;; Determine last column of title.
-                                  (end-of-line)
-                                  (current-column))
-                                indent)) "$")))
-    (and
-     (save-excursion (forward-line +1)
-                    (looking-at exps))
-     (or (rst-Ado-is-simple ado)
-        (save-excursion (forward-line -1)
-                        (looking-at exps))))))
+  (let ((exps (list "^" (rst-Ado-char ado)
+                   (format "\\{%d\\}"
+                           (+ (save-excursion
+                                ;; Determine last column of title.
+                                (end-of-line)
+                                (current-column))
+                              indent)) "$")))
+    (and (rst-forward-line-looking-at +1 exps)
+        (or (rst-Ado-is-simple ado)
+            (rst-forward-line-looking-at -1 exps))
+        t))) ; Normalize return value.
 
 (defun rst-next-hdr (hdr hier prev down)
   ;; testcover: ok.
@@ -2042,6 +1969,7 @@ HIER is nil."
 
 ;; FIXME: A line "``/`` full" is not accepted as a section title.
 (defun rst-adjust (pfxarg)
+  ;; testcover: ok.
   "Auto-adjust the adornment around point.
 Adjust/rotate the section adornment for the section title around
 point or promote/demote the adornments inside the region,
@@ -2056,7 +1984,7 @@ to deal with all the possible cases gracefully and to do 
\"the
 right thing\" in all cases.
 
 See the documentations of `rst-adjust-section' and
-`rst-promote-region' for full details.
+`rst-adjust-region' for full details.
 
 The method can take either (but not both) of
 
@@ -2067,28 +1995,18 @@ b. a negative numerical argument, which generally 
inverts the
    direction of search in the file or hierarchy.  Invoke with C--
    prefix for example."
   (interactive "P")
-
-  (let* (;; Save our original position on the current line.
-        (origpt (point-marker))
-
+  (let* ((origpt (point-marker))
          (reverse-direction (and pfxarg (< (prefix-numeric-value pfxarg) 0)))
          (toggle-style (and pfxarg (not reverse-direction))))
-
     (if (use-region-p)
-        ;; Adjust adornments within region.
-        (rst-promote-region (and pfxarg t))
-      ;; Adjust adornment around point.
+        (rst-adjust-region (and pfxarg t))
       (let ((msg (rst-adjust-section toggle-style reverse-direction)))
        (when msg
-         (apply 'message msg))))
-
-    ;; Run the hooks to run after adjusting.
+         (apply #'message msg))))
     (run-hooks 'rst-adjust-hook)
-
     (rst-reset-section-caches)
-
-    ;; Make sure to reset the cursor position properly after we're done.
-    (goto-char origpt)))
+    (set-marker
+     (goto-char origpt) nil)))
 
 (defcustom rst-adjust-hook nil
   "Hooks to be run after running `rst-adjust'."
@@ -2116,8 +2034,77 @@ Argument PFXARG has the same meaning as for 
`rst-adjust'."
          (toggle-style (and pfxarg (not reverse-direction))))
     (rst-adjust-section toggle-style reverse-direction)))
 
+(defun rst-adjust-new-hdr (toggle-style reverse ttl)
+  ;; testcover: ok.
+  "Return a new `rst-Hdr' for `rst-adjust-section' related to TTL.
+TOGGLE-STYLE and REVERSE are from
+`rst-adjust-section'.  TOGGLE-STYLE may be consumed and thus is
+returned.
+
+Return a list (HDR TOGGLE-STYLE MSG...).  HDR is the result or
+nil.  TOGGLE-STYLE is the new TOGGLE-STYLE to use in the
+caller.  MSG is a list which is non-empty in case HDR is nil
+giving an argument list for `message'."
+  (save-excursion
+    (goto-char (rst-Ttl-get-title-beginning ttl))
+    (let ((indent (rst-Ttl-indent ttl))
+         (ado (rst-Ttl-ado ttl))
+         (prev (rst-get-previous-hdr))
+         hdr-msg)
+      (setq
+       hdr-msg
+       (cond
+       ((rst-Ttl-is-candidate ttl)
+        ;; Case 1: No adornment at all.
+        (let ((hier (rst-hdr-hierarchy)))
+          (if prev
+              ;; Previous header exists - use it.
+              (cond
+               ;; Customization and parameters require that the previous level
+               ;; is used - use it as is.
+               ((or (and rst-new-adornment-down reverse)
+                    (and (not rst-new-adornment-down) (not reverse)))
+                prev)
+               ;; Advance one level down.
+               ((rst-next-hdr prev hier prev t))
+               ("Neither hierarchy nor preferences can suggest a deeper 
header"))
+            ;; First header in the buffer - use the first adornment from
+            ;; preferences or hierarchy.
+            (let ((p (car (rst-Hdr-preferred-adornments)))
+                  (h (car hier)))
+              (cond
+               ((if reverse
+                    ;; Prefer hierarchy for downwards
+                    (or h p)
+                  ;; Prefer preferences for upwards
+                  (or p h)))
+               ("No preferences to suggest a top level from"))))))
+       ((not (rst-adornment-complete-p ado indent))
+        ;; Case 2: Incomplete adornment.
+        ;; Use lax since indentation might not match suggestion.
+        (rst-Hdr-new-lax ado indent))
+       ;; Case 3: Complete adornment exists from here on.
+       (toggle-style
+        ;; Simply switch the style of the current adornment.
+        (setq toggle-style nil) ; Remember toggling has been done.
+        (rst-Hdr-new-invert ado rst-default-indent))
+       (t
+        ;; Rotate, ignoring a sole adornment around the current line.
+        (let ((hier (rst-hdr-hierarchy (point))))
+          (cond
+           ;; Next header can be determined from hierarchy or preferences.
+           ((rst-next-hdr
+             ;; Use lax since indentation might not match suggestion.
+             (rst-Hdr-new-lax ado indent) hier prev reverse))
+           ;; No next header found.
+           ("No preferences or hierarchy to suggest another level from"))))))
+      (if (stringp hdr-msg)
+         (list nil toggle-style hdr-msg)
+       (list hdr-msg toggle-style)))))
+
 (defun rst-adjust-section (toggle-style reverse)
-"Adjust/rotate the section adornment for the section title around point.
+  ;; testcover: ok.
+  "Adjust/rotate the section adornment for the section title around point.
 The action this function takes depends on context around the
 point, and it is meant to be invoked possibly more than once to
 rotate among the various possibilities.  Basically, this function
@@ -2191,135 +2178,71 @@ around the cursor.  Then the following cases are 
distinguished.
   However, if TOGGLE-STYLE, we do not rotate the adornment, but instead simply
   toggle the style of the current adornment."
   (rst-reset-section-caches)
-  (let ((ttl (rst-ttl-at-point))
-       (orig-pnt (point))
-       msg)
+  (let ((ttl (rst-ttl-at-point)))
     (if (not ttl)
-       (setq msg '("No section header or candidate at point"))
-      (goto-char (rst-Ttl-get-title-beginning ttl))
-      (let ((moved (- (line-number-at-pos) (line-number-at-pos orig-pnt)))
-           (found (rst-Ttl-ado ttl))
-           (indent (rst-Ttl-indent ttl))
-           (prev (rst-get-previous-hdr))
-           new)
-       (when (and found (not (rst-Ado-p found)))
-         ;; Normalize found adornment - overline with no underline counts as
-         ;; overline.
-         (setq found (rst-Ado-new-over-and-under found)))
-       (setq new
-             (cond
-              ((not found)
-               ;; Case 1: No adornment at all.
-               (let ((hier (rst-hdr-hierarchy)))
-                 (if prev
-                     ;; Previous header exists - use it.
-                     (cond
-                      ;; Customization and parameters require that the
-                      ;; previous level is used - use it as is.
-                      ((or (and rst-new-adornment-down reverse)
-                           (and (not rst-new-adornment-down) (not reverse)))
-                       prev)
-                      ;; Advance one level down.
-                      ((rst-next-hdr prev hier prev t))
-                      (t
-                       (setq msg '("Neither hierarchy nor preferences can 
suggest a deeper header"))
-                       nil))
-                   ;; First header in the buffer - use the first adornment
-                   ;; from preferences or hierarchy.
-                   (let ((p (car (rst-Hdr-preferred-adornments)))
-                         (h (car hier)))
-                     (cond
-                      ((if reverse
-                           ;; Prefer hierarchy for downwards
-                           (or h p)
-                         ;; Prefer preferences for upwards
-                         (or p h)))
-                      (t
-                       (setq msg '("No preferences to suggest a top level 
from"))
-                       nil))))))
-              ((not (rst-adornment-complete-p found indent))
-               ;; Case 2: Incomplete adornment.
-               ;; Use lax since indentation might not match suggestion.
-               (rst-Hdr-new-lax found indent))
-              ;; Case 3: Complete adornment exists from here on.
-              (toggle-style
-               ;; Simply switch the style of the current adornment.
-               (setq toggle-style nil) ;; Remember toggling has been done.
-               (rst-Hdr-new-invert found rst-default-indent))
-              (t
-               ;; Rotate, ignoring a sole adornment around the current line.
-               (let ((hier (rst-hdr-hierarchy t)))
-                 (cond
-                  ;; Next header can be determined from hierarchy or
-                  ;; preferences.
-                  ((rst-next-hdr
-                    ;; Use lax since indentation might not match suggestion.
-                    (rst-Hdr-new-lax found indent) hier prev reverse))
-                  ;; No next header found.
-                  (t
-                   (setq msg '("No preferences or hierarchy to suggest another 
level from"))
-                   nil))))))
-       (if (not new)
-           (goto-char orig-pnt)
+       '("No section header or candidate at point")
+      (cl-destructuring-bind
+         (hdr toggle-style &rest msg
+              &aux
+              (indent (rst-Ttl-indent ttl))
+              (moved (- (line-number-at-pos (rst-Ttl-get-title-beginning ttl))
+                        (line-number-at-pos))))
+         (rst-adjust-new-hdr toggle-style reverse ttl)
+       (if msg
+           msg
          (when toggle-style
-           (setq new (rst-Hdr-new-invert (rst-Hdr-ado new) indent)))
+           (setq hdr (rst-Hdr-new-invert (rst-Hdr-ado hdr) indent)))
          ;; Override indent with present indent if there is some.
          (when (> indent 0)
            ;; Use lax since existing indent may not be valid for new style.
-           (setq new (rst-Hdr-new-lax (rst-Hdr-ado new) indent)))
-         (rst-update-section new)
-         ;; Correct the position of the cursor to more accurately reflect where
-         ;; it was located when the function was invoked.
+           (setq hdr (rst-Hdr-new-lax (rst-Hdr-ado hdr) indent)))
+         (goto-char (rst-Ttl-get-title-beginning ttl))
+         (rst-update-section hdr)
+         ;; Correct the position of the cursor to more accurately reflect
+         ;; where it was located when the function was invoked.
          (unless (zerop moved)
-           (forward-line (- moved))
-           (end-of-line)))))
-    msg))
+           (1value ; No lines may be left to move.
+            (rst-forward-line-strict (- moved)))
+           (end-of-line))
+         nil)))))
 
 ;; Maintain an alias for compatibility.
 (defalias 'rst-adjust-section-title 'rst-adjust)
 
-(defun rst-promote-region (demote)
+(defun rst-adjust-region (demote)
+  ;; testcover: ok.
   "Promote the section titles within the region.
 With argument DEMOTE or a prefix argument, demote the section
 titles instead.  The algorithm used at the boundaries of the
 hierarchy is similar to that used by `rst-adjust-section'."
   (interactive "P")
   (rst-reset-section-caches)
-  (let ((ttls (rst-all-ttls))
-       (hier (rst-hdr-hierarchy))
-       (region-beg (save-excursion
-                     (goto-char (region-beginning))
-                     (line-beginning-position)))
-       (region-end (save-excursion
-                     (goto-char (region-end))
-                     (line-beginning-position)))
-       marker-list)
-
-    ;; Skip the markers that come before the region beginning.
-    (while (and ttls (< (rst-Ttl-get-title-beginning (car ttls)) region-beg))
-      (setq ttls (cdr ttls)))
-
-    ;; Create a list of markers for all the adornments which are found within
-    ;; the region.
+  (let* ((beg (region-beginning))
+        (end (region-end))
+        (ttls-reg (cl-remove-if-not
+                   #'(lambda (ttl)
+                       (and
+                        (>= (rst-Ttl-contains ttl beg) 0)
+                        (< (rst-Ttl-contains ttl end) 0)))
+                   (rst-all-ttls))))
     (save-excursion
-      (while (and ttls (< (rst-Ttl-get-title-beginning (car ttls)) region-end))
-       (push (cons (copy-marker (rst-Ttl-get-title-beginning (car ttls)))
-                   (rst-Ttl-hdr (car ttls))) marker-list)
-       (setq ttls (cdr ttls)))
-
       ;; Apply modifications.
-      (dolist (p marker-list)
-       ;; Go to the adornment to promote.
-       (goto-char (car p))
+      (rst-destructuring-dolist
+         ((marker &rest hdr
+                  &aux (hier (rst-hdr-hierarchy)))
+          (mapcar #'(lambda (ttl)
+                      (cons (copy-marker (rst-Ttl-get-title-beginning ttl))
+                            (rst-Ttl-hdr ttl)))
+                  ttls-reg))
+       (set-marker
+        (goto-char marker) nil)
        ;; `rst-next-hdr' cannot return nil because we apply to a section
        ;; header so there is some hierarchy.
-       (rst-update-section (rst-next-hdr (cdr p) hier nil demote))
-
-       ;; Clear marker to avoid slowing down the editing after we're done.
-       (set-marker (car p) nil))
+       (rst-update-section (rst-next-hdr hdr hier nil demote)))
       (setq deactivate-mark nil))))
 
 (defun rst-display-hdr-hierarchy ()
+  ;; testcover: ok.
   "Display the current file's section title adornments hierarchy.
 Hierarchy is displayed in a temporary buffer."
   (interactive)
@@ -2333,7 +2256,7 @@ Hierarchy is displayed in a temporary buffer."
          (rst-update-section hdr)
          (goto-char (point-max))
          (insert "\n")
-         (incf level))))))
+         (cl-incf level))))))
 
 ;; Maintain an alias for backward compatibility.
 (defalias 'rst-display-adornments-hierarchy 'rst-display-hdr-hierarchy)
@@ -2341,6 +2264,7 @@ Hierarchy is displayed in a temporary buffer."
 ;; FIXME: Should accept an argument giving the hierarchy level to start with
 ;;        instead of the top of the hierarchy.
 (defun rst-straighten-sections ()
+  ;; testcover: ok.
   "Redo the adornments of all section titles in the current buffer.
 This is done using the preferred set of adornments.  This can be
 used, for example, when using somebody else's copy of a document,
@@ -2348,17 +2272,17 @@ in order to adapt it to our preferred style."
   (interactive)
   (rst-reset-section-caches)
   (save-excursion
-    (dolist (ttl-marker (mapcar
-                        (lambda (ttl)
-                          (cons ttl (copy-marker
-                                     (rst-Ttl-get-title-beginning ttl))))
-                        (rst-all-ttls-with-level)))
-      ;; Go to the appropriate position.
-      (goto-char (cdr ttl-marker))
-      (rst-update-section (nth (rst-Ttl-level (car ttl-marker))
-                              (rst-Hdr-preferred-adornments)))
-      ;; Reset the marker to avoid slowing down editing.
-      (set-marker (cdr ttl-marker) nil))))
+    (rst-destructuring-dolist
+       ((marker &rest level)
+        (mapcar
+         (cl-function
+          (lambda ((ttl &rest level))
+            ;; Use markers so edits don't disturb the position.
+            (cons (copy-marker (rst-Ttl-get-title-beginning ttl)) level)))
+         (rst-all-ttls-with-level)))
+      (set-marker
+       (goto-char marker) nil)
+      (rst-update-section (nth level (rst-Hdr-preferred-adornments))))))
 
 ;; Maintain an alias for compatibility.
 (defalias 'rst-straighten-adornments 'rst-straighten-sections)
@@ -2367,9 +2291,9 @@ in order to adapt it to our preferred style."
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Insert list items
 
-; Borrowed from a2r.el (version 1.3), by Lawrence Mitchell <address@hidden>.
-; I needed to make some tiny changes to the functions, so I put it here.
-; -- Wei-Wei Guo
+;; Borrowed from a2r.el (version 1.3), by Lawrence Mitchell <address@hidden>.  
I
+;; needed to make some tiny changes to the functions, so I put it here.
+;; -- Wei-Wei Guo
 
 (defconst rst-arabic-to-roman
   '((1000 .   "M") (900  .  "CM") (500  .   "D") (400  .  "CD")
@@ -2378,73 +2302,59 @@ in order to adapt it to our preferred style."
     (1    .   "I"))
   "List of maps between Arabic numbers and their Roman numeral equivalents.")
 
-(defun rst-arabic-to-roman (num &optional arg)
+(defun rst-arabic-to-roman (num)
+  ;; testcover: ok.
   "Convert Arabic number NUM to its Roman numeral representation.
 
 Obviously, NUM must be greater than zero.  Don't blame me, blame the
 Romans, I mean \"what have the Romans ever _done_ for /us/?\" (with
-apologies to Monty Python).
-If optional ARG is non-nil, insert in current buffer."
+apologies to Monty Python)."
+  (cl-check-type num (integer 1 *))
   (let ((map rst-arabic-to-roman)
-        res)
+        (r ""))
     (while (and map (> num 0))
-      (if (or (= num (caar map))
-              (> num (caar map)))
-          (setq res (concat res (cdar map))
-                num (- num (caar map)))
-        (setq map (cdr map))))
-    (if arg (insert (or res "")) res)))
-
-(defun rst-roman-to-arabic (string &optional arg)
+      (cl-destructuring-bind ((val &rest sym) &rest next) map
+       (if (>= num val)
+           (setq r (concat r sym)
+                 num (- num val))
+         (setq map next))))
+    r))
+
+(defun rst-roman-to-arabic (string)
+  ;; testcover: ok.
   "Convert STRING of Roman numerals to an Arabic number.
-
 If STRING contains a letter which isn't a valid Roman numeral,
 the rest of the string from that point onwards is ignored.
-
 Hence:
 MMD == 2500
 and
-MMDFLXXVI == 2500.
-If optional ARG is non-nil, insert in current buffer."
+MMDFLXXVI == 2500."
+  (cl-check-type string string)
+  (cl-check-type string (satisfies (lambda (s)
+                                    (not (equal s ""))))
+                "Roman number may not be an empty string.")
   (let ((res 0)
         (map rst-arabic-to-roman))
-    (while map
-      (if (string-match (concat "^" (cdar map)) string)
-          (setq res (+ res (caar map))
-                string (replace-match "" nil t string))
-        (setq map (cdr map))))
-    (if arg (insert res) res)))
+    (save-match-data
+      (while map
+       (cl-destructuring-bind ((val &rest sym) &rest next) map
+         (if (string-match (concat "^" sym) string)
+             (setq res (+ res val)
+                   string (replace-match "" nil t string))
+           (setq map next))))
+      (cl-check-type string (satisfies (lambda (s)
+                                        (equal s "")))
+                    "Invalid characters in roman number")
+      res)))
 
 ;; End of borrow.
 
-(defun rst-find-pfx-in-region (beg end pfx-re)
-  "Find all the positions of prefixes in region between BEG and END.
-This is used to find bullets and enumerated list items.  PFX-RE is
-a regular expression for matching the lines after indentation
-with items.  Returns a list of cons cells consisting of the point
-and the column of the point."
-  (let ((pfx ()))
-    (save-excursion
-      (goto-char beg)
-      (while (< (point) end)
-       (back-to-indentation)
-       (when (and
-              (looking-at pfx-re) ; pfx found and...
-              (let ((pfx-col (current-column)))
-                (save-excursion
-                  (forward-line -1) ; ...previous line is...
-                  (back-to-indentation)
-                  (or (looking-at (rst-re 'lin-end)) ; ...empty,
-                      (> (current-column) pfx-col) ; ...deeper level, or
-                      (and (= (current-column) pfx-col)
-                           (looking-at pfx-re)))))) ; ...pfx at same level.
-         (push (cons (point) (current-column))
-                pfx))
-       (forward-line 1)))
-    (nreverse pfx)))
-
-(defun rst-insert-list-pos (newitem)
-  "Arrange relative position of a newly inserted list item of style NEWITEM.
+;; FIXME: All the following code should not consider single lines as items but
+;;        paragraphs as reST does.
+
+(defun rst-insert-list-new-tag (tag)
+  ;; testcover: ok.
+  "Insert first item of a new list tagged with TAG.
 
 Adding a new list might consider three situations:
 
@@ -2460,45 +2370,42 @@ When not (a), first forward point to the end of the 
line, and add two
 blank lines, then add the new list.
 
 Other situations are just ignored and left to users themselves."
-  (if (save-excursion
-        (beginning-of-line)
-        (looking-at (rst-re 'lin-end)))
-      (if (save-excursion
-            (forward-line -1)
-            (looking-at (rst-re 'lin-end)))
-          (insert newitem " ")
-        (insert "\n" newitem " "))
+  ;; FIXME: Following line is not considered at all.
+  (let ((pfx-nls
+        ;; FIXME: Doesn't work properly for white-space line. See
+        ;;        `rst-insert-list-new-BUGS'.
+        (if (rst-forward-line-looking-at 0 'lin-end)
+            (if (not (rst-forward-line-looking-at -1 'lin-end #'not))
+                0
+              1)
+          2)))
     (end-of-line)
-    (insert "\n\n" newitem " ")))
-
-;; FIXME: Isn't this a `defconst'?
-(defvar rst-initial-enums
-  (let (vals)
-    (dolist (fmt '("%s." "(%s)" "%s)"))
-      (dolist (c '("1" "a" "A" "I" "i"))
-        (push (format fmt c) vals)))
-    (cons "#." (nreverse vals)))
-  "List of initial enumerations.")
-
-;; FIXME: Isn't this a `defconst'?
-(defvar rst-initial-items
-  (append (mapcar 'char-to-string rst-bullets) rst-initial-enums)
+    ;; FIXME: The indentation is not fixed to a single space by the syntax. May
+    ;;        be this should be configurable or rather taken from the context.
+    (insert (make-string pfx-nls ?\n) tag " ")))
+
+(defconst rst-initial-items
+  (append (mapcar #'char-to-string rst-bullets)
+         (let (vals)
+           (dolist (fmt '("%s." "(%s)" "%s)"))
+             (dolist (c '("#" "1" "a" "A" "I" "i"))
+               (push (format fmt c) vals)))
+           (nreverse vals)))
   "List of initial items.  It's a collection of bullets and enumerations.")
 
 (defun rst-insert-list-new-item ()
+  ;; testcover: ok.
   "Insert a new list item.
 
 User is asked to select the item style first, for example (a), i), +.
 Use TAB for completion and choices.
 
 If user selects bullets or #, it's just added with position arranged by
-`rst-insert-list-pos'.
+`rst-insert-list-new-tag'.
 
 If user selects enumerations, a further prompt is given.  User need to
 input a starting item, for example 'e' for 'A)' style.  The position is
-also arranged by `rst-insert-list-pos'."
-  (interactive)
-  ;; FIXME: Make this comply to `interactive' standards.
+also arranged by `rst-insert-list-new-tag'."
   (let* ((itemstyle (completing-read
                     "Select preferred item style [#.]: "
                     rst-initial-items nil t nil nil "#."))
@@ -2506,7 +2413,6 @@ also arranged by `rst-insert-list-pos'."
                  (match-string 0 itemstyle)))
         (no
          (save-match-data
-           ;; FIXME: Make this comply to `interactive' standards.
            (cond
             ((equal cnt "a")
              (let ((itemno (read-string "Give starting value [a]: "
@@ -2527,66 +2433,73 @@ also arranged by `rst-insert-list-pos'."
                (number-to-string itemno)))))))
     (if no
        (setq itemstyle (replace-match no t t itemstyle)))
-    (rst-insert-list-pos itemstyle)))
+    (rst-insert-list-new-tag itemstyle)))
 
 (defcustom rst-preferred-bullets
   '(?* ?- ?+)
   "List of favorite bullets."
   :group 'rst
   :type `(repeat
-         (choice ,@(mapcar (lambda (char)
-                             (list 'const
-                                   :tag (char-to-string char) char))
+         (choice ,@(mapcar #'(lambda (char)
+                               (list 'const
+                                     :tag (char-to-string char) char))
                            rst-bullets)))
   :package-version '(rst . "1.1.0"))
 (rst-testcover-defcustom)
 
-(defun rst-insert-list-continue (curitem prefer-roman)
-  "Insert a list item with list start CURITEM including its indentation level.
-If PREFER-ROMAN roman numbering is preferred over using letters."
+(defun rst-insert-list-continue (ind tag tab prefer-roman)
+  ;; testcover: ok.
+  "Insert a new list tag after the current line according to style.
+Style is defined by indentation IND, TAG and suffix TAB.  If
+PREFER-ROMAN roman numbering is preferred over using letters."
   (end-of-line)
   (insert
-   "\n" ; FIXME: Separating lines must be possible.
-   (cond
-    ((string-match (rst-re '(:alt enmaut-tag
-                                 bul-tag)) curitem)
-     curitem)
-    ((string-match (rst-re 'num-tag) curitem)
-     (replace-match (number-to-string
-                    (1+ (string-to-number (match-string 0 curitem))))
-                   nil nil curitem))
-    ((and (string-match (rst-re 'rom-tag) curitem)
-         (save-match-data
-           (if (string-match (rst-re 'ltr-tag) curitem) ; Also a letter tag.
-               (save-excursion
-                 ;; FIXME: Assumes one line list items without separating
-                 ;;        empty lines.
-                 (if (and (zerop (forward-line -1))
-                          (looking-at (rst-re 'enmexp-beg)))
-                     (string-match
-                      (rst-re 'rom-tag)
-                      (match-string 0)) ; Previous was a roman tag.
-                   prefer-roman)) ; Don't know - use flag.
-             t))) ; Not a letter tag.
-     (replace-match
-      (let* ((old (match-string 0 curitem))
-            (new (save-match-data
-                   (rst-arabic-to-roman
-                    (1+ (rst-roman-to-arabic
-                         (upcase old)))))))
-       (if (equal old (upcase old))
-           (upcase new)
-         (downcase new)))
-      t nil curitem))
-    ((string-match (rst-re 'ltr-tag) curitem)
-     (replace-match (char-to-string
-                    (1+ (string-to-char (match-string 0 curitem))))
-                   nil nil curitem)))))
+   ;; FIXME: Separating lines must be possible.
+   "\n"
+   ind
+   (save-match-data
+     (if (not (string-match (rst-re 'cntexp-tag) tag))
+        tag
+       (let ((pfx (substring tag 0 (match-beginning 0)))
+            (cnt (match-string 0 tag))
+            (sfx (substring tag (match-end 0))))
+        (concat
+         pfx
+         (cond
+          ((string-match (rst-re 'num-tag) cnt)
+           (number-to-string (1+ (string-to-number (match-string 0 cnt)))))
+          ((and
+            (string-match (rst-re 'rom-tag) cnt)
+            (save-match-data
+              (if (string-match (rst-re 'ltr-tag) cnt) ; Also a letter tag.
+                  (save-excursion
+                    ;; FIXME: Assumes one line list items without separating
+                    ;;        empty lines.
+                    ;; Use of `rst-forward-line-looking-at' is very difficult
+                    ;; here so don't do it.
+                    (if (and (rst-forward-line-strict -1)
+                             (looking-at (rst-re 'enmexp-beg)))
+                        (string-match
+                         (rst-re 'rom-tag)
+                         (match-string 0)) ; Previous was a roman tag.
+                      prefer-roman)) ; Don't know - use flag.
+                t))) ; Not a letter tag.
+           (let* ((old (match-string 0 cnt))
+                  (new (rst-arabic-to-roman
+                        (1+ (rst-roman-to-arabic (upcase old))))))
+             (if (equal old (upcase old))
+                 (upcase new)
+               (downcase new))))
+          ((string-match (rst-re 'ltr-tag) cnt)
+           (char-to-string (1+ (string-to-char (match-string 0 cnt))))))
+         sfx))))
+    tab))
 
 ;; FIXME: At least the continuation may be folded into
 ;;        `newline-and-indent`. However, this may not be wanted by everyone so
 ;;        it should be possible to switch this off.
 (defun rst-insert-list (&optional prefer-roman)
+  ;; testcover: ok.
   "Insert a list item at the current point.
 
 The command can insert a new list or a continuing list.  When it is called at a
@@ -2614,84 +2527,135 @@ preceded by a blank line, it is hard to determine 
which type to use
 automatically.  The function uses alphabetical list by default.  If you want
 roman numerical list, just use a prefix to set PREFER-ROMAN."
   (interactive "P")
-  (beginning-of-line)
-  (if (looking-at (rst-re 'itmany-beg-1))
-      (rst-insert-list-continue (match-string 0) prefer-roman)
-    (rst-insert-list-new-item)))
+  (save-match-data
+    (1value
+     (rst-forward-line-strict 0))
+    ;; FIXME: Finds only tags in single line items. Multi-line items should be
+    ;;        considered as well.
+    ;; Using `rst-forward-line-looking-at' is more complicated so don't do it.
+    (if (looking-at (rst-re 'itmany-beg-1))
+       (rst-insert-list-continue
+        (buffer-substring-no-properties
+         (match-beginning 0) (match-beginning 1))
+        (match-string 1)
+        (buffer-substring-no-properties (match-end 1) (match-end 0))
+        prefer-roman)
+      (rst-insert-list-new-item))))
+
+;; FIXME: This is wrong because it misses prefixed lines without intervening
+;;        new line. See `rst-straighten-bullets-region-BUGS' and
+;;        `rst-find-begs-BUGS'.
+(defun rst-find-begs (beg end rst-re-beg)
+  ;; testcover: ok.
+  "Return the positions of begs in region BEG to END.
+RST-RE-BEG is a `rst-re' argument and matched at the beginning of
+a line.  Return a list of (POINT . COLUMN) where POINT gives the
+point after indentation and COLUMN gives its column.  The list is
+ordered by POINT."
+  (let (r)
+    (save-match-data
+      (save-excursion
+       ;; FIXME refactoring: Consider making this construct a macro looping
+       ;;                    over the lines.
+       (goto-char beg)
+       (1value
+        (rst-forward-line-strict 0))
+       (while (< (point) end)
+         (let ((clm (current-indentation)))
+           ;; FIXME refactoring: Consider using `rst-forward-line-looking-at'.
+           (when (and
+                  (looking-at (rst-re rst-re-beg)) ; Start found
+                  (not (rst-forward-line-looking-at
+                        -1 'lin-end
+                        #'(lambda (mtcd) ; Previous line exists and is...
+                            (and
+                             (not mtcd) ; non-empty,
+                             (<= (current-indentation) clm) ; less indented
+                             (not (and (= (current-indentation) clm)
+                                       ; not a beg at same level.
+                                       (looking-at (rst-re rst-re-beg)))))))))
+             (back-to-indentation)
+             (push (cons (point) clm) r)))
+         (1value ; At least one line is moved in this loop.
+          (rst-forward-line-strict 1 end)))))
+    (nreverse r)))
 
 (defun rst-straighten-bullets-region (beg end)
-  "Make all the bulleted list items in the region consistent.
-The region is specified between BEG and END.  You can use this
-after you have merged multiple bulleted lists to make them use
-the same/correct/consistent bullet characters.
-
-See variable `rst-preferred-bullets' for the list of bullets to
-adjust.  If bullets are found on levels beyond the
-`rst-preferred-bullets' list, they are not modified."
+  ;; testcover: ok.
+  "Make all the bulleted list items in the region from BEG to END consistent.
+Use this after you have merged multiple bulleted lists to make
+them use the preferred bullet characters given by
+`rst-preferred-bullets' for each level.  If bullets are found on
+levels beyond the `rst-preferred-bullets' list, they are not
+modified."
   (interactive "r")
-
-  (let ((bullets (rst-find-pfx-in-region beg end (rst-re 'bul-sta)))
-       (levtable (make-hash-table :size 4)))
-
-    ;; Create a map of levels to list of positions.
-    (dolist (x bullets)
-      (let ((key (cdr x)))
-       (puthash key
-                 (append (gethash key levtable (list))
-                         (list (car x)))
-                 levtable)))
-
-    ;; Sort this map and create a new map of prefix char and list of positions.
-    (let ((poslist ()))                 ; List of (indent . positions).
-      (maphash (lambda (x y) (push (cons x y) poslist)) levtable)
-
-      (let ((bullets rst-preferred-bullets))
-        (dolist (x (sort poslist 'car-less-than-car))
-          (when bullets
-            ;; Apply the characters.
-            (dolist (pos (cdr x))
-              (goto-char pos)
-              (delete-char 1)
-              (insert (string (car bullets))))
-            (setq bullets (cdr bullets))))))))
+  (save-excursion
+    (let (clm2pnts) ; Map a column to a list of points at this column.
+      (rst-destructuring-dolist
+         ((point &rest column
+                 &aux (found (assoc column clm2pnts)))
+          (rst-find-begs beg end 'bul-beg))
+       (if found
+           ;;; (push point (cdr found)) ; FIXME: Doesn't work with `testcover'.
+           (setcdr found (cons point (cdr found))) ; Synonym.
+         (push (list column point) clm2pnts)))
+      (rst-destructuring-dolist
+         ((bullet _clm &rest pnts)
+          ;; Zip preferred bullets and sorted columns associating a bullet
+          ;; with a column and all the points this column is found.
+          (cl-mapcar #'(lambda (bullet clm2pnt)
+                         (cons bullet clm2pnt))
+                     rst-preferred-bullets
+                     (sort clm2pnts #'car-less-than-car)))
+       ;; Replace the bullets by the preferred ones.
+       (dolist (pnt pnts)
+         (goto-char pnt)
+         ;; FIXME: Assumes bullet to replace is a single char.
+         (delete-char 1)
+         (insert bullet))))))
 
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Table of contents
 
 (defun rst-all-stn ()
-  "Return the hierarchical tree of section titles as a top level `rst-Stn'.
-Return nil for no section titles."
-  ;; FIXME: The top level node may contain the document title instead of nil.
+  ;; testcover: ok.
+  "Return the hierarchical tree of sections as a top level `rst-Stn'.
+Return value satisfies `rst-Stn-is-top' or is nil for no
+sections."
   (cdr (rst-remaining-stn (rst-all-ttls-with-level) -1)))
 
-(defun rst-remaining-stn (remaining lev)
-  "Process the first entry of REMAINING expected to be on level LEV.
-REMAINING is the remaining list of `rst-Ttl' entries.
-Return (UNPROCESSED . NODE) for the first entry of REMAINING.
-UNPROCESSED is the list of still unprocessed entries.  NODE is a
-`rst-Stn' or nil if REMAINING is empty."
-  (let ((ttl (car remaining))
-       (unprocessed remaining)
-        fnd children)
-    ;; If the current adornment matches expected level.
-    (when (and ttl (= (rst-Ttl-level ttl) lev))
-      ;; Consume the current entry and create the current node with it.
-      (setq unprocessed (cdr remaining))
-      (setq fnd ttl))
-    ;; Build the child nodes as long as they have deeper level.
-    (while (and unprocessed (> (rst-Ttl-level (car unprocessed)) lev))
-      (let* ((rem-child (rst-remaining-stn unprocessed (1+ lev)))
-            (child (cdr rem-child)))
-       (when child
-         (push child children))
-       (setq unprocessed (car rem-child))))
-    (setq children (reverse children))
-    (cons unprocessed
-         (if (or fnd children)
-             (rst-Stn-new fnd lev children)))))
+(defun rst-remaining-stn (unprocessed expected)
+  ;; testcover: ok.
+  "Process the first entry of UNPROCESSED expected to be on level EXPECTED.
+UNPROCESSED is the remaining list of (`rst-Ttl' . LEVEL) entries.
+Return (REMAINING . STN) for the first entry of UNPROCESSED.
+REMAINING is the list of still unprocessed entries.  STN is a
+`rst-Stn' or nil if UNPROCESSED is empty."
+  (if (not unprocessed)
+      (1value
+       (cons nil nil))
+    (cl-destructuring-bind
+       ((ttl &rest level) &rest next
+        &aux fnd children)
+       unprocessed
+      (when (= level expected)
+       ;; Consume the current entry and create the current node with it.
+       (setq fnd ttl)
+       (setq unprocessed next))
+      ;; Build the child nodes as long as they have deeper level.
+      (while (and unprocessed (> (cdar unprocessed) expected))
+       (cl-destructuring-bind (remaining &rest stn)
+           (rst-remaining-stn unprocessed (1+ expected))
+         (when stn
+           (push stn children))
+         (setq unprocessed remaining)))
+      (cons unprocessed
+           (when (or fnd children)
+             (rst-Stn-new fnd expected (nreverse children)))))))
 
 (defun rst-stn-containing-point (stn &optional point)
+  ;; testcover: ok.
   "Return `rst-Stn' in STN before POINT or nil if in no section.
 POINT defaults to the current point.  STN may be nil for no
 section headers at all."
@@ -2699,15 +2663,13 @@ section headers at all."
     (setq point (or point (point)))
     (when (>= point (rst-Stn-get-title-beginning stn))
       ;; Point may be in this section or a child.
-      (let ((children (rst-Stn-children stn))
-           found)
-       (while (and children
-                   (>= point (rst-Stn-get-title-beginning (car children))))
-         ;; Point may be in this child.
-         (setq found (car children)
-               children (cdr children)))
-       (if found
-           (rst-stn-containing-point found point)
+      (let ((in-child (cl-find-if
+                      #'(lambda (child)
+                          (>= point (rst-Stn-get-title-beginning child)))
+                      (rst-Stn-children stn)
+                      :from-end t)))
+       (if in-child
+           (rst-stn-containing-point in-child point)
          stn)))))
 
 (defgroup rst-toc nil
@@ -2729,7 +2691,7 @@ indentation style:
 - `plain': no numbering (fixed indentation)
 - `fixed': numbering, but fixed indentation
 - `aligned': numbering, titles aligned under each other
-- `listed': numbering, with dashes like list items (EXPERIMENTAL)"
+- `listed': titles as list items"
   :type '(choice (const plain)
                  (const fixed)
                  (const aligned)
@@ -2743,143 +2705,204 @@ indentation style:
   :group 'rst-toc)
 (rst-testcover-defcustom)
 
-;; FIXME: What does this mean?
-;; This is used to avoid having to change the user's mode.
-(defvar rst-toc-insert-click-keymap
-  (let ((map (make-sparse-keymap)))
-       (define-key map [mouse-1] 'rst-toc-mode-mouse-goto)
-       map)
-  "(Internal) What happens when you click on propertized text in the TOC.")
-
 (defcustom rst-toc-insert-max-level nil
   "If non-nil, maximum depth of the inserted TOC."
   :type '(choice (const nil) integer)
   :group 'rst-toc)
 (rst-testcover-defcustom)
 
-(defun rst-toc-insert (&optional pfxarg)
-  "Insert a text rendering of the table of contents of the current section.
+(defun rst-toc-insert (&optional max-level)
+  ;; testcover: ok.
+  "Insert the table of contents of the current section at the current column.
 By default the top level is ignored if there is only one, because
-we assume that the document will have a single title.
-
-If a numeric prefix argument PFXARG is given, insert the TOC up
-to the specified level.
-
-The TOC is inserted indented at the current column."
+we assume that the document will have a single title.  A numeric
+prefix argument MAX-LEVEL overrides `rst-toc-insert-max-level'.
+Text in the line beyond column is deleted."
   (interactive "P")
   (rst-reset-section-caches)
-  (let (;; Check maximum level override.
-       (rst-toc-insert-max-level
-        (if (and (integerp pfxarg) (> (prefix-numeric-value pfxarg) 0))
-            (prefix-numeric-value pfxarg) rst-toc-insert-max-level))
-       (pt-stn (rst-stn-containing-point (rst-all-stn)))
-       ;; Figure out initial indent.
-       (initial-indent (make-string (current-column) ? ))
-       (init-point (point)))
-    (when (and pt-stn (rst-Stn-children pt-stn))
-      (rst-toc-insert-node pt-stn 0 initial-indent "")
-      ;; FIXME: Really having the last newline would be better.
-      ;; Delete the last newline added.
-      (delete-char -1))))
-
-(defun rst-toc-insert-node (stn level indent pfx)
-  "Insert STN in table-of-contents.
-LEVEL is the depth level of the sections in the tree currently
-rendered.  INDENT is the indentation string.  PFX is the prefix
-numbering, that includes the alignment necessary for all the
-children of level to align."
-  ;; Note: we do child numbering from the parent, so we start number the
-  ;; children one level before we print them.
-  (when (> level 0)
-    (unless (> (current-column) 0)
-      ;; No indent yet - insert it.
-      (insert indent))
-    (let ((beg (point)))
-      (unless (equal rst-toc-insert-style 'plain)
-       (insert pfx rst-toc-insert-number-separator))
-      (insert (rst-Stn-get-text stn))
-      ;; Add properties to the text, even though in normal text mode it
-      ;; won't be doing anything for now.  Not sure that I want to change
-      ;; mode stuff.  At least the highlighting gives the idea that this
-      ;; is generated automatically.
-      (put-text-property beg (point) 'mouse-face 'highlight)
-      (put-text-property
-       beg (point) 'rst-toc-target
-       (set-marker (make-marker) (rst-Stn-get-title-beginning stn)))
-      (put-text-property beg (point) 'keymap rst-toc-insert-click-keymap))
+  (let ((pt-stn (rst-stn-containing-point (rst-all-stn))))
+    (when pt-stn
+      (let ((max
+            (if (and (integerp max-level)
+                     (> (prefix-numeric-value max-level) 0))
+                (prefix-numeric-value max-level)
+              rst-toc-insert-max-level))
+           (ind (current-column))
+           (buf (current-buffer))
+           (tabs indent-tabs-mode) ; Copy buffer local value.
+           txt)
+       (setq txt
+             ;; Render to temporary buffer so markers are created correctly.
+             (with-temp-buffer
+               (rst-toc-insert-tree pt-stn buf rst-toc-insert-style max
+                                    rst-toc-link-keymap nil)
+               (goto-char (point-min))
+               (when (rst-forward-line-strict 1)
+                 ;; There are lines to indent.
+                 (let ((indent-tabs-mode tabs))
+                   (indent-rigidly (point) (point-max) ind)))
+               (buffer-string)))
+       (unless (zerop (length txt))
+         ;; Delete possible trailing text.
+         (delete-region (point) (line-beginning-position 2))
+         (insert txt)
+         (backward-char 1))))))
+
+(defun rst-toc-insert-link (pfx stn buf keymap)
+  ;; testcover: ok.
+  "Insert text of STN in BUF as a linked section reference at point.
+If KEYMAP use this as keymap property.  PFX is inserted before text."
+  (let ((beg (point)))
+    (insert pfx)
+    (insert (rst-Stn-get-text stn))
+    (put-text-property beg (point) 'mouse-face 'highlight)
     (insert "\n")
-    ;; Prepare indent for children.
-    (setq indent
-         (cond
-          ((eq rst-toc-insert-style 'plain)
-           (concat indent (make-string rst-toc-indent ? )))
-          ((eq rst-toc-insert-style 'fixed)
-           (concat indent (make-string rst-toc-indent ? )))
-          ((eq rst-toc-insert-style 'aligned)
-           (concat indent (make-string (+ (length pfx) 2) ? )))
-          ((eq rst-toc-insert-style 'listed)
-           (concat (substring indent 0 -3)
-                   (concat (make-string (+ (length pfx) 2) ? ) " - "))))))
-  (when (or (eq rst-toc-insert-max-level nil)
-           (< level rst-toc-insert-max-level))
-    (let ((count 1)
-         fmt)
-      ;; Add a separating dot if there is already a prefix.
-      (when (> (length pfx) 0)
-       (string-match (rst-re "[ \t\n]*\\'") pfx)
-       (setq pfx (concat (replace-match "" t t pfx) ".")))
-      ;; Calculate the amount of space that the prefix will require
-      ;; for the numbers.
-      (when (rst-Stn-children stn)
-       (setq fmt
-             (format "%%-%dd"
-                     (1+ (floor (log (length (rst-Stn-children stn))
-                                     10))))))
-      (dolist (child (rst-Stn-children stn))
-       (rst-toc-insert-node child (1+ level) indent
-                            (concat pfx (format fmt count)))
-       (incf count)))))
+    (put-text-property
+     beg (point) 'rst-toc-target
+     (set-marker (make-marker) (rst-Stn-get-title-beginning stn) buf))
+    (when keymap
+      (put-text-property beg (point) 'keymap keymap))))
+
+(defun rst-toc-get-link (link-buf link-pnt)
+  ;; testcover: ok.
+  "Return the link from text property at LINK-PNT in LINK-BUF."
+  (let ((mrkr (get-text-property link-pnt 'rst-toc-target link-buf)))
+    (unless mrkr
+      (error "No section on this line"))
+    (unless (buffer-live-p (marker-buffer mrkr))
+      (error "Buffer for this section was killed"))
+    mrkr))
+
+(defconst rst-toc-link-keymap
+  (let ((map (make-sparse-keymap)))
+       (define-key map [mouse-1] 'rst-toc-mouse-follow-link)
+       map)
+  "Keymap used for links in TOC.")
+
+(defun rst-toc-insert-tree (stn buf style depth keymap tgt-stn)
+  ;; testcover: ok.
+  "Insert table of contents of tree below top node STN in buffer BUF.
+STYLE is the style to use and must be one of the symbols allowed
+for `rst-toc-insert-style'.  DEPTH is the maximum relative depth
+from STN to insert or nil for no maximum depth.  See
+`rst-toc-insert-link' for KEYMAP.  Return beginning of title line
+if TGT-STN is rendered or nil if not rendered or TGT-STN is nil.
+Just return nil if STN is nil."
+  (when stn
+    (rst-toc-insert-children (rst-Stn-children stn) buf style depth 0 "" keymap
+                            tgt-stn)))
+
+(defun rst-toc-insert-children (children buf style depth indent numbering
+                                        keymap tgt-stn)
+  ;; testcover: ok.
+  "In the current buffer at point insert CHILDREN in BUF to table of contents.
+See `rst-toc-insert-tree' for STYLE, DEPTH and TGT-STN.  See
+`rst-toc-insert-stn' for INDENT and NUMBERING.  See
+`rst-toc-insert-link' for KEYMAP."
+  (let ((count 1)
+       ;; Child numbering is done from the parent.
+       (num-fmt (format "%%%dd"
+                        (1+ (floor (log (1+ (length children)) 10)))))
+       fnd)
+    (when (not (equal numbering ""))
+      ;; Add separating dot to existing numbering.
+      (setq numbering (concat numbering ".")))
+    (dolist (child children fnd)
+      (setq fnd
+           (or (rst-toc-insert-stn child buf style depth indent
+                                   (concat numbering (format num-fmt count))
+                                   keymap tgt-stn) fnd))
+      (cl-incf count))))
+
+;; FIXME refactoring: Use `rst-Stn-buffer' instead of `buf'.
+(defun rst-toc-insert-stn (stn buf style depth indent numbering keymap tgt-stn)
+  ;; testcover: ok.
+  "In the current buffer at point insert STN in BUF into table of contents.
+See `rst-toc-insert-tree' for STYLE, DEPTH and TGT-STN.  INDENT
+is the indentation depth to use for STN.  NUMBERING is the prefix
+numbering for STN.  See `rst-toc-insert-link' for KEYMAP."
+  (when (or (not depth) (> depth 0))
+    (cl-destructuring-bind
+       (pfx add
+            &aux (fnd (when (and tgt-stn
+                                 (equal (rst-Stn-get-title-beginning stn)
+                                        (rst-Stn-get-title-beginning tgt-stn)))
+                        (point))))
+       (cond
+        ((eq style 'plain)
+         (list "" rst-toc-indent))
+        ((eq style 'fixed)
+         (list (concat numbering rst-toc-insert-number-separator)
+               rst-toc-indent))
+        ((eq style 'aligned)
+         (list (concat numbering rst-toc-insert-number-separator)
+               (+ (length numbering)
+                  (length rst-toc-insert-number-separator))))
+        ((eq style 'listed)
+         (list (format "%c " (car rst-preferred-bullets)) 2)))
+      ;; Indent using spaces so buffer characteristics like `indent-tabs-mode'
+      ;; do not matter.
+      (rst-toc-insert-link (concat (make-string indent ? ) pfx) stn buf keymap)
+      (or (rst-toc-insert-children (rst-Stn-children stn) buf style
+                                  (when depth
+                                    (1- depth))
+                                  (+ indent add) numbering keymap tgt-stn)
+         fnd))))
 
 (defun rst-toc-update ()
+  ;; testcover: ok.
   "Automatically find the contents section of a document and update.
 Updates the inserted TOC if present.  You can use this in your
 file-write hook to always make it up-to-date automatically."
   (interactive)
-  (save-excursion
-    ;; Find and delete an existing comment after the first contents directive.
-    ;; Delete that region.
-    (goto-char (point-min))
-    ;; We look for the following and the following only (in other words, if 
your
-    ;; syntax differs, this won't work.).
-    ;;
-    ;;   .. contents:: [...anything here...]
-    ;;      [:field: value]...
-    ;;   ..
-    ;;      XXXXXXXX
-    ;;      XXXXXXXX
-    ;;      [more lines]
-    (let ((beg (re-search-forward
-               (rst-re "^" 'exm-sta "contents" 'dcl-tag ".*\n"
-                       "\\(?:" 'hws-sta 'fld-tag ".*\n\\)*" 'exm-tag) nil t))
-         last-real)
-      (when beg
-       ;; Look for the first line that starts at the first column.
-       (forward-line 1)
-       (while (and
-               (< (point) (point-max))
-               (or (if (looking-at
-                        (rst-re 'hws-sta "\\S ")) ; indented content.
-                       (setq last-real (point)))
-                   (looking-at (rst-re 'lin-end)))) ; empty line.
-         (forward-line 1))
-       (if last-real
-           (progn
-             (goto-char last-real)
-             (end-of-line)
-             (delete-region beg (point)))
-         (goto-char beg))
-       (insert "\n    ")
-       (rst-toc-insert))))
+  (save-match-data
+    (save-excursion
+      ;; Find and delete an existing comment after the first contents
+      ;; directive.  Delete that region.
+      (goto-char (point-min))
+      ;; FIXME: Should accept indentation of the whole block.
+      ;; We look for the following and the following only (in other words, if
+      ;; your syntax differs, this won't work.).
+      ;;
+      ;;   .. contents:: [...anything here...]
+      ;;      [:field: value]...
+      ;;   ..
+      ;;      XXXXXXXX
+      ;;      XXXXXXXX
+      ;;      [more lines]
+      ;; FIXME: Works only for the first of these tocs.  There should be a
+      ;;        fixed text after the comment such as "RST-MODE ELECTRIC TOC".
+      ;;        May be parameters such as `max-level' should be appended.
+      (let ((beg (re-search-forward
+                 (1value
+                  (rst-re "^" 'exm-sta "contents" 'dcl-tag ".*\n"
+                          "\\(?:" 'hws-sta 'fld-tag ".*\n\\)*" 'exm-tag))
+                 nil t))
+           fnd)
+       (when
+           (and beg
+                (rst-forward-line-looking-at
+                 1 'lin-end
+                 #'(lambda (mtcd)
+                     (unless mtcd
+                       (rst-apply-indented-blocks
+                        (point) (point-max) (current-indentation)
+                        #'(lambda (count _in-first _in-sub in-super in-empty
+                                         _relind)
+                            (cond
+                             ((or (> count 1) in-super))
+                             ((not in-empty)
+                              (setq fnd (line-end-position))
+                              nil)))))
+                     t)))
+         (when fnd
+           (delete-region beg fnd))
+         (goto-char beg)
+         (insert "\n    ")
+         ;; FIXME: Ignores an `max-level' given to the original
+         ;;        `rst-toc-insert'. `max-level' could be rendered to the first
+         ;;        line.
+         (rst-toc-insert)))))
   ;; Note: always return nil, because this may be used as a hook.
   nil)
 
@@ -2891,58 +2914,26 @@ file-write hook to always make it up-to-date 
automatically."
 ;;         ;; Disable undo for the write file hook.
 ;;         (let ((buffer-undo-list t)) (rst-toc-update) ))
 
-(defalias 'rst-toc-insert-update 'rst-toc-update) ; backwards compat.
+;; Maintain an alias for compatibility.
+(defalias 'rst-toc-insert-update 'rst-toc-update)
 
-(defun rst-toc-node (stn buf target)
-  "Insert STN in the table-of-contents of buffer BUF.
-If TARGET is given and this call renders a `rst-Stn' at the same
-location return position of beginning of line.  Otherwise return
-nil."
-  (let ((beg (point))
-       fnd)
-    (if (or (not stn) (rst-Stn-is-top stn))
-       (progn
-         (insert (format "Table of Contents:\n"))
-         (put-text-property beg (point)
-                            'face (list '(background-color . "gray"))))
-      (when (and target
-                (equal (rst-Stn-get-title-beginning stn)
-                       (rst-Stn-get-title-beginning target)))
-       (setq fnd beg))
-      (insert (make-string (* rst-toc-indent (rst-Stn-level stn)) ? ))
-      (insert (rst-Stn-get-text stn))
-      ;; Highlight lines.
-      (put-text-property beg (point) 'mouse-face 'highlight)
-      (insert "\n")
-      ;; Add link on lines.
-      (put-text-property
-       beg (point) 'rst-toc-target
-       (set-marker (make-marker) (rst-Stn-get-title-beginning stn) buf)))
-    (when stn
-      (dolist (child (rst-Stn-children stn))
-       (setq fnd (or (rst-toc-node child buf target) fnd))))
-    fnd))
-
-(defvar rst-toc-buffer-name "*Table of Contents*"
+(defconst rst-toc-buffer-name "*Table of Contents*"
   "Name of the Table of Contents buffer.")
 
-(defvar rst-toc-return-wincfg nil
+(defvar-local rst-toc-mode-return-wincfg nil
   "Window configuration to which to return when leaving the TOC.")
 
 (defun rst-toc ()
-  "Display a table-of-contents.
-Finds all the section titles and their adornments in the
-file, and displays a hierarchically-organized list of the
-titles, which is essentially a table-of-contents of the
-document.
-
-The Emacs buffer can be navigated, and selecting a section
-brings the cursor in that section."
+  ;; testcover: ok.
+  "Display a table of contents for current buffer.
+Displays all section titles found in the current buffer in a
+hierarchical list. The resulting buffer can be navigated, and
+selecting a section title moves the cursor to that section."
   (interactive)
   (rst-reset-section-caches)
   (let* ((wincfg (list (current-window-configuration) (point-marker)))
          (sectree (rst-all-stn))
-        (target-node (rst-stn-containing-point sectree))
+        (target-stn (rst-stn-containing-point sectree))
         (target-buf (current-buffer))
          (buf (get-buffer-create rst-toc-buffer-name))
         target-pos)
@@ -2950,134 +2941,174 @@ brings the cursor in that section."
       (let ((inhibit-read-only t))
         (rst-toc-mode)
         (delete-region (point-min) (point-max))
-        (setq target-pos (rst-toc-node sectree target-buf target-node))))
+       ;; FIXME: Could use a customizable style.
+        (setq target-pos (rst-toc-insert-tree
+                         sectree target-buf 'plain nil nil target-stn))))
     (display-buffer buf)
     (pop-to-buffer buf)
-    (setq-local rst-toc-return-wincfg wincfg)
+    (setq rst-toc-mode-return-wincfg wincfg)
     (goto-char (or target-pos (point-min)))))
 
-(defun rst-toc-mode-find-section ()
-  "Get the section from text property at point."
-  (let ((pos (get-text-property (point) 'rst-toc-target)))
-    (unless pos
-      (error "No section on this line"))
-    (unless (buffer-live-p (marker-buffer pos))
-      (error "Buffer for this section was killed"))
-    pos))
+;; Maintain an alias for compatibility.
+(defalias 'rst-goto-section 'rst-toc-follow-link)
+
+(defun rst-toc-follow-link (link-buf link-pnt kill)
+  ;; testcover: ok.
+  "Follow the link to the section at LINK-PNT in LINK-BUF.
+LINK-PNT and LINK-BUF default to the point in the current buffer.
+With prefix argument KILL a TOC buffer is destroyed.  Throw an
+error if there is no working link at the given position."
+  (interactive "i\nd\nP")
+  (unless link-buf
+    (setq link-buf (current-buffer)))
+  ;; Do not catch errors from `rst-toc-get-link' because otherwise the error is
+  ;; suppressed and invisible in interactive use.
+  (let ((mrkr (rst-toc-get-link link-buf link-pnt)))
+    (condition-case nil
+       (rst-toc-mode-return kill)
+      ;; Catch errors when not in `toc-mode'.
+      (error nil))
+    (pop-to-buffer (marker-buffer mrkr))
+    (goto-char mrkr)
+    ;; FIXME: Should be a customizable number of lines from beginning or end of
+    ;;        window just like the argument to `recenter`. It would be ideal if
+    ;;        the adornment is always completely visible.
+    (recenter 5)))
+
+;; Maintain an alias for compatibility.
+(defalias 'rst-toc-mode-goto-section 'rst-toc-mode-follow-link-kill)
 
 ;; FIXME: Cursor before or behind the list must be handled properly; before the
 ;;        list should jump to the top and behind the list to the last normal
 ;;        paragraph.
-(defun rst-goto-section (&optional kill)
-  "Go to the section the current line describes.
-If KILL a TOC buffer is destroyed."
+(defun rst-toc-mode-follow-link-kill ()
+  ;; testcover: ok.
+  "Follow the link to the section at point and kill the TOC buffer."
   (interactive)
-  (let ((pos (rst-toc-mode-find-section)))
-    (when kill
-      ;; FIXME: This should rather go to `rst-toc-mode-goto-section'.
-      (set-window-configuration (car rst-toc-return-wincfg))
-      (kill-buffer (get-buffer rst-toc-buffer-name)))
-    (pop-to-buffer (marker-buffer pos))
-    (goto-char pos)
-    ;; FIXME: make the recentering conditional on scroll.
-    (recenter 5)))
+  (rst-toc-follow-link (current-buffer) (point) t))
 
-(defun rst-toc-mode-goto-section ()
-  "Go to the section the current line describes and kill the TOC buffer."
-  (interactive)
-  (rst-goto-section t))
+;; Maintain an alias for compatibility.
+(defalias 'rst-toc-mode-mouse-goto 'rst-toc-mouse-follow-link)
 
-(defun rst-toc-mode-mouse-goto (event)
+(defun rst-toc-mouse-follow-link (event kill)
+  ;; testcover: uncovered.
   "In `rst-toc' mode, go to the occurrence whose line you click on.
-EVENT is the input event."
-  (interactive "e")
-  (let ((pos
-        (with-current-buffer (window-buffer (posn-window (event-end event)))
-          (save-excursion
-            (goto-char (posn-point (event-end event)))
-             (rst-toc-mode-find-section)))))
-    (pop-to-buffer (marker-buffer pos))
-    (goto-char pos)
-    (recenter 5)))
+EVENT is the input event.  Kill TOC buffer if KILL."
+  (interactive "e\ni")
+  (rst-toc-follow-link (window-buffer (posn-window (event-end event)))
+                      (posn-point (event-end event)) kill))
+
+;; Maintain an alias for compatibility.
+(defalias 'rst-toc-mode-mouse-goto-kill 'rst-toc-mode-mouse-follow-link-kill)
 
-(defun rst-toc-mode-mouse-goto-kill (event)
-  "Same as `rst-toc-mode-mouse-goto', but kill TOC buffer as well.
+(defun rst-toc-mode-mouse-follow-link-kill (event)
+  ;; testcover: uncovered.
+  "Same as `rst-toc-mouse-follow-link', but kill TOC buffer as well.
 EVENT is the input event."
   (interactive "e")
-  (call-interactively 'rst-toc-mode-mouse-goto event)
-  (kill-buffer (get-buffer rst-toc-buffer-name)))
+  (rst-toc-mouse-follow-link event t))
+
+;; Maintain an alias for compatibility.
+(defalias 'rst-toc-quit-window 'rst-toc-mode-return)
+
+(defun rst-toc-mode-return (kill)
+  ;; testcover: ok.
+  "Leave the current TOC buffer and return to the previous environment.
+With prefix argument KILL non-nil, kill the buffer instead of
+burying it."
+  (interactive "P")
+  (unless rst-toc-mode-return-wincfg
+    (error "Not in a `toc-mode' buffer"))
+  (cl-destructuring-bind
+      (wincfg pos
+       &aux (toc-buf (current-buffer)))
+      rst-toc-mode-return-wincfg
+    (set-window-configuration wincfg)
+    (goto-char pos)
+    (if kill
+       (kill-buffer toc-buf)
+      (bury-buffer toc-buf))))
 
-(defun rst-toc-quit-window ()
-  "Leave the current TOC buffer."
+(defun rst-toc-mode-return-kill ()
+  ;; testcover: uncovered.
+  "Like `rst-toc-mode-return' but kill TOC buffer."
   (interactive)
-  (let ((retbuf rst-toc-return-wincfg))
-    (set-window-configuration (car retbuf))
-    (goto-char (cadr retbuf))))
+  (rst-toc-mode-return t))
 
 (defvar rst-toc-mode-map
   (let ((map (make-sparse-keymap)))
-    (define-key map [mouse-1] 'rst-toc-mode-mouse-goto-kill)
-    ;; FIXME: This very useful function must be on some key.
-    (define-key map [mouse-2] 'rst-toc-mode-mouse-goto)
-    (define-key map "\C-m" 'rst-toc-mode-goto-section)
-    (define-key map "f" 'rst-toc-mode-goto-section)
-    (define-key map "q" 'rst-toc-quit-window)
-    ;; FIXME: Killing should clean up like `rst-toc-quit-window' does.
-    (define-key map "z" 'kill-this-buffer)
+    (define-key map [mouse-1] #'rst-toc-mode-mouse-follow-link-kill)
+    (define-key map [mouse-2] #'rst-toc-mouse-follow-link)
+    (define-key map "\C-m" #'rst-toc-mode-follow-link-kill)
+    (define-key map "f" #'rst-toc-mode-follow-link-kill)
+    (define-key map "n" #'next-line)
+    (define-key map "p" #'previous-line)
+    (define-key map "q" #'rst-toc-mode-return)
+    (define-key map "z" #'rst-toc-mode-return-kill)
     map)
   "Keymap for `rst-toc-mode'.")
 
-(put 'rst-toc-mode 'mode-class 'special)
-
-;; Could inherit from the new `special-mode'.
-(define-derived-mode rst-toc-mode nil "ReST-TOC"
+(define-derived-mode rst-toc-mode special-mode "ReST-TOC"
   "Major mode for output from \\[rst-toc], the table-of-contents for the 
document.
-
 \\{rst-toc-mode-map}"
-  (setq buffer-read-only t))
+  ;; FIXME: `revert-buffer-function` must be defined so `revert-buffer` works
+  ;;        as expected for a special mode. In particular the referred buffer
+  ;;        needs to be rescanned and the TOC must be updated accordingly.
+  ;; FIXME: Should contain the name of the buffer this is the toc of.
+  (setq header-line-format "Table of Contents"))
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Section movement
 
-(defun rst-forward-section (&optional offset)
-  "Skip to the next reStructuredText section title.
-OFFSET specifies how many titles to skip.  Use a negative OFFSET
-to move backwards in the file (default is to use 1)."
-  (interactive)
+;; FIXME testcover: Use `testcover'. Mark up a function with sufficient test
+;;                  coverage by a comment tagged with `testcover' after the
+;;                  `defun'. Then move this comment.
+
+(defun rst-forward-section (offset)
+  "Jump forward OFFSET section titles ending up at the start of the title line.
+OFFSET defaults to 1 and may be negative to move backward.  An
+OFFSET of 0 does not move unless point is inside a title.  Go to
+end or beginning of buffer if no more section titles in the desired
+direction."
+  (interactive "p")
   (rst-reset-section-caches)
-  (let* ((offset (or offset 1))
-         (ttls (rst-all-ttls))
-         (curpos (line-beginning-position))
-         (cur ttls)
-         (idx 0)
-        ttl)
-
-    ;; Find the index of the "next" adornment with respect to the current line.
-    (while (and cur (< (rst-Ttl-get-title-beginning (car cur)) curpos))
-      (setq cur (cdr cur))
-      (incf idx))
-    ;; `cur' is the `rst-Ttl' on or following the current line.
-
-    (if (and (> offset 0) cur
-            (equal (rst-Ttl-get-title-beginning (car cur)) curpos))
-        (incf idx))
-
-    ;; Find the final index.
-    (setq idx (+ idx (if (> offset 0) (- offset 1) offset)))
-    (setq ttl (nth idx ttls))
+  (let* ((ttls (rst-all-ttls))
+        (count (length ttls))
+        (pnt (point))
+        (contained nil) ; Title contains point (or is after point otherwise).
+         (found (or (cl-position-if
+                    ;; Find a title containing or after point.
+                    #'(lambda (ttl)
+                        (let ((cmp (rst-Ttl-contains ttl pnt)))
+                          (cond
+                           ((= cmp 0) ; Title contains point.
+                            (setq contained t)
+                            t)
+                           ((> cmp 0) ; Title after point.
+                            t))))
+                    ttls)
+                   ;; Point after all titles.
+                   count))
+        (target (+ found offset
+                   ;; If point is in plain text found title is already one
+                   ;; step forward.
+                   (if (and (not contained) (>= offset 0)) -1 0))))
     (goto-char (cond
-               ((and ttl (>= idx 0))
-                (rst-Ttl-get-title-beginning ttl))
-               ((> offset 0)
+               ((< target 0)
+                (point-min))
+               ((>= target count)
                 (point-max))
-               ((point-min))))))
+               ((and (not contained) (= offset 0))
+                ;; Point not in title and should not move - do not move.
+                pnt)
+               ((rst-Ttl-get-title-beginning (nth target ttls)))))))
 
-(defun rst-backward-section ()
-  "Like `rst-forward-section', except move back one title."
-  (interactive)
-  (rst-forward-section -1))
+(defun rst-backward-section (offset)
+  "Like `rst-forward-section', except move backward by OFFSET."
+  (interactive "p")
+  (rst-forward-section (- offset)))
 
-;; FIXME: What is `allow-extend' for?
+;; FIXME: What is `allow-extend' for? See `mark-paragraph' for an explanation.
 (defun rst-mark-section (&optional count allow-extend)
   "Select COUNT sections around point.
 Mark following sections for positive COUNT or preceding sections
@@ -3110,16 +3141,18 @@ The line containing the start of the region is always 
considered
 spanned.  If the region ends at the beginning of a line this line
 is not considered spanned, otherwise it is spanned."
   (let (mincol)
-    (save-excursion
-      (goto-char beg)
-      (while (< (point) end)
-        (back-to-indentation)
-        (unless (looking-at (rst-re 'lin-end))
-         (setq mincol (if mincol
-                          (min mincol (current-column))
-                        (current-column))))
-        (forward-line 1)))
-    mincol))
+    (save-match-data
+      (save-excursion
+       (goto-char beg)
+       (1value
+        (rst-forward-line-strict 0))
+       (while (< (point) end)
+         (unless (looking-at (rst-re 'lin-end))
+           (setq mincol (if mincol
+                            (min mincol (current-indentation))
+                          (current-indentation))))
+         (rst-forward-line-strict 1 end)))
+      mincol)))
 
 ;; FIXME: At the moment only block comments with leading empty comment line are
 ;;        supported.  Comment lines with leading comment markup should be also
@@ -3183,7 +3216,7 @@ COLUMN is the column of the tab.  INNER is non-nil if 
this is an
 inner tab.  I.e. a tab which does come from the basic indentation
 and not from inner alignment points."
   (save-excursion
-    (forward-line 0)
+    (rst-forward-line-strict 0)
     (save-match-data
       (unless (looking-at (rst-re 'lin-end))
        (back-to-indentation)
@@ -3205,7 +3238,8 @@ and not from inner alignment points."
              (if (zerop rst-indent-field)
                  (push (list (match-end 2)
                              (if (string= (match-string 2) "") 1 0)
-                             t) tabs))))
+                             t)
+                        tabs))))
           ;; Directive.
           ((looking-at (rst-re 'dir-sta-3 '(:grp "\\S ") "?"))
            (push (list (match-end 1) 0 t) tabs)
@@ -3223,16 +3257,18 @@ and not from inner alignment points."
            (push (list (point) rst-indent-comment t) tabs)))
          ;; Start of literal block.
          (when (looking-at (rst-re 'lit-sta-2))
-           (let ((tab0 (first tabs)))
-             (push (list (first tab0)
-                         (+ (second tab0)
+           (cl-destructuring-bind (point offset _inner) (car tabs)
+             (push (list point
+                         (+ offset
                             (if (match-string 1)
                                 rst-indent-literal-minimized
                               rst-indent-literal-normal))
-                         t) tabs)))
-         (mapcar (lambda (tab)
-                   (goto-char (first tab))
-                   (cons (+ (current-column) (second tab)) (third tab)))
+                         t)
+                    tabs)))
+         (mapcar (cl-function
+                  (lambda ((point offset inner))
+                   (goto-char point)
+                   (cons (+ (current-column) offset) inner)))
                  tabs))))))
 
 (defun rst-compute-tabs (pt)
@@ -3242,38 +3278,35 @@ Return a list of tabs sorted by likeliness to continue 
writing
 like `rst-line-tabs'.  Nearer lines have generally a higher
 likeliness than farther lines.  Return nil if no tab is found in
 the text above."
+  ;; FIXME: See test `indent-for-tab-command-BUGS`.
   (save-excursion
     (goto-char pt)
     (let (leftmost ; Leftmost column found so far.
          innermost ; Leftmost column for inner tab.
          tablist)
-      (while (and (zerop (forward-line -1))
+      (while (and (rst-forward-line-strict -1)
                  (or (not leftmost)
                      (> leftmost 0)))
-       (let* ((tabs (rst-line-tabs))
-              (leftcol (if tabs (apply 'min (mapcar 'car tabs)))))
+       (let ((tabs (rst-line-tabs)))
          (when tabs
-           ;; Consider only lines indented less or same if not INNERMOST.
-           (when (or (not leftmost)
-                     (< leftcol leftmost)
-                     (and (not innermost) (= leftcol leftmost)))
-             (dolist (tab tabs)
-               (let ((inner (cdr tab))
-                     (newcol (car tab)))
-                 (when (and
-                        (or
-                         (and (not inner)
-                              (or (not leftmost)
-                                  (< newcol leftmost)))
-                         (and inner
-                              (or (not innermost)
-                                  (< newcol innermost))))
-                        (not (memq newcol tablist)))
-                   (push newcol tablist))))
-             (setq innermost (if (rst-some (mapcar 'cdr tabs)) ; Has inner.
-                                 leftcol
-                               innermost))
-             (setq leftmost leftcol)))))
+           (let ((leftcol (apply #'min (mapcar #'car tabs))))
+             ;; Consider only lines indented less or same if not INNERMOST.
+             (when (or (not leftmost)
+                       (< leftcol leftmost)
+                       (and (not innermost) (= leftcol leftmost)))
+               (rst-destructuring-dolist ((column &rest inner) tabs)
+                 (when (or
+                        (and (not inner)
+                             (or (not leftmost)
+                                 (< column leftmost)))
+                        (and inner
+                             (or (not innermost)
+                                 (< column innermost))))
+                   (setq tablist (cl-adjoin column tablist))))
+               (setq innermost (if (cl-some #'cdr tabs) ; Has inner.
+                                   leftcol
+                                 innermost))
+               (setq leftmost leftcol))))))
       (nreverse tablist))))
 
 (defun rst-indent-line (&optional dflt)
@@ -3291,7 +3324,7 @@ relative to the content."
         (cur (current-indentation))
         (clm (current-column))
         (tabs (rst-compute-tabs (point)))
-        (fnd (rst-position cur tabs))
+        (fnd (cl-position cur tabs :test #'equal))
         ind)
     (if (and (not tabs) (not dflt))
        'noindent
@@ -3315,7 +3348,9 @@ Shift by one tab to the right (CNT > 0) or left (CNT < 0) 
or
 remove all indentation (CNT = 0).  A tab is taken from the text
 above.  If no suitable tab is found `rst-indent-width' is used."
   (interactive "r\np")
-  (let ((tabs (sort (rst-compute-tabs beg) (lambda (x y) (<= x y))))
+  (let ((tabs (sort (rst-compute-tabs beg)
+                   #'(lambda (x y)
+                       (<= x y))))
        (leftmostcol (rst-find-leftmost-column beg end)))
     (when (or (> leftmostcol 0) (> cnt 0))
       ;; Apply the indent.
@@ -3324,17 +3359,15 @@ above.  If no suitable tab is found `rst-indent-width' 
is used."
        (if (zerop cnt)
           (- leftmostcol)
         ;; Find the next tab after the leftmost column.
-        (let* ((cmp (if (> cnt 0) '> '<))
+        (let* ((cmp (if (> cnt 0) #'> #'<))
                (tabs (if (> cnt 0) tabs (reverse tabs)))
                (len (length tabs))
-               (dir (rst-signum cnt)) ; Direction to take.
+               (dir (cl-signum cnt)) ; Direction to take.
                (abs (abs cnt)) ; Absolute number of steps to take.
                ;; Get the position of the first tab beyond leftmostcol.
-               (fnd (lexical-let ((cmp cmp)
-                                  (leftmostcol leftmostcol)) ;; Create closure.
-                      (rst-position-if (lambda (elt)
-                                         (funcall cmp elt leftmostcol))
-                                       tabs)))
+               (fnd (cl-position-if #'(lambda (elt)
+                                        (funcall cmp elt leftmostcol))
+                                      tabs))
                ;; Virtual position of tab.
                (pos (+ (or fnd len) (1- abs)))
                (tab (if (< pos len)
@@ -3357,20 +3390,21 @@ above.  If no suitable tab is found `rst-indent-width' 
is used."
 (defun rst-adaptive-fill ()
   "Return fill prefix found at point.
 Value for `adaptive-fill-function'."
-  (let ((fnd (if (looking-at adaptive-fill-regexp)
-                (match-string-no-properties 0))))
-    (if (save-match-data
-         (not (string-match comment-start-skip fnd)))
-       ;; An non-comment prefix is fine.
-       fnd
-      ;; Matches a comment - return whitespace instead.
-      (make-string (-
-                   (save-excursion
-                     (goto-char (match-end 0))
-                     (current-column))
-                   (save-excursion
-                     (goto-char (match-beginning 0))
-                     (current-column))) ? ))))
+  (save-match-data
+    (let ((fnd (if (looking-at adaptive-fill-regexp)
+                  (match-string-no-properties 0))))
+      (if (save-match-data
+           (not (string-match comment-start-skip fnd)))
+         ;; An non-comment prefix is fine.
+         fnd
+       ;; Matches a comment - return whitespace instead.
+       (make-string (-
+                     (save-excursion
+                       (goto-char (match-end 0))
+                       (current-column))
+                     (save-excursion
+                       (goto-char (match-beginning 0))
+                       (current-column))) ? )))))
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Comments
@@ -3406,10 +3440,9 @@ Region is from BEG to END.  Uncomment if ARG."
     (if (consp arg)
        (rst-uncomment-region beg end arg)
       (goto-char beg)
+      (rst-forward-line-strict 0)
       (let ((ind (current-indentation))
-           bol)
-       (forward-line 0)
-       (setq bol (point))
+           (bol (point)))
        (indent-rigidly bol end rst-indent-comment)
        (goto-char bol)
        (open-line 1)
@@ -3420,14 +3453,13 @@ Region is from BEG to END.  Uncomment if ARG."
   "Uncomment the current region.
 Region is from BEG to END.  _ARG is ignored"
   (save-excursion
-    (let (bol eol)
-      (goto-char beg)
-      (forward-line 0)
-      (setq bol (point))
-      (forward-line 1)
-      (setq eol (point))
-      (indent-rigidly eol end (- rst-indent-comment))
-      (delete-region bol eol))))
+    (goto-char beg)
+    (rst-forward-line-strict 0)
+    (let ((bol (point)))
+      (rst-forward-line-strict 1 end)
+      (indent-rigidly (point) end (- rst-indent-comment))
+      (goto-char bol)
+      (rst-delete-entire-line 0))))
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Apply to indented block
@@ -3445,95 +3477,94 @@ containing or after BEG and indented to IND.  After the 
first
 line the indented block may contain more lines with same
 indentation (the paragraph) followed by empty lines and lines
 more indented (the sub-blocks).  A following line indented to IND
-starts the next indented block.  A line with less indentation
-than IND terminates the current indented block.  Such lines and
-all following lines not indented to IND are skipped.  FUN is
-applied to unskipped lines like this
-
-  (FUN COUNT FIRSTP SUBP EMPTYP RELIND LASTRET)
-
-COUNT is 0 before the first indented block and increments for
-every indented block found.
-
-FIRSTP is t when this is the first line of the paragraph.
-
-SUBP is t when this line is part of a sub-block.
-
-EMPTYP is t when this line is empty.
-
-RELIND is nil for an empty line, 0 for a line indented to IND,
-and the number of columns more indented otherwise.
-
-LASTRET is the return value of FUN returned by the last
-invocation for the same indented block or nil for the first
-invocation.
-
-When FUN is called point is immediately behind indentation of
-that line.  FUN may change everything as long as a marker at END
-is handled correctly by the change.
-
-Return the return value of the last invocation of FUN or nil if
-FUN was never called."
-  (let (lastret
-       subp
-       skipping
-       nextm
-       (count 0) ; Before first indented block
-       (endm (copy-marker end t)))
-    (save-excursion
-      (goto-char beg)
-      (while (< (point) endm)
-       (save-excursion
-         (setq nextm (save-excursion
-                       (forward-line 1)
-                       (copy-marker (point) t)))
+starts the next paragraph.  A non-empty line with less
+indentation than IND terminates the current paragraph.  FUN is
+applied to each line like this
+
+  (FUN COUNT IN-FIRST IN-SUB IN-SUPER IN-EMPTY RELIND)
+
+COUNT is 0 before the first paragraph and increments for every
+paragraph found on level IND.  IN-FIRST is non-nil if this is the
+first line of such a paragraph.  IN-SUB is non-nil if this line
+is part of a sub-block while IN-SUPER is non-nil of this line is
+part of a less indented block (super-block).  IN-EMPTY is non-nil
+if this line is empty where an empty line is considered being
+part of the previous block.  RELIND is nil for an empty line, 0
+for a line indented to IND, and the positive or negative number
+of columns more or less indented otherwise.  When FUN is called
+point is immediately behind indentation of that line.  FUN may
+change everything as long as a marker at END and at the beginning
+of the following line is handled correctly by the change.  A
+non-nil return value from FUN breaks the loop and is returned.
+Otherwise return nil."
+  (let ((endm (copy-marker end t))
+       (count 0) ; Before first indented block.
+       (nxt (when (< beg end)
+              (copy-marker beg t)))
+       (broken t)
+       in-sub in-super stop)
+    (save-match-data
+      (save-excursion
+       (while (and (not stop) nxt)
+         (set-marker
+          (goto-char nxt) nil)
+         (setq nxt (save-excursion
+                     ;; FIXME refactoring: Replace `(forward-line)
+                     ;;                    (back-to-indentation)` by
+                     ;;                    `(forward-to-indentation)`
+                     (when (and (rst-forward-line-strict 1 endm)
+                                (< (point) endm))
+                       (copy-marker (point) t))))
          (back-to-indentation)
-         (let (firstp
-               emptyp
-               (relind (- (current-column) ind)))
+         (let ((relind (- (current-indentation) ind))
+               (in-empty (looking-at (rst-re 'lin-end)))
+               in-first)
            (cond
-            ((looking-at (rst-re 'lin-end))
-             (setq emptyp t)
-             (setq relind nil)
-             ;; Breaks indented block if one is started
-             (setq subp (not (zerop count))))
-            ((< relind 0) ; Less indented
-             (setq skipping t))
-            ((zerop relind) ; In indented block
-             (when (or subp skipping (zerop count))
-               (setq firstp t)
-               (incf count))
-             (setq subp nil)
-             (setq skipping nil))
-            (t ; More indented
-             (setq subp t)))
-           (unless skipping
-             (setq lastret
-                   (funcall fun count firstp subp emptyp relind lastret)))))
-       (goto-char nextm))
-      lastret)))
+            (in-empty
+             (setq relind nil))
+            ((< relind 0)
+             (setq in-sub nil)
+             (setq in-super t))
+            ((> relind 0)
+             (setq in-sub t)
+             (setq in-super nil))
+            (t ; Non-empty line in indented block.
+             (when (or broken in-sub in-super)
+               (setq in-first t)
+               (cl-incf count))
+             (setq in-sub nil)
+             (setq in-super nil)))
+           (save-excursion
+             (setq
+              stop
+              (funcall fun count in-first in-sub in-super in-empty relind)))
+           (setq broken in-empty)))
+       (set-marker endm nil)
+       stop))))
 
 (defun rst-enumerate-region (beg end all)
   "Add enumeration to all the leftmost paragraphs in the given region.
 The region is specified between BEG and END.  With ALL,
 do all lines instead of just paragraphs."
   (interactive "r\nP")
-  (let ((enum 0))
+  (let ((enum 0)
+       (indent ""))
     (rst-apply-indented-blocks
      beg end (rst-find-leftmost-column beg end)
-     (lambda (count firstp subp emptyp relind lastret)
-       (cond
-       (emptyp)
-       ((zerop count))
-       (subp
-        (insert lastret))
-       ((or firstp all)
-        (let ((ins (format "%d. " (incf enum))))
-          (setq lastret (make-string (length ins) ?\ ))
-          (insert ins)))
-       (t
-        (insert lastret)))
-       lastret))))
+     #'(lambda (count in-first in-sub in-super in-empty _relind)
+        (cond
+         (in-empty)
+         (in-super)
+         ((zerop count))
+         (in-sub
+          (insert indent))
+         ((or in-first all)
+          (let ((tag (format "%d. " (cl-incf enum))))
+            (setq indent (make-string (length tag) ? ))
+            (insert tag)))
+         (t
+          (insert indent)))
+        nil))))
 
 ;; FIXME: Does not deal with deeper indentation - although
 ;;        `rst-apply-indented-blocks' could.
@@ -3544,21 +3575,22 @@ do all lines instead of just paragraphs."
   (interactive "r\nP")
   (unless rst-preferred-bullets
     (error "No preferred bullets defined"))
-  (let ((bul (format "%c " (car rst-preferred-bullets)))
-       (cont "  "))
+  (let* ((bul (format "%c " (car rst-preferred-bullets)))
+        (indent (make-string (length bul) ? )))
     (rst-apply-indented-blocks
      beg end (rst-find-leftmost-column beg end)
-     (lambda (count firstp subp emptyp relind lastret)
-       (cond
-       (emptyp)
-       ((zerop count))
-       (subp
-        (insert cont))
-       ((or firstp all)
-        (insert bul))
-       (t
-        (insert cont)))
-       nil))))
+     #'(lambda (count in-first in-sub in-super in-empty _relind)
+        (cond
+         (in-empty)
+         (in-super)
+         ((zerop count))
+         (in-sub
+          (insert indent))
+         ((or in-first all)
+          (insert bul))
+         (t
+          (insert indent)))
+        nil))))
 
 ;; FIXME: Does not deal with a varying number of digits appropriately.
 ;; FIXME: Does not deal with multiple levels independently.
@@ -3567,19 +3599,19 @@ do all lines instead of just paragraphs."
   "Convert the bulleted and enumerated items in the region to enumerated lists.
 Renumber as necessary.  Region is from BEG to END."
   (interactive "r")
-  (let* (;; Find items and convert the positions to markers.
-        (items (mapcar
-                (lambda (x)
-                  (cons (copy-marker (car x))
-                        (cdr x)))
-                (rst-find-pfx-in-region beg end (rst-re 'itmany-sta-1))))
-        (count 1))
-    (save-excursion
-      (dolist (x items)
-       (goto-char (car x))
-       (looking-at (rst-re 'itmany-beg-1))
-       (replace-match (format "%d." count) nil nil nil 1)
-       (incf count)))))
+  (let ((count 1))
+    (save-match-data
+      (save-excursion
+       (dolist (marker (mapcar
+                        (cl-function
+                         (lambda ((pnt &rest clm))
+                           (copy-marker pnt)))
+                        (rst-find-begs beg end 'itmany-beg-1)))
+         (set-marker
+          (goto-char marker) nil)
+         (looking-at (rst-re 'itmany-beg-1))
+         (replace-match (format "%d." count) nil nil nil 1)
+         (cl-incf count))))))
 
 (defun rst-line-block-region (beg end &optional with-empty)
   "Add line block prefixes for a region.
@@ -3588,10 +3620,11 @@ Region is from BEG to END.  With WITH-EMPTY prefix 
empty lines too."
   (let ((ind (rst-find-leftmost-column beg end)))
     (rst-apply-indented-blocks
      beg end ind
-     (lambda (count firstp subp emptyp relind lastret)
-       (when (or with-empty (not emptyp))
-        (move-to-column ind t)
-        (insert "| "))))))
+     #'(lambda (_count _in-first _in-sub in-super in-empty _relind)
+        (when (and (not in-super) (or with-empty (not in-empty)))
+          (move-to-column ind t)
+          (insert "| "))
+        nil))))
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -4040,14 +4073,16 @@ Return nil if not or a cons with new values for BEG / 
END"
     (if (or nbeg nend)
        (cons (or nbeg beg) (or nend end)))))
 
+;; FIXME refactoring: Use `rst-forward-line-strict' instead.
 (defun rst-forward-line (&optional n)
   "Like `forward-line' but always end up in column 0 and return accordingly.
 Move N lines forward just as `forward-line'."
-  (let ((moved (forward-line n)))
+  (let ((left (forward-line n)))
     (if (bolp)
-       moved
+       left
+      ;; FIXME: This may move back for positive n - is this desired?
       (forward-line 0)
-      (- moved (rst-signum n)))))
+      (- left (cl-signum n)))))
 
 ;; FIXME: If a single line is made a section header by `rst-adjust' the header
 ;;        is not always fontified immediately.
@@ -4068,77 +4103,74 @@ Return extended point or nil if not moved."
   ;; The second group consists of the adornment cases.
   (if (not (get-text-property pt 'font-lock-multiline))
       ;; Move only if we don't start inside a multiline construct already.
-      (save-excursion
-       (let (;; Non-empty non-indented line, explicit markup tag or literal
-             ;; block tag.
-             (stop-re (rst-re '(:alt "[^ \t\n]"
-                                     (:seq hws-tag exm-tag)
-                                     (:seq ".*" dcl-tag lin-end)))))
-         ;; The comments below are for dir == -1 / dir == 1.
-         (goto-char pt)
-         (forward-line 0)
-         (setq pt (point))
-         (while (and (not (looking-at stop-re))
-                     (zerop (rst-forward-line dir)))) ; try previous / next
-                                                      ; line if it exists.
-         (if (looking-at (rst-re 'ado-beg-2-1)) ; may be an underline /
-                                                ; overline.
-             (if (zerop (rst-forward-line dir))
-                 (if (looking-at (rst-re 'ttl-beg-1)) ; title found, i.e.
-                                                      ; underline / overline
-                                                      ; found.
-                     (if (zerop (rst-forward-line dir))
-                         (if (not
-                              (looking-at (rst-re 'ado-beg-2-1))) ; no
-                                                                  ; overline /
-                                                                  ; underline.
-                             (rst-forward-line (- dir)))) ; step back to title
-                                                          ; / adornment.
-                   (if (< dir 0) ; keep downward adornment.
-                       (rst-forward-line (- dir))))) ; step back to adornment.
-           (if (looking-at (rst-re 'ttl-beg-1)) ; may be a title.
+      (save-match-data
+       (save-excursion
+         (let ( ; Non-empty non-indented line, explicit markup tag or literal
+                ; block tag.
+               (stop-re (rst-re '(:alt "[^ \t\n]"
+                                       (:seq hws-tag exm-tag)
+                                       (:seq ".*" dcl-tag lin-end)))))
+           ;; The comments below are for dir == -1 / dir == 1.
+           (goto-char pt)
+           (rst-forward-line-strict 0)
+           (setq pt (point))
+           (while (and (not (looking-at stop-re))
+                       (zerop (rst-forward-line dir)))) ; try previous / next
+                                                        ; line if it exists.
+           (if (looking-at (rst-re 'ado-beg-2-1)) ; may be an underline /
+                                                  ; overline.
                (if (zerop (rst-forward-line dir))
-                   (if (not
-                        (looking-at (rst-re 'ado-beg-2-1))) ; no overline /
-                                                            ; underline.
-                       (rst-forward-line (- dir)))))) ; step back to line.
-         (if (not (= (point) pt))
-             (point))))))
+                   (if (looking-at (rst-re 'ttl-beg-1)) ; title found, i.e.
+                                                        ; underline / overline
+                                                        ; found.
+                       (if (zerop (rst-forward-line dir))
+                           (if (not
+                                (looking-at (rst-re 'ado-beg-2-1))) ; no
+                                                                    ; overline
+                                                                    ; /
+                                                                    ; 
underline.
+                               (rst-forward-line (- dir)))) ; step back to
+                                                            ; title /
+                                                            ; adornment.
+                     (if (< dir 0) ; keep downward adornment.
+                         (rst-forward-line (- dir))))) ; step back to 
adornment.
+             (if (looking-at (rst-re 'ttl-beg-1)) ; may be a title.
+                 (if (zerop (rst-forward-line dir))
+                     (if (not
+                          (looking-at (rst-re 'ado-beg-2-1))) ; no overline /
+                                                              ; underline.
+                         (rst-forward-line (- dir)))))) ; step back to line.
+           (if (not (= (point) pt))
+               (point)))))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Indented blocks
 
 (defun rst-forward-indented-block (&optional column limit)
+  ;; testcover: ok.
   "Move forward across one indented block.
-Find the next non-empty line which is not indented at least to COLUMN (defaults
-to the column of the point).  Moves point to first character of this line or 
the
-first empty line immediately before it and returns that position.  If there is
-no such line before LIMIT (defaults to the end of the buffer) returns nil and
-point is not moved."
-  (interactive)
-  (let ((clm (or column (current-column)))
-       (start (point))
-       fnd beg cand)
-    (if (not limit)
-       (setq limit (point-max)))
-    (save-match-data
-      (while (and (not fnd) (< (point) limit))
-       (forward-line 1)
-       (when (< (point) limit)
-         (setq beg (point))
-         (if (looking-at (rst-re 'lin-end))
-             (setq cand (or cand beg)) ; An empty line is a candidate.
-           (move-to-column clm)
-           ;; FIXME: No indentation [(zerop clm)] must be handled in some
-           ;;        useful way - though it is not clear what this should mean
-           ;;        at all.
-           (if (string-match
-                (rst-re 'linemp-tag)
-                (buffer-substring-no-properties beg (point)))
-               (setq cand nil) ; An indented line resets a candidate.
-             (setq fnd (or cand beg)))))))
-    (goto-char (or fnd start))
-    fnd))
+Find the next (i.e. excluding the current line) non-empty line
+which is not indented at least to COLUMN (defaults to the column
+of the point).  Move point to first character of this line or the
+first of the empty lines immediately before it and return that
+position.  If there is no such line before LIMIT (defaults to the
+end of the buffer) return nil and do not move point."
+  (let (fnd candidate)
+    (setq fnd (rst-apply-indented-blocks
+              (line-beginning-position 2) ; Skip the current line
+              (or limit (point-max)) (or column (current-column))
+              #'(lambda (_count _in-first _in-sub in-super in-empty _relind)
+                  (cond
+                   (in-empty
+                    (setq candidate (or candidate (line-beginning-position)))
+                    nil)
+                   (in-super
+                    (or candidate (line-beginning-position)))
+                   (t ; Non-empty, same or more indented line.
+                    (setq candidate nil)
+                    nil)))))
+    (when fnd
+      (goto-char fnd))))
 
 (defvar rst-font-lock-find-unindented-line-begin nil
   "Beginning of the match if `rst-font-lock-find-unindented-line-end'.")
@@ -4156,42 +4188,43 @@ IND-PNT is non-nil but not a number take the 
indentation from the
 next non-empty line if this is indented more than the current one."
   (setq rst-font-lock-find-unindented-line-begin ind-pnt)
   (setq rst-font-lock-find-unindented-line-end
-       (save-excursion
-         (when (not (numberp ind-pnt))
-           ;; Find indentation point in next line if any.
-           (setq ind-pnt
-                 ;; FIXME: Should be refactored to two different functions
-                 ;;        giving their result to this function, may be
-                 ;;        integrated in caller.
-                 (save-match-data
-                   (let ((cur-ind (current-indentation)))
-                     (if (eq ind-pnt 'next)
-                         (when (and (zerop (forward-line 1))
-                                    (< (point) (point-max)))
-                           ;; Not at EOF.
-                           (setq rst-font-lock-find-unindented-line-begin
-                                 (point))
-                           (when (and (not (looking-at (rst-re 'lin-end)))
-                                      (> (current-indentation) cur-ind))
+       (save-match-data
+         (save-excursion
+           (when (not (numberp ind-pnt))
+             ;; Find indentation point in next line if any.
+             (setq ind-pnt
+                   ;; FIXME: Should be refactored to two different functions
+                   ;;        giving their result to this function, may be
+                   ;;        integrated in caller.
+                   (save-match-data
+                     (let ((cur-ind (current-indentation)))
+                       (if (eq ind-pnt 'next)
+                           (when (and (rst-forward-line-strict 1 (point-max))
+                                      (< (point) (point-max)))
+                             ;; Not at EOF.
+                             (setq rst-font-lock-find-unindented-line-begin
+                                   (point))
+                             (when (and (not (looking-at (rst-re 'lin-end)))
+                                        (> (current-indentation) cur-ind))
                                ;; Use end of indentation if non-empty line.
                                (looking-at (rst-re 'hws-tag))
                                (match-end 0)))
-                       ;; Skip until non-empty line or EOF.
-                       (while (and (zerop (forward-line 1))
-                                   (< (point) (point-max))
-                                   (looking-at (rst-re 'lin-end))))
-                       (when (< (point) (point-max))
-                         ;; Not at EOF.
-                         (setq rst-font-lock-find-unindented-line-begin
-                               (point))
-                         (when (> (current-indentation) cur-ind)
-                           ;; Indentation bigger than line of departure.
-                           (looking-at (rst-re 'hws-tag))
-                           (match-end 0))))))))
-         (when ind-pnt
-           (goto-char ind-pnt)
-           (or (rst-forward-indented-block nil (point-max))
-               (point-max))))))
+                         ;; Skip until non-empty line or EOF.
+                         (while (and (rst-forward-line-strict 1 (point-max))
+                                     (< (point) (point-max))
+                                     (looking-at (rst-re 'lin-end))))
+                         (when (< (point) (point-max))
+                           ;; Not at EOF.
+                           (setq rst-font-lock-find-unindented-line-begin
+                                 (point))
+                           (when (> (current-indentation) cur-ind)
+                             ;; Indentation bigger than line of departure.
+                             (looking-at (rst-re 'hws-tag))
+                             (match-end 0))))))))
+           (when ind-pnt
+             (goto-char ind-pnt)
+             (or (rst-forward-indented-block nil (point-max))
+                 (point-max)))))))
 
 (defun rst-font-lock-find-unindented-line-match (_limit)
   "Set the match found earlier if match were found.
@@ -4359,33 +4392,31 @@ select the alternative tool-set."
   (interactive "P")
   ;; Note: maybe we want to check if there is a Makefile too and not do 
anything
   ;; if that is the case.  I dunno.
-  (let* ((toolset (cdr (assq (if use-alt
-                                rst-compile-secondary-toolset
-                              rst-compile-primary-toolset)
-                       rst-compile-toolsets)))
-         (command (car toolset))
-         (extension (cadr toolset))
-         (options (caddr toolset))
-         (conffile (rst-compile-find-conf))
-         (bufname (file-name-nondirectory buffer-file-name))
-         (outname (file-name-sans-extension bufname)))
-
+  (cl-destructuring-bind
+      (command extension options
+       &aux (conffile (rst-compile-find-conf))
+       (bufname (file-name-nondirectory buffer-file-name)))
+      (cdr (assq (if use-alt
+                    rst-compile-secondary-toolset
+                  rst-compile-primary-toolset)
+                rst-compile-toolsets))
     ;; Set compile-command before invocation of compile.
     (setq-local
      compile-command
-     (mapconcat 'identity
-               (list command
-                     (or options "")
-                     (if conffile
-                         (concat "--config=" (shell-quote-argument conffile))
-                       "")
-                     (shell-quote-argument bufname)
-                     (shell-quote-argument (concat outname extension)))
-               " "))
-
+     (mapconcat
+      #'identity
+      (list command
+           (or options "")
+           (if conffile
+               (concat "--config=" (shell-quote-argument conffile))
+             "")
+           (shell-quote-argument bufname)
+           (shell-quote-argument (concat (file-name-sans-extension bufname)
+                                         extension)))
+      " "))
     ;; Invoke the compile command.
     (if (or compilation-read-command use-alt)
-        (call-interactively 'compile)
+        (call-interactively #'compile)
       (compile compile-command))))
 
 (defun rst-compile-alt-toolset ()
@@ -4443,6 +4474,10 @@ buffer, if the region is not selected."
 
 ;; FIXME: Add `rst-compile-html-preview'.
 
+;; FIXME: Add support for `restview` (http://mg.pov.lt/restview/). May be a
+;;        more general facility for calling commands on a reST file would make
+;;        sense.
+
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Imenu support
@@ -4470,12 +4505,12 @@ buffer, if the region is not selected."
     ;;        become visible even for long title lines. May be an additional
     ;;        level number is also useful.
     (setq name (format "%s%s%s" pfx txt sfx))
-    (cons name ;; The name of the entry.
+    (cons name ; The name of the entry.
          (if children
-             (cons ;; The entry has a submenu.
-              (cons name pos) ;; The entry itself.
-              (mapcar 'rst-imenu-convert-cell children)) ;; The children.
-           pos)))) ;; The position of a plain entry.
+             (cons ; The entry has a submenu.
+              (cons name pos) ; The entry itself.
+              (mapcar #'rst-imenu-convert-cell children)) ; The children.
+           pos)))) ; The position of a plain entry.
 
 ;; FIXME: Document title and subtitle need to be handled properly. They should
 ;;        get an own "Document" top level entry.
@@ -4485,7 +4520,7 @@ Return as described for `imenu--index-alist'."
   (rst-reset-section-caches)
   (let ((root (rst-all-stn)))
     (when root
-      (mapcar 'rst-imenu-convert-cell (rst-Stn-children root)))))
+      (mapcar #'rst-imenu-convert-cell (rst-Stn-children root)))))
 
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -4504,7 +4539,7 @@ cand replace with char: ")
         (setq found (1+ found))
         (goto-char (match-beginning 1))
         (let ((width (current-column)))
-          (rst-delete-entire-line)
+          (rst-delete-entire-line 0)
           (insert-char tochar width)))
       (message "%d lines replaced." found))))
 
@@ -4513,7 +4548,7 @@ cand replace with char: ")
   "Join lines in current paragraph into one line, removing end-of-lines."
   (interactive)
   (let ((fill-column 65000)) ; Some big number.
-    (call-interactively 'fill-paragraph)))
+    (call-interactively #'fill-paragraph)))
 
 ;; FIXME: Unbound command - should be bound or removed.
 (defun rst-force-fill-paragraph ()
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
index f476cfb..e148b06 100644
--- a/lisp/textmodes/sgml-mode.el
+++ b/lisp/textmodes/sgml-mode.el
@@ -1,6 +1,6 @@
 ;;; sgml-mode.el --- SGML- and HTML-editing modes -*- lexical-binding:t -*-
 
-;; Copyright (C) 1992, 1995-1996, 1998, 2001-2016 Free Software
+;; Copyright (C) 1992, 1995-1996, 1998, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: James Clark <address@hidden>
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el
index e12a340..5e967b5 100644
--- a/lisp/textmodes/table.el
+++ b/lisp/textmodes/table.el
@@ -1,6 +1,6 @@
 ;;; table.el --- create and edit WYSIWYG text based embedded tables  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Keywords: wp, convenience
 ;; Author: Takaaki Ota <address@hidden>
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 1363efe..ba6d696 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -1,6 +1,6 @@
 ;;; tex-mode.el --- TeX, LaTeX, and SliTeX mode commands  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1985-1986, 1989, 1992, 1994-1999, 2001-2016 Free
+;; Copyright (C) 1985-1986, 1989, 1992, 1994-1999, 2001-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
@@ -2113,13 +2113,17 @@ If NOT-ALL is non-nil, save the `.dvi' file."
   :group 'tex)
 
 (defvar tex-compile-commands
-  '(((concat "pdf" tex-command
-            " " (if (< 0 (length tex-start-commands))
-                    (shell-quote-argument tex-start-commands)) " %f")
-     t "%r.pdf")
+  `(,@(mapcar (lambda (prefix)
+                `((concat ,prefix tex-command
+                          " " (if (< 0 (length tex-start-commands))
+                                  (shell-quote-argument tex-start-commands))
+                          " %f")
+                  t "%r.pdf"))
+              '("pdf" "xe" "lua"))
     ((concat tex-command
             " " (if (< 0 (length tex-start-commands))
-                    (shell-quote-argument tex-start-commands)) " %f")
+                    (shell-quote-argument tex-start-commands))
+             " %f")
      t "%r.dvi")
     ("xdvi %r &" "%r.dvi")
     ("\\doc-view \"%r.pdf\"" "%r.pdf")
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el
index 55be7fe..1d2a9e5 100644
--- a/lisp/textmodes/texinfmt.el
+++ b/lisp/textmodes/texinfmt.el
@@ -1,6 +1,6 @@
 ;;; texinfmt.el --- format Texinfo files into Info files
 
-;; Copyright (C) 1985-1986, 1988, 1990-1998, 2000-2016 Free Software
+;; Copyright (C) 1985-1986, 1988, 1990-1998, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: Robert J. Chassell <address@hidden>
diff --git a/lisp/textmodes/texinfo.el b/lisp/textmodes/texinfo.el
index bc82bb6..f962dec 100644
--- a/lisp/textmodes/texinfo.el
+++ b/lisp/textmodes/texinfo.el
@@ -1,6 +1,6 @@
 ;;; texinfo.el --- major mode for editing Texinfo files
 
-;; Copyright (C) 1985, 1988-1993, 1996-1997, 2000-2016 Free Software
+;; Copyright (C) 1985, 1988-1993, 1996-1997, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Robert J. Chassell
diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el
index b01c678..aa5346d 100644
--- a/lisp/textmodes/texnfo-upd.el
+++ b/lisp/textmodes/texnfo-upd.el
@@ -1,6 +1,6 @@
 ;;; texnfo-upd.el --- utilities for updating nodes and menus in Texinfo files
 
-;; Copyright (C) 1989-1992, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1989-1992, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Robert J. Chassell
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/text-mode.el b/lisp/textmodes/text-mode.el
index 30873e1..7d63556 100644
--- a/lisp/textmodes/text-mode.el
+++ b/lisp/textmodes/text-mode.el
@@ -1,6 +1,6 @@
 ;;; text-mode.el --- text mode, and its idiosyncratic commands
 
-;; Copyright (C) 1985, 1992, 1994, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1985, 1992, 1994, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el
index cd258b8..e4920b7 100644
--- a/lisp/textmodes/tildify.el
+++ b/lisp/textmodes/tildify.el
@@ -1,6 +1,6 @@
 ;;; tildify.el --- adding hard spaces into texts -*- lexical-binding: t -*-
 
-;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2017 Free Software Foundation, Inc.
 
 ;; Author:     Milan Zamazal <address@hidden>
 ;;             Michal Nazarewicz <address@hidden>
diff --git a/lisp/textmodes/two-column.el b/lisp/textmodes/two-column.el
index 3c15c9b..c6203fd 100644
--- a/lisp/textmodes/two-column.el
+++ b/lisp/textmodes/two-column.el
@@ -1,6 +1,6 @@
 ;;; two-column.el --- minor mode for editing of two-column text
 
-;; Copyright (C) 1992-1995, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-1995, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Daniel Pfeiffer <address@hidden>
 ;; Adapted-By: ESR, Daniel Pfeiffer
diff --git a/lisp/textmodes/underline.el b/lisp/textmodes/underline.el
index 737475e..f018260 100644
--- a/lisp/textmodes/underline.el
+++ b/lisp/textmodes/underline.el
@@ -1,6 +1,6 @@
 ;;; underline.el --- insert/remove underlining (done by overstriking) in Emacs
 
-;; Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: wp
diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el
index e423630..25e01df 100644
--- a/lisp/thingatpt.el
+++ b/lisp/thingatpt.el
@@ -1,6 +1,6 @@
 ;;; thingatpt.el --- get the `thing' at point  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1991-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991-1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Mike Williams <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/thumbs.el b/lisp/thumbs.el
index dd50c2d..0665429 100644
--- a/lisp/thumbs.el
+++ b/lisp/thumbs.el
@@ -1,6 +1,6 @@
 ;;; thumbs.el --- Thumbnails previewer for images files
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Jean-Philippe Theberge <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/time-stamp.el b/lisp/time-stamp.el
index c053ea6..20b6c3f 100644
--- a/lisp/time-stamp.el
+++ b/lisp/time-stamp.el
@@ -1,6 +1,6 @@
 ;;; time-stamp.el --- Maintain last change time stamps in files edited by Emacs
 
-;; Copyright (C) 1989, 1993-1995, 1997, 2000-2016 Free Software
+;; Copyright (C) 1989, 1993-1995, 1997, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/time.el b/lisp/time.el
index b507fe9..6a46ea6 100644
--- a/lisp/time.el
+++ b/lisp/time.el
@@ -1,6 +1,6 @@
 ;;; time.el --- display time, load and mail indicator in mode line of Emacs
 
-;; Copyright (C) 1985-1987, 1993-1994, 1996, 2000-2016 Free Software
+;; Copyright (C) 1985-1987, 1993-1994, 1996, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/timezone.el b/lisp/timezone.el
index 1ff3f8a..023cc68 100644
--- a/lisp/timezone.el
+++ b/lisp/timezone.el
@@ -1,6 +1,6 @@
 ;;; timezone.el --- time zone package for GNU Emacs
 
-;; Copyright (C) 1990-1993, 1996, 1999, 2001-2016 Free Software
+;; Copyright (C) 1990-1993, 1996, 1999, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Masanobu Umeda
diff --git a/lisp/tmm.el b/lisp/tmm.el
index d1a08ab..c683090 100644
--- a/lisp/tmm.el
+++ b/lisp/tmm.el
@@ -1,6 +1,6 @@
 ;;; tmm.el --- text mode access to menu-bar  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1994-1996, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1996, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Ilya Zakharevich <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/tool-bar.el b/lisp/tool-bar.el
index f0dfee2..2386fe6 100644
--- a/lisp/tool-bar.el
+++ b/lisp/tool-bar.el
@@ -1,6 +1,6 @@
 ;;; tool-bar.el --- setting up the tool bar
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;; Keywords: mouse frames
diff --git a/lisp/tooltip.el b/lisp/tooltip.el
index 60eabec..367114b 100644
--- a/lisp/tooltip.el
+++ b/lisp/tooltip.el
@@ -1,6 +1,6 @@
 ;;; tooltip.el --- show tooltip windows
 
-;; Copyright (C) 1997, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Gerd Moellmann <address@hidden>
 ;; Keywords: help c mouse tools
diff --git a/lisp/tree-widget.el b/lisp/tree-widget.el
index 0ffb8dc..6baf4c4 100644
--- a/lisp/tree-widget.el
+++ b/lisp/tree-widget.el
@@ -1,6 +1,6 @@
 ;;; tree-widget.el --- Tree widget
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: David Ponce <address@hidden>
 ;; Maintainer: David Ponce <address@hidden>
diff --git a/lisp/tutorial.el b/lisp/tutorial.el
index 4ca01e7..785dbdf 100644
--- a/lisp/tutorial.el
+++ b/lisp/tutorial.el
@@ -1,6 +1,6 @@
 ;;; tutorial.el --- tutorial for Emacs
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 ;; Keywords: help, internal
diff --git a/lisp/type-break.el b/lisp/type-break.el
index 0b3ee75..fb131d6 100644
--- a/lisp/type-break.el
+++ b/lisp/type-break.el
@@ -1,6 +1,6 @@
 ;;; type-break.el --- encourage rests from typing at appropriate intervals  
-*- lexical-binding: t -*-
 
-;; Copyright (C) 1994-1995, 1997, 2000-2016 Free Software Foundation,
+;; Copyright (C) 1994-1995, 1997, 2000-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Noah Friedman
diff --git a/lisp/uniquify.el b/lisp/uniquify.el
index a70c918..c6a50ed 100644
--- a/lisp/uniquify.el
+++ b/lisp/uniquify.el
@@ -1,6 +1,6 @@
 ;;; uniquify.el --- unique buffer names dependent on file name -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1989, 1995-1997, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1989, 1995-1997, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Dick King <address@hidden>
diff --git a/lisp/url/ChangeLog.1 b/lisp/url/ChangeLog.1
index 6c0d278..516fdf9 100644
--- a/lisp/url/ChangeLog.1
+++ b/lisp/url/ChangeLog.1
@@ -3068,7 +3068,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1999, 2001-2002, 2004-2016 Free Software Foundation,
+  Copyright (C) 1999, 2001-2002, 2004-2017 Free Software Foundation,
   Inc.
 
   This file is part of GNU Emacs.
diff --git a/lisp/url/url-about.el b/lisp/url/url-about.el
index d550be4..c98e076 100644
--- a/lisp/url/url-about.el
+++ b/lisp/url/url-about.el
@@ -1,6 +1,6 @@
 ;;; url-about.el --- Show internal URLs
 
-;; Copyright (C) 2001, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes, hypermedia
 
diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el
index a2aa97c..7b6cdd5 100644
--- a/lisp/url/url-auth.el
+++ b/lisp/url/url-auth.el
@@ -1,6 +1,6 @@
 ;;; url-auth.el --- Uniform Resource Locator authorization modules -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes, hypermedia
 
diff --git a/lisp/url/url-cache.el b/lisp/url/url-cache.el
index 4006f9c..192bbb2 100644
--- a/lisp/url/url-cache.el
+++ b/lisp/url/url-cache.el
@@ -1,6 +1,6 @@
 ;;; url-cache.el --- Uniform Resource Locator retrieval tool
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes, hypermedia
 
diff --git a/lisp/url/url-cid.el b/lisp/url/url-cid.el
index 3362646..218ec0d 100644
--- a/lisp/url/url-cid.el
+++ b/lisp/url/url-cid.el
@@ -1,6 +1,6 @@
 ;;; url-cid.el --- Content-ID URL loader
 
-;; Copyright (C) 1998-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el
index 6848230..ac4ac59 100644
--- a/lisp/url/url-cookie.el
+++ b/lisp/url/url-cookie.el
@@ -1,6 +1,6 @@
 ;;; url-cookie.el --- URL cookie support
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes, hypermedia
 
diff --git a/lisp/url/url-dav.el b/lisp/url/url-dav.el
index 0d4965c..f47bc5d 100644
--- a/lisp/url/url-dav.el
+++ b/lisp/url/url-dav.el
@@ -1,6 +1,6 @@
 ;;; url-dav.el --- WebDAV support
 
-;; Copyright (C) 2001, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Bill Perry <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/url/url-dired.el b/lisp/url/url-dired.el
index e9d2129..f7ed13c 100644
--- a/lisp/url/url-dired.el
+++ b/lisp/url/url-dired.el
@@ -1,6 +1,6 @@
 ;;; url-dired.el --- URL Dired minor mode
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, files
 
diff --git a/lisp/url/url-domsuf.el b/lisp/url/url-domsuf.el
index c619fa9..25a6a42 100644
--- a/lisp/url/url-domsuf.el
+++ b/lisp/url/url-domsuf.el
@@ -1,6 +1,6 @@
 ;;; url-domsuf.el --- Say what domain names can have cookies set.
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 
diff --git a/lisp/url/url-expand.el b/lisp/url/url-expand.el
index 48d3ce4..cc9341b 100644
--- a/lisp/url/url-expand.el
+++ b/lisp/url/url-expand.el
@@ -1,6 +1,6 @@
 ;;; url-expand.el --- expand-file-name for URLs -*- lexical-binding: t -*-
 
-;; Copyright (C) 1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
diff --git a/lisp/url/url-file.el b/lisp/url/url-file.el
index 61e83c0..8e63a90 100644
--- a/lisp/url/url-file.el
+++ b/lisp/url/url-file.el
@@ -1,6 +1,6 @@
 ;;; url-file.el --- File retrieval code
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
diff --git a/lisp/url/url-ftp.el b/lisp/url/url-ftp.el
index 70f57c9..da2fbde 100644
--- a/lisp/url/url-ftp.el
+++ b/lisp/url/url-ftp.el
@@ -1,6 +1,6 @@
 ;;; url-ftp.el --- FTP wrapper
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
diff --git a/lisp/url/url-future.el b/lisp/url/url-future.el
index 12c971c..5394eb0 100644
--- a/lisp/url/url-future.el
+++ b/lisp/url/url-future.el
@@ -1,6 +1,6 @@
 ;;; url-future.el --- general futures facility for url.el -*- lexical-binding: 
t -*-
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Teodor Zlatanov <address@hidden>
 ;; Keywords: data
diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el
index d898368..28acde6 100644
--- a/lisp/url/url-gw.el
+++ b/lisp/url/url-gw.el
@@ -1,6 +1,6 @@
 ;;; url-gw.el --- Gateway munging for URL loading
 
-;; Copyright (C) 1997-1998, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Bill Perry <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el
index 0fada8d..ba30623 100644
--- a/lisp/url/url-handlers.el
+++ b/lisp/url/url-handlers.el
@@ -1,6 +1,6 @@
 ;;; url-handlers.el --- file-name-handler stuff for URL loading  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes, hypermedia
 
diff --git a/lisp/url/url-history.el b/lisp/url/url-history.el
index a88fef5..1fa0854 100644
--- a/lisp/url/url-history.el
+++ b/lisp/url/url-history.el
@@ -1,6 +1,6 @@
 ;;; url-history.el --- Global history tracking for URL package
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes, hypermedia
 
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index 81bb9b4..90f2e59 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -1,6 +1,6 @@
 ;;; url-http.el --- HTTP retrieval routines  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999, 2001, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001, 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Bill Perry <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/url/url-imap.el b/lisp/url/url-imap.el
index 36b43de..1195a34 100644
--- a/lisp/url/url-imap.el
+++ b/lisp/url/url-imap.el
@@ -1,6 +1,6 @@
 ;;; url-imap.el --- IMAP retrieval routines
 
-;; Copyright (C) 1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <address@hidden>
 ;; Keywords: comm, data, processes
diff --git a/lisp/url/url-irc.el b/lisp/url/url-irc.el
index efb2c91..1d0a46e 100644
--- a/lisp/url/url-irc.el
+++ b/lisp/url/url-irc.el
@@ -1,6 +1,6 @@
 ;;; url-irc.el --- IRC URL interface
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
diff --git a/lisp/url/url-ldap.el b/lisp/url/url-ldap.el
index 4ae638d..8f5f6f5 100644
--- a/lisp/url/url-ldap.el
+++ b/lisp/url/url-ldap.el
@@ -1,6 +1,6 @@
 ;;; url-ldap.el --- LDAP Uniform Resource Locator retrieval code
 
-;; Copyright (C) 1998-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
diff --git a/lisp/url/url-mailto.el b/lisp/url/url-mailto.el
index cbaf19d..8c49546 100644
--- a/lisp/url/url-mailto.el
+++ b/lisp/url/url-mailto.el
@@ -1,6 +1,6 @@
 ;;; url-mail.el --- Mail Uniform Resource Locator retrieval code
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
diff --git a/lisp/url/url-methods.el b/lisp/url/url-methods.el
index d730de9..9f41f35 100644
--- a/lisp/url/url-methods.el
+++ b/lisp/url/url-methods.el
@@ -1,6 +1,6 @@
 ;;; url-methods.el --- Load URL schemes as needed
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes, hypermedia
 
diff --git a/lisp/url/url-misc.el b/lisp/url/url-misc.el
index 14b9f7e..3515feb 100644
--- a/lisp/url/url-misc.el
+++ b/lisp/url/url-misc.el
@@ -1,6 +1,6 @@
 ;;; url-misc.el --- Misc Uniform Resource Locator retrieval code
 
-;; Copyright (C) 1996-1999, 2002, 2004-2016 Free Software Foundation,
+;; Copyright (C) 1996-1999, 2002, 2004-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Keywords: comm, data, processes
diff --git a/lisp/url/url-news.el b/lisp/url/url-news.el
index 4b0b6c0..5130b0c 100644
--- a/lisp/url/url-news.el
+++ b/lisp/url/url-news.el
@@ -1,6 +1,6 @@
 ;;; url-news.el --- News Uniform Resource Locator retrieval code
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
diff --git a/lisp/url/url-nfs.el b/lisp/url/url-nfs.el
index 15377f5..898d304 100644
--- a/lisp/url/url-nfs.el
+++ b/lisp/url/url-nfs.el
@@ -1,6 +1,6 @@
 ;;; url-nfs.el --- NFS URL interface
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
diff --git a/lisp/url/url-ns.el b/lisp/url/url-ns.el
index aa1dce0..ada716d 100644
--- a/lisp/url/url-ns.el
+++ b/lisp/url/url-ns.el
@@ -1,6 +1,6 @@
 ;;; url-ns.el --- Various netscape-ish functions for proxy definitions
 
-;; Copyright (C) 1997-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes, hypermedia
 
diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el
index c0e386d..4738163 100644
--- a/lisp/url/url-parse.el
+++ b/lisp/url/url-parse.el
@@ -1,6 +1,6 @@
 ;;; url-parse.el --- Uniform Resource Locator parser -*- lexical-binding: t -*-
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
diff --git a/lisp/url/url-privacy.el b/lisp/url/url-privacy.el
index c6568a6..b27d76b 100644
--- a/lisp/url/url-privacy.el
+++ b/lisp/url/url-privacy.el
@@ -1,6 +1,6 @@
 ;;; url-privacy.el --- Global history tracking for URL package
 
-;; Copyright (C) 1996-1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes, hypermedia
 
diff --git a/lisp/url/url-proxy.el b/lisp/url/url-proxy.el
index 32bbd8a..790cb47 100644
--- a/lisp/url/url-proxy.el
+++ b/lisp/url/url-proxy.el
@@ -1,6 +1,6 @@
 ;;; url-proxy.el --- Proxy server support
 
-;; Copyright (C) 1999, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2004-2017 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes, hypermedia
 
diff --git a/lisp/url/url-queue.el b/lisp/url/url-queue.el
index 8972d0b..dd1699b 100644
--- a/lisp/url/url-queue.el
+++ b/lisp/url/url-queue.el
@@ -1,6 +1,6 @@
 ;;; url-queue.el --- Fetching web pages in parallel   -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <address@hidden>
 ;; Keywords: comm
diff --git a/lisp/url/url-tramp.el b/lisp/url/url-tramp.el
index 192a045..50bfa7c 100644
--- a/lisp/url/url-tramp.el
+++ b/lisp/url/url-tramp.el
@@ -1,6 +1,6 @@
 ;;; url-tramp.el --- file-name-handler magic invoking Tramp for some protocols
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 ;; Keywords: comm, data, processes, hypermedia
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
index a3844f9..46d2d8c 100644
--- a/lisp/url/url-util.el
+++ b/lisp/url/url-util.el
@@ -1,6 +1,6 @@
 ;;; url-util.el --- Miscellaneous helper routines for URL library -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1996-1999, 2001, 2004-2016 Free Software Foundation,
+;; Copyright (C) 1996-1999, 2001, 2004-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Bill Perry <address@hidden>
diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el
index 1286d6c..d6c4667 100644
--- a/lisp/url/url-vars.el
+++ b/lisp/url/url-vars.el
@@ -1,6 +1,6 @@
 ;;; url-vars.el --- Variables for Uniform Resource Locator tool
 
-;; Copyright (C) 1996-1999, 2001, 2004-2016 Free Software Foundation,
+;; Copyright (C) 1996-1999, 2001, 2004-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Keywords: comm, data, processes, hypermedia
diff --git a/lisp/url/url.el b/lisp/url/url.el
index 6d710e0..2eec1c4 100644
--- a/lisp/url/url.el
+++ b/lisp/url/url.el
@@ -1,6 +1,6 @@
 ;;; url.el --- Uniform Resource Locator retrieval tool  -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 1996-1999, 2001, 2004-2016 Free Software Foundation,
+;; Copyright (C) 1996-1999, 2001, 2004-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Bill Perry <address@hidden>
diff --git a/lisp/userlock.el b/lisp/userlock.el
index 1cfc3b9..fc0d3e3 100644
--- a/lisp/userlock.el
+++ b/lisp/userlock.el
@@ -1,6 +1,6 @@
 ;;; userlock.el --- handle file access contention between multiple users
 
-;; Copyright (C) 1985-1986, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1986, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Richard King
 ;; (according to authors.el)
diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el
index ba710b2..52be9c5 100644
--- a/lisp/vc/add-log.el
+++ b/lisp/vc/add-log.el
@@ -1,6 +1,6 @@
 ;;; add-log.el --- change log maintenance commands for Emacs
 
-;; Copyright (C) 1985-1986, 1988, 1993-1994, 1997-1998, 2000-2016 Free
+;; Copyright (C) 1985-1986, 1988, 1993-1994, 1997-1998, 2000-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/vc/compare-w.el b/lisp/vc/compare-w.el
index 4fe9e80..11e84ae 100644
--- a/lisp/vc/compare-w.el
+++ b/lisp/vc/compare-w.el
@@ -1,6 +1,6 @@
 ;;; compare-w.el --- compare text between windows for Emacs
 
-;; Copyright (C) 1986, 1989, 1993, 1997, 2001-2016 Free Software
+;; Copyright (C) 1986, 1989, 1993, 1997, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/vc/cvs-status.el b/lisp/vc/cvs-status.el
index 618795c..c170809 100644
--- a/lisp/vc/cvs-status.el
+++ b/lisp/vc/cvs-status.el
@@ -1,6 +1,6 @@
 ;;; cvs-status.el --- major mode for browsing `cvs status' output -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: pcl-cvs cvs status tree vc tools
diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el
index 5b48c8d..e609ca9 100644
--- a/lisp/vc/diff-mode.el
+++ b/lisp/vc/diff-mode.el
@@ -1,6 +1,6 @@
 ;;; diff-mode.el --- a mode for viewing/editing context diffs -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: convenience patch diff vc
@@ -498,22 +498,57 @@ See 
http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01990.html";)
     ;; The return value is used by easy-mmode-define-navigation.
     (goto-char (or end (point-max)))))
 
+;; "index ", "old mode", "new mode", "new file mode" and
+;; "deleted file mode" are output by git-diff.
+(defconst diff-file-junk-re
+  (concat "Index: \\|=\\{20,\\}\\|" ; SVN
+          "diff \\|index \\|\\(?:deleted file\\|new\\(?: file\\)?\\|old\\) 
mode\\|=== modified file"))
+
+;; If point is in a diff header, then return beginning
+;; of hunk position otherwise return nil.
+(defun diff--at-diff-header-p ()
+  "Return non-nil if point is inside a diff header."
+  (let ((regexp-hunk diff-hunk-header-re)
+        (regexp-file diff-file-header-re)
+        (regexp-junk diff-file-junk-re)
+        (orig (point)))
+    (catch 'headerp
+      (save-excursion
+        (forward-line 0)
+        (when (looking-at regexp-hunk) ; Hunk header.
+          (throw 'headerp (point)))
+        (forward-line -1)
+        (when (re-search-forward regexp-file (point-at-eol 4) t) ; File header.
+          (forward-line 0)
+          (throw 'headerp (point)))
+        (goto-char orig)
+        (forward-line 0)
+        (when (looking-at regexp-junk) ; Git diff junk.
+          (while (and (looking-at regexp-junk)
+                      (not (bobp)))
+            (forward-line -1))
+          (re-search-forward regexp-file nil t)
+          (forward-line 0)
+          (throw 'headerp (point)))) nil)))
+
 (defun diff-beginning-of-hunk (&optional try-harder)
   "Move back to the previous hunk beginning, and return its position.
 If point is in a file header rather than a hunk, advance to the
 next hunk if TRY-HARDER is non-nil; otherwise signal an error."
   (beginning-of-line)
-  (if (looking-at diff-hunk-header-re)
+  (if (looking-at diff-hunk-header-re) ; At hunk header.
       (point)
-    (forward-line 1)
-    (condition-case ()
-       (re-search-backward diff-hunk-header-re)
-      (error
-       (unless try-harder
-        (error "Can't find the beginning of the hunk"))
-       (diff-beginning-of-file-and-junk)
-       (diff-hunk-next)
-       (point)))))
+    (let ((pos (diff--at-diff-header-p))
+          (regexp diff-hunk-header-re))
+      (cond (pos ; At junk diff header.
+             (if try-harder
+                 (goto-char pos)
+               (error "Can't find the beginning of the hunk")))
+            ((re-search-backward regexp nil t)) ; In the middle of a hunk.
+            ((re-search-forward regexp nil t) ; At first hunk header.
+             (forward-line 0)
+             (point))
+            (t (error "Can't find the beginning of the hunk"))))))
 
 (defun diff-unified-hunk-p ()
   (save-excursion
@@ -551,7 +586,7 @@ next hunk if TRY-HARDER is non-nil; otherwise signal an 
error."
 
 ;; Define diff-{hunk,file}-{prev,next}
 (easy-mmode-define-navigation
- diff--internal-hunk diff-hunk-header-re "hunk" diff-end-of-hunk 
diff-restrict-view
+ diff-hunk diff-hunk-header-re "hunk" diff-end-of-hunk diff-restrict-view
  (when diff-auto-refine-mode
    (unless (prog1 diff--auto-refine-data
              (setq diff--auto-refine-data
@@ -570,102 +605,7 @@ next hunk if TRY-HARDER is non-nil; otherwise signal an 
error."
                                 (diff-refine-hunk))))))))))))
 
 (easy-mmode-define-navigation
- diff--internal-file diff-file-header-re "file" diff-end-of-file)
-
-(defun diff--wrap-navigation (skip-hunk-start
-                              what orig
-                              header-re goto-start-func count)
-  "Wrap diff-{hunk,file}-{next,prev} for more intuitive behavior.
-Override the default diff-{hunk,file}-{next,prev} implementation
-by skipping any lines that are associated with this hunk/file but
-precede the hunk-start marker.  For instance, a diff file could
-contain
-
-diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el
-index 923de9a..6b1c24f 100644
---- a/lisp/vc/diff-mode.el
-+++ b/lisp/vc/diff-mode.el
-@@ -590,6 +590,22 @@
-.......
-
-If a point is on 'index', then the point is considered to be in
-this first hunk.  Move the point to the @@... marker before
-executing the default diff-hunk-next/prev implementation to move
-to the NEXT marker."
-  (if (not skip-hunk-start)
-      (funcall orig count)
-
-    (let ((start (point)))
-      (funcall goto-start-func)
-
-      ;; Trap the error.
-      (condition-case nil
-          (funcall orig count)
-        (error nil))
-
-      (when (not (looking-at header-re))
-        (goto-char start)
-        (user-error (format "No %s" what))))))
-
-;; These functions all take a skip-hunk-start argument which controls
-;; whether we skip pre-hunk-start text or not.  In interactive uses we
-;; always want to do this, but the simple behavior is still necessary
-;; to, for example, avoid an infinite loop:
-;;
-;;   diff-hunk-next         calls
-;;   diff--wrap-navigation  calls
-;;   diff-bounds-of-hunk    calls
-;;   diff-beginning-of-hunk calls
-;;   diff-hunk-next
-;;
-;; Here the outer diff-hunk-next has skip-hunk-start set to t, but the
-;; inner one does not, which breaks the loop.
-(defun diff-hunk-prev (&optional count skip-hunk-start)
-  "Go to the previous COUNT'th hunk."
-  (interactive (list (prefix-numeric-value current-prefix-arg) t))
-  (diff--wrap-navigation
-   skip-hunk-start
-   "prev hunk"
-   'diff--internal-hunk-prev
-   diff-hunk-header-re
-   (lambda () (goto-char (car (diff-bounds-of-hunk))))
-   count))
-
-(defun diff-hunk-next (&optional count skip-hunk-start)
-  "Go to the next COUNT'th hunk."
-  (interactive (list (prefix-numeric-value current-prefix-arg) t))
-  (diff--wrap-navigation
-   skip-hunk-start
-   "next hunk"
-   'diff--internal-hunk-next
-   diff-hunk-header-re
-   (lambda () (goto-char (car (diff-bounds-of-hunk))))
-   count))
-
-(defun diff-file-prev (&optional count skip-hunk-start)
-  "Go to the previous COUNT'th file."
-  (interactive (list (prefix-numeric-value current-prefix-arg) t))
-  (diff--wrap-navigation
-   skip-hunk-start
-   "prev file"
-   'diff--internal-file-prev
-   diff-file-header-re
-   (lambda () (goto-char (car (diff-bounds-of-file))) 
(diff--internal-hunk-next))
-   count))
-
-(defun diff-file-next (&optional count skip-hunk-start)
-  "Go to the next COUNT'th file."
-  (interactive (list (prefix-numeric-value current-prefix-arg) t))
-  (diff--wrap-navigation
-   skip-hunk-start
-   "next file"
-   'diff--internal-file-next
-   diff-file-header-re
-   (lambda () (goto-char (car (diff-bounds-of-file))) 
(diff--internal-hunk-next))
-   count))
-
-
-
+ diff-file diff-file-header-re "file" diff-end-of-file)
 
 (defun diff-bounds-of-hunk ()
   "Return the bounds of the diff hunk at point.
@@ -676,13 +616,12 @@ point is in a file header, return the bounds of the next 
hunk."
     (let ((pos (point))
          (beg (diff-beginning-of-hunk t))
          (end (diff-end-of-hunk)))
-      (cond ((> end pos)
+      (cond ((>= end pos)
             (list beg end))
            ;; If this hunk ends above POS, consider the next hunk.
            ((re-search-forward diff-hunk-header-re nil t)
             (list (match-beginning 0) (diff-end-of-hunk)))
-           ;; There's no next hunk, so just take the one we have.
-           (t (list beg end))))))
+           (t (error "No hunk found"))))))
 
 (defun diff-bounds-of-file ()
   "Return the bounds of the file segment at point.
@@ -728,12 +667,8 @@ If the prefix ARG is given, restrict the view to the 
current file instead."
                   hunk-bounds))
         (inhibit-read-only t))
     (apply 'kill-region bounds)
-    (goto-char (car bounds))))
-
-;; "index ", "old mode", "new mode", "new file mode" and
-;; "deleted file mode" are output by git-diff.
-(defconst diff-file-junk-re
-  "diff \\|index \\|\\(?:deleted file\\|new\\(?: file\\)?\\|old\\) mode\\|=== 
modified file")
+    (goto-char (car bounds))
+    (diff-beginning-of-hunk t)))
 
 (defun diff-beginning-of-file-and-junk ()
   "Go to the beginning of file-related diff-info.
@@ -786,7 +721,8 @@ data such as \"Index: ...\" and such."
   "Kill current file's hunks."
   (interactive)
   (let ((inhibit-read-only t))
-    (apply 'kill-region (diff-bounds-of-file))))
+    (apply 'kill-region (diff-bounds-of-file)))
+  (diff-beginning-of-hunk t))
 
 (defun diff-kill-junk ()
   "Kill spurious empty diffs."
@@ -1370,7 +1306,7 @@ See `after-change-functions' for the meaning of BEG, END 
and LEN."
        ;; it's safer not to do it on big changes, e.g. when yanking a big
        ;; diff, or when the user edits the header, since we might then
        ;; screw up perfectly correct values.  --Stef
-       (diff-beginning-of-hunk)
+       (diff-beginning-of-hunk t)
         (let* ((style (if (looking-at "\\*\\*\\*") 'context))
                (start (line-beginning-position (if (eq style 'context) 3 2)))
                (mid (if (eq style 'context)
@@ -1761,9 +1697,8 @@ SRC and DST are the two variants of text as returned by 
`diff-hunk-text'.
 SWITCHED is non-nil if the patch is already applied.
 NOPROMPT, if non-nil, means not to prompt the user."
   (save-excursion
-    (let* ((hunk-bounds (diff-bounds-of-hunk))
-           (other (diff-xor other-file diff-jump-to-old-file))
-           (char-offset (- (point) (goto-char (car hunk-bounds))))
+    (let* ((other (diff-xor other-file diff-jump-to-old-file))
+          (char-offset (- (point) (diff-beginning-of-hunk t)))
            ;; Check that the hunk is well-formed.  Otherwise diff-mode and
            ;; the user may disagree on what constitutes the hunk
            ;; (e.g. because an empty line truncates the hunk mid-course),
@@ -1772,7 +1707,7 @@ NOPROMPT, if non-nil, means not to prompt the user."
           ;; Suppress check when NOPROMPT is non-nil (Bug#3033).
            (_ (unless noprompt (diff-sanity-check-hunk)))
           (hunk (buffer-substring
-                  (point) (cadr hunk-bounds)))
+                  (point) (save-excursion (diff-end-of-hunk) (point))))
           (old (diff-hunk-text hunk reverse char-offset))
           (new (diff-hunk-text hunk (not reverse) char-offset))
           ;; Find the location specification.
@@ -1835,6 +1770,7 @@ the value of this variable when given an appropriate 
prefix argument).
 
 With a prefix argument, REVERSE the hunk."
   (interactive "P")
+  (diff-beginning-of-hunk t)
   (pcase-let ((`(,buf ,line-offset ,pos ,old ,new ,switched)
                ;; Sometimes we'd like to have the following behavior: if
                ;; REVERSE go to the new file, otherwise go to the old.
@@ -1880,15 +1816,8 @@ With a prefix argument, REVERSE the hunk."
       ;; Display BUF in a window
       (set-window-point (display-buffer buf) (+ (car pos) (cdr new)))
       (diff-hunk-status-msg line-offset (diff-xor switched reverse) nil)
-
-      ;; Advance to the next hunk with skip-hunk-start set to t
-      ;; because we want the behavior of moving to the next logical
-      ;; hunk, not the original behavior where were would sometimes
-      ;; stay on the curent hunk.  This is the behavior we get when
-      ;; navigating through hunks interactively, and we want it when
-      ;; applying hunks too (see http://debbugs.gnu.org/17544).
       (when diff-advance-after-apply-hunk
-       (diff-hunk-next nil t))))))
+       (diff-hunk-next))))))
 
 
 (defun diff-test-hunk (&optional reverse)
@@ -1969,15 +1898,14 @@ For use in `add-log-current-defun-function'."
 (defun diff-ignore-whitespace-hunk ()
   "Re-diff the current hunk, ignoring whitespace differences."
   (interactive)
-  (let* ((hunk-bounds (diff-bounds-of-hunk))
-         (char-offset (- (point) (goto-char (car hunk-bounds))))
+  (let* ((char-offset (- (point) (diff-beginning-of-hunk t)))
         (opts (pcase (char-after) (?@ "-bu") (?* "-bc") (_ "-b")))
         (line-nb (and (or (looking-at "[^0-9]+\\([0-9]+\\)")
                           (error "Can't find line number"))
                       (string-to-number (match-string 1))))
         (inhibit-read-only t)
         (hunk (delete-and-extract-region
-               (point) (cadr hunk-bounds)))
+               (point) (save-excursion (diff-end-of-hunk) (point))))
         (lead (make-string (1- line-nb) ?\n)) ;Line nums start at 1.
         (file1 (make-temp-file "diff1"))
         (file2 (make-temp-file "diff2"))
@@ -2059,35 +1987,48 @@ For use in `add-log-current-defun-function'."
 (declare-function smerge-refine-subst "smerge-mode"
                   (beg1 end1 beg2 end2 props-c &optional preproc props-r 
props-a))
 
+(defun diff--forward-while-leading-char (char bound)
+  "Move point until reaching a line not starting with CHAR.
+Return new point, if it was moved."
+  (let ((pt nil))
+    (while (and (< (point) bound) (eql (following-char) char))
+      (forward-line 1)
+      (setq pt (point)))
+    pt))
+
 (defun diff-refine-hunk ()
   "Highlight changes of hunk at point at a finer granularity."
   (interactive)
   (require 'smerge-mode)
   (save-excursion
-    (let* ((hunk-bounds (diff-bounds-of-hunk))
-           (style (progn (goto-char (car hunk-bounds))
-                         (diff-hunk-style))) ;Skips the hunk header as well.
+    (diff-beginning-of-hunk t)
+    (let* ((start (point))
+           (style (diff-hunk-style))    ;Skips the hunk header as well.
            (beg (point))
-           (end (cadr hunk-bounds))
            (props-c '((diff-mode . fine) (face diff-refine-changed)))
            (props-r '((diff-mode . fine) (face diff-refine-removed)))
-           (props-a '((diff-mode . fine) (face diff-refine-added))))
+           (props-a '((diff-mode . fine) (face diff-refine-added)))
+           ;; Be careful to go back to `start' so diff-end-of-hunk gets
+           ;; to read the hunk header's line info.
+           (end (progn (goto-char start) (diff-end-of-hunk) (point))))
 
       (remove-overlays beg end 'diff-mode 'fine)
 
       (goto-char beg)
       (pcase style
         (`unified
-         (while (re-search-forward
-                 (eval-when-compile
-                   (let ((no-LF-at-eol-re "\\(?:\\\\.*\n\\)?"))
-                     (concat "^\\(?:-.*\n\\)+" no-LF-at-eol-re
-                             "\\(\\)"
-                             "\\(?:\\+.*\n\\)+" no-LF-at-eol-re)))
-                 end t)
-           (smerge-refine-subst (match-beginning 0) (match-end 1)
-                                (match-end 1) (match-end 0)
-                                nil 'diff-refine-preproc props-r props-a)))
+         (while (re-search-forward "^-" end t)
+           (let ((beg-del (progn (beginning-of-line) (point)))
+                 beg-add end-add)
+             (when (and (diff--forward-while-leading-char ?- end)
+                        ;; Allow for "\ No newline at end of file".
+                        (progn (diff--forward-while-leading-char ?\\ end)
+                               (setq beg-add (point)))
+                        (diff--forward-while-leading-char ?+ end)
+                        (progn (diff--forward-while-leading-char ?\\ end)
+                               (setq end-add (point))))
+               (smerge-refine-subst beg-del beg-add beg-add end-add
+                                    nil 'diff-refine-preproc props-r 
props-a)))))
         (`context
          (let* ((middle (save-excursion (re-search-forward "^---")))
                 (other middle))
diff --git a/lisp/vc/diff.el b/lisp/vc/diff.el
index 6b316c4..7fdd103 100644
--- a/lisp/vc/diff.el
+++ b/lisp/vc/diff.el
@@ -1,6 +1,6 @@
 ;;; diff.el --- run `diff'  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1992, 1994, 1996, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1992, 1994, 1996, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Frank Bresz
diff --git a/lisp/vc/ediff-diff.el b/lisp/vc/ediff-diff.el
index 56bfebb..37f2234 100644
--- a/lisp/vc/ediff-diff.el
+++ b/lisp/vc/ediff-diff.el
@@ -1,6 +1,6 @@
 ;;; ediff-diff.el --- diff-related utilities
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: ediff
diff --git a/lisp/vc/ediff-help.el b/lisp/vc/ediff-help.el
index 0f095a7..3292b4d 100644
--- a/lisp/vc/ediff-help.el
+++ b/lisp/vc/ediff-help.el
@@ -1,6 +1,6 @@
 ;;; ediff-help.el --- Code related to the contents of Ediff help buffers
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: ediff
diff --git a/lisp/vc/ediff-hook.el b/lisp/vc/ediff-hook.el
index 1c067e9..37f8ef5 100644
--- a/lisp/vc/ediff-hook.el
+++ b/lisp/vc/ediff-hook.el
@@ -1,6 +1,6 @@
 ;;; ediff-hook.el --- setup for Ediff's menus and autoloads
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: ediff
diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el
index b0d5d2f..0235926 100644
--- a/lisp/vc/ediff-init.el
+++ b/lisp/vc/ediff-init.el
@@ -1,6 +1,6 @@
 ;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: ediff
@@ -150,6 +150,26 @@ It needs to be killed when we quit the session.")
 (defsubst ediff-get-symbol-from-alist (buf-type alist)
   (cdr (assoc buf-type alist)))
 
+;; Vector of differences between the variants.  Each difference is
+;; represented by a vector of two overlays plus a vector of fine diffs,
+;; plus a no-fine-diffs flag.  The first overlay spans the
+;; difference region in the A buffer and the second overlays the diff in
+;; the B buffer.  If a difference section is empty, the corresponding
+;; overlay's endpoints coincide.
+;;
+;; The precise form of a Difference Vector for one buffer is:
+;; [diff diff diff ...]
+;; where each diff has the form:
+;; [diff-overlay fine-diff-vector no-fine-diffs-flag state-of-diff]
+;; fine-diff-vector is a vector [fine-diff-overlay fine-diff-overlay ...]
+;; no-fine-diffs-flag says if there are fine differences.
+;; state-of-difference is A, B, C, or nil, indicating which buffer is
+;;     different from the other two (used only in 3-way jobs.
+(ediff-defvar-local ediff-difference-vector-A nil "")
+(ediff-defvar-local ediff-difference-vector-B nil "")
+(ediff-defvar-local ediff-difference-vector-C nil "")
+(ediff-defvar-local ediff-difference-vector-Ancestor nil "")
+;; A-list of diff vector types associated with buffer types
 (defconst ediff-difference-vector-alist
   '((A . ediff-difference-vector-A)
     (B . ediff-difference-vector-B)
@@ -318,7 +338,7 @@ It needs to be killed when we quit the session.")
 (defsubst ediff-patch-metajob (&optional metajob)
   (memq (or metajob ediff-metajob-name)
        '(ediff-multifile-patch)))
-;; metajob involving only one group of files, such as multipatch or directory
+;; metajob involving only one group of files, such as multi-patch or directory
 ;; revision
 (defsubst ediff-one-filegroup-metajob (&optional metajob)
   (or (ediff-revision-metajob metajob)
@@ -642,32 +662,6 @@ shown in brighter colors."
                                      ;;buffer-read-only
                                      mode-line-format))
 
-;; Vector of differences between the variants.  Each difference is
-;; represented by a vector of two overlays plus a vector of fine diffs,
-;; plus a no-fine-diffs flag.  The first overlay spans the
-;; difference region in the A buffer and the second overlays the diff in
-;; the B buffer.  If a difference section is empty, the corresponding
-;; overlay's endpoints coincide.
-;;
-;; The precise form of a Difference Vector for one buffer is:
-;; [diff diff diff ...]
-;; where each diff has the form:
-;; [diff-overlay fine-diff-vector no-fine-diffs-flag state-of-diff]
-;; fine-diff-vector is a vector [fine-diff-overlay fine-diff-overlay ...]
-;; no-fine-diffs-flag says if there are fine differences.
-;; state-of-difference is A, B, C, or nil, indicating which buffer is
-;;     different from the other two (used only in 3-way jobs.
-(ediff-defvar-local ediff-difference-vector-A nil "")
-(ediff-defvar-local ediff-difference-vector-B nil "")
-(ediff-defvar-local ediff-difference-vector-C nil "")
-(ediff-defvar-local ediff-difference-vector-Ancestor nil "")
-;; A-list of diff vector types associated with buffer types
-(defconst ediff-difference-vector-alist
-  '((A . ediff-difference-vector-A)
-    (B . ediff-difference-vector-B)
-    (C . ediff-difference-vector-C)
-    (Ancestor . ediff-difference-vector-Ancestor)))
-
 ;; [ status status status ...]
 ;; Each status: [state-of-merge state-of-ancestor]
 ;; state-of-merge is default-A, default-B, prefer-A, or prefer-B.  It
diff --git a/lisp/vc/ediff-merg.el b/lisp/vc/ediff-merg.el
index 0af134a..2567818 100644
--- a/lisp/vc/ediff-merg.el
+++ b/lisp/vc/ediff-merg.el
@@ -1,6 +1,6 @@
 ;;; ediff-merg.el --- merging utilities
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: ediff
diff --git a/lisp/vc/ediff-mult.el b/lisp/vc/ediff-mult.el
index 9c7e278e..41015f7 100644
--- a/lisp/vc/ediff-mult.el
+++ b/lisp/vc/ediff-mult.el
@@ -1,6 +1,6 @@
 ;;; ediff-mult.el --- support for multi-file/multi-buffer processing in Ediff
 
-;; Copyright (C) 1995-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: ediff
diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el
index 3effd9b..9d2ec51 100644
--- a/lisp/vc/ediff-ptch.el
+++ b/lisp/vc/ediff-ptch.el
@@ -1,6 +1,6 @@
 ;;; ediff-ptch.el --- Ediff's  patch support
 
-;; Copyright (C) 1996-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: ediff
@@ -431,15 +431,15 @@ Please advise:
                 (f2-exists (setcar session-file-object file2))
                 (f1-exists (setcar session-file-object file1))
                 (t
-                  ;; TODO: Often for multipaches the file doesn't exist 
because the
-                  ;; directory part is wrong; for instance, if the patch need 
to
-                  ;; be applied into
+                  ;; TODO: Often for multi-patches the file doesn't exist
+                  ;; because the directory part is wrong; for instance, if the
+                  ;; patch needs to be applied into
                   ;; (expand-file-name "lisp/vc/ediff-ptch.el" 
source-directory)
                   ;; and default-directory is
                   ;; (expand-file-name "lisp" source-directory)
                   ;; then Ediff assumes the wrong file:
                   ;; (expand-file-name "lisp/ediff-ptch.el" source-directory).
-                  ;; We might identify these common failoures and suggest
+                  ;; We might identify these common failures and suggest
                   ;; in the prompt the possible corrected file. --Tino
                  (with-output-to-temp-buffer ediff-msg-buffer
                    (ediff-with-current-buffer standard-output
diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el
index 3120147..f813979 100644
--- a/lisp/vc/ediff-util.el
+++ b/lisp/vc/ediff-util.el
@@ -1,6 +1,6 @@
 ;;; ediff-util.el --- the core commands and utilities of ediff  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: ediff
@@ -2625,7 +2625,7 @@ temporarily reverses the meaning of this variable."
 (defun ediff-janitor (ask keep-variants)
   "Kill buffers A, B, and, possibly, C, if these buffers aren't modified.
 In merge jobs, buffer C is not deleted here, but rather according to
-ediff-quit-merge-hook.
+`ediff-quit-merge-hook'.
 ASK non-nil means ask the user whether to keep each unmodified buffer, unless
 KEEP-VARIANTS is non-nil, in which case buffers are never killed.
 A side effect of cleaning up may be that you should be careful when comparing
diff --git a/lisp/vc/ediff-vers.el b/lisp/vc/ediff-vers.el
index 63272f1..efd8e93 100644
--- a/lisp/vc/ediff-vers.el
+++ b/lisp/vc/ediff-vers.el
@@ -1,6 +1,6 @@
 ;;; ediff-vers.el --- version control interface to Ediff
 
-;; Copyright (C) 1995-1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995-1997, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: ediff
diff --git a/lisp/vc/ediff-wind.el b/lisp/vc/ediff-wind.el
index 8dbb2f8..cd10288 100644
--- a/lisp/vc/ediff-wind.el
+++ b/lisp/vc/ediff-wind.el
@@ -1,6 +1,6 @@
 ;;; ediff-wind.el --- window manipulation utilities
 
-;; Copyright (C) 1994-1997, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1997, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Package: ediff
diff --git a/lisp/vc/ediff.el b/lisp/vc/ediff.el
index ed36a3f..07c5cea 100644
--- a/lisp/vc/ediff.el
+++ b/lisp/vc/ediff.el
@@ -1,6 +1,6 @@
 ;;; ediff.el --- a comprehensive visual interface to diff & patch
 
-;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <address@hidden>
 ;; Created: February 2, 1994
diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el
index 44611d1..cd8ba19 100644
--- a/lisp/vc/log-edit.el
+++ b/lisp/vc/log-edit.el
@@ -1,6 +1,6 @@
 ;;; log-edit.el --- Major mode for editing CVS commit messages -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: pcl-cvs cvs commit log vc
diff --git a/lisp/vc/log-view.el b/lisp/vc/log-view.el
index 44b8e0b..e8efc1e 100644
--- a/lisp/vc/log-view.el
+++ b/lisp/vc/log-view.el
@@ -1,6 +1,6 @@
 ;;; log-view.el --- Major mode for browsing revision log histories -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: tools, vc
diff --git a/lisp/vc/pcvs-defs.el b/lisp/vc/pcvs-defs.el
index 1575cb0..72caafc 100644
--- a/lisp/vc/pcvs-defs.el
+++ b/lisp/vc/pcvs-defs.el
@@ -1,6 +1,6 @@
 ;;; pcvs-defs.el --- variable definitions for PCL-CVS
 
-;; Copyright (C) 1991-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: pcl-cvs
diff --git a/lisp/vc/pcvs-info.el b/lisp/vc/pcvs-info.el
index 6bb1370..8dd513c 100644
--- a/lisp/vc/pcvs-info.el
+++ b/lisp/vc/pcvs-info.el
@@ -1,6 +1,6 @@
 ;;; pcvs-info.el --- internal representation of a fileinfo entry
 
-;; Copyright (C) 1991-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: pcl-cvs
diff --git a/lisp/vc/pcvs-parse.el b/lisp/vc/pcvs-parse.el
index 5ff53bb..2315938 100644
--- a/lisp/vc/pcvs-parse.el
+++ b/lisp/vc/pcvs-parse.el
@@ -1,6 +1,6 @@
 ;;; pcvs-parse.el --- the CVS output parser
 
-;; Copyright (C) 1991-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: pcl-cvs
diff --git a/lisp/vc/pcvs-util.el b/lisp/vc/pcvs-util.el
index 45e1fbc..de45141 100644
--- a/lisp/vc/pcvs-util.el
+++ b/lisp/vc/pcvs-util.el
@@ -1,6 +1,6 @@
 ;;; pcvs-util.el --- utility functions for PCL-CVS  -*- byte-compile-dynamic: 
t -*-
 
-;; Copyright (C) 1991-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: pcl-cvs
diff --git a/lisp/vc/pcvs.el b/lisp/vc/pcvs.el
index b0ad5ea..026765a 100644
--- a/lisp/vc/pcvs.el
+++ b/lisp/vc/pcvs.el
@@ -1,6 +1,6 @@
 ;;; pcvs.el --- a front-end to CVS  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1991-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991-2017 Free Software Foundation, Inc.
 
 ;; Author: (The PCL-CVS Trust) address@hidden
 ;;     (Per Cederqvist) address@hidden
diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el
index 1a7dece..de40b99 100644
--- a/lisp/vc/smerge-mode.el
+++ b/lisp/vc/smerge-mode.el
@@ -1,6 +1,6 @@
 ;;; smerge-mode.el --- Minor mode to resolve diff3 conflicts -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: vc, tools, revision control, merge, diff3, cvs, conflict
diff --git a/lisp/vc/vc-annotate.el b/lisp/vc/vc-annotate.el
index 774453f..12df680 100644
--- a/lisp/vc/vc-annotate.el
+++ b/lisp/vc/vc-annotate.el
@@ -1,6 +1,6 @@
 ;;; vc-annotate.el --- VC Annotate Support  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1997-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author:     Martin Lorentzson  <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el
index 0fee6df..085c05b 100644
--- a/lisp/vc/vc-bzr.el
+++ b/lisp/vc/vc-bzr.el
@@ -1,6 +1,6 @@
 ;;; vc-bzr.el --- VC backend for the bzr revision control system  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <address@hidden>
 ;;        Riccardo Murri <address@hidden>
@@ -715,11 +715,11 @@ or a superior directory.")
        ;; value of log-view-message-re only since Emacs-23.
        (if (eq vc-log-view-type 'short)
         (append `((,log-view-message-re
-                   (1 'log-view-message-face)
+                   (1 'log-view-message)
                    (2 'change-log-name)
                    (3 'change-log-date)
                    (4 'change-log-list nil lax))))
-        (append `((,log-view-message-re . 'log-view-message-face))
+        (append `((,log-view-message-re . 'log-view-message))
                 ;; log-view-font-lock-keywords
                 '(("^ *\\(?:committer\\|author\\): \
 \\([^<(]+?\\)[  ]*[(<]\\([[:alnum:address@hidden:alnum:]_.-]+\\)[>)]"
diff --git a/lisp/vc/vc-cvs.el b/lisp/vc/vc-cvs.el
index 6a010b3..e54baaa 100644
--- a/lisp/vc/vc-cvs.el
+++ b/lisp/vc/vc-cvs.el
@@ -1,6 +1,6 @@
 ;;; vc-cvs.el --- non-resident support for CVS version-control  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1995, 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1998-2017 Free Software Foundation, Inc.
 
 ;; Author:      FSF (see vc.el for full credits)
 ;; Maintainer:  Andre Spiegel <address@hidden>
diff --git a/lisp/vc/vc-dav.el b/lisp/vc/vc-dav.el
index 07c15ac..4aa1851 100644
--- a/lisp/vc/vc-dav.el
+++ b/lisp/vc/vc-dav.el
@@ -1,6 +1,6 @@
 ;;; vc-dav.el --- vc.el support for WebDAV
 
-;; Copyright (C) 2001, 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Bill Perry <address@hidden>
 ;; Maintainer: Bill Perry <address@hidden>
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index 028e425..b7eb8b5 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -1,6 +1,6 @@
 ;;; vc-dir.el --- Directory status display under VC  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author:   Dan Nicolaescu <address@hidden>
 ;; Keywords: vc tools
diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el
index a551542..03af032 100644
--- a/lisp/vc/vc-dispatcher.el
+++ b/lisp/vc/vc-dispatcher.el
@@ -1,6 +1,6 @@
 ;;; vc-dispatcher.el -- generic command-dispatcher facility.  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author:     FSF (see below for full credits)
 ;; Maintainer: Eric S. Raymond <address@hidden>
diff --git a/lisp/vc/vc-filewise.el b/lisp/vc/vc-filewise.el
index 9eb3f61..9bd6658 100644
--- a/lisp/vc/vc-filewise.el
+++ b/lisp/vc/vc-filewise.el
@@ -1,6 +1,6 @@
 ;;; vc-filewise.el --- common functions for file-oriented back ends.
 
-;; Copyright (C) 1992-1996, 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-1996, 1998-2017 Free Software Foundation, Inc.
 
 ;; Author:     FSF (see vc.el for full credits)
 ;; Maintainer: Andre Spiegel <address@hidden>
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 514b97c..24dabb6 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -1,6 +1,6 @@
 ;;; vc-git.el --- VC backend for the git version control system -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Alexandre Julliard <address@hidden>
 ;; Keywords: vc tools
@@ -152,7 +152,7 @@ the staging area."
     ;; revision number to be group 1.
     "^\\(?:[*/\\| ]+ \\)?\\(?2: ([^)]+)\\)?\\(?1:[0-9a-z]+\\)..: \
 \\(?3:.*?\\)[ \t]+\\(?4:[0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)"
-    ((1 'log-view-message-face)
+    ((1 'log-view-message)
      (2 'change-log-list nil lax)
      (3 'change-log-name)
      (4 'change-log-date)))
@@ -1029,6 +1029,8 @@ or BRANCH^ (where \"^\" can be repeated)."
       (buffer-string))))
 
 (defun vc-git-region-history (file buffer lfrom lto)
+  "Insert into BUFFER the history of FILE for lines LFROM to LTO.
+This requires git 1.8.4 or later, for the \"-L\" option of \"git log\"."
   ;; The "git log" command below interprets the line numbers as applying
   ;; to the HEAD version of the file, not to the current state of the file.
   ;; So we need to look at all the local changes and adjust lfrom/lto
diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
index 29f8df0..2f9487c 100644
--- a/lisp/vc/vc-hg.el
+++ b/lisp/vc/vc-hg.el
@@ -1,6 +1,6 @@
 ;;; vc-hg.el --- VC backend for the mercurial version control system  -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; Author: Ivan Kanis
 ;; Maintainer: address@hidden
@@ -157,7 +157,7 @@ switches."
              "\\([0-9]+\\):\\([^:]*\\)"
              ":\\([^:]*\\):\\([^:]*\\):\\(.*?\\)"
              "[ \t]+\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)")
-    ((1 'log-view-message-face)
+    ((1 'log-view-message)
      (2 'change-log-file)
      (3 'change-log-list)
      (4 'change-log-conditionals)
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
index f59b463..47e923c 100644
--- a/lisp/vc/vc-hooks.el
+++ b/lisp/vc/vc-hooks.el
@@ -1,6 +1,6 @@
 ;;; vc-hooks.el --- resident support for version-control
 
-;; Copyright (C) 1992-1996, 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-1996, 1998-2017 Free Software Foundation, Inc.
 
 ;; Author:     FSF (see vc.el for full credits)
 ;; Maintainer: Andre Spiegel <address@hidden>
diff --git a/lisp/vc/vc-mtn.el b/lisp/vc/vc-mtn.el
index 6ce853f..0b832aa 100644
--- a/lisp/vc/vc-mtn.el
+++ b/lisp/vc/vc-mtn.el
@@ -1,6 +1,6 @@
 ;;; vc-mtn.el --- VC backend for Monotone  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords: vc
diff --git a/lisp/vc/vc-rcs.el b/lisp/vc/vc-rcs.el
index fcb1849..2dd8114 100644
--- a/lisp/vc/vc-rcs.el
+++ b/lisp/vc/vc-rcs.el
@@ -1,6 +1,6 @@
 ;;; vc-rcs.el --- support for RCS version-control  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2017 Free Software Foundation, Inc.
 
 ;; Author:     FSF (see vc.el for full credits)
 ;; Maintainer: Andre Spiegel <address@hidden>
diff --git a/lisp/vc/vc-sccs.el b/lisp/vc/vc-sccs.el
index 79c7fe9..61c1478 100644
--- a/lisp/vc/vc-sccs.el
+++ b/lisp/vc/vc-sccs.el
@@ -1,6 +1,6 @@
 ;;; vc-sccs.el --- support for SCCS version-control  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2017 Free Software Foundation, Inc.
 
 ;; Author:     FSF (see vc.el for full credits)
 ;; Maintainer: Andre Spiegel <address@hidden>
diff --git a/lisp/vc/vc-src.el b/lisp/vc/vc-src.el
index 8b82b56..598a3ad 100644
--- a/lisp/vc/vc-src.el
+++ b/lisp/vc/vc-src.el
@@ -1,6 +1,6 @@
 ;;; vc-src.el --- support for SRC version-control  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1992-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2017 Free Software Foundation, Inc.
 
 ;; Author:     FSF (see vc.el for full credits)
 ;; Maintainer: Eric S. Raymond <address@hidden>
diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el
index c5b817d..db16eb2 100644
--- a/lisp/vc/vc-svn.el
+++ b/lisp/vc/vc-svn.el
@@ -1,6 +1,6 @@
 ;;; vc-svn.el --- non-resident support for Subversion version-control  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author:      FSF (see vc.el for full credits)
 ;; Maintainer:  Stefan Monnier <address@hidden>
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 2ddf4e1..c66a092 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -1,6 +1,6 @@
 ;;; vc.el --- drive a version-control system from within Emacs  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1992-1998, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1992-1998, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author:     FSF (see below for full credits)
 ;; Maintainer: Andre Spiegel <address@hidden>
diff --git a/lisp/vcursor.el b/lisp/vcursor.el
index 6a112ff..22727bc 100644
--- a/lisp/vcursor.el
+++ b/lisp/vcursor.el
@@ -1,6 +1,6 @@
 ;;; vcursor.el --- manipulate an alternative ("virtual") cursor
 
-;; Copyright (C) 1994, 1996, 1998, 2001-2016 Free Software Foundation,
+;; Copyright (C) 1994, 1996, 1998, 2001-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author:   Peter Stephenson <address@hidden>
diff --git a/lisp/version.el b/lisp/version.el
index d4cb92e..99ab351 100644
--- a/lisp/version.el
+++ b/lisp/version.el
@@ -1,6 +1,6 @@
 ;;; version.el --- record version number of Emacs
 
-;; Copyright (C) 1985, 1992, 1994-1995, 1999-2016 Free Software
+;; Copyright (C) 1985, 1992, 1994-1995, 1999-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/view.el b/lisp/view.el
index 92cbd14..1fd5c12 100644
--- a/lisp/view.el
+++ b/lisp/view.el
@@ -1,6 +1,6 @@
 ;;; view.el --- peruse file or buffer without editing
 
-;; Copyright (C) 1985, 1989, 1994-1995, 1997, 2000-2016 Free Software
+;; Copyright (C) 1985, 1989, 1994-1995, 1997, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: K. Shane Hartman
diff --git a/lisp/vt-control.el b/lisp/vt-control.el
index 3584010..8755420 100644
--- a/lisp/vt-control.el
+++ b/lisp/vt-control.el
@@ -1,6 +1,6 @@
 ;;; vt-control.el --- Common VTxxx control functions
 
-;; Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Rob Riepel <address@hidden>
 ;; Maintainer: Rob Riepel <address@hidden>
diff --git a/lisp/vt100-led.el b/lisp/vt100-led.el
index 8117a71..c86a826 100644
--- a/lisp/vt100-led.el
+++ b/lisp/vt100-led.el
@@ -1,6 +1,6 @@
 ;;; vt100-led.el --- functions for LED control on VT-100 terminals & clones
 
-;; Copyright (C) 1988, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Howard Gayle
 ;; Maintainer: address@hidden
diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el
index 91c0253..93551de 100644
--- a/lisp/w32-fns.el
+++ b/lisp/w32-fns.el
@@ -1,6 +1,6 @@
 ;;; w32-fns.el --- Lisp routines for 32-bit Windows
 
-;; Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Geoff Voelker <address@hidden>
 ;; Keywords: internal
diff --git a/lisp/w32-vars.el b/lisp/w32-vars.el
index c9317e4..50f6255 100644
--- a/lisp/w32-vars.el
+++ b/lisp/w32-vars.el
@@ -1,6 +1,6 @@
 ;;; w32-vars.el --- MS-Windows specific user options
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; Author: Jason Rumney <address@hidden>
 ;; Keywords: internal
diff --git a/lisp/wdired.el b/lisp/wdired.el
index f059ab7..179b51b 100644
--- a/lisp/wdired.el
+++ b/lisp/wdired.el
@@ -1,6 +1,6 @@
 ;;; wdired.el --- Rename files editing their names in dired buffers -*- 
coding: utf-8; -*-
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Filename: wdired.el
 ;; Author: Juan León Lahoz García <address@hidden>
diff --git a/lisp/whitespace.el b/lisp/whitespace.el
index 29d60c9..6c4f59d 100644
--- a/lisp/whitespace.el
+++ b/lisp/whitespace.el
@@ -1,6 +1,6 @@
 ;;; whitespace.el --- minor mode to visualize TAB, (HARD) SPACE, NEWLINE
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <address@hidden>
 ;; Maintainer: Vinicius Jose Latorre <address@hidden>
@@ -729,7 +729,7 @@ Used when `whitespace-style' includes `empty'."
   :group 'whitespace)
 
 
-(defcustom whitespace-empty-at-eob-regexp "^\\([ \t\n]*\\(\n\\{2,\\}\\|[ 
\t]+\\)\\)\\'"
+(defcustom whitespace-empty-at-eob-regexp "^\\([ \t\n]+\\)\\'"
   "Specify regexp for empty lines at end of buffer.
 
 Used when `whitespace-style' includes `empty'."
@@ -1398,18 +1398,17 @@ documentation."
    ;; whole buffer
    (t
     (save-excursion
-      (save-match-data                ;FIXME: Why?
-       ;; PROBLEM 1: empty lines at bob
-       ;; PROBLEM 2: empty lines at eob
-       ;; ACTION: remove all empty lines at bob and/or eob
-       (when (memq 'empty whitespace-style)
-         (let (overwrite-mode)         ; enforce no overwrite
-           (goto-char (point-min))
-           (when (looking-at whitespace-empty-at-bob-regexp)
-             (delete-region (match-beginning 1) (match-end 1)))
-           (when (re-search-forward
-                   whitespace-empty-at-eob-regexp nil t)
-             (delete-region (match-beginning 1) (match-end 1)))))))
+      ;; PROBLEM 1: empty lines at bob
+      ;; PROBLEM 2: empty lines at eob
+      ;; ACTION: remove all empty lines at bob and/or eob
+      (when (memq 'empty whitespace-style)
+        (let (overwrite-mode)          ; enforce no overwrite
+          (goto-char (point-min))
+          (when (looking-at whitespace-empty-at-bob-regexp)
+            (delete-region (match-beginning 1) (match-end 1)))
+          (when (re-search-forward
+                 whitespace-empty-at-eob-regexp nil t)
+            (delete-region (match-beginning 1) (match-end 1))))))
     ;; PROBLEM 3: `tab-width' or more SPACEs at bol
     ;; PROBLEM 4: SPACEs before TAB
     ;; PROBLEM 5: SPACEs or TABs at eol
@@ -1476,76 +1475,75 @@ documentation."
          overwrite-mode                ; enforce no overwrite
          tmp)
       (save-excursion
-       (save-match-data                ;FIXME: Why?
-         ;; PROBLEM 1: `tab-width' or more SPACEs at bol
-         (cond
-          ;; ACTION: replace `tab-width' or more SPACEs at bol by TABs, if
-          ;; `indent-tabs-mode' is non-nil; otherwise, replace TABs
-          ;; by SPACEs.
-          ((memq 'indentation whitespace-style)
-           (let ((regexp (whitespace-indentation-regexp)))
-             (goto-char rstart)
-             (while (re-search-forward regexp rend t)
-               (setq tmp (current-indentation))
-               (goto-char (match-beginning 0))
-               (delete-horizontal-space)
-               (unless (eolp)
-                 (indent-to tmp)))))
-          ;; ACTION: replace `tab-width' or more SPACEs at bol by TABs.
-          ((memq 'indentation::tab whitespace-style)
-           (whitespace-replace-action
-            'tabify rstart rend
-            (whitespace-indentation-regexp 'tab) 0))
-          ;; ACTION: replace TABs by SPACEs.
-          ((memq 'indentation::space whitespace-style)
-           (whitespace-replace-action
-            'untabify rstart rend
-            (whitespace-indentation-regexp 'space) 0)))
-         ;; PROBLEM 3: SPACEs or TABs at eol
-         ;; ACTION: remove all SPACEs or TABs at eol
-         (when (memq 'trailing whitespace-style)
-           (whitespace-replace-action
-            'delete-region rstart rend
-            whitespace-trailing-regexp 1))
-         ;; PROBLEM 4: `tab-width' or more SPACEs after TAB
-         (cond
-          ;; ACTION: replace `tab-width' or more SPACEs by TABs, if
-          ;; `indent-tabs-mode' is non-nil; otherwise, replace TABs
-          ;; by SPACEs.
-          ((memq 'space-after-tab whitespace-style)
-           (whitespace-replace-action
-            (if whitespace-indent-tabs-mode 'tabify 'untabify)
-            rstart rend (whitespace-space-after-tab-regexp) 1))
-          ;; ACTION: replace `tab-width' or more SPACEs by TABs.
-          ((memq 'space-after-tab::tab whitespace-style)
-           (whitespace-replace-action
-            'tabify rstart rend
-            (whitespace-space-after-tab-regexp 'tab) 1))
-          ;; ACTION: replace TABs by SPACEs.
-          ((memq 'space-after-tab::space whitespace-style)
-           (whitespace-replace-action
-            'untabify rstart rend
-            (whitespace-space-after-tab-regexp 'space) 1)))
-         ;; PROBLEM 2: SPACEs before TAB
-         (cond
-          ;; ACTION: replace SPACEs before TAB by TABs, if
-          ;; `indent-tabs-mode' is non-nil; otherwise, replace TABs
-          ;; by SPACEs.
-          ((memq 'space-before-tab whitespace-style)
-           (whitespace-replace-action
-            (if whitespace-indent-tabs-mode 'tabify 'untabify)
-            rstart rend whitespace-space-before-tab-regexp
-            (if whitespace-indent-tabs-mode 0 2)))
-          ;; ACTION: replace SPACEs before TAB by TABs.
-          ((memq 'space-before-tab::tab whitespace-style)
-           (whitespace-replace-action
-            'tabify rstart rend
-            whitespace-space-before-tab-regexp 0))
-          ;; ACTION: replace TABs by SPACEs.
-          ((memq 'space-before-tab::space whitespace-style)
-           (whitespace-replace-action
-            'untabify rstart rend
-            whitespace-space-before-tab-regexp 2)))))
+        ;; PROBLEM 1: `tab-width' or more SPACEs at bol
+        (cond
+         ;; ACTION: replace `tab-width' or more SPACEs at bol by TABs, if
+         ;; `indent-tabs-mode' is non-nil; otherwise, replace TABs
+         ;; by SPACEs.
+         ((memq 'indentation whitespace-style)
+          (let ((regexp (whitespace-indentation-regexp)))
+            (goto-char rstart)
+            (while (re-search-forward regexp rend t)
+              (setq tmp (current-indentation))
+              (goto-char (match-beginning 0))
+              (delete-horizontal-space)
+              (unless (eolp)
+                (indent-to tmp)))))
+         ;; ACTION: replace `tab-width' or more SPACEs at bol by TABs.
+         ((memq 'indentation::tab whitespace-style)
+          (whitespace-replace-action
+           'tabify rstart rend
+           (whitespace-indentation-regexp 'tab) 0))
+         ;; ACTION: replace TABs by SPACEs.
+         ((memq 'indentation::space whitespace-style)
+          (whitespace-replace-action
+           'untabify rstart rend
+           (whitespace-indentation-regexp 'space) 0)))
+        ;; PROBLEM 3: SPACEs or TABs at eol
+        ;; ACTION: remove all SPACEs or TABs at eol
+        (when (memq 'trailing whitespace-style)
+          (whitespace-replace-action
+           'delete-region rstart rend
+           whitespace-trailing-regexp 1))
+        ;; PROBLEM 4: `tab-width' or more SPACEs after TAB
+        (cond
+         ;; ACTION: replace `tab-width' or more SPACEs by TABs, if
+         ;; `indent-tabs-mode' is non-nil; otherwise, replace TABs
+         ;; by SPACEs.
+         ((memq 'space-after-tab whitespace-style)
+          (whitespace-replace-action
+           (if whitespace-indent-tabs-mode 'tabify 'untabify)
+           rstart rend (whitespace-space-after-tab-regexp) 1))
+         ;; ACTION: replace `tab-width' or more SPACEs by TABs.
+         ((memq 'space-after-tab::tab whitespace-style)
+          (whitespace-replace-action
+           'tabify rstart rend
+           (whitespace-space-after-tab-regexp 'tab) 1))
+         ;; ACTION: replace TABs by SPACEs.
+         ((memq 'space-after-tab::space whitespace-style)
+          (whitespace-replace-action
+           'untabify rstart rend
+           (whitespace-space-after-tab-regexp 'space) 1)))
+        ;; PROBLEM 2: SPACEs before TAB
+        (cond
+         ;; ACTION: replace SPACEs before TAB by TABs, if
+         ;; `indent-tabs-mode' is non-nil; otherwise, replace TABs
+         ;; by SPACEs.
+         ((memq 'space-before-tab whitespace-style)
+          (whitespace-replace-action
+           (if whitespace-indent-tabs-mode 'tabify 'untabify)
+           rstart rend whitespace-space-before-tab-regexp
+           (if whitespace-indent-tabs-mode 0 2)))
+         ;; ACTION: replace SPACEs before TAB by TABs.
+         ((memq 'space-before-tab::tab whitespace-style)
+          (whitespace-replace-action
+           'tabify rstart rend
+           whitespace-space-before-tab-regexp 0))
+         ;; ACTION: replace TABs by SPACEs.
+         ((memq 'space-before-tab::space whitespace-style)
+          (whitespace-replace-action
+           'untabify rstart rend
+           whitespace-space-before-tab-regexp 2))))
       (set-marker rend nil))))         ; point marker to nowhere
 
 
@@ -1710,74 +1708,73 @@ cleaning up these problems."
   (interactive "r")
   (setq force (or current-prefix-arg force))
   (save-excursion
-    (save-match-data                ;FIXME: Why?
-      (let* ((has-bogus nil)
-            (rstart    (min start end))
-            (rend      (max start end))
-             ;; Fall back to whitespace-style so we can run before
-             ;; before the mode is active.
-             (style     (copy-sequence
-                         (or whitespace-active-style whitespace-style)))
-            (bogus-list
-             (mapcar
-              #'(lambda (option)
-                  (when force
-                    (add-to-list 'style (car option)))
-                  (goto-char rstart)
-                  (let ((regexp
-                         (cond
-                          ((eq (car option) 'indentation)
-                           (whitespace-indentation-regexp))
-                          ((eq (car option) 'indentation::tab)
-                           (whitespace-indentation-regexp 'tab))
-                          ((eq (car option) 'indentation::space)
-                           (whitespace-indentation-regexp 'space))
-                          ((eq (car option) 'space-after-tab)
-                           (whitespace-space-after-tab-regexp))
-                          ((eq (car option) 'space-after-tab::tab)
-                           (whitespace-space-after-tab-regexp 'tab))
-                          ((eq (car option) 'space-after-tab::space)
-                           (whitespace-space-after-tab-regexp 'space))
-                          (t
-                           (cdr option)))))
-                    (when (re-search-forward regexp rend t)
-                       (unless has-bogus
-                         (setq has-bogus (memq (car option) style)))
-                       t)))
-              whitespace-report-list)))
-       (when (pcase report-if-bogus (`nil t) (`never nil) (_ has-bogus))
-         (whitespace-kill-buffer whitespace-report-buffer-name)
-         ;; `whitespace-indent-tabs-mode' is local to current buffer
-         ;; `whitespace-tab-width' is local to current buffer
-         (let ((ws-indent-tabs-mode whitespace-indent-tabs-mode)
-               (ws-tab-width whitespace-tab-width))
-           (with-current-buffer (get-buffer-create
-                                 whitespace-report-buffer-name)
-             (erase-buffer)
-             (insert (if ws-indent-tabs-mode
-                         (car whitespace-report-text)
-                       (cdr whitespace-report-text)))
-             (goto-char (point-min))
-             (forward-line 3)
-             (dolist (option whitespace-report-list)
-               (forward-line 1)
-               (whitespace-mark-x
-                27 (memq (car option) style))
-               (whitespace-mark-x 7 (car bogus-list))
-               (setq bogus-list (cdr bogus-list)))
-             (forward-line 1)
-             (whitespace-insert-value ws-indent-tabs-mode)
-             (whitespace-insert-value ws-tab-width)
-             (when has-bogus
-               (goto-char (point-max))
-               (insert (substitute-command-keys
-                         " Type `\\[whitespace-cleanup]'")
-                       " to cleanup the buffer.\n\n"
-                       (substitute-command-keys
-                         " Type `\\[whitespace-cleanup-region]'")
-                       " to cleanup a region.\n\n"))
-             (whitespace-display-window (current-buffer)))))
-       has-bogus))))
+    (let* ((has-bogus nil)
+           (rstart    (min start end))
+           (rend      (max start end))
+           ;; Fall back to whitespace-style so we can run before
+           ;; before the mode is active.
+           (style     (copy-sequence
+                       (or whitespace-active-style whitespace-style)))
+           (bogus-list
+            (mapcar
+             #'(lambda (option)
+                 (when force
+                   (add-to-list 'style (car option)))
+                 (goto-char rstart)
+                 (let ((regexp
+                        (cond
+                         ((eq (car option) 'indentation)
+                          (whitespace-indentation-regexp))
+                         ((eq (car option) 'indentation::tab)
+                          (whitespace-indentation-regexp 'tab))
+                         ((eq (car option) 'indentation::space)
+                          (whitespace-indentation-regexp 'space))
+                         ((eq (car option) 'space-after-tab)
+                          (whitespace-space-after-tab-regexp))
+                         ((eq (car option) 'space-after-tab::tab)
+                          (whitespace-space-after-tab-regexp 'tab))
+                         ((eq (car option) 'space-after-tab::space)
+                          (whitespace-space-after-tab-regexp 'space))
+                         (t
+                          (cdr option)))))
+                   (when (re-search-forward regexp rend t)
+                     (unless has-bogus
+                       (setq has-bogus (memq (car option) style)))
+                     t)))
+             whitespace-report-list)))
+      (when (pcase report-if-bogus (`nil t) (`never nil) (_ has-bogus))
+        (whitespace-kill-buffer whitespace-report-buffer-name)
+        ;; `whitespace-indent-tabs-mode' is local to current buffer
+        ;; `whitespace-tab-width' is local to current buffer
+        (let ((ws-indent-tabs-mode whitespace-indent-tabs-mode)
+              (ws-tab-width whitespace-tab-width))
+          (with-current-buffer (get-buffer-create
+                                whitespace-report-buffer-name)
+            (erase-buffer)
+            (insert (if ws-indent-tabs-mode
+                        (car whitespace-report-text)
+                      (cdr whitespace-report-text)))
+            (goto-char (point-min))
+            (forward-line 3)
+            (dolist (option whitespace-report-list)
+              (forward-line 1)
+              (whitespace-mark-x
+               27 (memq (car option) style))
+              (whitespace-mark-x 7 (car bogus-list))
+              (setq bogus-list (cdr bogus-list)))
+            (forward-line 1)
+            (whitespace-insert-value ws-indent-tabs-mode)
+            (whitespace-insert-value ws-tab-width)
+            (when has-bogus
+              (goto-char (point-max))
+              (insert (substitute-command-keys
+                       " Type `\\[whitespace-cleanup]'")
+                      " to cleanup the buffer.\n\n"
+                      (substitute-command-keys
+                       " Type `\\[whitespace-cleanup-region]'")
+                      " to cleanup a region.\n\n"))
+            (whitespace-display-window (current-buffer)))))
+      has-bogus)))
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/lisp/wid-browse.el b/lisp/wid-browse.el
index 6065ebc..f105de2 100644
--- a/lisp/wid-browse.el
+++ b/lisp/wid-browse.el
@@ -1,6 +1,6 @@
 ;;; wid-browse.el --- functions for browsing widgets
 ;;
-;; Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <address@hidden>
 ;; Keywords: extensions
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 10b1045..ca402c1 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1,6 +1,6 @@
 ;;; wid-edit.el --- Functions for creating and using widgets 
-*-byte-compile-dynamic: t; lexical-binding:t -*-
 ;;
-;; Copyright (C) 1996-1997, 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1997, 1999-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/widget.el b/lisp/widget.el
index 1574fb2..30d2818 100644
--- a/lisp/widget.el
+++ b/lisp/widget.el
@@ -1,6 +1,6 @@
 ;;; widget.el --- a library of user interface components
 ;;
-;; Copyright (C) 1996-1997, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1997, 2001-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <address@hidden>
 ;; Keywords: help, extensions, faces, hypermedia
diff --git a/lisp/windmove.el b/lisp/windmove.el
index 7cfb7d5..0797ef8 100644
--- a/lisp/windmove.el
+++ b/lisp/windmove.el
@@ -1,6 +1,6 @@
 ;;; windmove.el --- directional window-selection routines
 ;;
-;; Copyright (C) 1998-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Hovav Shacham (address@hidden)
 ;; Created: 17 October 1998
diff --git a/lisp/window.el b/lisp/window.el
index fdb67ed..358d7bc 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -1,6 +1,6 @@
 ;;; window.el --- GNU Emacs window commands aside from those written in C  -*- 
lexical-binding:t -*-
 
-;; Copyright (C) 1985, 1989, 1992-1994, 2000-2016 Free Software
+;; Copyright (C) 1985, 1989, 1992-1994, 2000-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Maintainer: address@hidden
diff --git a/lisp/winner.el b/lisp/winner.el
index 9a6f5d5..7b04833 100644
--- a/lisp/winner.el
+++ b/lisp/winner.el
@@ -1,6 +1,6 @@
 ;;; winner.el --- Restore old window configurations
 
-;; Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 
 ;; Author: Ivar Rummelhoff <address@hidden>
 ;; Created: 27 Feb 1997
diff --git a/lisp/woman.el b/lisp/woman.el
index 45b03a9..2021fb2 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -1,6 +1,6 @@
 ;;; woman.el --- browse UN*X manual pages `wo (without) man'
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Francis J. Wright <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el
index eea9e96..80ec410 100644
--- a/lisp/x-dnd.el
+++ b/lisp/x-dnd.el
@@ -1,6 +1,6 @@
 ;;; x-dnd.el --- drag and drop support for X
 
-;; Copyright (C) 2004-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 ;; Author: Jan Djärv <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/lisp/xml.el b/lisp/xml.el
index 2563c13..be2ac96 100644
--- a/lisp/xml.el
+++ b/lisp/xml.el
@@ -1,6 +1,6 @@
 ;;; xml.el --- XML parser -*- lexical-binding: t -*-
 
-;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Emmanuel Briot  <address@hidden>
 ;; Maintainer: Mark A. Hershberger <address@hidden>
@@ -646,8 +646,10 @@ surpassed `xml-entity-expansion-limit'"))))
 (defun xml-parse-attlist (&optional xml-ns)
   "Return the attribute-list after point.
 Leave point at the first non-blank character after the tag."
-  (let ((attlist ())
-       end-pos name)
+  (let* ((attlist ())
+        (symbol-qnames (eq (car-safe xml-ns) 'symbol-qnames))
+        (xml-ns (if symbol-qnames (cdr xml-ns) xml-ns))
+        end-pos name)
     (skip-syntax-forward " ")
     (while (looking-at (eval-when-compile
                         (concat "\\(" xml-name-re "\\)\\s-*=\\s-*")))
diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el
index d2d0cf5..acb3018 100644
--- a/lisp/xt-mouse.el
+++ b/lisp/xt-mouse.el
@@ -1,6 +1,6 @@
 ;;; xt-mouse.el --- support the mouse when emacs run in an xterm -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 1994, 2000-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2000-2017 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <address@hidden>
 ;; Keywords: mouse, terminals
diff --git a/lisp/xwidget.el b/lisp/xwidget.el
index 6443954..c908f1a 100644
--- a/lisp/xwidget.el
+++ b/lisp/xwidget.el
@@ -1,6 +1,6 @@
 ;;; xwidget.el --- api functions for xwidgets  -*- lexical-binding: t -*-
 ;;
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 ;;
 ;; Author: Joakim Verona (address@hidden)
 ;;
diff --git a/lwlib/ChangeLog.1 b/lwlib/ChangeLog.1
index 805a64c..5625949 100644
--- a/lwlib/ChangeLog.1
+++ b/lwlib/ChangeLog.1
@@ -1964,7 +1964,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1995-1999, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1995-1999, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/lwlib/Makefile.in b/lwlib/Makefile.in
index 94af056..d6a8f50 100644
--- a/lwlib/Makefile.in
+++ b/lwlib/Makefile.in
@@ -1,7 +1,7 @@
 ### @configure_input@
 
 # Copyright (C) 1992, 1993 Lucid, Inc.
-# Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+# Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 #
 # This file is part of the Lucid Widget Library.
 #
@@ -26,7 +26,6 @@ address@hidden@
 # MinGW CPPFLAGS may use this.
 address@hidden@
 address@hidden@
address@hidden@
 address@hidden@
 address@hidden@
 address@hidden@
diff --git a/lwlib/deps.mk b/lwlib/deps.mk
index ef405d5..525c9f1 100644
--- a/lwlib/deps.mk
+++ b/lwlib/deps.mk
@@ -1,7 +1,7 @@
 ### deps.mk --- lwlib/Makefile fragment for GNU Emacs
 
 # Copyright (C) 1992, 1993 Lucid, Inc.
-# Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+# Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 #
 # This file is part of the Lucid Widget Library.
 #
diff --git a/lwlib/lwlib-Xaw.c b/lwlib/lwlib-Xaw.c
index f153407..af57a7f 100644
--- a/lwlib/lwlib-Xaw.c
+++ b/lwlib/lwlib-Xaw.c
@@ -1,7 +1,7 @@
 /* The lwlib interface to Athena widgets.
 
 Copyright (C) 1993 Chuck Thompson <address@hidden>
-Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of the Lucid Widget Library.
 
diff --git a/lwlib/lwlib-Xlw.c b/lwlib/lwlib-Xlw.c
index f7713a1..10ed326 100644
--- a/lwlib/lwlib-Xlw.c
+++ b/lwlib/lwlib-Xlw.c
@@ -1,7 +1,7 @@
 /* The lwlib interface to "xlwmenu" menus.
 
 Copyright (C) 1992 Lucid, Inc.
-Copyright (C) 1994, 2000-2016 Free Software Foundation, Inc.
+Copyright (C) 1994, 2000-2017 Free Software Foundation, Inc.
 
 This file is part of the Lucid Widget Library.
 
diff --git a/lwlib/lwlib-Xm.c b/lwlib/lwlib-Xm.c
index 45faff8..6e1e0d6 100644
--- a/lwlib/lwlib-Xm.c
+++ b/lwlib/lwlib-Xm.c
@@ -1,6 +1,6 @@
 /* The lwlib interface to Motif widgets.
 
-Copyright (C) 1994-1997, 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1994-1997, 1999-2017 Free Software Foundation, Inc.
 Copyright (C) 1992 Lucid, Inc.
 
 This file is part of the Lucid Widget Library.
diff --git a/lwlib/lwlib-int.h b/lwlib/lwlib-int.h
index 4b8ee65..5b73997 100644
--- a/lwlib/lwlib-int.h
+++ b/lwlib/lwlib-int.h
@@ -1,6 +1,6 @@
 /*
 Copyright (C) 1992 Lucid, Inc.
-Copyright (C) 2000-2016 Free Software Foundation, Inc.
+Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 This file is part of the Lucid Widget Library.
 
diff --git a/lwlib/lwlib-utils.c b/lwlib/lwlib-utils.c
index e2ff989..3c7a7a6 100644
--- a/lwlib/lwlib-utils.c
+++ b/lwlib/lwlib-utils.c
@@ -1,7 +1,7 @@
 /* Defines some widget utility functions.
 
 Copyright (C) 1992 Lucid, Inc.
-Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of the Lucid Widget Library.
 
diff --git a/lwlib/lwlib-widget.h b/lwlib/lwlib-widget.h
index 22d9b3e..6a88d2a 100644
--- a/lwlib/lwlib-widget.h
+++ b/lwlib/lwlib-widget.h
@@ -1,6 +1,6 @@
 /*
 Copyright (C) 1992, 1993 Lucid, Inc.
-Copyright (C) 1994, 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1994, 1999-2017 Free Software Foundation, Inc.
 
 This file is part of the Lucid Widget Library.
 
diff --git a/lwlib/lwlib.c b/lwlib/lwlib.c
index e66147f..18a4610 100644
--- a/lwlib/lwlib.c
+++ b/lwlib/lwlib.c
@@ -1,7 +1,7 @@
 /* A general interface to the widgets of different toolkits.
 
 Copyright (C) 1992, 1993 Lucid, Inc.
-Copyright (C) 1994-1996, 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1994-1996, 1999-2017 Free Software Foundation, Inc.
 
 This file is part of the Lucid Widget Library.
 
diff --git a/lwlib/lwlib.h b/lwlib/lwlib.h
index f59f88a..f885369 100644
--- a/lwlib/lwlib.h
+++ b/lwlib/lwlib.h
@@ -1,6 +1,6 @@
 /*
 Copyright (C) 1992, 1993 Lucid, Inc.
-Copyright (C) 1994, 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1994, 1999-2017 Free Software Foundation, Inc.
 
 This file is part of the Lucid Widget Library.
 
diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c
index 94f10f3..11be340 100644
--- a/lwlib/xlwmenu.c
+++ b/lwlib/xlwmenu.c
@@ -1,7 +1,7 @@
 /* Implements a lightweight menubar widget.
 
 Copyright (C) 1992 Lucid, Inc.
-Copyright (C) 1994-1995, 1997, 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1994-1995, 1997, 1999-2017 Free Software Foundation, Inc.
 
 This file is part of the Lucid Widget Library.
 
diff --git a/lwlib/xlwmenu.h b/lwlib/xlwmenu.h
index 43c17f1..a6aed48 100644
--- a/lwlib/xlwmenu.h
+++ b/lwlib/xlwmenu.h
@@ -1,6 +1,6 @@
 /* Interface of a lightweight menubar widget.
 
-Copyright (C) 2002-2016 Free Software Foundation, Inc.
+Copyright (C) 2002-2017 Free Software Foundation, Inc.
 Copyright (C) 1992 Lucid, Inc.
 
 This file is part of the Lucid Widget Library.
diff --git a/lwlib/xlwmenuP.h b/lwlib/xlwmenuP.h
index 893ea0b..a89934c 100644
--- a/lwlib/xlwmenuP.h
+++ b/lwlib/xlwmenuP.h
@@ -1,6 +1,6 @@
 /* Internals of a lightweight menubar widget.
 
-Copyright (C) 2002-2016 Free Software Foundation, Inc.
+Copyright (C) 2002-2017 Free Software Foundation, Inc.
 Copyright (C) 1992 Lucid, Inc.
 
 This file is part of the Lucid Widget Library.
diff --git a/m4/00gnulib.m4 b/m4/00gnulib.m4
index bb37e32..bb3512f 100644
--- a/m4/00gnulib.m4
+++ b/m4/00gnulib.m4
@@ -1,5 +1,5 @@
 # 00gnulib.m4 serial 3
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2017 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.
diff --git a/m4/absolute-header.m4 b/m4/absolute-header.m4
index 7ffc38d..c73adc8 100644
--- a/m4/absolute-header.m4
+++ b/m4/absolute-header.m4
@@ -1,5 +1,5 @@
 # absolute-header.m4 serial 16
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2017 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.
diff --git a/m4/acl.m4 b/m4/acl.m4
index ce0fe6b..bf988d5 100644
--- a/m4/acl.m4
+++ b/m4/acl.m4
@@ -1,7 +1,7 @@
 # acl.m4 - check for access control list (ACL) primitives
 # serial 22
 
-# Copyright (C) 2002, 2004-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2004-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/alloca.m4 b/m4/alloca.m4
index 2382ff1..7f0604c 100644
--- a/m4/alloca.m4
+++ b/m4/alloca.m4
@@ -1,5 +1,5 @@
 # alloca.m4 serial 14
-dnl Copyright (C) 2002-2004, 2006-2007, 2009-2016 Free Software Foundation,
+dnl Copyright (C) 2002-2004, 2006-2007, 2009-2017 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
diff --git a/m4/byteswap.m4 b/m4/byteswap.m4
index 27f0fd6..f20d0f4 100644
--- a/m4/byteswap.m4
+++ b/m4/byteswap.m4
@@ -1,5 +1,5 @@
 # byteswap.m4 serial 4
-dnl Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2007, 2009-2017 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.
diff --git a/m4/c-strtod.m4 b/m4/c-strtod.m4
index ed04e2c..c2f2987 100644
--- a/m4/c-strtod.m4
+++ b/m4/c-strtod.m4
@@ -1,6 +1,6 @@
 # c-strtod.m4 serial 15
 
-# Copyright (C) 2004-2006, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2004-2006, 2009-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/clock_time.m4 b/m4/clock_time.m4
index bb20344..21b6f25 100644
--- a/m4/clock_time.m4
+++ b/m4/clock_time.m4
@@ -1,5 +1,5 @@
 # clock_time.m4 serial 10
-dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2017 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.
diff --git a/m4/close-stream.m4 b/m4/close-stream.m4
index ddda027..65a1acc 100644
--- a/m4/close-stream.m4
+++ b/m4/close-stream.m4
@@ -1,5 +1,5 @@
 #serial 4
-dnl Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2007, 2009-2017 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.
diff --git a/m4/count-one-bits.m4 b/m4/count-one-bits.m4
index 8db3bf1..e1ff59d 100644
--- a/m4/count-one-bits.m4
+++ b/m4/count-one-bits.m4
@@ -1,5 +1,5 @@
 # count-one-bits.m4 serial 3
-dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2017 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.
diff --git a/m4/count-trailing-zeros.m4 b/m4/count-trailing-zeros.m4
index 1b815ce..9a2cfa0 100644
--- a/m4/count-trailing-zeros.m4
+++ b/m4/count-trailing-zeros.m4
@@ -1,5 +1,5 @@
 # count-trailing-zeros.m4
-dnl Copyright (C) 2013-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2013-2017 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.
diff --git a/m4/dirent_h.m4 b/m4/dirent_h.m4
index 68836a4..1f9c4f3 100644
--- a/m4/dirent_h.m4
+++ b/m4/dirent_h.m4
@@ -1,5 +1,5 @@
 # dirent_h.m4 serial 16
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2017 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.
diff --git a/m4/dirfd.m4 b/m4/dirfd.m4
index 1d7cb08..b4ec3d1 100644
--- a/m4/dirfd.m4
+++ b/m4/dirfd.m4
@@ -2,7 +2,7 @@
 
 dnl Find out how to get the file descriptor associated with an open DIR*.
 
-# Copyright (C) 2001-2006, 2008-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001-2006, 2008-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/dup2.m4 b/m4/dup2.m4
index 5b68312..bdb9ae2 100644
--- a/m4/dup2.m4
+++ b/m4/dup2.m4
@@ -1,5 +1,5 @@
 #serial 25
-dnl Copyright (C) 2002, 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005, 2007, 2009-2017 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.
diff --git a/m4/environ.m4 b/m4/environ.m4
index 9a0ea7e..3b9fa5f 100644
--- a/m4/environ.m4
+++ b/m4/environ.m4
@@ -1,5 +1,5 @@
 # environ.m4 serial 6
-dnl Copyright (C) 2001-2004, 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2004, 2006-2017 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.
diff --git a/m4/errno_h.m4 b/m4/errno_h.m4
index b111fce..9f0f2f2 100644
--- a/m4/errno_h.m4
+++ b/m4/errno_h.m4
@@ -1,5 +1,5 @@
 # errno_h.m4 serial 12
-dnl Copyright (C) 2004, 2006, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2004, 2006, 2008-2017 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.
diff --git a/m4/euidaccess.m4 b/m4/euidaccess.m4
index 9913f84..02fca29 100644
--- a/m4/euidaccess.m4
+++ b/m4/euidaccess.m4
@@ -1,5 +1,5 @@
 # euidaccess.m4 serial 15
-dnl Copyright (C) 2002-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2017 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.
diff --git a/m4/execinfo.m4 b/m4/execinfo.m4
index 2f13a1f..38483f5 100644
--- a/m4/execinfo.m4
+++ b/m4/execinfo.m4
@@ -1,6 +1,6 @@
 # Check for GNU-style execinfo.h.
 
-dnl Copyright 2012-2016 Free Software Foundation, Inc.
+dnl Copyright 2012-2017 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.
diff --git a/m4/extensions.m4 b/m4/extensions.m4
index e114a6f..c60f537 100644
--- a/m4/extensions.m4
+++ b/m4/extensions.m4
@@ -1,7 +1,7 @@
 # serial 15  -*- Autoconf -*-
 # Enable extensions on systems that normally disable them.
 
-# Copyright (C) 2003, 2006-2016 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/extern-inline.m4 b/m4/extern-inline.m4
index 1e578f3..00f9609 100644
--- a/m4/extern-inline.m4
+++ b/m4/extern-inline.m4
@@ -1,6 +1,6 @@
 dnl 'extern inline' a la ISO C99.
 
-dnl Copyright 2012-2016 Free Software Foundation, Inc.
+dnl Copyright 2012-2017 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.
diff --git a/m4/faccessat.m4 b/m4/faccessat.m4
index dafce87..837ae54 100644
--- a/m4/faccessat.m4
+++ b/m4/faccessat.m4
@@ -1,7 +1,7 @@
 # serial 6
 # See if we need to provide faccessat replacement.
 
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2017 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.
diff --git a/m4/fcntl.m4 b/m4/fcntl.m4
index bb61470..dda3b5f 100644
--- a/m4/fcntl.m4
+++ b/m4/fcntl.m4
@@ -1,5 +1,5 @@
 # fcntl.m4 serial 9
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2017 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.
diff --git a/m4/fcntl_h.m4 b/m4/fcntl_h.m4
index ef0d78d..09c21ef 100644
--- a/m4/fcntl_h.m4
+++ b/m4/fcntl_h.m4
@@ -1,6 +1,6 @@
 # serial 15
 # Configure fcntl.h.
-dnl Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2007, 2009-2017 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.
diff --git a/m4/fdatasync.m4 b/m4/fdatasync.m4
index 5a32e74..949065f 100644
--- a/m4/fdatasync.m4
+++ b/m4/fdatasync.m4
@@ -1,5 +1,5 @@
 # fdatasync.m4 serial 4
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2017 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.
diff --git a/m4/fdopendir.m4 b/m4/fdopendir.m4
index cadbee3..51c2b64 100644
--- a/m4/fdopendir.m4
+++ b/m4/fdopendir.m4
@@ -1,7 +1,7 @@
 # serial 10
 # See if we need to provide fdopendir.
 
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2017 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.
diff --git a/m4/filemode.m4 b/m4/filemode.m4
index 839fcc1..91602e1 100644
--- a/m4/filemode.m4
+++ b/m4/filemode.m4
@@ -1,5 +1,5 @@
 # filemode.m4 serial 8
-dnl Copyright (C) 2002, 2005-2006, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005-2006, 2009-2017 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.
diff --git a/m4/flexmember.m4 b/m4/flexmember.m4
index 155ae9b..35580ac 100644
--- a/m4/flexmember.m4
+++ b/m4/flexmember.m4
@@ -1,7 +1,7 @@
 # serial 4
 # Check for flexible array member support.
 
-# Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/fpending.m4 b/m4/fpending.m4
index f6776a8..3a5e934 100644
--- a/m4/fpending.m4
+++ b/m4/fpending.m4
@@ -1,6 +1,6 @@
 # serial 22
 
-# Copyright (C) 2000-2001, 2004-2016 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2004-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/fstatat.m4 b/m4/fstatat.m4
index 84177f0..75cf011 100644
--- a/m4/fstatat.m4
+++ b/m4/fstatat.m4
@@ -1,5 +1,5 @@
 # fstatat.m4 serial 3
-dnl Copyright (C) 2004-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2004-2017 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.
diff --git a/m4/fsync.m4 b/m4/fsync.m4
index 405d43d..f1399de 100644
--- a/m4/fsync.m4
+++ b/m4/fsync.m4
@@ -1,5 +1,5 @@
 # fsync.m4 serial 2
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2017 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.
diff --git a/m4/getdtablesize.m4 b/m4/getdtablesize.m4
index 1bf4db0..1af2a24 100644
--- a/m4/getdtablesize.m4
+++ b/m4/getdtablesize.m4
@@ -1,5 +1,5 @@
 # getdtablesize.m4 serial 6
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2017 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.
diff --git a/m4/getgroups.m4 b/m4/getgroups.m4
index bf01f32..02ce235 100644
--- a/m4/getgroups.m4
+++ b/m4/getgroups.m4
@@ -3,7 +3,7 @@
 dnl From Jim Meyering.
 dnl A wrapper around AC_FUNC_GETGROUPS.
 
-# Copyright (C) 1996-1997, 1999-2004, 2008-2016 Free Software Foundation, Inc.
+# Copyright (C) 1996-1997, 1999-2004, 2008-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff --git a/m4/getloadavg.m4 b/m4/getloadavg.m4
index 76547d1..86334cd 100644
--- a/m4/getloadavg.m4
+++ b/m4/getloadavg.m4
@@ -1,6 +1,6 @@
 # Check for getloadavg.
 
-# Copyright (C) 1992-1996, 1999-2000, 2002-2003, 2006, 2008-2016 Free Software
+# Copyright (C) 1992-1996, 1999-2000, 2002-2003, 2006, 2008-2017 Free Software
 # Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
diff --git a/m4/getopt.m4 b/m4/getopt.m4
index ce6ec67..7a94626 100644
--- a/m4/getopt.m4
+++ b/m4/getopt.m4
@@ -1,5 +1,5 @@
 # getopt.m4 serial 44
-dnl Copyright (C) 2002-2006, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2008-2017 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.
diff --git a/m4/gettime.m4 b/m4/gettime.m4
index 9843ed4..1cdab27 100644
--- a/m4/gettime.m4
+++ b/m4/gettime.m4
@@ -1,5 +1,5 @@
 # gettime.m4 serial 8
-dnl Copyright (C) 2002, 2004-2006, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004-2006, 2009-2017 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.
diff --git a/m4/gettimeofday.m4 b/m4/gettimeofday.m4
index 4ae5d63..4f501e5 100644
--- a/m4/gettimeofday.m4
+++ b/m4/gettimeofday.m4
@@ -1,6 +1,6 @@
 # serial 21
 
-# Copyright (C) 2001-2003, 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001-2003, 2005, 2007, 2009-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4
index f8454c8..7d9b40b 100644
--- a/m4/gnulib-common.m4
+++ b/m4/gnulib-common.m4
@@ -1,5 +1,5 @@
 # gnulib-common.m4 serial 36
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2017 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.
diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4
index 171a3ef..14af9fb 100644
--- a/m4/gnulib-comp.m4
+++ b/m4/gnulib-comp.m4
@@ -1,5 +1,5 @@
 # DO NOT EDIT! GENERATED AUTOMATICALLY!
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -265,7 +265,6 @@ AC_DEFUN([gl_INIT],
     GNULIB_GL_UNISTD_H_GETOPT=1
   fi
   AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
-  gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu])
   gl_FUNC_GETOPT_POSIX
   if test $REPLACE_GETOPT = 1; then
     AC_LIBOBJ([getopt])
@@ -1099,4 +1098,5 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/warn-on-use.m4
   m4/warnings.m4
   m4/wchar_t.m4
+  m4/wint_t.m4
 ])
diff --git a/m4/gnulib-tool.m4 b/m4/gnulib-tool.m4
index 0d2ee44..2e2d8f6 100644
--- a/m4/gnulib-tool.m4
+++ b/m4/gnulib-tool.m4
@@ -1,5 +1,5 @@
 # gnulib-tool.m4 serial 2
-dnl Copyright (C) 2004-2005, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2004-2005, 2009-2017 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.
diff --git a/m4/group-member.m4 b/m4/group-member.m4
index 9e7e3e1..a68538d 100644
--- a/m4/group-member.m4
+++ b/m4/group-member.m4
@@ -1,6 +1,6 @@
 # serial 14
 
-# Copyright (C) 1999-2001, 2003-2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 1999-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff --git a/m4/include_next.m4 b/m4/include_next.m4
index db0f2c0..e687e23 100644
--- a/m4/include_next.m4
+++ b/m4/include_next.m4
@@ -1,5 +1,5 @@
 # include_next.m4 serial 23
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2017 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.
diff --git a/m4/inttypes.m4 b/m4/inttypes.m4
index 61cdb1a..434a7ee 100644
--- a/m4/inttypes.m4
+++ b/m4/inttypes.m4
@@ -1,5 +1,5 @@
 # inttypes.m4 serial 26
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2017 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.
diff --git a/m4/largefile.m4 b/m4/largefile.m4
index 8bbdfaa..790f7c0 100644
--- a/m4/largefile.m4
+++ b/m4/largefile.m4
@@ -1,6 +1,6 @@
 # Enable large files on systems where this is not the default.
 
-# Copyright 1992-1996, 1998-2016 Free Software Foundation, Inc.
+# Copyright 1992-1996, 1998-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/limits-h.m4 b/m4/limits-h.m4
index 31fdf0a..443f91b 100644
--- a/m4/limits-h.m4
+++ b/m4/limits-h.m4
@@ -1,6 +1,6 @@
 dnl Check whether limits.h has needed features.
 
-dnl Copyright 2016 Free Software Foundation, Inc.
+dnl Copyright 2016-2017 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.
diff --git a/m4/longlong.m4 b/m4/longlong.m4
index 36d8b12..9a3294b 100644
--- a/m4/longlong.m4
+++ b/m4/longlong.m4
@@ -1,5 +1,5 @@
 # longlong.m4 serial 17
-dnl Copyright (C) 1999-2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 1999-2007, 2009-2017 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.
diff --git a/m4/lstat.m4 b/m4/lstat.m4
index e143d5c..953c117 100644
--- a/m4/lstat.m4
+++ b/m4/lstat.m4
@@ -1,6 +1,6 @@
 # serial 27
 
-# Copyright (C) 1997-2001, 2003-2016 Free Software Foundation, Inc.
+# Copyright (C) 1997-2001, 2003-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff --git a/m4/manywarnings.m4 b/m4/manywarnings.m4
index 4f701f4..0f06ade 100644
--- a/m4/manywarnings.m4
+++ b/m4/manywarnings.m4
@@ -1,5 +1,5 @@
 # manywarnings.m4 serial 8
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2017 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.
diff --git a/m4/md5.m4 b/m4/md5.m4
index f81f42a..6d922da 100644
--- a/m4/md5.m4
+++ b/m4/md5.m4
@@ -1,5 +1,5 @@
 # md5.m4 serial 14
-dnl Copyright (C) 2002-2006, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2008-2017 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.
diff --git a/m4/memrchr.m4 b/m4/memrchr.m4
index 6e7df5c..e180f61 100644
--- a/m4/memrchr.m4
+++ b/m4/memrchr.m4
@@ -1,5 +1,5 @@
 # memrchr.m4 serial 10
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2016 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2017 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
diff --git a/m4/mkostemp.m4 b/m4/mkostemp.m4
index 1f44a03..337f17b 100644
--- a/m4/mkostemp.m4
+++ b/m4/mkostemp.m4
@@ -1,5 +1,5 @@
 # mkostemp.m4 serial 2
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2017 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.
diff --git a/m4/mktime.m4 b/m4/mktime.m4
index 23cad73..d594ddc 100644
--- a/m4/mktime.m4
+++ b/m4/mktime.m4
@@ -1,5 +1,5 @@
 # serial 27
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2016 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2017 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
diff --git a/m4/multiarch.m4 b/m4/multiarch.m4
index 43b5d05..30006cb 100644
--- a/m4/multiarch.m4
+++ b/m4/multiarch.m4
@@ -1,5 +1,5 @@
 # multiarch.m4 serial 7
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2017 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.
diff --git a/m4/nocrash.m4 b/m4/nocrash.m4
index d8dd8f1..2c2c5fb 100644
--- a/m4/nocrash.m4
+++ b/m4/nocrash.m4
@@ -1,5 +1,5 @@
 # nocrash.m4 serial 4
-dnl Copyright (C) 2005, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2009-2017 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.
diff --git a/m4/off_t.m4 b/m4/off_t.m4
index 282751b..92c45ef 100644
--- a/m4/off_t.m4
+++ b/m4/off_t.m4
@@ -1,5 +1,5 @@
 # off_t.m4 serial 1
-dnl Copyright (C) 2012-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2017 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.
diff --git a/m4/pathmax.m4 b/m4/pathmax.m4
index 6f8e59a..c6c9f24 100644
--- a/m4/pathmax.m4
+++ b/m4/pathmax.m4
@@ -1,5 +1,5 @@
 # pathmax.m4 serial 10
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2016 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
diff --git a/m4/pipe2.m4 b/m4/pipe2.m4
index c09fcee..7393343 100644
--- a/m4/pipe2.m4
+++ b/m4/pipe2.m4
@@ -1,5 +1,5 @@
 # pipe2.m4 serial 2
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2017 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.
diff --git a/m4/pselect.m4 b/m4/pselect.m4
index 2c620de..3f1c43f 100644
--- a/m4/pselect.m4
+++ b/m4/pselect.m4
@@ -1,5 +1,5 @@
 # pselect.m4 serial 2
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2017 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.
diff --git a/m4/pthread_sigmask.m4 b/m4/pthread_sigmask.m4
index 5b3e1ca..ce36aae 100644
--- a/m4/pthread_sigmask.m4
+++ b/m4/pthread_sigmask.m4
@@ -1,5 +1,5 @@
 # pthread_sigmask.m4 serial 16
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2017 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.
diff --git a/m4/putenv.m4 b/m4/putenv.m4
index c3c30d8..a8e3ab3 100644
--- a/m4/putenv.m4
+++ b/m4/putenv.m4
@@ -1,5 +1,5 @@
 # putenv.m4 serial 20
-dnl Copyright (C) 2002-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2017 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.
diff --git a/m4/readlink.m4 b/m4/readlink.m4
index ede0378..d3ba0ad 100644
--- a/m4/readlink.m4
+++ b/m4/readlink.m4
@@ -1,5 +1,5 @@
 # readlink.m4 serial 12
-dnl Copyright (C) 2003, 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007, 2009-2017 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.
diff --git a/m4/readlinkat.m4 b/m4/readlinkat.m4
index 428b183..e173e41 100644
--- a/m4/readlinkat.m4
+++ b/m4/readlinkat.m4
@@ -1,7 +1,7 @@
 # serial 5
 # See if we need to provide readlinkat replacement.
 
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2017 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.
diff --git a/m4/secure_getenv.m4 b/m4/secure_getenv.m4
index 3983173..6bd4afd 100644
--- a/m4/secure_getenv.m4
+++ b/m4/secure_getenv.m4
@@ -1,5 +1,5 @@
 # Look up an environment variable more securely.
-dnl Copyright 2013-2016 Free Software Foundation, Inc.
+dnl Copyright 2013-2017 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.
diff --git a/m4/setenv.m4 b/m4/setenv.m4
index 5d49aba..005aa8c 100644
--- a/m4/setenv.m4
+++ b/m4/setenv.m4
@@ -1,5 +1,5 @@
 # setenv.m4 serial 26
-dnl Copyright (C) 2001-2004, 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2004, 2006-2017 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.
diff --git a/m4/sha1.m4 b/m4/sha1.m4
index fbcb788..864a531 100644
--- a/m4/sha1.m4
+++ b/m4/sha1.m4
@@ -1,5 +1,5 @@
 # sha1.m4 serial 12
-dnl Copyright (C) 2002-2006, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2008-2017 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.
diff --git a/m4/sha256.m4 b/m4/sha256.m4
index 91f63b7..0ebbdf0 100644
--- a/m4/sha256.m4
+++ b/m4/sha256.m4
@@ -1,5 +1,5 @@
 # sha256.m4 serial 8
-dnl Copyright (C) 2005, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2008-2017 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.
diff --git a/m4/sha512.m4 b/m4/sha512.m4
index 3247e0a..b9db2fe 100644
--- a/m4/sha512.m4
+++ b/m4/sha512.m4
@@ -1,5 +1,5 @@
 # sha512.m4 serial 9
-dnl Copyright (C) 2005-2006, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2006, 2008-2017 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.
diff --git a/m4/sig2str.m4 b/m4/sig2str.m4
index 83acddd..c8b8996 100644
--- a/m4/sig2str.m4
+++ b/m4/sig2str.m4
@@ -1,5 +1,5 @@
 # serial 7
-dnl Copyright (C) 2002, 2005-2006, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005-2006, 2009-2017 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.
diff --git a/m4/signal_h.m4 b/m4/signal_h.m4
index bcfd7b4..eaf5ce9 100644
--- a/m4/signal_h.m4
+++ b/m4/signal_h.m4
@@ -1,5 +1,5 @@
 # signal_h.m4 serial 18
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2017 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.
diff --git a/m4/socklen.m4 b/m4/socklen.m4
index 634c43a..0a62f49 100644
--- a/m4/socklen.m4
+++ b/m4/socklen.m4
@@ -1,5 +1,5 @@
 # socklen.m4 serial 10
-dnl Copyright (C) 2005-2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2007, 2009-2017 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.
diff --git a/m4/ssize_t.m4 b/m4/ssize_t.m4
index 3e7b9e6..66ba9d4 100644
--- a/m4/ssize_t.m4
+++ b/m4/ssize_t.m4
@@ -1,5 +1,5 @@
 # ssize_t.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2001-2003, 2006, 2010-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2003, 2006, 2010-2017 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.
diff --git a/m4/st_dm_mode.m4 b/m4/st_dm_mode.m4
index debd753..ed2cff8 100644
--- a/m4/st_dm_mode.m4
+++ b/m4/st_dm_mode.m4
@@ -1,6 +1,6 @@
 # serial 6
 
-# Copyright (C) 1998-1999, 2001, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 1998-1999, 2001, 2009-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/stat-time.m4 b/m4/stat-time.m4
index 231cb74..4017fc9 100644
--- a/m4/stat-time.m4
+++ b/m4/stat-time.m4
@@ -1,6 +1,6 @@
 # Checks for stat-related time functions.
 
-# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2016 Free Software
+# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2017 Free Software
 # Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
diff --git a/m4/stat.m4 b/m4/stat.m4
index a794975..9ff77df 100644
--- a/m4/stat.m4
+++ b/m4/stat.m4
@@ -1,6 +1,6 @@
 # serial 11
 
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff --git a/m4/std-gnu11.m4 b/m4/std-gnu11.m4
index 10da26f..9dae9b1 100644
--- a/m4/std-gnu11.m4
+++ b/m4/std-gnu11.m4
@@ -7,7 +7,7 @@
 # or later is installed everywhere a Gnulib program might be developed.
 
 
-# Copyright (C) 2001-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001-2017 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
diff --git a/m4/stdalign.m4 b/m4/stdalign.m4
index 49980cd..3a12658 100644
--- a/m4/stdalign.m4
+++ b/m4/stdalign.m4
@@ -1,6 +1,6 @@
 # Check for stdalign.h that conforms to C11.
 
-dnl Copyright 2011-2016 Free Software Foundation, Inc.
+dnl Copyright 2011-2017 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.
diff --git a/m4/stddef_h.m4 b/m4/stddef_h.m4
index c045c65..f45def1 100644
--- a/m4/stddef_h.m4
+++ b/m4/stddef_h.m4
@@ -1,6 +1,6 @@
 dnl A placeholder for <stddef.h>, for platforms that have issues.
 # stddef_h.m4 serial 5
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2017 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.
diff --git a/m4/stdint.m4 b/m4/stdint.m4
index 05b6ab7..4ac854d 100644
--- a/m4/stdint.m4
+++ b/m4/stdint.m4
@@ -1,5 +1,5 @@
-# stdint.m4 serial 48
-dnl Copyright (C) 2001-2016 Free Software Foundation, Inc.
+# stdint.m4 serial 50
+dnl Copyright (C) 2001-2017 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.
@@ -12,6 +12,7 @@ AC_DEFUN_ONCE([gl_STDINT_H],
   AC_PREREQ([2.59])dnl
 
   AC_REQUIRE([gl_LIMITS_H])
+  AC_REQUIRE([gt_TYPE_WINT_T])
 
   dnl Check for long long int and unsigned long long int.
   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
@@ -354,7 +355,7 @@ int32_t i32 = INT32_C (0x7fffffff);
     gl_STDINT_TYPE_PROPERTIES
   fi
 
-  # The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH.
+  dnl The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH.
   LIMITS_H=limits.h
   AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"])
 
@@ -528,7 +529,7 @@ AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
   dnl requirement that wint_t is "unchanged by default argument promotions".
   dnl In this case gnulib's <wchar.h> and <wctype.h> override wint_t.
   dnl Set the variable BITSIZEOF_WINT_T accordingly.
-  if test $BITSIZEOF_WINT_T -lt 32; then
+  if test $GNULIB_OVERRIDES_WINT_T = 1; then
     BITSIZEOF_WINT_T=32
   fi
 ])
diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4
index eaa25a0..9ffbb85 100644
--- a/m4/stdio_h.m4
+++ b/m4/stdio_h.m4
@@ -1,5 +1,5 @@
 # stdio_h.m4 serial 48
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2017 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.
diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4
index 3999068..110fe2d 100644
--- a/m4/stdlib_h.m4
+++ b/m4/stdlib_h.m4
@@ -1,5 +1,5 @@
 # stdlib_h.m4 serial 43
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2017 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.
diff --git a/m4/stpcpy.m4 b/m4/stpcpy.m4
index 70bbfd8..3686567 100644
--- a/m4/stpcpy.m4
+++ b/m4/stpcpy.m4
@@ -1,5 +1,5 @@
 # stpcpy.m4 serial 8
-dnl Copyright (C) 2002, 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2007, 2009-2017 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.
diff --git a/m4/strftime.m4 b/m4/strftime.m4
index 9598e72..3a5db9b 100644
--- a/m4/strftime.m4
+++ b/m4/strftime.m4
@@ -1,6 +1,6 @@
 # serial 33
 
-# Copyright (C) 1996-1997, 1999-2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 1996-1997, 1999-2007, 2009-2017 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff --git a/m4/string_h.m4 b/m4/string_h.m4
index 0c5ec6f..3d2ad22 100644
--- a/m4/string_h.m4
+++ b/m4/string_h.m4
@@ -1,6 +1,6 @@
 # Configure a GNU-like replacement for <string.h>.
 
-# Copyright (C) 2007-2016 Free Software Foundation, Inc.
+# Copyright (C) 2007-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/strtoimax.m4 b/m4/strtoimax.m4
index 9d920ab..f0586f1 100644
--- a/m4/strtoimax.m4
+++ b/m4/strtoimax.m4
@@ -1,5 +1,5 @@
 # strtoimax.m4 serial 14
-dnl Copyright (C) 2002-2004, 2006, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2006, 2009-2017 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.
diff --git a/m4/strtoll.m4 b/m4/strtoll.m4
index 3ad665e..9c2a903 100644
--- a/m4/strtoll.m4
+++ b/m4/strtoll.m4
@@ -1,5 +1,5 @@
 # strtoll.m4 serial 7
-dnl Copyright (C) 2002, 2004, 2006, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004, 2006, 2008-2017 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.
diff --git a/m4/strtoull.m4 b/m4/strtoull.m4
index 78a67c7..c6b2150 100644
--- a/m4/strtoull.m4
+++ b/m4/strtoull.m4
@@ -1,5 +1,5 @@
 # strtoull.m4 serial 7
-dnl Copyright (C) 2002, 2004, 2006, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004, 2006, 2008-2017 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.
diff --git a/m4/strtoumax.m4 b/m4/strtoumax.m4
index 1a5ee4b..43ef5b5 100644
--- a/m4/strtoumax.m4
+++ b/m4/strtoumax.m4
@@ -1,5 +1,5 @@
 # strtoumax.m4 serial 12
-dnl Copyright (C) 2002-2004, 2006, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2006, 2009-2017 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.
diff --git a/m4/symlink.m4 b/m4/symlink.m4
index d15d915..220ea19 100644
--- a/m4/symlink.m4
+++ b/m4/symlink.m4
@@ -1,7 +1,7 @@
 # serial 6
 # See if we need to provide symlink replacement.
 
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2017 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.
diff --git a/m4/sys_select_h.m4 b/m4/sys_select_h.m4
index 23526e5..4ec2800 100644
--- a/m4/sys_select_h.m4
+++ b/m4/sys_select_h.m4
@@ -1,5 +1,5 @@
 # sys_select_h.m4 serial 20
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2017 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.
diff --git a/m4/sys_socket_h.m4 b/m4/sys_socket_h.m4
index ae500c7..3ecbe7c 100644
--- a/m4/sys_socket_h.m4
+++ b/m4/sys_socket_h.m4
@@ -1,5 +1,5 @@
 # sys_socket_h.m4 serial 23
-dnl Copyright (C) 2005-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2017 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.
diff --git a/m4/sys_stat_h.m4 b/m4/sys_stat_h.m4
index 3d43b6f..1e34ac4 100644
--- a/m4/sys_stat_h.m4
+++ b/m4/sys_stat_h.m4
@@ -1,5 +1,5 @@
 # sys_stat_h.m4 serial 28   -*- Autoconf -*-
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2017 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.
diff --git a/m4/sys_time_h.m4 b/m4/sys_time_h.m4
index 3061a9c..e622dbe 100644
--- a/m4/sys_time_h.m4
+++ b/m4/sys_time_h.m4
@@ -1,7 +1,7 @@
 # Configure a replacement for <sys/time.h>.
 # serial 8
 
-# Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/sys_types_h.m4 b/m4/sys_types_h.m4
index 159b005..2eb4e9e 100644
--- a/m4/sys_types_h.m4
+++ b/m4/sys_types_h.m4
@@ -1,5 +1,5 @@
 # sys_types_h.m4 serial 6
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2017 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.
diff --git a/m4/tempname.m4 b/m4/tempname.m4
index acf4c8d..a59f4c0 100644
--- a/m4/tempname.m4
+++ b/m4/tempname.m4
@@ -1,6 +1,6 @@
 #serial 5
 
-# Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2006-2007, 2009-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/time_h.m4 b/m4/time_h.m4
index eb2a631..b925678 100644
--- a/m4/time_h.m4
+++ b/m4/time_h.m4
@@ -1,6 +1,6 @@
 # Configure a more-standard replacement for <time.h>.
 
-# Copyright (C) 2000-2001, 2003-2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc.
 
 # serial 9
 
diff --git a/m4/time_r.m4 b/m4/time_r.m4
index 21b4a2c..3e24ccb 100644
--- a/m4/time_r.m4
+++ b/m4/time_r.m4
@@ -1,6 +1,6 @@
 dnl Reentrant time functions: localtime_r, gmtime_r.
 
-dnl Copyright (C) 2003, 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2006-2017 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.
diff --git a/m4/time_rz.m4 b/m4/time_rz.m4
index 9b1db1b..79060e0 100644
--- a/m4/time_rz.m4
+++ b/m4/time_rz.m4
@@ -1,6 +1,6 @@
 dnl Time zone functions: tzalloc, localtime_rz, etc.
 
-dnl Copyright (C) 2015-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2015-2017 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.
diff --git a/m4/timegm.m4 b/m4/timegm.m4
index 752aa43..510e25a 100644
--- a/m4/timegm.m4
+++ b/m4/timegm.m4
@@ -1,5 +1,5 @@
 # timegm.m4 serial 11
-dnl Copyright (C) 2003, 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007, 2009-2017 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.
diff --git a/m4/timer_time.m4 b/m4/timer_time.m4
index 114f92a..84c460d 100644
--- a/m4/timer_time.m4
+++ b/m4/timer_time.m4
@@ -1,5 +1,5 @@
 # timer_time.m4 serial 3
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2017 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.
diff --git a/m4/timespec.m4 b/m4/timespec.m4
index 2482518..c901468 100644
--- a/m4/timespec.m4
+++ b/m4/timespec.m4
@@ -1,6 +1,6 @@
 #serial 15
 
-# Copyright (C) 2000-2001, 2003-2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff --git a/m4/tm_gmtoff.m4 b/m4/tm_gmtoff.m4
index ce0671f..32db008 100644
--- a/m4/tm_gmtoff.m4
+++ b/m4/tm_gmtoff.m4
@@ -1,5 +1,5 @@
 # tm_gmtoff.m4 serial 3
-dnl Copyright (C) 2002, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2009-2017 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.
diff --git a/m4/unistd_h.m4 b/m4/unistd_h.m4
index 544dadb..25aef19 100644
--- a/m4/unistd_h.m4
+++ b/m4/unistd_h.m4
@@ -1,5 +1,5 @@
-# unistd_h.m4 serial 68
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+# unistd_h.m4 serial 69
+dnl Copyright (C) 2006-2017 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.
@@ -145,6 +145,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
   HAVE_DECL_FCHDIR=1;     AC_SUBST([HAVE_DECL_FCHDIR])
   HAVE_DECL_FDATASYNC=1;  AC_SUBST([HAVE_DECL_FDATASYNC])
   HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME])
+  HAVE_DECL_GETLOGIN=1;   AC_SUBST([HAVE_DECL_GETLOGIN])
   HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
   HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE])
   HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL])
diff --git a/m4/utimbuf.m4 b/m4/utimbuf.m4
index d2473bf..1c42234 100644
--- a/m4/utimbuf.m4
+++ b/m4/utimbuf.m4
@@ -1,6 +1,6 @@
 # serial 9
 
-# Copyright (C) 1998-2001, 2003-2004, 2007, 2009-2016 Free Software Foundation,
+# Copyright (C) 1998-2001, 2003-2004, 2007, 2009-2017 Free Software Foundation,
 # Inc.
 #
 # This file is free software; the Free Software Foundation
diff --git a/m4/utimens.m4 b/m4/utimens.m4
index 211b1fc..c58e93c 100644
--- a/m4/utimens.m4
+++ b/m4/utimens.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2003-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2017 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.
diff --git a/m4/utimes.m4 b/m4/utimes.m4
index 0778185..518824f 100644
--- a/m4/utimes.m4
+++ b/m4/utimes.m4
@@ -1,7 +1,7 @@
 # Detect some bugs in glibc's implementation of utimes.
 # serial 4
 
-dnl Copyright (C) 2003-2005, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2005, 2009-2017 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.
diff --git a/m4/vararrays.m4 b/m4/vararrays.m4
index 93fd66e..8391121 100644
--- a/m4/vararrays.m4
+++ b/m4/vararrays.m4
@@ -4,7 +4,7 @@
 
 # From Paul Eggert
 
-# Copyright (C) 2001, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2009-2017 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/m4/warnings.m4 b/m4/warnings.m4
index 924e21d..e697174 100644
--- a/m4/warnings.m4
+++ b/m4/warnings.m4
@@ -1,5 +1,5 @@
 # warnings.m4 serial 11
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2017 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.
diff --git a/m4/wchar_t.m4 b/m4/wchar_t.m4
index 2db8c3f..11783d2 100644
--- a/m4/wchar_t.m4
+++ b/m4/wchar_t.m4
@@ -1,5 +1,5 @@
 # wchar_t.m4 serial 4 (gettext-0.18.2)
-dnl Copyright (C) 2002-2003, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2003, 2008-2017 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.
diff --git a/make-dist b/make-dist
index b0a8dff..41203b2 100755
--- a/make-dist
+++ b/make-dist
@@ -1,7 +1,7 @@
 #!/bin/sh
 ### make-dist: create an Emacs distribution tar file from current srcdir
 
-## Copyright (C) 1995, 1997-1998, 2000-2016 Free Software Foundation,
+## Copyright (C) 1995, 1997-1998, 2000-2017 Free Software Foundation,
 ## Inc.
 
 ## This file is part of GNU Emacs.
@@ -101,7 +101,6 @@ while [ $# -gt 0 ]; do
       clean_up=yes
       make_tar=yes
       update=no
-      check=no
      ;;
 
     ## Include the test/ directory.
@@ -211,6 +210,11 @@ them, and try again." >&2
 fi
 
 if [ $check = yes ]; then
+
+  echo "Sanity checking (use --no-check to disable this)..."
+
+  error=no
+
   ls -1 lisp/[a-zA-Z]*.el lisp/[a-z]*/[a-zA-Z0-9]*.el \
        lisp/[a-z]*/[a-z]*/[a-zA-Z0-9]*.el \
        lisp/[a-z]*/[a-z]*/[a-z]*/[a-zA-Z0-9]*.el > /tmp/el
@@ -224,6 +228,7 @@ if [ $check = yes ]; then
 
   bogosities=`comm -13 /tmp/elelc /tmp/elc`
   if [ x"${bogosities}" != x"" ]; then
+    error=yes
     echo "The following .elc files have no corresponding .el files:"
     echo "${bogosities}"
   fi
@@ -232,6 +237,19 @@ if [ $check = yes ]; then
   sed 's/\.elc$/.el/' /tmp/elc > /tmp/elcel
   losers=`comm -23 /tmp/el /tmp/elcel`
 
+  bogosities=
+  while read elc; do
+      el=`echo $elc | sed 's/c$//'`
+      [ -e $el ] || continue
+      [ $elc -nt $el ] || bogosities="$bogosities $elc"
+  done < /tmp/elc
+
+  if [ x"${bogosities}" != x"" ]; then
+      error=yes
+      echo "The following .elc files are older than their .el files:"
+      echo "${bogosities}"
+  fi
+
   rm -f /tmp/el /tmp/elc /tmp/elcel /tmp/elelc
 
   bogosities=
@@ -245,9 +263,45 @@ if [ $check = yes ]; then
 
   done
   if [ x"${bogosities}" != x"" ]; then
+    error=yes
     echo "The following .el files have no corresponding .elc files:"
     echo "${bogosities}"
   fi
+
+
+  ## This is only a crude check, eg it does not handle .info
+  ## files with multiple .texi source files.
+  find doc -name '*.texi' > /tmp/el
+
+  bogosities=
+  while read texi; do
+      info=`sed -n 's/address@hidden //p' $texi | sed 's|.*info/||'`
+      [ x"${info}" != x"" ] || continue
+      info=info/$info
+      [ -e $info ] || continue
+      [ $info -nt $texi ] || bogosities="$bogosities $info"
+  done < /tmp/el
+
+  rm -f /tmp/el
+
+  if [ x"${bogosities}" != x"" ]; then
+    error=yes
+    echo "The following .info files are older than their .texi files:"
+    echo "${bogosities}"
+  fi
+
+  ## This exits with non-zero status if any .info files need
+  ## rebuilding.
+  if [ -e Makefile ]; then
+      echo "Checking to see if info files are up-to-date..."
+      make --question info || error=yes
+  fi
+
+  if [ $error = yes ]; then
+      echo "Failed checks" >&2
+      exit 1
+  fi
+
 fi
 
 if [ $update = yes ]; then
@@ -428,7 +482,7 @@ echo "Making links to 'nt'"
 (cd nt
  ln emacs-x86.manifest emacs-x64.manifest ../${tempdir}/nt
  ln [a-z]*.bat [a-z]*.[ch] ../${tempdir}/nt
- ln *.in gnulib.mk ../${tempdir}/nt
+ ln *.in gnulib.mk gnulib-modules-to-delete.cfg ../${tempdir}/nt
  ln mingw-cfg.site epaths.nt INSTALL.W64 ../${tempdir}/nt
  ln ChangeLog.*[0-9] INSTALL README README.W32 ../${tempdir}/nt)
 
diff --git a/modules/mod-test/Makefile b/modules/mod-test/Makefile
index 3a21623..27ae2ae 100644
--- a/modules/mod-test/Makefile
+++ b/modules/mod-test/Makefile
@@ -1,6 +1,6 @@
 # Test GNU Emacs modules.
 
-# Copyright 2015-2016 Free Software Foundation, Inc.
+# Copyright 2015-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/modules/mod-test/mod-test.c b/modules/mod-test/mod-test.c
index 3c8ab0f..50be862 100644
--- a/modules/mod-test/mod-test.c
+++ b/modules/mod-test/mod-test.c
@@ -1,6 +1,6 @@
 /* Test GNU Emacs modules.
 
-Copyright 2015-2016 Free Software Foundation, Inc.
+Copyright 2015-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/modules/mod-test/test.el b/modules/mod-test/test.el
index 2d363c3..181f132 100644
--- a/modules/mod-test/test.el
+++ b/modules/mod-test/test.el
@@ -1,6 +1,6 @@
 ;;; Test GNU Emacs modules.
 
-;; Copyright 2015-2016 Free Software Foundation, Inc.
+;; Copyright 2015-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/modules/modhelp.py b/modules/modhelp.py
index 445cb3b..ab2ce5c 100755
--- a/modules/modhelp.py
+++ b/modules/modhelp.py
@@ -2,7 +2,7 @@
 
 # Module helper script.
 
-# Copyright 2015-2016 Free Software Foundation, Inc.
+# Copyright 2015-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/msdos/ChangeLog.1 b/msdos/ChangeLog.1
index e52a4a8..e8e6ec3 100644
--- a/msdos/ChangeLog.1
+++ b/msdos/ChangeLog.1
@@ -1550,7 +1550,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1994-1999, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1994-1999, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/msdos/INSTALL b/msdos/INSTALL
index 7759258..ca4ab85 100644
--- a/msdos/INSTALL
+++ b/msdos/INSTALL
@@ -1,6 +1,6 @@
 GNU Emacs Installation Guide for the DJGPP (a.k.a. MS-DOS) port
 
-Copyright (C) 1992, 1994, 1996-1997, 2000-2016 Free Software Foundation,
+Copyright (C) 1992, 1994, 1996-1997, 2000-2017 Free Software Foundation,
 Inc.
 See the end of the file for license conditions.
 
diff --git a/msdos/README b/msdos/README
index 4950da5..122e815 100644
--- a/msdos/README
+++ b/msdos/README
@@ -1,4 +1,4 @@
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
@@ -10,7 +10,7 @@ The files emacs.ico and emacs.pif are for using the DJGPP 
version on
 Windows 3.X.  Since these are binary files, their copyright notice is
 reproduced here:
 
-# Copyright (C) 1993, 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 1993, 2002-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/autogen/Makefile.in b/msdos/autogen/Makefile.in
index 67c3c35..6c3af73 100644
--- a/msdos/autogen/Makefile.in
+++ b/msdos/autogen/Makefile.in
@@ -1,7 +1,7 @@
 # Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2009, 2013-2016 Free Software Foundation, Inc.
+# Copyright (C) 1994-2009, 2013-2017 Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -13,7 +13,7 @@
 
 @SET_MAKE@
 
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -36,7 +36,7 @@
 # Generated by gnulib-tool.
 # Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib 
--m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux 
--avoid=close --avoid=dup --avoid=fchdir --avoid=fstat --avoid=malloc-posix 
--avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die 
--avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select 
--avoid=sigprocmask --avoid=sys_types --avoid=threadlib 
--makefile-name=gnulib.mk --conditional-dependencies --no-libtool 
--macro-prefix=gl [...]
 
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2017 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/msdos/autogen/config.in b/msdos/autogen/config.in
index bcd51ce..82af955 100644
--- a/msdos/autogen/config.in
+++ b/msdos/autogen/config.in
@@ -2,7 +2,7 @@
 
 /* GNU Emacs site configuration template file.
 
-Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2016 Free Software
+Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/msdos/depfiles.bat b/msdos/depfiles.bat
index 76a00ec..b2c7bc8 100644
--- a/msdos/depfiles.bat
+++ b/msdos/depfiles.bat
@@ -1,7 +1,7 @@
 @echo off
 rem   ----------------------------------------------------------------------
 rem   Auxiliary script for MSDOS, run by ../config.bat
-rem   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+rem   Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 rem   This file is part of GNU Emacs.
 
diff --git a/msdos/inttypes.h b/msdos/inttypes.h
index 550ef36..7996d05 100644
--- a/msdos/inttypes.h
+++ b/msdos/inttypes.h
@@ -1,6 +1,6 @@
 /* Replacement inttypes.h file for building GNU Emacs on MS-DOS with DJGPP.
 
-Copyright (C) 2011-2016 Free Software Foundation, Inc.
+Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/msdos/mainmake.v2 b/msdos/mainmake.v2
index f89caf9..ab9cfa3 100644
--- a/msdos/mainmake.v2
+++ b/msdos/mainmake.v2
@@ -1,6 +1,6 @@
 # Top-level Makefile for Emacs under MS-DOS/DJGPP v2.0 or higher. 
-*-makefile-*-
 
-# Copyright (C) 1996-2016 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp
index d0ab8af..5431d2b 100644
--- a/msdos/sed1v2.inp
+++ b/msdos/sed1v2.inp
@@ -2,7 +2,7 @@
 # Configuration script for src/Makefile under DJGPP v2.x
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 1996-1997, 1999-2016 Free Software Foundation, Inc.
+# Copyright (C) 1996-1997, 1999-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/sed1x.inp b/msdos/sed1x.inp
index a8175d3..24d51b8 100644
--- a/msdos/sed1x.inp
+++ b/msdos/sed1x.inp
@@ -2,7 +2,7 @@
 # Extra configuration script for src/makefile for DesqView/X
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 1994-1997, 1999-2016 Free Software Foundation, Inc.
+# Copyright (C) 1994-1997, 1999-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp
index 6da13b5..ba1bb4e 100644
--- a/msdos/sed2v2.inp
+++ b/msdos/sed2v2.inp
@@ -2,7 +2,7 @@
 # Configuration script for src/config.h under DJGPP v2.x
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 1993-1997, 1999-2000, 2002-2016 Free Software
+# Copyright (C) 1993-1997, 1999-2000, 2002-2017 Free Software
 # Foundation, Inc.
 #
 # This file is part of GNU Emacs.
@@ -27,7 +27,7 @@
 #ifndef MSDOS\
 #define MSDOS\
 #endif
-/^#undef COPYRIGHT *$/s/^.*$/#define COPYRIGHT "Copyright (C) 2016 Free 
Software Foundation, Inc."/
+/^#undef COPYRIGHT *$/s/^.*$/#define COPYRIGHT "Copyright (C) 2017 Free 
Software Foundation, Inc."/
 /^#undef DIRECTORY_SEP *$/s!^.*$!#define DIRECTORY_SEP '/'!
 /^#undef DOS_NT *$/s/^.*$/#define DOS_NT/
 /^#undef FLOAT_CHECK_DOMAIN *$/s/^.*$/#define FLOAT_CHECK_DOMAIN/
diff --git a/msdos/sed2x.inp b/msdos/sed2x.inp
index 6efc1e7..68aa03f 100644
--- a/msdos/sed2x.inp
+++ b/msdos/sed2x.inp
@@ -2,7 +2,7 @@
 # Extra configuration script for src/config.h for DesqView/X
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+# Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/sed3v2.inp b/msdos/sed3v2.inp
index 49f2b76..b9600e6 100644
--- a/msdos/sed3v2.inp
+++ b/msdos/sed3v2.inp
@@ -2,7 +2,7 @@
 # Configuration script for lib-src/makefile under DJGPP v2
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 1996, 1998, 2000-2016 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/sed4.inp b/msdos/sed4.inp
index 0d91cef..94fccf7 100644
--- a/msdos/sed4.inp
+++ b/msdos/sed4.inp
@@ -2,7 +2,7 @@
 # Configuration script for src/paths.h
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+# Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/sed5x.inp b/msdos/sed5x.inp
index ef93305..ea9f4a8 100644
--- a/msdos/sed5x.inp
+++ b/msdos/sed5x.inp
@@ -2,7 +2,7 @@
 # Configuration script for oldxmenu/makefile for DesqView/X
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+# Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/sed6.inp b/msdos/sed6.inp
index a209d7a..8a54ad7 100644
--- a/msdos/sed6.inp
+++ b/msdos/sed6.inp
@@ -3,7 +3,7 @@
 # doc/lispintro/Makefile, and doc/misc/Makefile under DJGPP v2.x
 # ---------------------------------------------------------------------------
 #
-# Copyright (C) 1997, 2000-2016 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2000-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/sedadmin.inp b/msdos/sedadmin.inp
index 77812e8..e8da83b 100644
--- a/msdos/sedadmin.inp
+++ b/msdos/sedadmin.inp
@@ -2,7 +2,7 @@
 # Configuration script for admin/unidata/Makefile under DJGPP v2.x
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 2014-2016 Free Software Foundation, Inc.
+# Copyright (C) 2014-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/sedalloc.inp b/msdos/sedalloc.inp
index 71572ee..5447d68 100644
--- a/msdos/sedalloc.inp
+++ b/msdos/sedalloc.inp
@@ -2,7 +2,7 @@
 # Configuration script for SYSTEM_MALLOC/REL_ALLOC in src/config.h
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 2008-2016 Free Software Foundation, Inc.
+# Copyright (C) 2008-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/sedleim.inp b/msdos/sedleim.inp
index ecbfd4a..74202b3 100644
--- a/msdos/sedleim.inp
+++ b/msdos/sedleim.inp
@@ -2,7 +2,7 @@
 # Configuration script for leim/Makefile under DJGPP v2.x
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 1999-2016 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/sedlibcf.inp b/msdos/sedlibcf.inp
index a884b1a..843c674 100644
--- a/msdos/sedlibcf.inp
+++ b/msdos/sedlibcf.inp
@@ -5,7 +5,7 @@
 # files whose names are invalid on DOS 8+3 filesystems.
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 2011-2016 Free Software Foundation, Inc.
+# Copyright (C) 2011-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/sedlibmk.inp b/msdos/sedlibmk.inp
index 9d71ef0..2261135 100644
--- a/msdos/sedlibmk.inp
+++ b/msdos/sedlibmk.inp
@@ -2,7 +2,7 @@
 # Configuration script for lib/Makefile under DJGPP v2.x
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 2011-2016 Free Software Foundation, Inc.
+# Copyright (C) 2011-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/msdos/sedlisp.inp b/msdos/sedlisp.inp
index 17aa168..d58e247 100644
--- a/msdos/sedlisp.inp
+++ b/msdos/sedlisp.inp
@@ -2,7 +2,7 @@
 # Configuration script for lisp/Makefile under DJGPP v2.x
 # ----------------------------------------------------------------------
 #
-# Copyright (C) 2000-2016 Free Software Foundation, Inc.
+# Copyright (C) 2000-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
diff --git a/nextstep/ChangeLog.1 b/nextstep/ChangeLog.1
index 007dfa4..f84779d 100644
--- a/nextstep/ChangeLog.1
+++ b/nextstep/ChangeLog.1
@@ -312,7 +312,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2008-2016 Free Software Foundation, Inc.
+  Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/nextstep/INSTALL b/nextstep/INSTALL
index 3740346..799cd4d 100644
--- a/nextstep/INSTALL
+++ b/nextstep/INSTALL
@@ -1,4 +1,4 @@
-Copyright (C) 2008-2016 Free Software Foundation, Inc.
+Copyright (C) 2008-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/nextstep/Makefile.in b/nextstep/Makefile.in
index d6e1282..ad1abb0 100644
--- a/nextstep/Makefile.in
+++ b/nextstep/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-## Copyright (C) 2012-2016 Free Software Foundation, Inc.
+## Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ## This file is part of GNU Emacs.
 
@@ -30,7 +30,6 @@ EXEEXT = @EXEEXT@
 # abs_top_srcdir may contain ".."
 top_srcdir_abs = $(shell cd @top_srcdir@; pwd -P)
 
address@hidden@
 MKDIR_P = @MKDIR_P@
 
 ## Emacs.app.
diff --git a/nextstep/README b/nextstep/README
index 6d37bb7..94993d8 100644
--- a/nextstep/README
+++ b/nextstep/README
@@ -105,7 +105,7 @@ future development.
 
 
 ----------------------------------------------------------------------
-Copyright 2008-2016 Free Software Foundation, Inc.
+Copyright 2008-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nextstep/templates/Info.plist.in b/nextstep/templates/Info.plist.in
index 686b804..b1dae4e 100644
--- a/nextstep/templates/Info.plist.in
+++ b/nextstep/templates/Info.plist.in
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-Copyright (C) 2008-2016 Free Software Foundation, Inc.
+Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/ChangeLog.1 b/nt/ChangeLog.1
index ed64578..0117639 100644
--- a/nt/ChangeLog.1
+++ b/nt/ChangeLog.1
@@ -3548,7 +3548,7 @@
 ;; add-log-time-zone-rule: t
 ;; End:
 
-  Copyright (C) 1995-1999, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1995-1999, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/nt/INSTALL b/nt/INSTALL
index 7bf544c..553ca5e 100644
--- a/nt/INSTALL
+++ b/nt/INSTALL
@@ -1,7 +1,7 @@
                    Building and Installing Emacs on MS-Windows
                           using the MSYS and MinGW tools
 
-  Copyright (C) 2013-2016 Free Software Foundation, Inc.
+  Copyright (C) 2013-2017 Free Software Foundation, Inc.
   See the end of the file for license conditions.
 
 The MSYS/MinGW build described here is supported on versions of
diff --git a/nt/INSTALL.W64 b/nt/INSTALL.W64
index 40670a6..a12b7fc 100644
--- a/nt/INSTALL.W64
+++ b/nt/INSTALL.W64
@@ -1,7 +1,7 @@
          Building and Installing Emacs on 64-bit MS-Windows
                      using MSYS2 and MinGW-w64
 
-  Copyright (c) 2015-2016 Free Software Foundation, Inc.
+  Copyright (c) 2015-2017 Free Software Foundation, Inc.
   See the end of the file for license conditions.
 
 This document describes how to compile a 64-bit GNU Emacs using MSYS2
diff --git a/nt/Makefile.in b/nt/Makefile.in
index 28060fe..34c552c 100644
--- a/nt/Makefile.in
+++ b/nt/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 2013-2016 Free Software Foundation, Inc.
+# Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
@@ -54,6 +54,11 @@ am__v_CCLD_ = $(address@hidden@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 =
 
+AM_V_GEN = $(address@hidden@)
+am__v_GEN_ = $(address@hidden@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 =
+
 AM_V_RC = $(address@hidden@)
 am__v_RC_ = $(address@hidden@)
 am__v_RC_0 = @echo "  RC      " $@;
@@ -255,3 +260,8 @@ runemacs${EXEEXT}: ${srcdir}/runemacs.c $(EMACSRES)
 emacs.res ../src/emacs.res: emacs.rc ${srcdir}/icons/emacs.ico \
   ${srcdir}/icons/hand.cur ${srcdir}/$(EMACS_MANIFEST)
        $(AM_V_RC)${WINDRES} -I ${srcdir} -O coff -o $@ $<
+
+${srcdir}/gnulib.mk: ${srcdir}/gnulib-modules-to-delete.cfg 
${srcdir}/../lib/gnulib.mk
+       $(AM_V_GEN)sed '/^[^#]/s|^.*$$|/^## begin  *gnulib module &/,/^## end  
*gnulib module &/d|' < $< | \
+         sed -f- ${srcdir}/../lib/gnulib.mk > address@hidden && \
+         ${srcdir}/../build-aux/move-if-change address@hidden $@
diff --git a/nt/README b/nt/README
index 6d00ed4..09d6820 100644
--- a/nt/README
+++ b/nt/README
@@ -1,6 +1,6 @@
             Emacs for Windows NT/2000 and Windows 95/98/ME
 
-  Copyright (C) 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 2001-2017 Free Software Foundation, Inc.
   See the end of the file for license conditions.
 
   This directory contains support for compiling and running GNU Emacs on
diff --git a/nt/README.W32 b/nt/README.W32
index 9bc8f87..644e0fe 100644
--- a/nt/README.W32
+++ b/nt/README.W32
@@ -1,4 +1,4 @@
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
                Emacs version 25.1.50 for MS-Windows
diff --git a/nt/addpm.c b/nt/addpm.c
index 14a77d5..b034fff 100644
--- a/nt/addpm.c
+++ b/nt/addpm.c
@@ -1,5 +1,5 @@
 /* Add entries to the GNU Emacs Program Manager folder.
-   Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/cmdproxy.c b/nt/cmdproxy.c
index d0298da..93e0097 100644
--- a/nt/cmdproxy.c
+++ b/nt/cmdproxy.c
@@ -1,5 +1,5 @@
 /* Proxy shell designed for use with Emacs on Windows 95 and NT.
-   Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 
    Accepts subset of Unix sh(1) command-line options, for compatibility
    with elisp code written for Unix.  When possible, executes external
diff --git a/nt/configure.bat b/nt/configure.bat
index b5f6595..cd2a8f4 100755
--- a/nt/configure.bat
+++ b/nt/configure.bat
@@ -1,7 +1,7 @@
 @echo off
 rem   ----------------------------------------------------------------------
 rem   This was the old configuration script for MS Windows operating systems
-rem   Copyright (C) 1999-2016 Free Software Foundation, Inc.
+rem   Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 rem   This file is part of GNU Emacs.
 
diff --git a/nt/ddeclient.c b/nt/ddeclient.c
index a9ad6d6..15aeb84 100644
--- a/nt/ddeclient.c
+++ b/nt/ddeclient.c
@@ -1,5 +1,5 @@
 /* Simple client interface to DDE servers.
-   Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/emacs.rc.in b/nt/emacs.rc.in
index 542af86..abf5de1 100644
--- a/nt/emacs.rc.in
+++ b/nt/emacs.rc.in
@@ -31,7 +31,7 @@ BEGIN
            VALUE "FileDescription", "GNU Emacs: The extensible 
self-documenting text editor\0"
            VALUE "FileVersion", "@address@hidden"
            VALUE "InternalName", "Emacs\0"
-           VALUE "LegalCopyright", "Copyright (C) 2001-2016\0"
+           VALUE "LegalCopyright", "Copyright (C) 2001-2017\0"
            VALUE "OriginalFilename", "emacs.exe"
            VALUE "ProductName", "Emacs\0"
            VALUE "ProductVersion", "@address@hidden"
diff --git a/nt/emacsclient.rc.in b/nt/emacsclient.rc.in
index 147d145..d68fff7 100644
--- a/nt/emacsclient.rc.in
+++ b/nt/emacsclient.rc.in
@@ -25,7 +25,7 @@ BEGIN
            VALUE "FileDescription", "GNU EmacsClient: Client for the 
extensible self-documenting text editor\0"
            VALUE "FileVersion", "@address@hidden"
            VALUE "InternalName", "EmacsClient\0"
-           VALUE "LegalCopyright", "Copyright (C) 2001-2016\0"
+           VALUE "LegalCopyright", "Copyright (C) 2001-2017\0"
            VALUE "OriginalFilename", "emacsclientw.exe"
            VALUE "ProductName", "EmacsClient\0"
            VALUE "ProductVersion", "@address@hidden"
diff --git a/nt/epaths.nt b/nt/epaths.nt
index d2c5c2d..ebb4ccf 100644
--- a/nt/epaths.nt
+++ b/nt/epaths.nt
@@ -12,7 +12,7 @@
    the host system (e.g., i686-pc-mingw32), and @SRC@ by the root of
    the Emacs source tree used to build Emacs.  */
 /*
-Copyright (C) 1993, 1995, 1997, 1999, 2001-2016 Free Software
+Copyright (C) 1993, 1995, 1997, 1999, 2001-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/nt/gnulib-modules-to-delete.cfg b/nt/gnulib-modules-to-delete.cfg
new file mode 100644
index 0000000..09bea0e
--- /dev/null
+++ b/nt/gnulib-modules-to-delete.cfg
@@ -0,0 +1,66 @@
+# This is the list of modules to be deleted from ../lib/gnulib.mk.
+#
+# We delete them because they either conflict with MinGW headers or
+# headers in nt/inc, or because those modules won't compile with
+# MinGW, or because Emacs already has the corresponding facilities as
+# part of Emacs sources, and their implementation is incompatible with
+# Gnulib's.
+#
+# In general, do NOT remove anything from ../lib/gnulib.mk that
+# doesn't need to be removed, to minimize the differences from
+# upstream gnulib.mk and thus make the maintenance easier.  Every
+# header file whose generation is controlled by configure-time tests
+# does NOT need to be removed; instead, force the configure script to
+# accept whatever MinGW has to offer, by defining the appropriate
+# Autoconf variable in the nt/mingw-cfg.site file.  Headers that are
+# generated conditionally have the tell-tale "if GL_GENERATE_foo_H"
+# condition before their Makefile snippet in this file.  Likewise, do
+# NOT remove gnulib modules which introduce header files that don't
+# exist in MinGW and in nt/inc/, since they cannot possibly clash
+# with anything.  Gnulib modules that introduce source *.c files also
+# need not be removed; if they define functions that could clash with
+# the w32 substitutes in Emacs, disable their compilation by defining
+# suitable variables in nt/mingw-cfg.site.
+# ----------------------------------------------------------------------
+#
+# Copyright (C) 2017 Free Software Foundation, Inc.
+#
+# This file 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 file 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 file.  If not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License,
+# this file may be distributed as part of a program that
+# contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+acl-permissions
+allocator
+at-internal
+careadlinkat
+dirent
+dirfd
+fcntl
+fcntl-h
+inttypes-incomplete
+mkostemp
+pipe2
+secure_getenv
+signal-h
+stdio
+stdlib
+sys_select
+sys_stat
+sys_time
+sys_types
+tempname
+unistd
diff --git a/nt/gnulib.mk b/nt/gnulib.mk
deleted file mode 100644
index 6d9fbcf..0000000
--- a/nt/gnulib.mk
+++ /dev/null
@@ -1,1150 +0,0 @@
-## This file is an edited copy of ../lib/gnulib.mk.
-##
-## The purpose of the edits is to avoid generating any headers
-## which would conflict with either the headers we have in nt/inc,
-## or with MinGW system headers and subsequent redirection of some
-## functions in nt/inc/ms-w32.h.
-##
-## In general, do NOT remove anything from ../lib/gnulib.mk that
-## doesn't need to be removed, to minimize the differences from
-## upstream gnulib.mk and thus make the maintenance easier.  Every
-## header file whose generation is controlled by configure-time tests
-## does NOT need to be removed; instead, force the configure script to
-## accept whatever MinGW has to offer, by defining the appropriate
-## Autoconf variable in the nt/mingw-cfg.site file.  Headers that are
-## generated conditionally have the tell-tale "if GL_GENERATE_foo_H"
-## condition before their Makefile snippet in this file.  Likewise, do
-## NOT remove gnulib modules which introduce header files that don't
-## exist in MinGW and in nt/inc/, since they cannot possibly clash
-## with anything.  Gnulib modules that introduce source *.c files also
-## need not be removed; if they define functions that could clash with
-## the w32 substitutes in Emacs, disable their compilation by defining
-## suitable variables in nt/mingw-cfg.site.
-##
-## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
-#
-# This file 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 file 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 file.  If not, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License,
-# this file may be distributed as part of a program that
-# contains a configuration script generated by Autoconf, under
-# the same distribution terms as the rest of that program.
-#
-# Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --lib=libgnu --source-base=lib 
--m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux 
--avoid=close --avoid=dup --avoid=fchdir --avoid=flexmember --avoid=fstat 
--avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open 
--avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd 
--avoid=select --avoid=setenv --avoid=sigprocmask --avoid=stdarg 
--avoid=stdbool --avoid=threadlib --avoid=unsetenv --makefile-name=gnulib.mk - 
[...]
-
-
-MOSTLYCLEANFILES += core *.stackdump
-
-noinst_LIBRARIES += libgnu.a
-
-libgnu_a_SOURCES =
-libgnu_a_LIBADD = $(gl_LIBOBJS)
-libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
-EXTRA_libgnu_a_SOURCES =
-
-## begin gnulib module absolute-header
-
-# Use this preprocessor expression to decide whether #include_next works.
-# Do not rely on a 'configure'-time test for this, since the expression
-# might appear in an installed header, which is used by some other compiler.
-HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER)
-
-## end   gnulib module absolute-header
-
-## begin gnulib module acl-permissions
-
-libgnu_a_SOURCES += acl-errno-valid.c acl-internal.c \
-  get-permissions.c
-
-EXTRA_DIST += acl-internal.h acl.h acl_entries.c
-
-EXTRA_libgnu_a_SOURCES += acl_entries.c
-
-## end   gnulib module acl-permissions
-
-## begin gnulib module alloca-opt
-
-BUILT_SOURCES += $(ALLOCA_H)
-
-# We need the following in order to create <alloca.h> when the system
-# doesn't have one that works with the given compiler.
-if GL_GENERATE_ALLOCA_H
-alloca.h: alloca.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/alloca.in.h; \
-       } > address@hidden && \
-       mv -f address@hidden $@
-else
-alloca.h: $(top_builddir)/config.status
-       rm -f $@
-endif
-MOSTLYCLEANFILES += alloca.h alloca.h-t
-
-EXTRA_DIST += alloca.in.h
-
-## end   gnulib module alloca-opt
-
-## begin gnulib module binary-io
-
-libgnu_a_SOURCES += binary-io.h binary-io.c
-
-## end   gnulib module binary-io
-
-## begin gnulib module byteswap
-
-BUILT_SOURCES += $(BYTESWAP_H)
-
-# We need the following in order to create <byteswap.h> when the system
-# doesn't have one.
-if GL_GENERATE_BYTESWAP_H
-byteswap.h: byteswap.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/byteswap.in.h; \
-       } > address@hidden && \
-       mv -f address@hidden $@
-else
-byteswap.h: $(top_builddir)/config.status
-       rm -f $@
-endif
-MOSTLYCLEANFILES += byteswap.h byteswap.h-t
-
-EXTRA_DIST += byteswap.in.h
-
-## end   gnulib module byteswap
-
-## begin gnulib module c-ctype
-
-libgnu_a_SOURCES += c-ctype.h c-ctype.c
-
-## end   gnulib module c-ctype
-
-## begin gnulib module c-strcase
-
-libgnu_a_SOURCES += c-strcase.h c-strcasecmp.c c-strncasecmp.c
-
-## end   gnulib module c-strcase
-
-## begin gnulib module close-stream
-
-libgnu_a_SOURCES += close-stream.c
-
-EXTRA_DIST += close-stream.h
-
-## end   gnulib module close-stream
-
-## begin gnulib module count-one-bits
-
-libgnu_a_SOURCES += count-one-bits.c
-
-EXTRA_DIST += count-one-bits.h
-
-## end   gnulib module count-one-bits
-
-## begin gnulib module count-trailing-zeros
-
-libgnu_a_SOURCES += count-trailing-zeros.c
-
-EXTRA_DIST += count-trailing-zeros.h
-
-## end   gnulib module count-trailing-zeros
-
-## begin gnulib module crypto/md5
-
-libgnu_a_SOURCES += md5.c
-
-EXTRA_DIST += gl_openssl.h md5.h
-
-## end   gnulib module crypto/md5
-
-## begin gnulib module crypto/sha1
-
-libgnu_a_SOURCES += sha1.c
-
-EXTRA_DIST += gl_openssl.h sha1.h
-
-## end   gnulib module crypto/sha1
-
-## begin gnulib module crypto/sha256
-
-libgnu_a_SOURCES += sha256.c
-
-EXTRA_DIST += gl_openssl.h sha256.h
-
-## end   gnulib module crypto/sha256
-
-## begin gnulib module crypto/sha512
-
-libgnu_a_SOURCES += sha512.c
-
-EXTRA_DIST += gl_openssl.h sha512.h
-
-## end   gnulib module crypto/sha512
-
-## begin gnulib module dosname
-
-if gl_GNULIB_ENABLED_dosname
-
-endif
-EXTRA_DIST += dosname.h
-
-## end   gnulib module dosname
-
-## begin gnulib module dtoastr
-
-libgnu_a_SOURCES += dtoastr.c
-
-EXTRA_DIST += ftoastr.c ftoastr.h
-
-EXTRA_libgnu_a_SOURCES += ftoastr.c
-
-## end   gnulib module dtoastr
-
-## begin gnulib module dtotimespec
-
-libgnu_a_SOURCES += dtotimespec.c
-
-## end   gnulib module dtotimespec
-
-## begin gnulib module dup2
-
-
-EXTRA_DIST += dup2.c
-
-EXTRA_libgnu_a_SOURCES += dup2.c
-
-## end   gnulib module dup2
-
-## begin gnulib module errno
-
-BUILT_SOURCES += $(ERRNO_H)
-
-# We need the following in order to create <errno.h> when the system
-# doesn't have one that is POSIX compliant.
-if GL_GENERATE_ERRNO_H
-errno.h: errno.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
-             -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
-             -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
-             -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
-             -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
-             -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
-             -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
-             < $(srcdir)/errno.in.h; \
-       } > address@hidden && \
-       mv address@hidden $@
-else
-errno.h: $(top_builddir)/config.status
-       rm -f $@
-endif
-MOSTLYCLEANFILES += errno.h errno.h-t
-
-EXTRA_DIST += errno.in.h
-
-## end   gnulib module errno
-
-## begin gnulib module euidaccess
-
-if gl_GNULIB_ENABLED_euidaccess
-
-endif
-EXTRA_DIST += euidaccess.c
-
-EXTRA_libgnu_a_SOURCES += euidaccess.c
-
-## end   gnulib module euidaccess
-
-## begin gnulib module execinfo
-
-BUILT_SOURCES += $(EXECINFO_H)
-
-# We need the following in order to create <execinfo.h> when the system
-# doesn't have one that works.
-if GL_GENERATE_EXECINFO_H
-execinfo.h: execinfo.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/execinfo.in.h; \
-       } > address@hidden && \
-       mv address@hidden $@
-else
-execinfo.h: $(top_builddir)/config.status
-       rm -f $@
-endif
-MOSTLYCLEANFILES += execinfo.h execinfo.h-t
-
-EXTRA_DIST += execinfo.c execinfo.in.h
-
-EXTRA_libgnu_a_SOURCES += execinfo.c
-
-## end   gnulib module execinfo
-
-## begin gnulib module faccessat
-
-
-EXTRA_DIST += at-func.c faccessat.c
-
-EXTRA_libgnu_a_SOURCES += at-func.c faccessat.c
-
-## end   gnulib module faccessat
-
-## begin gnulib module fdatasync
-
-
-EXTRA_DIST += fdatasync.c
-
-EXTRA_libgnu_a_SOURCES += fdatasync.c
-
-## end   gnulib module fdatasync
-
-## begin gnulib module fdopendir
-
-
-EXTRA_DIST += fdopendir.c
-
-EXTRA_libgnu_a_SOURCES += fdopendir.c
-
-## end   gnulib module fdopendir
-
-## begin gnulib module filemode
-
-libgnu_a_SOURCES += filemode.c
-
-EXTRA_DIST += filemode.h
-
-## end   gnulib module filemode
-
-## begin gnulib module filevercmp
-
-libgnu_a_SOURCES += filevercmp.c
-
-EXTRA_DIST += filevercmp.h
-
-## end   gnulib module filevercmp
-
-## begin gnulib module fpending
-
-
-EXTRA_DIST += fpending.c fpending.h stdio-impl.h
-
-EXTRA_libgnu_a_SOURCES += fpending.c
-
-## end   gnulib module fpending
-
-## begin gnulib module fstatat
-
-
-EXTRA_DIST += at-func.c fstatat.c
-
-EXTRA_libgnu_a_SOURCES += at-func.c fstatat.c
-
-## end   gnulib module fstatat
-
-## begin gnulib module fsync
-
-
-EXTRA_DIST += fsync.c
-
-EXTRA_libgnu_a_SOURCES += fsync.c
-
-## end   gnulib module fsync
-
-## begin gnulib module getdtablesize
-
-if gl_GNULIB_ENABLED_getdtablesize
-
-endif
-EXTRA_DIST += getdtablesize.c
-
-EXTRA_libgnu_a_SOURCES += getdtablesize.c
-
-## end   gnulib module getdtablesize
-
-## begin gnulib module getgroups
-
-if gl_GNULIB_ENABLED_getgroups
-
-endif
-EXTRA_DIST += getgroups.c
-
-EXTRA_libgnu_a_SOURCES += getgroups.c
-
-## end   gnulib module getgroups
-
-## begin gnulib module getloadavg
-
-
-EXTRA_DIST += getloadavg.c
-
-EXTRA_libgnu_a_SOURCES += getloadavg.c
-
-## end   gnulib module getloadavg
-
-## begin gnulib module getopt-posix
-
-BUILT_SOURCES += $(GETOPT_H)
-
-# We need the following in order to create <getopt.h> when the system
-# doesn't have one that works with the given compiler.
-getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             < $(srcdir)/getopt.in.h; \
-       } > address@hidden && \
-       mv -f address@hidden $@
-MOSTLYCLEANFILES += getopt.h getopt.h-t
-
-EXTRA_DIST += getopt.c getopt.in.h getopt1.c getopt_int.h
-
-EXTRA_libgnu_a_SOURCES += getopt.c getopt1.c
-
-## end   gnulib module getopt-posix
-
-## begin gnulib module gettext-h
-
-if gl_GNULIB_ENABLED_be453cec5eecf5731a274f2de7f2db36
-libgnu_a_SOURCES += gettext.h
-
-endif
-## end   gnulib module gettext-h
-
-## begin gnulib module gettime
-
-libgnu_a_SOURCES += gettime.c
-
-## end   gnulib module gettime
-
-## begin gnulib module gettimeofday
-
-
-EXTRA_DIST += gettimeofday.c
-
-EXTRA_libgnu_a_SOURCES += gettimeofday.c
-
-## end   gnulib module gettimeofday
-
-## begin gnulib module group-member
-
-if gl_GNULIB_ENABLED_a9786850e999ae65a836a6041e8e5ed1
-
-endif
-EXTRA_DIST += group-member.c
-
-EXTRA_libgnu_a_SOURCES += group-member.c
-
-## end   gnulib module group-member
-
-## begin gnulib module ignore-value
-
-
-EXTRA_DIST += ignore-value.h
-
-## end   gnulib module ignore-value
-
-## begin gnulib module intprops
-
-
-EXTRA_DIST += intprops.h
-
-## end   gnulib module intprops
-
-## begin gnulib module limits-h
-
-BUILT_SOURCES += $(LIMITS_H)
-
-# We need the following in order to create <limits.h> when the system
-# doesn't have one that is compatible with GNU.
-if GL_GENERATE_LIMITS_H
-limits.h: limits.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_LIMITS_H''@|$(NEXT_LIMITS_H)|g' \
-             < $(srcdir)/limits.in.h; \
-       } > address@hidden && \
-       mv address@hidden $@
-else
-limits.h: $(top_builddir)/config.status
-       rm -f $@
-endif
-MOSTLYCLEANFILES += limits.h limits.h-t
-
-EXTRA_DIST += limits.in.h
-
-## end   gnulib module limits-h
-
-## begin gnulib module lstat
-
-
-EXTRA_DIST += lstat.c
-
-EXTRA_libgnu_a_SOURCES += lstat.c
-
-## end   gnulib module lstat
-
-## begin gnulib module memrchr
-
-
-EXTRA_DIST += memrchr.c
-
-EXTRA_libgnu_a_SOURCES += memrchr.c
-
-## end   gnulib module memrchr
-
-## begin gnulib module mktime
-
-
-EXTRA_DIST += mktime-internal.h mktime.c
-
-EXTRA_libgnu_a_SOURCES += mktime.c
-
-## end   gnulib module mktime
-
-## begin gnulib module mktime-internal
-
-if gl_GNULIB_ENABLED_5264294aa0a5557541b53c8c741f7f31
-
-endif
-EXTRA_DIST += mktime-internal.h mktime.c
-
-EXTRA_libgnu_a_SOURCES += mktime.c
-
-## end   gnulib module mktime-internal
-
-## begin gnulib module openat-h
-
-if gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7
-
-endif
-EXTRA_DIST += openat.h
-
-## end   gnulib module openat-h
-
-## begin gnulib module pathmax
-
-if gl_GNULIB_ENABLED_pathmax
-
-endif
-EXTRA_DIST += pathmax.h
-
-## end   gnulib module pathmax
-
-## begin gnulib module pselect
-
-
-EXTRA_DIST += pselect.c
-
-EXTRA_libgnu_a_SOURCES += pselect.c
-
-## end   gnulib module pselect
-
-## begin gnulib module pthread_sigmask
-
-
-EXTRA_DIST += pthread_sigmask.c
-
-EXTRA_libgnu_a_SOURCES += pthread_sigmask.c
-
-## end   gnulib module pthread_sigmask
-
-## begin gnulib module putenv
-
-
-EXTRA_DIST += putenv.c
-
-EXTRA_libgnu_a_SOURCES += putenv.c
-
-## end   gnulib module putenv
-
-## begin gnulib module qcopy-acl
-
-libgnu_a_SOURCES += qcopy-acl.c
-
-## end   gnulib module qcopy-acl
-
-## begin gnulib module readlink
-
-
-EXTRA_DIST += readlink.c
-
-EXTRA_libgnu_a_SOURCES += readlink.c
-
-## end   gnulib module readlink
-
-## begin gnulib module readlinkat
-
-
-EXTRA_DIST += at-func.c readlinkat.c
-
-EXTRA_libgnu_a_SOURCES += at-func.c readlinkat.c
-
-## end   gnulib module readlinkat
-
-## begin gnulib module root-uid
-
-if gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c
-
-endif
-EXTRA_DIST += root-uid.h
-
-## end   gnulib module root-uid
-
-## begin gnulib module sig2str
-
-
-EXTRA_DIST += sig2str.c sig2str.h
-
-EXTRA_libgnu_a_SOURCES += sig2str.c
-
-## end   gnulib module sig2str
-
-## begin gnulib module snippet/_Noreturn
-
-# Because this Makefile snippet defines a variable used by other
-# gnulib Makefile snippets, it must be present in all Makefile.am that
-# need it. This is ensured by the applicability 'all' defined above.
-
-_NORETURN_H=$(top_srcdir)/build-aux/snippet/_Noreturn.h
-
-EXTRA_DIST += $(top_srcdir)/build-aux/snippet/_Noreturn.h
-
-## end   gnulib module snippet/_Noreturn
-
-## begin gnulib module snippet/arg-nonnull
-
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-
-BUILT_SOURCES += arg-nonnull.h
-# The arg-nonnull.h that gets inserted into generated .h files is the same as
-# build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut
-# off.
-arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       sed -n -e '/GL_ARG_NONNULL/,$$p' \
-         < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
-         > address@hidden && \
-       mv address@hidden $@
-MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t
-
-ARG_NONNULL_H=arg-nonnull.h
-
-EXTRA_DIST += $(top_srcdir)/build-aux/snippet/arg-nonnull.h
-
-## end   gnulib module snippet/arg-nonnull
-
-## begin gnulib module snippet/c++defs
-
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-
-BUILT_SOURCES += c++defs.h
-# The c++defs.h that gets inserted into generated .h files is the same as
-# build-aux/snippet/c++defs.h, except that it has the copyright header cut off.
-c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       sed -n -e '/_GL_CXXDEFS/,$$p' \
-         < $(top_srcdir)/build-aux/snippet/c++defs.h \
-         > address@hidden && \
-       mv address@hidden $@
-MOSTLYCLEANFILES += c++defs.h c++defs.h-t
-
-CXXDEFS_H=c++defs.h
-
-EXTRA_DIST += $(top_srcdir)/build-aux/snippet/c++defs.h
-
-## end   gnulib module snippet/c++defs
-
-## begin gnulib module snippet/warn-on-use
-
-BUILT_SOURCES += warn-on-use.h
-# The warn-on-use.h that gets inserted into generated .h files is the same as
-# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut
-# off.
-warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       sed -n -e '/^.ifndef/,$$p' \
-         < $(top_srcdir)/build-aux/snippet/warn-on-use.h \
-         > address@hidden && \
-       mv address@hidden $@
-MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t
-
-WARN_ON_USE_H=warn-on-use.h
-
-EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h
-
-## end   gnulib module snippet/warn-on-use
-
-## begin gnulib module stat
-
-if gl_GNULIB_ENABLED_stat
-
-endif
-EXTRA_DIST += stat.c
-
-EXTRA_libgnu_a_SOURCES += stat.c
-
-## end   gnulib module stat
-
-## begin gnulib module stat-time
-
-libgnu_a_SOURCES += stat-time.c
-
-EXTRA_DIST += stat-time.h
-
-## end   gnulib module stat-time
-
-## begin gnulib module stdalign
-
-BUILT_SOURCES += $(STDALIGN_H)
-
-# We need the following in order to create <stdalign.h> when the system
-# doesn't have one that works.
-if GL_GENERATE_STDALIGN_H
-stdalign.h: stdalign.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/stdalign.in.h; \
-       } > address@hidden && \
-       mv address@hidden $@
-else
-stdalign.h: $(top_builddir)/config.status
-       rm -f $@
-endif
-MOSTLYCLEANFILES += stdalign.h stdalign.h-t
-
-EXTRA_DIST += stdalign.in.h
-
-## end   gnulib module stdalign
-
-## begin gnulib module stddef
-
-BUILT_SOURCES += $(STDDEF_H)
-
-# We need the following in order to create <stddef.h> when the system
-# doesn't have one that works with the given compiler.
-if GL_GENERATE_STDDEF_H
-stddef.h: stddef.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
-             -e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \
-             -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
-             -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
-             < $(srcdir)/stddef.in.h; \
-       } > address@hidden && \
-       mv address@hidden $@
-else
-stddef.h: $(top_builddir)/config.status
-       rm -f $@
-endif
-MOSTLYCLEANFILES += stddef.h stddef.h-t
-
-EXTRA_DIST += stddef.in.h
-
-## end   gnulib module stddef
-
-## begin gnulib module stdint
-
-BUILT_SOURCES += $(STDINT_H)
-
-# We need the following in order to create <stdint.h> when the system
-# doesn't have one that works with the given compiler.
-if GL_GENERATE_STDINT_H
-stdint.h: stdint.in.h $(top_builddir)/config.status
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
-             -e 's/@''HAVE_C99_STDINT_H''@/$(HAVE_C99_STDINT_H)/g' \
-             -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
-             -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
-             -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
-             -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
-             -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
-             -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
-             -e 
's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
-             -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
-             -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
-             -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
-             -e 
's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
-             -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
-             -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
-             -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
-             -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
-             -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
-             -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
-             < $(srcdir)/stdint.in.h; \
-       } > address@hidden && \
-       mv address@hidden $@
-else
-stdint.h: $(top_builddir)/config.status
-       rm -f $@
-endif
-MOSTLYCLEANFILES += stdint.h stdint.h-t
-
-EXTRA_DIST += stdint.in.h
-
-## end   gnulib module stdint
-
-## begin gnulib module stpcpy
-
-
-EXTRA_DIST += stpcpy.c
-
-EXTRA_libgnu_a_SOURCES += stpcpy.c
-
-## end   gnulib module stpcpy
-
-## begin gnulib module strftime
-
-libgnu_a_SOURCES += strftime.c
-
-EXTRA_DIST += strftime.h
-
-## end   gnulib module strftime
-
-## begin gnulib module string
-
-BUILT_SOURCES += string.h
-
-# We need the following in order to create <string.h> when the system
-# doesn't have one that works with the given compiler.
-string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) 
$(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
-             -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \
-             -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \
-             -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \
-             -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \
-             -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \
-             -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \
-             -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \
-             -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \
-             -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \
-             -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \
-             -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \
-             -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \
-             -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \
-             -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \
-             -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \
-             -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \
-             -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \
-             -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \
-             -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \
-             -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \
-             -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \
-             -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \
-             -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \
-             -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \
-             -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \
-             -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \
-             -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \
-             -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \
-             -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \
-             -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \
-             -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \
-             -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \
-             -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \
-             -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \
-             -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \
-             -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
-             -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
-             < $(srcdir)/string.in.h | \
-         sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
-             -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \
-             -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
-             -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \
-             -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
-             -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
-             -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
-             -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \
-             -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
-             -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
-             -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
-             -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
-             -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
-             -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
-             -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
-             -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
-             -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
-             -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
-             -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \
-             -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
-             -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
-             -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
-             -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
-             -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
-             -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
-             -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
-             -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
-             -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
-             -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
-             -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
-             -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
-             -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
-             -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
-             -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
-             -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \
-             -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
-             < $(srcdir)/string.in.h; \
-       } > address@hidden && \
-       mv address@hidden $@
-MOSTLYCLEANFILES += string.h string.h-t
-
-EXTRA_DIST += string.in.h
-
-## end   gnulib module string
-
-## begin gnulib module strtoimax
-
-
-EXTRA_DIST += strtoimax.c
-
-EXTRA_libgnu_a_SOURCES += strtoimax.c
-
-## end   gnulib module strtoimax
-
-## begin gnulib module strtoll
-
-if gl_GNULIB_ENABLED_strtoll
-
-endif
-EXTRA_DIST += strtol.c strtoll.c
-
-EXTRA_libgnu_a_SOURCES += strtol.c strtoll.c
-
-## end   gnulib module strtoll
-
-## begin gnulib module strtoull
-
-if gl_GNULIB_ENABLED_strtoull
-
-endif
-EXTRA_DIST += strtol.c strtoul.c strtoull.c
-
-EXTRA_libgnu_a_SOURCES += strtol.c strtoul.c strtoull.c
-
-## end   gnulib module strtoull
-
-## begin gnulib module strtoumax
-
-
-EXTRA_DIST += strtoimax.c strtoumax.c
-
-EXTRA_libgnu_a_SOURCES += strtoimax.c strtoumax.c
-
-## end   gnulib module strtoumax
-
-## begin gnulib module symlink
-
-
-EXTRA_DIST += symlink.c
-
-EXTRA_libgnu_a_SOURCES += symlink.c
-
-## end   gnulib module symlink
-
-## begin gnulib module time
-
-BUILT_SOURCES += time.h
-
-# We need the following in order to create <time.h> when the system
-# doesn't have one that works with the given compiler.
-time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) 
$(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f address@hidden $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \
-             -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \
-             -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \
-             -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \
-             -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \
-             -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \
-             -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \
-             -e 's/@''GNULIB_TIME_RZ''@/$(GNULIB_TIME_RZ)/g' \
-             -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \
-             -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \
-             -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
-             -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \
-             -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \
-             -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \
-             -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \
-             -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
-             -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \
-             -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
-             -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
-             -e 
's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g'
 \
-             -e 
's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g'
 \
-             -e 
's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
-             -e 
's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g'
 \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/time.in.h; \
-       } > address@hidden && \
-       mv address@hidden $@
-MOSTLYCLEANFILES += time.h time.h-t
-
-EXTRA_DIST += time.in.h
-
-## end   gnulib module time
-
-## begin gnulib module time_r
-
-
-EXTRA_DIST += time_r.c
-
-EXTRA_libgnu_a_SOURCES += time_r.c
-
-## end   gnulib module time_r
-
-## begin gnulib module time_rz
-
-
-EXTRA_DIST += time_rz.c
-
-EXTRA_libgnu_a_SOURCES += time_rz.c
-
-## end   gnulib module time_rz
-
-## begin gnulib module timegm
-
-
-EXTRA_DIST += mktime-internal.h timegm.c
-
-EXTRA_libgnu_a_SOURCES += timegm.c
-
-## end   gnulib module timegm
-
-## begin gnulib module timespec
-
-libgnu_a_SOURCES += timespec.c
-
-EXTRA_DIST += timespec.h
-
-## end   gnulib module timespec
-
-## begin gnulib module timespec-add
-
-libgnu_a_SOURCES += timespec-add.c
-
-## end   gnulib module timespec-add
-
-## begin gnulib module timespec-sub
-
-libgnu_a_SOURCES += timespec-sub.c
-
-## end   gnulib module timespec-sub
-
-## begin gnulib module u64
-
-libgnu_a_SOURCES += u64.c
-
-EXTRA_DIST += u64.h
-
-## end   gnulib module u64
-
-## begin gnulib module update-copyright
-
-
-EXTRA_DIST += $(top_srcdir)/build-aux/update-copyright
-
-## end   gnulib module update-copyright
-
-## begin gnulib module utimens
-
-libgnu_a_SOURCES += utimens.c
-
-EXTRA_DIST += utimens.h
-
-## end   gnulib module utimens
-
-## begin gnulib module verify
-
-
-EXTRA_DIST += verify.h
-
-## end   gnulib module verify
-
-## begin gnulib module vla
-
-
-EXTRA_DIST += vla.h
-
-## end   gnulib module vla
-
-## begin gnulib module xalloc-oversized
-
-if gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec
-
-endif
-EXTRA_DIST += xalloc-oversized.h
-
-## end   gnulib module xalloc-oversized
-
-
-mostlyclean-local: mostlyclean-generic
-       @for dir in '' $(MOSTLYCLEANDIRS); do \
-         if test -n "$$dir" && test -d $$dir; then \
-           echo "rmdir $$dir"; rmdir $$dir; \
-         fi; \
-       done; \
-       :
diff --git a/nt/icons/README b/nt/icons/README
index 0b4eb9e..46276ca 100644
--- a/nt/icons/README
+++ b/nt/icons/README
@@ -2,13 +2,13 @@ COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
 
 File: emacs.ico
 Author: Kentaro Ohkouchi <address@hidden>
-Copyright (C) 2008-2016 Free Software Foundation, Inc.
+Copyright (C) 2008-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later
 
 
 File: emacs22.ico
 Author: Andrew Zhilin
-Copyright (C) 2005-2016 Free Software Foundation, Inc.
+Copyright (C) 2005-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
 
 
@@ -17,7 +17,7 @@ Files: gnu2a32.ico gnu2a32t.ico gnu2b48.ico gnu2b48t.ico
        gnu5w32.ico gnu5w32t.ico gnu6w48.ico gnu6w48t.ico
        gnu7.ico    gnu8.ico     gnu9.ico
 Author: Rob Davenport <rgd at bigfoot.com>
-Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1999, 2001-2017 Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
 
   <http://users.adelphia.net/~rob.davenport/gnuicons.html>
diff --git a/nt/inc/grp.h b/nt/inc/grp.h
index 903fda9..82a8bab 100644
--- a/nt/inc/grp.h
+++ b/nt/inc/grp.h
@@ -1,6 +1,6 @@
 /* Replacement grp.h file for building GNU Emacs on Windows.
 
-Copyright (C) 2003-2016 Free Software Foundation, Inc.
+Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/inc/inttypes.h b/nt/inc/inttypes.h
index 34d026c..e5037b1 100644
--- a/nt/inc/inttypes.h
+++ b/nt/inc/inttypes.h
@@ -1,6 +1,6 @@
 /* Replacement inttypes.h file for building GNU Emacs on Windows with MSVC.
 
-Copyright (C) 2011-2016 Free Software Foundation, Inc.
+Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/inc/langinfo.h b/nt/inc/langinfo.h
index 1532eaa..a20e59b 100644
--- a/nt/inc/langinfo.h
+++ b/nt/inc/langinfo.h
@@ -1,6 +1,6 @@
 /* Replacement langinfo.h file for building GNU Emacs on Windows.
 
-Copyright (C) 2006-2016 Free Software Foundation, Inc.
+Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h
index 24076a3..b7dee8a 100644
--- a/nt/inc/ms-w32.h
+++ b/nt/inc/ms-w32.h
@@ -1,6 +1,6 @@
 /* System description file for Windows NT.
 
-Copyright (C) 1993-1995, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1993-1995, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/inc/nl_types.h b/nt/inc/nl_types.h
index e4d314c..8236a6d 100644
--- a/nt/inc/nl_types.h
+++ b/nt/inc/nl_types.h
@@ -1,6 +1,6 @@
 /* Replacement nl_types.h file for building GNU Emacs on Windows.
 
-Copyright (C) 2006-2016 Free Software Foundation, Inc.
+Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/inc/stdint.h b/nt/inc/stdint.h
index bb067f4..1e41ddb 100644
--- a/nt/inc/stdint.h
+++ b/nt/inc/stdint.h
@@ -1,6 +1,6 @@
 /* Replacement stdint.h file for building GNU Emacs on Windows.
 
-Copyright (C) 2011-2016 Free Software Foundation, Inc.
+Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/inc/sys/resource.h b/nt/inc/sys/resource.h
index dfa0318..2964a64 100644
--- a/nt/inc/sys/resource.h
+++ b/nt/inc/sys/resource.h
@@ -1,6 +1,6 @@
 /* A limited emulation of sys/resource.h.
 
-Copyright (C) 2016 Free Software Foundation, Inc.
+Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/inc/sys/socket.h b/nt/inc/sys/socket.h
index e9a021a..32f6a1d 100644
--- a/nt/inc/sys/socket.h
+++ b/nt/inc/sys/socket.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/inc/sys/stat.h b/nt/inc/sys/stat.h
index ea14f07..d686af1 100644
--- a/nt/inc/sys/stat.h
+++ b/nt/inc/sys/stat.h
@@ -1,7 +1,7 @@
 /* sys/stat.h supplied with MSVCRT uses too narrow data types for
    inode and user/group id, so we replace them with our own.
 
-Copyright (C) 2008-2016 Free Software Foundation, Inc.
+Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/inc/sys/wait.h b/nt/inc/sys/wait.h
index 46dae49..6be7fd3 100644
--- a/nt/inc/sys/wait.h
+++ b/nt/inc/sys/wait.h
@@ -1,6 +1,6 @@
 /* A limited emulation of sys/wait.h on Posix systems.
 
-Copyright (C) 2012-2016 Free Software Foundation, Inc.
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/preprep.c b/nt/preprep.c
index 491a93b..7366035 100644
--- a/nt/preprep.c
+++ b/nt/preprep.c
@@ -1,5 +1,5 @@
 /* Pre-process emacs.exe for profiling by MSVC.
-   Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/nt/runemacs.c b/nt/runemacs.c
index 9edf148..a98ff4b 100644
--- a/nt/runemacs.c
+++ b/nt/runemacs.c
@@ -1,6 +1,6 @@
 /* runemacs --- Simple program to start Emacs with its console window hidden.
 
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/oldXMenu/Activate.c b/oldXMenu/Activate.c
index 0b812c5..876cb3d 100644
--- a/oldXMenu/Activate.c
+++ b/oldXMenu/Activate.c
@@ -3,7 +3,7 @@
 #include "copyright.h"
 
 /*
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 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
diff --git a/oldXMenu/ChangeLog.1 b/oldXMenu/ChangeLog.1
index ad8f727..8fa3794 100644
--- a/oldXMenu/ChangeLog.1
+++ b/oldXMenu/ChangeLog.1
@@ -712,7 +712,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1993-1999, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1993-1999, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/oldXMenu/Create.c b/oldXMenu/Create.c
index 2fd86b2..0e72a2d 100644
--- a/oldXMenu/Create.c
+++ b/oldXMenu/Create.c
@@ -3,7 +3,7 @@
 #include "copyright.h"
 
 /*
-Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1993-1994, 2001-2017 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
diff --git a/oldXMenu/FindSel.c b/oldXMenu/FindSel.c
index 991e1ca..7440b3d 100644
--- a/oldXMenu/FindSel.c
+++ b/oldXMenu/FindSel.c
@@ -3,7 +3,7 @@
 #include "copyright.h"
 
 /*
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 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
diff --git a/oldXMenu/Internal.c b/oldXMenu/Internal.c
index 45cdf4d..aa9cf16 100644
--- a/oldXMenu/Internal.c
+++ b/oldXMenu/Internal.c
@@ -3,7 +3,7 @@
 #include "copyright.h"
 
 /*
-Copyright (C) 1993, 1996, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1993, 1996, 2001-2017 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
diff --git a/oldXMenu/Makefile.in b/oldXMenu/Makefile.in
index a695e73..46061ab 100644
--- a/oldXMenu/Makefile.in
+++ b/oldXMenu/Makefile.in
@@ -15,7 +15,7 @@
 ## without express or implied warranty.
 
 
-## Copyright (C) 2001-2016 Free Software Foundation, Inc.
+## Copyright (C) 2001-2017 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
diff --git a/oldXMenu/deps.mk b/oldXMenu/deps.mk
index 4616a7c..bbd98ca 100644
--- a/oldXMenu/deps.mk
+++ b/oldXMenu/deps.mk
@@ -15,7 +15,7 @@
 ## without express or implied warranty.
 
 
-## Copyright (C) 2001-2016 Free Software Foundation, Inc.
+## Copyright (C) 2001-2017 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
diff --git a/oldXMenu/insque.c b/oldXMenu/insque.c
index c044ff0..2906f9c 100644
--- a/oldXMenu/insque.c
+++ b/oldXMenu/insque.c
@@ -1,5 +1,5 @@
 /*
-Copyright (C) 1993-1998, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1993-1998, 2001-2017 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
diff --git a/src/.gdbinit b/src/.gdbinit
index 9160ffa..6d7476d 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-1998, 2000-2016 Free Software Foundation, Inc.
+# Copyright (C) 1992-1998, 2000-2017 Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
@@ -1215,21 +1215,6 @@ document xwhichsymbols
   maximum number of symbols referencing it to produce.
 end
 
-define xbytecode
-  set $bt = byte_stack_list
-  while $bt
-    xgetptr $bt->byte_string
-    set $ptr = (struct Lisp_String *) $ptr
-    xprintbytestr $ptr
-    printf "\n0x%x => ", $bt->byte_string
-    xwhichsymbols $bt->byte_string 5
-    set $bt = $bt->next
-  end
-end
-document xbytecode
-  Print a backtrace of the byte code stack.
-end
-
 # Show Lisp backtrace after normal backtrace.
 define hookpost-backtrace
   set $bt = backtrace_top ()
diff --git a/src/ChangeLog.1 b/src/ChangeLog.1
index 19cc3a2..e51b4ad 100644
--- a/src/ChangeLog.1
+++ b/src/ChangeLog.1
@@ -3521,7 +3521,7 @@
        * minibuf.c: Don't allow entry to minibuffer
        while minibuffer is selected.
 
-    Copyright (C) 1985-1986, 2001-2016 Free Software Foundation, Inc.
+    Copyright (C) 1985-1986, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/ChangeLog.10 b/src/ChangeLog.10
index 340f15e..65a8587 100644
--- a/src/ChangeLog.10
+++ b/src/ChangeLog.10
@@ -27912,7 +27912,7 @@ See ChangeLog.9 for earlier changes.
 ;; add-log-time-zone-rule: t
 ;; End:
 
-    Copyright (C) 2001-2016 Free Software Foundation, Inc.
+    Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/ChangeLog.11 b/src/ChangeLog.11
index b93908b..c9ebce9 100644
--- a/src/ChangeLog.11
+++ b/src/ChangeLog.11
@@ -31385,7 +31385,7 @@ See ChangeLog.10 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2007-2016 Free Software Foundation, Inc.
+  Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/ChangeLog.12 b/src/ChangeLog.12
index a1ebd30..367e0d6 100644
--- a/src/ChangeLog.12
+++ b/src/ChangeLog.12
@@ -22936,7 +22936,7 @@ See ChangeLog.11 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2011-2016 Free Software Foundation, Inc.
+  Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/ChangeLog.13 b/src/ChangeLog.13
index 9e99895..3a58c0c 100644
--- a/src/ChangeLog.13
+++ b/src/ChangeLog.13
@@ -17073,7 +17073,7 @@
 2013-05-04  Stefan Monnier  <address@hidden>
 
        * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
-       (syms_of_minibuf): Adjust accodingly.
+       (syms_of_minibuf): Adjust accordingly.
        * lread.c (Fread):
        * callint.c (Fcall_interactively): Adjust calls accordingly.
 
@@ -17905,7 +17905,7 @@ See ChangeLog.12 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2011-2016 Free Software Foundation, Inc.
+  Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/ChangeLog.2 b/src/ChangeLog.2
index eccd243..56015d5 100644
--- a/src/ChangeLog.2
+++ b/src/ChangeLog.2
@@ -4771,7 +4771,7 @@
 
 See ChangeLog.1 for earlier changes.
 
-    Copyright (C) 1986-1988, 2001-2016 Free Software Foundation, Inc.
+    Copyright (C) 1986-1988, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/ChangeLog.3 b/src/ChangeLog.3
index a62aee7..8f9b38e 100644
--- a/src/ChangeLog.3
+++ b/src/ChangeLog.3
@@ -11648,7 +11648,7 @@
 
        * fileio.c (Fcopy_file): Always close descriptors.
 
-       * s-sunos4.h: read, write, open and close are interruptable.
+       * s-sunos4.h: read, write, open and close are interruptible.
 
 1991-01-09  Jim Blandy  (address@hidden)
 
@@ -16503,7 +16503,7 @@ See ChangeLog.2 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/ChangeLog.4 b/src/ChangeLog.4
index 4970cbd..bb13c9a 100644
--- a/src/ChangeLog.4
+++ b/src/ChangeLog.4
@@ -6906,7 +6906,7 @@ See ChangeLog.3 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/ChangeLog.5 b/src/ChangeLog.5
index 9af8b80..f0fde02 100644
--- a/src/ChangeLog.5
+++ b/src/ChangeLog.5
@@ -7148,7 +7148,7 @@ See ChangeLog.4 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1994-1995, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1994-1995, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/ChangeLog.6 b/src/ChangeLog.6
index ead1daf..2282916 100644
--- a/src/ChangeLog.6
+++ b/src/ChangeLog.6
@@ -5358,7 +5358,7 @@ See ChangeLog.5 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1995-1996, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1995-1996, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/ChangeLog.7 b/src/ChangeLog.7
index f4d77a2..eb4833c 100644
--- a/src/ChangeLog.7
+++ b/src/ChangeLog.7
@@ -11091,7 +11091,7 @@ See ChangeLog.6 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 1997-1998, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1997-1998, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/ChangeLog.8 b/src/ChangeLog.8
index 3d24b2d..ae971b5 100644
--- a/src/ChangeLog.8
+++ b/src/ChangeLog.8
@@ -13979,7 +13979,7 @@
 
 See ChangeLog.7 for earlier changes.
 
-  Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 1999, 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/ChangeLog.9 b/src/ChangeLog.9
index c2e324a..7b8f500 100644
--- a/src/ChangeLog.9
+++ b/src/ChangeLog.9
@@ -13294,7 +13294,7 @@ See ChangeLog.8 for earlier changes.
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2001-2016 Free Software Foundation, Inc.
+  Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/src/Makefile.in b/src/Makefile.in
index e5159ae..e5e5342 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2016 Free Software
+# Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2017 Free Software
 # Foundation, Inc.
 
 # This file is part of GNU Emacs.
@@ -38,9 +38,6 @@ CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
 EXEEXT = @EXEEXT@
 version = @version@
-# Substitute an assignment for the MAKE variable, because
-# BSD doesn't have it as a default.
address@hidden@
 MKDIR_P = @MKDIR_P@
 # Don't use LIBS.  configure puts stuff in it that either shouldn't be
 # linked with Emacs or is duplicated by the other stuff below.
diff --git a/src/README b/src/README
index 5f1fec5..fef2ff4 100644
--- a/src/README
+++ b/src/README
@@ -1,4 +1,4 @@
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
diff --git a/src/alloc.c b/src/alloc.c
index 0c6c1e0..8c9b116 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -1,6 +1,6 @@
 /* Storage allocation and gc for GNU Emacs Lisp interpreter.
 
-Copyright (C) 1985-1986, 1988, 1993-1995, 1997-2016 Free Software
+Copyright (C) 1985-1986, 1988, 1993-1995, 1997-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -2876,45 +2876,15 @@ usage: (list &rest OBJECTS)  */)
 
 DEFUN ("make-list", Fmake_list, Smake_list, 2, 2, 0,
        doc: /* Return a newly created list of length LENGTH, with each element 
being INIT.  */)
-  (register Lisp_Object length, Lisp_Object init)
+  (Lisp_Object length, Lisp_Object init)
 {
-  register Lisp_Object val;
-  register EMACS_INT size;
-
+  Lisp_Object val = Qnil;
   CHECK_NATNUM (length);
-  size = XFASTINT (length);
 
-  val = Qnil;
-  while (size > 0)
+  for (EMACS_INT size = XFASTINT (length); 0 < size; size--)
     {
       val = Fcons (init, val);
-      --size;
-
-      if (size > 0)
-       {
-         val = Fcons (init, val);
-         --size;
-
-         if (size > 0)
-           {
-             val = Fcons (init, val);
-             --size;
-
-             if (size > 0)
-               {
-                 val = Fcons (init, val);
-                 --size;
-
-                 if (size > 0)
-                   {
-                     val = Fcons (init, val);
-                     --size;
-                   }
-               }
-           }
-       }
-
-      QUIT;
+      maybe_quit ();
     }
 
   return val;
@@ -5479,6 +5449,37 @@ make_pure_vector (ptrdiff_t len)
   return new;
 }
 
+/* Copy all contents and parameters of TABLE to a new table allocated
+   from pure space, return the purified table.  */
+static struct Lisp_Hash_Table *
+purecopy_hash_table (struct Lisp_Hash_Table *table) {
+  eassert (NILP (table->weak));
+  eassert (!NILP (table->pure));
+
+  struct Lisp_Hash_Table *pure = pure_alloc (sizeof *pure, Lisp_Vectorlike);
+  struct hash_table_test pure_test = table->test;
+
+  /* Purecopy the hash table test.  */
+  pure_test.name = purecopy (table->test.name);
+  pure_test.user_hash_function = purecopy (table->test.user_hash_function);
+  pure_test.user_cmp_function = purecopy (table->test.user_cmp_function);
+
+  pure->test = pure_test;
+  pure->header = table->header;
+  pure->weak = purecopy (Qnil);
+  pure->rehash_size = purecopy (table->rehash_size);
+  pure->rehash_threshold = purecopy (table->rehash_threshold);
+  pure->hash = purecopy (table->hash);
+  pure->next = purecopy (table->next);
+  pure->next_free = purecopy (table->next_free);
+  pure->index = purecopy (table->index);
+  pure->count = table->count;
+  pure->key_and_value = purecopy (table->key_and_value);
+  pure->pure = purecopy (table->pure);
+
+  return pure;
+}
+
 DEFUN ("purecopy", Fpurecopy, Spurecopy, 1, 1, 0,
        doc: /* Make a copy of object OBJ in pure storage.
 Recursively copies contents of vectors and cons cells.
@@ -5487,14 +5488,22 @@ Does not copy symbols.  Copies strings without text 
properties.  */)
 {
   if (NILP (Vpurify_flag))
     return obj;
-  else if (MARKERP (obj) || OVERLAYP (obj)
-          || HASH_TABLE_P (obj) || SYMBOLP (obj))
+  else if (MARKERP (obj) || OVERLAYP (obj) || SYMBOLP (obj))
     /* Can't purify those.  */
     return obj;
   else
     return purecopy (obj);
 }
 
+struct pinned_object
+{
+  Lisp_Object object;
+  struct pinned_object *next;
+};
+
+/* Pinned objects are marked before every GC cycle.  */
+static struct pinned_object *pinned_objects;
+
 static Lisp_Object
 purecopy (Lisp_Object obj)
 {
@@ -5522,7 +5531,27 @@ purecopy (Lisp_Object obj)
     obj = make_pure_string (SSDATA (obj), SCHARS (obj),
                            SBYTES (obj),
                            STRING_MULTIBYTE (obj));
-  else if (COMPILEDP (obj) || VECTORP (obj) || HASH_TABLE_P (obj))
+  else if (HASH_TABLE_P (obj))
+    {
+      struct Lisp_Hash_Table *table = XHASH_TABLE (obj);
+      /* We cannot purify hash tables which haven't been defined with
+         :purecopy as non-nil or are weak - they aren't guaranteed to
+         not change.  */
+      if (!NILP (table->weak) || NILP (table->pure))
+        {
+          /* Instead, the hash table is added to the list of pinned objects,
+             and is marked before GC.  */
+          struct pinned_object *o = xmalloc (sizeof *o);
+          o->object = obj;
+          o->next = pinned_objects;
+          pinned_objects = o;
+          return obj; /* Don't hash cons it.  */
+        }
+
+      struct Lisp_Hash_Table *h = purecopy_hash_table (table);
+      XSET_HASH_TABLE (obj, h);
+    }
+  else if (COMPILEDP (obj) || VECTORP (obj))
     {
       struct Lisp_Vector *objp = XVECTOR (obj);
       ptrdiff_t nbytes = vector_nbytes (objp);
@@ -5739,6 +5768,16 @@ compact_undo_list (Lisp_Object list)
 }
 
 static void
+mark_pinned_objects (void)
+{
+  struct pinned_object *pobj;
+  for (pobj = pinned_objects; pobj; pobj = pobj->next)
+    {
+      mark_object (pobj->object);
+    }
+}
+
+static void
 mark_pinned_symbols (void)
 {
   struct symbol_block *sblk;
@@ -5858,6 +5897,7 @@ garbage_collect_1 (void *end)
   for (i = 0; i < staticidx; i++)
     mark_object (*staticvec[i]);
 
+  mark_pinned_objects ();
   mark_pinned_symbols ();
   mark_terminals ();
   mark_kboards ();
@@ -5898,8 +5938,6 @@ garbage_collect_1 (void *end)
 
   gc_sweep ();
 
-  unmark_threads ();
-
   /* Clear the mark bits that we set in certain root slots.  */
   VECTOR_UNMARK (&buffer_defaults);
   VECTOR_UNMARK (&buffer_local_symbols);
@@ -6421,7 +6459,7 @@ mark_object (Lisp_Object arg)
 
 #ifdef GC_CHECK_MARKED_OBJECTS
        m = mem_find (po);
-       if (m == MEM_NIL && !SUBRP (obj))
+       if (m == MEM_NIL && !SUBRP (obj) && !main_thread_p (po))
          emacs_abort ();
 #endif /* GC_CHECK_MARKED_OBJECTS */
 
@@ -6431,7 +6469,9 @@ mark_object (Lisp_Object arg)
        else
          pvectype = PVEC_NORMAL_VECTOR;
 
-       if (pvectype != PVEC_SUBR && pvectype != PVEC_BUFFER)
+       if (pvectype != PVEC_SUBR
+           && pvectype != PVEC_BUFFER
+           && !main_thread_p (po))
          CHECK_LIVE (live_vector_p);
 
        switch (pvectype)
diff --git a/src/atimer.c b/src/atimer.c
index 64c9e8a..5feb1f6 100644
--- a/src/atimer.c
+++ b/src/atimer.c
@@ -1,5 +1,5 @@
 /* Asynchronous timers.
-   Copyright (C) 2000-2016 Free Software Foundation, Inc.
+   Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -20,6 +20,7 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include <stdio.h>
 
 #include "lisp.h"
+#include "keyboard.h"
 #include "syssignal.h"
 #include "systime.h"
 #include "atimer.h"
diff --git a/src/atimer.h b/src/atimer.h
index 17183c8..30a5856 100644
--- a/src/atimer.h
+++ b/src/atimer.h
@@ -1,5 +1,5 @@
 /* Asynchronous timers.
-   Copyright (C) 2000-2016 Free Software Foundation, Inc.
+   Copyright (C) 2000-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/bidi.c b/src/bidi.c
index 5824de5..b75ad93 100644
--- a/src/bidi.c
+++ b/src/bidi.c
@@ -1,5 +1,5 @@
 /* Low-level bidirectional buffer/string-scanning functions for GNU Emacs.
-   Copyright (C) 2000-2001, 2004-2005, 2009-2016 Free Software
+   Copyright (C) 2000-2001, 2004-2005, 2009-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/blockinput.h b/src/blockinput.h
index bf51375..d57c5ba 100644
--- a/src/blockinput.h
+++ b/src/blockinput.h
@@ -1,5 +1,5 @@
 /* blockinput.h - interface to blocking complicated interrupt-driven input.
-   Copyright (C) 1989, 1993, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1989, 1993, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/buffer.c b/src/buffer.c
index babfba3..c00cc40 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1,6 +1,6 @@
 /* Buffer manipulation primitives for GNU Emacs.
 
-Copyright (C) 1985-1989, 1993-1995, 1997-2016 Free Software Foundation,
+Copyright (C) 1985-1989, 1993-1995, 1997-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
@@ -32,6 +32,7 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 
 #include "lisp.h"
 #include "intervals.h"
+#include "process.h"
 #include "systime.h"
 #include "window.h"
 #include "commands.h"
@@ -414,19 +415,16 @@ followed by the rest of the buffers.  */)
 }
 
 /* Like Fassoc, but use Fstring_equal to compare
-   (which ignores text properties),
-   and don't ever QUIT.  */
+   (which ignores text properties), and don't ever quit.  */
 
 static Lisp_Object
-assoc_ignore_text_properties (register Lisp_Object key, Lisp_Object list)
+assoc_ignore_text_properties (Lisp_Object key, Lisp_Object list)
 {
-  register Lisp_Object tail;
+  Lisp_Object tail;
   for (tail = list; CONSP (tail); tail = XCDR (tail))
     {
-      register Lisp_Object elt, tem;
-      elt = XCAR (tail);
-      tem = Fstring_equal (Fcar (elt), key);
-      if (!NILP (tem))
+      Lisp_Object elt = XCAR (tail);
+      if (!NILP (Fstring_equal (Fcar (elt), key)))
        return elt;
     }
   return Qnil;
diff --git a/src/buffer.h b/src/buffer.h
index 854b5b5..4a23e4f 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -1,6 +1,6 @@
 /* Header file for the buffer manipulation primitives.
 
-Copyright (C) 1985-1986, 1993-1995, 1997-2016 Free Software Foundation,
+Copyright (C) 1985-1986, 1993-1995, 1997-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
@@ -881,6 +881,25 @@ struct buffer
   Lisp_Object undo_list_;
 };
 
+INLINE bool
+BUFFERP (Lisp_Object a)
+{
+  return PSEUDOVECTORP (a, PVEC_BUFFER);
+}
+
+INLINE void
+CHECK_BUFFER (Lisp_Object x)
+{
+  CHECK_TYPE (BUFFERP (x), Qbufferp, x);
+}
+
+INLINE struct buffer *
+XBUFFER (Lisp_Object a)
+{
+  eassert (BUFFERP (a));
+  return XUNTAG (a, Lisp_Vectorlike);
+}
+
 /* Most code should use these functions to set Lisp fields in struct
    buffer.  (Some setters that are private to a single .c file are
    defined as static in those files.)  */
diff --git a/src/bytecode.c b/src/bytecode.c
index 3e64d2f..02a3f70 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -1,5 +1,5 @@
 /* Execution of byte code produced by bytecomp.el.
-   Copyright (C) 1985-1988, 1993, 2000-2016 Free Software Foundation,
+   Copyright (C) 1985-1988, 1993, 2000-2017 Free Software Foundation,
    Inc.
 
 This file is part of GNU Emacs.
@@ -81,11 +81,8 @@ relocate_byte_stack (struct byte_stack *stack)
 
 
 /* Fetch the next byte from the bytecode stream.  */
-#ifdef BYTE_CODE_SAFE
-#define FETCH (eassert (stack.byte_string_start == SDATA (stack.byte_string)), 
*stack.pc++)
-#else
-#define FETCH *stack.pc++
-#endif
+
+#define FETCH (*pc++)
 
 /* Fetch two bytes from the bytecode stream and make a 16-bit number
    out of them.  */
@@ -110,29 +107,6 @@ relocate_byte_stack (struct byte_stack *stack)
 
 #define TOP (*top)
 
-#define CHECK_RANGE(ARG)                                               \
-  (BYTE_CODE_SAFE && bytestr_length <= (ARG) ? emacs_abort () : (void) 0)
-
-/* A version of the QUIT macro which makes sure that the stack top is
-   set before signaling `quit'.  */
-#define BYTE_CODE_QUIT                                 \
-  do {                                                 \
-    if (quitcounter++)                                 \
-      break;                                           \
-    maybe_gc ();                                       \
-    if (!NILP (Vquit_flag) && NILP (Vinhibit_quit))    \
-      {                                                        \
-       Lisp_Object flag = Vquit_flag;                  \
-       Vquit_flag = Qnil;                              \
-       if (EQ (Vthrow_on_input, flag))                 \
-         Fthrow (Vthrow_on_input, Qt);                 \
-       quit ();                                        \
-      }                                                        \
-    else if (pending_signals)                          \
-      process_pending_signals ();                      \
-  } while (0)
-
-
 DEFUN ("byte-code", Fbyte_code, Sbyte_code, 3, 3, 0,
        doc: /* Function used internally in byte-compiled code.
 The first argument, BYTESTR, is a string of byte code;
@@ -182,19 +156,18 @@ exec_byte_code__ (Lisp_Object bytestr, Lisp_Object 
vector, Lisp_Object maxdepth,
 
   ptrdiff_t bytestr_length = SBYTES (bytestr);
   Lisp_Object *vectorp = XVECTOR (vector)->contents;
-  struct byte_stack stack;
 
-  stack.byte_string = bytestr;
-  stack.pc = stack.byte_string_start = SDATA (bytestr);
-  unsigned char quitcounter = 0;
+  unsigned char quitcounter = 1;
   EMACS_INT stack_items = XFASTINT (maxdepth) + 1;
   USE_SAFE_ALLOCA;
   Lisp_Object *stack_base;
-  SAFE_ALLOCA_LISP (stack_base, stack_items);
+  SAFE_ALLOCA_LISP_EXTRA (stack_base, stack_items, bytestr_length);
   Lisp_Object *stack_lim = stack_base + stack_items;
   Lisp_Object *top = stack_base;
-  stack.next = byte_stack_list;
-  byte_stack_list = &stack;
+  memcpy (stack_lim, SDATA (bytestr), bytestr_length);
+  void *void_stack_lim = stack_lim;
+  unsigned char const *bytestr_data = void_stack_lim;
+  unsigned char const *pc = bytestr_data;
   ptrdiff_t count = SPECPDL_INDEX ();
 
   if (!NILP (args_template))
@@ -333,15 +306,10 @@ exec_byte_code__ (Lisp_Object bytestr, Lisp_Object 
vector, Lisp_Object maxdepth,
 
        CASE (Bgotoifnil):
          {
-           Lisp_Object v1;
+           Lisp_Object v1 = POP;
            op = FETCH2;
-           v1 = POP;
            if (NILP (v1))
-             {
-               BYTE_CODE_QUIT;
-               CHECK_RANGE (op);
-               stack.pc = stack.byte_string_start + op;
-             }
+             goto op_branch;
            NEXT;
          }
 
@@ -496,86 +464,72 @@ exec_byte_code__ (Lisp_Object bytestr, Lisp_Object 
vector, Lisp_Object maxdepth,
          NEXT;
 
        CASE (Bgoto):
-         BYTE_CODE_QUIT;
-         op = FETCH2;    /* pc = FETCH2 loses since FETCH2 contains pc++ */
-         CHECK_RANGE (op);
-         stack.pc = stack.byte_string_start + op;
+         op = FETCH2;
+       op_branch:
+         op -= pc - bytestr_data;
+       op_relative_branch:
+         if (BYTE_CODE_SAFE
+             && ! (bytestr_data - pc <= op
+                   && op < bytestr_data + bytestr_length - pc))
+           emacs_abort ();
+         quitcounter += op < 0;
+         if (!quitcounter)
+           {
+             quitcounter = 1;
+             maybe_gc ();
+             maybe_quit ();
+           }
+         pc += op;
          NEXT;
 
        CASE (Bgotoifnonnil):
          op = FETCH2;
-         Lisp_Object v1 = POP;
-         if (!NILP (v1))
-           {
-             BYTE_CODE_QUIT;
-             CHECK_RANGE (op);
-             stack.pc = stack.byte_string_start + op;
-           }
+         if (!NILP (POP))
+           goto op_branch;
          NEXT;
 
        CASE (Bgotoifnilelsepop):
          op = FETCH2;
          if (NILP (TOP))
-           {
-             BYTE_CODE_QUIT;
-             CHECK_RANGE (op);
-             stack.pc = stack.byte_string_start + op;
-           }
-         else DISCARD (1);
+           goto op_branch;
+         DISCARD (1);
          NEXT;
 
        CASE (Bgotoifnonnilelsepop):
          op = FETCH2;
          if (!NILP (TOP))
-           {
-             BYTE_CODE_QUIT;
-             CHECK_RANGE (op);
-             stack.pc = stack.byte_string_start + op;
-           }
-         else DISCARD (1);
+           goto op_branch;
+         DISCARD (1);
          NEXT;
 
        CASE (BRgoto):
-         BYTE_CODE_QUIT;
-         stack.pc += (int) *stack.pc - 127;
-         NEXT;
+         op = FETCH - 128;
+         goto op_relative_branch;
 
        CASE (BRgotoifnil):
+         op = FETCH - 128;
          if (NILP (POP))
-           {
-             BYTE_CODE_QUIT;
-             stack.pc += (int) *stack.pc - 128;
-           }
-         stack.pc++;
+           goto op_relative_branch;
          NEXT;
 
        CASE (BRgotoifnonnil):
+         op = FETCH - 128;
          if (!NILP (POP))
-           {
-             BYTE_CODE_QUIT;
-             stack.pc += (int) *stack.pc - 128;
-           }
-         stack.pc++;
+           goto op_relative_branch;
          NEXT;
 
        CASE (BRgotoifnilelsepop):
-         op = *stack.pc++;
+         op = FETCH - 128;
          if (NILP (TOP))
-           {
-             BYTE_CODE_QUIT;
-             stack.pc += op - 128;
-           }
-         else DISCARD (1);
+           goto op_relative_branch;
+         DISCARD (1);
          NEXT;
 
        CASE (BRgotoifnonnilelsepop):
-         op = *stack.pc++;
+         op = FETCH - 128;
          if (!NILP (TOP))
-           {
-             BYTE_CODE_QUIT;
-             stack.pc += op - 128;
-           }
-         else DISCARD (1);
+           goto op_relative_branch;
+         DISCARD (1);
          NEXT;
 
        CASE (Breturn):
@@ -635,15 +589,11 @@ exec_byte_code__ (Lisp_Object bytestr, Lisp_Object 
vector, Lisp_Object maxdepth,
            if (sys_setjmp (c->jmp))
              {
                struct handler *c = handlerlist;
-               int dest;
                top = c->bytecode_top;
-               dest = c->bytecode_dest;
+               op = c->bytecode_dest;
                handlerlist = c->next;
                PUSH (c->val);
-               CHECK_RANGE (dest);
-               /* Might have been re-set by longjmp!  */
-               stack.byte_string_start = SDATA (stack.byte_string);
-               stack.pc = stack.byte_string_start + dest;
+               goto op_branch;
              }
 
            NEXT;
@@ -657,7 +607,7 @@ exec_byte_code__ (Lisp_Object bytestr, Lisp_Object vector, 
Lisp_Object maxdepth,
          {
            Lisp_Object handler = POP;
            /* Support for a function here is new in 24.4.  */
-           record_unwind_protect (FUNCTIONP (handler) ? bcall0 : unwind_body,
+           record_unwind_protect (FUNCTIONP (handler) ? bcall0 : prog_ignore,
                                   handler);
            NEXT;
          }
@@ -1086,9 +1036,9 @@ exec_byte_code__ (Lisp_Object bytestr, Lisp_Object 
vector, Lisp_Object maxdepth,
 
        CASE (Bdowncase):
          TOP = Fdowncase (TOP);
-       NEXT;
+         NEXT;
 
-      CASE (Bstringeqlsign):
+       CASE (Bstringeqlsign):
          {
            Lisp_Object v1 = POP;
            TOP = Fstring_equal (TOP, v1);
@@ -1211,7 +1161,7 @@ exec_byte_code__ (Lisp_Object bytestr, Lisp_Object 
vector, Lisp_Object maxdepth,
          call3 (Qerror,
                 build_string ("Invalid byte opcode: op=%s, ptr=%d"),
                 make_number (op),
-                make_number (stack.pc - 1 - stack.byte_string_start));
+                make_number (pc - 1 - bytestr_data));
 
          /* Handy byte-codes for lexical binding.  */
        CASE (Bstack_ref1):
@@ -1271,8 +1221,6 @@ exec_byte_code__ (Lisp_Object bytestr, Lisp_Object 
vector, Lisp_Object maxdepth,
 
  exit:
 
-  byte_stack_list = byte_stack_list->next;
-
   /* Binds and unbinds are supposed to be compiled balanced.  */
   if (SPECPDL_INDEX () != count)
     {
diff --git a/src/callint.c b/src/callint.c
index c0afc7b..d964548 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -1,5 +1,5 @@
 /* Call a Lisp function interactively.
-   Copyright (C) 1985-1986, 1993-1995, 1997, 2000-2016 Free Software
+   Copyright (C) 1985-1986, 1993-1995, 1997, 2000-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -794,7 +794,7 @@ invoke it.  If KEYS is omitted or nil, the return value of
     }
   unbind_to (speccount, Qnil);
 
-  QUIT;
+  maybe_quit ();
 
   args[0] = Qfuncall_interactively;
   args[1] = function;
diff --git a/src/callproc.c b/src/callproc.c
index 02db348..301ccf3 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -1,6 +1,6 @@
 /* Synchronous subprocess invocation for GNU Emacs.
 
-Copyright (C) 1985-1988, 1993-1995, 1999-2016 Free Software Foundation,
+Copyright (C) 1985-1988, 1993-1995, 1999-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
@@ -32,7 +32,6 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include "lisp.h"
 
 #ifdef WINDOWSNT
-#define NOMINMAX
 #include <sys/socket.h>        /* for fcntl */
 #include <windows.h>
 #include "w32.h"
@@ -199,11 +198,11 @@ call_process_cleanup (Lisp_Object buffer)
     {
       kill (-synch_process_pid, SIGINT);
       message1 ("Waiting for process to die...(type C-g again to kill it 
instantly)");
-      immediate_quit = 1;
-      QUIT;
+      immediate_quit = true;
+      maybe_quit ();
       wait_for_termination (synch_process_pid, 0, 1);
       synch_process_pid = 0;
-      immediate_quit = 0;
+      immediate_quit = false;
       message1 ("Waiting for process to die...done");
     }
 #endif /* !MSDOS */
@@ -727,8 +726,8 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int 
filefd,
       process_coding.src_multibyte = 0;
     }
 
-  immediate_quit = 1;
-  QUIT;
+  immediate_quit = true;
+  maybe_quit ();
 
   if (0 <= fd0)
     {
@@ -770,7 +769,7 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int 
filefd,
            }
 
          /* Now NREAD is the total amount of data in the buffer.  */
-         immediate_quit = 0;
+         immediate_quit = false;
 
          if (!nread)
            ;
@@ -844,7 +843,7 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int 
filefd,
              display_on_the_fly = true;
            }
          immediate_quit = true;
-         QUIT;
+         maybe_quit ();
        }
     give_up: ;
 
@@ -861,7 +860,7 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int 
filefd,
   wait_for_termination (pid, &status, fd0 < 0);
 #endif
 
-  immediate_quit = 0;
+  immediate_quit = false;
 
   /* Don't kill any children that the subprocess may have left behind
      when exiting.  */
diff --git a/src/casefiddle.c b/src/casefiddle.c
index 2d32f49..28ffcb2 100644
--- a/src/casefiddle.c
+++ b/src/casefiddle.c
@@ -1,6 +1,6 @@
 /* GNU Emacs case conversion functions.
 
-Copyright (C) 1985, 1994, 1997-1999, 2001-2016 Free Software Foundation,
+Copyright (C) 1985, 1994, 1997-1999, 2001-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/casetab.c b/src/casetab.c
index 2461647..6108bb6 100644
--- a/src/casetab.c
+++ b/src/casetab.c
@@ -1,5 +1,5 @@
 /* GNU Emacs routines to deal with case tables.
-   Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 Author: Howard Gayle
 
diff --git a/src/category.c b/src/category.c
index 8315797..ff287a4 100644
--- a/src/category.c
+++ b/src/category.c
@@ -1,6 +1,6 @@
 /* GNU Emacs routines to deal with category tables.
 
-Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
   2005, 2006, 2007, 2008, 2009, 2010, 2011
   National Institute of Advanced Industrial Science and Technology (AIST)
@@ -67,7 +67,7 @@ hash_get_category_set (Lisp_Object table, Lisp_Object 
category_set)
        make_hash_table (hashtest_equal, make_number (DEFAULT_HASH_SIZE),
                        make_float (DEFAULT_REHASH_SIZE),
                        make_float (DEFAULT_REHASH_THRESHOLD),
-                       Qnil));
+                       Qnil, Qnil));
   h = XHASH_TABLE (XCHAR_TABLE (table)->extras[1]);
   i = hash_lookup (h, category_set, &hash);
   if (i >= 0)
diff --git a/src/ccl.c b/src/ccl.c
index b9dc52e..90bd2f4 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -1,5 +1,5 @@
 /* CCL (Code Conversion Language) interpreter.
-   Copyright (C) 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2017 Free Software Foundation, Inc.
    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
      2005, 2006, 2007, 2008, 2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
@@ -1993,7 +1993,7 @@ programs.  */)
                  : 0);
 
   ccl_driver (&ccl, NULL, NULL, 0, 0, Qnil);
-  QUIT;
+  maybe_quit ();
   if (ccl.status != CCL_STAT_SUCCESS)
     error ("Error in CCL program at %dth code", ccl.ic);
 
diff --git a/src/character.c b/src/character.c
index 75a7dab..cf46054 100644
--- a/src/character.c
+++ b/src/character.c
@@ -1,6 +1,6 @@
 /* Basic character support.
 
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 Copyright (C) 1995, 1997, 1998, 2001 Electrotechnical Laboratory, JAPAN.
   Licensed to the Free Software Foundation.
 Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
@@ -1038,6 +1038,18 @@ printablep (int c)
            || gen_cat == UNICODE_CATEGORY_Cn)); /* unassigned */
 }
 
+/* Return true if C is a horizontal whitespace character, as defined
+   by http://www.unicode.org/reports/tr18/tr18-19.html#blank.  */
+bool
+blankp (int c)
+{
+  Lisp_Object category = CHAR_TABLE_REF (Vunicode_category_table, c);
+  if (! INTEGERP (category))
+    return false;
+
+  return XINT (category) == UNICODE_CATEGORY_Zs; /* separator, space */
+}
+
 void
 syms_of_character (void)
 {
diff --git a/src/character.h b/src/character.h
index fc8a0dd..62d252e 100644
--- a/src/character.h
+++ b/src/character.h
@@ -680,6 +680,7 @@ extern bool alphabeticp (int);
 extern bool alphanumericp (int);
 extern bool graphicp (int);
 extern bool printablep (int);
+extern bool blankp (int);
 
 /* Return a translation table of id number ID.  */
 #define GET_TRANSLATION_TABLE(id) \
diff --git a/src/charset.c b/src/charset.c
index ff937bc..f0b4140 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1,6 +1,6 @@
 /* Basic character set support.
 
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
   2005, 2006, 2007, 2008, 2009, 2010, 2011
@@ -241,7 +241,7 @@ struct charset_map_entries
 static void
 load_charset_map (struct charset *charset, struct charset_map_entries 
*entries, int n_entries, int control_flag)
 {
-  Lisp_Object vec;
+  Lisp_Object vec UNINIT;
   Lisp_Object table UNINIT;
   unsigned max_code = CHARSET_MAX_CODE (charset);
   bool ascii_compatible_p = charset->ascii_compatible_p;
diff --git a/src/charset.h b/src/charset.h
index 8e77567..a26d643 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -1,5 +1,5 @@
 /* Header for charset handler.
-   Copyright (C) 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2017 Free Software Foundation, Inc.
    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
      2005, 2006, 2007, 2008, 2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/src/cm.c b/src/cm.c
index e135889..efa50b0 100644
--- a/src/cm.c
+++ b/src/cm.c
@@ -1,5 +1,5 @@
 /* Cursor motion subroutines for GNU Emacs.
-   Copyright (C) 1985, 1995, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1985, 1995, 2001-2017 Free Software Foundation, Inc.
     based primarily on public domain code written by Chris Torek
 
 This file is part of GNU Emacs.
diff --git a/src/cm.h b/src/cm.h
index 126969d..83ef512 100644
--- a/src/cm.h
+++ b/src/cm.h
@@ -1,5 +1,5 @@
 /* Cursor motion calculation definitions for GNU Emacs
-   Copyright (C) 1985, 1989, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1985, 1989, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/cmds.c b/src/cmds.c
index 4003d8b..51652d5 100644
--- a/src/cmds.c
+++ b/src/cmds.c
@@ -1,6 +1,6 @@
 /* Simple built-in editing commands.
 
-Copyright (C) 1985, 1993-1998, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1993-1998, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/coding.c b/src/coding.c
index feed9c8..68ed862 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -1,5 +1,5 @@
 /* Coding system handler (conversion, detection, etc).
-   Copyright (C) 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2017 Free Software Foundation, Inc.
    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
      2005, 2006, 2007, 2008, 2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
@@ -8028,12 +8028,12 @@ decode_coding_object (struct coding_system *coding,
                      Lisp_Object dst_object)
 {
   ptrdiff_t count = SPECPDL_INDEX ();
-  unsigned char *destination;
-  ptrdiff_t dst_bytes;
+  unsigned char *destination UNINIT;
+  ptrdiff_t dst_bytes UNINIT;
   ptrdiff_t chars = to - from;
   ptrdiff_t bytes = to_byte - from_byte;
   Lisp_Object attrs;
-  ptrdiff_t saved_pt = -1, saved_pt_byte;
+  ptrdiff_t saved_pt = -1, saved_pt_byte UNINIT;
   bool need_marker_adjustment = 0;
   Lisp_Object old_deactivate_mark;
 
diff --git a/src/coding.h b/src/coding.h
index 426be62..7a1dd68 100644
--- a/src/coding.h
+++ b/src/coding.h
@@ -1,5 +1,5 @@
 /* Header for coding system handler.
-   Copyright (C) 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2017 Free Software Foundation, Inc.
    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
      2005, 2006, 2007, 2008, 2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/src/commands.h b/src/commands.h
index 4e69cda..03e1b73 100644
--- a/src/commands.h
+++ b/src/commands.h
@@ -1,5 +1,5 @@
 /* Definitions needed by most editing commands.
-   Copyright (C) 1985, 1994, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1985, 1994, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/composite.c b/src/composite.c
index da92135..f23bb17 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -1,5 +1,5 @@
 /* Composite sequence support.
-   Copyright (C) 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2017 Free Software Foundation, Inc.
    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 
2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
@@ -891,6 +891,8 @@ autocmp_chars (Lisp_Object rule, ptrdiff_t charpos, 
ptrdiff_t bytepos,
   if (len <= 0)
     return unbind_to (count, Qnil);
   to = limit = charpos + len;
+  font_object = win->frame;
+#ifdef HAVE_WINDOW_SYSTEM
   if (FRAME_WINDOW_P (f))
     {
       font_object = font_range (charpos, bytepos, &to, win, face, string);
@@ -900,8 +902,7 @@ autocmp_chars (Lisp_Object rule, ptrdiff_t charpos, 
ptrdiff_t bytepos,
              && (fast_looking_at (re, charpos, bytepos, to, -1, string) <= 0)))
        return unbind_to (count, Qnil);
     }
-  else
-    font_object = win->frame;
+#endif
   lgstring = Fcomposition_get_gstring (pos, make_number (to), font_object,
                                       string);
   if (NILP (LGSTRING_ID (lgstring)))
diff --git a/src/composite.h b/src/composite.h
index 80e1740..dc1e7ce 100644
--- a/src/composite.h
+++ b/src/composite.h
@@ -1,5 +1,5 @@
 /* Header for composite sequence handler.
-   Copyright (C) 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2017 Free Software Foundation, Inc.
    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 
2007, 2008, 2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H14PRO021
diff --git a/src/conf_post.h b/src/conf_post.h
index 060b912..e146b9b 100644
--- a/src/conf_post.h
+++ b/src/conf_post.h
@@ -1,6 +1,6 @@
 /* conf_post.h --- configure.ac includes this via AH_BOTTOM
 
-Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2016 Free Software
+Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/cygw32.c b/src/cygw32.c
index ca9069a..962b6a2 100644
--- a/src/cygw32.c
+++ b/src/cygw32.c
@@ -1,5 +1,5 @@
 /* Cygwin support routines.
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/cygw32.h b/src/cygw32.h
index 0f69881..a10b830 100644
--- a/src/cygw32.h
+++ b/src/cygw32.h
@@ -1,5 +1,5 @@
 /* Header for Cygwin support routines.
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/data.c b/src/data.c
index 7abe1aa..0984072 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1,5 +1,5 @@
 /* Primitive operations on Lisp data types for GNU Emacs Lisp interpreter.
-   Copyright (C) 1985-1986, 1988, 1993-1995, 1997-2016 Free Software
+   Copyright (C) 1985-1986, 1988, 1993-1995, 1997-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -31,6 +31,7 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include "character.h"
 #include "buffer.h"
 #include "keyboard.h"
+#include "process.h"
 #include "frame.h"
 #include "keymap.h"
 
@@ -1176,9 +1177,7 @@ swap_in_symval_forwarding (struct Lisp_Symbol *symbol, 
struct Lisp_Buffer_Local_
   tem1 = blv->where;
 
   if (NILP (tem1)
-      || (blv->frame_local
-         ? !EQ (selected_frame, tem1)
-         : current_buffer != XBUFFER (tem1)))
+      || current_buffer != XBUFFER (tem1))
     {
 
       /* Unload the previously loaded binding.  */
@@ -1189,16 +1188,8 @@ swap_in_symval_forwarding (struct Lisp_Symbol *symbol, 
struct Lisp_Buffer_Local_
       {
        Lisp_Object var;
        XSETSYMBOL (var, symbol);
-       if (blv->frame_local)
-         {
-           tem1 = assq_no_quit (var, XFRAME (selected_frame)->param_alist);
-           set_blv_where (blv, selected_frame);
-         }
-       else
-         {
-           tem1 = assq_no_quit (var, BVAR (current_buffer, local_var_alist));
-           set_blv_where (blv, Fcurrent_buffer ());
-         }
+       tem1 = assq_no_quit (var, BVAR (current_buffer, local_var_alist));
+       set_blv_where (blv, Fcurrent_buffer ());
       }
       if (!(blv->found = !NILP (tem1)))
        tem1 = blv->defcell;
@@ -1266,7 +1257,7 @@ DEFUN ("set", Fset, Sset, 2, 2, 0,
 }
 
 /* Store the value NEWVAL into SYMBOL.
-   If buffer/frame-locality is an issue, WHERE specifies which context to use.
+   If buffer-locality is an issue, WHERE specifies which context to use.
    (nil stands for the current buffer/frame).
 
    If BINDFLAG is SET_INTERNAL_SET, then if this symbol is supposed to
@@ -1313,6 +1304,56 @@ set_internal (Lisp_Object symbol, Lisp_Object newval, 
Lisp_Object where,
     default: emacs_abort ();
     }
 
+
+  const char* symname = SDATA(sym->name);
+
+  if( EQ(Vwatch_object, symbol) )
+  {
+      static int nest_level = 0;
+      if(nest_level++ == 0)
+      {
+          switch(sym->redirect)
+          {
+          case SYMBOL_PLAINVAL:
+              {
+                  AUTO_STRING (format, "Setting symbol '%s'; redirect: 
SYMBOL_PLAINVAL");
+                  CALLN (Fmessage, format, SYMBOL_NAME (symbol));
+                  break;
+              }
+          case SYMBOL_VARALIAS:
+              {
+                  AUTO_STRING (format, "Setting symbol '%s'; redirect: 
SYMBOL_VARALIAS");
+                  CALLN (Fmessage, format, SYMBOL_NAME (symbol));
+                  break;
+              }
+          case SYMBOL_LOCALIZED:
+              {
+                  AUTO_STRING (format, "Setting symbol '%s'; redirect: 
SYMBOL_LOCALIZED");
+                  CALLN (Fmessage, format, SYMBOL_NAME (symbol));
+                  break;
+              }
+          case SYMBOL_FORWARDED:
+              {
+                  AUTO_STRING (format, "Setting symbol '%s'; redirect: 
SYMBOL_FORWARDED");
+                  CALLN (Fmessage, format, SYMBOL_NAME (symbol));
+                  break;
+              }
+
+          default:
+              {
+                  AUTO_STRING (format, "Setting symbol '%s'; redirect: 
UNKNOWN");
+                  CALLN (Fmessage, format, SYMBOL_NAME (symbol));
+                  break;
+              }
+          }
+      }
+      nest_level--;
+  }
+
+
+
+
+
  start:
   switch (sym->redirect)
     {
@@ -1322,15 +1363,10 @@ set_internal (Lisp_Object symbol, Lisp_Object newval, 
Lisp_Object where,
       {
        struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (sym);
        if (NILP (where))
-         {
-           if (blv->frame_local)
-             where = selected_frame;
-           else
-             XSETBUFFER (where, current_buffer);
-         }
+         XSETBUFFER (where, current_buffer);
+
        /* If the current buffer is not the buffer whose binding is
-          loaded, or if there may be frame-local bindings and the frame
-          isn't the right one, or if it's a Lisp_Buffer_Local_Value and
+          loaded, or if it's a Lisp_Buffer_Local_Value and
           the default binding is loaded, the loaded binding may be the
           wrong one.  */
        if (!EQ (blv->where, where)
@@ -1347,9 +1383,7 @@ set_internal (Lisp_Object symbol, Lisp_Object newval, 
Lisp_Object where,
            /* Find the new binding.  */
            XSETSYMBOL (symbol, sym); /* May have changed via aliasing.  */
            tem1 = assq_no_quit (symbol,
-                                (blv->frame_local
-                                 ? XFRAME (where)->param_alist
-                                 : BVAR (XBUFFER (where), local_var_alist)));
+                                BVAR (XBUFFER (where), local_var_alist));
            set_blv_where (blv, where);
            blv->found = 1;
 
@@ -1376,9 +1410,6 @@ set_internal (Lisp_Object symbol, Lisp_Object newval, 
Lisp_Object where,
                   and load that binding.  */
                else
                  {
-                   /* local_if_set is only supported for buffer-local
-                      bindings, not for frame-local bindings.  */
-                   eassert (!blv->frame_local);
                    tem1 = Fcons (symbol, XCDR (blv->defcell));
                    bset_local_var_alist
                      (XBUFFER (where),
@@ -1442,9 +1473,6 @@ set_symbol_trapped_write (Lisp_Object symbol, enum 
symbol_trapped_write trap)
   struct Lisp_Symbol* sym = XSYMBOL (symbol);
   if (sym->trapped_write == SYMBOL_NOWRITE)
     xsignal1 (Qtrapping_constant, symbol);
-  else if (sym->redirect == SYMBOL_LOCALIZED
-           && SYMBOL_BLV (sym)->frame_local)
-    xsignal1 (Qtrapping_frame_local, symbol);
   sym->trapped_write = trap;
 }
 
@@ -1784,7 +1812,6 @@ make_blv (struct Lisp_Symbol *sym, bool forwarded,
   eassert (!(forwarded && KBOARD_OBJFWDP (valcontents.fwd)));
   blv->fwd = forwarded ? valcontents.fwd : NULL;
   set_blv_where (blv, Qnil);
-  blv->frame_local = 0;
   blv->local_if_set = 0;
   set_blv_defcell (blv, tem);
   set_blv_valcell (blv, tem);
@@ -1831,9 +1858,6 @@ The function `default-value' gets the default value and 
`set-default' sets it.
       break;
     case SYMBOL_LOCALIZED:
       blv = SYMBOL_BLV (sym);
-      if (blv->frame_local)
-       error ("Symbol %s may not be buffer-local",
-              SDATA (SYMBOL_NAME (variable)));
       break;
     case SYMBOL_FORWARDED:
       forwarded = 1; valcontents.fwd = SYMBOL_FWD (sym);
@@ -1908,9 +1932,6 @@ Instead, use `add-hook' and specify t for the LOCAL 
argument.  */)
       forwarded = 0; valcontents.value = SYMBOL_VAL (sym); break;
     case SYMBOL_LOCALIZED:
       blv = SYMBOL_BLV (sym);
-      if (blv->frame_local)
-       error ("Symbol %s may not be buffer-local",
-              SDATA (SYMBOL_NAME (variable)));
       break;
     case SYMBOL_FORWARDED:
       forwarded = 1; valcontents.fwd = SYMBOL_FWD (sym);
@@ -2027,8 +2048,6 @@ From now on the default value will apply in this buffer.  
Return VARIABLE.  */)
       }
     case SYMBOL_LOCALIZED:
       blv = SYMBOL_BLV (sym);
-      if (blv->frame_local)
-       return variable;
       break;
     default: emacs_abort ();
     }
@@ -2062,81 +2081,6 @@ From now on the default value will apply in this buffer. 
 Return VARIABLE.  */)
 
 /* Lisp functions for creating and removing buffer-local variables.  */
 
-/* Obsolete since 22.2.  NB adjust doc of modify-frame-parameters
-   when/if this is removed.  */
-
-DEFUN ("make-variable-frame-local", Fmake_variable_frame_local, 
Smake_variable_frame_local,
-       1, 1, "vMake Variable Frame Local: ",
-       doc: /* Enable VARIABLE to have frame-local bindings.
-This does not create any frame-local bindings for VARIABLE,
-it just makes them possible.
-
-A frame-local binding is actually a frame parameter value.
-If a frame F has a value for the frame parameter named VARIABLE,
-that also acts as a frame-local binding for VARIABLE in F--
-provided this function has been called to enable VARIABLE
-to have frame-local bindings at all.
-
-The only way to create a frame-local binding for VARIABLE in a frame
-is to set the VARIABLE frame parameter of that frame.  See
-`modify-frame-parameters' for how to set frame parameters.
-
-Note that since Emacs 23.1, variables cannot be both buffer-local and
-frame-local any more (buffer-local bindings used to take precedence over
-frame-local bindings).  */)
-  (Lisp_Object variable)
-{
-  bool forwarded;
-  union Lisp_Val_Fwd valcontents;
-  struct Lisp_Symbol *sym;
-  struct Lisp_Buffer_Local_Value *blv = NULL;
-
-  CHECK_SYMBOL (variable);
-  sym = XSYMBOL (variable);
-
- start:
-  switch (sym->redirect)
-    {
-    case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
-    case SYMBOL_PLAINVAL:
-      forwarded = 0; valcontents.value = SYMBOL_VAL (sym);
-      if (EQ (valcontents.value, Qunbound))
-       valcontents.value = Qnil;
-      break;
-    case SYMBOL_LOCALIZED:
-      if (SYMBOL_BLV (sym)->frame_local)
-       return variable;
-      else
-       error ("Symbol %s may not be frame-local",
-              SDATA (SYMBOL_NAME (variable)));
-    case SYMBOL_FORWARDED:
-      forwarded = 1; valcontents.fwd = SYMBOL_FWD (sym);
-      if (KBOARD_OBJFWDP (valcontents.fwd) || BUFFER_OBJFWDP (valcontents.fwd))
-       error ("Symbol %s may not be frame-local",
-              SDATA (SYMBOL_NAME (variable)));
-      break;
-    default: emacs_abort ();
-    }
-
-  if (SYMBOL_TRAPPED_WRITE_P (variable))
-    error ("Symbol %s may not be frame-local", SDATA (SYMBOL_NAME (variable)));
-
-  blv = make_blv (sym, forwarded, valcontents);
-  blv->frame_local = 1;
-  sym->redirect = SYMBOL_LOCALIZED;
-  SET_SYMBOL_BLV (sym, blv);
-  {
-    Lisp_Object symbol;
-    XSETSYMBOL (symbol, sym); /* In case `variable' is aliased.  */
-    if (let_shadows_global_binding_p (symbol))
-      {
-       AUTO_STRING (format, "Making %s frame-local while let-bound!");
-       CALLN (Fmessage, format, SYMBOL_NAME (variable));
-      }
-  }
-  return variable;
-}
-
 DEFUN ("local-variable-p", Flocal_variable_p, Slocal_variable_p,
        1, 2, 0,
        doc: /* Non-nil if VARIABLE has a local binding in buffer BUFFER.
@@ -2168,10 +2112,7 @@ BUFFER defaults to the current buffer.  */)
            {
              elt = XCAR (tail);
              if (EQ (variable, XCAR (elt)))
-               {
-                 eassert (!blv->frame_local);
-                 return Qt;
-               }
+               return Qt;
            }
        return Qnil;
       }
@@ -2230,7 +2171,6 @@ DEFUN ("variable-binding-locus", Fvariable_binding_locus, 
Svariable_binding_locu
        1, 1, 0,
        doc: /* Return a value indicating where VARIABLE's current binding 
comes from.
 If the current binding is buffer-local, the value is the current buffer.
-If the current binding is frame-local, the value is the selected frame.
 If the current binding is global (the default), the value is nil.  */)
   (register Lisp_Object variable)
 {
@@ -3664,7 +3604,6 @@ syms_of_data (void)
   DEFSYM (Qvoid_variable, "void-variable");
   DEFSYM (Qsetting_constant, "setting-constant");
   DEFSYM (Qtrapping_constant, "trapping-constant");
-  DEFSYM (Qtrapping_frame_local, "trapping-frame-local");
   DEFSYM (Qinvalid_read_syntax, "invalid-read-syntax");
 
   DEFSYM (Qinvalid_function, "invalid-function");
@@ -3746,8 +3685,6 @@ syms_of_data (void)
             "Attempt to set a constant symbol");
   PUT_ERROR (Qtrapping_constant, error_tail,
              "Attempt to trap writes to a constant symbol");
-  PUT_ERROR (Qtrapping_frame_local, error_tail,
-             "Attempt to trap writes to a frame local variable");
   PUT_ERROR (Qinvalid_read_syntax, error_tail, "Invalid read syntax");
   PUT_ERROR (Qinvalid_function, error_tail, "Invalid function");
   PUT_ERROR (Qwrong_number_of_arguments, error_tail,
@@ -3877,7 +3814,6 @@ syms_of_data (void)
   defsubr (&Smake_variable_buffer_local);
   defsubr (&Smake_local_variable);
   defsubr (&Skill_local_variable);
-  defsubr (&Smake_variable_frame_local);
   defsubr (&Slocal_variable_p);
   defsubr (&Slocal_variable_if_set_p);
   defsubr (&Svariable_binding_locus);
diff --git a/src/dbusbind.c b/src/dbusbind.c
index 08b7cc2..077e8fd 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -1,5 +1,5 @@
 /* Elisp bindings for D-Bus.
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/decompress.c b/src/decompress.c
index 6ebf74a..a53a66d 100644
--- a/src/decompress.c
+++ b/src/decompress.c
@@ -1,5 +1,5 @@
 /* Interface to zlib.
-   Copyright (C) 2013-2016 Free Software Foundation, Inc.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -186,7 +186,7 @@ This function can be called only in unibyte buffers.  */)
       decompressed = avail_out - stream.avail_out;
       insert_from_gap (decompressed, decompressed, 0);
       unwind_data.nbytes += decompressed;
-      QUIT;
+      maybe_quit ();
     }
   while (inflate_status == Z_OK);
 
diff --git a/src/deps.mk b/src/deps.mk
index 72f68ca..b56d880 100644
--- a/src/deps.mk
+++ b/src/deps.mk
@@ -1,6 +1,6 @@
 ### deps.mk --- src/Makefile fragment for GNU Emacs
 
-## Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2016 Free Software
+## Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2017 Free Software
 ## Foundation, Inc.
 
 ## This file is part of GNU Emacs.
diff --git a/src/dired.c b/src/dired.c
index e468147..52e81fb 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -1,5 +1,5 @@
 /* Lisp functions for making directory listings.
-   Copyright (C) 1985-1986, 1993-1994, 1999-2016 Free Software
+   Copyright (C) 1985-1986, 1993-1994, 1999-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -21,7 +21,6 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include <config.h>
 
 #include <stdio.h>
-#include <sys/types.h>
 #include <sys/stat.h>
 
 #ifdef HAVE_PWD_H
@@ -140,7 +139,7 @@ read_dirent (DIR *dir, Lisp_Object dirname)
 #endif
          report_file_error ("Reading directory", dirname);
        }
-      QUIT;
+      maybe_quit ();
     }
 }
 
@@ -249,13 +248,13 @@ directory_files_internal (Lisp_Object directory, 
Lisp_Object full,
 
       /* Now that we have unwind_protect in place, we might as well
         allow matching to be interrupted.  */
-      immediate_quit = 1;
-      QUIT;
+      immediate_quit = true;
+      maybe_quit ();
 
       bool wanted = (NILP (match)
                     || re_search (bufp, SSDATA (name), len, 0, len, 0) >= 0);
 
-      immediate_quit = 0;
+      immediate_quit = false;
 
       if (wanted)
        {
@@ -509,7 +508,7 @@ file_name_completion (Lisp_Object file, Lisp_Object 
dirname, bool all_flag,
       ptrdiff_t len = dirent_namelen (dp);
       bool canexclude = 0;
 
-      QUIT;
+      maybe_quit ();
       if (len < SCHARS (encoded_file)
          || (scmp (dp->d_name, SSDATA (encoded_file),
                    SCHARS (encoded_file))
diff --git a/src/dispextern.h b/src/dispextern.h
index 4acf336..51222e6 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -1,6 +1,6 @@
 /* Interface definitions for display code.
 
-Copyright (C) 1985, 1993-1994, 1997-2016 Free Software Foundation, Inc.
+Copyright (C) 1985, 1993-1994, 1997-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/dispnew.c b/src/dispnew.c
index 70d4de0..27c69bd 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -1,6 +1,6 @@
 /* Updating of data structures for redisplay.
 
-Copyright (C) 1985-1988, 1993-1995, 1997-2016 Free Software Foundation,
+Copyright (C) 1985-1988, 1993-1995, 1997-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/disptab.h b/src/disptab.h
index 964162f..cdfb080 100644
--- a/src/disptab.h
+++ b/src/disptab.h
@@ -1,5 +1,5 @@
 /* Things for GLYPHS and glyph tables.
-   Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/doc.c b/src/doc.c
index 6a78ed6..361d09a 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -1,6 +1,6 @@
 /* Record indices of function doc strings stored in a file. -*- coding: utf-8 
-*-
 
-Copyright (C) 1985-1986, 1993-1995, 1997-2016 Free Software Foundation,
+Copyright (C) 1985-1986, 1993-1995, 1997-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/doprnt.c b/src/doprnt.c
index 7338005..09051ad 100644
--- a/src/doprnt.c
+++ b/src/doprnt.c
@@ -1,7 +1,7 @@
 /* Output like sprintf to a buffer of specified size.    -*- coding: utf-8 -*-
    Also takes args differently: pass one pointer to the end
    of the format string in addition to the format string itself.
-   Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/dosfns.c b/src/dosfns.c
index 880fee9..7bf1dee 100644
--- a/src/dosfns.c
+++ b/src/dosfns.c
@@ -1,6 +1,6 @@
 /* MS-DOS specific Lisp utilities.  Coded by Manabu Higashida, 1991.
    Major changes May-July 1993 Morten Welinder (only 10% original code left)
-   Copyright (C) 1991, 1993, 1996-1998, 2001-2016 Free Software
+   Copyright (C) 1991, 1993, 1996-1998, 2001-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/dosfns.h b/src/dosfns.h
index 849fb91..266430d 100644
--- a/src/dosfns.h
+++ b/src/dosfns.h
@@ -2,7 +2,7 @@
    Coded by Manabu Higashida, 1991.
    Modified by Morten Welinder, 1993-1994.
 
-Copyright (C) 1991, 1994-1995, 1997, 1999, 2001-2016 Free Software
+Copyright (C) 1991, 1994-1995, 1997, 1999, 2001-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/dynlib.c b/src/dynlib.c
index ada5837..9561923 100644
--- a/src/dynlib.c
+++ b/src/dynlib.c
@@ -1,6 +1,6 @@
 /* Portable API for dynamic loading.
 
-Copyright 2015-2016 Free Software Foundation, Inc.
+Copyright 2015-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/dynlib.h b/src/dynlib.h
index a9da985..5ccec11 100644
--- a/src/dynlib.h
+++ b/src/dynlib.h
@@ -1,6 +1,6 @@
 /* Portable API for dynamic loading.
 
-Copyright 2015-2016 Free Software Foundation, Inc.
+Copyright 2015-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/editfns.c b/src/editfns.c
index 6ea8cba..82c6abb 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1,6 +1,6 @@
 /* Lisp functions pertaining to editing.                 -*- coding: utf-8 -*-
 
-Copyright (C) 1985-1987, 1989, 1993-2016 Free Software Foundation, Inc.
+Copyright (C) 1985-1987, 1989, 1993-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -2136,7 +2136,7 @@ format_time_string (char const *format, ptrdiff_t 
formatlen,
 
 DEFUN ("decode-time", Fdecode_time, Sdecode_time, 0, 2, 0,
        doc: /* Decode a time value as (SEC MINUTE HOUR DAY MONTH YEAR DOW DST 
UTCOFF).
-The optional SPECIFIED-TIME should be a list of (HIGH LOW . IGNORED),
+The optional TIME should be a list of (HIGH LOW . IGNORED),
 as from `current-time' and `file-attributes', or nil to use the
 current time.  It can also be a single integer number of seconds since
 the epoch.  The obsolete form (HIGH . LOW) is also still accepted.
@@ -2695,7 +2695,7 @@ called interactively, INHERIT is t.  */)
     string[i] = str[i % len];
   while (n > stringlen)
     {
-      QUIT;
+      maybe_quit ();
       if (!NILP (inherit))
        insert_and_inherit (string, stringlen);
       else
@@ -3053,6 +3053,7 @@ determines whether case is significant or ignored.  */)
   i2 = begp2;
   i1_byte = buf_charpos_to_bytepos (bp1, i1);
   i2_byte = buf_charpos_to_bytepos (bp2, i2);
+  immediate_quit = true;
 
   while (i1 < endp1 && i2 < endp2)
     {
@@ -3060,8 +3061,6 @@ determines whether case is significant or ignored.  */)
         characters, not just the bytes.  */
       int c1, c2;
 
-      QUIT;
-
       if (! NILP (BVAR (bp1, enable_multibyte_characters)))
        {
          c1 = BUF_FETCH_MULTIBYTE_CHAR (bp1, i1_byte);
@@ -3093,14 +3092,17 @@ determines whether case is significant or ignored.  */)
          c1 = char_table_translate (trt, c1);
          c2 = char_table_translate (trt, c2);
        }
-      if (c1 < c2)
-       return make_number (- 1 - chars);
-      if (c1 > c2)
-       return make_number (chars + 1);
+      if (c1 != c2)
+       {
+         immediate_quit = false;
+         return make_number (c1 < c2 ? -1 - chars : chars + 1);
+       }
 
       chars++;
     }
 
+  immediate_quit = false;
+
   /* The strings match as far as they go.
      If one is shorter, that one is less.  */
   if (chars < endp1 - begp1)
diff --git a/src/emacs-icon.h b/src/emacs-icon.h
index 970135f..b5ba89e 100644
--- a/src/emacs-icon.h
+++ b/src/emacs-icon.h
@@ -1,7 +1,7 @@
 /* XPM */
 /* Emacs icon
 
-Copyright (C) 2008-2016 Free Software Foundation, Inc.
+Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 Author:  Kentaro Ohkouchi <address@hidden>
 
diff --git a/src/emacs-module.c b/src/emacs-module.c
index 68aeb0c..69fa5c8 100644
--- a/src/emacs-module.c
+++ b/src/emacs-module.c
@@ -1,6 +1,6 @@
 /* emacs-module.c - Module loading and runtime implementation
 
-Copyright (C) 2015-2016 Free Software Foundation, Inc.
+Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -28,6 +28,7 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include "lisp.h"
 #include "dynlib.h"
 #include "coding.h"
+#include "syssignal.h"
 
 #include <intprops.h>
 #include <verify.h>
@@ -41,15 +42,9 @@ enum { module_has_cleanup = true };
 enum { module_has_cleanup = false };
 #endif
 
-/* Handle to the main thread.  Used to verify that modules call us in
-   the right thread.  */
-#ifdef HAVE_PTHREAD
-# include <pthread.h>
-static pthread_t main_thread;
-#elif defined WINDOWSNT
+#ifdef WINDOWSNT
 #include <windows.h>
 #include "w32term.h"
-static DWORD main_thread;
 #endif
 
 /* True if Lisp_Object and emacs_value have the same representation.
@@ -751,9 +746,9 @@ static void
 check_main_thread (void)
 {
 #ifdef HAVE_PTHREAD
-  eassert (pthread_equal (pthread_self (), main_thread));
+  eassert (pthread_equal (pthread_self (), main_thread_id));
 #elif defined WINDOWSNT
-  eassert (GetCurrentThreadId () == main_thread);
+  eassert (GetCurrentThreadId () == dwMainThreadId);
 #endif
 }
 
@@ -1021,7 +1016,7 @@ syms_of_module (void)
     = make_hash_table (hashtest_eq, make_number (DEFAULT_HASH_SIZE),
                       make_float (DEFAULT_REHASH_SIZE),
                       make_float (DEFAULT_REHASH_THRESHOLD),
-                      Qnil);
+                      Qnil, Qnil);
   Funintern (Qmodule_refs_hash, Qnil);
 
   DEFSYM (Qmodule_environments, "module-environments");
@@ -1062,20 +1057,3 @@ syms_of_module (void)
   DEFSYM (Qinternal__module_call, "internal--module-call");
   defsubr (&Sinternal_module_call);
 }
-
-/* Unlike syms_of_module, this initializer is called even from an
-   initialized (dumped) Emacs.  */
-
-void
-module_init (void)
-{
-  /* It is not guaranteed that dynamic initializers run in the main thread,
-     therefore detect the main thread here.  */
-#ifdef HAVE_PTHREAD
-  main_thread = pthread_self ();
-#elif defined WINDOWSNT
-  /* The 'main' function already recorded the main thread's thread ID,
-     so we need just to use it . */
-  main_thread = dwMainThreadId;
-#endif
-}
diff --git a/src/emacs-module.h b/src/emacs-module.h
index ae7311b..d9eeeab 100644
--- a/src/emacs-module.h
+++ b/src/emacs-module.h
@@ -1,6 +1,6 @@
 /* emacs-module.h - GNU Emacs module API.
 
-Copyright (C) 2015-2016 Free Software Foundation, Inc.
+Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/emacs.c b/src/emacs.c
index 89d1bbd..fa2b6eb 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -1,6 +1,6 @@
 /* Fully extensible Emacs, running on Unix, intended for GNU.
 
-Copyright (C) 1985-1987, 1993-1995, 1997-1999, 2001-2016 Free Software
+Copyright (C) 1985-1987, 1993-1995, 1997-1999, 2001-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -26,7 +26,6 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include <stdio.h>
 #include <stdlib.h>
 
-#include <sys/types.h>
 #include <sys/file.h>
 #include <unistd.h>
 
@@ -739,8 +738,6 @@ main (int argc, char **argv)
      non-ASCII file names during startup.  */
   w32_init_file_name_codepage ();
 #endif
-  /* This has to be done before module_init is called below, so that
-     the latter could use the thread ID of the main thread.  */
   w32_init_main_thread ();
 #endif
 
@@ -758,10 +755,6 @@ main (int argc, char **argv)
   init_standard_fds ();
   atexit (close_output_streams);
 
-#ifdef HAVE_MODULES
-  module_init ();
-#endif
-
   sort_args (argc, argv);
   argc = 0;
   while (argv[argc]) argc++;
@@ -838,14 +831,16 @@ main (int argc, char **argv)
       rlim_t lim = rlim.rlim_cur;
 
       /* Approximate the amount regex.c needs per unit of
-        re_max_failures, then add 33% to cover the size of the
+        emacs_re_max_failures, then add 33% to cover the size of the
         smaller stacks that regex.c successively allocates and
         discards on its way to the maximum.  */
-      int ratio = 20 * sizeof (char *);
-      ratio += ratio / 3;
+      int min_ratio = 20 * sizeof (char *);
+      int ratio = min_ratio + min_ratio / 3;
 
-      /* Extra space to cover what we're likely to use for other reasons.  */
-      int extra = 200000;
+      /* Extra space to cover what we're likely to use for other
+         reasons.  For example, a typical GC might take 30K stack
+         frames.  */
+      int extra = (30 * 1000) * 50;
 
       bool try_to_grow_stack = true;
 #ifndef CANNOT_DUMP
@@ -854,7 +849,7 @@ main (int argc, char **argv)
 
       if (try_to_grow_stack)
        {
-         rlim_t newlim = re_max_failures * ratio + extra;
+         rlim_t newlim = emacs_re_max_failures * ratio + extra;
 
          /* Round the new limit to a page boundary; this is needed
             for Darwin kernel 15.4.0 (see Bug#23622) and perhaps
@@ -876,9 +871,11 @@ main (int argc, char **argv)
                lim = newlim;
            }
        }
-
-      /* Don't let regex.c overflow the stack.  */
-      re_max_failures = lim < extra ? 0 : min (lim - extra, SIZE_MAX) / ratio;
+      /* If the stack is big enough, let regex.c more of it before
+         falling back to heap allocation.  */
+      emacs_re_safe_alloca = max
+        (min (lim - extra, SIZE_MAX) * (min_ratio / ratio),
+         MAX_ALLOCA);
     }
 #endif /* HAVE_SETRLIMIT and RLIMIT_STACK and not CYGWIN */
 
diff --git a/src/emacsgtkfixed.c b/src/emacsgtkfixed.c
index c04adf2..64b74ea 100644
--- a/src/emacsgtkfixed.c
+++ b/src/emacsgtkfixed.c
@@ -1,7 +1,7 @@
 /* A Gtk Widget that inherits GtkFixed, but can be shrunk.
 This file is only use when compiling with Gtk+ 3.
 
-Copyright (C) 2011-2016 Free Software Foundation, Inc.
+Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/emacsgtkfixed.h b/src/emacsgtkfixed.h
index 0d09525..776ac45 100644
--- a/src/emacsgtkfixed.h
+++ b/src/emacsgtkfixed.h
@@ -1,7 +1,7 @@
 /* A Gtk Widget that inherits GtkFixed, but can be shrunk.
 This file is only use when compiling with Gtk+ 3.
 
-Copyright (C) 2011-2016 Free Software Foundation, Inc.
+Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/epaths.in b/src/epaths.in
index 5b7a2bb..c491d3b 100644
--- a/src/epaths.in
+++ b/src/epaths.in
@@ -1,6 +1,6 @@
 /* Hey Emacs, this is -*- C -*- code!  */
 /*
-Copyright (C) 1993, 1995, 1997, 1999, 2001-2016 Free Software
+Copyright (C) 1993, 1995, 1997, 1999, 2001-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/eval.c b/src/eval.c
index 57af384..68b48f9 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1,6 +1,6 @@
 /* Evaluator for GNU Emacs Lisp interpreter.
 
-Copyright (C) 1985-1987, 1993-1995, 1999-2016 Free Software Foundation,
+Copyright (C) 1985-1987, 1993-1995, 1999-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
@@ -239,7 +239,6 @@ init_eval_once (void)
 void
 init_eval (void)
 {
-  byte_stack_list = 0;
   specpdl_ptr = specpdl;
   { /* Put a dummy catcher at top-level so that handlerlist is never NULL.
        This is important since handlerlist->nextfree holds the freelist
@@ -454,11 +453,10 @@ usage: (progn BODY...)  */)
   return val;
 }
 
-/* Evaluate BODY sequentially, discarding its value.  Suitable for
-   record_unwind_protect.  */
+/* Evaluate BODY sequentially, discarding its value.  */
 
 void
-unwind_body (Lisp_Object body)
+prog_ignore (Lisp_Object body)
 {
   Fprogn (body);
 }
@@ -470,16 +468,8 @@ whose values are discarded.
 usage: (prog1 FIRST BODY...)  */)
   (Lisp_Object args)
 {
-  Lisp_Object val;
-  Lisp_Object args_left;
-
-  args_left = args;
-  val = args;
-
-  val = eval_sub (XCAR (args_left));
-  while (CONSP (args_left = XCDR (args_left)))
-    eval_sub (XCAR (args_left));
-
+  Lisp_Object val = eval_sub (XCAR (args));
+  prog_ignore (XCDR (args));
   return val;
 }
 
@@ -726,10 +716,11 @@ can be referred to by the Emacs help facilities and other 
programming
 tools.  The `defvar' form also declares the variable as \"special\",
 so that it is always dynamically bound even if `lexical-binding' is t.
 
-The optional argument INITVALUE is evaluated, and used to set SYMBOL,
-only if SYMBOL's value is void.  If SYMBOL is buffer-local, its
-default value is what is set; buffer-local values are not affected.
-If INITVALUE is missing, SYMBOL's value is not set.
+If SYMBOL's value is void and the optional argument INITVALUE is
+provided, INITVALUE is evaluated and the result used to set SYMBOL's
+value.  If SYMBOL is buffer-local, its default value is what is set;
+buffer-local values are not affected.  If INITVALUE is missing,
+SYMBOL's value is not set.
 
 If SYMBOL has a local binding, then this form affects the local
 binding.  This is usually not what you want.  Thus, if you need to
@@ -865,10 +856,9 @@ usage: (let* VARLIST BODY...)  */)
 
   lexenv = Vinternal_interpreter_environment;
 
-  varlist = XCAR (args);
-  while (CONSP (varlist))
+  for (varlist = XCAR (args); CONSP (varlist); varlist = XCDR (varlist))
     {
-      QUIT;
+      maybe_quit ();
 
       elt = XCAR (varlist);
       if (SYMBOLP (elt))
@@ -902,9 +892,8 @@ usage: (let* VARLIST BODY...)  */)
        }
       else
        specbind (var, val);
-
-      varlist = XCDR (varlist);
     }
+  CHECK_LIST_END (varlist, XCAR (args));
 
   val = Fprogn (XCDR (args));
   return unbind_to (count, val);
@@ -926,6 +915,7 @@ usage: (let VARLIST BODY...)  */)
   USE_SAFE_ALLOCA;
 
   varlist = XCAR (args);
+  CHECK_LIST (varlist);
 
   /* Make space to hold the values to give the bound variables.  */
   elt = Flength (varlist);
@@ -935,7 +925,7 @@ usage: (let VARLIST BODY...)  */)
 
   for (argnum = 0; CONSP (varlist); varlist = XCDR (varlist))
     {
-      QUIT;
+      maybe_quit ();
       elt = XCAR (varlist);
       if (SYMBOLP (elt))
        temps [argnum++] = Qnil;
@@ -988,8 +978,8 @@ usage: (while TEST BODY...)  */)
   body = XCDR (args);
   while (!NILP (eval_sub (test)))
     {
-      QUIT;
-      Fprogn (body);
+      maybe_quit ();
+      prog_ignore (body);
     }
 
   return Qnil;
@@ -1021,7 +1011,7 @@ definitions to shadow the loaded ones for use in file 
byte-compilation.  */)
         until we get a symbol that is not an alias.  */
       while (SYMBOLP (def))
        {
-         QUIT;
+         maybe_quit ();
          sym = def;
          tem = Fassq (sym, environment);
          if (NILP (tem))
@@ -1099,8 +1089,8 @@ internal_catch (Lisp_Object tag,
   if (! sys_setjmp (c->jmp))
     {
       Lisp_Object val = func (arg);
-      clobbered_eassert (handlerlist == c);
-      handlerlist = handlerlist->next;
+      eassert (handlerlist == c);
+      handlerlist = c->next;
       return val;
     }
   else
@@ -1141,7 +1131,7 @@ unwind_to_catch (struct handler *catch, Lisp_Object value)
   /* Restore certain special C variables.  */
   set_poll_suppress_count (catch->poll_suppress_count);
   unblock_input_to (catch->interrupt_input_blocked);
-  immediate_quit = 0;
+  immediate_quit = false;
 
   do
     {
@@ -1156,7 +1146,6 @@ unwind_to_catch (struct handler *catch, Lisp_Object value)
 
   eassert (handlerlist == catch);
 
-  byte_stack_list = catch->byte_stack;
   lisp_eval_depth = catch->f_lisp_eval_depth;
 
   sys_longjmp (catch->jmp, 1);
@@ -1193,7 +1182,7 @@ usage: (unwind-protect BODYFORM UNWINDFORMS...)  */)
   Lisp_Object val;
   ptrdiff_t count = SPECPDL_INDEX ();
 
-  record_unwind_protect (unwind_body, XCDR (args));
+  record_unwind_protect (prog_ignore, XCDR (args));
   val = eval_sub (XCAR (args));
   return unbind_to (count, val);
 }
@@ -1334,8 +1323,8 @@ internal_condition_case (Lisp_Object (*bfun) (void), 
Lisp_Object handlers,
   else
     {
       Lisp_Object val = bfun ();
-      clobbered_eassert (handlerlist == c);
-      handlerlist = handlerlist->next;
+      eassert (handlerlist == c);
+      handlerlist = c->next;
       return val;
     }
 }
@@ -1358,8 +1347,8 @@ internal_condition_case_1 (Lisp_Object (*bfun) 
(Lisp_Object), Lisp_Object arg,
   else
     {
       Lisp_Object val = bfun (arg);
-      clobbered_eassert (handlerlist == c);
-      handlerlist = handlerlist->next;
+      eassert (handlerlist == c);
+      handlerlist = c->next;
       return val;
     }
 }
@@ -1385,8 +1374,8 @@ internal_condition_case_2 (Lisp_Object (*bfun) 
(Lisp_Object, Lisp_Object),
   else
     {
       Lisp_Object val = bfun (arg1, arg2);
-      clobbered_eassert (handlerlist == c);
-      handlerlist = handlerlist->next;
+      eassert (handlerlist == c);
+      handlerlist = c->next;
       return val;
     }
 }
@@ -1414,8 +1403,8 @@ internal_condition_case_n (Lisp_Object (*bfun) 
(ptrdiff_t, Lisp_Object *),
   else
     {
       Lisp_Object val = bfun (nargs, args);
-      clobbered_eassert (handlerlist == c);
-      handlerlist = handlerlist->next;
+      eassert (handlerlist == c);
+      handlerlist = c->next;
       return val;
     }
 }
@@ -1451,7 +1440,6 @@ push_handler_nosignal (Lisp_Object tag_ch_val, enum 
handlertype handlertype)
   c->pdlcount = SPECPDL_INDEX ();
   c->poll_suppress_count = poll_suppress_count;
   c->interrupt_input_blocked = interrupt_input_blocked;
-  c->byte_stack = byte_stack_list;
   handlerlist = c;
   return c;
 }
@@ -1462,7 +1450,7 @@ static Lisp_Object find_handler_clause (Lisp_Object, 
Lisp_Object);
 static bool maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig,
                                 Lisp_Object data);
 
-void
+static void
 process_quit_flag (void)
 {
   Lisp_Object flag = Vquit_flag;
@@ -1474,6 +1462,15 @@ process_quit_flag (void)
   quit ();
 }
 
+void
+maybe_quit (void)
+{
+  if (!NILP (Vquit_flag) && NILP (Vinhibit_quit))
+    process_quit_flag ();
+  else if (pending_signals)
+    process_pending_signals ();
+}
+
 DEFUN ("signal", Fsignal, Ssignal, 2, 2, 0,
        doc: /* Signal an error.  Args are ERROR-SYMBOL and associated DATA.
 This function does not return.
@@ -1517,10 +1514,10 @@ signal_or_quit (Lisp_Object error_symbol, Lisp_Object 
data, bool keyboard_quit)
   Lisp_Object string;
   Lisp_Object real_error_symbol
     = (NILP (error_symbol) ? Fcar (data) : error_symbol);
-  register Lisp_Object clause = Qnil;
+  Lisp_Object clause = Qnil;
   struct handler *h;
 
-  immediate_quit = 0;
+  immediate_quit = false;
   if (gc_in_progress || waiting_for_input)
     emacs_abort ();
 
@@ -2138,7 +2135,7 @@ eval_sub (Lisp_Object form)
   if (!CONSP (form))
     return form;
 
-  QUIT;
+  maybe_quit ();
 
   maybe_gc ();
 
@@ -2724,7 +2721,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS)  */)
   Lisp_Object val;
   ptrdiff_t count;
 
-  QUIT;
+  maybe_quit ();
 
   if (++lisp_eval_depth > max_lisp_eval_depth)
     {
@@ -2969,7 +2966,7 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs,
   bool previous_optional_or_rest = false;
   for (; CONSP (syms_left); syms_left = XCDR (syms_left))
     {
-      QUIT;
+      maybe_quit ();
 
       next = XCAR (syms_left);
       if (!SYMBOLP (next))
@@ -3107,7 +3104,7 @@ lambda_arity (Lisp_Object fun)
       if (EQ (XCAR (fun), Qclosure))
        {
          fun = XCDR (fun);     /* Drop `closure'.  */
-         CHECK_LIST_CONS (fun, fun);
+         CHECK_CONS (fun);
        }
       syms_left = XCDR (fun);
       if (CONSP (syms_left))
@@ -3283,8 +3280,6 @@ specbind (Lisp_Object symbol, Lisp_Object value)
       do_specbind (sym, specpdl_ptr - 1, value, SET_INTERNAL_BIND);
       break;
     case SYMBOL_LOCALIZED:
-      if (SYMBOL_BLV (sym)->frame_local)
-       error ("Frame-local vars cannot be let-bound");
     case SYMBOL_FORWARDED:
       {
        Lisp_Object ovalue = find_symbol_value (symbol);
diff --git a/src/fileio.c b/src/fileio.c
index 3ba85b2..a46cfc7 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1,6 +1,6 @@
 /* File IO for GNU Emacs.
 
-Copyright (C) 1985-1988, 1993-2016 Free Software Foundation, Inc.
+Copyright (C) 1985-1988, 1993-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -316,7 +316,7 @@ use the standard functions without calling themselves 
recursively.  */)
            }
        }
 
-      QUIT;
+      maybe_quit ();
     }
   return result;
 }
@@ -884,6 +884,11 @@ filesystem tree, not (expand-file-name ".."  dirname).  */)
        /* Detect MSDOS file names with drive specifiers.  */
        && ! (IS_DRIVE (o[0]) && IS_DEVICE_SEP (o[1])
              && IS_DIRECTORY_SEP (o[2]))
+       /* Detect escaped file names without drive spec after "/:".
+          These should not be recursively expanded, to avoid
+          including the default directory twice in the expanded
+          result.  */
+       && ! (o[0] == '/' && o[1] == ':')
 #ifdef WINDOWSNT
        /* Detect Windows file names in UNC format.  */
        && ! (IS_DIRECTORY_SEP (o[0]) && IS_DIRECTORY_SEP (o[1]))
@@ -1064,7 +1069,11 @@ filesystem tree, not (expand-file-name ".."  dirname).  
*/)
 
   newdir = newdirlim = 0;
 
-  if (nm[0] == '~')            /* prefix ~ */
+  if (nm[0] == '~'             /* prefix ~ */
+#ifdef DOS_NT
+    && !is_escaped             /* don't expand ~ in escaped file names */
+#endif
+      )
     {
       if (IS_DIRECTORY_SEP (nm[1])
          || nm[1] == 0)        /* ~ by itself */
@@ -1951,9 +1960,9 @@ permissions.  */)
       report_file_error ("Copying permissions to", newname);
     }
 #else /* not WINDOWSNT */
-  immediate_quit = 1;
+  immediate_quit = true;
   ifd = emacs_open (SSDATA (encoded_file), O_RDONLY, 0);
-  immediate_quit = 0;
+  immediate_quit = false;
 
   if (ifd < 0)
     report_file_error ("Opening input file", file);
@@ -2015,8 +2024,8 @@ permissions.  */)
        oldsize = out_st.st_size;
     }
 
-  immediate_quit = 1;
-  QUIT;
+  immediate_quit = true;
+  maybe_quit ();
 
   if (clone_file (ofd, ifd))
     newsize = st.st_size;
@@ -2038,7 +2047,7 @@ permissions.  */)
   if (newsize < oldsize && ftruncate (ofd, newsize) != 0)
     report_file_error ("Truncating output file", newname);
 
-  immediate_quit = 0;
+  immediate_quit = false;
 
 #ifndef MSDOS
   /* Preserve the original file permissions, and if requested, also its
@@ -2673,7 +2682,7 @@ DEFUN ("file-writable-p", Ffile_writable_p, 
Sfile_writable_p, 1, 1, 0,
 
 DEFUN ("access-file", Faccess_file, Saccess_file, 2, 2, 0,
        doc: /* Access file FILENAME, and get an error if that does not work.
-The second argument STRING is used in the error message.
+The second argument STRING is prepended to the error message.
 If there is no error, returns nil.  */)
   (Lisp_Object filename, Lisp_Object string)
 {
@@ -2806,7 +2815,17 @@ really is a readable and searchable directory.  */)
   if (!NILP (handler))
     {
       Lisp_Object r = call2 (handler, Qfile_accessible_directory_p, absname);
-      errno = 0;
+
+      /* Set errno in case the handler failed.  EACCES might be a lie
+        (e.g., the directory might not exist, or be a regular file),
+        but at least it does TRT in the "usual" case of an existing
+        directory that is not accessible by the current user, and
+        avoids reporting "Success" for a failed operation.  Perhaps
+        someday we can fix this in a better way, by improving
+        file-accessible-directory-p's API; see Bug#25419.  */
+      if (!EQ (r, Qt))
+       errno = EACCES;
+
       return r;
     }
 
@@ -3384,13 +3403,13 @@ read_non_regular (Lisp_Object state)
 {
   int nbytes;
 
-  immediate_quit = 1;
-  QUIT;
+  immediate_quit = true;
+  maybe_quit ();
   nbytes = emacs_read (XSAVE_INTEGER (state, 0),
                       ((char *) BEG_ADDR + PT_BYTE - BEG_BYTE
                        + XSAVE_INTEGER (state, 1)),
                       XSAVE_INTEGER (state, 2));
-  immediate_quit = 0;
+  immediate_quit = false;
   /* Fast recycle this object for the likely next call.  */
   free_misc (state);
   return make_number (nbytes);
@@ -3849,8 +3868,8 @@ by calling `format-decode', which see.  */)
            report_file_error ("Setting file position", orig_filename);
        }
 
-      immediate_quit = 1;
-      QUIT;
+      immediate_quit = true;
+      maybe_quit ();
       /* Count how many chars at the start of the file
         match the text at the beginning of the buffer.  */
       while (1)
@@ -3901,7 +3920,7 @@ by calling `format-decode', which see.  */)
          goto handled;
        }
       immediate_quit = true;
-      QUIT;
+      maybe_quit ();
       /* Count how many chars at the end of the file
         match the text at the end of the buffer.  But, if we have
         already found that decoding is necessary, don't waste time.  */
@@ -3958,7 +3977,7 @@ by calling `format-decode', which see.  */)
          if (nread == 0)
            break;
        }
-      immediate_quit = 0;
+      immediate_quit = false;
 
       if (! giveup_match_end)
        {
@@ -4056,11 +4075,11 @@ by calling `format-decode', which see.  */)
             quitting while reading a huge file.  */
 
          /* Allow quitting out of the actual I/O.  */
-         immediate_quit = 1;
-         QUIT;
+         immediate_quit = true;
+         maybe_quit ();
          this = emacs_read (fd, read_buf + unprocessed,
                             READ_BUF_SIZE - unprocessed);
-         immediate_quit = 0;
+         immediate_quit = false;
 
          if (this <= 0)
            break;
@@ -4275,13 +4294,13 @@ by calling `format-decode', which see.  */)
            /* Allow quitting out of the actual I/O.  We don't make text
               part of the buffer until all the reading is done, so a C-g
               here doesn't do any harm.  */
-           immediate_quit = 1;
-           QUIT;
+           immediate_quit = true;
+           maybe_quit ();
            this = emacs_read (fd,
                               ((char *) BEG_ADDR + PT_BYTE - BEG_BYTE
                                + inserted),
                               trytry);
-           immediate_quit = 0;
+           immediate_quit = false;
          }
 
        if (this <= 0)
@@ -4593,7 +4612,7 @@ by calling `format-decode', which see.  */)
                }
            }
 
-         QUIT;
+         maybe_quit ();
          p = XCDR (p);
        }
 
@@ -4983,7 +5002,7 @@ write_region (Lisp_Object start, Lisp_Object end, 
Lisp_Object filename,
        }
     }
 
-  immediate_quit = 1;
+  immediate_quit = true;
 
   if (STRINGP (start))
     ok = a_write (desc, start, 0, SCHARS (start), &annotations, &coding);
@@ -5007,7 +5026,7 @@ write_region (Lisp_Object start, Lisp_Object end, 
Lisp_Object filename,
       save_errno = errno;
     }
 
-  immediate_quit = 0;
+  immediate_quit = false;
 
   /* fsync is not crucial for temporary files.  Nor for auto-save
      files, since they might lose some work anyway.  */
@@ -5133,19 +5152,26 @@ write_region (Lisp_Object start, Lisp_Object end, 
Lisp_Object filename,
   if (! ok)
     report_file_errno ("Write error", filename, save_errno);
 
+  bool auto_saving_into_visited_file =
+    auto_saving
+    && ! NILP (Fstring_equal (BVAR (current_buffer, filename),
+                             BVAR (current_buffer, auto_save_file_name)));
   if (visiting)
     {
       SAVE_MODIFF = MODIFF;
       XSETFASTINT (BVAR (current_buffer, save_length), Z - BEG);
       bset_filename (current_buffer, visit_file);
       update_mode_lines = 14;
+      if (auto_saving_into_visited_file)
+       unlock_file (lockname);
     }
   else if (quietly)
     {
-      if (auto_saving
-         && ! NILP (Fstring_equal (BVAR (current_buffer, filename),
-                                   BVAR (current_buffer, 
auto_save_file_name))))
-       SAVE_MODIFF = MODIFF;
+      if (auto_saving_into_visited_file)
+       {
+         SAVE_MODIFF = MODIFF;
+         unlock_file (lockname);
+       }
 
       return Qnil;
     }
diff --git a/src/filelock.c b/src/filelock.c
index a4b742a..de65c52 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -1,6 +1,6 @@
 /* Lock files for editing.
 
-Copyright (C) 1985-1987, 1993-1994, 1996, 1998-2016 Free Software
+Copyright (C) 1985-1987, 1993-1994, 1996, 1998-2017 Free Software
 Foundation, Inc.
 
 Author: Richard King
@@ -505,7 +505,7 @@ read_lock_data (char *lfname, char lfinfo[MAX_LFINFO + 1])
       /* readlinkat saw a non-symlink, but emacs_open saw a symlink.
         The former must have been removed and replaced by the latter.
         Try again.  */
-      QUIT;
+      maybe_quit ();
     }
 
   return nbytes;
diff --git a/src/firstfile.c b/src/firstfile.c
index 962d6f6..c952e38 100644
--- a/src/firstfile.c
+++ b/src/firstfile.c
@@ -1,5 +1,5 @@
 /* Mark beginning of data space to dump as pure, for GNU Emacs.
-   Copyright (C) 1997, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/floatfns.c b/src/floatfns.c
index f514fcb..c476627 100644
--- a/src/floatfns.c
+++ b/src/floatfns.c
@@ -1,6 +1,6 @@
 /* Primitive operations on floating point for GNU Emacs Lisp interpreter.
 
-Copyright (C) 1988, 1993-1994, 1999, 2001-2016 Free Software Foundation,
+Copyright (C) 1988, 1993-1994, 1999, 2001-2017 Free Software Foundation,
 Inc.
 
 Author: Wolfgang Rupprecht (according to ack.texi)
diff --git a/src/fns.c b/src/fns.c
index dfc7842..9eabc14 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -1,6 +1,6 @@
 /* Random utility Lisp functions.
 
-Copyright (C) 1985-1987, 1993-1995, 1997-2016 Free Software Foundation,
+Copyright (C) 1985-1987, 1993-1995, 1997-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
@@ -34,6 +34,7 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include "buffer.h"
 #include "intervals.h"
 #include "window.h"
+#include "puresize.h"
 
 static void sort_vector_copy (Lisp_Object, ptrdiff_t,
                              Lisp_Object *restrict, Lisp_Object *restrict);
@@ -84,17 +85,23 @@ See Info node `(elisp)Random Numbers' for more details.  */)
 }
 
 /* Heuristic on how many iterations of a tight loop can be safely done
-   before it's time to do a QUIT.  This must be a power of 2.  */
+   before it's time to do a quit.  This must be a power of 2.  It
+   is nice but not necessary for it to equal USHRT_MAX + 1.  */
 enum { QUIT_COUNT_HEURISTIC = 1 << 16 };
 
-/* Random data-structure functions.  */
+/* Process a quit, but do it only rarely, for efficiency.  "Rarely"
+   means once per QUIT_COUNT_HEURISTIC or per USHRT_MAX + 1 times,
+   whichever is smaller.  Use *QUIT_COUNT to count this.  */
 
 static void
-CHECK_LIST_END (Lisp_Object x, Lisp_Object y)
+rarely_quit (unsigned short int *quit_count)
 {
-  CHECK_TYPE (NILP (x), Qlistp, y);
+  if (! (++*quit_count & (QUIT_COUNT_HEURISTIC - 1)))
+    maybe_quit ();
 }
 
+/* Random data-structure functions.  */
+
 DEFUN ("length", Flength, Slength, 1, 1, 0,
        doc: /* Return the length of vector, list or string SEQUENCE.
 A byte-code function object is also allowed.
@@ -126,7 +133,7 @@ To get the number of bytes, use `string-bytes'.  */)
            {
              if (MOST_POSITIVE_FIXNUM < i)
                error ("List too long");
-             QUIT;
+             maybe_quit ();
            }
          sequence = XCDR (sequence);
        }
@@ -172,7 +179,7 @@ which is at least the number of distinct elements.  */)
          halftail = XCDR (halftail);
          if ((lolen & (QUIT_COUNT_HEURISTIC - 1)) == 0)
            {
-             QUIT;
+             maybe_quit ();
              if (lolen == 0)
                hilen += UINTMAX_MAX + 1.0;
            }
@@ -1202,17 +1209,12 @@ are shared, however.
 Elements of ALIST that are not conses are also shared.  */)
   (Lisp_Object alist)
 {
-  register Lisp_Object tem;
-
-  CHECK_LIST (alist);
   if (NILP (alist))
     return alist;
-  alist = concat (1, &alist, Lisp_Cons, 0);
-  for (tem = alist; CONSP (tem); tem = XCDR (tem))
+  alist = concat (1, &alist, Lisp_Cons, false);
+  for (Lisp_Object tem = alist; !NILP (tem); tem = XCDR (tem))
     {
-      register Lisp_Object car;
-      car = XCAR (tem);
-
+      Lisp_Object car = XCAR (tem);
       if (CONSP (car))
        XSETCAR (tem, Fcons (XCAR (car), XCDR (car)));
     }
@@ -1356,16 +1358,22 @@ DEFUN ("nthcdr", Fnthcdr, Snthcdr, 2, 2, 0,
        doc: /* Take cdr N times on LIST, return the result.  */)
   (Lisp_Object n, Lisp_Object list)
 {
-  EMACS_INT i, num;
   CHECK_NUMBER (n);
-  num = XINT (n);
-  for (i = 0; i < num && !NILP (list); i++)
+  EMACS_INT num = XINT (n);
+  Lisp_Object tail = list;
+  immediate_quit = true;
+  for (EMACS_INT i = 0; i < num; i++)
     {
-      QUIT;
-      CHECK_LIST_CONS (list, list);
-      list = XCDR (list);
+      if (! CONSP (tail))
+       {
+         immediate_quit = false;
+         CHECK_LIST_END (tail, list);
+         return Qnil;
+       }
+      tail = XCDR (tail);
     }
-  return list;
+  immediate_quit = false;
+  return tail;
 }
 
 DEFUN ("nth", Fnth, Snth, 2, 2, 0,
@@ -1392,66 +1400,61 @@ DEFUN ("elt", Felt, Selt, 2, 2, 0,
 DEFUN ("member", Fmember, Smember, 2, 2, 0,
        doc: /* Return non-nil if ELT is an element of LIST.  Comparison done 
with `equal'.
 The value is actually the tail of LIST whose car is ELT.  */)
-  (register Lisp_Object elt, Lisp_Object list)
+  (Lisp_Object elt, Lisp_Object list)
 {
-  register Lisp_Object tail;
-  for (tail = list; !NILP (tail); tail = XCDR (tail))
+  unsigned short int quit_count = 0;
+  Lisp_Object tail;
+  for (tail = list; CONSP (tail); tail = XCDR (tail))
     {
-      register Lisp_Object tem;
-      CHECK_LIST_CONS (tail, list);
-      tem = XCAR (tail);
-      if (! NILP (Fequal (elt, tem)))
+      if (! NILP (Fequal (elt, XCAR (tail))))
        return tail;
-      QUIT;
+      rarely_quit (&quit_count);
     }
+  CHECK_LIST_END (tail, list);
   return Qnil;
 }
 
 DEFUN ("memq", Fmemq, Smemq, 2, 2, 0,
        doc: /* Return non-nil if ELT is an element of LIST.  Comparison done 
with `eq'.
 The value is actually the tail of LIST whose car is ELT.  */)
-  (register Lisp_Object elt, Lisp_Object list)
+  (Lisp_Object elt, Lisp_Object list)
 {
-  while (1)
+  immediate_quit = true;
+  Lisp_Object tail;
+  for (tail = list; CONSP (tail); tail = XCDR (tail))
     {
-      if (!CONSP (list) || EQ (XCAR (list), elt))
-       break;
-
-      list = XCDR (list);
-      if (!CONSP (list) || EQ (XCAR (list), elt))
-       break;
-
-      list = XCDR (list);
-      if (!CONSP (list) || EQ (XCAR (list), elt))
-       break;
-
-      list = XCDR (list);
-      QUIT;
+      if (EQ (XCAR (tail), elt))
+       {
+         immediate_quit = false;
+         return tail;
+       }
     }
-
-  CHECK_LIST (list);
-  return list;
+  immediate_quit = false;
+  CHECK_LIST_END (tail, list);
+  return Qnil;
 }
 
 DEFUN ("memql", Fmemql, Smemql, 2, 2, 0,
        doc: /* Return non-nil if ELT is an element of LIST.  Comparison done 
with `eql'.
 The value is actually the tail of LIST whose car is ELT.  */)
-  (register Lisp_Object elt, Lisp_Object list)
+  (Lisp_Object elt, Lisp_Object list)
 {
-  register Lisp_Object tail;
-
   if (!FLOATP (elt))
     return Fmemq (elt, list);
 
-  for (tail = list; !NILP (tail); tail = XCDR (tail))
+  immediate_quit = true;
+  Lisp_Object tail;
+  for (tail = list; CONSP (tail); tail = XCDR (tail))
     {
-      register Lisp_Object tem;
-      CHECK_LIST_CONS (tail, list);
-      tem = XCAR (tail);
+      Lisp_Object tem = XCAR (tail);
       if (FLOATP (tem) && internal_equal (elt, tem, 0, 0, Qnil))
-       return tail;
-      QUIT;
+       {
+         immediate_quit = false;
+         return tail;
+       }
     }
+  immediate_quit = false;
+  CHECK_LIST_END (tail, list);
   return Qnil;
 }
 
@@ -1461,44 +1464,29 @@ The value is actually the first element of LIST whose 
car is KEY.
 Elements of LIST that are not conses are ignored.  */)
   (Lisp_Object key, Lisp_Object list)
 {
-  while (1)
-    {
-      if (!CONSP (list)
-         || (CONSP (XCAR (list))
-             && EQ (XCAR (XCAR (list)), key)))
-       break;
-
-      list = XCDR (list);
-      if (!CONSP (list)
-         || (CONSP (XCAR (list))
-             && EQ (XCAR (XCAR (list)), key)))
-       break;
-
-      list = XCDR (list);
-      if (!CONSP (list)
-         || (CONSP (XCAR (list))
-             && EQ (XCAR (XCAR (list)), key)))
-       break;
-
-      list = XCDR (list);
-      QUIT;
-    }
-
-  return CAR (list);
+  immediate_quit = true;
+  Lisp_Object tail;
+  for (tail = list; CONSP (tail); tail = XCDR (tail))
+    if (CONSP (XCAR (tail)) && EQ (XCAR (XCAR (tail)), key))
+      {
+       immediate_quit = false;
+       return XCAR (tail);
+      }
+  immediate_quit = false;
+  CHECK_LIST_END (tail, list);
+  return Qnil;
 }
 
 /* Like Fassq but never report an error and do not allow quits.
-   Use only on lists known never to be circular.  */
+   Use only on objects known to be non-circular lists.  */
 
 Lisp_Object
 assq_no_quit (Lisp_Object key, Lisp_Object list)
 {
-  while (CONSP (list)
-        && (!CONSP (XCAR (list))
-            || !EQ (XCAR (XCAR (list)), key)))
-    list = XCDR (list);
-
-  return CAR_SAFE (list);
+  for (; ! NILP (list); list = XCDR (list))
+    if (CONSP (XCAR (list)) && EQ (XCAR (XCAR (list)), key))
+      return XCAR (list);
+  return Qnil;
 }
 
 DEFUN ("assoc", Fassoc, Sassoc, 2, 2, 0,
@@ -1506,81 +1494,52 @@ DEFUN ("assoc", Fassoc, Sassoc, 2, 2, 0,
 The value is actually the first element of LIST whose car equals KEY.  */)
   (Lisp_Object key, Lisp_Object list)
 {
-  Lisp_Object car;
-
-  while (1)
+  unsigned short int quit_count = 0;
+  Lisp_Object tail;
+  for (tail = list; CONSP (tail); tail = XCDR (tail))
     {
-      if (!CONSP (list)
-         || (CONSP (XCAR (list))
-             && (car = XCAR (XCAR (list)),
-                 EQ (car, key) || !NILP (Fequal (car, key)))))
-       break;
-
-      list = XCDR (list);
-      if (!CONSP (list)
-         || (CONSP (XCAR (list))
-             && (car = XCAR (XCAR (list)),
-                 EQ (car, key) || !NILP (Fequal (car, key)))))
-       break;
-
-      list = XCDR (list);
-      if (!CONSP (list)
-         || (CONSP (XCAR (list))
-             && (car = XCAR (XCAR (list)),
-                 EQ (car, key) || !NILP (Fequal (car, key)))))
-       break;
-
-      list = XCDR (list);
-      QUIT;
+      Lisp_Object car = XCAR (tail);
+      if (CONSP (car)
+         && (EQ (XCAR (car), key) || !NILP (Fequal (XCAR (car), key))))
+       return car;
+      rarely_quit (&quit_count);
     }
-
-  return CAR (list);
+  CHECK_LIST_END (tail, list);
+  return Qnil;
 }
 
 /* Like Fassoc but never report an error and do not allow quits.
-   Use only on lists known never to be circular.  */
+   Use only on objects known to be non-circular lists.  */
 
 Lisp_Object
 assoc_no_quit (Lisp_Object key, Lisp_Object list)
 {
-  while (CONSP (list)
-        && (!CONSP (XCAR (list))
-            || (!EQ (XCAR (XCAR (list)), key)
-                && NILP (Fequal (XCAR (XCAR (list)), key)))))
-    list = XCDR (list);
-
-  return CONSP (list) ? XCAR (list) : Qnil;
+  for (; ! NILP (list); list = XCDR (list))
+    {
+      Lisp_Object car = XCAR (list);
+      if (CONSP (car)
+         && (EQ (XCAR (car), key) || !NILP (Fequal (XCAR (car), key))))
+       return car;
+    }
+  return Qnil;
 }
 
 DEFUN ("rassq", Frassq, Srassq, 2, 2, 0,
        doc: /* Return non-nil if KEY is `eq' to the cdr of an element of LIST.
 The value is actually the first element of LIST whose cdr is KEY.  */)
-  (register Lisp_Object key, Lisp_Object list)
+  (Lisp_Object key, Lisp_Object list)
 {
-  while (1)
-    {
-      if (!CONSP (list)
-         || (CONSP (XCAR (list))
-             && EQ (XCDR (XCAR (list)), key)))
-       break;
-
-      list = XCDR (list);
-      if (!CONSP (list)
-         || (CONSP (XCAR (list))
-             && EQ (XCDR (XCAR (list)), key)))
-       break;
-
-      list = XCDR (list);
-      if (!CONSP (list)
-         || (CONSP (XCAR (list))
-             && EQ (XCDR (XCAR (list)), key)))
-       break;
-
-      list = XCDR (list);
-      QUIT;
-    }
-
-  return CAR (list);
+  immediate_quit = true;
+  Lisp_Object tail;
+  for (tail = list; CONSP (tail); tail = XCDR (tail))
+    if (CONSP (XCAR (tail)) && EQ (XCDR (XCAR (tail)), key))
+      {
+       immediate_quit = false;
+       return XCAR (tail);
+      }
+  immediate_quit = false;
+  CHECK_LIST_END (tail, list);
+  return Qnil;
 }
 
 DEFUN ("rassoc", Frassoc, Srassoc, 2, 2, 0,
@@ -1588,35 +1547,18 @@ DEFUN ("rassoc", Frassoc, Srassoc, 2, 2, 0,
 The value is actually the first element of LIST whose cdr equals KEY.  */)
   (Lisp_Object key, Lisp_Object list)
 {
-  Lisp_Object cdr;
-
-  while (1)
+  unsigned short int quit_count = 0;
+  Lisp_Object tail;
+  for (tail = list; CONSP (tail); tail = XCDR (tail))
     {
-      if (!CONSP (list)
-         || (CONSP (XCAR (list))
-             && (cdr = XCDR (XCAR (list)),
-                 EQ (cdr, key) || !NILP (Fequal (cdr, key)))))
-       break;
-
-      list = XCDR (list);
-      if (!CONSP (list)
-         || (CONSP (XCAR (list))
-             && (cdr = XCDR (XCAR (list)),
-                 EQ (cdr, key) || !NILP (Fequal (cdr, key)))))
-       break;
-
-      list = XCDR (list);
-      if (!CONSP (list)
-         || (CONSP (XCAR (list))
-             && (cdr = XCDR (XCAR (list)),
-                 EQ (cdr, key) || !NILP (Fequal (cdr, key)))))
-       break;
-
-      list = XCDR (list);
-      QUIT;
+      Lisp_Object car = XCAR (tail);
+      if (CONSP (car)
+         && (EQ (XCDR (car), key) || !NILP (Fequal (XCDR (car), key))))
+       return car;
+      rarely_quit (&quit_count);
     }
-
-  return CAR (list);
+  CHECK_LIST_END (tail, list);
+  return Qnil;
 }
 
 DEFUN ("delq", Fdelq, Sdelq, 2, 2, 0,
@@ -1647,6 +1589,7 @@ argument.  */)
       else
        prev = tail;
     }
+  CHECK_LIST_END (tail, list);
   return list;
 }
 
@@ -1754,12 +1697,11 @@ changing the value of a sequence `foo'.  */)
     }
   else
     {
+      unsigned short int quit_count = 0;
       Lisp_Object tail, prev;
 
-      for (tail = seq, prev = Qnil; !NILP (tail); tail = XCDR (tail))
+      for (tail = seq, prev = Qnil; CONSP (tail); tail = XCDR (tail))
        {
-         CHECK_LIST_CONS (tail, seq);
-
          if (!NILP (Fequal (elt, XCAR (tail))))
            {
              if (NILP (prev))
@@ -1769,8 +1711,9 @@ changing the value of a sequence `foo'.  */)
            }
          else
            prev = tail;
-         QUIT;
+         rarely_quit (&quit_count);
        }
+      CHECK_LIST_END (tail, seq);
     }
 
   return seq;
@@ -1788,16 +1731,17 @@ This function may destructively modify SEQ to produce 
the value.  */)
     return Freverse (seq);
   else if (CONSP (seq))
     {
+      unsigned short int quit_count = 0;
       Lisp_Object prev, tail, next;
 
-      for (prev = Qnil, tail = seq; !NILP (tail); tail = next)
+      for (prev = Qnil, tail = seq; CONSP (tail); tail = next)
        {
-         QUIT;
-         CHECK_LIST_CONS (tail, tail);
+         rarely_quit (&quit_count);
          next = XCDR (tail);
          Fsetcdr (tail, prev);
          prev = tail;
        }
+      CHECK_LIST_END (tail, seq);
       seq = prev;
     }
   else if (VECTORP (seq))
@@ -1838,9 +1782,10 @@ See also the function `nreverse', which is used more 
often.  */)
     return Qnil;
   else if (CONSP (seq))
     {
+      unsigned short int quit_count = 0;
       for (new = Qnil; CONSP (seq); seq = XCDR (seq))
        {
-         QUIT;
+         rarely_quit (&quit_count);
          new = Fcons (XCAR (seq), new);
        }
       CHECK_LIST_END (seq, seq);
@@ -2130,28 +2075,28 @@ If PROP is already a property on the list, its value is 
set to VAL,
 otherwise the new PROP VAL pair is added.  The new plist is returned;
 use `(setq x (plist-put x prop val))' to be sure to use the new value.
 The PLIST is modified by side effects.  */)
-  (Lisp_Object plist, register Lisp_Object prop, Lisp_Object val)
+  (Lisp_Object plist, Lisp_Object prop, Lisp_Object val)
 {
-  register Lisp_Object tail, prev;
-  Lisp_Object newcell;
-  prev = Qnil;
-  for (tail = plist; CONSP (tail) && CONSP (XCDR (tail));
+  immediate_quit = true;
+  Lisp_Object prev = Qnil;
+  for (Lisp_Object tail = plist; CONSP (tail) && CONSP (XCDR (tail));
        tail = XCDR (XCDR (tail)))
     {
       if (EQ (prop, XCAR (tail)))
        {
+         immediate_quit = false;
          Fsetcar (XCDR (tail), val);
          return plist;
        }
 
       prev = tail;
-      QUIT;
     }
-  newcell = Fcons (prop, Fcons (val, NILP (prev) ? plist : XCDR (XCDR 
(prev))));
+  immediate_quit = false;
+  Lisp_Object newcell
+    = Fcons (prop, Fcons (val, NILP (prev) ? plist : XCDR (XCDR (prev))));
   if (NILP (prev))
     return newcell;
-  else
-    Fsetcdr (XCDR (prev), newcell);
+  Fsetcdr (XCDR (prev), newcell);
   return plist;
 }
 
@@ -2174,6 +2119,7 @@ corresponding to the given PROP, or nil if PROP is not
 one of the properties on the list.  */)
   (Lisp_Object plist, Lisp_Object prop)
 {
+  unsigned short int quit_count = 0;
   Lisp_Object tail;
 
   for (tail = plist;
@@ -2182,8 +2128,7 @@ one of the properties on the list.  */)
     {
       if (! NILP (Fequal (prop, XCAR (tail))))
        return XCAR (XCDR (tail));
-
-      QUIT;
+      rarely_quit (&quit_count);
     }
 
   CHECK_LIST_END (tail, prop);
@@ -2199,12 +2144,11 @@ If PROP is already a property on the list, its value is 
set to VAL,
 otherwise the new PROP VAL pair is added.  The new plist is returned;
 use `(setq x (lax-plist-put x prop val))' to be sure to use the new value.
 The PLIST is modified by side effects.  */)
-  (Lisp_Object plist, register Lisp_Object prop, Lisp_Object val)
+  (Lisp_Object plist, Lisp_Object prop, Lisp_Object val)
 {
-  register Lisp_Object tail, prev;
-  Lisp_Object newcell;
-  prev = Qnil;
-  for (tail = plist; CONSP (tail) && CONSP (XCDR (tail));
+  unsigned short int quit_count = 0;
+  Lisp_Object prev = Qnil;
+  for (Lisp_Object tail = plist; CONSP (tail) && CONSP (XCDR (tail));
        tail = XCDR (XCDR (tail)))
     {
       if (! NILP (Fequal (prop, XCAR (tail))))
@@ -2214,13 +2158,12 @@ The PLIST is modified by side effects.  */)
        }
 
       prev = tail;
-      QUIT;
+      rarely_quit (&quit_count);
     }
-  newcell = list2 (prop, val);
+  Lisp_Object newcell = list2 (prop, val);
   if (NILP (prev))
     return newcell;
-  else
-    Fsetcdr (XCDR (prev), newcell);
+  Fsetcdr (XCDR (prev), newcell);
   return plist;
 }
 
@@ -2293,8 +2236,9 @@ internal_equal (Lisp_Object o1, Lisp_Object o2, int 
depth, bool props,
        }
     }
 
+  unsigned short int quit_count = 0;
  tail_recurse:
-  QUIT;
+  rarely_quit (&quit_count);
   if (EQ (o1, o2))
     return 1;
   if (XTYPE (o1) != XTYPE (o2))
@@ -2483,14 +2427,12 @@ Only the last argument is not altered, and need not be 
a list.
 usage: (nconc &rest LISTS)  */)
   (ptrdiff_t nargs, Lisp_Object *args)
 {
-  ptrdiff_t argnum;
-  register Lisp_Object tail, tem, val;
-
-  val = tail = Qnil;
+  unsigned short int quit_count = 0;
+  Lisp_Object val = Qnil;
 
-  for (argnum = 0; argnum < nargs; argnum++)
+  for (ptrdiff_t argnum = 0; argnum < nargs; argnum++)
     {
-      tem = args[argnum];
+      Lisp_Object tem = args[argnum];
       if (NILP (tem)) continue;
 
       if (NILP (val))
@@ -2498,14 +2440,19 @@ usage: (nconc &rest LISTS)  */)
 
       if (argnum + 1 == nargs) break;
 
-      CHECK_LIST_CONS (tem, tem);
+      CHECK_CONS (tem);
 
-      while (CONSP (tem))
+      immediate_quit = true;
+      Lisp_Object tail;
+      do
        {
          tail = tem;
          tem = XCDR (tail);
-         QUIT;
        }
+      while (CONSP (tem));
+
+      immediate_quit = false;
+      rarely_quit (&quit_count);
 
       tem = args[argnum + 1];
       Fsetcdr (tail, tem);
@@ -2927,12 +2874,13 @@ property and a property with the value nil.
 The value is actually the tail of PLIST whose car is PROP.  */)
   (Lisp_Object plist, Lisp_Object prop)
 {
+  immediate_quit = true;
   while (CONSP (plist) && !EQ (XCAR (plist), prop))
     {
       plist = XCDR (plist);
       plist = CDR (plist);
-      QUIT;
     }
+  immediate_quit = false;
   return plist;
 }
 
@@ -3804,12 +3752,17 @@ allocate_hash_table (void)
    (table size) is >= REHASH_THRESHOLD.
 
    WEAK specifies the weakness of the table.  If non-nil, it must be
-   one of the symbols `key', `value', `key-or-value', or `key-and-value'.  */
+   one of the symbols `key', `value', `key-or-value', or `key-and-value'.
+
+   If PURECOPY is non-nil, the table can be copied to pure storage via
+   `purecopy' when Emacs is being dumped. Such tables can no longer be
+   changed after purecopy.  */
 
 Lisp_Object
 make_hash_table (struct hash_table_test test,
                 Lisp_Object size, Lisp_Object rehash_size,
-                Lisp_Object rehash_threshold, Lisp_Object weak)
+                Lisp_Object rehash_threshold, Lisp_Object weak,
+                 Lisp_Object pure)
 {
   struct Lisp_Hash_Table *h;
   Lisp_Object table;
@@ -3850,6 +3803,7 @@ make_hash_table (struct hash_table_test test,
   h->hash = Fmake_vector (size, Qnil);
   h->next = Fmake_vector (size, Qnil);
   h->index = Fmake_vector (make_number (index_size), Qnil);
+  h->pure = pure;
 
   /* Set up the free list.  */
   for (i = 0; i < sz - 1; ++i)
@@ -4514,10 +4468,15 @@ key, value, one of key or value, or both key and value, 
depending on
 WEAK.  WEAK t is equivalent to `key-and-value'.  Default value of WEAK
 is nil.
 
+:purecopy PURECOPY -- If PURECOPY is non-nil, the table can be copied
+to pure storage when Emacs is being dumped, making the contents of the
+table read only. Any further changes to purified tables will result
+in an error.
+
 usage: (make-hash-table &rest KEYWORD-ARGS)  */)
   (ptrdiff_t nargs, Lisp_Object *args)
 {
-  Lisp_Object test, size, rehash_size, rehash_threshold, weak;
+  Lisp_Object test, size, rehash_size, rehash_threshold, weak, pure;
   struct hash_table_test testdesc;
   ptrdiff_t i;
   USE_SAFE_ALLOCA;
@@ -4551,6 +4510,9 @@ usage: (make-hash-table &rest KEYWORD-ARGS)  */)
       testdesc.cmpfn = cmpfn_user_defined;
     }
 
+  /* See if there's a `:purecopy PURECOPY' argument.  */
+  i = get_key_arg (QCpurecopy, nargs, args, used);
+  pure = i ? args[i] : Qnil;
   /* See if there's a `:size SIZE' argument.  */
   i = get_key_arg (QCsize, nargs, args, used);
   size = i ? args[i] : Qnil;
@@ -4592,7 +4554,8 @@ usage: (make-hash-table &rest KEYWORD-ARGS)  */)
       signal_error ("Invalid argument list", args[i]);
 
   SAFE_FREE ();
-  return make_hash_table (testdesc, size, rehash_size, rehash_threshold, weak);
+  return make_hash_table (testdesc, size, rehash_size, rehash_threshold, weak,
+                          pure);
 }
 
 
@@ -4671,7 +4634,9 @@ DEFUN ("clrhash", Fclrhash, Sclrhash, 1, 1, 0,
        doc: /* Clear hash table TABLE and return it.  */)
   (Lisp_Object table)
 {
-  hash_clear (check_hash_table (table));
+  struct Lisp_Hash_Table *h = check_hash_table (table);
+  CHECK_IMPURE (table, h);
+  hash_clear (h);
   /* Be compatible with XEmacs.  */
   return table;
 }
@@ -4695,9 +4660,10 @@ VALUE.  In any case, return VALUE.  */)
   (Lisp_Object key, Lisp_Object value, Lisp_Object table)
 {
   struct Lisp_Hash_Table *h = check_hash_table (table);
+  CHECK_IMPURE (table, h);
+
   ptrdiff_t i;
   EMACS_UINT hash;
-
   i = hash_lookup (h, key, &hash);
   if (i >= 0)
     set_hash_value_slot (h, i, value);
@@ -4713,6 +4679,7 @@ DEFUN ("remhash", Fremhash, Sremhash, 2, 2, 0,
   (Lisp_Object key, Lisp_Object table)
 {
   struct Lisp_Hash_Table *h = check_hash_table (table);
+  CHECK_IMPURE (table, h);
   hash_remove_from_table (h, key);
   return Qnil;
 }
@@ -5083,6 +5050,7 @@ syms_of_fns (void)
   DEFSYM (Qequal, "equal");
   DEFSYM (QCtest, ":test");
   DEFSYM (QCsize, ":size");
+  DEFSYM (QCpurecopy, ":purecopy");
   DEFSYM (QCrehash_size, ":rehash-size");
   DEFSYM (QCrehash_threshold, ":rehash-threshold");
   DEFSYM (QCweakness, ":weakness");
@@ -5152,6 +5120,10 @@ On some platforms, file selection dialogs are also 
enabled if this is
 non-nil.  */);
   use_dialog_box = 1;
 
+  DEFVAR_LISP("watch-object", Vwatch_object,
+              doc: /* Symbol to watch.  */);
+  Vwatch_object = Qnil;
+
   DEFVAR_BOOL ("use-file-dialog", use_file_dialog,
     doc: /* Non-nil means mouse commands use a file dialog to ask for files.
 This applies to commands from menus and tool bar buttons even when
diff --git a/src/font.c b/src/font.c
index 36e7166..a929509 100644
--- a/src/font.c
+++ b/src/font.c
@@ -1,6 +1,6 @@
 /* font.c -- "Font" primitives.
 
-Copyright (C) 2006-2016 Free Software Foundation, Inc.
+Copyright (C) 2006-2017 Free Software Foundation, Inc.
 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
   National Institute of Advanced Industrial Science and Technology (AIST)
   Registration Number H13PRO009
diff --git a/src/font.h b/src/font.h
index af0214c..a469b20 100644
--- a/src/font.h
+++ b/src/font.h
@@ -1,5 +1,5 @@
 /* font.h -- Interface definition for font handling.
-   Copyright (C) 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
    Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H13PRO009
diff --git a/src/fontset.c b/src/fontset.c
index 38ff780..850558b 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -1,6 +1,6 @@
 /* Fontset handler.
 
-Copyright (C) 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 2001-2017 Free Software Foundation, Inc.
 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
   2005, 2006, 2007, 2008, 2009, 2010, 2011
   National Institute of Advanced Industrial Science and Technology (AIST)
@@ -1677,11 +1677,10 @@ FONT-SPEC is a vector, a cons, or a string.  See the 
documentation of
 `set-fontset-font' for the meaning.  */)
   (Lisp_Object name, Lisp_Object fontlist)
 {
-  Lisp_Object fontset;
+  Lisp_Object fontset, tail;
   int id;
 
   CHECK_STRING (name);
-  CHECK_LIST (fontlist);
 
   name = Fdowncase (name);
   id = fs_query_fontset (name, 0);
@@ -1714,11 +1713,11 @@ FONT-SPEC is a vector, a cons, or a string.  See the 
documentation of
       Fset_char_table_range (fontset, Qt, Qnil);
     }
 
-  for (; CONSP (fontlist); fontlist = XCDR (fontlist))
+  for (tail = fontlist; CONSP (tail); tail = XCDR (tail))
     {
       Lisp_Object elt, script;
 
-      elt = XCAR (fontlist);
+      elt = XCAR (tail);
       script = Fcar (elt);
       elt = Fcdr (elt);
       if (CONSP (elt) && (NILP (XCDR (elt)) || CONSP (XCDR (elt))))
@@ -1727,6 +1726,7 @@ FONT-SPEC is a vector, a cons, or a string.  See the 
documentation of
       else
        Fset_fontset_font (name, script, elt, Qnil, Qappend);
     }
+  CHECK_LIST_END (tail, fontlist);
   return name;
 }
 
diff --git a/src/fontset.h b/src/fontset.h
index 91d690a..8bf9f75 100644
--- a/src/fontset.h
+++ b/src/fontset.h
@@ -1,5 +1,5 @@
 /* Header for fontset handler.
-   Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2001-2017 Free Software Foundation, Inc.
    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
      2005, 2006, 2007, 2008, 2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
diff --git a/src/frame.c b/src/frame.c
index b1d89f3..d0f653f 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -1,6 +1,6 @@
 /* Generic frame functions.
 
-Copyright (C) 1993-1995, 1997, 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1993-1995, 1997, 1999-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -611,7 +611,7 @@ make_frame (bool mini_p)
 {
   Lisp_Object frame;
   struct frame *f;
-  struct window *rw, *mw;
+  struct window *rw, *mw UNINIT;
   Lisp_Object root_window;
   Lisp_Object mini_window;
 
@@ -2478,28 +2478,6 @@ store_frame_param (struct frame *f, Lisp_Object prop, 
Lisp_Object val)
       return;
     }
 
-  /* If PROP is a symbol which is supposed to have frame-local values,
-     and it is set up based on this frame, switch to the global
-     binding.  That way, we can create or alter the frame-local binding
-     without messing up the symbol's status.  */
-  if (SYMBOLP (prop))
-    {
-      struct Lisp_Symbol *sym = XSYMBOL (prop);
-    start:
-      switch (sym->redirect)
-       {
-       case SYMBOL_VARALIAS: sym = indirect_variable (sym); goto start;
-       case SYMBOL_PLAINVAL: case SYMBOL_FORWARDED: break;
-       case SYMBOL_LOCALIZED:
-         { struct Lisp_Buffer_Local_Value *blv = sym->val.blv;
-           if (blv->frame_local && blv_found (blv) && XFRAME (blv->where) == f)
-             swap_in_global_binding (sym);
-           break;
-         }
-       default: emacs_abort ();
-       }
-    }
-
   /* The tty color needed to be set before the frame's parameter
      alist was updated with the new value.  This is not true any more,
      but we still do this test early on.  */
@@ -2709,19 +2687,11 @@ The meaningful parameters are acted upon, i.e. the 
frame is changed
 according to their new values, and are also stored in the frame's
 parameter list so that `frame-parameters' will return them.
 PARMs that are not meaningful are still stored in the frame's parameter
-list, but are otherwise ignored.
-
-The value of frame parameter FOO can also be accessed
-as a frame-local binding for the variable FOO, if you have
-enabled such bindings for that variable with `make-variable-frame-local'.
-Note that this functionality is obsolete as of Emacs 22.2, and its
-use is not recommended.  Explicitly check for a frame-parameter instead.  */)
+list, but are otherwise ignored.  */)
   (Lisp_Object frame, Lisp_Object alist)
 {
   struct frame *f = decode_live_frame (frame);
-  register Lisp_Object prop, val;
-
-  CHECK_LIST (alist);
+  Lisp_Object prop, val;
 
   /* I think this should be done with a hook.  */
 #ifdef HAVE_WINDOW_SYSTEM
@@ -3170,6 +3140,7 @@ x_set_frame_parameters (struct frame *f, Lisp_Object 
alist)
 
   for (size = 0, tail = alist; CONSP (tail); tail = XCDR (tail))
     size++;
+  CHECK_LIST_END (tail, alist);
 
   USE_SAFE_ALLOCA;
   SAFE_ALLOCA_LISP (parms, 2 * size);
diff --git a/src/frame.h b/src/frame.h
index 5e3ee68..7331352 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -1,5 +1,5 @@
 /* Define frame-object for GNU Emacs.
-   Copyright (C) 1993-1994, 1999-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993-1994, 1999-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/fringe.c b/src/fringe.c
index 986bde1..c41a5d3 100644
--- a/src/fringe.c
+++ b/src/fringe.c
@@ -1,5 +1,5 @@
 /* Fringe handling (split from xdisp.c).
-   Copyright (C) 1985-1988, 1993-1995, 1997-2016 Free Software
+   Copyright (C) 1985-1988, 1993-1995, 1997-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/ftcrfont.c b/src/ftcrfont.c
index 67b43b6..d720057 100644
--- a/src/ftcrfont.c
+++ b/src/ftcrfont.c
@@ -1,5 +1,5 @@
 /* ftcrfont.c -- FreeType font driver on cairo.
-   Copyright (C) 2015-2016 Free Software Foundation, Inc.
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/ftfont.c b/src/ftfont.c
index bcc10c4..6cabddd 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -1,5 +1,5 @@
 /* ftfont.c -- FreeType font driver.
-   Copyright (C) 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
    Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H13PRO009
diff --git a/src/ftxfont.c b/src/ftxfont.c
index d1632e3..8c829bb 100644
--- a/src/ftxfont.c
+++ b/src/ftxfont.c
@@ -1,5 +1,5 @@
 /* ftxfont.c -- FreeType font driver on X (without using XFT).
-   Copyright (C) 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
    Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H13PRO009
diff --git a/src/getpagesize.h b/src/getpagesize.h
index fe83ae8..75b25b8 100644
--- a/src/getpagesize.h
+++ b/src/getpagesize.h
@@ -1,5 +1,5 @@
 /* Emulate getpagesize on systems that lack it.
-   Copyright (C) 1986, 1992, 1995, 2001-2016 Free Software Foundation,
+   Copyright (C) 1986, 1992, 1995, 2001-2017 Free Software Foundation,
    Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/gfilenotify.c b/src/gfilenotify.c
index 30d0753..285a253 100644
--- a/src/gfilenotify.c
+++ b/src/gfilenotify.c
@@ -1,5 +1,5 @@
 /* Filesystem notifications support with glib API.
-   Copyright (C) 2013-2016 Free Software Foundation, Inc.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -27,7 +27,7 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include "keyboard.h"
 
 
-/* This is a list, elements are triples (DESCRIPTOR FILE FLAGS CALLBACK)  */
+/* This is a list, elements are quadruples (DESCRIPTOR FILE FLAGS CALLBACK)  */
 static Lisp_Object watch_list;
 
 /* This is the callback function for arriving signals from
@@ -178,20 +178,18 @@ will be reported only in case of the `moved' event.  */)
   if (NILP (Ffile_exists_p (file)))
     report_file_error ("File does not exist", file);
 
-  CHECK_LIST (flags);
-
   if (!FUNCTIONP (callback))
     wrong_type_argument (Qinvalid_function, callback);
 
-  /* Create GFile name.  */
-  gfile = g_file_new_for_path (SSDATA (ENCODE_FILE (file)));
-
   /* Assemble flags.  */
   if (!NILP (Fmember (Qwatch_mounts, flags)))
     gflags |= G_FILE_MONITOR_WATCH_MOUNTS;
   if (!NILP (Fmember (Qsend_moved, flags)))
     gflags |= G_FILE_MONITOR_SEND_MOVED;
 
+  /* Create GFile name.  */
+  gfile = g_file_new_for_path (SSDATA (ENCODE_FILE (file)));
+
   /* Enable watch.  */
   monitor = g_file_monitor (gfile, gflags, NULL, &gerror);
   g_object_unref (gfile);
@@ -258,7 +256,7 @@ WATCH-DESCRIPTOR should be an object returned by 
`gfile-add-watch'.  */)
 }
 
 DEFUN ("gfile-valid-p", Fgfile_valid_p, Sgfile_valid_p, 1, 1, 0,
-       doc: /* "Check a watch specified by its WATCH-DESCRIPTOR.
+       doc: /* Check a watch specified by its WATCH-DESCRIPTOR.
 
 WATCH-DESCRIPTOR should be an object returned by `gfile-add-watch'.
 
@@ -278,6 +276,25 @@ invalid.  */)
     }
 }
 
+DEFUN ("gfile-monitor-name", Fgfile_monitor_name, Sgfile_monitor_name, 1, 1, 0,
+       doc: /* Return the internal monitor name for WATCH-DESCRIPTOR.
+
+The result is a symbol, either `GInotifyFileMonitor',
+`GKqueueFileMonitor', `GFamFileMonitor', or `GPollFileMonitor'.
+
+WATCH-DESCRIPTOR should be an object returned by `gfile-add-watch'.
+If WATCH-DESCRIPTOR is not valid, nil is returned.  */)
+     (Lisp_Object watch_descriptor)
+{
+  if (NILP (Fgfile_valid_p (watch_descriptor)))
+    return Qnil;
+  else
+    {
+      GFileMonitor *monitor = XINTPTR (watch_descriptor);
+      return intern (G_OBJECT_TYPE_NAME (monitor));
+    }
+}
+
 
 void
 globals_of_gfilenotify (void)
@@ -294,6 +311,7 @@ syms_of_gfilenotify (void)
   defsubr (&Sgfile_add_watch);
   defsubr (&Sgfile_rm_watch);
   defsubr (&Sgfile_valid_p);
+  defsubr (&Sgfile_monitor_name);
 
   /* Filter objects.  */
   DEFSYM (Qchange, "change");
diff --git a/src/gmalloc.c b/src/gmalloc.c
index 3f7bbda..49f1faf 100644
--- a/src/gmalloc.c
+++ b/src/gmalloc.c
@@ -1,5 +1,5 @@
 /* Declarations for `malloc' and friends.
-   Copyright (C) 1990-1993, 1995-1996, 1999, 2002-2007, 2013-2016 Free
+   Copyright (C) 1990-1993, 1995-1996, 1999, 2002-2007, 2013-2017 Free
    Software Foundation, Inc.
                  Written May 1989 by Mike Haertel.
 
diff --git a/src/gnutls.c b/src/gnutls.c
index af2ba52..d0d7f2d 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -1,5 +1,5 @@
 /* GnuTLS glue for GNU Emacs.
-   Copyright (C) 2010-2016 Free Software Foundation, Inc.
+   Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -390,7 +390,7 @@ gnutls_try_handshake (struct Lisp_Process *proc)
     {
       ret = gnutls_handshake (state);
       emacs_gnutls_handle_error (state, ret);
-      QUIT;
+      maybe_quit ();
     }
   while (ret < 0
         && gnutls_error_is_fatal (ret) == 0
@@ -582,8 +582,17 @@ emacs_gnutls_handle_error (gnutls_session_t session, int 
err)
 
   if (gnutls_error_is_fatal (err))
     {
+      int level = 1;
+      /* Mostly ignore "The TLS connection was non-properly
+        terminated" message which just means that the peer closed the
+        connection.  */
+#ifdef HAVE_GNUTLS3
+      if (err == GNUTLS_E_PREMATURE_TERMINATION)
+       level = 3;
+#endif
+
+      GNUTLS_LOG2 (level, max_log_level, "fatal error:", str);
       ret = 0;
-      GNUTLS_LOG2 (1, max_log_level, "fatal error:", str);
     }
   else
     {
diff --git a/src/gnutls.h b/src/gnutls.h
index 41769a4..3c84023 100644
--- a/src/gnutls.h
+++ b/src/gnutls.h
@@ -1,5 +1,5 @@
 /* GnuTLS glue for GNU Emacs.
-   Copyright (C) 2010-2016 Free Software Foundation, Inc.
+   Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 3d35a3d..b028254 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1,6 +1,6 @@
 /* Functions for creating and updating GTK widgets.
 
-Copyright (C) 2003-2016 Free Software Foundation, Inc.
+Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/gtkutil.h b/src/gtkutil.h
index 8840fe7..d67a7bc 100644
--- a/src/gtkutil.h
+++ b/src/gtkutil.h
@@ -1,6 +1,6 @@
 /* Definitions and headers for GTK widgets.
 
-Copyright (C) 2003-2016 Free Software Foundation, Inc.
+Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/image.c b/src/image.c
index 89572b8..ad0143b 100644
--- a/src/image.c
+++ b/src/image.c
@@ -1,6 +1,6 @@
 /* Functions for image support on window system.
 
-Copyright (C) 1989, 1992-2016 Free Software Foundation, Inc.
+Copyright (C) 1989, 1992-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -36,6 +36,7 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 
 #include "lisp.h"
 #include "frame.h"
+#include "process.h"
 #include "window.h"
 #include "buffer.h"
 #include "dispextern.h"
@@ -4019,7 +4020,7 @@ xpm_make_color_table_h (void (**put_func) (Lisp_Object, 
const char *, int,
   return make_hash_table (hashtest_equal, make_number (DEFAULT_HASH_SIZE),
                          make_float (DEFAULT_REHASH_SIZE),
                          make_float (DEFAULT_REHASH_THRESHOLD),
-                         Qnil);
+                         Qnil, Qnil);
 }
 
 static void
diff --git a/src/indent.c b/src/indent.c
index 29c9ffd..23951a1 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -1,5 +1,5 @@
 /* Indentation functions.
-   Copyright (C) 1985-1988, 1993-1995, 1998, 2000-2016 Free Software
+   Copyright (C) 1985-1988, 1993-1995, 1998, 2000-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -1200,8 +1200,8 @@ compute_motion (ptrdiff_t from, ptrdiff_t frombyte, 
EMACS_INT fromvpos,
     continuation_glyph_width = 0;  /* In the fringe.  */
 #endif
 
-  immediate_quit = 1;
-  QUIT;
+  immediate_quit = true;
+  maybe_quit ();
 
   /* It's just impossible to be too paranoid here.  */
   eassert (from == BYTE_TO_CHAR (frombyte) && frombyte == CHAR_TO_BYTE (from));
@@ -1694,7 +1694,7 @@ compute_motion (ptrdiff_t from, ptrdiff_t frombyte, 
EMACS_INT fromvpos,
   /* Nonzero if have just continued a line */
   val_compute_motion.contin = (contin_hpos && prev_hpos == 0);
 
-  immediate_quit = 0;
+  immediate_quit = false;
   return &val_compute_motion;
 }
 
diff --git a/src/indent.h b/src/indent.h
index f2a4c90..42ae126 100644
--- a/src/indent.h
+++ b/src/indent.h
@@ -1,5 +1,5 @@
 /* Definitions for interface to indent.c
-   Copyright (C) 1985-1986, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1985-1986, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/inotify.c b/src/inotify.c
index 38c8df5..701d8ff 100644
--- a/src/inotify.c
+++ b/src/inotify.c
@@ -1,6 +1,6 @@
 /* Inotify support for Emacs
 
-Copyright (C) 2012-2016 Free Software Foundation, Inc.
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -364,7 +364,7 @@ See inotify_rm_watch(2) for more information.
 }
 
 DEFUN ("inotify-valid-p", Finotify_valid_p, Sinotify_valid_p, 1, 1, 0,
-       doc: /* "Check a watch specified by its WATCH-DESCRIPTOR.
+       doc: /* Check a watch specified by its WATCH-DESCRIPTOR.
 
 WATCH-DESCRIPTOR should be an object returned by `inotify-add-watch'.
 
diff --git a/src/insdel.c b/src/insdel.c
index ed914ec..3f933b0 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -1,5 +1,5 @@
 /* Buffer insertion/deletion and gap motion for GNU Emacs.
-   Copyright (C) 1985-1986, 1993-1995, 1997-2016 Free Software
+   Copyright (C) 1985-1986, 1993-1995, 1997-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -129,7 +129,7 @@ gap_left (ptrdiff_t charpos, ptrdiff_t bytepos, bool newgap)
         Change BYTEPOS to be where we have actually moved the gap to.
         Note that this cannot happen when we are called to make the
         gap larger or smaller, since make_gap_larger and
-        make_gap_smaller prevent QUIT by setting inhibit-quit.  */
+        make_gap_smaller set inhibit-quit.  */
       if (QUITP)
        {
          bytepos = new_s1;
@@ -151,7 +151,7 @@ gap_left (ptrdiff_t charpos, ptrdiff_t bytepos, bool newgap)
   GPT = charpos;
   eassert (charpos <= bytepos);
   if (GAP_SIZE > 0) *(GPT_ADDR) = 0; /* Put an anchor.  */
-  QUIT;
+  maybe_quit ();
 }
 
 /* Move the gap to a position greater than the current GPT.
@@ -185,7 +185,7 @@ gap_right (ptrdiff_t charpos, ptrdiff_t bytepos)
         Change BYTEPOS to be where we have actually moved the gap to.
         Note that this cannot happen when we are called to make the
         gap larger or smaller, since make_gap_larger and
-        make_gap_smaller prevent QUIT by setting inhibit-quit.  */
+        make_gap_smaller set inhibit-quit.  */
       if (QUITP)
        {
          bytepos = new_s1;
@@ -204,7 +204,7 @@ gap_right (ptrdiff_t charpos, ptrdiff_t bytepos)
   GPT_BYTE = bytepos;
   eassert (charpos <= bytepos);
   if (GAP_SIZE > 0) *(GPT_ADDR) = 0; /* Put an anchor.  */
-  QUIT;
+  maybe_quit ();
 }
 
 /* If the selected window's old pointm is adjacent or covered by the
@@ -464,7 +464,7 @@ make_gap_larger (ptrdiff_t nbytes_added)
 
   enlarge_buffer_text (current_buffer, nbytes_added);
 
-  /* Prevent quitting in gap_left.  We cannot allow a QUIT there,
+  /* Prevent quitting in gap_left.  We cannot allow a quit there,
      because that would leave the buffer text in an inconsistent
      state, with 2 gap holes instead of just one.  */
   tem = Vinhibit_quit;
@@ -512,7 +512,7 @@ make_gap_smaller (ptrdiff_t nbytes_removed)
   if (GAP_SIZE - nbytes_removed < GAP_BYTES_MIN)
     nbytes_removed = GAP_SIZE - GAP_BYTES_MIN;
 
-  /* Prevent quitting in gap_right.  We cannot allow a QUIT there,
+  /* Prevent quitting in gap_right.  We cannot allow a quit there,
      because that would leave the buffer text in an inconsistent
      state, with 2 gap holes instead of just one.  */
   tem = Vinhibit_quit;
diff --git a/src/intervals.c b/src/intervals.c
index e797e25..d17d80a 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -1,5 +1,5 @@
 /* Code for doing intervals.
-   Copyright (C) 1993-1995, 1997-1998, 2001-2016 Free Software
+   Copyright (C) 1993-1995, 1997-1998, 2001-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/intervals.h b/src/intervals.h
index 9a38d84..cd0ba9a 100644
--- a/src/intervals.h
+++ b/src/intervals.h
@@ -1,5 +1,5 @@
 /* Definitions and global variables for intervals.
-   Copyright (C) 1993-1994, 2000-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993-1994, 2000-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -19,6 +19,9 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #ifndef EMACS_INTERVALS_H
 #define EMACS_INTERVALS_H
 
+#include "buffer.h"
+#include "lisp.h"
+
 INLINE_HEADER_BEGIN
 
 /* Basic data type for use of intervals.  */
diff --git a/src/keyboard.c b/src/keyboard.c
index f2ee313..0c04d95 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -1,6 +1,6 @@
 /* Keyboard and mouse input; editor command loop.
 
-Copyright (C) 1985-1989, 1993-1997, 1999-2016 Free Software Foundation,
+Copyright (C) 1985-1989, 1993-1997, 1999-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
@@ -87,7 +87,7 @@ char const DEV_TTY[] = "/dev/tty";
 volatile int interrupt_input_blocked;
 
 /* True means an input interrupt or alarm signal has arrived.
-   The QUIT macro checks this.  */
+   The maybe_quit function checks this.  */
 volatile bool pending_signals;
 
 #define KBD_BUFFER_SIZE 4096
@@ -1416,7 +1416,7 @@ command_loop_1 (void)
          if (!NILP (Vquit_flag))
            {
              Vexecuting_kbd_macro = Qt;
-             QUIT;             /* Make some noise.  */
+             maybe_quit ();    /* Make some noise.  */
                                /* Will return since macro now empty.  */
            }
        }
@@ -2162,9 +2162,9 @@ read_event_from_main_queue (struct timespec *end_time,
       if (CONSP (last))
         {
           while (CONSP (XCDR (last)))
-       last = XCDR (last);
+           last = XCDR (last);
           if (!NILP (XCDR (last)))
-       emacs_abort ();
+           emacs_abort ();
         }
       if (!CONSP (last))
         kset_kbd_queue (kb, list1 (c));
@@ -3591,7 +3591,7 @@ kbd_buffer_store_buffered_event (union 
buffered_input_event *event,
       if (immediate_quit && NILP (Vinhibit_quit))
        {
          immediate_quit = false;
-         QUIT;
+         maybe_quit ();
        }
     }
 }
@@ -7426,7 +7426,7 @@ menu_bar_items (Lisp_Object old)
   USE_SAFE_ALLOCA;
 
   /* In order to build the menus, we need to call the keymap
-     accessors.  They all call QUIT.  But this function is called
+     accessors.  They all call maybe_quit.  But this function is called
      during redisplay, during which a quit is fatal.  So inhibit
      quitting while building the menus.
      We do this instead of specbind because (1) errors will clear it anyway
@@ -7987,7 +7987,7 @@ tool_bar_items (Lisp_Object reuse, int *nitems)
   *nitems = 0;
 
   /* In order to build the menus, we need to call the keymap
-     accessors.  They all call QUIT.  But this function is called
+     accessors.  They all call maybe_quit.  But this function is called
      during redisplay, during which a quit is fatal.  So inhibit
      quitting while building the menus.  We do this instead of
      specbind because (1) errors will clear it anyway and (2) this
@@ -9806,7 +9806,7 @@ read_key_sequence_vs (Lisp_Object prompt, Lisp_Object 
continue_echo,
 
   if (!NILP (prompt))
     CHECK_STRING (prompt);
-  QUIT;
+  maybe_quit ();
 
   specbind (Qinput_method_exit_on_first_char,
            (NILP (cmd_loop) ? Qt : Qnil));
@@ -9840,7 +9840,7 @@ read_key_sequence_vs (Lisp_Object prompt, Lisp_Object 
continue_echo,
   if (i == -1)
     {
       Vquit_flag = Qt;
-      QUIT;
+      maybe_quit ();
     }
 
   return unbind_to (count,
@@ -10278,7 +10278,7 @@ clear_waiting_for_input (void)
 
    If we have a frame on the controlling tty, we assume that the
    SIGINT was generated by C-g, so we call handle_interrupt.
-   Otherwise, tell QUIT to kill Emacs.  */
+   Otherwise, tell maybe_quit to kill Emacs.  */
 
 static void
 handle_interrupt_signal (int sig)
@@ -10289,7 +10289,7 @@ handle_interrupt_signal (int sig)
     {
       /* If there are no frames there, let's pretend that we are a
          well-behaving UN*X program and quit.  We must not call Lisp
-         in a signal handler, so tell QUIT to exit when it is
+         in a signal handler, so tell maybe_quit to exit when it is
          safe.  */
       Vquit_flag = Qkill_emacs;
     }
@@ -10448,7 +10448,7 @@ handle_interrupt (bool in_signal_handler)
       /* If executing a function that wants to be interrupted out of
         and the user has not deferred quitting by binding `inhibit-quit'
         then quit right away.  */
-      if (immediate_quit && NILP (Vinhibit_quit))
+      if (immediate_quit && NILP (Vinhibit_quit) && !waiting_for_input)
        {
          struct gl_state_s saved;
 
diff --git a/src/keyboard.h b/src/keyboard.h
index 435851f..2219c01 100644
--- a/src/keyboard.h
+++ b/src/keyboard.h
@@ -1,5 +1,5 @@
 /* Declarations useful when processing input.
-   Copyright (C) 1985-1987, 1993, 2001-2016 Free Software Foundation,
+   Copyright (C) 1985-1987, 1993, 2001-2017 Free Software Foundation,
    Inc.
 
 This file is part of GNU Emacs.
@@ -486,6 +486,8 @@ extern bool kbd_buffer_events_waiting (void);
 extern void add_user_signal (int, const char *);
 
 extern int tty_read_avail_input (struct terminal *, struct input_event *);
+extern bool volatile pending_signals;
+extern void process_pending_signals (void);
 extern struct timespec timer_check (void);
 extern void mark_kboards (void);
 
diff --git a/src/keymap.c b/src/keymap.c
index c4a59ad..9caf55f 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1,5 +1,5 @@
 /* Manipulation of keymaps
-   Copyright (C) 1985-1988, 1993-1995, 1998-2016 Free Software
+   Copyright (C) 1985-1988, 1993-1995, 1998-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -523,7 +523,7 @@ access_keymap_1 (Lisp_Object map, Lisp_Object idx,
                retval = Fcons (Qkeymap, Fcons (retval, retval_tail));
              }
          }
-       QUIT;
+       maybe_quit ();
       }
 
     return EQ (Qunbound, retval) ? get_keyelt (t_binding, autoload) : retval;
@@ -877,7 +877,7 @@ store_in_keymap (Lisp_Object keymap, register Lisp_Object 
idx, Lisp_Object def)
             should be inserted before it.  */
          goto keymap_end;
 
-       QUIT;
+       maybe_quit ();
       }
 
   keymap_end:
@@ -1250,7 +1250,7 @@ recognize the default bindings, just as 
`read-key-sequence' does.  */)
       if (!CONSP (keymap))
        return make_number (idx);
 
-      QUIT;
+      maybe_quit ();
     }
 }
 
@@ -2466,7 +2466,7 @@ where_is_internal (Lisp_Object definition, Lisp_Object 
keymaps,
           non-ascii prefixes like `C-down-mouse-2'.  */
        continue;
 
-      QUIT;
+      maybe_quit ();
 
       data.definition = definition;
       data.noindirect = noindirect;
@@ -3173,7 +3173,7 @@ describe_map (Lisp_Object map, Lisp_Object prefix,
 
   for (tail = map; CONSP (tail); tail = XCDR (tail))
     {
-      QUIT;
+      maybe_quit ();
 
       if (VECTORP (XCAR (tail))
          || CHAR_TABLE_P (XCAR (tail)))
@@ -3426,7 +3426,7 @@ describe_vector (Lisp_Object vector, Lisp_Object prefix, 
Lisp_Object args,
       int range_beg, range_end;
       Lisp_Object val;
 
-      QUIT;
+      maybe_quit ();
 
       if (i == stop)
        {
diff --git a/src/keymap.h b/src/keymap.h
index 37f866c..af0affb 100644
--- a/src/keymap.h
+++ b/src/keymap.h
@@ -1,5 +1,5 @@
 /* Functions to manipulate keymaps.
-   Copyright (C) 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/kqueue.c b/src/kqueue.c
index d1d0a61..8e6b1e1 100644
--- a/src/kqueue.c
+++ b/src/kqueue.c
@@ -1,6 +1,6 @@
 /* Filesystem notifications support with kqueue API.
 
-Copyright (C) 2015-2016 Free Software Foundation, Inc.
+Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -491,7 +491,7 @@ WATCH-DESCRIPTOR should be an object returned by 
`kqueue-add-watch'.  */)
 }
 
 DEFUN ("kqueue-valid-p", Fkqueue_valid_p, Skqueue_valid_p, 1, 1, 0,
-       doc: /* "Check a watch specified by its WATCH-DESCRIPTOR.
+       doc: /* Check a watch specified by its WATCH-DESCRIPTOR.
 
 WATCH-DESCRIPTOR should be an object returned by `kqueue-add-watch'.
 
diff --git a/src/lastfile.c b/src/lastfile.c
index 27602bd..f146602 100644
--- a/src/lastfile.c
+++ b/src/lastfile.c
@@ -1,5 +1,5 @@
 /* Mark end of data space to dump as pure, for GNU Emacs.
-   Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/lisp.h b/src/lisp.h
index 79cd85b..0c444cc 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1,6 +1,6 @@
 /* Fundamental definitions for GNU Emacs Lisp interpreter. -*- coding: utf-8 
-*-
 
-Copyright (C) 1985-1987, 1993-1995, 1997-2016 Free Software Foundation,
+Copyright (C) 1985-1987, 1993-1995, 1997-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
@@ -34,8 +34,6 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include <intprops.h>
 #include <verify.h>
 
-#include "systhread.h"
-
 INLINE_HEADER_BEGIN
 
 /* Define a TYPE constant ID as an externally visible name.  Use like this:
@@ -260,6 +258,11 @@ DEFINE_GDB_SYMBOL_BEGIN (bool, USE_LSB_TAG)
 #define USE_LSB_TAG (VAL_MAX / 2 < INTPTR_MAX)
 DEFINE_GDB_SYMBOL_END (USE_LSB_TAG)
 
+/* Mask for the value (as opposed to the type bits) of a Lisp object.  */
+DEFINE_GDB_SYMBOL_BEGIN (EMACS_INT, VALMASK)
+# define VALMASK (USE_LSB_TAG ? - (1 << GCTYPEBITS) : VAL_MAX)
+DEFINE_GDB_SYMBOL_END (VALMASK)
+
 #if !USE_LSB_TAG && !defined WIDE_EMACS_INT
 # error "USE_LSB_TAG not supported on this platform; please report this." \
        "Try 'configure --with-wide-int' to work around the problem."
@@ -307,7 +310,6 @@ error !;
 # define lisp_h_XLI(o) (o)
 # define lisp_h_XIL(i) (i)
 #endif
-#define lisp_h_CHECK_LIST_CONS(x, y) CHECK_TYPE (CONSP (x), Qlistp, y)
 #define lisp_h_CHECK_NUMBER(x) CHECK_TYPE (INTEGERP (x), Qintegerp, x)
 #define lisp_h_CHECK_SYMBOL(x) CHECK_TYPE (SYMBOLP (x), Qsymbolp, x)
 #define lisp_h_CHECK_TYPE(ok, predicate, x) \
@@ -364,7 +366,6 @@ error !;
 #if DEFINE_KEY_OPS_AS_MACROS
 # define XLI(o) lisp_h_XLI (o)
 # define XIL(i) lisp_h_XIL (i)
-# define CHECK_LIST_CONS(x, y) lisp_h_CHECK_LIST_CONS (x, y)
 # define CHECK_NUMBER(x) lisp_h_CHECK_NUMBER (x)
 # define CHECK_SYMBOL(x) lisp_h_CHECK_SYMBOL (x)
 # define CHECK_TYPE(ok, predicate, x) lisp_h_CHECK_TYPE (ok, predicate, x)
@@ -558,45 +559,8 @@ enum CHECK_LISP_OBJECT_TYPE { CHECK_LISP_OBJECT_TYPE = 
false };
 /* Forward declarations.  */
 
 /* Defined in this file.  */
-union Lisp_Fwd;
-INLINE bool BOOL_VECTOR_P (Lisp_Object);
-INLINE bool BUFFER_OBJFWDP (union Lisp_Fwd *);
-INLINE bool BUFFERP (Lisp_Object);
-INLINE bool CHAR_TABLE_P (Lisp_Object);
-INLINE Lisp_Object CHAR_TABLE_REF_ASCII (Lisp_Object, ptrdiff_t);
-INLINE bool (CONSP) (Lisp_Object);
-INLINE bool (FLOATP) (Lisp_Object);
-INLINE bool (INTEGERP) (Lisp_Object);
-INLINE bool (MARKERP) (Lisp_Object);
-INLINE bool (MISCP) (Lisp_Object);
-INLINE bool (NILP) (Lisp_Object);
-INLINE bool OVERLAYP (Lisp_Object);
-INLINE bool PROCESSP (Lisp_Object);
-INLINE bool PSEUDOVECTORP (Lisp_Object, int);
-INLINE bool SAVE_VALUEP (Lisp_Object);
-INLINE bool FINALIZERP (Lisp_Object);
-
-#ifdef HAVE_MODULES
-INLINE bool USER_PTRP (Lisp_Object);
-INLINE struct Lisp_User_Ptr *(XUSER_PTR) (Lisp_Object);
-#endif
-
 INLINE void set_sub_char_table_contents (Lisp_Object, ptrdiff_t,
                                              Lisp_Object);
-INLINE bool STRINGP (Lisp_Object);
-INLINE bool SUB_CHAR_TABLE_P (Lisp_Object);
-INLINE bool SUBRP (Lisp_Object);
-INLINE bool (SYMBOLP) (Lisp_Object);
-INLINE bool (VECTORLIKEP) (Lisp_Object);
-INLINE bool WINDOWP (Lisp_Object);
-INLINE bool TERMINALP (Lisp_Object);
-INLINE bool THREADP (Lisp_Object);
-INLINE bool MUTEXP (Lisp_Object);
-INLINE bool CONDVARP (Lisp_Object);
-INLINE struct Lisp_Save_Value *XSAVE_VALUE (Lisp_Object);
-INLINE struct Lisp_Finalizer *XFINALIZER (Lisp_Object);
-INLINE struct Lisp_Symbol *(XSYMBOL) (Lisp_Object);
-INLINE void *(XUNTAG) (Lisp_Object, int);
 
 /* Defined in chartab.c.  */
 extern Lisp_Object char_table_ref (Lisp_Object, int);
@@ -604,9 +568,6 @@ extern void char_table_set (Lisp_Object, int, Lisp_Object);
 
 /* Defined in data.c.  */
 extern _Noreturn void wrong_type_argument (Lisp_Object, Lisp_Object);
-extern _Noreturn void wrong_choice (Lisp_Object, Lisp_Object);
-extern void notify_variable_watchers (Lisp_Object symbol, Lisp_Object newval,
-                                      Lisp_Object operation, Lisp_Object 
where);
 
 
 #ifdef CANNOT_DUMP
@@ -625,6 +586,56 @@ extern bool generating_ldefs_boot;
 extern double extract_float (Lisp_Object);
 
 
+/* Low-level conversion and type checking.  */
+
+/* Convert a Lisp_Object to the corresponding EMACS_INT and vice versa.
+   At the machine level, these operations are no-ops.  */
+
+INLINE EMACS_INT
+(XLI) (Lisp_Object o)
+{
+  return lisp_h_XLI (o);
+}
+
+INLINE Lisp_Object
+(XIL) (EMACS_INT i)
+{
+  return lisp_h_XIL (i);
+}
+
+/* Extract A's type.  */
+
+INLINE enum Lisp_Type
+(XTYPE) (Lisp_Object a)
+{
+#if USE_LSB_TAG
+  return lisp_h_XTYPE (a);
+#else
+  EMACS_UINT i = XLI (a);
+  return USE_LSB_TAG ? i & ~VALMASK : i >> VALBITS;
+#endif
+}
+
+INLINE void
+(CHECK_TYPE) (int ok, Lisp_Object predicate, Lisp_Object x)
+{
+  lisp_h_CHECK_TYPE (ok, predicate, x);
+}
+
+/* Extract A's pointer value, assuming A's type is TYPE.  */
+
+INLINE void *
+(XUNTAG) (Lisp_Object a, int type)
+{
+#if USE_LSB_TAG
+  return lisp_h_XUNTAG (a, type);
+#else
+  intptr_t i = USE_LSB_TAG ? XLI (a) - type : XLI (a) & VALMASK;
+  return (void *) i;
+#endif
+}
+
+
 /* Interned state of a symbol.  */
 
 enum symbol_interned
@@ -753,6 +764,10 @@ struct Lisp_Symbol
   DEFINE_GDB_SYMBOL_BEGIN (Lisp_Object, name) \
   DEFINE_GDB_SYMBOL_END (LISPSYM_INITIALLY (name))
 
+/* The index of the C-defined Lisp symbol SYM.
+   This can be used in a static initializer.  */
+#define SYMBOL_INDEX(sym) i##sym
+
 /* By default, define macros for Qt, etc., as this leads to a bit
    better performance in the core Emacs interpreter.  A plugin can
    define DEFINE_NON_NIL_Q_SYMBOL_MACROS to be false, to be portable to
@@ -794,21 +809,43 @@ struct vectorlike_header
     ptrdiff_t size;
   };
 
-#include "thread.h"
+INLINE bool
+(SYMBOLP) (Lisp_Object x)
+{
+  return lisp_h_SYMBOLP (x);
+}
 
-/* Convert a Lisp_Object to the corresponding EMACS_INT and vice versa.
-   At the machine level, these operations are no-ops.  */
+INLINE struct Lisp_Symbol *
+(XSYMBOL) (Lisp_Object a)
+{
+#if USE_LSB_TAG
+  return lisp_h_XSYMBOL (a);
+#else
+  eassert (SYMBOLP (a));
+  intptr_t i = (intptr_t) XUNTAG (a, Lisp_Symbol);
+  void *p = (char *) lispsym + i;
+  return p;
+#endif
+}
 
-INLINE EMACS_INT
-(XLI) (Lisp_Object o)
+INLINE Lisp_Object
+make_lisp_symbol (struct Lisp_Symbol *sym)
 {
-  return lisp_h_XLI (o);
+  Lisp_Object a = XIL (TAG_SYMOFFSET ((char *) sym - (char *) lispsym));
+  eassert (XSYMBOL (a) == sym);
+  return a;
 }
 
 INLINE Lisp_Object
-(XIL) (EMACS_INT i)
+builtin_lisp_symbol (int index)
 {
-  return lisp_h_XIL (i);
+  return make_lisp_symbol (lispsym + index);
+}
+
+INLINE void
+(CHECK_SYMBOL) (Lisp_Object x)
+{
+ lisp_h_CHECK_SYMBOL (x);
 }
 
 /* In the size word of a vector, this bit means the vector has been marked.  */
@@ -879,11 +916,6 @@ enum More_Lisp_Bits
    XCONS (tem) is the struct Lisp_Cons * pointing to the memory for
    that cons.  */
 
-/* Mask for the value (as opposed to the type bits) of a Lisp object.  */
-DEFINE_GDB_SYMBOL_BEGIN (EMACS_INT, VALMASK)
-# define VALMASK (USE_LSB_TAG ? - (1 << GCTYPEBITS) : VAL_MAX)
-DEFINE_GDB_SYMBOL_END (VALMASK)
-
 /* Largest and smallest representable fixnum values.  These are the C
    values.  They are macros for use in static initializers.  */
 #define MOST_POSITIVE_FIXNUM (EMACS_INT_MAX >> INTTYPEBITS)
@@ -911,24 +943,6 @@ INLINE EMACS_INT
   return n;
 }
 
-INLINE struct Lisp_Symbol *
-(XSYMBOL) (Lisp_Object a)
-{
-  return lisp_h_XSYMBOL (a);
-}
-
-INLINE enum Lisp_Type
-(XTYPE) (Lisp_Object a)
-{
-  return lisp_h_XTYPE (a);
-}
-
-INLINE void *
-(XUNTAG) (Lisp_Object a, int type)
-{
-  return lisp_h_XUNTAG (a, type);
-}
-
 #else /* ! USE_LSB_TAG */
 
 /* Although compiled only if ! USE_LSB_TAG, the following functions
@@ -980,32 +994,6 @@ XFASTINT (Lisp_Object a)
   return n;
 }
 
-/* Extract A's type.  */
-INLINE enum Lisp_Type
-XTYPE (Lisp_Object a)
-{
-  EMACS_UINT i = XLI (a);
-  return USE_LSB_TAG ? i & ~VALMASK : i >> VALBITS;
-}
-
-/* Extract A's value as a symbol.  */
-INLINE struct Lisp_Symbol *
-XSYMBOL (Lisp_Object a)
-{
-  eassert (SYMBOLP (a));
-  intptr_t i = (intptr_t) XUNTAG (a, Lisp_Symbol);
-  void *p = (char *) lispsym + i;
-  return p;
-}
-
-/* Extract A's pointer value, assuming A's type is TYPE.  */
-INLINE void *
-XUNTAG (Lisp_Object a, int type)
-{
-  intptr_t i = USE_LSB_TAG ? XLI (a) - type : XLI (a) & VALMASK;
-  return (void *) i;
-}
-
 #endif /* ! USE_LSB_TAG */
 
 /* Extract A's value as an unsigned integer.  */
@@ -1056,119 +1044,6 @@ clip_to_bounds (ptrdiff_t lower, EMACS_INT num, 
ptrdiff_t upper)
   return num < lower ? lower : num <= upper ? num : upper;
 }
 
-
-/* Extract a value or address from a Lisp_Object.  */
-
-INLINE struct Lisp_Cons *
-(XCONS) (Lisp_Object a)
-{
-  return lisp_h_XCONS (a);
-}
-
-INLINE struct Lisp_Vector *
-XVECTOR (Lisp_Object a)
-{
-  eassert (VECTORLIKEP (a));
-  return XUNTAG (a, Lisp_Vectorlike);
-}
-
-INLINE struct Lisp_String *
-XSTRING (Lisp_Object a)
-{
-  eassert (STRINGP (a));
-  return XUNTAG (a, Lisp_String);
-}
-
-/* The index of the C-defined Lisp symbol SYM.
-   This can be used in a static initializer.  */
-#define SYMBOL_INDEX(sym) i##sym
-
-INLINE struct Lisp_Float *
-XFLOAT (Lisp_Object a)
-{
-  eassert (FLOATP (a));
-  return XUNTAG (a, Lisp_Float);
-}
-
-/* Pseudovector types.  */
-
-INLINE struct Lisp_Process *
-XPROCESS (Lisp_Object a)
-{
-  eassert (PROCESSP (a));
-  return XUNTAG (a, Lisp_Vectorlike);
-}
-
-INLINE struct window *
-XWINDOW (Lisp_Object a)
-{
-  eassert (WINDOWP (a));
-  return XUNTAG (a, Lisp_Vectorlike);
-}
-
-INLINE struct terminal *
-XTERMINAL (Lisp_Object a)
-{
-  eassert (TERMINALP (a));
-  return XUNTAG (a, Lisp_Vectorlike);
-}
-
-INLINE struct Lisp_Subr *
-XSUBR (Lisp_Object a)
-{
-  eassert (SUBRP (a));
-  return XUNTAG (a, Lisp_Vectorlike);
-}
-
-INLINE struct buffer *
-XBUFFER (Lisp_Object a)
-{
-  eassert (BUFFERP (a));
-  return XUNTAG (a, Lisp_Vectorlike);
-}
-
-INLINE struct Lisp_Char_Table *
-XCHAR_TABLE (Lisp_Object a)
-{
-  eassert (CHAR_TABLE_P (a));
-  return XUNTAG (a, Lisp_Vectorlike);
-}
-
-INLINE struct Lisp_Sub_Char_Table *
-XSUB_CHAR_TABLE (Lisp_Object a)
-{
-  eassert (SUB_CHAR_TABLE_P (a));
-  return XUNTAG (a, Lisp_Vectorlike);
-}
-
-INLINE struct Lisp_Bool_Vector *
-XBOOL_VECTOR (Lisp_Object a)
-{
-  eassert (BOOL_VECTOR_P (a));
-  return XUNTAG (a, Lisp_Vectorlike);
-}
-
-INLINE struct thread_state *
-XTHREAD (Lisp_Object a)
-{
-  eassert (THREADP (a));
-  return XUNTAG (a, Lisp_Vectorlike);
-}
-
-INLINE struct Lisp_Mutex *
-XMUTEX (Lisp_Object a)
-{
-  eassert (MUTEXP (a));
-  return XUNTAG (a, Lisp_Vectorlike);
-}
-
-INLINE struct Lisp_CondVar *
-XCONDVAR (Lisp_Object a)
-{
-  eassert (CONDVARP (a));
-  return XUNTAG (a, Lisp_Vectorlike);
-}
-
 /* Construct a Lisp_Object from a value or address.  */
 
 INLINE Lisp_Object
@@ -1179,18 +1054,10 @@ make_lisp_ptr (void *ptr, enum Lisp_Type type)
   return a;
 }
 
-INLINE Lisp_Object
-make_lisp_symbol (struct Lisp_Symbol *sym)
-{
-  Lisp_Object a = XIL (TAG_SYMOFFSET ((char *) sym - (char *) lispsym));
-  eassert (XSYMBOL (a) == sym);
-  return a;
-}
-
-INLINE Lisp_Object
-builtin_lisp_symbol (int index)
+INLINE bool
+(INTEGERP) (Lisp_Object x)
 {
-  return make_lisp_symbol (lispsym + index);
+  return lisp_h_INTEGERP (x);
 }
 
 #define XSETINT(a, b) ((a) = make_number (b))
@@ -1258,15 +1125,7 @@ make_pointer_integer (void *p)
   return a;
 }
 
-/* Type checking.  */
-
-INLINE void
-(CHECK_TYPE) (int ok, Lisp_Object predicate, Lisp_Object x)
-{
-  lisp_h_CHECK_TYPE (ok, predicate, x);
-}
-
-/* See the macros in intervals.h.  */
+/* See the macros in intervals.h.  */
 
 typedef struct interval *INTERVAL;
 
@@ -1285,6 +1144,30 @@ struct GCALIGNED Lisp_Cons
     } u;
   };
 
+INLINE bool
+(NILP) (Lisp_Object x)
+{
+  return lisp_h_NILP (x);
+}
+
+INLINE bool
+(CONSP) (Lisp_Object x)
+{
+  return lisp_h_CONSP (x);
+}
+
+INLINE void
+CHECK_CONS (Lisp_Object x)
+{
+  CHECK_TYPE (CONSP (x), Qconsp, x);
+}
+
+INLINE struct Lisp_Cons *
+(XCONS) (Lisp_Object a)
+{
+  return lisp_h_XCONS (a);
+}
+
 /* Take the car or cdr of something known to be a cons cell.  */
 /* The _addr functions shouldn't be used outside of the minimal set
    of code that has to know what a cons cell looks like.  Other code not
@@ -1374,6 +1257,25 @@ struct GCALIGNED Lisp_String
     unsigned char *data;
   };
 
+INLINE bool
+STRINGP (Lisp_Object x)
+{
+  return XTYPE (x) == Lisp_String;
+}
+
+INLINE void
+CHECK_STRING (Lisp_Object x)
+{
+  CHECK_TYPE (STRINGP (x), Qstringp, x);
+}
+
+INLINE struct Lisp_String *
+XSTRING (Lisp_Object a)
+{
+  eassert (STRINGP (a));
+  return XUNTAG (a, Lisp_String);
+}
+
 /* True if STR is a multibyte string.  */
 INLINE bool
 STRING_MULTIBYTE (Lisp_Object str)
@@ -1477,6 +1379,62 @@ struct Lisp_Vector
     Lisp_Object contents[FLEXIBLE_ARRAY_MEMBER];
   };
 
+INLINE bool
+(VECTORLIKEP) (Lisp_Object x)
+{
+  return lisp_h_VECTORLIKEP (x);
+}
+
+INLINE struct Lisp_Vector *
+XVECTOR (Lisp_Object a)
+{
+  eassert (VECTORLIKEP (a));
+  return XUNTAG (a, Lisp_Vectorlike);
+}
+
+INLINE ptrdiff_t
+ASIZE (Lisp_Object array)
+{
+  ptrdiff_t size = XVECTOR (array)->header.size;
+  eassume (0 <= size);
+  return size;
+}
+
+INLINE bool
+VECTORP (Lisp_Object x)
+{
+  return VECTORLIKEP (x) && ! (ASIZE (x) & PSEUDOVECTOR_FLAG);
+}
+
+INLINE void
+CHECK_VECTOR (Lisp_Object x)
+{
+  CHECK_TYPE (VECTORP (x), Qvectorp, x);
+}
+
+/* A pseudovector is like a vector, but has other non-Lisp components.  */
+
+INLINE bool
+PSEUDOVECTOR_TYPEP (struct vectorlike_header *a, int code)
+{
+  return ((a->size & (PSEUDOVECTOR_FLAG | PVEC_TYPE_MASK))
+         == (PSEUDOVECTOR_FLAG | (code << PSEUDOVECTOR_AREA_BITS)));
+}
+
+/* True if A is a pseudovector whose code is CODE.  */
+INLINE bool
+PSEUDOVECTORP (Lisp_Object a, int code)
+{
+  if (! VECTORLIKEP (a))
+    return false;
+  else
+    {
+      /* Converting to struct vectorlike_header * avoids aliasing issues.  */
+      struct vectorlike_header *h = XUNTAG (a, Lisp_Vectorlike);
+      return PSEUDOVECTOR_TYPEP (h, code);
+    }
+}
+
 /* A boolvector is a kind of vectorlike, with contents like a string.  */
 
 struct Lisp_Bool_Vector
@@ -1493,6 +1451,51 @@ struct Lisp_Bool_Vector
     bits_word data[FLEXIBLE_ARRAY_MEMBER];
   };
 
+/* Some handy constants for calculating sizes
+   and offsets, mostly of vectorlike objects.   */
+
+enum
+  {
+    header_size = offsetof (struct Lisp_Vector, contents),
+    bool_header_size = offsetof (struct Lisp_Bool_Vector, data),
+    word_size = sizeof (Lisp_Object)
+  };
+
+/* The number of data words and bytes in a bool vector with SIZE bits.  */
+
+INLINE EMACS_INT
+bool_vector_words (EMACS_INT size)
+{
+  eassume (0 <= size && size <= EMACS_INT_MAX - (BITS_PER_BITS_WORD - 1));
+  return (size + BITS_PER_BITS_WORD - 1) / BITS_PER_BITS_WORD;
+}
+
+INLINE EMACS_INT
+bool_vector_bytes (EMACS_INT size)
+{
+  eassume (0 <= size && size <= EMACS_INT_MAX - (BITS_PER_BITS_WORD - 1));
+  return (size + BOOL_VECTOR_BITS_PER_CHAR - 1) / BOOL_VECTOR_BITS_PER_CHAR;
+}
+
+INLINE bool
+BOOL_VECTOR_P (Lisp_Object a)
+{
+  return PSEUDOVECTORP (a, PVEC_BOOL_VECTOR);
+}
+
+INLINE void
+CHECK_BOOL_VECTOR (Lisp_Object x)
+{
+  CHECK_TYPE (BOOL_VECTOR_P (x), Qbool_vector_p, x);
+}
+
+INLINE struct Lisp_Bool_Vector *
+XBOOL_VECTOR (Lisp_Object a)
+{
+  eassert (BOOL_VECTOR_P (a));
+  return XUNTAG (a, Lisp_Vectorlike);
+}
+
 INLINE EMACS_INT
 bool_vector_size (Lisp_Object a)
 {
@@ -1513,22 +1516,6 @@ bool_vector_uchar_data (Lisp_Object a)
   return (unsigned char *) bool_vector_data (a);
 }
 
-/* The number of data words and bytes in a bool vector with SIZE bits.  */
-
-INLINE EMACS_INT
-bool_vector_words (EMACS_INT size)
-{
-  eassume (0 <= size && size <= EMACS_INT_MAX - (BITS_PER_BITS_WORD - 1));
-  return (size + BITS_PER_BITS_WORD - 1) / BITS_PER_BITS_WORD;
-}
-
-INLINE EMACS_INT
-bool_vector_bytes (EMACS_INT size)
-{
-  eassume (0 <= size && size <= EMACS_INT_MAX - (BITS_PER_BITS_WORD - 1));
-  return (size + BOOL_VECTOR_BITS_PER_CHAR - 1) / BOOL_VECTOR_BITS_PER_CHAR;
-}
-
 /* True if A's Ith bit is set.  */
 
 INLINE bool
@@ -1561,16 +1548,6 @@ bool_vector_set (Lisp_Object a, EMACS_INT i, bool b)
     *addr &= ~ (1 << (i % BOOL_VECTOR_BITS_PER_CHAR));
 }
 
-/* Some handy constants for calculating sizes
-   and offsets, mostly of vectorlike objects.   */
-
-enum
-  {
-    header_size = offsetof (struct Lisp_Vector, contents),
-    bool_header_size = offsetof (struct Lisp_Bool_Vector, data),
-    word_size = sizeof (Lisp_Object)
-  };
-
 /* Conveniences for dealing with Lisp arrays.  */
 
 INLINE Lisp_Object
@@ -1586,14 +1563,6 @@ aref_addr (Lisp_Object array, ptrdiff_t idx)
 }
 
 INLINE ptrdiff_t
-ASIZE (Lisp_Object array)
-{
-  ptrdiff_t size = XVECTOR (array)->header.size;
-  eassume (0 <= size);
-  return size;
-}
-
-INLINE ptrdiff_t
 gc_asize (Lisp_Object array)
 {
   /* Like ASIZE, but also can be used in the garbage collector.  */
@@ -1710,6 +1679,19 @@ struct Lisp_Char_Table
     Lisp_Object extras[FLEXIBLE_ARRAY_MEMBER];
   };
 
+INLINE bool
+CHAR_TABLE_P (Lisp_Object a)
+{
+  return PSEUDOVECTORP (a, PVEC_CHAR_TABLE);
+}
+
+INLINE struct Lisp_Char_Table *
+XCHAR_TABLE (Lisp_Object a)
+{
+  eassert (CHAR_TABLE_P (a));
+  return XUNTAG (a, Lisp_Vectorlike);
+}
+
 struct Lisp_Sub_Char_Table
   {
     /* HEADER.SIZE is the vector's size field, which also holds the
@@ -1731,6 +1713,19 @@ struct Lisp_Sub_Char_Table
     Lisp_Object contents[FLEXIBLE_ARRAY_MEMBER];
   };
 
+INLINE bool
+SUB_CHAR_TABLE_P (Lisp_Object a)
+{
+  return PSEUDOVECTORP (a, PVEC_SUB_CHAR_TABLE);
+}
+
+INLINE struct Lisp_Sub_Char_Table *
+XSUB_CHAR_TABLE (Lisp_Object a)
+{
+  eassert (SUB_CHAR_TABLE_P (a));
+  return XUNTAG (a, Lisp_Vectorlike);
+}
+
 INLINE Lisp_Object
 CHAR_TABLE_REF_ASCII (Lisp_Object ct, ptrdiff_t idx)
 {
@@ -1796,6 +1791,19 @@ struct Lisp_Subr
     EMACS_INT doc;
   };
 
+INLINE bool
+SUBRP (Lisp_Object a)
+{
+  return PSEUDOVECTORP (a, PVEC_SUBR);
+}
+
+INLINE struct Lisp_Subr *
+XSUBR (Lisp_Object a)
+{
+  eassert (SUBRP (a));
+  return XUNTAG (a, Lisp_Vectorlike);
+}
+
 enum char_table_specials
   {
     /* This is the number of slots that every char table must have.  This
@@ -1822,6 +1830,8 @@ verify (offsetof (struct Lisp_Sub_Char_Table, contents)
        == (offsetof (struct Lisp_Vector, contents)
            + SUB_CHAR_TABLE_OFFSET * sizeof (Lisp_Object)));
 
+#include "thread.h"
+
 /***********************************************************************
                               Symbols
  ***********************************************************************/
@@ -1837,19 +1847,19 @@ INLINE Lisp_Object
 INLINE struct Lisp_Symbol *
 SYMBOL_ALIAS (struct Lisp_Symbol *sym)
 {
-  eassert (sym->redirect == SYMBOL_VARALIAS);
+  eassume (sym->redirect == SYMBOL_VARALIAS && sym->val.alias);
   return sym->val.alias;
 }
 INLINE struct Lisp_Buffer_Local_Value *
 SYMBOL_BLV (struct Lisp_Symbol *sym)
 {
-  eassert (sym->redirect == SYMBOL_LOCALIZED);
+  eassume (sym->redirect == SYMBOL_LOCALIZED && sym->val.blv);
   return sym->val.blv;
 }
 INLINE union Lisp_Fwd *
 SYMBOL_FWD (struct Lisp_Symbol *sym)
 {
-  eassert (sym->redirect == SYMBOL_FORWARDED);
+  eassume (sym->redirect == SYMBOL_FORWARDED && sym->val.fwd);
   return sym->val.fwd;
 }
 
@@ -1862,19 +1872,19 @@ INLINE void
 INLINE void
 SET_SYMBOL_ALIAS (struct Lisp_Symbol *sym, struct Lisp_Symbol *v)
 {
-  eassert (sym->redirect == SYMBOL_VARALIAS);
+  eassume (sym->redirect == SYMBOL_VARALIAS && v);
   sym->val.alias = v;
 }
 INLINE void
 SET_SYMBOL_BLV (struct Lisp_Symbol *sym, struct Lisp_Buffer_Local_Value *v)
 {
-  eassert (sym->redirect == SYMBOL_LOCALIZED);
+  eassume (sym->redirect == SYMBOL_LOCALIZED && v);
   sym->val.blv = v;
 }
 INLINE void
 SET_SYMBOL_FWD (struct Lisp_Symbol *sym, union Lisp_Fwd *v)
 {
-  eassert (sym->redirect == SYMBOL_FORWARDED);
+  eassume (sym->redirect == SYMBOL_FORWARDED && v);
   sym->val.fwd = v;
 }
 
@@ -1985,6 +1995,10 @@ struct Lisp_Hash_Table
      hash table size to reduce collisions.  */
   Lisp_Object index;
 
+  /* Non-nil if the table can be purecopied. Any changes the table after
+     purecopy will result in an error.  */
+  Lisp_Object pure;
+
   /* Only the fields above are traced normally by the GC.  The ones below
      `count' are special and are either ignored by the GC or traced in
      a special way (e.g. because of weakness).  */
@@ -2106,6 +2120,25 @@ struct Lisp_Misc_Any             /* Supertype of all 
Misc types.  */
   unsigned spacer : 15;
 };
 
+INLINE bool
+(MISCP) (Lisp_Object x)
+{
+  return lisp_h_MISCP (x);
+}
+
+INLINE struct Lisp_Misc_Any *
+XMISCANY (Lisp_Object a)
+{
+  eassert (MISCP (a));
+  return XUNTAG (a, Lisp_Misc);
+}
+
+INLINE enum Lisp_Misc_Type
+XMISCTYPE (Lisp_Object a)
+{
+  return XMISCANY (a)->type;
+}
+
 struct Lisp_Marker
 {
   ENUM_BF (Lisp_Misc_Type) type : 16;          /* = Lisp_Misc_Marker */
@@ -2263,6 +2296,19 @@ struct Lisp_Save_Value
     } data[SAVE_VALUE_SLOTS];
   };
 
+INLINE bool
+SAVE_VALUEP (Lisp_Object x)
+{
+  return MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Save_Value;
+}
+
+INLINE struct Lisp_Save_Value *
+XSAVE_VALUE (Lisp_Object a)
+{
+  eassert (SAVE_VALUEP (a));
+  return XUNTAG (a, Lisp_Misc);
+}
+
 /* Return the type of V's Nth saved value.  */
 INLINE int
 save_type (struct Lisp_Save_Value *v, int n)
@@ -2343,6 +2389,19 @@ struct Lisp_Finalizer
     Lisp_Object function;
   };
 
+INLINE bool
+FINALIZERP (Lisp_Object x)
+{
+  return MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Finalizer;
+}
+
+INLINE struct Lisp_Finalizer *
+XFINALIZER (Lisp_Object a)
+{
+  eassert (FINALIZERP (a));
+  return XUNTAG (a, Lisp_Misc);
+}
+
 /* A miscellaneous object, when it's on the free list.  */
 struct Lisp_Free
   {
@@ -2374,53 +2433,44 @@ XMISC (Lisp_Object a)
   return XUNTAG (a, Lisp_Misc);
 }
 
-INLINE struct Lisp_Misc_Any *
-XMISCANY (Lisp_Object a)
-{
-  eassert (MISCP (a));
-  return & XMISC (a)->u_any;
-}
-
-INLINE enum Lisp_Misc_Type
-XMISCTYPE (Lisp_Object a)
+INLINE bool
+(MARKERP) (Lisp_Object x)
 {
-  return XMISCANY (a)->type;
+  return lisp_h_MARKERP (x);
 }
 
 INLINE struct Lisp_Marker *
 XMARKER (Lisp_Object a)
 {
   eassert (MARKERP (a));
-  return & XMISC (a)->u_marker;
+  return XUNTAG (a, Lisp_Misc);
 }
 
-INLINE struct Lisp_Overlay *
-XOVERLAY (Lisp_Object a)
+INLINE bool
+OVERLAYP (Lisp_Object x)
 {
-  eassert (OVERLAYP (a));
-  return & XMISC (a)->u_overlay;
+  return MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Overlay;
 }
 
-INLINE struct Lisp_Save_Value *
-XSAVE_VALUE (Lisp_Object a)
+INLINE struct Lisp_Overlay *
+XOVERLAY (Lisp_Object a)
 {
-  eassert (SAVE_VALUEP (a));
-  return & XMISC (a)->u_save_value;
+  eassert (OVERLAYP (a));
+  return XUNTAG (a, Lisp_Misc);
 }
 
-INLINE struct Lisp_Finalizer *
-XFINALIZER (Lisp_Object a)
+#ifdef HAVE_MODULES
+INLINE bool
+USER_PTRP (Lisp_Object x)
 {
-  eassert (FINALIZERP (a));
-  return & XMISC (a)->u_finalizer;
+  return MISCP (x) && XMISCTYPE (x) == Lisp_Misc_User_Ptr;
 }
 
-#ifdef HAVE_MODULES
 INLINE struct Lisp_User_Ptr *
 XUSER_PTR (Lisp_Object a)
 {
   eassert (USER_PTRP (a));
-  return & XMISC (a)->u_user_ptr;
+  return XUNTAG (a, Lisp_Misc);
 }
 #endif
 
@@ -2466,7 +2516,7 @@ struct Lisp_Buffer_Objfwd
   };
 
 /* struct Lisp_Buffer_Local_Value is used in a symbol value cell when
-   the symbol has buffer-local or frame-local bindings.  (Exception:
+   the symbol has buffer-local bindings.  (Exception:
    some buffer-local variables are built-in, with their values stored
    in the buffer structure itself.  They are handled differently,
    using struct Lisp_Buffer_Objfwd.)
@@ -2494,9 +2544,6 @@ struct Lisp_Buffer_Local_Value
     /* True means that merely setting the variable creates a local
        binding for the current buffer.  */
     bool_bf local_if_set : 1;
-    /* True means this variable can have frame-local bindings, otherwise, it is
-       can have buffer-local bindings.  The two cannot be combined.  */
-    bool_bf frame_local : 1;
     /* True means that the binding now loaded was found.
        Presumably equivalent to (defcell!=valcell).  */
     bool_bf found : 1;
@@ -2538,6 +2585,12 @@ XFWDTYPE (union Lisp_Fwd *a)
   return a->u_intfwd.type;
 }
 
+INLINE bool
+BUFFER_OBJFWDP (union Lisp_Fwd *a)
+{
+  return XFWDTYPE (a) == Lisp_Fwd_Buffer_Obj;
+}
+
 INLINE struct Lisp_Buffer_Objfwd *
 XBUFFER_OBJFWD (union Lisp_Fwd *a)
 {
@@ -2555,6 +2608,19 @@ struct Lisp_Float
     } u;
   };
 
+INLINE bool
+(FLOATP) (Lisp_Object x)
+{
+  return lisp_h_FLOATP (x);
+}
+
+INLINE struct Lisp_Float *
+XFLOAT (Lisp_Object a)
+{
+  eassert (FLOATP (a));
+  return XUNTAG (a, Lisp_Float);
+}
+
 INLINE double
 XFLOAT_DATA (Lisp_Object f)
 {
@@ -2621,12 +2687,6 @@ enum char_bits
 /* Data type checking.  */
 
 INLINE bool
-(NILP) (Lisp_Object x)
-{
-  return lisp_h_NILP (x);
-}
-
-INLINE bool
 NUMBERP (Lisp_Object x)
 {
   return INTEGERP (x) || FLOATP (x);
@@ -2649,109 +2709,11 @@ RANGED_INTEGERP (intmax_t lo, Lisp_Object x, intmax_t 
hi)
    && XINT (x) <= TYPE_MAXIMUM (type))
 
 INLINE bool
-(CONSP) (Lisp_Object x)
-{
-  return lisp_h_CONSP (x);
-}
-INLINE bool
-(FLOATP) (Lisp_Object x)
-{
-  return lisp_h_FLOATP (x);
-}
-INLINE bool
-(MISCP) (Lisp_Object x)
-{
-  return lisp_h_MISCP (x);
-}
-INLINE bool
-(SYMBOLP) (Lisp_Object x)
-{
-  return lisp_h_SYMBOLP (x);
-}
-INLINE bool
-(INTEGERP) (Lisp_Object x)
-{
-  return lisp_h_INTEGERP (x);
-}
-INLINE bool
-(VECTORLIKEP) (Lisp_Object x)
-{
-  return lisp_h_VECTORLIKEP (x);
-}
-INLINE bool
-(MARKERP) (Lisp_Object x)
-{
-  return lisp_h_MARKERP (x);
-}
-
-INLINE bool
-STRINGP (Lisp_Object x)
-{
-  return XTYPE (x) == Lisp_String;
-}
-INLINE bool
-VECTORP (Lisp_Object x)
-{
-  return VECTORLIKEP (x) && ! (ASIZE (x) & PSEUDOVECTOR_FLAG);
-}
-INLINE bool
-OVERLAYP (Lisp_Object x)
-{
-  return MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Overlay;
-}
-INLINE bool
-SAVE_VALUEP (Lisp_Object x)
-{
-  return MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Save_Value;
-}
-
-INLINE bool
-FINALIZERP (Lisp_Object x)
-{
-  return MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Finalizer;
-}
-
-#ifdef HAVE_MODULES
-INLINE bool
-USER_PTRP (Lisp_Object x)
-{
-  return MISCP (x) && XMISCTYPE (x) == Lisp_Misc_User_Ptr;
-}
-#endif
-
-INLINE bool
 AUTOLOADP (Lisp_Object x)
 {
   return CONSP (x) && EQ (Qautoload, XCAR (x));
 }
 
-INLINE bool
-BUFFER_OBJFWDP (union Lisp_Fwd *a)
-{
-  return XFWDTYPE (a) == Lisp_Fwd_Buffer_Obj;
-}
-
-INLINE bool
-PSEUDOVECTOR_TYPEP (struct vectorlike_header *a, int code)
-{
-  return ((a->size & (PSEUDOVECTOR_FLAG | PVEC_TYPE_MASK))
-         == (PSEUDOVECTOR_FLAG | (code << PSEUDOVECTOR_AREA_BITS)));
-}
-
-/* True if A is a pseudovector whose code is CODE.  */
-INLINE bool
-PSEUDOVECTORP (Lisp_Object a, int code)
-{
-  if (! VECTORLIKEP (a))
-    return false;
-  else
-    {
-      /* Converting to struct vectorlike_header * avoids aliasing issues.  */
-      struct vectorlike_header *h = XUNTAG (a, Lisp_Vectorlike);
-      return PSEUDOVECTOR_TYPEP (h, code);
-    }
-}
-
 
 /* Test for specific pseudovector types.  */
 
@@ -2762,83 +2724,17 @@ WINDOW_CONFIGURATIONP (Lisp_Object a)
 }
 
 INLINE bool
-PROCESSP (Lisp_Object a)
-{
-  return PSEUDOVECTORP (a, PVEC_PROCESS);
-}
-
-INLINE bool
-WINDOWP (Lisp_Object a)
-{
-  return PSEUDOVECTORP (a, PVEC_WINDOW);
-}
-
-INLINE bool
-TERMINALP (Lisp_Object a)
-{
-  return PSEUDOVECTORP (a, PVEC_TERMINAL);
-}
-
-INLINE bool
-SUBRP (Lisp_Object a)
-{
-  return PSEUDOVECTORP (a, PVEC_SUBR);
-}
-
-INLINE bool
 COMPILEDP (Lisp_Object a)
 {
   return PSEUDOVECTORP (a, PVEC_COMPILED);
 }
 
 INLINE bool
-BUFFERP (Lisp_Object a)
-{
-  return PSEUDOVECTORP (a, PVEC_BUFFER);
-}
-
-INLINE bool
-CHAR_TABLE_P (Lisp_Object a)
-{
-  return PSEUDOVECTORP (a, PVEC_CHAR_TABLE);
-}
-
-INLINE bool
-SUB_CHAR_TABLE_P (Lisp_Object a)
-{
-  return PSEUDOVECTORP (a, PVEC_SUB_CHAR_TABLE);
-}
-
-INLINE bool
-BOOL_VECTOR_P (Lisp_Object a)
-{
-  return PSEUDOVECTORP (a, PVEC_BOOL_VECTOR);
-}
-
-INLINE bool
 FRAMEP (Lisp_Object a)
 {
   return PSEUDOVECTORP (a, PVEC_FRAME);
 }
 
-INLINE bool
-THREADP (Lisp_Object a)
-{
-  return PSEUDOVECTORP (a, PVEC_THREAD);
-}
-
-INLINE bool
-MUTEXP (Lisp_Object a)
-{
-  return PSEUDOVECTORP (a, PVEC_MUTEX);
-}
-
-INLINE bool
-CONDVARP (Lisp_Object a)
-{
-  return PSEUDOVECTORP (a, PVEC_CONDVAR);
-}
-
 /* Test for image (image . spec)  */
 INLINE bool
 IMAGEP (Lisp_Object x)
@@ -2860,15 +2756,9 @@ CHECK_LIST (Lisp_Object x)
 }
 
 INLINE void
-(CHECK_LIST_CONS) (Lisp_Object x, Lisp_Object y)
+CHECK_LIST_END (Lisp_Object x, Lisp_Object y)
 {
-  lisp_h_CHECK_LIST_CONS (x, y);
-}
-
-INLINE void
-(CHECK_SYMBOL) (Lisp_Object x)
-{
- lisp_h_CHECK_SYMBOL (x);
+  CHECK_TYPE (NILP (x), Qlistp, y);
 }
 
 INLINE void
@@ -2878,26 +2768,11 @@ INLINE void
 }
 
 INLINE void
-CHECK_STRING (Lisp_Object x)
-{
-  CHECK_TYPE (STRINGP (x), Qstringp, x);
-}
-INLINE void
 CHECK_STRING_CAR (Lisp_Object x)
 {
   CHECK_TYPE (STRINGP (XCAR (x)), Qstringp, XCAR (x));
 }
 INLINE void
-CHECK_CONS (Lisp_Object x)
-{
-  CHECK_TYPE (CONSP (x), Qconsp, x);
-}
-INLINE void
-CHECK_VECTOR (Lisp_Object x)
-{
-  CHECK_TYPE (VECTORP (x), Qvectorp, x);
-}
-INLINE void
 CHECK_COMPILED (Lisp_Object x)
 {
   CHECK_TYPE (COMPILEDP (x), Qcompiledp, x);
@@ -2923,23 +2798,6 @@ CHECK_ARRAY (Lisp_Object x, Lisp_Object predicate)
   CHECK_TYPE (ARRAYP (x), predicate, x);
 }
 INLINE void
-CHECK_BUFFER (Lisp_Object x)
-{
-  CHECK_TYPE (BUFFERP (x), Qbufferp, x);
-}
-INLINE void
-CHECK_WINDOW (Lisp_Object x)
-{
-  CHECK_TYPE (WINDOWP (x), Qwindowp, x);
-}
-#ifdef subprocesses
-INLINE void
-CHECK_PROCESS (Lisp_Object x)
-{
-  CHECK_TYPE (PROCESSP (x), Qprocessp, x);
-}
-#endif
-INLINE void
 CHECK_NATNUM (Lisp_Object x)
 {
   CHECK_TYPE (NATNUMP (x), Qwholenump, x);
@@ -2992,25 +2850,6 @@ CHECK_NUMBER_OR_FLOAT (Lisp_Object x)
       CHECK_TYPE (NUMBERP (x), Qnumber_or_marker_p, x);                        
\
   } while (false)
 
-
-INLINE void
-CHECK_THREAD (Lisp_Object x)
-{
-  CHECK_TYPE (THREADP (x), Qthreadp, x);
-}
-
-INLINE void
-CHECK_MUTEX (Lisp_Object x)
-{
-  CHECK_TYPE (MUTEXP (x), Qmutexp, x);
-}
-
-INLINE void
-CHECK_CONDVAR (Lisp_Object x)
-{
-  CHECK_TYPE (CONDVARP (x), Qcondition_variable_p, x);
-}
-
 /* Since we can't assign directly to the CAR or CDR fields of a cons
    cell, use these when checking that those fields contain numbers.  */
 INLINE void
@@ -3294,39 +3133,29 @@ struct handler
   ptrdiff_t pdlcount;
   int poll_suppress_count;
   int interrupt_input_blocked;
-  struct byte_stack *byte_stack;
 };
 
 extern Lisp_Object memory_signal_data;
 
-/* Check quit-flag and quit if it is non-nil.
-   Typing C-g does not directly cause a quit; it only sets Vquit_flag.
-   So the program needs to do QUIT at times when it is safe to quit.
-   Every loop that might run for a long time or might not exit
-   ought to do QUIT at least once, at a safe place.
-   Unless that is impossible, of course.
-   But it is very desirable to avoid creating loops where QUIT is impossible.
+/* Check quit-flag and quit if it is non-nil.  Typing C-g does not
+   directly cause a quit; it only sets Vquit_flag.  So the program
+   needs to call maybe_quit at times when it is safe to quit.  Every
+   loop that might run for a long time or might not exit ought to call
+   maybe_quit at least once, at a safe place.  Unless that is
+   impossible, of course.  But it is very desirable to avoid creating
+   loops where maybe_quit is impossible.
 
-   Exception: if you set immediate_quit to true,
-   then the handler that responds to the C-g does the quit itself.
-   This is a good thing to do around a loop that has no side effects
-   and (in particular) cannot call arbitrary Lisp code.
+   Exception: if you set immediate_quit, the handler that responds to
+   the C-g does the quit itself.  This is a good thing to do around a
+   loop that has no side effects and (in particular) cannot call
+   arbitrary Lisp code.
 
    If quit-flag is set to `kill-emacs' the SIGINT handler has received
-   a request to exit Emacs when it is safe to do.  */
+   a request to exit Emacs when it is safe to do.
 
-extern void process_pending_signals (void);
-extern bool volatile pending_signals;
-
-extern void process_quit_flag (void);
-#define QUIT                                           \
-  do {                                                 \
-    if (!NILP (Vquit_flag) && NILP (Vinhibit_quit))    \
-      process_quit_flag ();                            \
-    else if (pending_signals)                          \
-      process_pending_signals ();                      \
-  } while (false)
+   When not quitting, process any pending signals.  */
 
+extern void maybe_quit (void);
 
 /* True if ought to quit now.  */
 
@@ -3393,7 +3222,7 @@ make_symbol_constant (Lisp_Object sym)
   XSYMBOL (sym)->trapped_write = SYMBOL_NOWRITE;
 }
 
-/* Buffer-local (also frame-local) variable access functions.  */
+/* Buffer-local variable access functions.  */
 
 INLINE int
 blv_found (struct Lisp_Buffer_Local_Value *blv)
@@ -3463,6 +3292,9 @@ set_sub_char_table_contents (Lisp_Object table, ptrdiff_t 
idx, Lisp_Object val)
 }
 
 /* Defined in data.c.  */
+extern _Noreturn void wrong_choice (Lisp_Object, Lisp_Object);
+extern void notify_variable_watchers (Lisp_Object, Lisp_Object,
+                                     Lisp_Object, Lisp_Object);
 extern Lisp_Object indirect_function (Lisp_Object);
 extern Lisp_Object find_symbol_value (Lisp_Object);
 enum Arith_Comparison {
@@ -3550,7 +3382,7 @@ extern void sweep_weak_hash_tables (void);
 EMACS_UINT hash_string (char const *, ptrdiff_t);
 EMACS_UINT sxhash (Lisp_Object, int);
 Lisp_Object make_hash_table (struct hash_table_test, Lisp_Object, Lisp_Object,
-                             Lisp_Object, Lisp_Object);
+                             Lisp_Object, Lisp_Object, Lisp_Object);
 ptrdiff_t hash_lookup (struct Lisp_Hash_Table *, Lisp_Object, EMACS_UINT *);
 ptrdiff_t hash_put (struct Lisp_Hash_Table *, Lisp_Object, Lisp_Object,
                    EMACS_UINT);
@@ -4041,7 +3873,7 @@ extern Lisp_Object safe_call1 (Lisp_Object, Lisp_Object);
 extern Lisp_Object safe_call2 (Lisp_Object, Lisp_Object, Lisp_Object);
 extern void init_eval (void);
 extern void syms_of_eval (void);
-extern void unwind_body (Lisp_Object);
+extern void prog_ignore (Lisp_Object);
 extern ptrdiff_t record_in_backtrace (Lisp_Object, Lisp_Object *, ptrdiff_t);
 extern void mark_specpdl (union specbinding *first, union specbinding *ptr);
 extern void get_backtrace (Lisp_Object array);
@@ -4054,7 +3886,6 @@ extern bool let_shadows_global_binding_p (Lisp_Object 
symbol);
 extern Lisp_Object make_user_ptr (void (*finalizer) (void *), void *p);
 
 /* Defined in emacs-module.c.  */
-extern void module_init (void);
 extern void syms_of_module (void);
 #endif
 
@@ -4285,6 +4116,7 @@ extern bool inhibit_window_system;
 extern bool running_asynch_code;
 
 /* Defined in process.c.  */
+struct Lisp_Process;
 extern void kill_buffer_processes (Lisp_Object);
 extern int wait_reading_process_output (intmax_t, int, int, bool, Lisp_Object,
                                        struct Lisp_Process *, int);
diff --git a/src/lread.c b/src/lread.c
index 39f98fe..0a818c3 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1,6 +1,6 @@
 /* Lisp parsing and input streams.
 
-Copyright (C) 1985-1989, 1993-1995, 1997-2016 Free Software Foundation,
+Copyright (C) 1985-1989, 1993-1995, 1997-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
@@ -451,7 +451,7 @@ readbyte_from_file (int c, Lisp_Object readcharfun)
   while (c == EOF && ferror (instream) && errno == EINTR)
     {
       unblock_input ();
-      QUIT;
+      maybe_quit ();
       block_input ();
       clearerr (instream);
       c = getc (instream);
@@ -1702,14 +1702,14 @@ build_load_history (Lisp_Object filename, bool entire)
                                          Fcons (newelt, XCDR (tem))));
 
                  tem2 = XCDR (tem2);
-                 QUIT;
+                 maybe_quit ();
                }
            }
        }
       else
        prev = tail;
       tail = XCDR (tail);
-      QUIT;
+      maybe_quit ();
     }
 
   /* If we're loading an entire file, cons the new assoc onto the
@@ -2536,7 +2536,7 @@ read_integer (Lisp_Object readcharfun, EMACS_INT radix)
       *p = '\0';
     }
 
-  if (! valid)
+  if (valid != 1)
     {
       sprintf (buf, "integer, radix %"pI"d", radix);
       invalid_syntax (buf);
@@ -2599,7 +2599,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool 
first_in_list)
              Lisp_Object val = Qnil;
              /* The size is 2 * number of allowed keywords to
                 make-hash-table.  */
-             Lisp_Object params[10];
+             Lisp_Object params[12];
              Lisp_Object ht;
              Lisp_Object key = Qnil;
              int param_count = 0;
@@ -2636,6 +2636,11 @@ read1 (Lisp_Object readcharfun, int *pch, bool 
first_in_list)
              if (!NILP (params[param_count + 1]))
                param_count += 2;
 
+              params[param_count] = QCpurecopy;
+              params[param_count + 1] = Fplist_get (tmp, Qpurecopy);
+              if (!NILP (params[param_count + 1]))
+                param_count += 2;
+
              /* This is the hash table data.  */
              data = Fplist_get (tmp, Qdata);
 
@@ -4116,7 +4121,7 @@ OBARRAY defaults to the value of `obarray'.  */)
   return Qnil;
 }
 
-#define OBARRAY_SIZE 1511
+#define OBARRAY_SIZE 15121
 
 void
 init_obarray (void)
@@ -4849,6 +4854,7 @@ that are loaded before your customizations are read!  */);
   DEFSYM (Qdata, "data");
   DEFSYM (Qtest, "test");
   DEFSYM (Qsize, "size");
+  DEFSYM (Qpurecopy, "purecopy");
   DEFSYM (Qweakness, "weakness");
   DEFSYM (Qrehash_size, "rehash-size");
   DEFSYM (Qrehash_threshold, "rehash-threshold");
diff --git a/src/macfont.h b/src/macfont.h
index 8f73452..3289990 100644
--- a/src/macfont.h
+++ b/src/macfont.h
@@ -1,5 +1,5 @@
 /* Interface definition for macOS Core text font backend.
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/macfont.m b/src/macfont.m
index 855b3fe..f356842 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -1,5 +1,5 @@
 /* Font driver on macOS Core text.
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/macros.c b/src/macros.c
index 0c703ba..f0ffda3 100644
--- a/src/macros.c
+++ b/src/macros.c
@@ -1,6 +1,6 @@
 /* Keyboard macros.
 
-Copyright (C) 1985-1986, 1993, 2000-2016 Free Software Foundation, Inc.
+Copyright (C) 1985-1986, 1993, 2000-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -325,7 +325,7 @@ each iteration of the macro.  Iteration stops if LOOPFUNC 
returns nil.  */)
 
       executing_kbd_macro_iterations = ++success_count;
 
-      QUIT;
+      maybe_quit ();
     }
   while (--repeat
         && (STRINGP (Vexecuting_kbd_macro) || VECTORP (Vexecuting_kbd_macro)));
diff --git a/src/macros.h b/src/macros.h
index 6c66c4a..31aece4 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -1,5 +1,5 @@
 /* Definitions for keyboard macro interpretation in GNU Emacs.
-   Copyright (C) 1985, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1985, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/marker.c b/src/marker.c
index 05e5bb8..f0c357f 100644
--- a/src/marker.c
+++ b/src/marker.c
@@ -1,5 +1,5 @@
 /* Markers: examining, setting and deleting.
-   Copyright (C) 1985, 1997-1998, 2001-2016 Free Software Foundation,
+   Copyright (C) 1985, 1997-1998, 2001-2017 Free Software Foundation,
    Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/menu.c b/src/menu.c
index 8070967..14272dc 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -1,6 +1,6 @@
 /* Platform-independent code for terminal communications.
 
-Copyright (C) 1986, 1988, 1993-1994, 1996, 1999-2016 Free Software
+Copyright (C) 1986, 1988, 1993-1994, 1996, 1999-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/menu.h b/src/menu.h
index 4c50efb..2bb79ee 100644
--- a/src/menu.h
+++ b/src/menu.h
@@ -1,5 +1,5 @@
 /* Functions to manipulate menus.
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/minibuf.c b/src/minibuf.c
index 7c5af34..1bbe276 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -1,6 +1,6 @@
 /* Minibuffer input and completion.
 
-Copyright (C) 1985-1986, 1993-2016 Free Software Foundation, Inc.
+Copyright (C) 1985-1986, 1993-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -1865,7 +1865,7 @@ single string, rather than a cons cell whose car is a 
string.  */)
                              case_fold);
       if (EQ (tem, Qt))
        return elt;
-      QUIT;
+      maybe_quit ();
     }
   return Qnil;
 }
diff --git a/src/msdos.c b/src/msdos.c
index 74109ae..87b6f84 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -1,6 +1,6 @@
 /* MS-DOS specific C utilities.          -*- coding: cp850 -*-
 
-Copyright (C) 1993-1997, 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1993-1997, 1999-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/msdos.h b/src/msdos.h
index 0c3ba2b..f4312c5 100644
--- a/src/msdos.h
+++ b/src/msdos.h
@@ -1,5 +1,5 @@
 /* MS-DOS specific C utilities, interface.
-   Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/nsfns.m b/src/nsfns.m
index cfaaf53..a709935 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -1,6 +1,6 @@
 /* Functions for the NeXT/Open/GNUstep and macOS window system.
 
-Copyright (C) 1989, 1992-1994, 2005-2006, 2008-2016 Free Software
+Copyright (C) 1989, 1992-1994, 2005-2006, 2008-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/nsfont.m b/src/nsfont.m
index 757b217..d9cae8c 100644
--- a/src/nsfont.m
+++ b/src/nsfont.m
@@ -1,6 +1,6 @@
 /* Font back-end driver for the NeXT/Open/GNUstep and macOS window system.
    See font.h
-   Copyright (C) 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/nsgui.h b/src/nsgui.h
index 8dac1bd..a06eecf 100644
--- a/src/nsgui.h
+++ b/src/nsgui.h
@@ -1,5 +1,5 @@
 /* Definitions and headers for communication on the NeXT/Open/GNUstep API.
-   Copyright (C) 1995, 2005, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2005, 2008-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/nsimage.m b/src/nsimage.m
index 32bcea7..5136791 100644
--- a/src/nsimage.m
+++ b/src/nsimage.m
@@ -1,5 +1,5 @@
 /* Image support for the NeXT/Open/GNUstep and macOS window system.
-   Copyright (C) 1989, 1992-1994, 2005-2006, 2008-2016 Free Software
+   Copyright (C) 1989, 1992-1994, 2005-2006, 2008-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/nsmenu.m b/src/nsmenu.m
index 3e9887a..5c6442a 100644
--- a/src/nsmenu.m
+++ b/src/nsmenu.m
@@ -1,5 +1,5 @@
 /* NeXT/Open/GNUstep and macOS Cocoa menu and toolbar module.
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/nsselect.m b/src/nsselect.m
index b7c9148..8b38dae 100644
--- a/src/nsselect.m
+++ b/src/nsselect.m
@@ -1,5 +1,5 @@
 /* NeXT/Open/GNUstep / macOS Cocoa selection processing for emacs.
-   Copyright (C) 1993-1994, 2005-2006, 2008-2016 Free Software
+   Copyright (C) 1993-1994, 2005-2006, 2008-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/nsterm.h b/src/nsterm.h
index 35c6e1a..534ec68 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -1,5 +1,5 @@
 /* Definitions and headers for communication with NeXT/Open/GNUstep API.
-   Copyright (C) 1989, 1993, 2005, 2008-2016 Free Software Foundation,
+   Copyright (C) 1989, 1993, 2005, 2008-2017 Free Software Foundation,
    Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/nsterm.m b/src/nsterm.m
index 7e6ec85..63f1b15 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1,6 +1,6 @@
 /* NeXT/Open/GNUstep / macOS communication module.      -*- coding: utf-8 -*-
 
-Copyright (C) 1989, 1993-1994, 2005-2006, 2008-2016 Free Software
+Copyright (C) 1989, 1993-1994, 2005-2006, 2008-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -290,7 +290,6 @@ static int select_nfds = 0, select_valid = 0;
 static struct timespec select_timeout = { 0, 0 };
 static int selfds[2] = { -1, -1 };
 static pthread_mutex_t select_mutex;
-static int apploopnr = 0;
 static NSAutoreleasePool *outerpool;
 static struct input_event *emacs_event = NULL;
 static struct input_event *q_event_ptr = NULL;
@@ -4011,15 +4010,6 @@ ns_check_pending_open_menu ()
 }
 #endif /* NS_IMPL_COCOA */
 
-static void
-unwind_apploopnr (Lisp_Object not_used)
-{
-  --apploopnr;
-  n_emacs_events_pending = 0;
-  ns_finish_events ();
-  q_event_ptr = NULL;
-}
-
 static int
 ns_read_socket (struct terminal *terminal, struct input_event *hold_quit)
 /* --------------------------------------------------------------------------
@@ -4033,9 +4023,6 @@ ns_read_socket (struct terminal *terminal, struct 
input_event *hold_quit)
 
   NSTRACE_WHEN (NSTRACE_GROUP_EVENTS, "ns_read_socket");
 
-  if (apploopnr > 0)
-    return -1; /* Already within event loop. */
-
 #ifdef HAVE_NATIVE_FS
   check_native_fs ();
 #endif
@@ -4052,54 +4039,51 @@ ns_read_socket (struct terminal *terminal, struct 
input_event *hold_quit)
       return i;
     }
 
-  block_input ();
-  n_emacs_events_pending = 0;
-  ns_init_events (&ev);
-  q_event_ptr = hold_quit;
-
-  /* we manage autorelease pools by allocate/reallocate each time around
-     the loop; strict nesting is occasionally violated but seems not to
-     matter.. earlier methods using full nesting caused major memory leaks */
-  [outerpool release];
-  outerpool = [[NSAutoreleasePool alloc] init];
-
-  /* If have pending open-file requests, attend to the next one of those. */
-  if (ns_pending_files && [ns_pending_files count] != 0
-      && [(EmacsApp *)NSApp openFile: [ns_pending_files objectAtIndex: 0]])
-    {
-      [ns_pending_files removeObjectAtIndex: 0];
-    }
-  /* Deal with pending service requests. */
-  else if (ns_pending_service_names && [ns_pending_service_names count] != 0
-    && [(EmacsApp *)
-         NSApp fulfillService: [ns_pending_service_names objectAtIndex: 0]
-                      withArg: [ns_pending_service_args objectAtIndex: 0]])
-    {
-      [ns_pending_service_names removeObjectAtIndex: 0];
-      [ns_pending_service_args removeObjectAtIndex: 0];
-    }
-  else
+  if ([NSThread isMainThread])
     {
-      ptrdiff_t specpdl_count = SPECPDL_INDEX ();
-      /* Run and wait for events.  We must always send one NX_APPDEFINED event
-         to ourself, otherwise [NXApp run] will never exit.  */
-      send_appdefined = YES;
-      ns_send_appdefined (-1);
-
-      if (++apploopnr != 1)
+      block_input ();
+      n_emacs_events_pending = 0;
+      ns_init_events (&ev);
+      q_event_ptr = hold_quit;
+
+      /* we manage autorelease pools by allocate/reallocate each time around
+         the loop; strict nesting is occasionally violated but seems not to
+         matter.. earlier methods using full nesting caused major memory leaks 
*/
+      [outerpool release];
+      outerpool = [[NSAutoreleasePool alloc] init];
+
+      /* If have pending open-file requests, attend to the next one of those. 
*/
+      if (ns_pending_files && [ns_pending_files count] != 0
+          && [(EmacsApp *)NSApp openFile: [ns_pending_files objectAtIndex: 0]])
         {
-          emacs_abort ();
+          [ns_pending_files removeObjectAtIndex: 0];
         }
-      record_unwind_protect (unwind_apploopnr, Qt);
-      [NSApp run];
-      unbind_to (specpdl_count, Qnil);  /* calls unwind_apploopnr */
-    }
+      /* Deal with pending service requests. */
+      else if (ns_pending_service_names && [ns_pending_service_names count] != 0
+               && [(EmacsApp *)
+                    NSApp fulfillService: [ns_pending_service_names 
objectAtIndex: 0]
+                                 withArg: [ns_pending_service_args 
objectAtIndex: 0]])
+        {
+          [ns_pending_service_names removeObjectAtIndex: 0];
+          [ns_pending_service_args removeObjectAtIndex: 0];
+        }
+      else
+        {
+          ptrdiff_t specpdl_count = SPECPDL_INDEX ();
+          /* Run and wait for events.  We must always send one NX_APPDEFINED 
event
+             to ourself, otherwise [NXApp run] will never exit.  */
+          send_appdefined = YES;
+          ns_send_appdefined (-1);
 
-  nevents = n_emacs_events_pending;
-  n_emacs_events_pending = 0;
-  ns_finish_events ();
-  q_event_ptr = NULL;
-  unblock_input ();
+          [NSApp run];
+        }
+
+      nevents = n_emacs_events_pending;
+      n_emacs_events_pending = 0;
+      ns_finish_events ();
+      q_event_ptr = NULL;
+      unblock_input ();
+    }
 
   return nevents;
 }
@@ -4120,9 +4104,6 @@ ns_select (int nfds, fd_set *readfds, fd_set *writefds,
 
   NSTRACE_WHEN (NSTRACE_GROUP_EVENTS, "ns_select");
 
-  if (apploopnr > 0)
-    return -1; /* Already within event loop. */
-
 #ifdef HAVE_NATIVE_FS
   check_native_fs ();
 #endif
@@ -4142,6 +4123,7 @@ ns_select (int nfds, fd_set *readfds, fd_set *writefds,
     }
 
   if (NSApp == nil
+      || ![NSThread isMainThread]
       || (timeout && timeout->tv_sec == 0 && timeout->tv_nsec == 0))
     return pselect (nfds, readfds, writefds, exceptfds, timeout, sigmask);
 
@@ -4198,17 +4180,8 @@ ns_select (int nfds, fd_set *readfds, fd_set *writefds,
 
   block_input ();
   ns_init_events (&event);
-  if (++apploopnr != 1)
-    {
-      emacs_abort ();
-    }
 
-  {
-    ptrdiff_t specpdl_count = SPECPDL_INDEX ();
-    record_unwind_protect (unwind_apploopnr, Qt);
-    [NSApp run];
-    unbind_to (specpdl_count, Qnil);  /* calls unwind_apploopnr */
-  }
+  [NSApp run];
 
   ns_finish_events ();
   if (nr > 0 && readfds)
diff --git a/src/print.c b/src/print.c
index 6c350fc..db3d00f 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1,6 +1,6 @@
 /* Lisp object printing and output streams.
 
-Copyright (C) 1985-1986, 1988, 1993-1995, 1997-2016 Free Software
+Copyright (C) 1985-1986, 1988, 1993-1995, 1997-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -279,7 +279,7 @@ printchar (unsigned int ch, Lisp_Object fun)
       unsigned char str[MAX_MULTIBYTE_LENGTH];
       int len = CHAR_STRING (ch, str);
 
-      QUIT;
+      maybe_quit ();
 
       if (NILP (fun))
        {
@@ -1352,7 +1352,7 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, 
bool escapeflag)
                max (sizeof " . #" + INT_STRLEN_BOUND (printmax_t),
                     40))];
 
-  QUIT;
+  maybe_quit ();
 
   /* Detect circularities and truncate them.  */
   if (NILP (Vprint_circle))
@@ -1446,7 +1446,7 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, 
bool escapeflag)
 
              FETCH_STRING_CHAR_ADVANCE (c, obj, i, i_byte);
 
-             QUIT;
+             maybe_quit ();
 
              if (multibyte
                  ? (CHAR_BYTE8_P (c) && (c = CHAR_TO_BYTE8 (c), true))
@@ -1550,7 +1550,7 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, 
bool escapeflag)
            /* Here, we must convert each multi-byte form to the
               corresponding character code before handing it to PRINTCHAR.  */
            FETCH_STRING_CHAR_ADVANCE (c, name, i, i_byte);
-           QUIT;
+           maybe_quit ();
 
            if (escapeflag)
              {
@@ -1707,7 +1707,7 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, 
bool escapeflag)
 
          for (i = 0; i < size_in_chars; i++)
            {
-             QUIT;
+             maybe_quit ();
              c = bool_vector_uchar_data (obj)[i];
              if (c == '\n' && print_escape_newlines)
                print_c_string ("\\n", printcharfun);
@@ -1818,6 +1818,12 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, 
bool escapeflag)
              print_object (h->rehash_threshold, printcharfun, escapeflag);
            }
 
+          if (!NILP (h->pure))
+            {
+              print_c_string (" purecopy ", printcharfun);
+             print_object (h->pure, printcharfun, escapeflag);
+            }
+
          print_c_string (" data ", printcharfun);
 
          /* Print the data here as a plist. */
diff --git a/src/process.c b/src/process.c
index 9139a36..dbd4358 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1,6 +1,6 @@
 /* Asynchronous subprocess control for GNU Emacs.
 
-Copyright (C) 1985-1988, 1993-1996, 1998-1999, 2001-2016 Free Software
+Copyright (C) 1985-1988, 1993-1996, 1998-1999, 2001-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -3431,8 +3431,8 @@ connect_network_socket (Lisp_Object proc, Lisp_Object 
addrinfos,
          break;
        }
 
-      immediate_quit = 1;
-      QUIT;
+      immediate_quit = true;
+      maybe_quit ();
 
       ret = connect (s, sa, addrlen);
       xerrno = errno;
@@ -3459,7 +3459,7 @@ connect_network_socket (Lisp_Object proc, Lisp_Object 
addrinfos,
        retry_select:
          FD_ZERO (&fdset);
          FD_SET (s, &fdset);
-         QUIT;
+         maybe_quit ();
          sc = pselect (s + 1, NULL, &fdset, NULL, NULL, NULL);
          if (sc == -1)
            {
@@ -3481,7 +3481,7 @@ connect_network_socket (Lisp_Object proc, Lisp_Object 
addrinfos,
        }
 #endif /* !WINDOWSNT */
 
-      immediate_quit = 0;
+      immediate_quit = false;
 
       /* Discard the unwind protect closing S.  */
       specpdl_ptr = specpdl + count;
@@ -3539,7 +3539,7 @@ connect_network_socket (Lisp_Object proc, Lisp_Object 
addrinfos,
 #endif
     }
 
-  immediate_quit = 0;
+  immediate_quit = false;
 
   if (s < 0)
     {
@@ -4012,8 +4012,8 @@ usage: (make-network-process &rest ARGS)  */)
       struct addrinfo *res, *lres;
       int ret;
 
-      immediate_quit = 1;
-      QUIT;
+      immediate_quit = true;
+      maybe_quit ();
 
       struct addrinfo hints;
       memset (&hints, 0, sizeof hints);
@@ -4034,7 +4034,7 @@ usage: (make-network-process &rest ARGS)  */)
 #else
        error ("%s/%s getaddrinfo error %d", SSDATA (host), portstring, ret);
 #endif
-      immediate_quit = 0;
+      immediate_quit = false;
 
       for (lres = res; lres; lres = lres->ai_next)
        addrinfos = Fcons (conv_addrinfo_to_lisp (lres), addrinfos);
@@ -4557,23 +4557,22 @@ from PROCESS only, suspending reading output from other 
processes.
 If JUST-THIS-ONE is an integer, don't run any timers either.
 Return non-nil if we received any output from PROCESS (or, if PROCESS
 is nil, from any process) before the timeout expired.  */)
-  (register Lisp_Object process, Lisp_Object seconds, Lisp_Object millisec, 
Lisp_Object just_this_one)
+  (Lisp_Object process, Lisp_Object seconds, Lisp_Object millisec,
+   Lisp_Object just_this_one)
 {
   intmax_t secs;
   int nsecs;
 
   if (! NILP (process))
     {
-      struct Lisp_Process *procp;
-
       CHECK_PROCESS (process);
-      procp = XPROCESS (process);
+      struct Lisp_Process *proc = XPROCESS (process);
 
       /* Can't wait for a process that is dedicated to a different
         thread.  */
-      if (!EQ (procp->thread, Qnil) && !EQ (procp->thread, Fcurrent_thread ()))
+      if (!EQ (proc->thread, Qnil) && !EQ (proc->thread, Fcurrent_thread ()))
        error ("Attempt to accept output from process %s locked to thread %s",
-              SDATA (procp->name), SDATA (XTHREAD (procp->thread)->name));
+              SDATA (proc->name), SDATA (XTHREAD (proc->thread)->name));
     }
   else
     just_this_one = Qnil;
@@ -5021,7 +5020,7 @@ wait_reading_process_output (intmax_t time_limit, int 
nsecs, int read_kbd,
         since we want to return C-g as an input character.
         Otherwise, do pending quit if requested.  */
       if (read_kbd >= 0)
-       QUIT;
+       maybe_quit ();
       else if (pending_signals)
        process_pending_signals ();
 
@@ -5342,18 +5341,23 @@ wait_reading_process_output (intmax_t time_limit, int 
nsecs, int read_kbd,
            }
 #endif
 
+/* Non-macOS HAVE_GLIB builds call thread_select in xgselect.c.  */
+#if defined HAVE_GLIB && !defined HAVE_NS
+         nfds = xg_select (max_desc + 1,
+                           &Available, (check_write ? &Writeok : 0),
+                           NULL, &timeout, NULL);
+#else  /* !HAVE_GLIB */
          nfds = thread_select (
-#if defined (HAVE_NS)
+# ifdef HAVE_NS
                                ns_select
-#elif defined (HAVE_GLIB)
-                               xg_select
-#else
+# else
                                pselect
-#endif
+# endif
                                , max_desc + 1,
                                &Available,
                                (check_write ? &Writeok : 0),
                                NULL, &timeout, NULL);
+#endif /* !HAVE_GLIB */
 
 #ifdef HAVE_GNUTLS
           /* GnuTLS buffers data internally.  In lowat mode it leaves
@@ -5744,7 +5748,7 @@ wait_reading_process_output (intmax_t time_limit, int 
nsecs, int read_kbd,
     {
       /* Prevent input_pending from remaining set if we quit.  */
       clear_input_pending ();
-      QUIT;
+      maybe_quit ();
     }
 
   return got_some_output;
@@ -7482,7 +7486,7 @@ wait_reading_process_output (intmax_t time_limit, int 
nsecs, int read_kbd,
         since we want to return C-g as an input character.
         Otherwise, do pending quit if requested.  */
       if (read_kbd >= 0)
-       QUIT;
+       maybe_quit ();
 
       /* Exit now if the cell we're waiting for became non-nil.  */
       if (! NILP (wait_for_cell) && ! NILP (XCAR (wait_for_cell)))
diff --git a/src/process.h b/src/process.h
index e497ebc..2c174cc 100644
--- a/src/process.h
+++ b/src/process.h
@@ -1,5 +1,5 @@
 /* Definitions for asynchronous process control in GNU Emacs.
-   Copyright (C) 1985, 1994, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1985, 1994, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -202,6 +202,25 @@ struct Lisp_Process
 #endif
 };
 
+INLINE bool
+PROCESSP (Lisp_Object a)
+{
+  return PSEUDOVECTORP (a, PVEC_PROCESS);
+}
+
+INLINE void
+CHECK_PROCESS (Lisp_Object x)
+{
+  CHECK_TYPE (PROCESSP (x), Qprocessp, x);
+}
+
+INLINE struct Lisp_Process *
+XPROCESS (Lisp_Object a)
+{
+  eassert (PROCESSP (a));
+  return XUNTAG (a, Lisp_Vectorlike);
+}
+
 /* Every field in the preceding structure except for the first two
    must be a Lisp_Object, for GC's sake.  */
 
diff --git a/src/profiler.c b/src/profiler.c
index 07e21ae..a223a7e 100644
--- a/src/profiler.c
+++ b/src/profiler.c
@@ -1,6 +1,6 @@
 /* Profiler implementation.
 
-Copyright (C) 2012-2016 Free Software Foundation, Inc.
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -48,7 +48,7 @@ make_log (EMACS_INT heap_size, EMACS_INT max_stack_depth)
                                     make_number (heap_size),
                                     make_float (DEFAULT_REHASH_SIZE),
                                     make_float (DEFAULT_REHASH_THRESHOLD),
-                                    Qnil);
+                                    Qnil, Qnil);
   struct Lisp_Hash_Table *h = XHASH_TABLE (log);
 
   /* What is special about our hash-tables is that the keys are pre-filled
@@ -174,8 +174,8 @@ record_backtrace (log_t *log, EMACS_INT count)
           some global flag so that some Elisp code can offload its
           data elsewhere, so as to avoid the eviction code.
           There are 2 ways to do that, AFAICT:
-          - Set a flag checked in QUIT, such that QUIT can then call
-            Fprofiler_cpu_log and stash the full log for later use.
+          - Set a flag checked in maybe_quit, such that maybe_quit can then
+            call Fprofiler_cpu_log and stash the full log for later use.
           - Set a flag check in post-gc-hook, so that Elisp code can call
             profiler-cpu-log.  That gives us more flexibility since that
             Elisp code can then do all kinds of fun stuff like write
diff --git a/src/puresize.h b/src/puresize.h
index da827ed..b90b697 100644
--- a/src/puresize.h
+++ b/src/puresize.h
@@ -1,5 +1,5 @@
 /* How much read-only Lisp storage a dumped Emacs needs.
-   Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/ralloc.c b/src/ralloc.c
index 2faa42e..8a3d2b7 100644
--- a/src/ralloc.c
+++ b/src/ralloc.c
@@ -1,5 +1,5 @@
 /* Block-relocating memory allocator.
-   Copyright (C) 1993, 1995, 2000-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993, 1995, 2000-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/regex.c b/src/regex.c
index f1686cf..f6e67af 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -2,7 +2,7 @@
    0.12.  (Implements POSIX draft P1003.2/D11.2, except for some of the
    internationalization features.)
 
-   Copyright (C) 1993-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993-2017 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
@@ -310,11 +310,12 @@ enum syntaxcode { Swhitespace = 0, Sword = 1, Ssymbol = 2 
};
                     || ((c) >= 'a' && (c) <= 'f')      \
                     || ((c) >= 'A' && (c) <= 'F'))
 
-/* This is only used for single-byte characters.  */
-# define ISBLANK(c) ((c) == ' ' || (c) == '\t')
-
 /* The rest must handle multibyte characters.  */
 
+# define ISBLANK(c) (IS_REAL_ASCII (c)                  \
+                     ? ((c) == ' ' || (c) == '\t')      \
+                     : blankp (c))
+
 # define ISGRAPH(c) (SINGLE_BYTE_CHAR_P (c)                            \
                     ? (c) > ' ' && !((c) >= 0177 && (c) <= 0240)       \
                     : graphicp (c))
@@ -430,9 +431,12 @@ init_syntax_once (void)
 
 /* Should we use malloc or alloca?  If REGEX_MALLOC is not defined, we
    use `alloca' instead of `malloc'.  This is because using malloc in
-   re_search* or re_match* could cause memory leaks when C-g is used in
-   Emacs; also, malloc is slower and causes storage fragmentation.  On
-   the other hand, malloc is more portable, and easier to debug.
+   re_search* or re_match* could cause memory leaks when C-g is used
+   in Emacs (note that SAFE_ALLOCA could also call malloc, but does so
+   via `record_xmalloc' which uses `unwind_protect' to ensure the
+   memory is freed even in case of non-local exits); also, malloc is
+   slower and causes storage fragmentation.  On the other hand, malloc
+   is more portable, and easier to debug.
 
    Because we sometimes use alloca, some routines have to be macros,
    not functions -- `alloca'-allocated space disappears at the end of the
@@ -447,7 +451,13 @@ init_syntax_once (void)
 #else /* not REGEX_MALLOC  */
 
 # ifdef emacs
-#  define REGEX_USE_SAFE_ALLOCA USE_SAFE_ALLOCA
+/* This may be adjusted in main(), if the stack is successfully grown.  */
+ptrdiff_t emacs_re_safe_alloca = MAX_ALLOCA;
+/* Like USE_SAFE_ALLOCA, but use emacs_re_safe_alloca.  */
+#  define REGEX_USE_SAFE_ALLOCA                                        \
+  ptrdiff_t sa_avail = emacs_re_safe_alloca;                           \
+  ptrdiff_t sa_count = SPECPDL_INDEX (); bool sa_must_free = false
+
 #  define REGEX_SAFE_FREE() SAFE_FREE ()
 #  define REGEX_ALLOCATE SAFE_ALLOCA
 # else
@@ -1195,24 +1205,28 @@ static const char *re_error_msgid[] =
     gettext_noop ("Range striding over charsets") /* REG_ERANGEX  */
   };
 
-/* Avoiding alloca during matching, to placate r_alloc.  */
-
-/* Define MATCH_MAY_ALLOCATE unless we need to make sure that the
-   searching and matching functions should not call alloca.  On some
-   systems, alloca is implemented in terms of malloc, and if we're
-   using the relocating allocator routines, then malloc could cause a
-   relocation, which might (if the strings being searched are in the
-   ralloc heap) shift the data out from underneath the regexp
-   routines.
-
-   Here's another reason to avoid allocation: Emacs
-   processes input from X in a signal handler; processing X input may
-   call malloc; if input arrives while a matching routine is calling
-   malloc, then we're scrod.  But Emacs can't just block input while
-   calling matching routines; then we don't notice interrupts when
-   they come in.  So, Emacs blocks input around all regexp calls
-   except the matching calls, which it leaves unprotected, in the
-   faith that they will not malloc.  */
+/* Whether to allocate memory during matching.  */
+
+/* Define MATCH_MAY_ALLOCATE to allow the searching and matching
+   functions allocate memory for the failure stack and registers.
+   Normally should be defined, because otherwise searching and
+   matching routines will have much smaller memory resources at their
+   disposal, and therefore might fail to handle complex regexps.
+   Therefore undefine MATCH_MAY_ALLOCATE only in the following
+   exceptional situations:
+
+   . When running on a system where memory is at premium.
+   . When alloca cannot be used at all, perhaps due to bugs in
+     its implementation, or its being unavailable, or due to a
+     very small stack size.  This requires to define REGEX_MALLOC
+     to use malloc instead, which in turn could lead to memory
+     leaks if search is interrupted by a signal.  (For these
+     reasons, defining REGEX_MALLOC when building Emacs
+     automatically undefines MATCH_MAY_ALLOCATE, but outside
+     Emacs you may not care about memory leaks.)  If you want to
+     prevent the memory leaks, undefine MATCH_MAY_ALLOCATE.
+   . When code that calls the searching and matching functions
+     cannot allow memory allocation, for whatever reasons.  */
 
 /* Normally, this is fine.  */
 #define MATCH_MAY_ALLOCATE
@@ -1249,9 +1263,9 @@ static const char *re_error_msgid[] =
    whose default stack limit is 2mb.  In order for a larger
    value to work reliably, you have to try to make it accord
    with the process stack limit.  */
-size_t re_max_failures = 40000;
+size_t emacs_re_max_failures = 40000;
 # else
-size_t re_max_failures = 4000;
+size_t emacs_re_max_failures = 4000;
 # endif
 
 union fail_stack_elt
@@ -1304,7 +1318,7 @@ typedef struct
 
 
 /* Double the size of FAIL_STACK, up to a limit
-   which allows approximately `re_max_failures' items.
+   which allows approximately `emacs_re_max_failures' items.
 
    Return 1 if succeeds, and 0 if either ran out of memory
    allocating space for it or it was already too large.
@@ -1319,23 +1333,20 @@ typedef struct
 #define FAIL_STACK_GROWTH_FACTOR 4
 
 #define GROW_FAIL_STACK(fail_stack)                                    \
-  (((fail_stack).size * sizeof (fail_stack_elt_t)                      \
-    >= re_max_failures * TYPICAL_FAILURE_SIZE)                         \
+  (((fail_stack).size >= emacs_re_max_failures * TYPICAL_FAILURE_SIZE)        \
    ? 0                                                                 \
    : ((fail_stack).stack                                               \
       = REGEX_REALLOCATE_STACK ((fail_stack).stack,                    \
          (fail_stack).size * sizeof (fail_stack_elt_t),                \
-         min (re_max_failures * TYPICAL_FAILURE_SIZE,                  \
-              ((fail_stack).size * sizeof (fail_stack_elt_t)           \
-               * FAIL_STACK_GROWTH_FACTOR))),                          \
+          min (emacs_re_max_failures * TYPICAL_FAILURE_SIZE,                  \
+               ((fail_stack).size * FAIL_STACK_GROWTH_FACTOR))          \
+          * sizeof (fail_stack_elt_t)),                                 \
                                                                        \
       (fail_stack).stack == NULL                                       \
       ? 0                                                              \
       : ((fail_stack).size                                             \
-        = (min (re_max_failures * TYPICAL_FAILURE_SIZE,                \
-                ((fail_stack).size * sizeof (fail_stack_elt_t)         \
-                 * FAIL_STACK_GROWTH_FACTOR))                          \
-           / sizeof (fail_stack_elt_t)),                               \
+         = (min (emacs_re_max_failures * TYPICAL_FAILURE_SIZE,                \
+                 ((fail_stack).size * FAIL_STACK_GROWTH_FACTOR))),      \
         1)))
 
 
@@ -1718,12 +1729,9 @@ typedef struct
 /* Explicit quit checking is needed for Emacs, which uses polling to
    process input events.  */
 #ifdef emacs
-# define IMMEDIATE_QUIT_CHECK                  \
-    do {                                       \
-      if (immediate_quit) QUIT;                        \
-    } while (0)
+# define IMMEDIATE_QUIT_CHECK (immediate_quit ? maybe_quit () : (void) 0)
 #else
-# define IMMEDIATE_QUIT_CHECK    ((void)0)
+# define IMMEDIATE_QUIT_CHECK ((void) 0)
 #endif
 
 /* Structure to manage work area for range table.  */
@@ -1790,6 +1798,7 @@ struct range_table_work_area
 #define BIT_ALNUM      0x80
 #define BIT_GRAPH      0x100
 #define BIT_PRINT      0x200
+#define BIT_BLANK       0x400
 
 
 /* Set the bit for character C in a list.  */
@@ -2066,8 +2075,9 @@ re_wctype_to_bit (re_wctype_t cc)
     case RECC_SPACE: return BIT_SPACE;
     case RECC_GRAPH: return BIT_GRAPH;
     case RECC_PRINT: return BIT_PRINT;
+    case RECC_BLANK: return BIT_BLANK;
     case RECC_ASCII: case RECC_DIGIT: case RECC_XDIGIT: case RECC_CNTRL:
-    case RECC_BLANK: case RECC_UNIBYTE: case RECC_ERROR: return 0;
+    case RECC_UNIBYTE: case RECC_ERROR: return 0;
     default:
       abort ();
     }
@@ -3641,9 +3651,9 @@ regex_compile (const_re_char *pattern, size_t size,
   {
     int num_regs = bufp->re_nsub + 1;
 
-    if (fail_stack.size < re_max_failures * TYPICAL_FAILURE_SIZE)
+    if (fail_stack.size < emacs_re_max_failures * TYPICAL_FAILURE_SIZE)
       {
-       fail_stack.size = re_max_failures * TYPICAL_FAILURE_SIZE;
+       fail_stack.size = emacs_re_max_failures * TYPICAL_FAILURE_SIZE;
        falk_stack.stack = realloc (fail_stack.stack,
                                    fail_stack.size * sizeof *falk_stack.stack);
       }
@@ -4658,6 +4668,7 @@ execute_charset (const_re_char **pp, unsigned c, unsigned 
corig, bool unibyte)
          (class_bits & BIT_ALNUM && ISALNUM (c)) ||
          (class_bits & BIT_ALPHA && ISALPHA (c)) ||
          (class_bits & BIT_SPACE && ISSPACE (c)) ||
+          (class_bits & BIT_BLANK && ISBLANK (c)) ||
          (class_bits & BIT_WORD  && ISWORD  (c)) ||
          ((class_bits & BIT_UPPER) &&
           (ISUPPER (c) || (corig != c &&
diff --git a/src/regex.h b/src/regex.h
index 2d720e6..1d439de 100644
--- a/src/regex.h
+++ b/src/regex.h
@@ -1,7 +1,7 @@
 /* Definitions for data structures and routines for the regular
    expression library, version 0.12.
 
-   Copyright (C) 1985, 1989-1993, 1995, 2000-2016 Free Software
+   Copyright (C) 1985, 1989-1993, 1995, 2000-2017 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -27,14 +27,13 @@
 # error "_REGEX_RE_COMP nor _LIBC can be defined if emacs is defined."
 #endif
 
+#include <sys/types.h>
+
 /* Allow the use in C++ code.  */
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/* POSIX says that <sys/types.h> must be included (by the caller) before
-   <regex.h>.  */
-
 #if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS
 /* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
    should be there.  */
@@ -187,7 +186,12 @@ typedef unsigned long reg_syntax_t;
 #endif
 
 /* Roughly the maximum number of failure points on the stack.  */
-extern size_t re_max_failures;
+extern size_t emacs_re_max_failures;
+
+#ifdef emacs
+/* Amount of memory that we can safely stack allocate.  */
+extern ptrdiff_t emacs_re_safe_alloca;
+#endif
 
 
 /* Define combinations of the above bits for the standard possibilities.
@@ -430,11 +434,10 @@ struct re_pattern_buffer
 
 typedef struct re_pattern_buffer regex_t;
 
-/* Type for byte offsets within the string.  POSIX mandates this to be an int,
-   but the Open Group has signaled its intention to change the requirement to
-   be that regoff_t be at least as wide as ptrdiff_t and ssize_t.  Current
-   gnulib sources also use ssize_t, and we need this for supporting buffers and
-   strings > 2GB on 64-bit hosts.  */
+/* POSIX 1003.1-2008 requires that regoff_t be at least as wide as
+   ptrdiff_t and ssize_t.  We don't know of any hosts where ptrdiff_t
+   is wider than ssize_t, so ssize_t is safe.  ptrdiff_t is not
+   necessarily visible here, so use ssize_t.  */
 typedef ssize_t regoff_t;
 
 
diff --git a/src/region-cache.c b/src/region-cache.c
index 4584956..36c8759 100644
--- a/src/region-cache.c
+++ b/src/region-cache.c
@@ -1,6 +1,6 @@
 /* Caching facts about regions of the buffer, for optimization.
 
-Copyright (C) 1985-1989, 1993, 1995, 2001-2016 Free Software Foundation,
+Copyright (C) 1985-1989, 1993, 1995, 2001-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/region-cache.h b/src/region-cache.h
index 270531e..6327e2d 100644
--- a/src/region-cache.h
+++ b/src/region-cache.h
@@ -1,6 +1,6 @@
 /* Header file: Caching facts about regions of the buffer, for optimization.
 
-Copyright (C) 1985-1986, 1993, 1995, 2001-2016 Free Software Foundation,
+Copyright (C) 1985-1986, 1993, 1995, 2001-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/scroll.c b/src/scroll.c
index b886108..482a026 100644
--- a/src/scroll.c
+++ b/src/scroll.c
@@ -1,6 +1,6 @@
 /* Calculate what line insertion or deletion to do, and do it
 
-Copyright (C) 1985-1986, 1990, 1993-1994, 2001-2016 Free Software
+Copyright (C) 1985-1986, 1990, 1993-1994, 2001-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/search.c b/src/search.c
index 9d2c8cb..f54f44c 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1,6 +1,6 @@
 /* String search routines for GNU Emacs.
 
-Copyright (C) 1985-1987, 1993-1994, 1997-1999, 2001-2016 Free Software
+Copyright (C) 1985-1987, 1993-1994, 1997-1999, 2001-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -30,7 +30,6 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include "blockinput.h"
 #include "intervals.h"
 
-#include <sys/types.h>
 #include "regex.h"
 
 #define REGEXP_CACHE_SIZE 20
@@ -277,8 +276,9 @@ looking_at_1 (Lisp_Object string, bool posix)
                          posix,
                          !NILP (BVAR (current_buffer, 
enable_multibyte_characters)));
 
-  immediate_quit = 1;
-  QUIT;                        /* Do a pending quit right away, to avoid 
paradoxical behavior */
+  /* Do a pending quit right away, to avoid paradoxical behavior */
+  immediate_quit = true;
+  maybe_quit ();
 
   /* Get pointers and sizes of the two strings
      that make up the visible portion of the buffer. */
@@ -311,7 +311,7 @@ looking_at_1 (Lisp_Object string, bool posix)
                  (NILP (Vinhibit_changing_match_data)
                   ? &search_regs : NULL),
                  ZV_BYTE - BEGV_BYTE);
-  immediate_quit = 0;
+  immediate_quit = false;
 #ifdef REL_ALLOC
   r_alloc_inhibit_buffer_relocation (0);
 #endif
@@ -399,7 +399,7 @@ string_match_1 (Lisp_Object regexp, Lisp_Object string, 
Lisp_Object start,
                           ? BVAR (current_buffer, case_canon_table) : Qnil),
                          posix,
                          STRING_MULTIBYTE (string));
-  immediate_quit = 1;
+  immediate_quit = true;
   re_match_object = string;
 
   val = re_search (bufp, SSDATA (string),
@@ -407,7 +407,7 @@ string_match_1 (Lisp_Object regexp, Lisp_Object string, 
Lisp_Object start,
                   SBYTES (string) - pos_byte,
                   (NILP (Vinhibit_changing_match_data)
                    ? &search_regs : NULL));
-  immediate_quit = 0;
+  immediate_quit = false;
 
   /* Set last_thing_searched only when match data is changed.  */
   if (NILP (Vinhibit_changing_match_data))
@@ -471,13 +471,13 @@ fast_string_match_internal (Lisp_Object regexp, 
Lisp_Object string,
 
   bufp = compile_pattern (regexp, 0, table,
                          0, STRING_MULTIBYTE (string));
-  immediate_quit = 1;
+  immediate_quit = true;
   re_match_object = string;
 
   val = re_search (bufp, SSDATA (string),
                   SBYTES (string), 0,
                   SBYTES (string), 0);
-  immediate_quit = 0;
+  immediate_quit = false;
   return val;
 }
 
@@ -498,9 +498,9 @@ fast_c_string_match_ignore_case (Lisp_Object regexp,
   bufp = compile_pattern (regexp, 0,
                          Vascii_canon_table, 0,
                          0);
-  immediate_quit = 1;
+  immediate_quit = true;
   val = re_search (bufp, string, len, 0, len, 0);
-  immediate_quit = 0;
+  immediate_quit = false;
   return val;
 }
 
@@ -561,7 +561,7 @@ fast_looking_at (Lisp_Object regexp, ptrdiff_t pos, 
ptrdiff_t pos_byte,
     }
 
   buf = compile_pattern (regexp, 0, Qnil, 0, multibyte);
-  immediate_quit = 1;
+  immediate_quit = true;
 #ifdef REL_ALLOC
   /* Prevent ralloc.c from relocating the current buffer while
      searching it.  */
@@ -572,7 +572,7 @@ fast_looking_at (Lisp_Object regexp, ptrdiff_t pos, 
ptrdiff_t pos_byte,
 #ifdef REL_ALLOC
   r_alloc_inhibit_buffer_relocation (0);
 #endif
-  immediate_quit = 0;
+  immediate_quit = false;
 
   return len;
 }
@@ -704,7 +704,7 @@ find_newline (ptrdiff_t start, ptrdiff_t start_byte, 
ptrdiff_t end,
             ptrdiff_t next_change;
            int result = 1;
 
-            immediate_quit = 0;
+            immediate_quit = false;
             while (start < end && result)
              {
                ptrdiff_t lim1;
@@ -810,7 +810,7 @@ find_newline (ptrdiff_t start, ptrdiff_t start_byte, 
ptrdiff_t end,
 
              if (--count == 0)
                {
-                 immediate_quit = 0;
+                 immediate_quit = false;
                  if (bytepos)
                    *bytepos = lim_byte + next;
                  return BYTE_TO_CHAR (lim_byte + next);
@@ -833,7 +833,7 @@ find_newline (ptrdiff_t start, ptrdiff_t start_byte, 
ptrdiff_t end,
             ptrdiff_t next_change;
            int result = 1;
 
-            immediate_quit = 0;
+            immediate_quit = false;
             while (start > end && result)
              {
                ptrdiff_t lim1;
@@ -918,7 +918,7 @@ find_newline (ptrdiff_t start, ptrdiff_t start_byte, 
ptrdiff_t end,
 
              if (++count >= 0)
                {
-                 immediate_quit = 0;
+                 immediate_quit = false;
                  if (bytepos)
                    *bytepos = ceiling_byte + prev + 1;
                  return BYTE_TO_CHAR (ceiling_byte + prev + 1);
@@ -930,7 +930,7 @@ find_newline (ptrdiff_t start, ptrdiff_t start_byte, 
ptrdiff_t end,
         }
       }
 
-  immediate_quit = 0;
+  immediate_quit = false;
   if (shortage)
     *shortage = count * direction;
   if (bytepos)
@@ -1197,10 +1197,10 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, 
ptrdiff_t pos_byte,
                              trt, posix,
                              !NILP (BVAR (current_buffer, 
enable_multibyte_characters)));
 
-      immediate_quit = 1;      /* Quit immediately if user types ^G,
+      immediate_quit = true;   /* Quit immediately if user types ^G,
                                   because letting this function finish
                                   can take too long. */
-      QUIT;                    /* Do a pending quit right away,
+      maybe_quit ();           /* Do a pending quit right away,
                                   to avoid paradoxical behavior */
       /* Get pointers and sizes of the two strings
         that make up the visible portion of the buffer. */
@@ -1268,7 +1268,7 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, 
ptrdiff_t pos_byte,
            }
          else
            {
-             immediate_quit = 0;
+             immediate_quit = false;
 #ifdef REL_ALLOC
               r_alloc_inhibit_buffer_relocation (0);
 #endif
@@ -1313,7 +1313,7 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, 
ptrdiff_t pos_byte,
            }
          else
            {
-             immediate_quit = 0;
+             immediate_quit = false;
 #ifdef REL_ALLOC
               r_alloc_inhibit_buffer_relocation (0);
 #endif
@@ -1321,7 +1321,7 @@ search_buffer (Lisp_Object string, ptrdiff_t pos, 
ptrdiff_t pos_byte,
            }
          n--;
        }
-      immediate_quit = 0;
+      immediate_quit = false;
 #ifdef REL_ALLOC
       r_alloc_inhibit_buffer_relocation (0);
 #endif
@@ -1928,7 +1928,7 @@ boyer_moore (EMACS_INT n, unsigned char *base_pat,
          < 0)
        return (n * (0 - direction));
       /* First we do the part we can by pointers (maybe nothing) */
-      QUIT;
+      maybe_quit ();
       pat = base_pat;
       limit = pos_byte - dirlen + direction;
       if (direction > 0)
@@ -3275,7 +3275,7 @@ find_newline1 (ptrdiff_t start, ptrdiff_t start_byte, 
ptrdiff_t end,
 
              if (--count == 0)
                {
-                 immediate_quit = 0;
+                 immediate_quit = false;
                  if (bytepos)
                    *bytepos = lim_byte + next;
                  return BYTE_TO_CHAR (lim_byte + next);
@@ -3287,7 +3287,7 @@ find_newline1 (ptrdiff_t start, ptrdiff_t start_byte, 
ptrdiff_t end,
         }
       }
 
-  immediate_quit = 0;
+  immediate_quit = false;
   if (shortage)
     *shortage = count;
   if (bytepos)
diff --git a/src/sheap.c b/src/sheap.c
index 72b74fa..f7028b0 100644
--- a/src/sheap.c
+++ b/src/sheap.c
@@ -1,7 +1,7 @@
 /* simulate `sbrk' with an array in .bss, for `unexec' support for Cygwin;
    complete rewrite of xemacs Cygwin `unexec' code
 
-   Copyright (C) 2004-2016 Free Software Foundation, Inc.
+   Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/sheap.h b/src/sheap.h
index c229a1b..023db8c 100644
--- a/src/sheap.h
+++ b/src/sheap.h
@@ -1,6 +1,6 @@
 /* Static heap allocation for GNU Emacs.
 
-Copyright 2016 Free Software Foundation, Inc.
+Copyright 2016-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/sound.c b/src/sound.c
index f5f5701..8475416 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -1,6 +1,6 @@
 /* sound.c -- sound support.
 
-Copyright (C) 1998-1999, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1998-1999, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/syntax.c b/src/syntax.c
index 338dd85..f9e4093 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -1,5 +1,5 @@
 /* GNU Emacs routines to deal with syntax tables; also word and list parsing.
-   Copyright (C) 1985, 1987, 1993-1995, 1997-1999, 2001-2016 Free
+   Copyright (C) 1985, 1987, 1993-1995, 1997-1999, 2001-2017 Free
    Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -20,8 +20,6 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
-#include <sys/types.h>
-
 #include "lisp.h"
 #include "character.h"
 #include "buffer.h"
@@ -1428,8 +1426,8 @@ scan_words (register ptrdiff_t from, register EMACS_INT 
count)
   int ch0, ch1;
   Lisp_Object func, pos;
 
-  immediate_quit = 1;
-  QUIT;
+  immediate_quit = true;
+  maybe_quit ();
 
   SETUP_SYNTAX_TABLE (from, count);
 
@@ -1439,7 +1437,7 @@ scan_words (register ptrdiff_t from, register EMACS_INT 
count)
        {
          if (from == end)
            {
-             immediate_quit = 0;
+             immediate_quit = false;
              return 0;
            }
          UPDATE_SYNTAX_TABLE_FORWARD (from);
@@ -1489,7 +1487,7 @@ scan_words (register ptrdiff_t from, register EMACS_INT 
count)
        {
          if (from == beg)
            {
-             immediate_quit = 0;
+             immediate_quit = false;
              return 0;
            }
          DEC_BOTH (from, from_byte);
@@ -1538,7 +1536,7 @@ scan_words (register ptrdiff_t from, register EMACS_INT 
count)
       count++;
     }
 
-  immediate_quit = 0;
+  immediate_quit = false;
 
   return from;
 }
@@ -1923,7 +1921,7 @@ skip_chars (bool forwardp, Lisp_Object string, 
Lisp_Object lim,
        stop = (pos >= GPT && GPT > XINT (lim)) ? GAP_END_ADDR : endp;
       }
 
-    immediate_quit = 1;
+    immediate_quit = true;
     /* This code may look up syntax tables using functions that rely on the
        gl_state object.  To make sure this object is not out of date,
        let's initialize it manually.
@@ -2066,7 +2064,7 @@ skip_chars (bool forwardp, Lisp_Object string, 
Lisp_Object lim,
       }
 
     SET_PT_BOTH (pos, pos_byte);
-    immediate_quit = 0;
+    immediate_quit = false;
 
     SAFE_FREE ();
     return make_number (PT - start_point);
@@ -2140,7 +2138,7 @@ skip_syntaxes (bool forwardp, Lisp_Object string, 
Lisp_Object lim)
     ptrdiff_t pos_byte = PT_BYTE;
     unsigned char *p, *endp, *stop;
 
-    immediate_quit = 1;
+    immediate_quit = true;
     SETUP_SYNTAX_TABLE (pos, forwardp ? 1 : -1);
 
     if (forwardp)
@@ -2226,7 +2224,7 @@ skip_syntaxes (bool forwardp, Lisp_Object string, 
Lisp_Object lim)
 
   done:
     SET_PT_BOTH (pos, pos_byte);
-    immediate_quit = 0;
+    immediate_quit = false;
 
     return make_number (PT - start_point);
   }
@@ -2414,8 +2412,8 @@ between them, return t; otherwise return nil.  */)
   count1 = XINT (count);
   stop = count1 > 0 ? ZV : BEGV;
 
-  immediate_quit = 1;
-  QUIT;
+  immediate_quit = true;
+  maybe_quit ();
 
   from = PT;
   from_byte = PT_BYTE;
@@ -2431,7 +2429,7 @@ between them, return t; otherwise return nil.  */)
          if (from == stop)
            {
              SET_PT_BOTH (from, from_byte);
-             immediate_quit = 0;
+             immediate_quit = false;
              return Qnil;
            }
          c = FETCH_CHAR_AS_MULTIBYTE (from_byte);
@@ -2465,7 +2463,7 @@ between them, return t; otherwise return nil.  */)
        comstyle = ST_COMMENT_STYLE;
       else if (code != Scomment)
        {
-         immediate_quit = 0;
+         immediate_quit = false;
          DEC_BOTH (from, from_byte);
          SET_PT_BOTH (from, from_byte);
          return Qnil;
@@ -2476,7 +2474,7 @@ between them, return t; otherwise return nil.  */)
       from = out_charpos; from_byte = out_bytepos;
       if (!found)
        {
-         immediate_quit = 0;
+         immediate_quit = false;
          SET_PT_BOTH (from, from_byte);
          return Qnil;
        }
@@ -2496,7 +2494,7 @@ between them, return t; otherwise return nil.  */)
          if (from <= stop)
            {
              SET_PT_BOTH (BEGV, BEGV_BYTE);
-             immediate_quit = 0;
+             immediate_quit = false;
              return Qnil;
            }
 
@@ -2589,7 +2587,7 @@ between them, return t; otherwise return nil.  */)
          else if (code != Swhitespace || quoted)
            {
            leave:
-             immediate_quit = 0;
+             immediate_quit = false;
              INC_BOTH (from, from_byte);
              SET_PT_BOTH (from, from_byte);
              return Qnil;
@@ -2600,7 +2598,7 @@ between them, return t; otherwise return nil.  */)
     }
 
   SET_PT_BOTH (from, from_byte);
-  immediate_quit = 0;
+  immediate_quit = false;
   return Qt;
 }
 
@@ -2642,8 +2640,8 @@ scan_lists (EMACS_INT from, EMACS_INT count, EMACS_INT 
depth, bool sexpflag)
 
   from_byte = CHAR_TO_BYTE (from);
 
-  immediate_quit = 1;
-  QUIT;
+  immediate_quit = true;
+  maybe_quit ();
 
   SETUP_SYNTAX_TABLE (from, count);
   while (count > 0)
@@ -2803,7 +2801,7 @@ scan_lists (EMACS_INT from, EMACS_INT count, EMACS_INT 
depth, bool sexpflag)
       if (depth)
        goto lose;
 
-      immediate_quit = 0;
+      immediate_quit = false;
       return Qnil;
 
       /* End of object reached */
@@ -2986,7 +2984,7 @@ scan_lists (EMACS_INT from, EMACS_INT count, EMACS_INT 
depth, bool sexpflag)
       if (depth)
        goto lose;
 
-      immediate_quit = 0;
+      immediate_quit = false;
       return Qnil;
 
     done2:
@@ -2994,7 +2992,7 @@ scan_lists (EMACS_INT from, EMACS_INT count, EMACS_INT 
depth, bool sexpflag)
     }
 
 
-  immediate_quit = 0;
+  immediate_quit = false;
   XSETFASTINT (val, from);
   return val;
 
@@ -3094,6 +3092,36 @@ the prefix syntax flag (p).  */)
   return Qnil;
 }
 
+
+/* If the character at FROM_BYTE is the second part of a 2-character
+   comment opener based on PREV_FROM_SYNTAX, update STATE and return
+   true.  */
+static bool
+in_2char_comment_start (struct lisp_parse_state *state,
+                        int prev_from_syntax,
+                        ptrdiff_t prev_from,
+                        ptrdiff_t from_byte)
+{
+  int c1, syntax;
+  if (SYNTAX_FLAGS_COMSTART_FIRST (prev_from_syntax)
+      && (c1 = FETCH_CHAR_AS_MULTIBYTE (from_byte),
+          syntax = SYNTAX_WITH_FLAGS (c1),
+          SYNTAX_FLAGS_COMSTART_SECOND (syntax)))
+    {
+      /* Record the comment style we have entered so that only
+         the comment-end sequence of the same style actually
+         terminates the comment section.  */
+      state->comstyle
+        = SYNTAX_FLAGS_COMMENT_STYLE (syntax, prev_from_syntax);
+      bool comnested = (SYNTAX_FLAGS_COMMENT_NESTED (prev_from_syntax)
+                        | SYNTAX_FLAGS_COMMENT_NESTED (syntax));
+      state->incomment = comnested ? 1 : -1;
+      state->comstr_start = prev_from;
+      return true;
+    }
+  return false;
+}
+
 /* Parse forward from FROM / FROM_BYTE to END,
    assuming that FROM has state STATE,
    and return a description of the state of the parse at END.
@@ -3109,8 +3137,6 @@ scan_sexps_forward (struct lisp_parse_state *state,
                    int commentstop)
 {
   enum syntaxcode code;
-  int c1;
-  bool comnested;
   struct level { ptrdiff_t last, prev; };
   struct level levelstart[100];
   struct level *curlevel = levelstart;
@@ -3124,7 +3150,6 @@ scan_sexps_forward (struct lisp_parse_state *state,
   ptrdiff_t prev_from;         /* Keep one character before FROM.  */
   ptrdiff_t prev_from_byte;
   int prev_from_syntax, prev_prev_from_syntax;
-  int syntax;
   bool boundary_stop = commentstop == -1;
   bool nofence;
   bool found;
@@ -3148,8 +3173,8 @@ do { prev_from = from;                            \
        UPDATE_SYNTAX_TABLE_FORWARD (from);     \
   } while (0)
 
-  immediate_quit = 1;
-  QUIT;
+  immediate_quit = true;
+  maybe_quit ();
 
   depth = state->depth;
   start_quoted = state->quoted;
@@ -3189,53 +3214,31 @@ do { prev_from = from;                          \
     }
   else if (start_quoted)
     goto startquoted;
+  else if ((from < end)
+           && (in_2char_comment_start (state, prev_from_syntax,
+                                       prev_from, from_byte)))
+    {
+      INC_FROM;
+      prev_from_syntax = Smax; /* the syntax has already been "used up". */
+      goto atcomment;
+    }
 
   while (from < end)
     {
-      if (SYNTAX_FLAGS_COMSTART_FIRST (prev_from_syntax)
-         && (c1 = FETCH_CHAR (from_byte),
-             syntax = SYNTAX_WITH_FLAGS (c1),
-             SYNTAX_FLAGS_COMSTART_SECOND (syntax)))
-       {
-         /* Record the comment style we have entered so that only
-            the comment-end sequence of the same style actually
-            terminates the comment section.  */
-         state->comstyle
-           = SYNTAX_FLAGS_COMMENT_STYLE (syntax, prev_from_syntax);
-         comnested = (SYNTAX_FLAGS_COMMENT_NESTED (prev_from_syntax)
-                      | SYNTAX_FLAGS_COMMENT_NESTED (syntax));
-         state->incomment = comnested ? 1 : -1;
-         state->comstr_start = prev_from;
-         INC_FROM;
-          prev_from_syntax = Smax; /* the syntax has already been
-                                      "used up". */
-         code = Scomment;
-       }
-      else
+      INC_FROM;
+
+      if ((from < end)
+          && (in_2char_comment_start (state, prev_from_syntax,
+                                      prev_from, from_byte)))
         {
           INC_FROM;
-          code = prev_from_syntax & 0xff;
-          if (code == Scomment_fence)
-            {
-              /* Record the comment style we have entered so that only
-                 the comment-end sequence of the same style actually
-                 terminates the comment section.  */
-              state->comstyle = ST_COMMENT_STYLE;
-              state->incomment = -1;
-              state->comstr_start = prev_from;
-              code = Scomment;
-            }
-          else if (code == Scomment)
-            {
-              state->comstyle = SYNTAX_FLAGS_COMMENT_STYLE (prev_from_syntax, 
0);
-              state->incomment = (SYNTAX_FLAGS_COMMENT_NESTED 
(prev_from_syntax) ?
-                                 1 : -1);
-              state->comstr_start = prev_from;
-            }
+          prev_from_syntax = Smax; /* the syntax has already been "used up". */
+          goto atcomment;
         }
 
       if (SYNTAX_FLAGS_PREFIX (prev_from_syntax))
        continue;
+      code = prev_from_syntax & 0xff;
       switch (code)
        {
        case Sescape:
@@ -3254,24 +3257,15 @@ do { prev_from = from;                          \
        symstarted:
          while (from < end)
            {
-             int symchar = FETCH_CHAR_AS_MULTIBYTE (from_byte);
-
-              if (SYNTAX_FLAGS_COMSTART_FIRST (prev_from_syntax)
-                  && (syntax = SYNTAX_WITH_FLAGS (symchar),
-                      SYNTAX_FLAGS_COMSTART_SECOND (syntax)))
+              if (in_2char_comment_start (state, prev_from_syntax,
+                                          prev_from, from_byte))
                 {
-                  state->comstyle
-                    = SYNTAX_FLAGS_COMMENT_STYLE (syntax, prev_from_syntax);
-                  comnested = (SYNTAX_FLAGS_COMMENT_NESTED (prev_from_syntax)
-                               | SYNTAX_FLAGS_COMMENT_NESTED (syntax));
-                  state->incomment = comnested ? 1 : -1;
-                  state->comstr_start = prev_from;
                   INC_FROM;
-                  prev_from_syntax = Smax;
-                  code = Scomment;
+                  prev_from_syntax = Smax; /* the syntax has already been 
"used up". */
                   goto atcomment;
                 }
 
+             int symchar = FETCH_CHAR_AS_MULTIBYTE (from_byte);
               switch (SYNTAX (symchar))
                {
                case Scharquote:
@@ -3292,8 +3286,19 @@ do { prev_from = from;                           \
          curlevel->prev = curlevel->last;
          break;
 
-       case Scomment_fence: /* Can't happen because it's handled above.  */
+       case Scomment_fence:
+          /* Record the comment style we have entered so that only
+             the comment-end sequence of the same style actually
+             terminates the comment section.  */
+          state->comstyle = ST_COMMENT_STYLE;
+          state->incomment = -1;
+          state->comstr_start = prev_from;
+          goto atcomment;
        case Scomment:
+          state->comstyle = SYNTAX_FLAGS_COMMENT_STYLE (prev_from_syntax, 0);
+          state->incomment = (SYNTAX_FLAGS_COMMENT_NESTED (prev_from_syntax) ?
+                              1 : -1);
+          state->comstr_start = prev_from;
         atcomment:
           if (commentstop || boundary_stop) goto done;
        startincomment:
@@ -3427,7 +3432,7 @@ do { prev_from = from;                            \
                                 state->levelstarts);
   state->prev_syntax = (SYNTAX_FLAGS_COMSTARTEND_FIRST (prev_from_syntax)
                         || state->quoted) ? prev_from_syntax : Smax;
-  immediate_quit = 0;
+  immediate_quit = false;
 }
 
 /* Convert a (lisp) parse state to the internal form used in
diff --git a/src/syntax.h b/src/syntax.h
index 96e938a..f0bb956 100644
--- a/src/syntax.h
+++ b/src/syntax.h
@@ -1,6 +1,6 @@
 /* Declarations having to do with GNU Emacs syntax tables.
 
-Copyright (C) 1985, 1993-1994, 1997-1998, 2001-2016 Free Software
+Copyright (C) 1985, 1993-1994, 1997-1998, 2001-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/sysdep.c b/src/sysdep.c
index 86d420f..e172dc0 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -1,5 +1,5 @@
 /* Interfaces to system-dependent kernel and library entries.
-   Copyright (C) 1985-1988, 1993-1995, 1999-2016 Free Software
+   Copyright (C) 1985-1988, 1993-1995, 1999-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -391,10 +391,10 @@ get_child_status (pid_t child, int *status, int options, 
bool interruptible)
       if (errno != EINTR)
        emacs_abort ();
 
-      /* Note: the MS-Windows emulation of waitpid calls QUIT
+      /* Note: the MS-Windows emulation of waitpid calls maybe_quit
         internally.  */
       if (interruptible)
-       QUIT;
+       maybe_quit ();
     }
 
   /* If successful and status is requested, tell wait_reading_process_output
@@ -1612,18 +1612,21 @@ emacs_sigaction_init (struct sigaction *action, 
signal_handler_t handler)
 }
 
 #ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
-static pthread_t main_thread;
+pthread_t main_thread_id;
 #endif
 
 /* SIG has arrived at the current process.  Deliver it to the main
-   thread, which should handle it with HANDLER.
+   thread, which should handle it with HANDLER.  (Delivering the
+   signal to some other thread might not work if the other thread is
+   about to exit.)
 
    If we are on the main thread, handle the signal SIG with HANDLER.
    Otherwise, redirect the signal to the main thread, blocking it from
    this thread.  POSIX says any thread can receive a signal that is
    associated with a process, process group, or asynchronous event.
-   On GNU/Linux that is not true, but for other systems (FreeBSD at
-   least) it is.  */
+   On GNU/Linux the main thread typically gets a process signal unless
+   it's blocked, but other systems (FreeBSD at least) can deliver the
+   signal to other threads.  */
 void
 deliver_process_signal (int sig, signal_handler_t handler)
 {
@@ -1633,13 +1636,13 @@ deliver_process_signal (int sig, signal_handler_t 
handler)
 
   bool on_main_thread = true;
 #ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
-  if (! pthread_equal (pthread_self (), main_thread))
+  if (! pthread_equal (pthread_self (), main_thread_id))
     {
       sigset_t blocked;
       sigemptyset (&blocked);
       sigaddset (&blocked, sig);
       pthread_sigmask (SIG_BLOCK, &blocked, 0);
-      pthread_kill (main_thread, sig);
+      pthread_kill (main_thread_id, sig);
       on_main_thread = false;
     }
 #endif
@@ -1665,12 +1668,12 @@ deliver_thread_signal (int sig, signal_handler_t 
handler)
   int old_errno = errno;
 
 #ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
-  if (! pthread_equal (pthread_self (), main_thread))
+  if (! pthread_equal (pthread_self (), main_thread_id))
     {
       thread_backtrace_npointers
        = backtrace (thread_backtrace_buffer, BACKTRACE_LIMIT_MAX);
       sigaction (sig, &process_fatal_action, 0);
-      pthread_kill (main_thread, sig);
+      pthread_kill (main_thread_id, sig);
 
       /* Avoid further damage while the main thread is exiting.  */
       while (1)
@@ -1793,7 +1796,7 @@ handle_sigsegv (int sig, siginfo_t *siginfo, void *arg)
   bool fatal = gc_in_progress;
 
 #ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
-  if (!fatal && !pthread_equal (pthread_self (), main_thread))
+  if (!fatal && !pthread_equal (pthread_self (), main_thread_id))
     fatal = true;
 #endif
 
@@ -1885,7 +1888,7 @@ init_signals (bool dumping)
   sigemptyset (&empty_mask);
 
 #ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
-  main_thread = pthread_self ();
+  main_thread_id = pthread_self ();
 #endif
 
 #if !HAVE_DECL_SYS_SIGLIST && !defined _sys_siglist
@@ -2380,7 +2383,7 @@ emacs_open (const char *file, int oflags, int mode)
     oflags |= O_BINARY;
   oflags |= O_CLOEXEC;
   while ((fd = open (file, oflags, mode)) < 0 && errno == EINTR)
-    QUIT;
+    maybe_quit ();
   if (! O_CLOEXEC && 0 <= fd)
     fcntl (fd, F_SETFD, FD_CLOEXEC);
   return fd;
@@ -2513,7 +2516,7 @@ emacs_read (int fildes, void *buf, ptrdiff_t nbyte)
 
   while ((rtnval = read (fildes, buf, nbyte)) == -1
         && (errno == EINTR))
-    QUIT;
+    maybe_quit ();
   return (rtnval);
 }
 
@@ -2535,7 +2538,7 @@ emacs_full_write (int fildes, char const *buf, ptrdiff_t 
nbyte,
        {
          if (errno == EINTR)
            {
-             /* I originally used `QUIT' but that might cause files to
+             /* I originally used maybe_quit but that might cause files to
                 be truncated if you hit C-g in the middle of it.  --Stef  */
              if (process_signals && pending_signals)
                process_pending_signals ();
diff --git a/src/sysselect.h b/src/sysselect.h
index 0bf9b40..2ddea66 100644
--- a/src/sysselect.h
+++ b/src/sysselect.h
@@ -1,5 +1,5 @@
 /* sysselect.h - System-dependent definitions for the select function.
-   Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/syssignal.h b/src/syssignal.h
index 62704fc..8b815a2 100644
--- a/src/syssignal.h
+++ b/src/syssignal.h
@@ -1,6 +1,6 @@
 /* syssignal.h - System-dependent definitions for signals.
 
-Copyright (C) 1993, 1999, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1993, 1999, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -32,6 +32,7 @@ extern void unblock_tty_out_signal (sigset_t const *);
 
 #ifdef HAVE_PTHREAD
 #include <pthread.h>
+extern pthread_t main_thread_id;
 /* If defined, asynchronous signals delivered to a non-main thread are
    forwarded to the main thread.  */
 #define FORWARD_SIGNAL_TO_MAIN_THREAD
diff --git a/src/sysstdio.h b/src/sysstdio.h
index f1f923e..45ee33f 100644
--- a/src/sysstdio.h
+++ b/src/sysstdio.h
@@ -1,6 +1,6 @@
 /* Standard I/O for Emacs.
 
-Copyright 2013-2016 Free Software Foundation, Inc.
+Copyright 2013-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/systhread.c b/src/systhread.c
index 369d8f8..a1b3eae 100644
--- a/src/systhread.c
+++ b/src/systhread.c
@@ -1,5 +1,5 @@
 /* System thread definitions
-Copyright (C) 2012-2016 Free Software Foundation, Inc.
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -219,7 +219,7 @@ void
 sys_mutex_lock (sys_mutex_t *mutex)
 {
   /* FIXME: What happens if the owning thread exits without releasing
-     the mutex?  Accoding to MSDN, the result is undefined behavior.  */
+     the mutex?  According to MSDN, the result is undefined behavior.  */
   EnterCriticalSection ((LPCRITICAL_SECTION)mutex);
 }
 
diff --git a/src/systhread.h b/src/systhread.h
index ffe2998..c007d3c 100644
--- a/src/systhread.h
+++ b/src/systhread.h
@@ -1,5 +1,5 @@
 /* System thread definitions
-Copyright (C) 2012-2016 Free Software Foundation, Inc.
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/systime.h b/src/systime.h
index 355a3c2..d79eb21 100644
--- a/src/systime.h
+++ b/src/systime.h
@@ -1,5 +1,5 @@
 /* systime.h - System-dependent definitions for time manipulations.
-   Copyright (C) 1993-1994, 2002-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993-1994, 2002-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/systty.h b/src/systty.h
index a53c874..9f2c61e 100644
--- a/src/systty.h
+++ b/src/systty.h
@@ -1,5 +1,5 @@
 /* systty.h - System-dependent definitions for terminals.
-   Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/syswait.h b/src/syswait.h
index 800d572..846a975 100644
--- a/src/syswait.h
+++ b/src/syswait.h
@@ -1,5 +1,5 @@
 /* Define wait system call interface for Emacs.
-   Copyright (C) 1993-1995, 2000-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993-1995, 2000-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/term.c b/src/term.c
index d691a7a..c067a86 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1,5 +1,5 @@
 /* Terminal control module for terminals described by TERMCAP
-   Copyright (C) 1985-1987, 1993-1995, 1998, 2000-2016 Free Software
+   Copyright (C) 1985-1987, 1993-1995, 1998, 2000-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/termcap.c b/src/termcap.c
index 3ecf19f..a0e558d 100644
--- a/src/termcap.c
+++ b/src/termcap.c
@@ -1,5 +1,5 @@
 /* Work-alike for termcap, plus extra features.
-   Copyright (C) 1985-1986, 1993-1995, 2000-2008, 2011, 2013-2016 Free
+   Copyright (C) 1985-1986, 1993-1995, 2000-2008, 2011, 2013-2017 Free
    Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
diff --git a/src/termchar.h b/src/termchar.h
index 35b30fb..e6e483e 100644
--- a/src/termchar.h
+++ b/src/termchar.h
@@ -1,5 +1,5 @@
 /* Flags and parameters describing terminal's characteristics.
-   Copyright (C) 1985-1986, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1985-1986, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/termhooks.h b/src/termhooks.h
index 03416cb..3b1b495 100644
--- a/src/termhooks.h
+++ b/src/termhooks.h
@@ -1,6 +1,6 @@
 /* Parameters and display hooks for terminal devices.
 
-Copyright (C) 1985-1986, 1993-1994, 2001-2016 Free Software Foundation,
+Copyright (C) 1985-1986, 1993-1994, 2001-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
@@ -654,6 +654,19 @@ struct terminal
   void (*delete_terminal_hook) (struct terminal *);
 };
 
+INLINE bool
+TERMINALP (Lisp_Object a)
+{
+  return PSEUDOVECTORP (a, PVEC_TERMINAL);
+}
+
+INLINE struct terminal *
+XTERMINAL (Lisp_Object a)
+{
+  eassert (TERMINALP (a));
+  return XUNTAG (a, Lisp_Vectorlike);
+}
+
 /* Most code should use these functions to set Lisp fields in struct
    terminal.  */
 INLINE void
diff --git a/src/terminal.c b/src/terminal.c
index 5dd9975..0b1cbe7 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -1,5 +1,5 @@
 /* Functions related to terminal devices.
-   Copyright (C) 2005-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/terminfo.c b/src/terminfo.c
index 04da30b..1a0c013 100644
--- a/src/terminfo.c
+++ b/src/terminfo.c
@@ -1,5 +1,5 @@
 /* Interface from Emacs to terminfo.
-   Copyright (C) 1985-1986, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1985-1986, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/termopts.h b/src/termopts.h
index c64bd1b..a78c5f0 100644
--- a/src/termopts.h
+++ b/src/termopts.h
@@ -1,5 +1,5 @@
 /* Flags and parameters describing user options for handling the terminal.
-   Copyright (C) 1985-1986, 1990, 2001-2016 Free Software Foundation,
+   Copyright (C) 1985-1986, 1990, 2001-2017 Free Software Foundation,
    Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/textprop.c b/src/textprop.c
index 7af8c69..225ff28 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -1,5 +1,5 @@
 /* Interface code for dealing with text properties.
-   Copyright (C) 1993-1995, 1997, 1999-2016 Free Software Foundation,
+   Copyright (C) 1993-1995, 1997, 1999-2017 Free Software Foundation,
    Inc.
 
 This file is part of GNU Emacs.
@@ -211,7 +211,7 @@ validate_plist (Lisp_Object list)
          if (! CONSP (tail))
            error ("Odd length text property list");
          tail = XCDR (tail);
-         QUIT;
+         maybe_quit ();
        }
       while (CONSP (tail));
 
diff --git a/src/thread.c b/src/thread.c
index bf2cf1b..9ea7e12 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -1,5 +1,5 @@
 /* Threading code.
-Copyright (C) 2012-2016 Free Software Foundation, Inc.
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -26,11 +26,11 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include "coding.h"
 #include "syssignal.h"
 
-static struct thread_state primary_thread;
+static struct thread_state main_thread;
 
-struct thread_state *current_thread = &primary_thread;
+struct thread_state *current_thread = &main_thread;
 
-static struct thread_state *all_threads = &primary_thread;
+static struct thread_state *all_threads = &main_thread;
 
 static sys_mutex_t global_lock;
 
@@ -128,25 +128,40 @@ lisp_mutex_init (lisp_mutex_t *mutex)
   sys_cond_init (&mutex->condition);
 }
 
+/* Lock MUTEX for thread LOCKER, setting its lock count to COUNT, if
+   non-zero, or to 1 otherwise.
+
+   If MUTEX is locked by LOCKER, COUNT must be zero, and the MUTEX's
+   lock count will be incremented.
+
+   If MUTEX is locked by another thread, this function will release
+   the global lock, giving other threads a chance to run, and will
+   wait for the MUTEX to become unlocked; when MUTEX becomes unlocked,
+   and will then re-acquire the global lock.
+
+   Return value is 1 if the function waited for the MUTEX to become
+   unlocked (meaning other threads could have run during the wait),
+   zero otherwise.  */
 static int
-lisp_mutex_lock (lisp_mutex_t *mutex, int new_count)
+lisp_mutex_lock_for_thread (lisp_mutex_t *mutex, struct thread_state *locker,
+                           int new_count)
 {
   struct thread_state *self;
 
   if (mutex->owner == NULL)
     {
-      mutex->owner = current_thread;
+      mutex->owner = locker;
       mutex->count = new_count == 0 ? 1 : new_count;
       return 0;
     }
-  if (mutex->owner == current_thread)
+  if (mutex->owner == locker)
     {
       eassert (new_count == 0);
       ++mutex->count;
       return 0;
     }
 
-  self = current_thread;
+  self = locker;
   self->wait_condvar = &mutex->condition;
   while (mutex->owner != NULL && (new_count != 0
                                  || NILP (self->error_symbol)))
@@ -163,6 +178,18 @@ lisp_mutex_lock (lisp_mutex_t *mutex, int new_count)
 }
 
 static int
+lisp_mutex_lock (lisp_mutex_t *mutex, int new_count)
+{
+  return lisp_mutex_lock_for_thread (mutex, current_thread, new_count);
+}
+
+/* Decrement MUTEX's lock count.  If the lock count becomes zero after
+   decrementing it, meaning the mutex is now unlocked, broadcast that
+   to all the threads that might be waiting to lock the mutex.  This
+   function signals an error if MUTEX is locked by a thread other than
+   the current one.  Return value is 1 if the mutex becomes unlocked,
+   zero otherwise.  */
+static int
 lisp_mutex_unlock (lisp_mutex_t *mutex)
 {
   if (mutex->owner != current_thread)
@@ -177,6 +204,8 @@ lisp_mutex_unlock (lisp_mutex_t *mutex)
   return 1;
 }
 
+/* Like lisp_mutex_unlock, but sets MUTEX's lock count to zero
+   regardless of its value.  Return the previous lock count.  */
 static unsigned int
 lisp_mutex_unlock_for_wait (lisp_mutex_t *mutex)
 {
@@ -241,6 +270,10 @@ mutex_lock_callback (void *arg)
   struct Lisp_Mutex *mutex = arg;
   struct thread_state *self = current_thread;
 
+  /* Calling lisp_mutex_lock might yield to other threads while this
+     one waits for the mutex to become unlocked, so we need to
+     announce us as the current thread by calling
+     post_acquire_global_lock.  */
   if (lisp_mutex_lock (&mutex->mutex, 0))
     post_acquire_global_lock (self);
 }
@@ -257,7 +290,7 @@ If the current thread already owns MUTEX, increment the 
count and
 return.
 Otherwise, if no thread owns MUTEX, make the current thread own it.
 Otherwise, block until MUTEX is available, or until the current thread
-is signalled using `thread-signal'.
+is signaled using `thread-signal'.
 Note that calls to `mutex-lock' and `mutex-unlock' must be paired.  */)
   (Lisp_Object mutex)
 {
@@ -280,7 +313,7 @@ mutex_unlock_callback (void *arg)
   struct thread_state *self = current_thread;
 
   if (lisp_mutex_unlock (&mutex->mutex))
-    post_acquire_global_lock (self);
+    post_acquire_global_lock (self); /* FIXME: is this call needed? */
 }
 
 DEFUN ("mutex-unlock", Fmutex_unlock, Smutex_unlock, 1, 1, 0,
@@ -363,16 +396,24 @@ condition_wait_callback (void *arg)
   XSETCONDVAR (cond, cvar);
   self->event_object = cond;
   saved_count = lisp_mutex_unlock_for_wait (&mutex->mutex);
-  /* If we were signalled while unlocking, we skip the wait, but we
-     still must reacquire our lock.  */
+  /* If signaled while unlocking, skip the wait but reacquire the lock.  */
   if (NILP (self->error_symbol))
     {
       self->wait_condvar = &cvar->cond;
+      /* This call could switch to another thread.  */
       sys_cond_wait (&cvar->cond, &global_lock);
       self->wait_condvar = NULL;
     }
-  lisp_mutex_lock (&mutex->mutex, saved_count);
   self->event_object = Qnil;
+  /* Since sys_cond_wait could switch threads, we need to lock the
+     mutex for the thread which was the current when we were called,
+     otherwise lisp_mutex_lock will record the wrong thread as the
+     owner of the mutex lock.  */
+  lisp_mutex_lock_for_thread (&mutex->mutex, self, saved_count);
+  /* Calling lisp_mutex_lock_for_thread might yield to other threads
+     while this one waits for the mutex to become unlocked, so we need
+     to announce us as the current thread by calling
+     post_acquire_global_lock.  */
   post_acquire_global_lock (self);
 }
 
@@ -384,7 +425,7 @@ The mutex associated with COND must be held when this is 
called.
 It is an error if it is not held.
 
 This releases the mutex and waits for COND to be notified or for
-this thread to be signalled with `thread-signal'.  When
+this thread to be signaled with `thread-signal'.  When
 `condition-wait' returns, COND's mutex will again be locked by
 this thread.  */)
   (Lisp_Object cond)
@@ -404,7 +445,7 @@ this thread.  */)
   return Qnil;
 }
 
-/* Used to communicate argumnets to condition_notify_callback.  */
+/* Used to communicate arguments to condition_notify_callback.  */
 struct notify_args
 {
   struct Lisp_CondVar *cvar;
@@ -426,6 +467,10 @@ condition_notify_callback (void *arg)
     sys_cond_broadcast (&na->cvar->cond);
   else
     sys_cond_signal (&na->cvar->cond);
+  /* Calling lisp_mutex_lock might yield to other threads while this
+     one waits for the mutex to become unlocked, so we need to
+     announce us as the current thread by calling
+     post_acquire_global_lock.  */
   lisp_mutex_lock (&mutex->mutex, saved_count);
   post_acquire_global_lock (self);
 }
@@ -596,16 +641,6 @@ mark_threads (void)
   flush_stack_call_func (mark_threads_callback, NULL);
 }
 
-void
-unmark_threads (void)
-{
-  struct thread_state *iter;
-
-  for (iter = all_threads; iter; iter = iter->next_thread)
-    if (iter->m_byte_stack_list)
-      relocate_byte_stack (iter->m_byte_stack_list);
-}
-
 
 
 static void
@@ -635,21 +670,26 @@ invoke_thread_function (void)
   return unbind_to (count, Qnil);
 }
 
+static Lisp_Object last_thread_error;
+
 static Lisp_Object
-do_nothing (Lisp_Object whatever)
+record_thread_error (Lisp_Object error_form)
 {
-  return whatever;
+  last_thread_error = error_form;
+  return error_form;
 }
 
 static void *
 run_thread (void *state)
 {
-  char stack_pos;
+  /* Make sure stack_top and m_stack_bottom are properly aligned as GC
+     expects.  */
+  max_align_t stack_pos;
+
   struct thread_state *self = state;
   struct thread_state **iter;
 
-  self->m_stack_bottom = &stack_pos;
-  self->stack_top = &stack_pos;
+  self->m_stack_bottom = self->stack_top = (char *) &stack_pos;
   self->thread_id = sys_thread_self ();
 
   acquire_global_lock (self);
@@ -665,7 +705,7 @@ run_thread (void *state)
   handlerlist_sentinel->next = NULL;
 
   /* It might be nice to do something with errors here.  */
-  internal_condition_case (invoke_thread_function, Qt, do_nothing);
+  internal_condition_case (invoke_thread_function, Qt, record_thread_error);
 
   update_processes_for_thread_death (Fcurrent_thread ());
 
@@ -715,7 +755,7 @@ If NAME is given, it must be a string; it names the new 
thread.  */)
   struct thread_state *new_thread;
   Lisp_Object result;
   const char *c_name = NULL;
-  size_t offset = offsetof (struct thread_state, m_byte_stack_list);
+  size_t offset = offsetof (struct thread_state, m_stack_bottom);
 
   /* Can't start a thread in temacs.  */
   if (!initialized)
@@ -724,7 +764,7 @@ If NAME is given, it must be a string; it names the new 
thread.  */)
   if (!NILP (name))
     CHECK_STRING (name);
 
-  new_thread = ALLOCATE_PSEUDOVECTOR (struct thread_state, m_byte_stack_list,
+  new_thread = ALLOCATE_PSEUDOVECTOR (struct thread_state, m_stack_bottom,
                                      PVEC_THREAD);
   memset ((char *) new_thread + offset, 0,
          sizeof (struct thread_state) - offset);
@@ -814,7 +854,7 @@ or `thread-join' in the target thread.  */)
   if (tstate == current_thread)
     Fsignal (error_symbol, data);
 
-  /* What to do if thread is already signalled?  */
+  /* What to do if thread is already signaled?  */
   /* What if error_symbol is Qnil?  */
   tstate->error_symbol = error_symbol;
   tstate->error_data = data;
@@ -914,6 +954,13 @@ DEFUN ("all-threads", Fall_threads, Sall_threads, 0, 0, 0,
   return result;
 }
 
+DEFUN ("thread-last-error", Fthread_last_error, Sthread_last_error, 0, 0, 0,
+       doc: /* Return the last error form recorded by a dying thread.  */)
+  (void)
+{
+  return last_thread_error;
+}
+
 
 
 bool
@@ -936,35 +983,41 @@ thread_check_current_buffer (struct buffer *buffer)
 
 
 static void
-init_primary_thread (void)
+init_main_thread (void)
 {
-  primary_thread.header.size
-    = PSEUDOVECSIZE (struct thread_state, m_byte_stack_list);
-  XSETPVECTYPE (&primary_thread, PVEC_THREAD);
-  primary_thread.m_last_thing_searched = Qnil;
-  primary_thread.m_saved_last_thing_searched = Qnil;
-  primary_thread.name = Qnil;
-  primary_thread.function = Qnil;
-  primary_thread.error_symbol = Qnil;
-  primary_thread.error_data = Qnil;
-  primary_thread.event_object = Qnil;
+  main_thread.header.size
+    = PSEUDOVECSIZE (struct thread_state, m_stack_bottom);
+  XSETPVECTYPE (&main_thread, PVEC_THREAD);
+  main_thread.m_last_thing_searched = Qnil;
+  main_thread.m_saved_last_thing_searched = Qnil;
+  main_thread.name = Qnil;
+  main_thread.function = Qnil;
+  main_thread.error_symbol = Qnil;
+  main_thread.error_data = Qnil;
+  main_thread.event_object = Qnil;
+}
+
+bool
+main_thread_p (void *ptr)
+{
+  return ptr == &main_thread;
 }
 
 void
 init_threads_once (void)
 {
-  init_primary_thread ();
+  init_main_thread ();
 }
 
 void
 init_threads (void)
 {
-  init_primary_thread ();
-  sys_cond_init (&primary_thread.thread_condvar);
+  init_main_thread ();
+  sys_cond_init (&main_thread.thread_condvar);
   sys_mutex_init (&global_lock);
   sys_mutex_lock (&global_lock);
-  current_thread = &primary_thread;
-  primary_thread.thread_id = sys_thread_self ();
+  current_thread = &main_thread;
+  main_thread.thread_id = sys_thread_self ();
 }
 
 void
@@ -992,6 +1045,10 @@ syms_of_threads (void)
       defsubr (&Scondition_notify);
       defsubr (&Scondition_mutex);
       defsubr (&Scondition_name);
+      defsubr (&Sthread_last_error);
+
+      staticpro (&last_thread_error);
+      last_thread_error = Qnil;
     }
 
   DEFSYM (Qthreadp, "threadp");
diff --git a/src/thread.h b/src/thread.h
index 7dee67d..9e94de5 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -1,5 +1,5 @@
 /* Thread definitions
-Copyright (C) 2012-2016 Free Software Foundation, Inc.
+Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -19,7 +19,6 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #ifndef THREAD_H
 #define THREAD_H
 
-#include <sys/types.h>         /* for ssize_t used by regex.h */
 #include "regex.h"
 
 #ifdef WINDOWSNT
@@ -28,6 +27,7 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 
 #include "sysselect.h"         /* FIXME */
 #include "systime.h"           /* FIXME */
+#include "systhread.h"
 
 struct thread_state
 {
@@ -48,7 +48,7 @@ struct thread_state
   /* The thread's function.  */
   Lisp_Object function;
 
-  /* If non-nil, this thread has been signalled.  */
+  /* If non-nil, this thread has been signaled.  */
   Lisp_Object error_symbol;
   Lisp_Object error_data;
 
@@ -56,14 +56,7 @@ struct thread_state
      waiting on.  */
   Lisp_Object event_object;
 
-  /* m_byte_stack_list must be the first non-lisp field.  */
-  /* A list of currently active byte-code execution value stacks.
-     Fbyte_code adds an entry to the head of this list before it starts
-     processing byte-code, and it removed the entry again when it is
-     done.  Signalling an error truncates the list.  */
-  struct byte_stack *m_byte_stack_list;
-#define byte_stack_list (current_thread->m_byte_stack_list)
-
+  /* m_stack_bottom must be the first non-Lisp field.  */
   /* An address near the bottom of the stack.
      Tells GC how to save a copy of the stack.  */
   char *m_stack_bottom;
@@ -182,6 +175,25 @@ struct thread_state
   struct thread_state *next_thread;
 };
 
+INLINE bool
+THREADP (Lisp_Object a)
+{
+  return PSEUDOVECTORP (a, PVEC_THREAD);
+}
+
+INLINE void
+CHECK_THREAD (Lisp_Object x)
+{
+  CHECK_TYPE (THREADP (x), Qthreadp, x);
+}
+
+INLINE struct thread_state *
+XTHREAD (Lisp_Object a)
+{
+  eassert (THREADP (a));
+  return XUNTAG (a, Lisp_Vectorlike);
+}
+
 /* A mutex in lisp is represented by a system condition variable.
    The system mutex associated with this condition variable is the
    global lock.
@@ -210,6 +222,25 @@ struct Lisp_Mutex
   lisp_mutex_t mutex;
 };
 
+INLINE bool
+MUTEXP (Lisp_Object a)
+{
+  return PSEUDOVECTORP (a, PVEC_MUTEX);
+}
+
+INLINE void
+CHECK_MUTEX (Lisp_Object x)
+{
+  CHECK_TYPE (MUTEXP (x), Qmutexp, x);
+}
+
+INLINE struct Lisp_Mutex *
+XMUTEX (Lisp_Object a)
+{
+  eassert (MUTEXP (a));
+  return XUNTAG (a, Lisp_Vectorlike);
+}
+
 /* A condition variable as a lisp object.  */
 struct Lisp_CondVar
 {
@@ -225,9 +256,27 @@ struct Lisp_CondVar
   sys_cond_t cond;
 };
 
+INLINE bool
+CONDVARP (Lisp_Object a)
+{
+  return PSEUDOVECTORP (a, PVEC_CONDVAR);
+}
+
+INLINE void
+CHECK_CONDVAR (Lisp_Object x)
+{
+  CHECK_TYPE (CONDVARP (x), Qcondition_variable_p, x);
+}
+
+INLINE struct Lisp_CondVar *
+XCONDVAR (Lisp_Object a)
+{
+  eassert (CONDVARP (a));
+  return XUNTAG (a, Lisp_Vectorlike);
+}
+
 extern struct thread_state *current_thread;
 
-extern void unmark_threads (void);
 extern void finalize_one_thread (struct thread_state *state);
 extern void finalize_one_mutex (struct Lisp_Mutex *);
 extern void finalize_one_condvar (struct Lisp_CondVar *);
@@ -236,6 +285,7 @@ extern void maybe_reacquire_global_lock (void);
 extern void init_threads_once (void);
 extern void init_threads (void);
 extern void syms_of_threads (void);
+extern bool main_thread_p (void *);
 
 typedef int select_func (int, fd_set *, fd_set *, fd_set *,
                         const struct timespec *, const sigset_t *);
diff --git a/src/tparam.c b/src/tparam.c
index d3ae491..7a4adc2 100644
--- a/src/tparam.c
+++ b/src/tparam.c
@@ -1,5 +1,5 @@
 /* Merge parameters into a termcap entry string.
-   Copyright (C) 1985, 1987, 1993, 1995, 2000-2008, 2013-2016 Free
+   Copyright (C) 1985, 1987, 1993, 1995, 2000-2008, 2013-2017 Free
    Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
diff --git a/src/tparam.h b/src/tparam.h
index cc53bb9..15664d6 100644
--- a/src/tparam.h
+++ b/src/tparam.h
@@ -1,6 +1,6 @@
 /* Interface definitions for termcap entries.
 
-Copyright (C) 2011-2016 Free Software Foundation, Inc.
+Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/undo.c b/src/undo.c
index ed69a62..a4ae40c 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -1,5 +1,5 @@
 /* undo handling for GNU Emacs.
-   Copyright (C) 1990, 1993-1994, 2000-2016 Free Software Foundation,
+   Copyright (C) 1990, 1993-1994, 2000-2017 Free Software Foundation,
    Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/unexaix.c b/src/unexaix.c
index c2012f7..75a79c6 100644
--- a/src/unexaix.c
+++ b/src/unexaix.c
@@ -1,5 +1,5 @@
 /* Dump an executable image.
-   Copyright (C) 1985-1988, 1999, 2001-2016 Free Software Foundation,
+   Copyright (C) 1985-1988, 1999, 2001-2017 Free Software Foundation,
    Inc.
 
 This file is part of GNU Emacs.
@@ -245,15 +245,15 @@ make_hdr (int new, int a_out,
 
       if (f_thdr == 0)
        {
-         ERROR1 ("unexec: couldn't find \"%s\" section", (int) _TEXT);
+         ERROR1 ("unexec: couldn't find \"%s\" section", _TEXT);
        }
       if (f_dhdr == 0)
        {
-         ERROR1 ("unexec: couldn't find \"%s\" section", (int) _DATA);
+         ERROR1 ("unexec: couldn't find \"%s\" section", _DATA);
        }
       if (f_bhdr == 0)
        {
-         ERROR1 ("unexec: couldn't find \"%s\" section", (int) _BSS);
+         ERROR1 ("unexec: couldn't find \"%s\" section", _BSS);
        }
     }
   else
@@ -382,7 +382,7 @@ copy_text_and_data (int new)
   write_segment (new, ptr, end);
 
   lseek (new, data_scnptr, SEEK_SET);
-  ptr = (char *) f_ohdr.data_start;
+  ptr = (char *) (ptrdiff_t) f_ohdr.data_start;
   end = ptr + f_ohdr.dsize;
   write_segment (new, ptr, end);
 
@@ -399,7 +399,7 @@ write_segment (int new, char *ptr, char *end)
   for (i = 0; ptr < end;)
     {
       /* distance to next block.  */
-      nwrite = (((int) ptr + UnexBlockSz) & -UnexBlockSz) - (int) ptr;
+      nwrite = (((ptrdiff_t) ptr + UnexBlockSz) & -UnexBlockSz) - (ptrdiff_t) 
ptr;
       /* But not beyond specified end.  */
       if (nwrite > end - ptr) nwrite = end - ptr;
       ret = write (new, ptr, nwrite);
diff --git a/src/unexcoff.c b/src/unexcoff.c
index 6a08380..9852c14 100644
--- a/src/unexcoff.c
+++ b/src/unexcoff.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1985-1988, 1992-1994, 2001-2016 Free Software
+/* Copyright (C) 1985-1988, 1992-1994, 2001-2017 Free Software
  * Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/unexcw.c b/src/unexcw.c
index c0d1bc1..8e5d7e8 100644
--- a/src/unexcw.c
+++ b/src/unexcw.c
@@ -1,7 +1,7 @@
 /* unexec() support for Cygwin;
    complete rewrite of xemacs Cygwin unexec() code
 
-   Copyright (C) 2004-2016 Free Software Foundation, Inc.
+   Copyright (C) 2004-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/unexelf.c b/src/unexelf.c
index 58c9244..7fad64f 100644
--- a/src/unexelf.c
+++ b/src/unexelf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1985-1988, 1990, 1992, 1999-2016 Free Software
+/* Copyright (C) 1985-1988, 1990, 1992, 1999-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/unexmacosx.c b/src/unexmacosx.c
index 5584e69..97dcb43 100644
--- a/src/unexmacosx.c
+++ b/src/unexmacosx.c
@@ -1,5 +1,5 @@
 /* Dump Emacs in Mach-O format for use on macOS.
-   Copyright (C) 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/unexw32.c b/src/unexw32.c
index 5422485..904447c 100644
--- a/src/unexw32.c
+++ b/src/unexw32.c
@@ -1,5 +1,5 @@
 /* unexec for GNU Emacs on Windows NT.
-   Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/vm-limit.c b/src/vm-limit.c
index d53eeca..bb38b44 100644
--- a/src/vm-limit.c
+++ b/src/vm-limit.c
@@ -1,5 +1,5 @@
 /* Functions for memory limit warnings.
-   Copyright (C) 1990, 1992, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1990, 1992, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w16select.c b/src/w16select.c
index 208cfcc..70037f3 100644
--- a/src/w16select.c
+++ b/src/w16select.c
@@ -1,6 +1,6 @@
 /* 16-bit Windows Selection processing for emacs on MS-Windows
 
-Copyright (C) 1996-1997, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1996-1997, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32.c b/src/w32.c
index e96f297..f35ad67 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -1,6 +1,6 @@
 /* Utility and Unix shadow routines for GNU Emacs on the Microsoft Windows API.
 
-Copyright (C) 1994-1995, 2000-2016 Free Software Foundation, Inc.
+Copyright (C) 1994-1995, 2000-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -2154,17 +2154,40 @@ w32_init_random (void *buf, ptrdiff_t buflen)
   return -1;
 }
 
+/* MS-Windows 'rand' produces separate identical series for each
+   thread, so we replace it with our version.  */
+
+/* Algorithm AS183: An Efficient and Portable Pseudo-random Number
+   Generator, by B.A. Wichmann, I.D. Hill.  AS, v31, No. 2 (1982).  */
+static int ix = 3172, iy = 9814, iz = 20125;
+#define RAND_MAX_X  30269
+#define RAND_MAX_Y  30307
+#define RAND_MAX_Z  30323
+
+static int
+rand_as183 (void)
+{
+  ix = (171 * ix) % RAND_MAX_X;
+  iy = (172 * iy) % RAND_MAX_Y;
+  iz = (170 * iz) % RAND_MAX_Z;
+
+  return (ix + iy + iz) & 0x7fff;
+}
+
 int
 random (void)
 {
-  /* rand () on NT gives us 15 random bits...hack together 30 bits.  */
-  return ((rand () << 15) | rand ());
+  /* rand_as183 () gives us 15 random bits...hack together 30 bits.  */
+  return ((rand_as183 () << 15) | rand_as183 ());
 }
 
 void
 srandom (int seed)
 {
   srand (seed);
+  ix = rand () % RAND_MAX_X;
+  iy = rand () % RAND_MAX_Y;
+  iz = rand () % RAND_MAX_Z;
 }
 
 /* Return the maximum length in bytes of a multibyte character
@@ -6384,6 +6407,23 @@ acl_set_file (const char *fname, acl_type_t type, acl_t 
acl)
   return retval;
 }
 
+/* Return true if errno value ERRNUM indicates that ACLs are well
+   supported on this system.  ERRNUM should be an errno value obtained
+   after an ACL-related system call fails.  */
+bool
+acl_errno_valid (int errnum)
+{
+  switch (errnum)
+    {
+    case EBUSY:
+    case EINVAL:
+    case ENOTSUP:
+      return false;
+    default:
+      return true;
+    }
+}
+
 
 /* MS-Windows version of careadlinkat (cf. ../lib/careadlinkat.c).  We
    have a fixed max size for file names, so we don't need the kind of
diff --git a/src/w32.h b/src/w32.h
index c73ff30..1727f8b 100644
--- a/src/w32.h
+++ b/src/w32.h
@@ -2,7 +2,7 @@
 #define EMACS_W32_H
 
 /* Support routines for the NT version of Emacs.
-   Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -89,7 +89,7 @@ typedef struct _child_process
      terminate it by sys_kill.  */
   HWND                hwnd;
   /* Information about subprocess returned by CreateProcess.  Includes
-     handles to the subprocess and its primary thread, and the
+     handles to the subprocess and its main thread, and the
      corresponding process ID and thread ID numbers.  The PID is
      mirrored by the 'pid' member above.  The process handle is used
      to wait on it.  */
diff --git a/src/w32common.h b/src/w32common.h
index f30c0ce..30718e0 100644
--- a/src/w32common.h
+++ b/src/w32common.h
@@ -1,5 +1,5 @@
 /* Common functions for Microsoft Windows builds of Emacs
-   Copyright (C) 2012-2016 Free Software Foundation, Inc.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32console.c b/src/w32console.c
index c71afb6..8df6379 100644
--- a/src/w32console.c
+++ b/src/w32console.c
@@ -1,5 +1,5 @@
 /* Terminal hooks for GNU Emacs on the Microsoft Windows API.
-   Copyright (C) 1992, 1999, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1999, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32fns.c b/src/w32fns.c
index 8c8272b..6a576fc 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -1,6 +1,6 @@
 /* Graphical user interface functions for the Microsoft Windows API.
 
-Copyright (C) 1989, 1992-2016 Free Software Foundation, Inc.
+Copyright (C) 1989, 1992-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -778,7 +778,7 @@ w32_color_map_lookup (const char *colorname)
          break;
        }
 
-      QUIT;
+      maybe_quit ();
     }
 
   unblock_input ();
@@ -3166,7 +3166,7 @@ signal_user_input (void)
   if (!NILP (Vthrow_on_input))
     {
       Vquit_flag = Vthrow_on_input;
-      /* Doing a QUIT from this thread is a bad idea, since this
+      /* Calling maybe_quit from this thread is a bad idea, since this
         unwinds the stack of the Lisp thread, and the Windows runtime
         rightfully barfs.  Disabled.  */
 #if 0
@@ -3174,8 +3174,8 @@ signal_user_input (void)
         do it now.  */
       if (immediate_quit && NILP (Vinhibit_quit))
        {
-         immediate_quit = 0;
-         QUIT;
+         immediate_quit = false;
+         maybe_quit ();
        }
 #endif
     }
@@ -9900,7 +9900,8 @@ Set to nil to handle Caps Lock as the `capslock' key.  
*/);
               doc: /* Modifier to use for the Scroll Lock ON state.
 The value can be hyper, super, meta, alt, control or shift for the
 respective modifier, or nil to handle Scroll Lock as the `scroll' key.
-Any other value will cause the Scroll Lock key to be ignored.  */);
+Any other value will cause the Scroll Lock key to be ignored by Emacs,
+and it will have the same effect as in other applications.  */);
   Vw32_scroll_lock_modifier = Qnil;
 
   DEFVAR_LISP ("w32-lwindow-modifier",
diff --git a/src/w32font.c b/src/w32font.c
index e966024..eff1a78 100644
--- a/src/w32font.c
+++ b/src/w32font.c
@@ -1,5 +1,5 @@
 /* Font backend for the Microsoft Windows API.
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32font.h b/src/w32font.h
index 0e2d0f7..42b425f 100644
--- a/src/w32font.h
+++ b/src/w32font.h
@@ -1,5 +1,5 @@
 /* Shared GDI and Uniscribe Font backend declarations for the Windows API.
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32gui.h b/src/w32gui.h
index 8e995cf..4f142b0 100644
--- a/src/w32gui.h
+++ b/src/w32gui.h
@@ -1,5 +1,5 @@
 /* Definitions and headers for communication on the Microsoft Windows API.
-   Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32heap.c b/src/w32heap.c
index 26a0441..54de961 100644
--- a/src/w32heap.c
+++ b/src/w32heap.c
@@ -1,5 +1,5 @@
 /* Heap management routines for GNU Emacs on the Microsoft Windows API.
-   Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
    This file is part of GNU Emacs.
 
diff --git a/src/w32heap.h b/src/w32heap.h
index 4f2d6c8..0b3e9dd 100644
--- a/src/w32heap.h
+++ b/src/w32heap.h
@@ -1,5 +1,5 @@
 /* Heap management routines (including unexec) for GNU Emacs on Windows NT.
-   Copyright (C) 1994, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1994, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32inevt.c b/src/w32inevt.c
index 2269d31..ed1f1d2 100644
--- a/src/w32inevt.c
+++ b/src/w32inevt.c
@@ -1,5 +1,5 @@
 /* Input event support for Emacs on the Microsoft Windows API.
-   Copyright (C) 1992-1993, 1995, 2001-2016 Free Software Foundation,
+   Copyright (C) 1992-1993, 1995, 2001-2017 Free Software Foundation,
    Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/w32inevt.h b/src/w32inevt.h
index c317196..87442cd 100644
--- a/src/w32inevt.h
+++ b/src/w32inevt.h
@@ -1,5 +1,5 @@
 /* Input routines for GNU Emacs on the Microsoft Windows API.
-   Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32menu.c b/src/w32menu.c
index 7c66360..7dae9de 100644
--- a/src/w32menu.c
+++ b/src/w32menu.c
@@ -1,5 +1,5 @@
 /* Menu support for GNU Emacs on the Microsoft Windows API.
-   Copyright (C) 1986, 1988, 1993-1994, 1996, 1998-1999, 2001-2016 Free
+   Copyright (C) 1986, 1988, 1993-1994, 1996, 1998-1999, 2001-2017 Free
    Software Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/w32notify.c b/src/w32notify.c
index 32a03f7..2520581 100644
--- a/src/w32notify.c
+++ b/src/w32notify.c
@@ -1,5 +1,5 @@
 /* Filesystem notifications support for GNU Emacs on the Microsoft Windows API.
-   Copyright (C) 2012-2016 Free Software Foundation, Inc.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -664,13 +664,13 @@ w32_get_watch_object (void *desc)
   Lisp_Object descriptor = make_pointer_integer (desc);
 
   /* This is called from the input queue handling code, inside a
-     critical section, so we cannot possibly QUIT if watch_list is not
+     critical section, so we cannot possibly quit if watch_list is not
      in the right condition.  */
   return NILP (watch_list) ? Qnil : assoc_no_quit (descriptor, watch_list);
 }
 
 DEFUN ("w32notify-valid-p", Fw32notify_valid_p, Sw32notify_valid_p, 1, 1, 0,
-       doc: /* "Check a watch specified by its WATCH-DESCRIPTOR for validity.
+       doc: /* Check a watch specified by its WATCH-DESCRIPTOR for validity.
 
 WATCH-DESCRIPTOR should be an object returned by `w32notify-add-watch'.
 
diff --git a/src/w32proc.c b/src/w32proc.c
index 6f3a6e0..0aa248a 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -1,6 +1,6 @@
 /* Process support for GNU Emacs on the Microsoft Windows API.
 
-Copyright (C) 1992, 1995, 1999-2016 Free Software Foundation, Inc.
+Copyright (C) 1992, 1995, 1999-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -1449,7 +1449,7 @@ waitpid (pid_t pid, int *status, int options)
 
   do
     {
-      QUIT;
+      maybe_quit ();
       active = WaitForMultipleObjects (nh, wait_hnd, FALSE, timeout_ms);
     } while (active == WAIT_TIMEOUT && !dont_wait);
 
diff --git a/src/w32reg.c b/src/w32reg.c
index 25d6bb8..de19ae1 100644
--- a/src/w32reg.c
+++ b/src/w32reg.c
@@ -1,5 +1,5 @@
 /* Emulate the X Resource Manager through the registry.
-   Copyright (C) 1990, 1993-1994, 2001-2016 Free Software Foundation,
+   Copyright (C) 1990, 1993-1994, 2001-2017 Free Software Foundation,
    Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/w32select.c b/src/w32select.c
index 36908f9..03bcc1c 100644
--- a/src/w32select.c
+++ b/src/w32select.c
@@ -1,6 +1,6 @@
 /* Selection processing for Emacs on the Microsoft Windows API.
 
-Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32select.h b/src/w32select.h
index 54022f7..5cf2d6f 100644
--- a/src/w32select.h
+++ b/src/w32select.h
@@ -1,6 +1,6 @@
 /* Selection processing for Emacs on the Microsoft W32 API.
 
-Copyright (C) 1993-1994, 2001-2016 Free Software Foundation, Inc.
+Copyright (C) 1993-1994, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32term.c b/src/w32term.c
index 2347544..d6b78fd 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -1,6 +1,6 @@
 /* Implementation of GUI terminal on the Microsoft Windows API.
 
-Copyright (C) 1989, 1993-2016 Free Software Foundation, Inc.
+Copyright (C) 1989, 1993-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32term.h b/src/w32term.h
index e29e993..990d379 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -1,5 +1,5 @@
 /* Definitions and headers for communication on the Microsoft Windows API.
-   Copyright (C) 1995, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c
index 960ee06..1584d80 100644
--- a/src/w32uniscribe.c
+++ b/src/w32uniscribe.c
@@ -1,5 +1,5 @@
 /* Font backend for the Microsoft W32 Uniscribe API.
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/w32xfns.c b/src/w32xfns.c
index b5b22c9..587a241 100644
--- a/src/w32xfns.c
+++ b/src/w32xfns.c
@@ -1,5 +1,5 @@
 /* Functions taken directly from X sources for use with the Microsoft Windows 
API.
-   Copyright (C) 1989, 1992-1995, 1999, 2001-2016 Free Software
+   Copyright (C) 1989, 1992-1995, 1999, 2001-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/widget.c b/src/widget.c
index 59ed431..b05fd83 100644
--- a/src/widget.c
+++ b/src/widget.c
@@ -1,5 +1,5 @@
 /* The emacs frame widget.
-   Copyright (C) 1992-1993, 2000-2016 Free Software Foundation, Inc.
+   Copyright (C) 1992-1993, 2000-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -212,16 +212,6 @@ mark_shell_size_user_specified (Widget wmshell)
 #endif
 
 
-/* Can't have static frame locals because of some broken compilers.
-   Normally, initializing a variable like this doesn't work in emacs,
-   but it's ok in this file because it must come after lastfile (and
-   thus have its data not go into text space) because Xt needs to
-   write to initialized data objects too.
- */
-#if 0
-static Boolean first_frame_p = True;
-#endif
-
 static void
 set_frame_size (EmacsFrame ew)
 {
diff --git a/src/widget.h b/src/widget.h
index ceeec38..bb36f61 100644
--- a/src/widget.h
+++ b/src/widget.h
@@ -1,5 +1,5 @@
 /* The emacs frame widget public header file.
-   Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/widgetprv.h b/src/widgetprv.h
index 9d9aa21..9d31bdd 100644
--- a/src/widgetprv.h
+++ b/src/widgetprv.h
@@ -1,5 +1,5 @@
 /* The emacs frame widget private header file.
-   Copyright (C) 1993, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993, 2001-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/window.c b/src/window.c
index c3e6931..71a82b5 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1,6 +1,6 @@
 /* Window creation, deletion and examination for GNU Emacs.
    Does not include redisplay.
-   Copyright (C) 1985-1987, 1993-1998, 2000-2016 Free Software
+   Copyright (C) 1985-1987, 1993-1998, 2000-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -521,9 +521,10 @@ select_window (Lisp_Object window, Lisp_Object norecord,
   bset_last_selected_window (XBUFFER (w->contents), window);
 
  record_and_return:
-  /* record_buffer can run QUIT, so make sure it is run only after we have
-     re-established the invariant between selected_window and selected_frame,
-     otherwise the temporary broken invariant might "escape" (bug#14161).  */
+  /* record_buffer can call maybe_quit, so make sure it is run only
+     after we have re-established the invariant between
+     selected_window and selected_frame, otherwise the temporary
+     broken invariant might "escape" (Bug#14161).  */
   if (NILP (norecord))
     {
       w->use_time = ++window_select_count;
@@ -5683,7 +5684,7 @@ and redisplay normally--don't erase and redraw the frame. 
 */)
   struct buffer *buf = XBUFFER (w->contents);
   bool center_p = false;
   ptrdiff_t charpos, bytepos;
-  EMACS_INT iarg;
+  EMACS_INT iarg UNINIT;
   int this_scroll_margin;
 
   if (buf != current_buffer)
diff --git a/src/window.h b/src/window.h
index 4a102f2..061cf24 100644
--- a/src/window.h
+++ b/src/window.h
@@ -1,5 +1,5 @@
 /* Window definitions for GNU Emacs.
-   Copyright (C) 1985-1986, 1993, 1995, 1997-2016 Free Software
+   Copyright (C) 1985-1986, 1993, 1995, 1997-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -397,6 +397,25 @@ struct window
     ptrdiff_t window_end_bytepos;
   };
 
+INLINE bool
+WINDOWP (Lisp_Object a)
+{
+  return PSEUDOVECTORP (a, PVEC_WINDOW);
+}
+
+INLINE void
+CHECK_WINDOW (Lisp_Object x)
+{
+  CHECK_TYPE (WINDOWP (x), Qwindowp, x);
+}
+
+INLINE struct window *
+XWINDOW (Lisp_Object a)
+{
+  eassert (WINDOWP (a));
+  return XUNTAG (a, Lisp_Vectorlike);
+}
+
 /* Most code should use these functions to set Lisp fields in struct
    window.  */
 INLINE void
diff --git a/src/xdisp.c b/src/xdisp.c
index ad0b968..33661c8 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1,6 +1,6 @@
 /* Display generation from window structure and buffer text.
 
-Copyright (C) 1985-1988, 1993-1995, 1997-2016 Free Software Foundation,
+Copyright (C) 1985-1988, 1993-1995, 1997-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
@@ -1250,27 +1250,18 @@ default_line_pixel_height (struct window *w)
 static Lisp_Object
 string_from_display_spec (Lisp_Object spec)
 {
-  if (CONSP (spec))
+  if (VECTORP (spec))
     {
-      while (CONSP (spec))
-       {
-         if (STRINGP (XCAR (spec)))
-           return XCAR (spec);
-         spec = XCDR (spec);
-       }
+      for (ptrdiff_t i = 0; i < ASIZE (spec); i++)
+       if (STRINGP (AREF (spec, i)))
+         return AREF (spec, i);
     }
-  else if (VECTORP (spec))
+  else
     {
-      ptrdiff_t i;
-
-      for (i = 0; i < ASIZE (spec); i++)
-       {
-         if (STRINGP (AREF (spec, i)))
-           return AREF (spec, i);
-       }
-      return Qnil;
+      for (; CONSP (spec); spec = XCDR (spec))
+       if (STRINGP (XCAR (spec)))
+         return XCAR (spec);
     }
-
   return spec;
 }
 
@@ -13049,6 +13040,17 @@ hscroll_window_tree (Lisp_Object window)
              init_to_row_start (&it, w, cursor_row);
              it.last_visible_x = INFINITY;
              move_it_in_display_line_to (&it, pt, -1, MOVE_TO_POS);
+             /* If the line ends in an overlay string with a newline,
+                we might infloop, because displaying the window will
+                want to put the cursor after the overlay, i.e. at X
+                coordinate of zero on the next screen line.  So we
+                use the buffer position prior to the overlay string
+                instead.  */
+             if (it.method == GET_FROM_STRING && pt > 1)
+               {
+                 init_to_row_start (&it, w, cursor_row);
+                 move_it_in_display_line_to (&it, pt - 1, -1, MOVE_TO_POS);
+               }
              current_buffer = saved_current_buffer;
 
              /* Position cursor in window.  */
@@ -22633,7 +22635,7 @@ move_elt_to_front (Lisp_Object elt, Lisp_Object list)
       else
        prev = tail;
       tail = XCDR (tail);
-      QUIT;
+      maybe_quit ();
     }
 
   /* Not found--return unchanged LIST.  */
diff --git a/src/xfaces.c b/src/xfaces.c
index accb98b..830106d 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -1,6 +1,6 @@
 /* xfaces.c -- "Face" primitives.
 
-Copyright (C) 1993-1994, 1998-2016 Free Software Foundation, Inc.
+Copyright (C) 1993-1994, 1998-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/xfns.c b/src/xfns.c
index 3438c8e..97aa923 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -1,6 +1,6 @@
 /* Functions for the X window system.
 
-Copyright (C) 1989, 1992-2016 Free Software Foundation, Inc.
+Copyright (C) 1989, 1992-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/xfont.c b/src/xfont.c
index 09ca628..b73596c 100644
--- a/src/xfont.c
+++ b/src/xfont.c
@@ -1,5 +1,5 @@
 /* xfont.c -- X core font driver.
-   Copyright (C) 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
    Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H13PRO009
diff --git a/src/xftfont.c b/src/xftfont.c
index 7f0e3c6..137d5ba 100644
--- a/src/xftfont.c
+++ b/src/xftfont.c
@@ -1,5 +1,5 @@
 /* xftfont.c -- XFT font driver.
-   Copyright (C) 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
    Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H13PRO009
diff --git a/src/xgselect.c b/src/xgselect.c
index a9461a5..26a2d27 100644
--- a/src/xgselect.c
+++ b/src/xgselect.c
@@ -1,6 +1,6 @@
 /* Function for handling the GLib event loop.
 
-Copyright (C) 2009-2016 Free Software Foundation, Inc.
+Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -25,6 +25,7 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 
 #include <glib.h>
 #include <errno.h>
+#include "lisp.h"
 #include "blockinput.h"
 #include "systime.h"
 
@@ -41,11 +42,11 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 
 int
 xg_select (int fds_lim, fd_set *rfds, fd_set *wfds, fd_set *efds,
-          struct timespec const *timeout, sigset_t const *sigmask)
+          struct timespec *timeout, sigset_t *sigmask)
 {
   fd_set all_rfds, all_wfds;
   struct timespec tmo;
-  struct timespec const *tmop = timeout;
+  struct timespec *tmop = timeout;
 
   GMainContext *context;
   bool have_wfds = wfds != NULL;
@@ -113,9 +114,9 @@ xg_select (int fds_lim, fd_set *rfds, fd_set *wfds, fd_set 
*efds,
     }
 
   fds_lim = max_fds + 1;
-  nfds = pselect (fds_lim, &all_rfds, have_wfds ? &all_wfds : NULL,
-                 efds, tmop, sigmask);
-
+  nfds = thread_select (pselect, fds_lim,
+                       &all_rfds, have_wfds ? &all_wfds : NULL, efds,
+                       tmop, sigmask);
   if (nfds < 0)
     retval = nfds;
   else if (nfds > 0)
diff --git a/src/xgselect.h b/src/xgselect.h
index 4c56633..5baf8a8 100644
--- a/src/xgselect.h
+++ b/src/xgselect.h
@@ -1,6 +1,6 @@
 /* Header for xg_select.
 
-Copyright (C) 2009-2016 Free Software Foundation, Inc.
+Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -27,7 +27,6 @@ struct timespec;
 
 extern int xg_select (int max_fds,
                      fd_set *rfds, fd_set *wfds, fd_set *efds,
-                     struct timespec const *timeout,
-                     sigset_t const *sigmask);
+                     struct timespec *timeout, sigset_t *sigmask);
 
 #endif /* XGSELECT_H */
diff --git a/src/xmenu.c b/src/xmenu.c
index 9ab7bdf..e1f71a2 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -1,6 +1,6 @@
 /* X Communication module for terminals which understand the X protocol.
 
-Copyright (C) 1986, 1988, 1993-1994, 1996, 1999-2016 Free Software
+Copyright (C) 1986, 1988, 1993-1994, 1996, 1999-2017 Free Software
 Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/xml.c b/src/xml.c
index 7d61dc7..7953491 100644
--- a/src/xml.c
+++ b/src/xml.c
@@ -1,5 +1,5 @@
 /* Interface to libxml2.
-   Copyright (C) 2010-2016 Free Software Foundation, Inc.
+   Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/xrdb.c b/src/xrdb.c
index b4bc118..5611a33 100644
--- a/src/xrdb.c
+++ b/src/xrdb.c
@@ -1,5 +1,5 @@
 /* Deal with the X Resource Manager.
-   Copyright (C) 1990, 1993-1994, 2000-2016 Free Software Foundation,
+   Copyright (C) 1990, 1993-1994, 2000-2017 Free Software Foundation,
    Inc.
 
 Author: Joseph Arceneaux
diff --git a/src/xselect.c b/src/xselect.c
index b997cc8..2249828 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -1,5 +1,5 @@
 /* X Selection processing for Emacs.
-   Copyright (C) 1993-1997, 2000-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993-1997, 2000-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -329,7 +329,7 @@ x_own_selection (Lisp_Object selection_name, Lisp_Object 
selection_value,
        Fcons (selection_data, dpyinfo->terminal->Vselection_alist));
 
     /* If we already owned the selection, remove the old selection
-       data.  Don't use Fdelq as that may QUIT.  */
+       data.  Don't use Fdelq as that may quit.  */
     if (!NILP (prev_value))
       {
        /* We know it's not the CAR, so it's easy.  */
@@ -929,7 +929,7 @@ x_handle_selection_clear (struct selection_input_event 
*event)
       && local_selection_time > changed_owner_time)
     return;
 
-  /* Otherwise, really clear.  Don't use Fdelq as that may QUIT;.  */
+  /* Otherwise, really clear.  Don't use Fdelq as that may quit.  */
   Vselection_alist = dpyinfo->terminal->Vselection_alist;
   if (EQ (local_selection_data, CAR (Vselection_alist)))
     Vselection_alist = XCDR (Vselection_alist);
diff --git a/src/xsettings.c b/src/xsettings.c
index d7af68f..4d56ad1 100644
--- a/src/xsettings.c
+++ b/src/xsettings.c
@@ -1,6 +1,6 @@
 /* Functions for handling font and other changes dynamically.
 
-Copyright (C) 2009-2016 Free Software Foundation, Inc.
+Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -667,8 +667,23 @@ apply_xft_settings (struct x_display_info *dpyinfo,
     }
 #endif
 
-  if ((settings->seen & SEEN_DPI) != 0 && oldsettings.dpi != settings->dpi
-      && settings->dpi > 0)
+  if ((settings->seen & SEEN_DPI) != 0
+      && settings->dpi > 0
+      /* The following conjunct avoids setting `changed' to true when
+        old and new dpi settings do not differ "substantially".
+        Otherwise, the dynamic-setting Elisp code may process all sorts
+        of unrelated settings that override users' font customizations,
+        among others.  Compare:
+
+        http://lists.gnu.org/archive/html/emacs-devel/2016-05/msg00557.html
+        http://lists.gnu.org/archive/html/bug-gnu-emacs/2016-12/msg00820.html
+
+        As soon as the dynamic-settings code has been tested and
+        verified, this Emacs 25.2 workaround should be removed.  */
+      && ((oldsettings.dpi >= settings->dpi
+          && (oldsettings.dpi - settings->dpi) > 2)
+         || ((settings->dpi > oldsettings.dpi)
+             && (settings->dpi - oldsettings.dpi) > 2)))
     {
       FcPatternDel (pat, FC_DPI);
       FcPatternAddDouble (pat, FC_DPI, settings->dpi);
diff --git a/src/xsettings.h b/src/xsettings.h
index fa2b5c5..ba2a310 100644
--- a/src/xsettings.h
+++ b/src/xsettings.h
@@ -1,6 +1,6 @@
 /* Functions for handle font changes dynamically.
 
-Copyright (C) 2009-2016 Free Software Foundation, Inc.
+Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/xsmfns.c b/src/xsmfns.c
index 95ede64..d3b4d4d 100644
--- a/src/xsmfns.c
+++ b/src/xsmfns.c
@@ -1,7 +1,7 @@
 /* Session management module for systems which understand the X Session
    management protocol.
 
-Copyright (C) 2002-2016 Free Software Foundation, Inc.
+Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/xterm.c b/src/xterm.c
index bdc21e6..38229a5 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -1,6 +1,6 @@
 /* X Communication module for terminals which understand the X protocol.
 
-Copyright (C) 1989, 1993-2016 Free Software Foundation, Inc.
+Copyright (C) 1989, 1993-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -635,7 +635,7 @@ x_cr_export_frames (Lisp_Object frames, 
cairo_surface_type_t surface_type)
        (*surface_set_size_func) (surface, width, height);
 
       unblock_input ();
-      QUIT;
+      maybe_quit ();
       block_input ();
     }
 
@@ -10993,19 +10993,12 @@ xembed_send_message (struct frame *f, Time t, enum 
xembed_message msg,
 
 /* Change of visibility.  */
 
-/* This tries to wait until the frame is really visible.
-   However, if the window manager asks the user where to position
-   the frame, this will return before the user finishes doing that.
-   The frame will not actually be visible at that time,
-   but it will become visible later when the window manager
-   finishes with it.  */
+/* This function sends the request to make the frame visible, but may
+   return before it the frame's visibility is changed.  */
 
 void
 x_make_frame_visible (struct frame *f)
 {
-  int original_top, original_left;
-  int tries = 0;
-
   block_input ();
 
   x_set_bitmap_icon (f);
@@ -11052,16 +11045,13 @@ x_make_frame_visible (struct frame *f)
      before we do anything else.  We do this loop with input not blocked
      so that incoming events are handled.  */
   {
-    Lisp_Object frame;
     /* This must be before UNBLOCK_INPUT
        since events that arrive in response to the actions above
        will set it when they are handled.  */
     bool previously_visible = f->output_data.x->has_been_visible;
 
-    XSETFRAME (frame, f);
-
-    original_left = f->left_pos;
-    original_top = f->top_pos;
+    int original_left = f->left_pos;
+    int original_top = f->top_pos;
 
     /* This must come after we set COUNT.  */
     unblock_input ();
@@ -11105,46 +11095,6 @@ x_make_frame_visible (struct frame *f)
 
        unblock_input ();
       }
-
-    /* Process X events until a MapNotify event has been seen.  */
-    while (!FRAME_VISIBLE_P (f))
-      {
-       /* Force processing of queued events.  */
-       x_sync (f);
-
-        /* If on another desktop, the deiconify/map may be ignored and the
-           frame never becomes visible.  XMonad does this.
-           Prevent an endless loop.  */
-        if (FRAME_ICONIFIED_P (f) &&  ++tries > 100)
-          break;
-
-       /* This hack is still in use at least for Cygwin.  See
-          http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00351.html.
-
-          Machines that do polling rather than SIGIO have been
-          observed to go into a busy-wait here.  So we'll fake an
-          alarm signal to let the handler know that there's something
-          to be read.  We used to raise a real alarm, but it seems
-          that the handler isn't always enabled here.  This is
-          probably a bug.  */
-       if (input_polling_used ())
-         {
-           /* It could be confusing if a real alarm arrives while
-              processing the fake one.  Turn it off and let the
-              handler reset it.  */
-           int old_poll_suppress_count = poll_suppress_count;
-           poll_suppress_count = 1;
-           poll_for_input_1 ();
-           poll_suppress_count = old_poll_suppress_count;
-         }
-
-       if (XPending (FRAME_X_DISPLAY (f)))
-         {
-           XEvent xev;
-           XNextEvent (FRAME_X_DISPLAY (f), &xev);
-           x_dispatch_event (&xev, FRAME_X_DISPLAY (f));
-         }
-      }
   }
 }
 
@@ -12762,6 +12712,13 @@ x_initialize (void)
   /* Try to use interrupt input; if we can't, then start polling.  */
   Fset_input_interrupt_mode (Qt);
 
+#if THREADS_ENABLED
+  /* This must be called before any other Xlib routines.  */
+  if (XInitThreads () == 0)
+    fprintf (stderr,
+            "Warning: An error occurred initializing X11 thread support!\n");
+#endif
+
 #ifdef USE_X_TOOLKIT
   XtToolkitInitialize ();
 
@@ -12920,7 +12877,7 @@ keysyms.  The default is nil, which is the same as 
`super'.  */);
   Vx_keysym_table = make_hash_table (hashtest_eql, make_number (900),
                                     make_float (DEFAULT_REHASH_SIZE),
                                     make_float (DEFAULT_REHASH_THRESHOLD),
-                                    Qnil);
+                                    Qnil, Qnil);
 
   DEFVAR_BOOL ("x-frame-normalize-before-maximize",
               x_frame_normalize_before_maximize,
diff --git a/src/xterm.h b/src/xterm.h
index 01d7efc..32c879b 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -1,5 +1,5 @@
 /* Definitions and headers for communication with X protocol.
-   Copyright (C) 1989, 1993-1994, 1998-2016 Free Software Foundation,
+   Copyright (C) 1989, 1993-1994, 1998-2017 Free Software Foundation,
    Inc.
 
 This file is part of GNU Emacs.
diff --git a/src/xwidget.c b/src/xwidget.c
index 62df665..4ba1617 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -1,6 +1,6 @@
 /* Support for embedding graphical components in a buffer.
 
-Copyright (C) 2011-2016 Free Software Foundation, Inc.
+Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/src/xwidget.h b/src/xwidget.h
index 4447abb..d43b401 100644
--- a/src/xwidget.h
+++ b/src/xwidget.h
@@ -1,6 +1,6 @@
 /* Support for embedding graphical components in a buffer.
 
-Copyright (C) 2011-2016 Free Software Foundation, Inc.
+Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
diff --git a/test/ChangeLog.1 b/test/ChangeLog.1
index 367ca74..4491eb8 100644
--- a/test/ChangeLog.1
+++ b/test/ChangeLog.1
@@ -2952,7 +2952,7 @@
 ;; coding: utf-8
 ;; End:
 
-  Copyright (C) 2008-2016 Free Software Foundation, Inc.
+  Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
   This file is part of GNU Emacs.
 
diff --git a/test/Makefile.in b/test/Makefile.in
index f2f2763..5849e9c 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 2010-2016 Free Software Foundation, Inc.
+# Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
diff --git a/test/README b/test/README
index fec84a8..fca2016 100644
--- a/test/README
+++ b/test/README
@@ -1,4 +1,4 @@
-Copyright (C) 2008-2016 Free Software Foundation, Inc.
+Copyright (C) 2008-2017 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 This directory contains files intended to test various aspects of
diff --git a/test/lisp/abbrev-tests.el b/test/lisp/abbrev-tests.el
index c747e19..1ffcd6a 100644
--- a/test/lisp/abbrev-tests.el
+++ b/test/lisp/abbrev-tests.el
@@ -1,6 +1,6 @@
 ;;; abbrev-tests.el --- Test suite for abbrevs  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Eli Zaretskii <address@hidden>
 ;; Keywords: abbrevs
@@ -45,8 +45,7 @@
   (should-not (abbrev-table-p []))
   ;; Missing :abbrev-table-modiff counter:
   (should-not (abbrev-table-p (obarray-make)))
-  (let* ((table (obarray-make)))
-    (should (abbrev-table-empty-p (make-abbrev-table)))))
+  (should (abbrev-table-empty-p (make-abbrev-table))))
 
 (ert-deftest abbrev-make-abbrev-table-test ()
   ;; Table without properties:
diff --git a/test/lisp/auth-source-tests.el b/test/lisp/auth-source-tests.el
index 5faa1fe..e73f55e 100644
--- a/test/lisp/auth-source-tests.el
+++ b/test/lisp/auth-source-tests.el
@@ -1,6 +1,6 @@
 ;;; auth-source-tests.el --- Tests for auth-source.el  -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Damien Cassou <address@hidden>,
 ;;         Nicolas Petton <address@hidden>
diff --git a/test/lisp/autorevert-tests.el b/test/lisp/autorevert-tests.el
index 2f951c0..aea855a 100644
--- a/test/lisp/autorevert-tests.el
+++ b/test/lisp/autorevert-tests.el
@@ -1,6 +1,6 @@
 ;;; auto-revert-tests.el --- Tests of auto-revert
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 
diff --git a/test/lisp/buff-menu-tests.el b/test/lisp/buff-menu-tests.el
index 133a4f6..43214f2 100644
--- a/test/lisp/buff-menu-tests.el
+++ b/test/lisp/buff-menu-tests.el
@@ -1,6 +1,6 @@
-;;; buff-menu-tests.el --- Test suite for buff-menu-tests.el -*- 
lexical-binding: t -*-
+;;; buff-menu-tests.el --- Test suite for buff-menu.el -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Tino Calancha <address@hidden>
 
diff --git a/test/lisp/calc/calc-tests.el b/test/lisp/calc/calc-tests.el
index c1fb169..8f56d48 100644
--- a/test/lisp/calc/calc-tests.el
+++ b/test/lisp/calc/calc-tests.el
@@ -1,6 +1,6 @@
 ;;; calc-tests.el --- tests for calc                 -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Leo Liu <address@hidden>
 ;; Keywords: maint
diff --git a/test/lisp/calendar/icalendar-tests.el 
b/test/lisp/calendar/icalendar-tests.el
index 307d687..3e09002 100644
--- a/test/lisp/calendar/icalendar-tests.el
+++ b/test/lisp/calendar/icalendar-tests.el
@@ -1,6 +1,6 @@
 ;; icalendar-tests.el --- Test suite for icalendar.el
 
-;; Copyright (C) 2005, 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2008-2017 Free Software Foundation, Inc.
 
 ;; Author:         Ulf Jasper <address@hidden>
 ;; Created:        March 2005
diff --git a/test/lisp/calendar/parse-time-tests.el 
b/test/lisp/calendar/parse-time-tests.el
index 9bcf2b4..26b4e9e 100644
--- a/test/lisp/calendar/parse-time-tests.el
+++ b/test/lisp/calendar/parse-time-tests.el
@@ -1,6 +1,6 @@
 ;; parse-time-tests.el --- Test suite for parse-time.el
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Ingebrigtsen <address@hidden>
 
@@ -42,7 +42,23 @@
   (should (equal (parse-time-string "Monday, 22 february 2016 19:35:42 +0100")
                  '(42 35 19 22 2 2016 1 nil 3600)))
   (should (equal (parse-time-string "Monday, 22 february 2016 19:35:42 PDT")
-                 '(42 35 19 22 2 2016 1 t -25200))))
+                 '(42 35 19 22 2 2016 1 t -25200)))
+  (should (equal (parse-iso8601-time-string "1998-09-12T12:21:54-0200")
+                 '(13818 33666)))
+  (should (equal (parse-iso8601-time-string "1998-09-12T12:21:54-0230")
+                 '(13818 35466)))
+  (should (equal (parse-iso8601-time-string "1998-09-12T12:21:54-02:00")
+                 '(13818 33666)))
+  (should (equal (parse-iso8601-time-string "1998-09-12T12:21:54-02")
+                 '(13818 33666)))
+  (should (equal (parse-iso8601-time-string "1998-09-12T12:21:54+0230")
+                 '(13818 17466)))
+  (should (equal (parse-iso8601-time-string "1998-09-12T12:21:54+02")
+                 '(13818 19266)))
+  (should (equal (parse-iso8601-time-string "1998-09-12T12:21:54Z")
+                 '(13818 26466)))
+  (should (equal (parse-iso8601-time-string "1998-09-12T12:21:54")
+                 (encode-time 54 21 12 12 9 1998))))
 
 (provide 'parse-time-tests)
 
diff --git a/test/lisp/char-fold-tests.el b/test/lisp/char-fold-tests.el
index 485254a..d86c731 100644
--- a/test/lisp/char-fold-tests.el
+++ b/test/lisp/char-fold-tests.el
@@ -1,6 +1,6 @@
 ;;; char-fold-tests.el --- Tests for char-fold.el  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Artur Malabarba <address@hidden>
 
diff --git a/test/lisp/comint-tests.el b/test/lisp/comint-tests.el
index 576be23..3205c9e 100644
--- a/test/lisp/comint-tests.el
+++ b/test/lisp/comint-tests.el
@@ -1,6 +1,6 @@
 ;;; comint-testsuite.el
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/dabbrev-tests.el b/test/lisp/dabbrev-tests.el
index 9c7a838..5baa315 100644
--- a/test/lisp/dabbrev-tests.el
+++ b/test/lisp/dabbrev-tests.el
@@ -1,6 +1,6 @@
 ;;; dabbrev-tests.el --- Test suite for dabbrev.
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Alan Third <address@hidden>
 ;; Keywords: dabbrev
diff --git a/test/lisp/descr-text-tests.el b/test/lisp/descr-text-tests.el
index 9e851c3..df0f845 100644
--- a/test/lisp/descr-text-tests.el
+++ b/test/lisp/descr-text-tests.el
@@ -1,6 +1,6 @@
 ;;; descr-text-test.el --- ERT tests for descr-text.el -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 2014, 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014, 2016-2017 Free Software Foundation, Inc.
 
 ;; Author:     Michal Nazarewicz <address@hidden>
 
diff --git a/test/lisp/dired-tests.el b/test/lisp/dired-tests.el
index 6dd4bb9..489f8fd 100644
--- a/test/lisp/dired-tests.el
+++ b/test/lisp/dired-tests.el
@@ -1,6 +1,6 @@
 ;;; dired-tests.el --- Test suite. -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/dom-tests.el b/test/lisp/dom-tests.el
index ca6bfbf..09114bd 100644
--- a/test/lisp/dom-tests.el
+++ b/test/lisp/dom-tests.el
@@ -1,6 +1,6 @@
 ;;; dom-tests.el --- Tests for dom.el  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Simen Heggestøyl <address@hidden>
 ;; Keywords:
diff --git a/test/lisp/electric-tests.el b/test/lisp/electric-tests.el
index 17b4e02..78a3765 100644
--- a/test/lisp/electric-tests.el
+++ b/test/lisp/electric-tests.el
@@ -1,6 +1,6 @@
 ;;; electric-tests.el --- tests for electric.el
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: João Távora <address@hidden>
 ;; Keywords:
diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el 
b/test/lisp/emacs-lisp/bytecomp-tests.el
index 91d438e..bc47c82 100644
--- a/test/lisp/emacs-lisp/bytecomp-tests.el
+++ b/test/lisp/emacs-lisp/bytecomp-tests.el
@@ -1,6 +1,6 @@
 ;;; bytecomp-tests.el
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Shigeru Fukaya <address@hidden>
 ;; Author: Stefan Monnier <address@hidden>
diff --git a/test/lisp/emacs-lisp/checkdoc-tests.el 
b/test/lisp/emacs-lisp/checkdoc-tests.el
new file mode 100644
index 0000000..ac1375e
--- /dev/null
+++ b/test/lisp/emacs-lisp/checkdoc-tests.el
@@ -0,0 +1,53 @@
+;;; checkdoc-tests.el --- unit tests for checkdoc.el  -*- lexical-binding: t; 
-*-
+
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
+
+;; Author: Google Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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.
+
+;; GNU Emacs 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 GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Unit tests for lisp/emacs-lisp/checkdoc.el.
+
+;;; Code:
+
+(require 'checkdoc)
+
+(require 'elisp-mode)
+(require 'ert)
+
+(ert-deftest checkdoc-tests--bug-24998 ()
+  "Checks that Bug#24998 is fixed."
+  (with-temp-buffer
+    (emacs-lisp-mode)
+    (insert "(defun foo())")
+    (should-error (checkdoc-defun) :type 'user-error)))
+
+(ert-deftest checkdoc-tests--next-docstring ()
+  "Checks that the one-argument form of `defvar' works.
+See the comments in Bug#24998."
+  (with-temp-buffer
+    (emacs-lisp-mode)
+    (insert "(defvar foo)
+\(defvar foo bar \"baz\")
+\(require 'foo)")
+    (goto-char (point-min))
+    (should (checkdoc-next-docstring))
+    (should (looking-at-p "\"baz\")"))
+    (should-not (checkdoc-next-docstring))))
+
+;;; checkdoc-tests.el ends here
diff --git a/test/lisp/emacs-lisp/cl-generic-tests.el 
b/test/lisp/emacs-lisp/cl-generic-tests.el
index dee10fe..0768e31 100644
--- a/test/lisp/emacs-lisp/cl-generic-tests.el
+++ b/test/lisp/emacs-lisp/cl-generic-tests.el
@@ -1,6 +1,6 @@
 ;;; cl-generic-tests.el --- Tests for cl-generic.el functionality  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 
diff --git a/test/lisp/emacs-lisp/cl-lib-tests.el 
b/test/lisp/emacs-lisp/cl-lib-tests.el
index cbaf70f..5edc3e7 100644
--- a/test/lisp/emacs-lisp/cl-lib-tests.el
+++ b/test/lisp/emacs-lisp/cl-lib-tests.el
@@ -1,6 +1,6 @@
 ;;; cl-lib.el --- tests for emacs-lisp/cl-lib.el  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/emacs-lisp/cl-seq-tests.el 
b/test/lisp/emacs-lisp/cl-seq-tests.el
index 02d9246..61e3d72 100644
--- a/test/lisp/emacs-lisp/cl-seq-tests.el
+++ b/test/lisp/emacs-lisp/cl-seq-tests.el
@@ -1,6 +1,6 @@
 ;;; cl-seq-tests.el --- Tests for cl-seq.el functionality  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Richard <address@hidden>
 
@@ -250,9 +250,9 @@ Body are forms defining the test."
     (should (= 0 (cl-count -5 list)))
     (should (= 0 (cl-count 2 list :start 2 :end 4)))
     (should (= 4 (cl-count 'foo list :key (lambda (x) (and (cl-evenp x) 
'foo)))))
-    (should (= 4 (cl-count 'foo list :test (lambda (a b) (cl-evenp b)))))
-    (should (equal (cl-count 'foo list :test (lambda (a b) (cl-oddp b)))
-                   (cl-count 'foo list :test-not (lambda (a b) (cl-evenp 
b)))))))
+    (should (= 4 (cl-count 'foo list :test (lambda (_a b) (cl-evenp b)))))
+    (should (equal (cl-count 'foo list :test (lambda (_a b) (cl-oddp b)))
+                   (cl-count 'foo list :test-not (lambda (_a b) (cl-evenp 
b)))))))
 
 ;; keywords supported:  :test :test-not :key :start1 :end1 :start2 :end2 
:from-end
 (ert-deftest cl-seq-mismatch-test ()
diff --git a/test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el 
b/test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el
index eb26047..09edea4 100644
--- a/test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el
+++ b/test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el
@@ -1,6 +1,6 @@
 ;;; eieio-testsinvoke.el -- eieio tests for method invocation
 
-;; Copyright (C) 2005, 2008, 2010, 2013-2016 Free Software Foundation,
+;; Copyright (C) 2005, 2008, 2010, 2013-2017 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el 
b/test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
index 2f8d65e..da4cc5f 100644
--- a/test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
+++ b/test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
@@ -1,6 +1,6 @@
 ;;; eieio-persist.el --- Tests for eieio-persistent class
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/lisp/emacs-lisp/eieio-tests/eieio-tests.el 
b/test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
index 9665beb..db601ab 100644
--- a/test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
+++ b/test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
@@ -1,6 +1,6 @@
 ;;; eieio-tests.el -- eieio tests routines
 
-;; Copyright (C) 1999-2003, 2005-2010, 2012-2016 Free Software
+;; Copyright (C) 1999-2003, 2005-2010, 2012-2017 Free Software
 ;; Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
diff --git a/test/lisp/emacs-lisp/ert-tests.el 
b/test/lisp/emacs-lisp/ert-tests.el
index 83fddd1..fc5790c 100644
--- a/test/lisp/emacs-lisp/ert-tests.el
+++ b/test/lisp/emacs-lisp/ert-tests.el
@@ -1,6 +1,6 @@
 ;;; ert-tests.el --- ERT's self-tests  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2007-2008, 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2008, 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Christian Ohler <address@hidden>
 
diff --git a/test/lisp/emacs-lisp/ert-x-tests.el 
b/test/lisp/emacs-lisp/ert-x-tests.el
index ef8642a..4615d08 100644
--- a/test/lisp/emacs-lisp/ert-x-tests.el
+++ b/test/lisp/emacs-lisp/ert-x-tests.el
@@ -1,6 +1,6 @@
 ;;; ert-x-tests.el --- Tests for ert-x.el
 
-;; Copyright (C) 2008, 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Phil Hagelberg
 ;;        Christian Ohler <address@hidden>
diff --git a/test/lisp/emacs-lisp/generator-tests.el 
b/test/lisp/emacs-lisp/generator-tests.el
index 8ed0f2a..1a567ac 100644
--- a/test/lisp/emacs-lisp/generator-tests.el
+++ b/test/lisp/emacs-lisp/generator-tests.el
@@ -1,6 +1,6 @@
 ;;; generator-tests.el --- Testing generators -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Daniel Colascione <address@hidden>
 ;; Keywords:
diff --git a/test/lisp/emacs-lisp/let-alist-tests.el 
b/test/lisp/emacs-lisp/let-alist-tests.el
index 657a27a..d046457 100644
--- a/test/lisp/emacs-lisp/let-alist-tests.el
+++ b/test/lisp/emacs-lisp/let-alist-tests.el
@@ -1,6 +1,6 @@
 ;;; let-alist.el --- tests for file handling. -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -31,7 +31,7 @@
                    (.test-two (cdr (assq 'test-two symbol))))
                (list .test-one .test-two
                      .test-two .test-two)))
-          (cl-letf (((symbol-function #'make-symbol) (lambda (x) 'symbol)))
+          (cl-letf (((symbol-function #'make-symbol) (lambda (_x) 'symbol)))
             (macroexpand
              '(let-alist data (list .test-one .test-two
                                     .test-two .test-two))))))
@@ -51,8 +51,7 @@
 (ert-deftest let-alist-cons ()
   (should
    (equal
-    (let ((.external "ext")
-          (.external.too "et"))
+    (let ((.external "ext"))
       (let-alist '((test-two . 0)
                    (test-three . 1)
                    (sublist . ((foo . 2)
diff --git a/test/lisp/emacs-lisp/lisp-tests.el 
b/test/lisp/emacs-lisp/lisp-tests.el
index 2dadae9..8cba7fc 100644
--- a/test/lisp/emacs-lisp/lisp-tests.el
+++ b/test/lisp/emacs-lisp/lisp-tests.el
@@ -1,6 +1,6 @@
 ;;; lisp-tests.el --- Test Lisp editing commands     -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2013-2016  Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Aaron S. Hawley <address@hidden>
 ;; Author: Stefan Monnier <address@hidden>
diff --git a/test/lisp/emacs-lisp/map-tests.el 
b/test/lisp/emacs-lisp/map-tests.el
index 0af1c65..07e85cc 100644
--- a/test/lisp/emacs-lisp/map-tests.el
+++ b/test/lisp/emacs-lisp/map-tests.el
@@ -1,6 +1,6 @@
 ;;; map-tests.el --- Tests for map.el  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Petton <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/test/lisp/emacs-lisp/nadvice-tests.el 
b/test/lisp/emacs-lisp/nadvice-tests.el
index cd51599..b228da6 100644
--- a/test/lisp/emacs-lisp/nadvice-tests.el
+++ b/test/lisp/emacs-lisp/nadvice-tests.el
@@ -1,6 +1,6 @@
 ;;; advice-tests.el --- Test suite for the new advice thingy.
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/emacs-lisp/package-tests.el 
b/test/lisp/emacs-lisp/package-tests.el
index 3d2801e..2e4666e 100644
--- a/test/lisp/emacs-lisp/package-tests.el
+++ b/test/lisp/emacs-lisp/package-tests.el
@@ -1,6 +1,6 @@
 ;;; package-test.el --- Tests for the Emacs package system
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Daniel Hackney <address@hidden>
 ;; Version: 1.0
diff --git a/test/lisp/emacs-lisp/pcase-tests.el 
b/test/lisp/emacs-lisp/pcase-tests.el
index a428e40..ef0b2f6 100644
--- a/test/lisp/emacs-lisp/pcase-tests.el
+++ b/test/lisp/emacs-lisp/pcase-tests.el
@@ -1,6 +1,6 @@
 ;;; pcase-tests.el --- Test suite for pcase macro.
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/emacs-lisp/regexp-opt-tests.el 
b/test/lisp/emacs-lisp/regexp-opt-tests.el
index 01119a3..9262631 100644
--- a/test/lisp/emacs-lisp/regexp-opt-tests.el
+++ b/test/lisp/emacs-lisp/regexp-opt-tests.el
@@ -1,6 +1,6 @@
 ;;; regexp-tests.el --- Test suite for regular expression handling.
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords:       internal
diff --git a/test/lisp/emacs-lisp/ring-tests.el 
b/test/lisp/emacs-lisp/ring-tests.el
index affde89..c869f9d 100644
--- a/test/lisp/emacs-lisp/ring-tests.el
+++ b/test/lisp/emacs-lisp/ring-tests.el
@@ -1,6 +1,6 @@
 ;;; ring-tests.el --- Tests for ring.el  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Simen Heggestøyl <address@hidden>
 ;; Keywords:
diff --git a/test/lisp/emacs-lisp/rx-tests.el b/test/lisp/emacs-lisp/rx-tests.el
index 7ff45f6..8b7945c 100644
--- a/test/lisp/emacs-lisp/rx-tests.el
+++ b/test/lisp/emacs-lisp/rx-tests.el
@@ -1,6 +1,6 @@
 ;;; rx-tests.el --- test for rx.el functions -*- lexical-binding: t -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/emacs-lisp/seq-tests.el 
b/test/lisp/emacs-lisp/seq-tests.el
index a7a4347..788524b 100644
--- a/test/lisp/emacs-lisp/seq-tests.el
+++ b/test/lisp/emacs-lisp/seq-tests.el
@@ -1,6 +1,6 @@
 ;;; seq-tests.el --- Tests for sequences.el
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Petton <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/test/lisp/emacs-lisp/subr-x-tests.el 
b/test/lisp/emacs-lisp/subr-x-tests.el
index e30b5d8..2b2a5cd 100644
--- a/test/lisp/emacs-lisp/subr-x-tests.el
+++ b/test/lisp/emacs-lisp/subr-x-tests.el
@@ -1,6 +1,6 @@
 ;;; subr-x-tests.el --- Testing the extended lisp routines
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Fabián E. Gallina <address@hidden>
 ;; Keywords:
diff --git a/test/lisp/emacs-lisp/tabulated-list-test.el 
b/test/lisp/emacs-lisp/tabulated-list-test.el
index 0fb8dee..b3a09ee 100644
--- a/test/lisp/emacs-lisp/tabulated-list-test.el
+++ b/test/lisp/emacs-lisp/tabulated-list-test.el
@@ -1,6 +1,6 @@
 ;;; tabulated-list-test.el --- Tests for emacs-lisp/tabulated-list.el  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Artur Malabarba <address@hidden>
 
diff --git a/test/lisp/emacs-lisp/thunk-tests.el 
b/test/lisp/emacs-lisp/thunk-tests.el
index f995d36..89bf1f5 100644
--- a/test/lisp/emacs-lisp/thunk-tests.el
+++ b/test/lisp/emacs-lisp/thunk-tests.el
@@ -1,6 +1,6 @@
 ;;; thunk-tests.el --- Tests for thunk.el -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Petton <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/test/lisp/emacs-lisp/timer-tests.el 
b/test/lisp/emacs-lisp/timer-tests.el
index e3cdec7..b12a365 100644
--- a/test/lisp/emacs-lisp/timer-tests.el
+++ b/test/lisp/emacs-lisp/timer-tests.el
@@ -1,6 +1,6 @@
 ;;; timer-tests.el --- tests for timers -*- lexical-binding:t -*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/emulation/viper-tests.el 
b/test/lisp/emulation/viper-tests.el
index 2c63b24..67ce5b6 100644
--- a/test/lisp/emulation/viper-tests.el
+++ b/test/lisp/emulation/viper-tests.el
@@ -1,6 +1,6 @@
 ;;; viper-tests.el --- tests for viper.
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/epg-tests.el b/test/lisp/epg-tests.el
index d51ab23..ea2b62c 100644
--- a/test/lisp/epg-tests.el
+++ b/test/lisp/epg-tests.el
@@ -1,6 +1,6 @@
 ;;; epg-tests.el --- Test suite for epg.el -*- lexical-binding: t -*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/erc/erc-track-tests.el b/test/lisp/erc/erc-track-tests.el
index 7cf3ef7..da119ed 100644
--- a/test/lisp/erc/erc-track-tests.el
+++ b/test/lisp/erc/erc-track-tests.el
@@ -1,6 +1,6 @@
 ;;; erc-track-tests.el --- Tests for erc-track.
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
 ;; Author: Vivek Dasmohapatra <address@hidden>
diff --git a/test/lisp/eshell/eshell.el b/test/lisp/eshell/eshell.el
index d5676dd..dee6c17 100644
--- a/test/lisp/eshell/eshell.el
+++ b/test/lisp/eshell/eshell.el
@@ -1,6 +1,6 @@
 ;;; tests/eshell.el --- Eshell test suite
 
-;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2017 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
 
diff --git a/test/lisp/faces-tests.el b/test/lisp/faces-tests.el
index 809ba24..2b3456d 100644
--- a/test/lisp/faces-tests.el
+++ b/test/lisp/faces-tests.el
@@ -1,6 +1,6 @@
 ;;; faces-tests.el --- Tests for faces.el            -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Artur Malabarba <address@hidden>
 ;; Keywords:
@@ -23,13 +23,18 @@
 (require 'ert)
 (require 'faces)
 
+(defgroup faces--test nil ""
+  :group 'faces--test)
+
 (defface faces--test1
   '((t :background "black" :foreground "black"))
-  "")
+  ""
+  :group 'faces--test)
 
 (defface faces--test2
   '((t :box 1))
-  "")
+  ""
+  :group 'faces--test)
 
 (ert-deftest faces--test-color-at-point ()
   (with-temp-buffer
diff --git a/test/lisp/ffap-tests.el b/test/lisp/ffap-tests.el
new file mode 100644
index 0000000..827d751
--- /dev/null
+++ b/test/lisp/ffap-tests.el
@@ -0,0 +1,71 @@
+;;; ffap-tests.el --- Test suite for ffap.el -*- lexical-binding: t -*-
+
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
+
+;; Author: Tino Calancha <address@hidden>
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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.
+
+;; GNU Emacs 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 GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'ert)
+(require 'ffap)
+
+(ert-deftest ffap-tests-25243 ()
+  "Test for http://debbugs.gnu.org/25243 ."
+  (let ((file (make-temp-file "test-Bug#25243")))
+    (unwind-protect
+        (with-temp-file file
+          (let ((str "diff --git b/lisp/ffap.el a/lisp/ffap.el
+index 3d7cebadcf..ad4b70d737 100644
+--- b/lisp/ffap.el
++++ a/lisp/ffap.el
+@@ -203,6 +203,9 @@ ffap-foo-at-bar-prefix
+"))
+            (transient-mark-mode 1)
+            (when (natnump ffap-max-region-length)
+              (insert
+               (concat
+                str
+                (make-string ffap-max-region-length #xa)
+                (format "%s ENDS HERE" file)))
+              (call-interactively 'mark-whole-buffer)
+              (should (equal "" (ffap-string-at-point)))
+              (should (equal '(1 1) ffap-string-at-point-region)))))
+      (and (file-exists-p file) (delete-file file)))))
+
+(ert-deftest ffap-gopher-at-point ()
+  (with-temp-buffer
+    (insert "\
+Type = 1
+Name = foo
+Path = /the/path
+Port = 7070
+Host = example.com\n")
+    (should-not (ffap-gopher-at-point))
+    (goto-char (point-min))
+    (should (equal (ffap-gopher-at-point)
+                   "gopher://example.com:7070/1/the/path";))
+    (should (equal ffap-string-at-point-region
+                   (list (point-min) (point-max))))
+    (let ((ffap-gopher-regexp nil))
+      (should-not (ffap-gopher-at-point)))))
+
+(provide 'ffap-tests)
+
+;;; ffap-tests.el ends here
diff --git a/test/lisp/filenotify-tests.el b/test/lisp/filenotify-tests.el
index 0e6e58e..db7f55e 100644
--- a/test/lisp/filenotify-tests.el
+++ b/test/lisp/filenotify-tests.el
@@ -1,6 +1,6 @@
 ;;; filenotify-tests.el --- Tests of file notifications  -*- lexical-binding: 
t; -*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 
@@ -63,13 +63,28 @@
 (defvar file-notify--test-results nil)
 (defvar file-notify--test-event nil)
 (defvar file-notify--test-events nil)
-
-(defconst file-notify--test-read-event-timeout 0.01
-  "Timeout for `read-event' calls.
-It is different for local and remote file notification libraries.")
+(defvar file-notify--test-monitors nil)
+
+(defun file-notify--test-read-event ()
+  "Read one event.
+There are different timeouts for local and remote file notification libraries."
+  (read-event
+   nil nil
+   (cond
+    ;; gio/gpollfilemonitor.c declares POLL_TIME_SECS 5.  So we must
+    ;; wait at least this time in the GPollFileMonitor case.  A
+    ;; similar timeout seems to be needed in the GFamFileMonitor case,
+    ;; at least on Cygwin.
+    ((and (string-equal (file-notify--test-library) "gfilenotify")
+          (memq (file-notify--test-monitor)
+                '(GFamFileMonitor GPollFileMonitor)))
+     7)
+    ((string-equal (file-notify--test-library) "gvfs-monitor-dir.exe") 1)
+    ((file-remote-p temporary-file-directory) 0.1)
+    (t 0.01))))
 
 (defun file-notify--test-timeout ()
-  "Timeout to wait for arriving events, in seconds."
+  "Timeout to wait for arriving a bunch of events, in seconds."
   (cond
    ((file-remote-p temporary-file-directory) 6)
    ((string-equal (file-notify--test-library) "w32notify") 4)
@@ -81,7 +96,7 @@ It is different for local and remote file notification 
libraries.")
 TIMEOUT is the maximum time to wait for, in seconds."
   `(with-timeout (,timeout (ignore))
      (while (null ,until)
-       (read-event nil nil file-notify--test-read-event-timeout))))
+       (file-notify--test-read-event))))
 
 (defun file-notify--test-no-descriptors ()
   "Check that `file-notify-descriptors' is an empty hash table.
@@ -140,7 +155,8 @@ Return nil when any other file notification watch is still 
active."
         file-notify--test-desc1 nil
         file-notify--test-desc2 nil
         file-notify--test-results nil
-        file-notify--test-events nil))
+        file-notify--test-events nil
+        file-notify--test-monitors nil))
 
 (setq password-cache-expiry nil
       tramp-verbose 0
@@ -193,6 +209,21 @@ remote host, or nil."
          "<[[:digit:]]+>\\'" ""
          (process-name (cdr file-notify--test-remote-enabled-checked))))))
 
+(defun file-notify--test-monitor ()
+  "The used monitor for the test, as a symbol.
+This returns only for the local case and gfilenotify; otherwise it is nil.
+`file-notify--test-desc' must be a valid watch descriptor."
+  ;; We cache the result, because after `file-notify-rm-watch',
+  ;; `gfile-monitor-name' does not return a proper result anymore.
+  ;; But we still need this information.
+  (unless (file-remote-p temporary-file-directory)
+    (or (cdr (assq file-notify--test-desc file-notify--test-monitors))
+        (when (functionp 'gfile-monitor-name)
+          (add-to-list 'file-notify--test-monitors
+                       (cons file-notify--test-desc
+                             (gfile-monitor-name file-notify--test-desc)))
+          (cdr (assq file-notify--test-desc file-notify--test-monitors))))))
+
 (defmacro file-notify--deftest-remote (test docstring)
   "Define ert `TEST-remote' for remote files."
   (declare (indent 1))
@@ -201,7 +232,6 @@ remote host, or nil."
      :tags '(:expensive-test)
      (let* ((temporary-file-directory
             file-notify-test-remote-temporary-file-directory)
-            (file-notify--test-read-event-timeout 0.1)
            (ert-test (ert-get-test ',test)))
        (skip-unless (file-notify--test-remote-enabled))
        (tramp-cleanup-connection
@@ -220,6 +250,8 @@ remote host, or nil."
          (setq file-notify--test-desc
                (file-notify-add-watch
                 temporary-file-directory '(change) #'ignore)))
+        (when (file-notify--test-monitor)
+          (message "Monitor: `%s'" (file-notify--test-monitor)))
         (file-notify-rm-watch file-notify--test-desc)
 
         ;; The environment shall be cleaned up.
@@ -383,6 +415,7 @@ delivered."
              events)))
           create-lockfiles)
      ;; Flush pending events.
+     (file-notify--test-read-event)
      (file-notify--wait-for-events
       (file-notify--test-timeout)
       (not (input-pending-p)))
@@ -409,10 +442,9 @@ delivered."
   (unwind-protect
       (progn
         ;; Check file creation, change and deletion.  It doesn't work
-        ;; for cygwin and kqueue, because we don't use an implicit
-        ;; directory monitor (kqueue), or the timings are too bad (cygwin).
-        (unless (or (eq system-type 'cygwin)
-                   (string-equal (file-notify--test-library) "kqueue"))
+        ;; for kqueue, because we don't use an implicit directory
+        ;; monitor.
+        (unless (string-equal (file-notify--test-library) "kqueue")
           (setq file-notify--test-tmpfile (file-notify--test-make-temp-name))
           (should
            (setq file-notify--test-desc
@@ -421,13 +453,19 @@ delivered."
                   '(change) #'file-notify--test-event-handler)))
           (file-notify--test-with-events
               (cond
-               ;; cygwin recognizes only `deleted' and `stopped' events.
+               ;; gvfs-monitor-dir on cygwin does not detect the
+               ;; `created' event reliably.
+              ((string-equal
+                (file-notify--test-library) "gvfs-monitor-dir.exe")
+               '((deleted stopped)
+                 (created deleted stopped)))
+               ;; cygwin does not raise a `changed' event.
                ((eq system-type 'cygwin)
-                '(deleted stopped))
+                '(created deleted stopped))
                (t '(created changed deleted stopped)))
             (write-region
              "another text" nil file-notify--test-tmpfile nil 'no-message)
-            (read-event nil nil file-notify--test-read-event-timeout)
+            (file-notify--test-read-event)
             (delete-file file-notify--test-tmpfile))
           (file-notify-rm-watch file-notify--test-desc))
 
@@ -441,15 +479,17 @@ delivered."
                '(change) #'file-notify--test-event-handler)))
         (file-notify--test-with-events
            (cond
-            ;; cygwin recognizes only `deleted' and `stopped' events.
-            ((eq system-type 'cygwin)
-             '(deleted stopped))
-             ;; There could be one or two `changed' events.
-             (t '((changed deleted stopped)
-                  (changed changed deleted stopped))))
+             ;; gvfs-monitor-dir on cygwin does not detect the
+             ;; `changed' event reliably.
+            ((string-equal (file-notify--test-library) "gvfs-monitor-dir.exe")
+             '((deleted stopped)
+               (changed deleted stopped)))
+            ;; There could be one or two `changed' events.
+            (t '((changed deleted stopped)
+                 (changed changed deleted stopped))))
           (write-region
            "another text" nil file-notify--test-tmpfile nil 'no-message)
-          (read-event nil nil file-notify--test-read-event-timeout)
+          (file-notify--test-read-event)
           (delete-file file-notify--test-tmpfile))
         (file-notify-rm-watch file-notify--test-desc)
 
@@ -470,17 +510,23 @@ delivered."
               ;; events for the watched directory.
               ((string-equal (file-notify--test-library) "w32notify")
                '(created changed deleted))
-              ;; cygwin recognizes only `deleted' and `stopped' events.
-              ((eq system-type 'cygwin)
-               '(deleted stopped))
+               ;; gvfs-monitor-dir on cygwin does not detect the
+               ;; `created' event reliably.
+              ((string-equal
+                (file-notify--test-library) "gvfs-monitor-dir.exe")
+               '((deleted stopped)
+                 (created deleted stopped)))
               ;; There are two `deleted' events, for the file and for
-              ;; the directory.  Except for kqueue.
+              ;; the directory.  Except for cygwin and kqueue.  And
+              ;; cygwin does not raise a `changed' event.
+              ((eq system-type 'cygwin)
+               '(created deleted stopped))
               ((string-equal (file-notify--test-library) "kqueue")
                '(created changed deleted stopped))
               (t '(created changed deleted deleted stopped)))
            (write-region
             "any text" nil file-notify--test-tmpfile nil 'no-message)
-           (read-event nil nil file-notify--test-read-event-timeout)
+           (file-notify--test-read-event)
             (delete-directory temporary-file-directory 'recursive))
           (file-notify-rm-watch file-notify--test-desc))
 
@@ -503,25 +549,30 @@ delivered."
                '(created changed created changed
                  changed changed changed
                  deleted deleted))
-              ;; cygwin recognizes only `deleted' and `stopped' events.
-              ((eq system-type 'cygwin)
-               '(deleted stopped))
+               ;; gvfs-monitor-dir on cygwin does not detect the
+               ;; `created' event reliably.
+              ((string-equal
+                (file-notify--test-library) "gvfs-monitor-dir.exe")
+               '((deleted stopped)
+                 (created created deleted stopped)))
               ;; There are three `deleted' events, for two files and
-              ;; for the directory.  Except for kqueue.
+              ;; for the directory.  Except for cygwin and kqueue.
+              ((eq system-type 'cygwin)
+               '(created created changed changed deleted stopped))
               ((string-equal (file-notify--test-library) "kqueue")
                '(created changed created changed deleted stopped))
               (t '(created changed created changed
                    deleted deleted deleted stopped)))
            (write-region
             "any text" nil file-notify--test-tmpfile nil 'no-message)
-           (read-event nil nil file-notify--test-read-event-timeout)
+           (file-notify--test-read-event)
            (copy-file file-notify--test-tmpfile file-notify--test-tmpfile1)
            ;; The next two events shall not be visible.
-           (read-event nil nil file-notify--test-read-event-timeout)
+           (file-notify--test-read-event)
            (set-file-modes file-notify--test-tmpfile 000)
-           (read-event nil nil file-notify--test-read-event-timeout)
+           (file-notify--test-read-event)
            (set-file-times file-notify--test-tmpfile '(0 0))
-           (read-event nil nil file-notify--test-read-event-timeout)
+           (file-notify--test-read-event)
             (delete-directory temporary-file-directory 'recursive))
           (file-notify-rm-watch file-notify--test-desc))
 
@@ -541,20 +592,27 @@ delivered."
               ;; events for the watched directory.
               ((string-equal (file-notify--test-library) "w32notify")
                '(created changed renamed deleted))
-              ;; cygwin recognizes only `deleted' and `stopped' events.
-              ((eq system-type 'cygwin)
-               '(deleted stopped))
+               ;; gvfs-monitor-dir on cygwin does not detect the
+               ;; `created' event reliably.
+              ((string-equal
+                (file-notify--test-library) "gvfs-monitor-dir.exe")
+               '((deleted stopped)
+                 (created deleted stopped)))
               ;; There are two `deleted' events, for the file and for
-              ;; the directory.  Except for kqueue.
+              ;; the directory.  Except for cygwin and kqueue.  And
+              ;; cygwin raises `created' and `deleted' events instead
+              ;; of a `renamed' event.
+              ((eq system-type 'cygwin)
+               '(created created deleted deleted stopped))
               ((string-equal (file-notify--test-library) "kqueue")
                '(created changed renamed deleted stopped))
               (t '(created changed renamed deleted deleted stopped)))
            (write-region
             "any text" nil file-notify--test-tmpfile nil 'no-message)
-           (read-event nil nil file-notify--test-read-event-timeout)
+           (file-notify--test-read-event)
            (rename-file file-notify--test-tmpfile file-notify--test-tmpfile1)
            ;; After the rename, we won't get events anymore.
-           (read-event nil nil file-notify--test-read-event-timeout)
+           (file-notify--test-read-event)
             (delete-directory temporary-file-directory 'recursive))
           (file-notify-rm-watch file-notify--test-desc))
 
@@ -585,11 +643,11 @@ delivered."
               (t '(attribute-changed attribute-changed)))
            (write-region
             "any text" nil file-notify--test-tmpfile nil 'no-message)
-           (read-event nil nil file-notify--test-read-event-timeout)
+           (file-notify--test-read-event)
            (set-file-modes file-notify--test-tmpfile 000)
-           (read-event nil nil file-notify--test-read-event-timeout)
+           (file-notify--test-read-event)
            (set-file-times file-notify--test-tmpfile '(0 0))
-           (read-event nil nil file-notify--test-read-event-timeout)
+           (file-notify--test-read-event)
            (delete-file file-notify--test-tmpfile))
           (file-notify-rm-watch file-notify--test-desc))
 
@@ -634,6 +692,11 @@ delivered."
              (while (null auto-revert-notify-watch-descriptor)
                (sleep-for 1)))
 
+            ;; `file-notify--test-monitor' needs to know
+            ;; `file-notify--test-desc' in order to compute proper
+            ;; timeouts.
+            (setq file-notify--test-desc auto-revert-notify-watch-descriptor)
+
            ;; Check, that file notification has been used.
            (should auto-revert-mode)
            (should auto-revert-use-notify)
@@ -728,16 +791,18 @@ delivered."
                '(change) #'file-notify--test-event-handler)))
        (should (file-notify-valid-p file-notify--test-desc))
         (file-notify--test-with-events
-            (cond
-             ;; cygwin recognizes only `deleted' and `stopped' events.
-            ((eq system-type 'cygwin)
-             '(deleted stopped))
-             ;; There could be one or two `changed' events.
-             (t '((changed deleted stopped)
-                  (changed changed deleted stopped))))
+           (cond
+             ;; gvfs-monitor-dir on cygwin does not detect the
+             ;; `changed' event reliably.
+            ((string-equal (file-notify--test-library) "gvfs-monitor-dir.exe")
+             '((deleted stopped)
+               (changed deleted stopped)))
+            ;; There could be one or two `changed' events.
+            (t '((changed deleted stopped)
+                 (changed changed deleted stopped))))
           (write-region
            "another text" nil file-notify--test-tmpfile nil 'no-message)
-         (read-event nil nil file-notify--test-read-event-timeout)
+         (file-notify--test-read-event)
          (delete-file file-notify--test-tmpfile))
        ;; After deleting the file, the descriptor is not valid anymore.
         (should-not (file-notify-valid-p file-notify--test-desc))
@@ -765,21 +830,33 @@ delivered."
          ;; for the watched directory.
          ((string-equal (file-notify--test-library) "w32notify")
           '(created changed deleted))
-         ;; cygwin recognizes only `deleted' and `stopped' events.
-         ((eq system-type 'cygwin)
-          '(deleted stopped))
+          ;; gvfs-monitor-dir on cygwin does not detect the `created'
+          ;; event reliably.
+         ((string-equal (file-notify--test-library) "gvfs-monitor-dir.exe")
+          '((deleted stopped)
+            (created deleted stopped)))
          ;; There are two `deleted' events, for the file and for the
-         ;; directory.  Except for kqueue.
+         ;; directory.  Except for cygwin and kqueue.  And cygwin
+         ;; does not raise a `changed' event.
+         ((eq system-type 'cygwin)
+          '(created deleted stopped))
          ((string-equal (file-notify--test-library) "kqueue")
           '(created changed deleted stopped))
          (t '(created changed deleted deleted stopped)))
         (write-region
          "any text" nil file-notify--test-tmpfile nil 'no-message)
-        (read-event nil nil file-notify--test-read-event-timeout)
+        (file-notify--test-read-event)
         (delete-directory temporary-file-directory t))
        ;; After deleting the parent directory, the descriptor must
        ;; not be valid anymore.
        (should-not (file-notify-valid-p file-notify--test-desc))
+        ;; w32notify doesn't generate 'stopped' events when the parent
+        ;; directory is deleted, which doesn't provide a chance for
+        ;; filenotify.el to remove the descriptor from the internal
+        ;; hash table it maintains.  So we must remove the descriptor
+        ;; manually.
+        (if (string-equal (file-notify--test-library) "w32notify")
+            (file-notify--rm-descriptor file-notify--test-desc))
 
         ;; The environment shall be cleaned up.
         (file-notify--test-cleanup-p))
@@ -836,6 +913,8 @@ delivered."
         (file-notify--test-timeout)
         (not (file-notify-valid-p file-notify--test-desc)))
         (should-not (file-notify-valid-p file-notify--test-desc))
+        (if (string-equal (file-notify--test-library) "w32notify")
+            (file-notify--rm-descriptor file-notify--test-desc))
 
         ;; The environment shall be cleaned up.
         (file-notify--test-cleanup-p))
@@ -877,9 +956,9 @@ delivered."
           (let ((source-file-list source-file-list)
                 (target-file-list target-file-list))
             (while (and source-file-list target-file-list)
-              (read-event nil nil file-notify--test-read-event-timeout)
+              (file-notify--test-read-event)
               (write-region "" nil (pop source-file-list) nil 'no-message)
-              (read-event nil nil file-notify--test-read-event-timeout)
+              (file-notify--test-read-event)
               (write-region "" nil (pop target-file-list) nil 'no-message))))
         (file-notify--test-with-events
            (cond
@@ -891,20 +970,22 @@ delivered."
             ;; cygwin fires `changed' and `deleted' events, sometimes
             ;; in random order.
             ((eq system-type 'cygwin)
-             (let ((r '(:random)))
-               (dotimes (_i n r)
-                 (setq r (append r '(changed deleted))))))
+             (let (r)
+               (dotimes (_i n (cons :random r))
+                 (setq r (append '(changed deleted) r)))))
             (t (make-list n 'renamed)))
           (let ((source-file-list source-file-list)
                 (target-file-list target-file-list))
             (while (and source-file-list target-file-list)
-              (read-event nil nil file-notify--test-read-event-timeout)
+              (file-notify--test-read-event)
               (rename-file (pop source-file-list) (pop target-file-list) t))))
         (file-notify--test-with-events (make-list n 'deleted)
           (dolist (file target-file-list)
-            (read-event nil nil file-notify--test-read-event-timeout)
-            (delete-file file) file-notify--test-read-event-timeout))
+            (file-notify--test-read-event)
+            (delete-file file)))
         (delete-directory file-notify--test-tmpfile)
+        (if (string-equal (file-notify--test-library) "w32notify")
+            (file-notify--rm-descriptor file-notify--test-desc))
 
         ;; The environment shall be cleaned up.
         (file-notify--test-cleanup-p))
@@ -1027,7 +1108,9 @@ the file watch."
          (setq file-notify--test-desc1
                (file-notify-add-watch
                 file-notify--test-tmpfile
-                '(change) #'dir-callback)))
+                '(change) #'dir-callback)
+               ;; This is needed for `file-notify--test-monitor'.
+               file-notify--test-desc file-notify--test-desc1))
         (should
          (setq file-notify--test-desc2
                (file-notify-add-watch
@@ -1041,6 +1124,12 @@ the file watch."
           (file-notify--test-with-events
               ;; There could be one or two `changed' events.
               (list
+              ;; cygwin.
+               (append
+                '(:random)
+                (make-list (/ n 2) 'changed)
+                (make-list (/ n 2) 'created)
+                (make-list (/ n 2) 'changed))
                (append
                 '(:random)
                 ;; Directory monitor and file monitor.
@@ -1060,7 +1149,7 @@ the file watch."
                 (make-list (/ n 2) 'created)
                 (make-list (/ n 2) 'changed)))
             (dotimes (i n)
-              (read-event nil nil file-notify--test-read-event-timeout)
+              (file-notify--test-read-event)
               (if (zerop (mod i 2))
                   (write-region
                    "any text" nil file-notify--test-tmpfile1 t 'no-message)
@@ -1082,9 +1171,10 @@ the file watch."
         ;; Now we delete the directory.
         (file-notify--test-with-events
             (cond
-             ;; In kqueue, just one `deleted' event for the directory
-             ;; is received.
-             ((string-equal (file-notify--test-library) "kqueue")
+             ;; In kqueue and for cygwin, just one `deleted' event for
+             ;; the directory is received.
+             ((or (eq system-type 'cygwin)
+                 (string-equal (file-notify--test-library) "kqueue"))
               '(deleted stopped))
              (t (append
                  ;; The directory monitor raises a `deleted' event for
@@ -1105,6 +1195,9 @@ the file watch."
           (delete-directory file-notify--test-tmpfile 'recursive))
         (should-not (file-notify-valid-p file-notify--test-desc1))
         (should-not (file-notify-valid-p file-notify--test-desc2))
+        (when (string-equal (file-notify--test-library) "w32notify")
+          (file-notify--rm-descriptor file-notify--test-desc1)
+          (file-notify--rm-descriptor file-notify--test-desc2))
 
         ;; The environment shall be cleaned up.
         (file-notify--test-cleanup-p))
@@ -1172,9 +1265,10 @@ the file watch."
 ;;   the missing directory monitor.
 ;; * For w32notify, no `deleted' and `stopped' events arrive when a
 ;;   directory is removed.
-;; * For w32notify, no `attribute-changed' events arrive.  Its sends
-;;   `changed' events instead.
-;; * Check, why cygwin recognizes only `deleted' and `stopped' events.
+;; * For cygwin and w32notify, no `attribute-changed' events arrive.
+;;   They send `changed' events instead.
+;; * cygwin does not send all expected `changed' and `deleted' events.
+;;   Probably due to timing issues.
 
 (provide 'file-notify-tests)
 ;;; filenotify-tests.el ends here
diff --git a/test/lisp/files-tests.el b/test/lisp/files-tests.el
index 6fbe993..9d456c5 100644
--- a/test/lisp/files-tests.el
+++ b/test/lisp/files-tests.el
@@ -1,6 +1,6 @@
 ;;; files-tests.el --- tests for files.el.
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/files-x-tests.el b/test/lisp/files-x-tests.el
index 8f2c11d..88b58fe 100644
--- a/test/lisp/files-x-tests.el
+++ b/test/lisp/files-x-tests.el
@@ -1,6 +1,6 @@
 ;;; files-x-tests.el --- tests for files-x.el.
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 
diff --git a/test/lisp/gnus/gnus-tests.el b/test/lisp/gnus/gnus-tests.el
index 6801ce6..47c49b3 100644
--- a/test/lisp/gnus/gnus-tests.el
+++ b/test/lisp/gnus/gnus-tests.el
@@ -1,6 +1,6 @@
 ;;; gnus-tests.el --- Wrapper for the Gnus tests
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Teodor Zlatanov <address@hidden>
 
diff --git a/test/lisp/gnus/message-tests.el b/test/lisp/gnus/message-tests.el
index 13c15e3..4036725 100644
--- a/test/lisp/gnus/message-tests.el
+++ b/test/lisp/gnus/message-tests.el
@@ -1,6 +1,6 @@
 ;;; message-mode-tests.el --- Tests for message-mode  -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: João Távora <address@hidden>
 
diff --git a/test/lisp/help-fns-tests.el b/test/lisp/help-fns-tests.el
index ba0d8ed..0ab6c3c 100644
--- a/test/lisp/help-fns-tests.el
+++ b/test/lisp/help-fns-tests.el
@@ -1,6 +1,6 @@
 ;;; help-fns.el --- tests for help-fns.el
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
 
diff --git a/test/lisp/htmlfontify-tests.el b/test/lisp/htmlfontify-tests.el
index 012e170..4a1d566 100644
--- a/test/lisp/htmlfontify-tests.el
+++ b/test/lisp/htmlfontify-tests.el
@@ -1,6 +1,6 @@
 ;;; htmlfontify-tests.el --- Test suite. -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -30,5 +30,17 @@
     (symbol-function
      'htmlfontify-load-rgb-file))))
 
+(ert-deftest htmlfontify-bug25468 ()
+  "Tests that htmlfontify can be loaded even if no shell is
+available (Bug#25468)."
+  (should (equal (let ((process-environment
+                        (cons "SHELL=/does/not/exist" process-environment)))
+                   (call-process
+                    (expand-file-name (invocation-name) (invocation-directory))
+                    nil nil nil
+                    "--quick" "--batch"
+                    (concat "--load=" (locate-library "htmlfontify"))))
+                 0)))
+
 (provide 'htmlfontify-tests)
 ;; htmlfontify-tests.el ends here
diff --git a/test/lisp/ibuffer-tests.el b/test/lisp/ibuffer-tests.el
index 40760ab..b9f7fe7 100644
--- a/test/lisp/ibuffer-tests.el
+++ b/test/lisp/ibuffer-tests.el
@@ -1,6 +1,6 @@
 ;;; ibuffer-tests.el --- Test suite. -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -23,6 +23,15 @@
 (eval-when-compile
   (require 'ibuf-macs))
 
+(defvar ibuffer-filter-groups)
+(defvar ibuffer-filtering-alist)
+(defvar ibuffer-filtering-qualifiers)
+(defvar ibuffer-save-with-custom)
+(defvar ibuffer-saved-filter-groups)
+(defvar ibuffer-saved-filters)
+(declare-function ibuffer-format-qualifier "ibuf-ext" (qualifier))
+(declare-function ibuffer-unary-operand "ibuf-ext" (filter))
+
 (ert-deftest ibuffer-autoload ()
   "Tests to see whether ibuffer has been autoloaded"
   (skip-unless (not (featurep 'ibuf-ext)))
diff --git a/test/lisp/imenu-tests.el b/test/lisp/imenu-tests.el
index b6e0f60..480368f 100644
--- a/test/lisp/imenu-tests.el
+++ b/test/lisp/imenu-tests.el
@@ -1,6 +1,6 @@
 ;;; imenu-tests.el --- Test suite for imenu.
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Masatake YAMATO <address@hidden>
 ;; Keywords: tools convenience
diff --git a/test/lisp/info-xref-tests.el b/test/lisp/info-xref-tests.el
index bc31150..9ae07c3 100644
--- a/test/lisp/info-xref-tests.el
+++ b/test/lisp/info-xref-tests.el
@@ -1,6 +1,6 @@
 ;;; info-xref.el --- tests for info-xref.el
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/international/mule-util-tests.el 
b/test/lisp/international/mule-util-tests.el
index 9846aa1..356ee33 100644
--- a/test/lisp/international/mule-util-tests.el
+++ b/test/lisp/international/mule-util-tests.el
@@ -1,6 +1,6 @@
 ;;; mule-util --- tests for international/mule-util.el
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/international/ucs-normalize-tests.el 
b/test/lisp/international/ucs-normalize-tests.el
index 42cf805..d85efe2 100644
--- a/test/lisp/international/ucs-normalize-tests.el
+++ b/test/lisp/international/ucs-normalize-tests.el
@@ -1,6 +1,6 @@
 ;;; ucs-normalize --- tests for international/ucs-normalize.el -*- 
lexical-binding: t -*-
 
-;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/isearch-tests.el b/test/lisp/isearch-tests.el
index 52f312d..e5cae82 100644
--- a/test/lisp/isearch-tests.el
+++ b/test/lisp/isearch-tests.el
@@ -1,6 +1,6 @@
 ;;; isearch-tests.el --- Tests for isearch.el        -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Artur Malabarba <address@hidden>
 
diff --git a/test/lisp/jit-lock-tests.el b/test/lisp/jit-lock-tests.el
index dcb6936..22d1e01 100644
--- a/test/lisp/jit-lock-tests.el
+++ b/test/lisp/jit-lock-tests.el
@@ -1,6 +1,6 @@
 ;;; jit-lock-tests.el --- tests for jit-lock
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Dmitry Gutov <address@hidden>
 
diff --git a/test/lisp/json-tests.el b/test/lisp/json-tests.el
index 78cebb4..38672de 100644
--- a/test/lisp/json-tests.el
+++ b/test/lisp/json-tests.el
@@ -1,6 +1,6 @@
 ;;; json-tests.el --- Test suite for json.el
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Dmitry Gutov <address@hidden>
 
@@ -167,6 +167,9 @@ Point is moved to beginning of the buffer."
     (should (equal (json-read-string) "abcαβγ")))
   (json-tests--with-temp-buffer "\"\\nasd\\u0444\\u044b\\u0432fgh\\t\""
     (should (equal (json-read-string) "\nasdфывfgh\t")))
+  ;; Bug#24784
+  (json-tests--with-temp-buffer "\"\\uD834\\uDD1E\""
+    (should (equal (json-read-string) "\U0001D11E")))
   (json-tests--with-temp-buffer "foo"
     (should-error (json-read-string) :type 'json-string-format)))
 
diff --git a/test/lisp/mail/rmail-tests.el b/test/lisp/mail/rmail-tests.el
index 2f18372..6cf9053 100644
--- a/test/lisp/mail/rmail-tests.el
+++ b/test/lisp/mail/rmail-tests.el
@@ -1,6 +1,6 @@
 ;;; rmail-tests.el --- Test suite. -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/man-tests.el b/test/lisp/man-tests.el
index b1cc443..b9f47f5 100644
--- a/test/lisp/man-tests.el
+++ b/test/lisp/man-tests.el
@@ -1,6 +1,6 @@
 ;;; man-tests.el --- Test suite for man.
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Wolfgang Jenkner <address@hidden>
 ;; Keywords: help, internal, unix
diff --git a/test/lisp/md4-tests.el b/test/lisp/md4-tests.el
new file mode 100644
index 0000000..169ed83
--- /dev/null
+++ b/test/lisp/md4-tests.el
@@ -0,0 +1,61 @@
+;;; md4-tests.el --- tests for md4.el -*- lexical-binding: t -*-
+
+;; Copyright (C) 2017  Free Software Foundation, Inc.
+
+;; Author: Mark Oteiza <address@hidden>
+;; Maintainer: address@hidden
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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.
+
+;; GNU Emacs 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 GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'ert)
+(require 'md4)
+
+(defun md4-tests-digest->hex (str)
+  "Print digest STR in hexadecimal."
+  (mapconcat (lambda (x) (format "%02x" x)) str ""))
+
+(ert-deftest md4-test-rfc1320 ()
+  "Verify the test suite results in RFC 1320.
+See <https://tools.ietf.org/html/rfc1320>."
+  (should
+   (equal (md4-tests-digest->hex (md4 "" 0))
+          "31d6cfe0d16ae931b73c59d7e0c089c0"))
+  (should
+   (equal (md4-tests-digest->hex (md4 "a" 1))
+          "bde52cb31de33e46245e05fbdbd6fb24"))
+  (should
+   (equal (md4-tests-digest->hex (md4 "abc" 3))
+          "a448017aaf21d8525fc10ae87aa6729d"))
+  (should
+   (equal (md4-tests-digest->hex (md4 "message digest" 14))
+          "d9130a8164549fe818874806e1c7014b"))
+  (should
+   (equal (md4-tests-digest->hex (md4 "abcdefghijklmnopqrstuvwxyz" 26))
+          "d79e1c308aa5bbcdeea8ed63df412da9"))
+  (should
+   (equal (md4-tests-digest->hex
+           (md4 
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" 62))
+          "043f8582f241db351ce627e153e7f0e4"))
+  (should
+   (equal (md4-tests-digest->hex
+           (md4 
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"
 80))
+          "e33b4ddc9c38f2199c3e7b164fcc0536")))
+
+;;; md4-tests.el ends here
diff --git a/test/lisp/minibuffer-tests.el b/test/lisp/minibuffer-tests.el
index 0f2abf4..7c5fcb4 100644
--- a/test/lisp/minibuffer-tests.el
+++ b/test/lisp/minibuffer-tests.el
@@ -1,6 +1,6 @@
 ;;; completion-tests.el --- Tests for completion functions  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords:
@@ -28,7 +28,7 @@
 
 (ert-deftest completion-test1 ()
   (with-temp-buffer
-    (cl-flet* ((test/completion-table (string pred action)
+    (cl-flet* ((test/completion-table (_string _pred action)
                                       (if (eq action 'lambda)
                                           nil
                                         "test: "))
diff --git a/test/lisp/mouse-tests.el b/test/lisp/mouse-tests.el
index 204f5d3..fffaa2f 100644
--- a/test/lisp/mouse-tests.el
+++ b/test/lisp/mouse-tests.el
@@ -1,6 +1,6 @@
 ;;; mouse-tests.el --- unit tests for mouse.el       -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Philipp Stephani <address@hidden>
 
diff --git a/test/lisp/net/dbus-tests.el b/test/lisp/net/dbus-tests.el
index 12be163..0a59e3b 100644
--- a/test/lisp/net/dbus-tests.el
+++ b/test/lisp/net/dbus-tests.el
@@ -1,6 +1,6 @@
 ;;; dbus-tests.el --- Tests of D-Bus integration into Emacs
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 
@@ -22,7 +22,8 @@
 (require 'ert)
 (require 'dbus)
 
-(setq dbus-debug nil)
+(defvar dbus-debug nil)
+(declare-function dbus-get-unique-name "dbusbind.c" (bus))
 
 (defvar dbus--test-enabled-session-bus
   (and (featurep 'dbusbind)
diff --git a/test/lisp/net/network-stream-tests.el 
b/test/lisp/net/network-stream-tests.el
index afffeeb..e7bb3e8 100644
--- a/test/lisp/net/network-stream-tests.el
+++ b/test/lisp/net/network-stream-tests.el
@@ -1,6 +1,6 @@
 ;;; network-stream-tests.el --- tests for network processes       -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Ingebrigtsen <address@hidden>
 
@@ -152,7 +152,7 @@
     (while (and (eq (process-status proc) 'connect)
                 (< (setq times (1+ times)) 10))
       (sit-for 0.1))
-    (should-not (eq (process-status proc) 'connect))
+    (skip-unless (not (eq (process-status proc) 'connect)))
     (with-current-buffer (process-buffer proc)
       (process-send-string proc "echo foo")
       (sleep-for 0.1)
@@ -240,7 +240,7 @@
           (while (and (eq (process-status proc) 'connect)
                       (< (setq times (1+ times)) 10))
             (sit-for 0.1))
-          (should-not (eq (process-status proc) 'connect)))
+          (skip-unless (not (eq (process-status proc) 'connect))))
       (if (process-live-p server) (delete-process server)))
     (setq status (gnutls-peer-status proc))
     (should (consp status))
diff --git a/test/lisp/net/newsticker-tests.el 
b/test/lisp/net/newsticker-tests.el
index d853108..56064f7 100644
--- a/test/lisp/net/newsticker-tests.el
+++ b/test/lisp/net/newsticker-tests.el
@@ -1,6 +1,6 @@
 ;;; newsticker-testsuite.el --- Test suite for newsticker.
 
-;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2017 Free Software Foundation, Inc.
 
 ;; Author:      Ulf Jasper <address@hidden>
 ;; Keywords:    News, RSS, Atom
diff --git a/test/lisp/net/sasl-scram-rfc-tests.el 
b/test/lisp/net/sasl-scram-rfc-tests.el
index 130de24..96cec77 100644
--- a/test/lisp/net/sasl-scram-rfc-tests.el
+++ b/test/lisp/net/sasl-scram-rfc-tests.el
@@ -1,6 +1,6 @@
 ;;; sasl-scram-rfc-tests.el --- tests for SCRAM-SHA-1       -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Magnus Henoch <address@hidden>
 
diff --git a/test/lisp/net/shr-tests.el b/test/lisp/net/shr-tests.el
index 501916f..c82338a 100644
--- a/test/lisp/net/shr-tests.el
+++ b/test/lisp/net/shr-tests.el
@@ -1,6 +1,6 @@
 ;;; network-stream-tests.el --- tests for network processes       -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Ingebrigtsen <address@hidden>
 
diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index 2884187..0c3068a 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -1,6 +1,6 @@
 ;;; tramp-tests.el --- Tests of remote file access
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 
@@ -1991,12 +1991,16 @@ This tests also `make-symbolic-link', `file-truename' 
and `add-name-to-file'."
                 (string-equal
                  (make-auto-save-file-name)
                  ;; This is taken from original `make-auto-save-file-name'.
-                 (expand-file-name
-                  (format
-                   "#%s#"
-                   (subst-char-in-string
-                    ?/ ?! (replace-regexp-in-string "!" "!!" tmp-name1)))
-                  temporary-file-directory)))))
+                 ;; We call `convert-standard-filename', because on
+                 ;; MS Windows the (local) colons must be replaced by
+                 ;; exclamation marks.
+                 (convert-standard-filename
+                  (expand-file-name
+                   (format
+                    "#%s#"
+                    (subst-char-in-string
+                     ?/ ?! (replace-regexp-in-string "!" "!!" tmp-name1)))
+                   temporary-file-directory))))))
 
            ;; No mapping.
            (let (tramp-auto-save-directory auto-save-file-name-transforms)
@@ -2138,7 +2142,7 @@ This does not support special file names."
 
 (defun tramp--test-windows-nt-and-batch ()
   "Check, whether the locale host runs MS Windows in batch mode.
-This does not support scpecial characters."
+This does not support special characters."
   (and (eq system-type 'windows-nt) noninteractive))
 
 (defun tramp--test-windows-nt-and-pscp-psftp-p ()
@@ -2169,18 +2173,6 @@ This requires restrictions of file name syntax."
           (process-environment process-environment))
       (unwind-protect
          (progn
-           ;; Add environment variables.
-           (dolist (elt files)
-             ;; The check command (heredoc file) does not support
-             ;; environment variables with leading spaces.
-             (let* ((elt (replace-regexp-in-string "^\\s-+" "" elt))
-                    (envvar (concat "VAR_" (upcase (md5 elt)))))
-               (setenv envvar elt)))
-
-           ;; We force a reconnect, in order to have a clean environment.
-           (tramp-cleanup-connection
-            (tramp-dissect-file-name tramp-test-temporary-file-directory)
-            'keep-debug 'keep-password)
            (make-directory tmp-name1)
            (make-directory tmp-name2)
 
@@ -2310,30 +2302,23 @@ This requires restrictions of file name syntax."
 
            ;; Check, that environment variables are set correctly.
            (when (and tramp--test-expensive-test (tramp--test-sh-p))
-             (dolist (elt process-environment)
-               (when (string-match "^VAR_" elt)
-                 (let* ((default-directory tramp-test-temporary-file-directory)
-                        (shell-file-name "/bin/sh")
-                        (heredoc (md5 (current-time-string)))
-                        (envvar (car (split-string elt "=" t)))
-                        (file1 (tramp-compat-file-name-unquote
-                                (expand-file-name "bar" tmp-name1))))
-                   ;; Cleanup.
-                   (ignore-errors (delete-file file1))
-                   ;; Save the variable in a file.  The echo command
-                   ;; does not work properly, it suppresses leading/
-                   ;; trailing spaces as well as tabs.
-                   (shell-command-to-string
-                    (format
-                     "cat <<%s >%s\n$%s\n%s"
-                     heredoc (file-remote-p file1 'localname) envvar heredoc))
-                   (with-temp-buffer
-                     (insert-file-contents file1)
-                     (should
-                      (string-equal
-                       (buffer-string) (concat (getenv envvar) "\n"))))
-                   (delete-file file1)
-                   (should-not (file-exists-p file1)))))))
+             (dolist (elt files)
+               (let ((envvar (concat "VAR_" (upcase (md5 elt))))
+                     (default-directory tramp-test-temporary-file-directory)
+                     (process-environment process-environment))
+                 (setenv envvar elt)
+                 ;; The value of PS1 could confuse Tramp's detection
+                 ;; of process output.  So we unset it temporarily.
+                 (setenv "PS1")
+                 (with-temp-buffer
+                   (should (zerop (process-file "env" nil t nil)))
+                   (goto-char (point-min))
+                   (should
+                    (re-search-forward
+                     (format
+                      "^%s=%s$"
+                      (regexp-quote envvar)
+                      (regexp-quote (getenv envvar))))))))))
 
        ;; Cleanup.
        (ignore-errors (delete-directory tmp-name1 'recursive))
diff --git a/test/lisp/obarray-tests.el b/test/lisp/obarray-tests.el
index 92345b7..9a2d65d 100644
--- a/test/lisp/obarray-tests.el
+++ b/test/lisp/obarray-tests.el
@@ -1,6 +1,6 @@
 ;;; obarray-tests.el --- Tests for obarray -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Przemysław Wojnowski <address@hidden>
 
diff --git a/test/lisp/progmodes/cc-mode-tests.el 
b/test/lisp/progmodes/cc-mode-tests.el
index 62e0a73..10f424f 100644
--- a/test/lisp/progmodes/cc-mode-tests.el
+++ b/test/lisp/progmodes/cc-mode-tests.el
@@ -1,6 +1,6 @@
 ;;; cc-mode-tests.el --- Test suite for cc-mode.  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Michal Nazarewicz <address@hidden>
 ;; Keywords:       internal
diff --git a/test/lisp/progmodes/compile-tests.el 
b/test/lisp/progmodes/compile-tests.el
index 9f61c20..5c8c9c2 100644
--- a/test/lisp/progmodes/compile-tests.el
+++ b/test/lisp/progmodes/compile-tests.el
@@ -1,6 +1,6 @@
 ;;; compile-tests.el --- Test suite for compile.el.  -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Chong Yidong <address@hidden>
 ;; Keywords:       internal
diff --git a/test/lisp/progmodes/elisp-mode-tests.el 
b/test/lisp/progmodes/elisp-mode-tests.el
index 12e61cf..93c428b 100644
--- a/test/lisp/progmodes/elisp-mode-tests.el
+++ b/test/lisp/progmodes/elisp-mode-tests.el
@@ -1,6 +1,6 @@
 ;;; elisp-mode-tests.el --- Tests for emacs-lisp-mode  -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Dmitry Gutov <address@hidden>
 ;; Author: Stephen Leake <address@hidden>
diff --git a/test/lisp/progmodes/etags-tests.el 
b/test/lisp/progmodes/etags-tests.el
index a992a17..eec8a02 100644
--- a/test/lisp/progmodes/etags-tests.el
+++ b/test/lisp/progmodes/etags-tests.el
@@ -1,6 +1,6 @@
 ;;; etags-tests.el --- Test suite for etags.el.
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Eli Zaretskii <address@hidden>
 
diff --git a/test/lisp/progmodes/f90.el b/test/lisp/progmodes/f90.el
index 29c6088..cda39ed 100644
--- a/test/lisp/progmodes/f90.el
+++ b/test/lisp/progmodes/f90.el
@@ -1,6 +1,6 @@
 ;;; f90.el --- tests for progmodes/f90.el
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Glenn Morris <address@hidden>
 
diff --git a/test/lisp/progmodes/flymake-tests.el 
b/test/lisp/progmodes/flymake-tests.el
index 3865161..9bf6e7a 100644
--- a/test/lisp/progmodes/flymake-tests.el
+++ b/test/lisp/progmodes/flymake-tests.el
@@ -1,6 +1,6 @@
 ;;; flymake-tests.el --- Test suite for flymake
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Eduard Wiebe <address@hidden>
 
diff --git a/test/lisp/progmodes/js-tests.el b/test/lisp/progmodes/js-tests.el
new file mode 100644
index 0000000..84749ef
--- /dev/null
+++ b/test/lisp/progmodes/js-tests.el
@@ -0,0 +1,90 @@
+;;; js-tests.el --- Test suite for js-mode
+
+;; Copyright (C) 2017 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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.
+
+;; GNU Emacs 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 GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'ert)
+(require 'js)
+
+(ert-deftest js-mode-fill-bug-19399 ()
+  (with-temp-buffer
+    (insert "/")
+    (save-excursion (insert "/ comment"))
+    (js-mode)
+    (fill-paragraph)
+    (should (equal (buffer-substring (point-min) (point-max))
+                   "// comment"))))
+
+(ert-deftest js-mode-fill-bug-22431 ()
+  (with-temp-buffer
+    (insert "/**\n")
+    (insert " * Load the inspector's shared head.js for use by tests that ")
+    (insert "need to open the something or other")
+    (js-mode)
+    ;; This fails with auto-fill but not fill-paragraph.
+    (do-auto-fill)
+    (should (equal (buffer-substring (point-min) (point-max))
+                   "/**
+ * Load the inspector's shared head.js for use by tests that need to
+ * open the something or other"))))
+
+(ert-deftest js-mode-fill-bug-22431-fill-paragraph-at-start ()
+  (with-temp-buffer
+    (insert "/**\n")
+    (insert " * Load the inspector's shared head.js for use by tests that ")
+    (insert "need to open the something or other")
+    (js-mode)
+    (goto-char (point-min))
+    (fill-paragraph)
+    (should (equal (buffer-substring (point-min) (point-max))
+                   "/**
+ * Load the inspector's shared head.js for use by tests that need to
+ * open the something or other"))))
+
+(ert-deftest js-mode-regexp-syntax ()
+  (with-temp-buffer
+    ;; Normally indentation tests are done in manual/indent, but in
+    ;; this case we are specifically testing a case where the bug
+    ;; caused the indenter not to do anything, and manual/indent can
+    ;; only be used for already-correct files.
+    (insert "function f(start, value) {
+if (start - 1 === 0 || /[ (:,='\"]/.test(value)) {
+--start;
+}
+if (start - 1 === 0 && /[ (:,='\"]/.test(value)) {
+--start;
+}
+if (!/[ (:,='\"]/.test(value)) {
+--start;
+}
+}
+")
+    (js-mode)
+    (indent-region (point-min) (point-max))
+    (goto-char (point-min))
+    (dolist (x '(0 4 8 4 4 8 4 4 8 4 0))
+      (back-to-indentation)
+      (should (= (current-column) x))
+      (forward-line))))
+
+(provide 'js-tests)
+
+;;; js-tests.el ends here
diff --git a/test/lisp/progmodes/python-tests.el 
b/test/lisp/progmodes/python-tests.el
index f6564dd..1e6b867 100644
--- a/test/lisp/progmodes/python-tests.el
+++ b/test/lisp/progmodes/python-tests.el
@@ -1,6 +1,6 @@
 ;;; python-tests.el --- Test suite for python.el
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -1156,6 +1156,27 @@ if do:
    (python-tests-look-at "that)")
    (should (= (current-indentation) 6))))
 
+(ert-deftest python-indent-electric-colon-4 ()
+  "Test indentation case where there is one more-indented previous open block."
+  (python-tests-with-temp-buffer
+   "
+def f():
+    if True:
+        a = 5
+
+        if True:
+            a = 10
+
+        b = 3
+
+else
+"
+   (python-tests-look-at "else")
+   (goto-char (line-end-position))
+   (python-tests-self-insert ":")
+   (python-tests-look-at "else" -1)
+   (should (= (current-indentation) 4))))
+
 (ert-deftest python-indent-region-1 ()
   "Test indentation case from Bug#18843."
   (let ((contents "
@@ -2457,7 +2478,7 @@ if x:
   (python-tests-with-temp-buffer
       " \"\n"
     (goto-char (point-min))
-    (font-lock-fontify-buffer)))
+    (call-interactively 'font-lock-fontify-buffer)))
 
 
 ;;; Shell integration
@@ -3559,6 +3580,9 @@ class Baz(object):
 
         def c(self):
             pass
+
+        async def d(self):
+            pass
 "
    (goto-char (point-max))
    (should (equal
@@ -3580,7 +3604,8 @@ class Baz(object):
               (list
                "Frob (class)"
                (cons "*class definition*" (copy-marker 601))
-               (cons "c (def)" (copy-marker 626)))))
+               (cons "c (def)" (copy-marker 626))
+               (cons "d (async def)" (copy-marker 665)))))
             (python-imenu-create-index)))))
 
 (ert-deftest python-imenu-create-index-2 ()
@@ -3702,6 +3727,9 @@ class Baz(object):
 
         def c(self):
             pass
+
+        async def d(self):
+            pass
 "
    (goto-char (point-max))
    (should (equal
@@ -3714,7 +3742,8 @@ class Baz(object):
                   (cons "Baz.a" (copy-marker 539))
                   (cons "Baz.b" (copy-marker 570))
                   (cons "Baz.Frob" (copy-marker 601))
-                  (cons "Baz.Frob.c" (copy-marker 626)))
+                  (cons "Baz.Frob.c" (copy-marker 626))
+                  (cons "Baz.Frob.d" (copy-marker 665)))
             (python-imenu-create-flat-index)))))
 
 (ert-deftest python-imenu-create-flat-index-2 ()
diff --git a/test/lisp/progmodes/ruby-mode-tests.el 
b/test/lisp/progmodes/ruby-mode-tests.el
index 97f277b..f04483f 100644
--- a/test/lisp/progmodes/ruby-mode-tests.el
+++ b/test/lisp/progmodes/ruby-mode-tests.el
@@ -1,6 +1,6 @@
 ;;; ruby-mode-tests.el --- Test suite for ruby-mode
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/progmodes/sql-tests.el b/test/lisp/progmodes/sql-tests.el
index e05247a..27a72aa 100644
--- a/test/lisp/progmodes/sql-tests.el
+++ b/test/lisp/progmodes/sql-tests.el
@@ -1,6 +1,6 @@
 ;;; sql-tests.el --- Tests for sql.el  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Simen Heggestøyl <address@hidden>
 ;; Keywords:
diff --git a/test/lisp/progmodes/subword-tests.el 
b/test/lisp/progmodes/subword-tests.el
index 5a56276..39512ef 100644
--- a/test/lisp/progmodes/subword-tests.el
+++ b/test/lisp/progmodes/subword-tests.el
@@ -1,6 +1,6 @@
 ;;; subword-tests.el --- Testing the subword rules
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <address@hidden>
 ;; Keywords:
diff --git a/test/lisp/progmodes/xref-tests.el 
b/test/lisp/progmodes/xref-tests.el
index 2b74581..b7f0f05 100644
--- a/test/lisp/progmodes/xref-tests.el
+++ b/test/lisp/progmodes/xref-tests.el
@@ -1,6 +1,6 @@
 ;;; xref-tests.el --- tests for xref
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Dmitry Gutov <address@hidden>
 
diff --git a/test/lisp/ps-print-tests.el b/test/lisp/ps-print-tests.el
index 9ebd31b..e1df37b 100644
--- a/test/lisp/ps-print-tests.el
+++ b/test/lisp/ps-print-tests.el
@@ -1,6 +1,6 @@
 ;;; ps-print-tests.el --- Test suite for ps-print.el  -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Phillip Lord <address@hidden>
 
diff --git a/test/lisp/replace-tests.el b/test/lisp/replace-tests.el
index 2b71348..adef5a3 100644
--- a/test/lisp/replace-tests.el
+++ b/test/lisp/replace-tests.el
@@ -1,6 +1,6 @@
 ;;; replace-tests.el --- tests for replace.el.
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Richard <address@hidden>
 ;; Author: Juri Linkov <address@hidden>
diff --git a/test/lisp/rot13-tests.el b/test/lisp/rot13-tests.el
index a31dc50..70fe345 100644
--- a/test/lisp/rot13-tests.el
+++ b/test/lisp/rot13-tests.el
@@ -1,6 +1,6 @@
 ;;; rot13-tests.el --- Tests for rot13.el  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Simen Heggestøyl <address@hidden>
 ;; Keywords:
diff --git a/test/lisp/shell-tests.el b/test/lisp/shell-tests.el
index be8f7d5..6eb9cdc 100644
--- a/test/lisp/shell-tests.el
+++ b/test/lisp/shell-tests.el
@@ -1,6 +1,6 @@
 ;;; shell-tests.el  -*- lexical-binding:t -*-
 
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/simple-tests.el b/test/lisp/simple-tests.el
index d022240..f4849c4 100644
--- a/test/lisp/simple-tests.el
+++ b/test/lisp/simple-tests.el
@@ -1,6 +1,6 @@
 ;;; simple-test.el --- Tests for simple.el           -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Artur Malabarba <address@hidden>
 
@@ -30,8 +30,9 @@
      (insert "(a b")
      (save-excursion (insert " c d)"))
      ,@body
-     (cons (buffer-substring (point-min) (point))
-           (buffer-substring (point) (point-max)))))
+     (with-no-warnings
+       (cons (buffer-substring (point-min) (point))
+             (buffer-substring (point) (point-max))))))
 
 
 (defmacro simple-test--transpositions (&rest body)
@@ -266,7 +267,6 @@
    (with-temp-buffer
      (setq buffer-undo-list nil)
      (insert "hello")
-     (car buffer-undo-list)
      (undo-auto--boundaries 'test))))
 
 ;;; Transposition with negative args (bug#20698, bug#21885)
diff --git a/test/lisp/sort-tests.el b/test/lisp/sort-tests.el
index f3a182c..f6cbe90 100644
--- a/test/lisp/sort-tests.el
+++ b/test/lisp/sort-tests.el
@@ -1,6 +1,6 @@
 ;;; sort-tests.el --- Tests for sort.el              -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Artur Malabarba <address@hidden>
 
diff --git a/test/lisp/subr-tests.el b/test/lisp/subr-tests.el
index 82a70ca..a3b08e9 100644
--- a/test/lisp/subr-tests.el
+++ b/test/lisp/subr-tests.el
@@ -1,6 +1,6 @@
 ;;; subr-tests.el --- Tests for subr.el
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Oleh Krehel <address@hidden>,
 ;;         Nicolas Petton <address@hidden>
@@ -271,5 +271,15 @@ indirectly `mapbacktrace'."
   (let ((frame-lists (subr-test--frames-1 'subr-test--frames-2)))
     (should (equal (car frame-lists) (cdr frame-lists)))))
 
+(ert-deftest subr-tests--string-match-p--blank ()
+  "Test that [:blank:] matches horizontal whitespace, cf. Bug#25366."
+  (should (equal (string-match-p "\\`[[:blank:]]\\'" " ") 0))
+  (should (equal (string-match-p "\\`[[:blank:]]\\'" "\t") 0))
+  (should-not (string-match-p "\\`[[:blank:]]\\'" "\n"))
+  (should-not (string-match-p "\\`[[:blank:]]\\'" "a"))
+  (should (equal (string-match-p "\\`[[:blank:]]\\'" "\N{HAIR SPACE}") 0))
+  (should (equal (string-match-p "\\`[[:blank:]]\\'" "\u3000") 0))
+  (should-not (string-match-p "\\`[[:blank:]]\\'" "\N{LINE SEPARATOR}")))
+
 (provide 'subr-tests)
 ;;; subr-tests.el ends here
diff --git a/test/lisp/textmodes/css-mode-tests.el 
b/test/lisp/textmodes/css-mode-tests.el
index f92ac11..5372c37 100644
--- a/test/lisp/textmodes/css-mode-tests.el
+++ b/test/lisp/textmodes/css-mode-tests.el
@@ -1,6 +1,6 @@
 ;;; css-mode-tests.el --- Test suite for CSS mode  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Simen Heggestøyl <address@hidden>
 ;; Keywords: internal
@@ -218,5 +218,20 @@
       (should (member "body" completions))
       (should-not (member "article" completions)))))
 
+(ert-deftest css-mdn-symbol-guessing ()
+  (dolist (item '(("@med" "ia" "@media")
+                  ("@keyframes " "{" "@keyframes")
+                  ("p::after" "" "::after")
+                  ("p:before" "" ":before")
+                  ("a:v" "isited" ":visited")
+                  ("border-" "color: red" "border-color")
+                  ("border-color: red" ";" "border-color")
+                  ("border-color: red; color: green" ";" "color")))
+    (with-temp-buffer
+      (css-mode)
+      (insert (nth 0 item))
+      (save-excursion (insert (nth 1 item)))
+      (should (equal (nth 2 item) (css--mdn-find-symbol))))))
+
 (provide 'css-mode-tests)
 ;;; css-mode-tests.el ends here
diff --git a/test/lisp/textmodes/reftex-tests.el 
b/test/lisp/textmodes/reftex-tests.el
index 12ec7f5..55db66c 100644
--- a/test/lisp/textmodes/reftex-tests.el
+++ b/test/lisp/textmodes/reftex-tests.el
@@ -1,6 +1,6 @@
 ;;; reftex-tests.el --- Test suite for reftex. -*- lexical-binding: t -*-
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Rüdiger Sonderfeld <address@hidden>
 ;; Keywords:       internal
diff --git a/test/lisp/textmodes/sgml-mode-tests.el 
b/test/lisp/textmodes/sgml-mode-tests.el
index 4184e2c..e1aa3e8 100644
--- a/test/lisp/textmodes/sgml-mode-tests.el
+++ b/test/lisp/textmodes/sgml-mode-tests.el
@@ -1,6 +1,6 @@
 ;;; sgml-mode-tests.el --- Tests for sgml-mode
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Przemysław Wojnowski <address@hidden>
 ;; Keywords: tests
diff --git a/test/lisp/textmodes/tildify-tests.el 
b/test/lisp/textmodes/tildify-tests.el
index 8b50cf7..f958fbc 100644
--- a/test/lisp/textmodes/tildify-tests.el
+++ b/test/lisp/textmodes/tildify-tests.el
@@ -1,6 +1,6 @@
 ;;; tildify-test.el --- ERT tests for tildify.el -*- lexical-binding: t -*-
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author:     Michal Nazarewicz <address@hidden>
 ;; Version:    4.5
@@ -226,7 +226,7 @@ The function must terminate as soon as callback returns 
nil."
 
 
 (defun tildify-space-undo-test--test
-    (modes nbsp env-open &optional set-space-string)
+    (modes nbsp _env-open &optional set-space-string)
   (with-temp-buffer
     (setq-local buffer-file-coding-system 'utf-8)
     (dolist (mode modes)
diff --git a/test/lisp/thingatpt-tests.el b/test/lisp/thingatpt-tests.el
index 6d73d90..d4449ea 100644
--- a/test/lisp/thingatpt-tests.el
+++ b/test/lisp/thingatpt-tests.el
@@ -1,6 +1,6 @@
 ;;; thingatpt.el --- tests for thing-at-point.
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/lisp/url/url-auth-tests.el b/test/lisp/url/url-auth-tests.el
index bc30f35..11e5a47 100644
--- a/test/lisp/url/url-auth-tests.el
+++ b/test/lisp/url/url-auth-tests.el
@@ -1,6 +1,6 @@
 ;;; url-auth-tests.el --- Test suite for url-auth.
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Jarno Malmari <address@hidden>
 
diff --git a/test/lisp/url/url-expand-tests.el 
b/test/lisp/url/url-expand-tests.el
index 6d1d54d..2debbde 100644
--- a/test/lisp/url/url-expand-tests.el
+++ b/test/lisp/url/url-expand-tests.el
@@ -1,6 +1,6 @@
 ;;; url-expand-tests.el --- Test suite for relative URI/URL resolution.
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Alain Schneble <address@hidden>
 ;; Version: 1.0
diff --git a/test/lisp/url/url-future-tests.el 
b/test/lisp/url/url-future-tests.el
index 87298cc..64d0452 100644
--- a/test/lisp/url/url-future-tests.el
+++ b/test/lisp/url/url-future-tests.el
@@ -1,6 +1,6 @@
 ;;; url-future-tests.el --- Test suite for url-future.
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Teodor Zlatanov <address@hidden>
 ;; Keywords: data
diff --git a/test/lisp/url/url-parse-tests.el b/test/lisp/url/url-parse-tests.el
index 77c5320..05da728 100644
--- a/test/lisp/url/url-parse-tests.el
+++ b/test/lisp/url/url-parse-tests.el
@@ -1,6 +1,6 @@
 ;;; url-parse-tests.el --- Test suite for URI/URL parsing.
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Alain Schneble <address@hidden>
 ;; Version: 1.0
diff --git a/test/lisp/url/url-util-tests.el b/test/lisp/url/url-util-tests.el
index 2f1de51..c337589 100644
--- a/test/lisp/url/url-util-tests.el
+++ b/test/lisp/url/url-util-tests.el
@@ -1,6 +1,6 @@
 ;;; url-util-tests.el --- Test suite for url-util.
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Teodor Zlatanov <address@hidden>
 ;; Keywords: data
diff --git a/test/lisp/vc/add-log-tests.el b/test/lisp/vc/add-log-tests.el
index 71be5a9..3e7bc7f 100644
--- a/test/lisp/vc/add-log-tests.el
+++ b/test/lisp/vc/add-log-tests.el
@@ -1,6 +1,6 @@
 ;;; add-log-tests.el --- Test suite for add-log.
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Masatake YAMATO <address@hidden>
 ;; Keywords: vc tools
diff --git a/test/lisp/vc/ediff-ptch-tests.el b/test/lisp/vc/ediff-ptch-tests.el
index 427423a..912c6b1 100644
--- a/test/lisp/vc/ediff-ptch-tests.el
+++ b/test/lisp/vc/ediff-ptch-tests.el
@@ -1,6 +1,6 @@
 ;;; ediff-ptch-tests.el --- Tests for ediff-ptch.el
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Tino Calancha <address@hidden>
 
diff --git a/test/lisp/vc/vc-bzr-tests.el b/test/lisp/vc/vc-bzr-tests.el
index f27e658..fc7d8f8 100644
--- a/test/lisp/vc/vc-bzr-tests.el
+++ b/test/lisp/vc/vc-bzr-tests.el
@@ -1,6 +1,6 @@
 ;;; vc-bzr.el --- tests for vc/vc-bzr.el
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Glenn Morris <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/test/lisp/vc/vc-hg.el b/test/lisp/vc/vc-hg.el
index ba96659..8e4c973 100644
--- a/test/lisp/vc/vc-hg.el
+++ b/test/lisp/vc/vc-hg.el
@@ -1,6 +1,6 @@
 ;;; vc-hg.el --- tests for vc/vc-hg.el
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Dmitry Gutov <address@hidden>
 ;; Maintainer: address@hidden
diff --git a/test/lisp/vc/vc-tests.el b/test/lisp/vc/vc-tests.el
index 8dc72cd..ad4399d 100644
--- a/test/lisp/vc/vc-tests.el
+++ b/test/lisp/vc/vc-tests.el
@@ -1,6 +1,6 @@
 ;;; vc-tests.el --- Tests of different backends of vc.el
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <address@hidden>
 
@@ -206,7 +206,7 @@ For backends which dont support it, it is emulated."
 ;; FIXME: Why isn't there `vc-unregister'?
 (defun vc-test--unregister-function (backend file)
   "Run the `vc-unregister' backend function.
-For backends which don't support it, `vc-not-supported' is signalled."
+For backends which don't support it, `vc-not-supported' is signaled."
   ;; CVS, SVN, SCCS, SRC and Mtn are not supported, and will signal
   ;; `vc-not-supported'.
   (prog1
diff --git a/test/lisp/whitespace-tests.el b/test/lisp/whitespace-tests.el
new file mode 100644
index 0000000..99cc3c4
--- /dev/null
+++ b/test/lisp/whitespace-tests.el
@@ -0,0 +1,52 @@
+;;; whitespace-tests.el --- Test suite for whitespace -*- lexical-binding: t 
-*-
+
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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.
+
+;; GNU Emacs 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 GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(require 'ert)
+(require 'whitespace)
+
+(defun whitespace-tests--cleanup-string (string)
+  (with-temp-buffer
+    (insert string)
+    (whitespace-cleanup)
+    (buffer-string)))
+
+(ert-deftest whitespace-cleanup-eob ()
+  (let ((whitespace-style '(empty)))
+    (should (equal (whitespace-tests--cleanup-string "a\n")
+                   "a\n"))
+    (should (equal (whitespace-tests--cleanup-string "a\n\n")
+                   "a\n"))
+    (should (equal (whitespace-tests--cleanup-string "a\n\t\n")
+                   "a\n"))
+    (should (equal (whitespace-tests--cleanup-string "a\n\t \n")
+                   "a\n"))
+    (should (equal (whitespace-tests--cleanup-string "a\n\t \n\n")
+                   "a\n"))
+    (should (equal (whitespace-tests--cleanup-string "\n\t\n")
+                   ""))
+    ;; Whitespace at end of non-empty line is not covered by the
+    ;; `empty' style.
+    (should (equal (whitespace-tests--cleanup-string "a  \n\t \n\n")
+                   "a  \n"))))
+
+(provide 'whitespace-tests)
+
+;;; whitespace-tests.el ends here
diff --git a/test/lisp/xml-tests.el b/test/lisp/xml-tests.el
index 488d2c6..d0da209 100644
--- a/test/lisp/xml-tests.el
+++ b/test/lisp/xml-tests.el
@@ -1,6 +1,6 @@
 ;;; xml-parse-tests.el --- Test suite for XML parsing.
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Chong Yidong <address@hidden>
 ;; Keywords:       internal
@@ -134,6 +134,21 @@ Parser is called with and without 'symbol-qnames 
argument.")
                            (append xml-default-ns
                                    '(("F" . "FOOBAR:"))))))))))
 
+;; Test bug #23440 (proper expansion of default namespace)
+; Test data for default namespace
+(defvar xml-parse-test--default-namespace-qnames
+  (cons "<something xmlns=\"myns:\"><whatever></whatever></something>"
+        '((myns:something
+           ((("http://www.w3.org/2000/xmlns/"; . "")
+             . "myns:"))
+           (myns:whatever nil)))))
+
+(ert-deftest xml-parse-test-default-namespace-qnames ()
+  (with-temp-buffer
+    (insert (car xml-parse-test--default-namespace-qnames))
+    (should (equal (cdr xml-parse-test--default-namespace-qnames)
+                   (xml-parse-region nil nil nil nil 'symbol-qnames)))))
+
 ;; Local Variables:
 ;; no-byte-compile: t
 ;; End:
diff --git a/test/lisp/xt-mouse-tests.el b/test/lisp/xt-mouse-tests.el
index c7e835c..c0e97f5 100644
--- a/test/lisp/xt-mouse-tests.el
+++ b/test/lisp/xt-mouse-tests.el
@@ -1,6 +1,6 @@
 ;;; xt-mouse-tests.el --- Test suite for xt-mouse.  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Philipp Stephani <address@hidden>
 
diff --git a/test/make-test-deps.emacs-lisp b/test/make-test-deps.emacs-lisp
index 9edeef3..609e927 100644
--- a/test/make-test-deps.emacs-lisp
+++ b/test/make-test-deps.emacs-lisp
@@ -1,6 +1,6 @@
 ;; -*- emacs-lisp -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/manual/biditest.el b/test/manual/biditest.el
index c1a5750..c315749 100644
--- a/test/manual/biditest.el
+++ b/test/manual/biditest.el
@@ -1,6 +1,6 @@
 ;;; biditest.el --- test bidi reordering in GNU Emacs display engine.
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Eli Zaretskii
 ;; Maintainer: address@hidden
diff --git a/test/manual/cedet/cedet-utests.el 
b/test/manual/cedet/cedet-utests.el
index ae9d576..b8396b8 100644
--- a/test/manual/cedet/cedet-utests.el
+++ b/test/manual/cedet/cedet-utests.el
@@ -1,6 +1,6 @@
 ;;; cedet-utests.el --- Run all unit tests in the CEDET suite.
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/ede-tests.el b/test/manual/cedet/ede-tests.el
index 32971e4..fdad01c 100644
--- a/test/manual/cedet/ede-tests.el
+++ b/test/manual/cedet/ede-tests.el
@@ -1,6 +1,6 @@
 ;;; ede-tests.el --- Some tests for the Emacs Development Environment
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/semantic-ia-utest.el 
b/test/manual/cedet/semantic-ia-utest.el
index a5b70b8..cf89daf 100644
--- a/test/manual/cedet/semantic-ia-utest.el
+++ b/test/manual/cedet/semantic-ia-utest.el
@@ -1,6 +1,6 @@
 ;;; semantic-ia-utest.el --- Analyzer unit tests
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/semantic-tests.el 
b/test/manual/cedet/semantic-tests.el
index 179851f..bfcba7e 100644
--- a/test/manual/cedet/semantic-tests.el
+++ b/test/manual/cedet/semantic-tests.el
@@ -1,6 +1,6 @@
 ;;; semantic-utest.el --- Miscellaneous Semantic tests.
 
-;;; Copyright (C) 2003-2004, 2007-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2003-2004, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/semantic-utest-c.el 
b/test/manual/cedet/semantic-utest-c.el
index ec09b96..26ce400 100644
--- a/test/manual/cedet/semantic-utest-c.el
+++ b/test/manual/cedet/semantic-utest-c.el
@@ -1,6 +1,6 @@
 ;;; semantic-utest-c.el --- C based parsing tests.
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/semantic-utest.el 
b/test/manual/cedet/semantic-utest.el
index d26d611..f735e55 100644
--- a/test/manual/cedet/semantic-utest.el
+++ b/test/manual/cedet/semantic-utest.el
@@ -1,6 +1,6 @@
 ;;; semantic-utest.el --- Tests for semantic's parsing system.
 
-;;; Copyright (C) 2003-2004, 2007-2016 Free Software Foundation, Inc.
+;;; Copyright (C) 2003-2004, 2007-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/srecode-tests.el 
b/test/manual/cedet/srecode-tests.el
index 18beb92..36256a7 100644
--- a/test/manual/cedet/srecode-tests.el
+++ b/test/manual/cedet/srecode-tests.el
@@ -1,6 +1,6 @@
 ;;; srecode-tests.el --- Some tests for CEDET's srecode
 
-;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/test.c b/test/manual/cedet/tests/test.c
index 0aa8852..a464869 100644
--- a/test/manual/cedet/tests/test.c
+++ b/test/manual/cedet/tests/test.c
@@ -1,6 +1,6 @@
 /* test.c --- Semantic unit test for C.
 
-   Copyright (C) 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2017 Free Software Foundation, Inc.
 
    Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/test.el b/test/manual/cedet/tests/test.el
index 15517da..a0efd40 100644
--- a/test/manual/cedet/tests/test.el
+++ b/test/manual/cedet/tests/test.el
@@ -1,6 +1,6 @@
 ;;; test.el --- Unit test file for Semantic Emacs Lisp support.
 
-;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2017 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/test.make 
b/test/manual/cedet/tests/test.make
index 1eb71f7..46421da 100644
--- a/test/manual/cedet/tests/test.make
+++ b/test/manual/cedet/tests/test.make
@@ -1,6 +1,6 @@
 # test.make --- Semantic unit test for Make -*- makefile -*-
 
-# Copyright (C) 2001-2002, 2010-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2010-2017 Free Software Foundation, Inc.
 
 # Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/testdoublens.cpp 
b/test/manual/cedet/tests/testdoublens.cpp
index 63c4dee..e9a6ba5 100644
--- a/test/manual/cedet/tests/testdoublens.cpp
+++ b/test/manual/cedet/tests/testdoublens.cpp
@@ -1,6 +1,6 @@
 // testdoublens.cpp --- semantic-ia-utest completion engine unit tests
 
-// Copyright (C) 2008-2016 Free Software Foundation, Inc.
+// Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 // Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/testdoublens.hpp 
b/test/manual/cedet/tests/testdoublens.hpp
index 6d2a0f0..556f068 100644
--- a/test/manual/cedet/tests/testdoublens.hpp
+++ b/test/manual/cedet/tests/testdoublens.hpp
@@ -1,6 +1,6 @@
 // testdoublens.hpp --- Header file used in one of the Semantic tests
 
-// Copyright (C) 2008-2016 Free Software Foundation, Inc.
+// Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 // Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/testjavacomp.java 
b/test/manual/cedet/tests/testjavacomp.java
index f0abfc9..c32a17c 100644
--- a/test/manual/cedet/tests/testjavacomp.java
+++ b/test/manual/cedet/tests/testjavacomp.java
@@ -1,6 +1,6 @@
 //  testjavacomp.java --- Semantic unit test for Java
 
-// Copyright (C) 2009-2016 Free Software Foundation, Inc.
+// Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 //  Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/testpolymorph.cpp 
b/test/manual/cedet/tests/testpolymorph.cpp
index 94ae9d9..27aa08b 100644
--- a/test/manual/cedet/tests/testpolymorph.cpp
+++ b/test/manual/cedet/tests/testpolymorph.cpp
@@ -1,6 +1,6 @@
 /** testpolymorph.cpp --- A sequence of polymorphism examples.
  *
- * Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ * Copyright (C) 2009-2017 Free Software Foundation, Inc.
  *
  * Author: Eric M. Ludlam <address@hidden>
  *
diff --git a/test/manual/cedet/tests/testspp.c 
b/test/manual/cedet/tests/testspp.c
index cfb3996..02eab53 100644
--- a/test/manual/cedet/tests/testspp.c
+++ b/test/manual/cedet/tests/testspp.c
@@ -1,6 +1,6 @@
 /* testspp.cpp --- Semantic unit test for the C preprocessor
 
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
    Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/testsppreplace.c 
b/test/manual/cedet/tests/testsppreplace.c
index fbbaa75..56ef320 100644
--- a/test/manual/cedet/tests/testsppreplace.c
+++ b/test/manual/cedet/tests/testsppreplace.c
@@ -1,5 +1,5 @@
 /* testsppreplace.c --- unit test for CPP/SPP Replacement
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
    Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/testsppreplaced.c 
b/test/manual/cedet/tests/testsppreplaced.c
index 8cbe05b..3ba90aa 100644
--- a/test/manual/cedet/tests/testsppreplaced.c
+++ b/test/manual/cedet/tests/testsppreplaced.c
@@ -1,5 +1,5 @@
 /* testsppreplaced.c --- unit test for CPP/SPP Replacement
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
    Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/testsubclass.cpp 
b/test/manual/cedet/tests/testsubclass.cpp
index 2cb9e76..e74ca43 100644
--- a/test/manual/cedet/tests/testsubclass.cpp
+++ b/test/manual/cedet/tests/testsubclass.cpp
@@ -1,6 +1,6 @@
 // testsubclass.cpp --- unit test for analyzer and complex C++ inheritance
 
-// Copyright (C) 2007-2016 Free Software Foundation, Inc.
+// Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 // Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/testsubclass.hh 
b/test/manual/cedet/tests/testsubclass.hh
index 7c93f8e..6f199c2 100644
--- a/test/manual/cedet/tests/testsubclass.hh
+++ b/test/manual/cedet/tests/testsubclass.hh
@@ -1,6 +1,6 @@
 // testsubclass.hh --- unit test for analyzer and complex C++ inheritance
 
-// Copyright (C) 2007-2016 Free Software Foundation, Inc.
+// Copyright (C) 2007-2017 Free Software Foundation, Inc.
 
 // Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/testtypedefs.cpp 
b/test/manual/cedet/tests/testtypedefs.cpp
index 312a77f..e6c91f7 100644
--- a/test/manual/cedet/tests/testtypedefs.cpp
+++ b/test/manual/cedet/tests/testtypedefs.cpp
@@ -1,6 +1,6 @@
 // testtypedefs.cpp --- Sample with some fake bits out of std::string
 
-// Copyright (C) 2008-2016 Free Software Foundation, Inc.
+// Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
 // Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/cedet/tests/testvarnames.c 
b/test/manual/cedet/tests/testvarnames.c
index 419361d..dbc4afb 100644
--- a/test/manual/cedet/tests/testvarnames.c
+++ b/test/manual/cedet/tests/testvarnames.c
@@ -1,7 +1,7 @@
 /* testvarnames.cpp
    Test variable and function names, lists of variables on one line, etc.
 
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2017 Free Software Foundation, Inc.
 
    Author: Eric M. Ludlam <address@hidden>
 
diff --git a/test/manual/etags/c-src/abbrev.c b/test/manual/etags/c-src/abbrev.c
index b7d137c..c01eee4 100644
--- a/test/manual/etags/c-src/abbrev.c
+++ b/test/manual/etags/c-src/abbrev.c
@@ -1,5 +1,5 @@
 /* Primitives for word-abbrev mode.
-   Copyright (C) 1985-1986, 1993, 1996, 1998, 2016 Free Software
+   Copyright (C) 1985-1986, 1993, 1996, 1998, 2016-2017 Free Software
    Foundation, Inc.
 
 This file is part of GNU Emacs.
diff --git a/test/manual/etags/c-src/emacs/src/gmalloc.c 
b/test/manual/etags/c-src/emacs/src/gmalloc.c
index 683ee0c..79b2040 100644
--- a/test/manual/etags/c-src/emacs/src/gmalloc.c
+++ b/test/manual/etags/c-src/emacs/src/gmalloc.c
@@ -1,5 +1,5 @@
 /* Declarations for `malloc' and friends.
-   Copyright (C) 1990-1993, 1995-1996, 1999, 2002-2007, 2013-2016 Free
+   Copyright (C) 1990-1993, 1995-1996, 1999, 2002-2007, 2013-2017 Free
    Software Foundation, Inc.
                  Written May 1989 by Mike Haertel.
 
diff --git a/test/manual/etags/c-src/emacs/src/keyboard.c 
b/test/manual/etags/c-src/emacs/src/keyboard.c
index 68584ee..5a65149 100644
--- a/test/manual/etags/c-src/emacs/src/keyboard.c
+++ b/test/manual/etags/c-src/emacs/src/keyboard.c
@@ -1,6 +1,6 @@
 /* Keyboard and mouse input; editor command loop.
 
-Copyright (C) 1985-1989, 1993-1997, 1999-2016 Free Software Foundation,
+Copyright (C) 1985-1989, 1993-1997, 1999-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
diff --git a/test/manual/etags/c-src/emacs/src/lisp.h 
b/test/manual/etags/c-src/emacs/src/lisp.h
index db87229..6885896 100644
--- a/test/manual/etags/c-src/emacs/src/lisp.h
+++ b/test/manual/etags/c-src/emacs/src/lisp.h
@@ -1,6 +1,6 @@
 /* Fundamental definitions for GNU Emacs Lisp interpreter.
 
-Copyright (C) 1985-1987, 1993-1995, 1997-2016 Free Software Foundation,
+Copyright (C) 1985-1987, 1993-1995, 1997-2017 Free Software Foundation,
 Inc.
 
 This file is part of GNU Emacs.
diff --git a/test/manual/etags/c-src/emacs/src/regex.h 
b/test/manual/etags/c-src/emacs/src/regex.h
index f97c1cb..2ed6238 100644
--- a/test/manual/etags/c-src/emacs/src/regex.h
+++ b/test/manual/etags/c-src/emacs/src/regex.h
@@ -1,7 +1,7 @@
 /* Definitions for data structures and routines for the regular
    expression library, version 0.12.
 
-   Copyright (C) 1985, 1989-1993, 1995, 2000-2016 Free Software
+   Copyright (C) 1985, 1989-1993, 1995, 2000-2017 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
diff --git a/test/manual/etags/c-src/etags.c b/test/manual/etags/c-src/etags.c
index 4534198..e8321f0 100644
--- a/test/manual/etags/c-src/etags.c
+++ b/test/manual/etags/c-src/etags.c
@@ -28,7 +28,7 @@ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
SOFTWARE, EVEN
 IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
-Copyright (C) 1984, 1987-1989, 1993-1995, 1998-2016 Free Software
+Copyright (C) 1984, 1987-1989, 1993-1995, 1998-2017 Free Software
 Foundation, Inc.
 
 This file is not considered part of GNU Emacs.
diff --git a/test/manual/etags/c-src/exit.c b/test/manual/etags/c-src/exit.c
index 86afda9..b1952bf 100644
--- a/test/manual/etags/c-src/exit.c
+++ b/test/manual/etags/c-src/exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 2016 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 2016-2017 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
diff --git a/test/manual/etags/c-src/exit.strange_suffix 
b/test/manual/etags/c-src/exit.strange_suffix
index 86afda9..b1952bf 100644
--- a/test/manual/etags/c-src/exit.strange_suffix
+++ b/test/manual/etags/c-src/exit.strange_suffix
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 2016 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 2016-2017 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
diff --git a/test/manual/etags/c-src/getopt.h b/test/manual/etags/c-src/getopt.h
index aa2eb1d..aa66fac 100644
--- a/test/manual/etags/c-src/getopt.h
+++ b/test/manual/etags/c-src/getopt.h
@@ -1,5 +1,5 @@
 /* Declarations for getopt.
-   Copyright (C) 1989-1992, 2016 Free Software Foundation, Inc.
+   Copyright (C) 1989-1992, 2016-2017 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
diff --git a/test/manual/etags/c-src/sysdep.h b/test/manual/etags/c-src/sysdep.h
index 6409fcc..2c121cf 100644
--- a/test/manual/etags/c-src/sysdep.h
+++ b/test/manual/etags/c-src/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-1993, 2016 Free Software Foundation, Inc.
+/* Copyright (C) 1992-1993, 2016-2017 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
diff --git a/test/manual/etags/el-src/emacs/lisp/progmodes/etags.el 
b/test/manual/etags/el-src/emacs/lisp/progmodes/etags.el
index 5d28657..9558598 100644
--- a/test/manual/etags/el-src/emacs/lisp/progmodes/etags.el
+++ b/test/manual/etags/el-src/emacs/lisp/progmodes/etags.el
@@ -1,6 +1,6 @@
 ;;; etags.el --- etags facility for Emacs  -*- lexical-binding: t -*-
 
-;; Copyright (C) 1985-1986, 1988-1989, 1992-1996, 1998, 2000-2016 Free
+;; Copyright (C) 1985-1986, 1988-1989, 1992-1996, 1998, 2000-2017 Free
 ;; Software Foundation, Inc.
 
 ;; Author: Roland McGrath <address@hidden>
diff --git a/test/manual/etags/tex-src/texinfo.tex 
b/test/manual/etags/tex-src/texinfo.tex
index aa745c6..e98f24c 100644
--- a/test/manual/etags/tex-src/texinfo.tex
+++ b/test/manual/etags/tex-src/texinfo.tex
@@ -1,6 +1,6 @@
 %% TeX macros to handle texinfo files
 
-%   Copyright (C) 1985-1986, 1988, 1990-1991, 2016 Free Software
+%   Copyright (C) 1985-1986, 1988, 1990-1991, 2016-2017 Free Software
 %   Foundation, Inc.
 
 %This texinfo.tex file is free software; you can redistribute it and/or
diff --git a/test/manual/etags/y-src/cccp.c b/test/manual/etags/y-src/cccp.c
index 022fbe0..380243c 100644
--- a/test/manual/etags/y-src/cccp.c
+++ b/test/manual/etags/y-src/cccp.c
@@ -320,7 +320,7 @@ static const short yycheck[] =
 #line 3 "/usr/share/bison/bison.simple"
 
 /* Skeleton output parser for bison,
-   Copyright (C) 1984, 1989-1990, 2000-2001, 2016 Free Software
+   Copyright (C) 1984, 1989-1990, 2000-2001, 2016-2017 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
diff --git a/test/manual/etags/y-src/parse.c b/test/manual/etags/y-src/parse.c
index d21af68..f8d836e 100644
--- a/test/manual/etags/y-src/parse.c
+++ b/test/manual/etags/y-src/parse.c
@@ -28,7 +28,8 @@
 
 #line 1 "y-src/parse.y"
 
-/*     Copyright (C) 1990, 1992-1993, 2016 Free Software Foundation, Inc.
+/*     Copyright (C) 1990, 1992-1993, 2016-2017 Free Software Foundation,
+ *     Inc.
 
 This file is part of Oleo, the GNU Spreadsheet.
 
diff --git a/test/manual/etags/y-src/parse.y b/test/manual/etags/y-src/parse.y
index 824c98d..b40847d 100644
--- a/test/manual/etags/y-src/parse.y
+++ b/test/manual/etags/y-src/parse.y
@@ -1,5 +1,6 @@
 %{
-/*     Copyright (C) 1990, 1992-1993, 2016 Free Software Foundation, Inc.
+/*     Copyright (C) 1990, 1992-1993, 2016-2017 Free Software Foundation,
+ *     Inc.
 
 This file is part of Oleo, the GNU Spreadsheet.
 
diff --git a/test/manual/indent/Makefile b/test/manual/indent/Makefile
index 8316268..09cf4a2 100644
--- a/test/manual/indent/Makefile
+++ b/test/manual/indent/Makefile
@@ -1,5 +1,5 @@
 RM=rm
-EMACS=../../src/emacs
+EMACS=../../../src/emacs
 
 all: clean $(addsuffix .test,$(wildcard *.*))
 
diff --git a/test/manual/indent/js-chain.js b/test/manual/indent/js-chain.js
new file mode 100644
index 0000000..2a29029
--- /dev/null
+++ b/test/manual/indent/js-chain.js
@@ -0,0 +1,29 @@
+// Normal chaining.
+let x = svg.mumble()
+           .zzz;
+
+// Chaining with an intervening line comment.
+let x = svg.mumble()           // line comment
+           .zzz;
+
+// Chaining with multiple dots.
+let x = svg.selectAll().something()
+           .zzz;
+
+// Nested chaining.
+let x = svg.selectAll(d3.svg.something()
+                        .zzz);
+
+// Nothing to chain to.
+let x = svg()
+    .zzz;
+
+// Nothing to chain to.
+let x = svg().mumble.x() + 73
+    .zzz;
+
+// Local Variables:
+// indent-tabs-mode: nil
+// js-chain-indent: t
+// js-indent-level: 2
+// End:
diff --git a/test/manual/indent/js.js b/test/manual/indent/js.js
index 806e949..846c3a1 100644
--- a/test/manual/indent/js.js
+++ b/test/manual/indent/js.js
@@ -118,6 +118,16 @@ var arr = [
     -5
 ];
 
+// Regression test for bug#15582.
+if (x > 72 &&
+    y < 85) { // found
+  do_something();
+}
+
+// Test that chaining doesn't happen when js-chain-indent is nil.
+let x = svg.mumble()
+    .zzz;
+
 // Local Variables:
 // indent-tabs-mode: nil
 // js-indent-level: 2
diff --git a/test/manual/indent/pascal.pas b/test/manual/indent/pascal.pas
index 2d09eb7..fd225fd 100644
--- a/test/manual/indent/pascal.pas
+++ b/test/manual/indent/pascal.pas
@@ -1,6 +1,6 @@
 { GPC demo program for the CRT unit.
 
-Copyright (C) 1999-2006, 2013-2016 Free Software Foundation, Inc.
+Copyright (C) 1999-2006, 2013-2017 Free Software Foundation, Inc.
 
 Author: Frank Heckenbach <address@hidden>
 
diff --git a/test/manual/redisplay-testsuite.el 
b/test/manual/redisplay-testsuite.el
index 37a5649..694d55a 100644
--- a/test/manual/redisplay-testsuite.el
+++ b/test/manual/redisplay-testsuite.el
@@ -1,6 +1,6 @@
 ;;; redisplay-testsuite.el --- Test suite for redisplay.
 
-;; Copyright (C) 2009-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2017 Free Software Foundation, Inc.
 
 ;; Author: Chong Yidong <address@hidden>
 ;; Keywords:       internal
diff --git a/test/manual/rmailmm.el b/test/manual/rmailmm.el
index 96acbc4..fc570fa 100644
--- a/test/manual/rmailmm.el
+++ b/test/manual/rmailmm.el
@@ -1,6 +1,6 @@
 ;;; rmailmm.el --- tests for mail/rmailmm.el
 
-;; Copyright (C) 2006-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/src/alloc-tests.el b/test/src/alloc-tests.el
index 97c6b4f..af4ad6c 100644
--- a/test/src/alloc-tests.el
+++ b/test/src/alloc-tests.el
@@ -1,6 +1,6 @@
 ;;; alloc-tests.el --- alloc tests -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Daniel Colascione <address@hidden>
 ;; Keywords:
diff --git a/test/src/buffer-tests.el b/test/src/buffer-tests.el
index 6287521..793dddd 100644
--- a/test/src/buffer-tests.el
+++ b/test/src/buffer-tests.el
@@ -1,6 +1,6 @@
 ;;; buffer-tests.el --- tests for buffer.c functions -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/src/callproc-tests.el b/test/src/callproc-tests.el
index 46541ab..853d56e 100644
--- a/test/src/callproc-tests.el
+++ b/test/src/callproc-tests.el
@@ -1,6 +1,6 @@
 ;;; callproc-tests.el --- callproc.c tests -*- lexical-binding: t -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/src/chartab-tests.el b/test/src/chartab-tests.el
index 016ddcd..54fcdcf 100644
--- a/test/src/chartab-tests.el
+++ b/test/src/chartab-tests.el
@@ -1,6 +1,6 @@
 ;;; chartab-tests.el --- Tests for char-tab.c
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Eli Zaretskii <address@hidden>
 
diff --git a/test/src/cmds-tests.el b/test/src/cmds-tests.el
index 4a30d98..207ae75 100644
--- a/test/src/cmds-tests.el
+++ b/test/src/cmds-tests.el
@@ -1,6 +1,6 @@
 ;;; cmds-tests.el --- Testing some Emacs commands
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Nicolas Richard <address@hidden>
 ;; Keywords:
diff --git a/test/src/coding-tests.el b/test/src/coding-tests.el
index bd494bc..cfcd080 100644
--- a/test/src/coding-tests.el
+++ b/test/src/coding-tests.el
@@ -1,6 +1,6 @@
 ;;; coding-tests.el --- tests for text encoding and decoding
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Eli Zaretskii <address@hidden>
 ;; Author: Kenichi Handa <address@hidden>
diff --git a/test/src/data-tests.el b/test/src/data-tests.el
index de0b8e6..2e4a6aa 100644
--- a/test/src/data-tests.el
+++ b/test/src/data-tests.el
@@ -1,6 +1,6 @@
 ;;; data-tests.el --- tests for src/data.c
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -332,7 +332,6 @@ comparing the subr with a much slower lisp implementation."
 ;; defvar and defconst modify the local binding [ doesn't matter for us ]
 ;; various kinds of special internal forwarding objects
 ;;   a couple examples in manual, not enough
-;; frame-local vars
 ;; variable aliases
 
 ;; Tests for watchpoints
diff --git a/test/src/decompress-tests.el b/test/src/decompress-tests.el
index f0264ec..eaec0d0 100644
--- a/test/src/decompress-tests.el
+++ b/test/src/decompress-tests.el
@@ -1,6 +1,6 @@
 ;;; decompress-tests.el --- Test suite for decompress.
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
 
 ;; Author: Lars Ingebrigtsen <address@hidden>
 
diff --git a/test/src/doc-tests.el b/test/src/doc-tests.el
index be49054..8e5446e 100644
--- a/test/src/doc-tests.el
+++ b/test/src/doc-tests.el
@@ -1,6 +1,6 @@
 ;;; doc-tests.el --- Tests for doc.c
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Eli Zaretskii <address@hidden>
 
diff --git a/test/src/editfns-tests.el b/test/src/editfns-tests.el
index 2f90d1e..7b4f41a 100644
--- a/test/src/editfns-tests.el
+++ b/test/src/editfns-tests.el
@@ -1,6 +1,6 @@
 ;;; editfns-tests.el -- tests for editfns.c
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/src/eval-tests.el b/test/src/eval-tests.el
index fe08506..95655ea 100644
--- a/test/src/eval-tests.el
+++ b/test/src/eval-tests.el
@@ -1,6 +1,6 @@
 ;;; eval-tests.el --- unit tests for src/eval.c      -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Philipp Stephani <address@hidden>
 
@@ -47,4 +47,14 @@ Bug#24912 and Bug#24913."
     (let ((byte-compile-debug t))
       (should-error (eval `(byte-compile (lambda ,args)) t)))))
 
+
+(dolist (form '(let let*))
+  (dolist (arg '(1 "a" [a]))
+    (eval
+     `(ert-deftest ,(intern (format "eval-tests--%s--%s" form (type-of arg))) 
()
+        ,(format "Check that the first argument of `%s' cannot be a %s"
+                 form (type-of arg))
+        (should-error (,form ,arg) :type 'wrong-type-argument))
+     t)))
+
 ;;; eval-tests.el ends here
diff --git a/test/src/fns-tests.el b/test/src/fns-tests.el
index c533bad..ee3c5dc 100644
--- a/test/src/fns-tests.el
+++ b/test/src/fns-tests.el
@@ -1,6 +1,6 @@
 ;;; fns-tests.el --- tests for src/fns.c
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/src/font-tests.el b/test/src/font-tests.el
index f0f0d31..dc48577 100644
--- a/test/src/font-tests.el
+++ b/test/src/font-tests.el
@@ -1,6 +1,6 @@
 ;;; font-tests.el --- Test suite for font-related functions.
 
-;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
 ;; Author: Chong Yidong <address@hidden>
 ;; Keywords:       internal
diff --git a/test/src/inotify-tests.el b/test/src/inotify-tests.el
index 5497792..f30aecc 100644
--- a/test/src/inotify-tests.el
+++ b/test/src/inotify-tests.el
@@ -1,6 +1,6 @@
 ;;; inotify-tests.el --- Test suite for inotify. -*- lexical-binding: t -*-
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Rüdiger Sonderfeld <address@hidden>
 ;; Keywords:       internal
diff --git a/test/src/keymap-tests.el b/test/src/keymap-tests.el
index 26d3485..c5b9d0c 100644
--- a/test/src/keymap-tests.el
+++ b/test/src/keymap-tests.el
@@ -1,6 +1,6 @@
 ;;; keymap-tests.el --- Test suite for src/keymap.c
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Juanma Barranquero <address@hidden>
 
diff --git a/test/src/lread-tests.el b/test/src/lread-tests.el
index 1a82d13..a783afd 100644
--- a/test/src/lread-tests.el
+++ b/test/src/lread-tests.el
@@ -1,6 +1,6 @@
 ;;; lread-tests.el --- tests for lread.c -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; Author: Philipp Stephani <address@hidden>
 
@@ -104,4 +104,12 @@
 (ert-deftest lread-string-char-name ()
   (should (equal (read "\"a\\N{SYLOTI NAGRI  LETTER DHO}b\"") "a\uA817b")))
 
+(ert-deftest lread-empty-int-literal ()
+  "Check that Bug#25120 is fixed."
+  (should-error (read "#b") :type 'invalid-read-syntax)
+  (should-error (read "#o") :type 'invalid-read-syntax)
+  (should-error (read "#x") :type 'invalid-read-syntax)
+  (should-error (read "#24r") :type 'invalid-read-syntax)
+  (should-error (read "#") :type 'invalid-read-syntax))
+
 ;;; lread-tests.el ends here
diff --git a/test/src/marker-tests.el b/test/src/marker-tests.el
index 18d49ad..20ce8f4 100644
--- a/test/src/marker-tests.el
+++ b/test/src/marker-tests.el
@@ -1,6 +1,6 @@
 ;;; marker-tests.el --- tests for marker.c functions -*- lexical-binding: t -*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/src/minibuf-tests.el b/test/src/minibuf-tests.el
index 82ac037..cb14819 100644
--- a/test/src/minibuf-tests.el
+++ b/test/src/minibuf-tests.el
@@ -1,6 +1,6 @@
 ;;; minibuf-tests.el --- tests for minibuf.c functions -*- lexical-binding: t 
-*-
 
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/src/print-tests.el b/test/src/print-tests.el
index 1abfa53..b3ffc23 100644
--- a/test/src/print-tests.el
+++ b/test/src/print-tests.el
@@ -1,6 +1,6 @@
 ;;; print-tests.el --- tests for src/print.c         -*- lexical-binding: t; 
-*-
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
diff --git a/test/src/process-tests.el b/test/src/process-tests.el
index 8cc59bf..04dc903 100644
--- a/test/src/process-tests.el
+++ b/test/src/process-tests.el
@@ -1,6 +1,6 @@
 ;;; process-tests.el --- Testing the process facilities
 
-;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2017 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
diff --git a/test/src/regex-tests.el b/test/src/regex-tests.el
index c4844c7..db187fd 100644
--- a/test/src/regex-tests.el
+++ b/test/src/regex-tests.el
@@ -1,6 +1,6 @@
 ;;; regex-tests.el --- tests for regex.c functions -*- lexical-binding: t -*-
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -80,7 +80,7 @@ character) must match a string \"\u2420\"."
                 ("print" "abcłąka\u2620-, " "\t\n\1")
 
                 ("space" " \t\n\u2001" "abcABCł0123")
-                ("blank" " \t" "\n\u2001")
+                ("blank" " \t\u2001" "\n")
 
                 ("ascii" "abcABC012 \t\n\1" "łą\u2620")
                 ("nonascii" "łą\u2622" "abcABC012 \t\n\1")
diff --git a/test/src/syntax-tests.el b/test/src/syntax-tests.el
new file mode 100644
index 0000000..6edde0b
--- /dev/null
+++ b/test/src/syntax-tests.el
@@ -0,0 +1,85 @@
+;;; syntax-tests.el --- tests for syntax.c functions -*- lexical-binding: t -*-
+
+;; Copyright (C) 2017 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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.
+
+;; GNU Emacs 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 GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(require 'ert)
+
+(ert-deftest parse-partial-sexp-continue-over-comment-marker ()
+  "Continue a parse that stopped in the middle of a comment marker."
+  (with-temp-buffer
+    (let ((table (make-syntax-table)))
+      (modify-syntax-entry ?/ ". 124")
+      (modify-syntax-entry ?* ". 23b")
+      (set-syntax-table table))
+    (insert "/*C*/\nX")
+    (goto-char (point-min))
+    (let* ((pointC (progn (search-forward "C") (1- (point))))
+           (preC (1- pointC))
+           (pointX (progn (search-forward "X") (1- (point))))
+           (aftC (+ 2 pointC))
+           (ppsC (parse-partial-sexp (point-min) pointC))
+           (pps-preC (parse-partial-sexp (point-min) preC))
+           (pps-aftC (parse-partial-sexp (point-min) aftC))
+           (ppsX (parse-partial-sexp (point-min) pointX)))
+      ;; C should be inside comment.
+      (should (= (nth 0 ppsC) 0))
+      (should (eq (nth 4 ppsC) t))
+      (should (= (nth 8 ppsC) (- pointC 2)))
+      ;; X should not be in comment or list.
+      (should (= (nth 0 ppsX) 0))
+      (should-not (nth 4 ppsX))
+      ;; Try using OLDSTATE.
+      (should (equal (parse-partial-sexp preC pointC nil nil pps-preC)
+                     ppsC))
+      (should (equal (parse-partial-sexp pointC aftC nil nil ppsC)
+                     pps-aftC))
+      (should (equal (parse-partial-sexp preC aftC nil nil pps-preC)
+                     pps-aftC))
+      (should (equal (parse-partial-sexp aftC pointX nil nil pps-aftC)
+                     ppsX)))))
+
+(ert-deftest parse-partial-sexp-paren-comments ()
+  "Test syntax parsing with paren comment markers.
+Specifically, where the first character of the comment marker is
+also has open paren syntax (see Bug#24870)."
+  (with-temp-buffer
+    (let ((table (make-syntax-table)))
+      (modify-syntax-entry ?\{  "(}1nb" table)
+      (modify-syntax-entry ?\}  "){4nb" table)
+      (modify-syntax-entry ?-  ". 123" table)
+      (set-syntax-table table))
+    (insert "{-C-}\nX")
+    (goto-char (point-min))
+    (let* ((pointC (progn (search-forward "C") (1- (point))))
+           (pointX (progn (search-forward "X") (1- (point))))
+           (ppsC (parse-partial-sexp (point-min) pointC))
+           (ppsX (parse-partial-sexp (point-min) pointX)))
+      ;; C should be inside nestable comment, not list.
+      (should (= (nth 0 ppsC) 0))
+      (should (= (nth 4 ppsC) 1))
+      (should (= (nth 8 ppsC) (- pointC 2)))
+      ;; X should not be in comment or list.
+      (should (= (nth 0 ppsX) 0))
+      (should-not (nth 4 ppsX))
+      ;; Try using OLDSTATE.
+      (should (equal (parse-partial-sexp pointC pointX nil nil ppsC)
+                     ppsX)))))
+
+;;; syntax-tests.el ends here
diff --git a/test/src/textprop-tests.el b/test/src/textprop-tests.el
index ceb48d1..d4c8925 100644
--- a/test/src/textprop-tests.el
+++ b/test/src/textprop-tests.el
@@ -1,6 +1,6 @@
 ;;; textprop-tests.el --- Test suite for text properties.
 
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc.
 
 ;; Author: Wolfgang Jenkner <address@hidden>
 ;; Keywords: internal
diff --git a/test/src/thread-tests.el b/test/src/thread-tests.el
index 26c0b72..849b2e3 100644
--- a/test/src/thread-tests.el
+++ b/test/src/thread-tests.el
@@ -1,6 +1,6 @@
 ;;; threads.el --- tests for threads.
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -153,7 +153,7 @@
   (mutex-lock threads-mutex))
 
 (ert-deftest threads-mutex-signal ()
-  "test signalling a blocked thread"
+  "test signaling a blocked thread"
   (should
    (progn
      (setq threads-mutex (make-mutex))
@@ -222,8 +222,15 @@
 
 (ert-deftest thread-errors ()
   "Test what happens when a thread signals an error."
-    (should (threadp (make-thread #'call-error "call-error")))
-    (should (threadp (make-thread #'thread-custom "thread-custom"))))
+  (let (th1 th2)
+    (setq th1 (make-thread #'call-error "call-error"))
+    (should (threadp th1))
+    (while (thread-alive-p th1)
+      (thread-yield))
+    (should (equal (thread-last-error)
+                   '(error "Error is called")))
+    (setq th2 (make-thread #'thread-custom "thread-custom"))
+    (should (threadp th2))))
 
 (ert-deftest thread-sticky-point ()
   "Test bug #25165 with point movement in cloned buffer."
@@ -242,6 +249,53 @@
                           (while t (thread-yield))))))
     (thread-signal thread 'error nil)
     (sit-for 1)
-    (should-not (thread-alive-p thread))))
+    (should-not (thread-alive-p thread))
+    (should (equal (thread-last-error) '(error)))))
+
+(defvar threads-condvar nil)
+
+(defun threads-test-condvar-wait ()
+  ;; Wait for condvar to be notified.
+  (with-mutex (condition-mutex threads-condvar)
+    (condition-wait threads-condvar))
+  ;; Wait again, it will be signaled.
+  (with-mutex (condition-mutex threads-condvar)
+    (condition-wait threads-condvar)))
+
+(ert-deftest threads-condvar-wait ()
+  "test waiting on conditional variable"
+  (let ((cv-mutex (make-mutex))
+        new-thread)
+    ;; We could have spurious threads from the previous tests still
+    ;; running; wait for them to die.
+    (while (> (length (all-threads)) 1)
+      (thread-yield))
+    (setq threads-condvar (make-condition-variable cv-mutex))
+    (setq new-thread (make-thread #'threads-test-condvar-wait))
+
+    ;; Make sure new-thread is alive.
+    (should (thread-alive-p new-thread))
+    (should (= (length (all-threads)) 2))
+    ;; Wait for new-thread to become blocked on the condvar.
+    (while (not (eq (thread--blocker new-thread) threads-condvar))
+      (thread-yield))
+
+    ;; Notify the waiting thread.
+    (with-mutex cv-mutex
+      (condition-notify threads-condvar t))
+    ;; Allow new-thread to process the notification.
+    (sleep-for 0.1)
+    ;; Make sure the thread is still there.  This used to fail due to
+    ;; a bug in thread.c:condition_wait_callback.
+    (should (thread-alive-p new-thread))
+    (should (= (length (all-threads)) 2))
+    (should (eq (thread--blocker new-thread) threads-condvar))
+
+    ;; Signal the thread.
+    (thread-signal new-thread 'error '("Die, die, die!"))
+    (sleep-for 0.1)
+    ;; Make sure the thread died.
+    (should (= (length (all-threads)) 1))
+    (should (equal (thread-last-error) '(error "Die, die, die!")))))
 
 ;;; threads.el ends here
diff --git a/test/src/undo-tests.el b/test/src/undo-tests.el
index b1c7869..fbd3bf8 100644
--- a/test/src/undo-tests.el
+++ b/test/src/undo-tests.el
@@ -1,6 +1,6 @@
 ;;; undo-tests.el --- Tests of primitive-undo
 
-;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
 
 ;; Author: Aaron S. Hawley <address@hidden>
 
diff --git a/test/src/xml-tests.el b/test/src/xml-tests.el
index dc60197..1550887 100644
--- a/test/src/xml-tests.el
+++ b/test/src/xml-tests.el
@@ -1,6 +1,6 @@
 ;;; libxml-parse-tests.el --- Test suite for libxml parsing.
 
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
 
 ;; Author: Ulf Jasper <address@hidden>
 ;; Keywords:       internal



reply via email to

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