]> code.delx.au - gnu-emacs/commitdiff
Merge from origin/emacs-25
authorJohn Wiegley <johnw@newartisans.com>
Tue, 12 Jan 2016 06:48:10 +0000 (22:48 -0800)
committerJohn Wiegley <johnw@newartisans.com>
Tue, 12 Jan 2016 06:48:10 +0000 (22:48 -0800)
9fb185a shr-tag-video bug fix
6300655 Minor fixes in tramp-tests.el
50575b1 Ensure redisplay when 'truncate-lines' is set
0d9e80d Fix a doc string of 'transient-mark-mode'
0000ae5 MS-Windows followup to latest gnulib update
4bc5e02 Spelling fix
f1093f7 Do secure signed Bcc handling

601 files changed:
.gitignore
CONTRIBUTE
ChangeLog.2
Makefile.in
README
admin/gitmerge.el
admin/merge-gnulib
admin/notes/bug-triage [new file with mode: 0644]
admin/release-process
build-aux/gitlog-to-changelog
build-aux/move-if-change
build-aux/snippet/arg-nonnull.h
build-aux/snippet/c++defs.h
build-aux/snippet/warn-on-use.h
build-aux/update-copyright
configure.ac
doc/emacs/dired.texi
doc/lispref/os.texi
doc/misc/eww.texi
doc/misc/message.texi
doc/misc/ses.texi
doc/misc/texinfo.tex
etc/NEWS
lib-src/Makefile.in
lib/acl-errno-valid.c
lib/acl-internal.c
lib/acl-internal.h
lib/acl.h
lib/acl_entries.c
lib/alloca.in.h
lib/allocator.h
lib/at-func.c
lib/binary-io.h
lib/byteswap.in.h
lib/c-ctype.h
lib/c-strcase.h
lib/c-strcasecmp.c
lib/c-strncasecmp.c
lib/careadlinkat.c
lib/careadlinkat.h
lib/close-stream.c
lib/count-one-bits.h
lib/count-trailing-zeros.h
lib/dirent.in.h
lib/dirfd.c
lib/dosname.h
lib/dtotimespec.c
lib/dup2.c
lib/errno.in.h
lib/euidaccess.c
lib/execinfo.in.h
lib/faccessat.c
lib/fcntl.c
lib/fcntl.in.h
lib/fdatasync.c
lib/fdopendir.c
lib/filemode.c
lib/filemode.h
lib/fpending.c
lib/fpending.h
lib/fstatat.c
lib/fsync.c
lib/ftoastr.c
lib/ftoastr.h
lib/get-permissions.c
lib/getdtablesize.c
lib/getgroups.c
lib/getloadavg.c
lib/getopt.c
lib/getopt.in.h
lib/getopt1.c
lib/getopt_int.h
lib/gettext.h
lib/gettime.c
lib/gettimeofday.c
lib/gnulib.mk
lib/group-member.c
lib/ignore-value.h [deleted file]
lib/intprops.h
lib/inttypes.in.h
lib/lstat.c
lib/md5.c
lib/md5.h
lib/memrchr.c
lib/mkostemp.c
lib/mktime.c
lib/openat-priv.h
lib/openat-proc.c
lib/openat.h
lib/pathmax.h
lib/pipe2.c
lib/pselect.c
lib/pthread_sigmask.c
lib/putenv.c
lib/qcopy-acl.c
lib/readlink.c
lib/readlinkat.c
lib/root-uid.h
lib/secure_getenv.c
lib/set-permissions.c
lib/sha1.c
lib/sha1.h
lib/sha256.c
lib/sha256.h
lib/sha512.c
lib/sha512.h
lib/sig2str.c
lib/sig2str.h
lib/signal.in.h
lib/stat-time.h
lib/stat.c
lib/stdalign.in.h
lib/stddef.in.h
lib/stdint.in.h
lib/stdio.in.h
lib/stdlib.in.h
lib/stpcpy.c
lib/strftime.c
lib/strftime.h
lib/string.in.h
lib/strtoimax.c
lib/strtol.c
lib/strtoll.c
lib/strtoul.c
lib/strtoull.c
lib/symlink.c
lib/sys_select.in.h
lib/sys_stat.in.h
lib/sys_time.in.h
lib/sys_types.in.h
lib/tempname.c
lib/tempname.h
lib/time-internal.h
lib/time.in.h
lib/time_r.c
lib/time_rz.c
lib/timegm.c
lib/timespec-add.c
lib/timespec-sub.c
lib/timespec.h
lib/u64.h
lib/unistd.in.h
lib/utimens.c
lib/utimens.h
lib/verify.h
lib/vla.h
lib/xalloc-oversized.h
lisp/Makefile.in
lisp/abbrev.el
lisp/bindings.el
lisp/calculator.el
lisp/calendar/cal-hebrew.el
lisp/calendar/cal-iso.el
lisp/calendar/cal-tex.el
lisp/calendar/solar.el
lisp/cus-edit.el
lisp/dired-aux.el
lisp/dired-x.el
lisp/dired.el
lisp/emacs-lisp/autoload.el
lisp/emacs-lisp/eieio-compat.el
lisp/emacs-lisp/eieio-core.el
lisp/emacs-lisp/eieio-custom.el
lisp/emacs-lisp/eieio-opt.el
lisp/emacs-lisp/eieio.el
lisp/emacs-lisp/let-alist.el
lisp/emacs-lisp/package.el
lisp/epa.el
lisp/erc/erc-backend.el
lisp/erc/erc.el
lisp/ffap.el
lisp/filenotify.el
lisp/gnus/gnus-util.el
lisp/gnus/mml-sec.el
lisp/gnus/mml-smime.el
lisp/gnus/mml1991.el
lisp/gnus/mml2015.el
lisp/hfy-cmap.el
lisp/htmlfontify.el
lisp/ibuf-ext.el
lisp/ibuffer.el
lisp/language/hebrew.el
lisp/ldefs-boot.el
lisp/linum.el
lisp/loadup.el
lisp/mail/rmail.el
lisp/mail/rmailedit.el
lisp/mail/rmailkwd.el
lisp/mail/rmailmm.el
lisp/mail/rmailmsc.el
lisp/mail/rmailsort.el
lisp/mail/rmailsum.el
lisp/mail/undigest.el
lisp/menu-bar.el
lisp/net/eww.el
lisp/net/network-stream.el
lisp/net/puny.el [new file with mode: 0644]
lisp/net/shr.el
lisp/org/ChangeLog.1
lisp/progmodes/cc-defs.el
lisp/progmodes/verilog-mode.el
lisp/progmodes/which-func.el
lisp/ps-mule.el
lisp/ps-print.el
lisp/ses.el
lisp/textmodes/reftex-auc.el
lisp/textmodes/reftex-cite.el
lisp/textmodes/reftex-dcr.el
lisp/textmodes/reftex-global.el
lisp/textmodes/reftex-index.el
lisp/textmodes/reftex-parse.el
lisp/textmodes/reftex-ref.el
lisp/textmodes/reftex-sel.el
lisp/textmodes/reftex-toc.el
lisp/textmodes/reftex.el
lisp/url/url-handlers.el
lisp/url/url-http.el
lisp/url/url-util.el
lwlib/Makefile.in
m4/00gnulib.m4
m4/absolute-header.m4
m4/acl.m4
m4/alloca.m4
m4/byteswap.m4
m4/c-strtod.m4
m4/clock_time.m4
m4/close-stream.m4
m4/count-one-bits.m4
m4/count-trailing-zeros.m4
m4/dirent_h.m4
m4/dirfd.m4
m4/dup2.m4
m4/environ.m4
m4/errno_h.m4
m4/euidaccess.m4
m4/execinfo.m4
m4/extensions.m4
m4/extern-inline.m4
m4/faccessat.m4
m4/fcntl.m4
m4/fcntl_h.m4
m4/fdatasync.m4
m4/fdopendir.m4
m4/filemode.m4
m4/fpending.m4
m4/fstatat.m4
m4/fsync.m4
m4/getdtablesize.m4
m4/getgroups.m4
m4/getloadavg.m4
m4/getopt.m4
m4/gettime.m4
m4/gettimeofday.m4
m4/gnulib-common.m4
m4/gnulib-comp.m4
m4/gnulib-tool.m4
m4/group-member.m4
m4/include_next.m4
m4/inttypes.m4
m4/largefile.m4
m4/longlong.m4
m4/lstat.m4
m4/manywarnings.m4
m4/md5.m4
m4/memrchr.m4
m4/mkostemp.m4
m4/mktime.m4
m4/multiarch.m4
m4/nocrash.m4
m4/off_t.m4
m4/pathmax.m4
m4/pipe2.m4
m4/pselect.m4
m4/pthread_sigmask.m4
m4/putenv.m4
m4/readlink.m4
m4/readlinkat.m4
m4/secure_getenv.m4
m4/sha1.m4
m4/sha256.m4
m4/sha512.m4
m4/sig2str.m4
m4/signal_h.m4
m4/socklen.m4
m4/ssize_t.m4
m4/st_dm_mode.m4
m4/stat-time.m4
m4/stat.m4
m4/stdalign.m4
m4/stddef_h.m4
m4/stdint.m4
m4/stdio_h.m4
m4/stdlib_h.m4
m4/stpcpy.m4
m4/strftime.m4
m4/string_h.m4
m4/strtoimax.m4
m4/strtoll.m4
m4/strtoull.m4
m4/strtoumax.m4
m4/symlink.m4
m4/sys_select_h.m4
m4/sys_socket_h.m4
m4/sys_stat_h.m4
m4/sys_time_h.m4
m4/sys_types_h.m4
m4/tempname.m4
m4/time_h.m4
m4/time_r.m4
m4/time_rz.m4
m4/timegm.m4
m4/timer_time.m4
m4/timespec.m4
m4/tm_gmtoff.m4
m4/unistd_h.m4
m4/utimbuf.m4
m4/utimens.m4
m4/utimes.m4
m4/vararrays.m4
m4/warnings.m4
m4/wchar_t.m4
msdos/sed2v2.inp
nt/Makefile.in
oldXMenu/Makefile.in
src/Makefile.in
src/emacs.c
src/font.c
src/font.h
src/fontset.c
src/ftfont.c
src/inotify.c
src/keyboard.c
src/kqueue.c [new file with mode: 0644]
src/lisp.h
src/sysdep.c
test/Makefile.in [moved from test/automated/Makefile.in with 76% similarity]
test/data/decompress/foo.gz [moved from test/automated/data/decompress/foo.gz with 100% similarity]
test/data/epg/pubkey.asc [moved from test/automated/data/epg/pubkey.asc with 100% similarity]
test/data/epg/seckey.asc [moved from test/automated/data/epg/seckey.asc with 100% similarity]
test/data/files-bug18141.el.gz [moved from test/automated/data/files-bug18141.el.gz with 100% similarity]
test/file-organisation.org [new file with mode: 0644]
test/lisp/abbrev-tests.el [moved from test/automated/abbrev-tests.el with 73% similarity]
test/lisp/autorevert-tests.el [moved from test/automated/auto-revert-tests.el with 99% similarity]
test/lisp/calc/calc-tests.el [moved from test/automated/calc-tests.el with 100% similarity]
test/lisp/calendar/icalendar-tests.el [moved from test/automated/icalendar-tests.el with 100% similarity]
test/lisp/character-fold-tests.el [moved from test/automated/character-fold-tests.el with 100% similarity]
test/lisp/comint-tests.el [moved from test/automated/comint-testsuite.el with 100% similarity]
test/lisp/descr-text-tests.el [moved from test/automated/descr-text-test.el with 100% similarity]
test/lisp/dired-tests.el [new file with mode: 0644]
test/lisp/electric-tests.el [moved from test/automated/electric-tests.el with 100% similarity]
test/lisp/emacs-lisp/cl-generic-tests.el [moved from test/automated/cl-generic-tests.el with 100% similarity]
test/lisp/emacs-lisp/cl-lib-tests.el [moved from test/automated/cl-lib-tests.el with 100% similarity]
test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el [moved from test/automated/eieio-test-methodinvoke.el with 100% similarity]
test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el [moved from test/automated/eieio-test-persist.el with 100% similarity]
test/lisp/emacs-lisp/eieio-tests/eieio-tests.el [moved from test/automated/eieio-tests.el with 99% similarity]
test/lisp/emacs-lisp/ert-tests.el [moved from test/automated/ert-tests.el with 100% similarity]
test/lisp/emacs-lisp/ert-x-tests.el [moved from test/automated/ert-x-tests.el with 100% similarity]
test/lisp/emacs-lisp/generator-tests.el [moved from test/automated/generator-tests.el with 100% similarity]
test/lisp/emacs-lisp/let-alist-tests.el [moved from test/automated/let-alist.el with 100% similarity]
test/lisp/emacs-lisp/map-tests.el [moved from test/automated/map-tests.el with 100% similarity]
test/lisp/emacs-lisp/nadvice-tests.el [moved from test/automated/advice-tests.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/archive-contents [moved from test/automated/data/package/archive-contents with 100% similarity]
test/lisp/emacs-lisp/package-resources/key.pub [moved from test/automated/data/package/key.pub with 100% similarity]
test/lisp/emacs-lisp/package-resources/key.sec [moved from test/automated/data/package/key.sec with 100% similarity]
test/lisp/emacs-lisp/package-resources/macro-problem-package-1.0/macro-aux.el [moved from test/automated/data/package/macro-problem-package-1.0/macro-aux.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/macro-problem-package-1.0/macro-problem.el [moved from test/automated/data/package/macro-problem-package-1.0/macro-problem.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/macro-problem-package-2.0/macro-aux.el [moved from test/automated/data/package/macro-problem-package-2.0/macro-aux.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/macro-problem-package-2.0/macro-problem.el [moved from test/automated/data/package/macro-problem-package-2.0/macro-problem.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/multi-file-0.2.3.tar [moved from test/automated/data/package/multi-file-0.2.3.tar with 100% similarity]
test/lisp/emacs-lisp/package-resources/multi-file-readme.txt [moved from test/automated/data/package/multi-file-readme.txt with 100% similarity]
test/lisp/emacs-lisp/package-resources/newer-versions/archive-contents [moved from test/automated/data/package/newer-versions/archive-contents with 100% similarity]
test/lisp/emacs-lisp/package-resources/newer-versions/new-pkg-1.0.el [moved from test/automated/data/package/newer-versions/new-pkg-1.0.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/newer-versions/simple-single-1.4.el [moved from test/automated/data/package/newer-versions/simple-single-1.4.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/package-test-server.py [moved from test/automated/data/package/package-test-server.py with 100% similarity]
test/lisp/emacs-lisp/package-resources/signed/archive-contents [moved from test/automated/data/package/signed/archive-contents with 100% similarity]
test/lisp/emacs-lisp/package-resources/signed/archive-contents.sig [moved from test/automated/data/package/signed/archive-contents.sig with 100% similarity]
test/lisp/emacs-lisp/package-resources/signed/signed-bad-1.0.el [moved from test/automated/data/package/signed/signed-bad-1.0.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/signed/signed-bad-1.0.el.sig [moved from test/automated/data/package/signed/signed-bad-1.0.el.sig with 100% similarity]
test/lisp/emacs-lisp/package-resources/signed/signed-good-1.0.el [moved from test/automated/data/package/signed/signed-good-1.0.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/signed/signed-good-1.0.el.sig [moved from test/automated/data/package/signed/signed-good-1.0.el.sig with 100% similarity]
test/lisp/emacs-lisp/package-resources/simple-depend-1.0.el [moved from test/automated/data/package/simple-depend-1.0.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/simple-single-1.3.el [moved from test/automated/data/package/simple-single-1.3.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/simple-single-readme.txt [moved from test/automated/data/package/simple-single-readme.txt with 100% similarity]
test/lisp/emacs-lisp/package-resources/simple-two-depend-1.1.el [moved from test/automated/data/package/simple-two-depend-1.1.el with 100% similarity]
test/lisp/emacs-lisp/package-tests.el [moved from test/automated/package-test.el with 96% similarity]
test/lisp/emacs-lisp/pcase-tests.el [moved from test/automated/pcase-tests.el with 100% similarity]
test/lisp/emacs-lisp/regexp-opt-tests.el [moved from test/automated/regexp-tests.el with 100% similarity]
test/lisp/emacs-lisp/seq-tests.el [moved from test/automated/seq-tests.el with 100% similarity]
test/lisp/emacs-lisp/subr-x-tests.el [moved from test/automated/subr-x-tests.el with 100% similarity]
test/lisp/emacs-lisp/tabulated-list-test.el [moved from test/automated/tabulated-list-test.el with 100% similarity]
test/lisp/emacs-lisp/thunk-tests.el [moved from test/automated/thunk-tests.el with 100% similarity]
test/lisp/emacs-lisp/timer-tests.el [moved from test/automated/timer-tests.el with 100% similarity]
test/lisp/epg-tests.el [moved from test/automated/epg-tests.el with 100% similarity]
test/lisp/eshell/eshell.el [moved from test/automated/eshell.el with 100% similarity]
test/lisp/faces-tests.el [moved from test/automated/faces-tests.el with 100% similarity]
test/lisp/filenotify-tests.el [moved from test/automated/file-notify-tests.el with 50% similarity]
test/lisp/gnus/auth-source-tests.el [moved from test/automated/auth-source-tests.el with 100% similarity]
test/lisp/gnus/gnus-tests.el [moved from test/automated/gnus-tests.el with 100% similarity]
test/lisp/gnus/message-tests.el [moved from test/automated/message-mode-tests.el with 100% similarity]
test/lisp/help-fns-tests.el [moved from test/automated/help-fns.el with 100% similarity]
test/lisp/htmlfontify-tests.el [new file with mode: 0644]
test/lisp/ibuffer-tests.el [new file with mode: 0644]
test/lisp/imenu-tests.el [moved from test/automated/imenu-test.el with 100% similarity]
test/lisp/info-xref-tests.el [moved from test/automated/info-xref.el with 100% similarity]
test/lisp/international/mule-util-tests.el [moved from test/automated/mule-util.el with 100% similarity]
test/lisp/isearch-tests.el [moved from test/automated/isearch-tests.el with 100% similarity]
test/lisp/json-tests.el [moved from test/automated/json-tests.el with 100% similarity]
test/lisp/legacy/bytecomp-tests.el [moved from test/automated/bytecomp-tests.el with 100% similarity]
test/lisp/legacy/coding-tests.el [moved from test/automated/coding-tests.el with 100% similarity]
test/lisp/legacy/core-elisp-tests.el [moved from test/automated/core-elisp-tests.el with 100% similarity]
test/lisp/legacy/decoder-tests.el [moved from test/automated/decoder-tests.el with 100% similarity]
test/lisp/legacy/files-tests.el [moved from test/automated/files.el with 100% similarity]
test/lisp/legacy/font-parse-tests.el [moved from test/automated/font-parse-tests.el with 100% similarity]
test/lisp/legacy/lexbind-tests.el [moved from test/automated/lexbind-tests.el with 100% similarity]
test/lisp/legacy/occur-tests.el [moved from test/automated/occur-tests.el with 100% similarity]
test/lisp/legacy/process-tests.el [moved from test/automated/process-tests.el with 100% similarity]
test/lisp/legacy/syntax-tests.el [moved from test/automated/syntax-tests.el with 100% similarity]
test/lisp/legacy/textprop-tests.el [moved from test/automated/textprop-tests.el with 100% similarity]
test/lisp/legacy/undo-tests.el [moved from test/automated/undo-tests.el with 100% similarity]
test/lisp/mail/rmail-tests.el [new file with mode: 0644]
test/lisp/man-tests.el [moved from test/automated/man-tests.el with 100% similarity]
test/lisp/minibuffer-tests.el [moved from test/automated/completion-tests.el with 100% similarity]
test/lisp/net/dbus-tests.el [moved from test/automated/dbus-tests.el with 100% similarity]
test/lisp/net/newsticker-tests.el [moved from test/automated/newsticker-tests.el with 100% similarity]
test/lisp/net/sasl-scram-rfc-tests.el [moved from test/automated/sasl-scram-rfc-tests.el with 100% similarity]
test/lisp/net/tramp-tests.el [moved from test/automated/tramp-tests.el with 100% similarity]
test/lisp/obarray-tests.el [moved from test/automated/obarray-tests.el with 100% similarity]
test/lisp/progmodes/compile-tests.el [moved from test/automated/compile-tests.el with 100% similarity]
test/lisp/progmodes/elisp-mode-tests.el [moved from test/automated/elisp-mode-tests.el with 95% similarity]
test/lisp/progmodes/f90.el [moved from test/automated/f90.el with 100% similarity]
test/lisp/progmodes/flymake-resources/Makefile [moved from test/automated/data/flymake/Makefile with 100% similarity]
test/lisp/progmodes/flymake-resources/test.c [moved from test/automated/data/flymake/test.c with 100% similarity]
test/lisp/progmodes/flymake-resources/test.pl [moved from test/automated/data/flymake/test.pl with 100% similarity]
test/lisp/progmodes/flymake-tests.el [moved from test/automated/flymake-tests.el with 97% similarity]
test/lisp/progmodes/python-tests.el [moved from test/automated/python-tests.el with 100% similarity]
test/lisp/progmodes/ruby-mode-tests.el [moved from test/automated/ruby-mode-tests.el with 100% similarity]
test/lisp/progmodes/subword-tests.el [moved from test/automated/subword-tests.el with 100% similarity]
test/lisp/ps-print-tests.el [new file with mode: 0644]
test/lisp/replace-tests.el [moved from test/automated/replace-tests.el with 100% similarity]
test/lisp/simple-tests.el [moved from test/automated/simple-test.el with 100% similarity]
test/lisp/sort-tests.el [moved from test/automated/sort-tests.el with 100% similarity]
test/lisp/subr-tests.el [moved from test/automated/subr-tests.el with 100% similarity]
test/lisp/textmodes/reftex-tests.el [moved from test/automated/reftex-tests.el with 96% similarity]
test/lisp/textmodes/sgml-mode-tests.el [moved from test/automated/sgml-mode-tests.el with 100% similarity]
test/lisp/textmodes/tildify-tests.el [moved from test/automated/tildify-tests.el with 100% similarity]
test/lisp/thingatpt-tests.el [moved from test/automated/thingatpt.el with 100% similarity]
test/lisp/url/url-expand-tests.el [moved from test/automated/url-expand-tests.el with 100% similarity]
test/lisp/url/url-future-tests.el [moved from test/automated/url-future-tests.el with 100% similarity]
test/lisp/url/url-parse-tests.el [moved from test/automated/url-parse-tests.el with 100% similarity]
test/lisp/url/url-util-tests.el [moved from test/automated/url-util-tests.el with 100% similarity]
test/lisp/vc/add-log-tests.el [moved from test/automated/add-log-tests.el with 100% similarity]
test/lisp/vc/vc-bzr-tests.el [moved from test/automated/vc-bzr.el with 100% similarity]
test/lisp/vc/vc-tests.el [moved from test/automated/vc-tests.el with 100% similarity]
test/lisp/xml-tests.el [moved from test/automated/xml-parse-tests.el with 100% similarity]
test/make-test-deps.emacs-lisp [new file with mode: 0644]
test/manual/BidiCharacterTest.txt [moved from test/BidiCharacterTest.txt with 100% similarity]
test/manual/biditest.el [moved from test/biditest.el with 100% similarity]
test/manual/cedet/cedet-utests.el [moved from test/cedet/cedet-utests.el with 100% similarity]
test/manual/cedet/ede-tests.el [moved from test/cedet/ede-tests.el with 100% similarity]
test/manual/cedet/semantic-ia-utest.el [moved from test/cedet/semantic-ia-utest.el with 100% similarity]
test/manual/cedet/semantic-tests.el [moved from test/cedet/semantic-tests.el with 100% similarity]
test/manual/cedet/semantic-utest-c.el [moved from test/cedet/semantic-utest-c.el with 100% similarity]
test/manual/cedet/semantic-utest.el [moved from test/cedet/semantic-utest.el with 100% similarity]
test/manual/cedet/srecode-tests.el [moved from test/cedet/srecode-tests.el with 100% similarity]
test/manual/cedet/tests/test.c [moved from test/cedet/tests/test.c with 100% similarity]
test/manual/cedet/tests/test.el [moved from test/cedet/tests/test.el with 100% similarity]
test/manual/cedet/tests/test.make [moved from test/cedet/tests/test.make with 100% similarity]
test/manual/cedet/tests/testdoublens.cpp [moved from test/cedet/tests/testdoublens.cpp with 100% similarity]
test/manual/cedet/tests/testdoublens.hpp [moved from test/cedet/tests/testdoublens.hpp with 100% similarity]
test/manual/cedet/tests/testfriends.cpp [moved from test/cedet/tests/testfriends.cpp with 100% similarity]
test/manual/cedet/tests/testjavacomp.java [moved from test/cedet/tests/testjavacomp.java with 100% similarity]
test/manual/cedet/tests/testnsp.cpp [moved from test/cedet/tests/testnsp.cpp with 100% similarity]
test/manual/cedet/tests/testpolymorph.cpp [moved from test/cedet/tests/testpolymorph.cpp with 100% similarity]
test/manual/cedet/tests/testspp.c [moved from test/cedet/tests/testspp.c with 100% similarity]
test/manual/cedet/tests/testsppcomplete.c [moved from test/cedet/tests/testsppcomplete.c with 100% similarity]
test/manual/cedet/tests/testsppreplace.c [moved from test/cedet/tests/testsppreplace.c with 100% similarity]
test/manual/cedet/tests/testsppreplaced.c [moved from test/cedet/tests/testsppreplaced.c with 100% similarity]
test/manual/cedet/tests/testsubclass.cpp [moved from test/cedet/tests/testsubclass.cpp with 100% similarity]
test/manual/cedet/tests/testsubclass.hh [moved from test/cedet/tests/testsubclass.hh with 100% similarity]
test/manual/cedet/tests/testtypedefs.cpp [moved from test/cedet/tests/testtypedefs.cpp with 100% similarity]
test/manual/cedet/tests/testvarnames.c [moved from test/cedet/tests/testvarnames.c with 100% similarity]
test/manual/etags/CTAGS.good [moved from test/etags/CTAGS.good with 100% similarity]
test/manual/etags/ETAGS.good_1 [moved from test/etags/ETAGS.good_1 with 100% similarity]
test/manual/etags/ETAGS.good_2 [moved from test/etags/ETAGS.good_2 with 100% similarity]
test/manual/etags/ETAGS.good_3 [moved from test/etags/ETAGS.good_3 with 100% similarity]
test/manual/etags/ETAGS.good_4 [moved from test/etags/ETAGS.good_4 with 100% similarity]
test/manual/etags/ETAGS.good_5 [moved from test/etags/ETAGS.good_5 with 100% similarity]
test/manual/etags/ETAGS.good_6 [moved from test/etags/ETAGS.good_6 with 100% similarity]
test/manual/etags/Makefile [moved from test/etags/Makefile with 98% similarity]
test/manual/etags/a-src/empty.zz [moved from test/etags/a-src/empty.zz with 100% similarity]
test/manual/etags/a-src/empty.zz.gz [moved from test/etags/a-src/empty.zz.gz with 100% similarity]
test/manual/etags/ada-src/2ataspri.adb [moved from test/etags/ada-src/2ataspri.adb with 100% similarity]
test/manual/etags/ada-src/2ataspri.ads [moved from test/etags/ada-src/2ataspri.ads with 100% similarity]
test/manual/etags/ada-src/etags-test-for.ada [moved from test/etags/ada-src/etags-test-for.ada with 100% similarity]
test/manual/etags/ada-src/waroquiers.ada [moved from test/etags/ada-src/waroquiers.ada with 100% similarity]
test/manual/etags/c-src/a/b/b.c [moved from test/etags/c-src/a/b/b.c with 100% similarity]
test/manual/etags/c-src/abbrev.c [moved from test/etags/c-src/abbrev.c with 100% similarity]
test/manual/etags/c-src/c.c [moved from test/etags/c-src/c.c with 100% similarity]
test/manual/etags/c-src/dostorture.c [moved from test/etags/c-src/dostorture.c with 100% similarity]
test/manual/etags/c-src/emacs/src/gmalloc.c [moved from test/etags/c-src/emacs/src/gmalloc.c with 100% similarity]
test/manual/etags/c-src/emacs/src/keyboard.c [moved from test/etags/c-src/emacs/src/keyboard.c with 100% similarity]
test/manual/etags/c-src/emacs/src/lisp.h [moved from test/etags/c-src/emacs/src/lisp.h with 100% similarity]
test/manual/etags/c-src/emacs/src/regex.h [moved from test/etags/c-src/emacs/src/regex.h with 100% similarity]
test/manual/etags/c-src/etags.c [moved from test/etags/c-src/etags.c with 100% similarity]
test/manual/etags/c-src/exit.c [moved from test/etags/c-src/exit.c with 100% similarity]
test/manual/etags/c-src/exit.strange_suffix [moved from test/etags/c-src/exit.strange_suffix with 100% similarity]
test/manual/etags/c-src/fail.c [moved from test/etags/c-src/fail.c with 100% similarity]
test/manual/etags/c-src/getopt.h [moved from test/etags/c-src/getopt.h with 100% similarity]
test/manual/etags/c-src/h.h [moved from test/etags/c-src/h.h with 100% similarity]
test/manual/etags/c-src/machsyscalls.c [moved from test/etags/c-src/machsyscalls.c with 100% similarity]
test/manual/etags/c-src/machsyscalls.h [moved from test/etags/c-src/machsyscalls.h with 100% similarity]
test/manual/etags/c-src/sysdep.h [moved from test/etags/c-src/sysdep.h with 100% similarity]
test/manual/etags/c-src/tab.c [moved from test/etags/c-src/tab.c with 100% similarity]
test/manual/etags/c-src/torture.c [moved from test/etags/c-src/torture.c with 100% similarity]
test/manual/etags/cp-src/MDiagArray2.h [moved from test/etags/cp-src/MDiagArray2.h with 100% similarity]
test/manual/etags/cp-src/Range.h [moved from test/etags/cp-src/Range.h with 100% similarity]
test/manual/etags/cp-src/burton.cpp [moved from test/etags/cp-src/burton.cpp with 100% similarity]
test/manual/etags/cp-src/c.C [moved from test/etags/cp-src/c.C with 100% similarity]
test/manual/etags/cp-src/clheir.cpp.gz [moved from test/etags/cp-src/clheir.cpp.gz with 100% similarity]
test/manual/etags/cp-src/clheir.hpp [moved from test/etags/cp-src/clheir.hpp with 100% similarity]
test/manual/etags/cp-src/conway.cpp [moved from test/etags/cp-src/conway.cpp with 100% similarity]
test/manual/etags/cp-src/conway.hpp [moved from test/etags/cp-src/conway.hpp with 100% similarity]
test/manual/etags/cp-src/fail.C [moved from test/etags/cp-src/fail.C with 100% similarity]
test/manual/etags/cp-src/functions.cpp [moved from test/etags/cp-src/functions.cpp with 100% similarity]
test/manual/etags/cp-src/screen.cpp [moved from test/etags/cp-src/screen.cpp with 100% similarity]
test/manual/etags/cp-src/screen.hpp [moved from test/etags/cp-src/screen.hpp with 100% similarity]
test/manual/etags/cp-src/x.cc [moved from test/etags/cp-src/x.cc with 100% similarity]
test/manual/etags/el-src/TAGTEST.EL [moved from test/etags/el-src/TAGTEST.EL with 100% similarity]
test/manual/etags/el-src/emacs/lisp/progmodes/etags.el [moved from test/etags/el-src/emacs/lisp/progmodes/etags.el with 100% similarity]
test/manual/etags/erl-src/gs_dialog.erl [moved from test/etags/erl-src/gs_dialog.erl with 100% similarity]
test/manual/etags/f-src/entry.for [moved from test/etags/f-src/entry.for with 100% similarity]
test/manual/etags/f-src/entry.strange.gz [moved from test/etags/f-src/entry.strange.gz with 100% similarity]
test/manual/etags/f-src/entry.strange_suffix [moved from test/etags/f-src/entry.strange_suffix with 100% similarity]
test/manual/etags/forth-src/test-forth.fth [moved from test/etags/forth-src/test-forth.fth with 100% similarity]
test/manual/etags/html-src/algrthms.html [moved from test/etags/html-src/algrthms.html with 100% similarity]
test/manual/etags/html-src/index.shtml [moved from test/etags/html-src/index.shtml with 100% similarity]
test/manual/etags/html-src/software.html [moved from test/etags/html-src/software.html with 100% similarity]
test/manual/etags/html-src/softwarelibero.html [moved from test/etags/html-src/softwarelibero.html with 100% similarity]
test/manual/etags/lua-src/allegro.lua [moved from test/etags/lua-src/allegro.lua with 100% similarity]
test/manual/etags/lua-src/test.lua [moved from test/etags/lua-src/test.lua with 100% similarity]
test/manual/etags/make-src/Makefile [moved from test/etags/make-src/Makefile with 100% similarity]
test/manual/etags/objc-src/PackInsp.h [moved from test/etags/objc-src/PackInsp.h with 100% similarity]
test/manual/etags/objc-src/PackInsp.m [moved from test/etags/objc-src/PackInsp.m with 100% similarity]
test/manual/etags/objc-src/Subprocess.h [moved from test/etags/objc-src/Subprocess.h with 100% similarity]
test/manual/etags/objc-src/Subprocess.m [moved from test/etags/objc-src/Subprocess.m with 100% similarity]
test/manual/etags/objcpp-src/SimpleCalc.H [moved from test/etags/objcpp-src/SimpleCalc.H with 100% similarity]
test/manual/etags/objcpp-src/SimpleCalc.M [moved from test/etags/objcpp-src/SimpleCalc.M with 100% similarity]
test/manual/etags/pas-src/common.pas [moved from test/etags/pas-src/common.pas with 100% similarity]
test/manual/etags/perl-src/htlmify-cystic [moved from test/etags/perl-src/htlmify-cystic with 100% similarity]
test/manual/etags/perl-src/kai-test.pl [moved from test/etags/perl-src/kai-test.pl with 100% similarity]
test/manual/etags/perl-src/yagrip.pl [moved from test/etags/perl-src/yagrip.pl with 100% similarity]
test/manual/etags/php-src/lce_functions.php [moved from test/etags/php-src/lce_functions.php with 100% similarity]
test/manual/etags/php-src/ptest.php [moved from test/etags/php-src/ptest.php with 100% similarity]
test/manual/etags/php-src/sendmail.php [moved from test/etags/php-src/sendmail.php with 100% similarity]
test/manual/etags/prol-src/natded.prolog [moved from test/etags/prol-src/natded.prolog with 100% similarity]
test/manual/etags/prol-src/ordsets.prolog [moved from test/etags/prol-src/ordsets.prolog with 100% similarity]
test/manual/etags/ps-src/rfc1245.ps [moved from test/etags/ps-src/rfc1245.ps with 100% similarity]
test/manual/etags/pyt-src/server.py [moved from test/etags/pyt-src/server.py with 100% similarity]
test/manual/etags/ruby-src/test.rb [moved from test/etags/ruby-src/test.rb with 100% similarity]
test/manual/etags/ruby-src/test1.ruby [moved from test/etags/ruby-src/test1.ruby with 100% similarity]
test/manual/etags/tex-src/gzip.texi [moved from test/etags/tex-src/gzip.texi with 100% similarity]
test/manual/etags/tex-src/nonewline.tex [moved from test/etags/tex-src/nonewline.tex with 100% similarity]
test/manual/etags/tex-src/testenv.tex [moved from test/etags/tex-src/testenv.tex with 100% similarity]
test/manual/etags/tex-src/texinfo.tex [moved from test/etags/tex-src/texinfo.tex with 100% similarity]
test/manual/etags/y-src/atest.y [moved from test/etags/y-src/atest.y with 100% similarity]
test/manual/etags/y-src/cccp.c [moved from test/etags/y-src/cccp.c with 100% similarity]
test/manual/etags/y-src/cccp.y [moved from test/etags/y-src/cccp.y with 100% similarity]
test/manual/etags/y-src/parse.c [moved from test/etags/y-src/parse.c with 100% similarity]
test/manual/etags/y-src/parse.y [moved from test/etags/y-src/parse.y with 100% similarity]
test/manual/indent/Makefile [moved from test/indent/Makefile with 100% similarity]
test/manual/indent/css-mode.css [moved from test/indent/css-mode.css with 100% similarity]
test/manual/indent/js-indent-init-dynamic.js [moved from test/indent/js-indent-init-dynamic.js with 100% similarity]
test/manual/indent/js-indent-init-t.js [moved from test/indent/js-indent-init-t.js with 100% similarity]
test/manual/indent/js-jsx.js [moved from test/indent/js-jsx.js with 100% similarity]
test/manual/indent/js.js [moved from test/indent/js.js with 100% similarity]
test/manual/indent/latex-mode.tex [moved from test/indent/latex-mode.tex with 100% similarity]
test/manual/indent/modula2.mod [moved from test/indent/modula2.mod with 100% similarity]
test/manual/indent/nxml.xml [moved from test/indent/nxml.xml with 100% similarity]
test/manual/indent/octave.m [moved from test/indent/octave.m with 100% similarity]
test/manual/indent/pascal.pas [moved from test/indent/pascal.pas with 100% similarity]
test/manual/indent/perl.perl [moved from test/indent/perl.perl with 100% similarity]
test/manual/indent/prolog.prolog [moved from test/indent/prolog.prolog with 100% similarity]
test/manual/indent/ps-mode.ps [moved from test/indent/ps-mode.ps with 100% similarity]
test/manual/indent/ruby.rb [moved from test/indent/ruby.rb with 100% similarity]
test/manual/indent/scheme.scm [moved from test/indent/scheme.scm with 100% similarity]
test/manual/indent/scss-mode.scss [moved from test/indent/scss-mode.scss with 100% similarity]
test/manual/indent/sgml-mode-attribute.html [moved from test/indent/sgml-mode-attribute.html with 100% similarity]
test/manual/indent/shell.rc [moved from test/indent/shell.rc with 100% similarity]
test/manual/indent/shell.sh [moved from test/indent/shell.sh with 100% similarity]
test/manual/redisplay-testsuite.el [moved from test/redisplay-testsuite.el with 100% similarity]
test/manual/rmailmm.el [moved from test/rmailmm.el with 100% similarity]
test/src/alloc-tests.el [moved from test/automated/finalizer-tests.el with 93% similarity]
test/src/buffer-tests.el [moved from test/automated/buffer-tests.el with 100% similarity]
test/src/cmds-tests.el [moved from test/automated/cmds-tests.el with 100% similarity]
test/src/data-tests.el [moved from test/automated/data-tests.el with 100% similarity]
test/src/decompress-tests.el [moved from test/automated/zlib-tests.el with 92% similarity]
test/src/fns-tests.el [moved from test/automated/fns-tests.el with 100% similarity]
test/src/inotify-tests.el [moved from test/automated/inotify-test.el with 100% similarity]
test/src/keymap-tests.el [moved from test/automated/keymap-tests.el with 100% similarity]
test/src/print-tests.el [moved from test/automated/print-tests.el with 100% similarity]
test/src/xml-tests.el [moved from test/automated/libxml-tests.el with 100% similarity]

index 7c8b74336d0e6aca267d212ee17f10e26d14b478..94c4ba8e4bba77bd2f43177e3a0f3774610f5e38 100644 (file)
@@ -43,10 +43,10 @@ Makefile
 makefile
 !etc/refcards/Makefile
 !modules/mod-test/Makefile
-!test/automated/data/flymake/Makefile
-!test/indent/Makefile
-!test/etags/Makefile
-!test/etags/make-src/Makefile
+!test/lisp/progmodes/flymake-resources/Makefile
+!test/manual/indent/Makefile
+!test/manual/etags/Makefile
+!test/manual/etags/make-src/Makefile
 /*.cache
 /confdefs.h
 /config.status
@@ -116,6 +116,7 @@ lisp/leim/quail/quick-b5.el
 lisp/leim/quail/quick-cns.el
 lisp/leim/quail/tsang-b5.el
 lisp/leim/quail/tsang-cns.el
+lisp/mh-e/mh-autoloads.el
 lisp/subdirs.el
 
 # Dependencies.
@@ -151,11 +152,13 @@ src/*.map
 
 # Tests.
 test/indent/*.new
-test/biditest.txt
-test/etags/srclist
-test/etags/regexfile
-test/etags/ETAGS
-test/etags/CTAGS
+test/manual/biditest.txt
+test/manual/etags/srclist
+test/manual/etags/regexfile
+test/manual/etags/ETAGS
+test/manual/etags/CTAGS
+# Generated by test/make-test-deps.emacs-lisp
+test/make-test-deps.mk
 
 # ctags, etags.
 TAGS
index 9061007fc9ce606e09360cf61964dc75f64f8445..19ec68221c467823eefd4c69a8e34116feeef2c5 100644 (file)
@@ -224,6 +224,17 @@ the tracker with the corresponding bugs/issues.
 GNU ELPA has a 'debbugs' package that allows accessing the tracker
 database from Emacs.
 
+Bugs needs regular attention.  A large backlog of bugs is
+disheartening to the developers, and a culture of ignoring bugs is
+harmful to users, who expect software that works.  Bugs have to be
+regularly looked at and acted upon.  Not all bugs are critical, but at
+the least, each bug needs to be regularly re-reviewed to make sure it
+is still reproducible.
+
+The process of going through old or new bugs and acting on them is
+called bug triage.  This process is described in the file
+admin/notes/bug-triage.
+
 ** Document your changes.
 
 Any change that matters to end-users should have an entry in etc/NEWS.
@@ -253,9 +264,9 @@ for more information on writing and running tests.
 
 To run tests on the entire Emacs tree, run "make check" from the
 top-level directory.  Most tests are in the directory
-"test/automated".  From the "test/automated" directory, run "make
+"test/".  From the "test/" directory, run "make
 <filename>" to run the tests for <filename>.el(c).  See
-"test/automated/Makefile" for more information.
+"test/Makefile" for more information.
 
 ** Understanding Emacs Internals.
 
index 6988f9603b363737046913ee6a2dcf876402580a..54e0f20adb21045400fd3d502382b2ca34e9452f 100644 (file)
+2016-01-09  Andrew Hyatt  <ahyatt@gmail.com>
+
+       Adding example replies to bug-triage.
+
+       * admin/notes/bug-triage: Added example replies. Also, as requested,
+         making the process notes into more of a checklist.
+
+2016-01-08  Andrew Hyatt  <ahyatt@gmail.com>
+
+       Rename the notes/admin/triage file to bug-triage.
+
+       * CONTRIBUTE: Change reference to the triage file name.
+       * admin/notes/triage: Rename file to admin/notes/bug-triage.
+
+2016-01-08  K. Handa  <handa@gnu.org>
+
+       Fix outdated comments.
+
+2016-01-07  Glenn Morris  <rgm@gnu.org>
+
+       Allow creation of loaddefs files without timestamps.
+
+       * lisp/emacs-lisp/autoload.el (autoload-timestamps): New variable.
+       (autoload-generate-file-autoloads, update-directory-autoloads):
+       If autoload-timestamps is nil, write "t" instead of file timestamp.
+       (autoload-find-destination, update-directory-autoloads):
+       If timestamp is "t", use the modtime of the output file instead.
+
+2016-01-06  Glenn Morris  <rgm@gnu.org>
+
+       Doc tweaks.
+
+       * lisp/calendar/cal-hebrew.el (diary-hebrew-list-entries):
+       * lisp/calendar/cal-iso.el (calendar-iso-to-absolute)
+       (calendar-iso-from-absolute):
+       * lisp/calendar/cal-tex.el (cal-tex-comment):
+       * lisp/calendar/solar.el (calendar-time-display-form): Doc tweaks.
+
+2016-01-06  Glenn Morris  <rgm@gnu.org>
+
+       Build tweaks related to tags files.
+
+       * lib-src/Makefile.in (tagsfiles): New variable.
+       (TAGS): Also depend on the source files.  Use our own etags program.
+       * lisp/Makefile.in (ETAGS): Add EXEEXT.
+       (lisptagsfiles1, lisptagsfiles2, lisptagsfiles3, lisptagsfiles4):
+       Remove.
+       (tagsfiles): New, replacing lisptagsfiles1 etc.
+       Remove irrelevant source files here rather than in the TAGS rule.
+       (${ETAGS}): New rule.
+       (TAGS): Also depend on the etags executable.
+       * lwlib/Makefile.in (EXEEXT): New, set by configure.
+       (ETAGS): Add EXEEXT.
+       (${ETAGS}): New rule.
+       (ctagsfiles): Use "wildcard".
+       (TAGS): Also depend on the etags executable.
+       * nt/Makefile.in (ETAGS, tagsfiles): New variables.
+       (${ETAGS}): New rule.
+       (TAGS): Fix dependencies.
+       * oldXMenu/Makefile.in (EXEEXT): New, set by configure.
+       (ETAGS): New variable, replacing $TAGS.  Use our own etags program.
+       Remove "-t" argument.
+       (${ETAGS}): New rule.
+       (tagsfiles): New variable.
+       (TAGS): New rule, with proper dependencies.
+       * src/Makefile.in (ETAGS): Add EXEEXT.  Add a build rule.
+       (ctagsfiles1, ctagsfiles2): Use "wildcard".
+       (ctagsfiles3): Remove.
+       (TAGS): Depend on etags.
+       (../lisp/TAGS, $(lwlibdir)/TAGS): Let the rules in the relevant
+       directories decide if updates are needed.
+
+2016-01-06  Glenn Morris  <rgm@gnu.org>
+
+       * lisp/Makefile.in (CAL_SRC): Skip calendar.el.
+
+2016-01-06  Glenn Morris  <rgm@gnu.org>
+
+       * test/lisp/emacs-lisp/package-tests.el
+
+       (package-test-macro-compilation): Fixup branch merge.
+
+2016-01-05  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix fallout from merging emacs-25 branch in test/
+
+       * .gitignore: Update for the new place of biditest.txt.
+       * test/automated/: Directory removed.  All files moved to their
+       proper places.
+       * test/etags/: Directory removed.  All files moved to their proper
+       places.
+       * test/automated/url-parse-tests.el: File removed; it was an exact
+       copy of the same file in test/lisp/url/.
+       * test/automated/url-expand-tests.el: Moved to test/lisp/url/.
+
+2016-01-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Spelling fixes
+
+2016-01-04  Daniel Colascione  <dancol@dancol.org>
+
+       Let users disable unsafe signal handling code
+
+       * src/keyboard.c (syms_of_keyboard): New user variables
+       `attempt-stack-overflow-recovery' and
+       `attempt-orderly-shutdown-on-fatal-signal'.
+       * src/sysdep.c (stack_overflow): Check
+       `attempt-stack-overflow-recovery'.
+       * src/emacs.c (terminate_due_to_signal): Check
+       `attempt-orderly-shutdown-on-fatal-signal'.
+
+2016-01-03  Michael Albinus  <michael.albinus@gmx.de>
+
+       * configure.ac: Add error message for gfile on Nextstep.
+
+2016-01-03  John Wiegley  <johnw@newartisans.com>
+
+       Merge branch 'emacs-25-merge'
+
+2016-01-02  Vincent Belaïche  <vincentb1@users.sourceforge.net>
+
+       Align textually on fix done for emacs-25 branch for bug#21054
+
+       * lisp/ses.el (ses-check-curcell): Suppress ``temporary fix'' comment,
+       and useless `(if t ...)' in order to align textually on fix done for
+       emacs-25 branch for bug#21054.
+
+2016-01-02  K. Handa  <handa@gnu.org>
+
+       support rendering of wider range of combinging characters by ftfont backend
+
+       * lisp/language/hebrew.el (hebrew-shape-gstring): If the font backend
+       supports rendering of combining characters, call
+       font-shape-gstring.
+
+       * src/font.c (Ffont_get): Handle `combining-capability' property.
+       (syms_of_font): New symbol ":combining-capability'.
+
+       * src/font.h (struct font_driver): New member combining_capability.
+
+       * src/ftfont.c: Include "category.h".
+       (ftfont_driver): Initialize combining_capability to
+       ftfont_combining_capability.
+       (ftfont_shape_by_flt): If OTF is null, try to find a suitable
+       FLT in advance.
+       (ftfont_combining_capability): New function.
+
+2016-01-01  Andrew Hyatt  <ahyatt@gmail.com>
+
+       Add notes on bug triage procedure
+
+       * CONTRIBUTE: In section on the issue tracker, point to new triage file.
+       * admin/notes/triage: New file explaining triage procedure.
+
+2015-12-30  Vincent Belaïche  <vincentb1@users.sourceforge.net>
+
+       Correct ses-rename-cell cursor-intangible text prop updating.
+
+       There were two problems:
+
+       - First ses-rename-cell has to work when called non interactively
+         (with non-nil CELL argument), so in this case the start pos of
+         put-text-property cannot be plainly (point), you need a
+         ses-goto-print call before
+
+       - Second, the range itself was computed erronously, only the first
+         char was affected instead of the full cell width. This was not
+         noticeable prior to changes (Deprecate `intangible' and
+         `point-entered' properties) made by Stefan on 2015-04-13T19:51:15Z
+
+       * lisp/ses.el (ses-rename-cell): Correct computation of position range
+       to which the 'cursor-intangible text property has to be set to cell
+       new name.
+
+2015-12-30  Vincent Belaïche  <vincentb1@users.sourceforge.net>
+
+       Don't fake empty cells value by "" when printing with a lambda.
+
+       When using a lambda expression printer function the user should be
+       free to format differently a really empty cell, ie. containing nil,
+       from a cell containing an empty string "".
+
+       * ses.el (ses-call-printer): Replace `(or value "")' by just `value'
+       in the case of a lambda expression printer function.
+
+       * ses.texi (Printer functions): Add example and description about
+       lambda expression printer function handling all the possible values,
+       including unexpected ones.
+
+2015-12-30  Vincent Belaïche  <vincentb1@users.sourceforge.net>
+
+       Quick temporary hack to fix curcell refreshing.
+
+       The problem was caused by change: 2015-04-13 Deprecate `intangible'
+       and `point-entered' properties. The problem is that this change has
+       removed the (setq ses--curcell t) setting in the ses-command-hook
+       function.
+
+       * ses.el (ses-check-curcell): replace `(eq ses--curcell t)' by just `t' as
+       a condition to call function `ses-set-curcell'. Comment this as a quick
+       temporary hack to make it work, as I don't know yet whether a definite
+       correction would be to make the ses-set-curcell at every ses-check-curcell,
+       or to revert to the previous approach, ie marking ses--curcell as out-of-date
+       at every potentially cursor motion command.
+
+2015-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       Restrictive URL checking tweaks
+
+       * lisp/net/eww.el (eww): Check whether the domain is
+       restrictive instead of the string
+       (http://македонија.icom.museum is restrictive even if each
+       part is from a different script).
+
+2015-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       New function `puny-highly-restrictive-domain-p'
+
+       * lisp/net/puny.el (puny-highly-restrictive-string-p): Rename.
+       (puny-highly-restrictive-domain-p): New function.
+
+2015-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       eww build fix (require puny)
+
+2015-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       Transform non-restrictive domains to punycode for display
+
+       * lisp/net/eww.el (eww): Check whether the domain is Highly
+       Restrictive in the Unicode IDNA sense.
+
+2015-12-30  John Wiegley  <johnw@newartisans.com>
+
+       Merge emacs-25 into master (using imerge)
+
+2015-12-29  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix typos in CC Mode manual
+
+       * doc/misc/cc-mode.texi (c-offsets-alist, Style Variables): Fix
+       typos.  (Bug#22267)
+
+2015-12-29  Eli Zaretskii  <eliz@gnu.org>
+
+       Avoid assertion violations in compact_font_cache_entry
+
+       * src/alloc.c (compact_font_cache_entry): Don't use VECTORP to
+       avoid assertion violation in ASIZE.  (Bug#22263)
+
+2015-12-29  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix filling text with bidirectional characters in shr.el
+
+       * lisp/net/shr.el (shr-insert-document): Bind
+       bidi-display-reordering to nil while filling lines.  This is
+       required for when a line includes characters whose bidi
+       directionality is opposite to the base paragraph direction,
+       because columns are counted in the logical order.  (Bug#22250)
+
+2015-12-29  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Further Unicode restrictive fixups
+
+       * puny.el (puny-highly-restrictive-p): Include the extra
+       identifier characters from table 3.
+
+2015-12-29  Martin Rudalics  <rudalics@gmx.at>
+
+       * src/xfns.c (x_create_tip_frame): Process alpha parameter.
+
+2015-12-29  Michael Albinus  <michael.albinus@gmx.de>
+
+       Sync with Tramp 2.2.13
+
+       * doc/misc/trampver.texi: Change version to "2.2.13.25.1".
+
+       * lisp/net/tramp-compat.el (tramp-compat-delete-dups):
+       Use `tramp-compat-funcall'.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-parse-device-names):
+       Make `split-string' call compatible with older Emacsen.
+
+       * lisp/net/trampver.el: Change version to "2.2.13.25.1".
+
+2015-12-29  Lambda Coder  <sjLambda@gmail.com>
+
+       * doc/misc/tramp.texi: Editorial revisions to the Tramp manual
+
+2015-12-29  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Mention that tls.el is secure by default, and will fail
+
+2015-12-29  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Make tls.el use trustfiles by default
+
+       * lisp/net/tls.el (tls-program): Add a certfile by default (bug#21227).
+       (open-tls-stream): Insert the trustfile by looking at
+       `gnutls-trustfiles'.
+
+2015-12-29  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Refactor out gnutls-trustfiles
+
+       * lisp/net/gnutls.el (gnutls-trustfiles): Refactor out for reuse by tls.el.
+
+2015-12-29  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Remove --insecure from gnutls-cli invocation
+
+       * tls.el (tls-program): Default to using secure TLS
+       connections (bug#19284).
+
+2015-12-29  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Add a new function to say whether a string is restrictive
+
+       * puny.el (puny-highly-restrictive-p): New function.
+
+2015-12-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Spelling fix
+
+2015-12-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port report-emacs-bug to deterministic builds
+
+       * lisp/mail/emacsbug.el (report-emacs-bug): Future-proof the
+       recent "built on" change to deterministic builds where
+       emacs-build-system will be nil.  See:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01369.html
+
+2015-12-28  Jose A. Ortega Ruiz  <jao@gnu.org>  (tiny change)
+
+       Fix URL auth error message
+
+       * lisp/url/url-http.el (url-http-handle-authentication): Make the error
+       message more correct (bug#20069).
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Mention the new puny.el library
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       IDNA-related fixes for the URL library
+
+       * lisp/url/url-http.el (url-http-create-request): IDNA-encode
+       the Host: header.
+
+       * lisp/url/url-util.el (url-encode-url): Don't hex-encode
+       domain names, but leave them as UTF-8, so that they can be
+       IDNA-encoded later when contacting the host.
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       IDNA-encode all domain names in `open-network-stream'
+
+       * network-stream.el (open-network-stream)
+       (network-stream-open-plain, network-stream-open-starttls):
+       IDNA-encode all domain names, if needed.
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Fix puny-encoding all-non-ASCII domains
+
+       * puny.el (puny-encode-string): Fix the all-non-ASCII encoding case.
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       shr link traversal fixup
+
+       * shr.el (shr-next-link): Don't bug out on adjacent links.
+
+       Backport:
+
+       (cherry picked from commit 1efc5f8b09273c359683ce13be95fb5df7a84311)
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       shr link traversal fixup
+
+       * shr.el (shr-next-link): Don't bug out on adjacent links.
+
+2015-12-28  Tom Tromey  <tom@tromey.com>
+
+       set :safe on css-indent-offset
+
+       * lisp/textmodes/css-mode.el (css-indent-offset): Add :safe 'integerp.
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * eww.el (eww-mode): Remove superfluous bidi reset.
+
+2015-12-28  James Stout  <james.wolf.stout@gmail.com>  (tiny change)
+
+       Make chunked encoding trailer detection more compliant
+
+       * lisp/url/url-http.el
+       (url-http-chunked-encoding-after-change-function): Make
+       trailer detection more compliant (bug#16345).
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Reconnect erc even on server errors
+
+       * lisp/erc/erc-backend.el (erc-server-reconnect-p): Try to
+       reconnect even if a server error has occurred (bug#18527).
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Fix punycode short circuit logic
+
+       * puny.el (puny-encode-domain): Fix short-circuit logic.
+
+2015-12-28  Martin Rudalics  <rudalics@gmx.at>
+
+       Fix Bug#10873 in `report-emacs-bug'
+
+       * lisp/mail/emacsbug.el (report-emacs-bug): If
+       `report-emacs-bug-no-explanations' is nil, make sure we can show
+       mail and warnings buffer on this frame (Bug#10873).
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       IDNA speed up
+
+       * puny.el (puny-encode-domain): Make the common non-IDNA case faster
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Add IDNA domain encode/decode functions
+
+       * puny.el (puny-decode-domain): New function.
+       (puny-encode-domain): Ditto.
+       (puny-decode-digit): Fix digit decoding error.
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Rename idna.el to puny.el
+
+       * puny.el: Renamed from idna.el to avoid name collisions with
+       the external idna.el library.
+
+2015-12-28  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Always reset the bidi direction
+
+       * eww.el (eww-display-html): Always reset the bidi direction
+       to `left-to-right' (bug#22257).
+
+2015-12-28  Alan Mackenzie  <acm@muc.de>
+
+       Allow line comments ending with escaped NL to be continued to the next line.
+
+       Use this in C, C++, and Objective C Modes.  Fixes bug#22246
+
+       * src/syntax.c (comment-end-can-be-escaped): New buffer local variable.
+       (forw-comment, back-comment): On encountering an end of comment character,
+       test whether it is escaped when `comment-end-can-be-escaped' is non-nil.
+
+       * doc/lispref/syntax.texi (Control Parsing): Describe
+       `comment-end-can-be-escaped'.
+
+       * etc/NEWS (Lisp Changes): Describe `comment-end-can-be-escaped'.
+
+       * lisp/progmodes/cc-langs.el: New c-lang-setvar `comment-end-can-be-escaped'.
+
+2015-12-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe): Keep old Emacsen compatibility
+
+       * lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe):
+       Don't use split-string with 4th arg for old Emacsen compatibility.
+
+2015-12-27  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Rename project-library-roots to project-external-roots
+
+       * lisp/progmodes/project.el (project-library-roots): Rename to
+       project-external-roots.
+       (project-library-roots-function): Rename to
+       project-vc-external-roots-function.  Only use it in the VC
+       backend, for now.  Update project-external-roots accordingly.
+       (project-vc-library-roots): Remove.
+       (project-or-libraries-find-regexp):
+       Rename to project-or-external-find-regexp.
+
+       * lisp/progmodes/elisp-mode.el (elisp-library-roots):
+       Rename to elisp-load-path-roots.
+
+       * lisp/progmodes/etags.el (etags-library-roots): Remove.  Use
+       an anonymous function for the default value of
+       project-vc-external-roots-function.
+
+2015-12-27  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * idna.el (idna-decode-string-internal): Implement decoding.
+
+2015-12-27  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Further IDNA tweaks
+
+       (idna-encode-string): Make idna-encode-string safe for
+       non-ASCII use.
+
+2015-12-27  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Clean up the code slightly
+
+2015-12-27  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Added basic idna encoding support
+
+       * lisp/net/idna.el: New file.
+
+2015-12-27  Vivek Dasmohapatra  <vivek@etla.org>
+
+       Disconnection fixes for erc
+
+       * lisp/erc/erc-backend.el (erc-server-reconnect-p): Don't
+       reconnect if the user has disconnected explicitly (bug#4589).
+
+2015-12-27  Thomas Riccardi  <riccardi.thomas@gmail.com>  (tiny change)
+
+       Further erc asynch fixes
+
+       * lisp/erc/erc-backend.el (erc-process-sentinel-2): Make
+       erc-server-connect to return even if the connection is not
+       ready.  Then erc-open and erc-server-reconnect do the
+       same. (bug#5650).
+
+2015-12-27  Vivek Dasmohapatra  <vivek@etla.org>
+
+       Make erc connect asynchronously
+
+       * lisp/erc/erc-backend.el (erc-server-reconnect): Use it to
+       reconnect asynchronously.
+
+       * lisp/erc/erc-backend.el (erc-open-network-stream): New function (bug#5650).
+
+2015-12-27  Deniz Dogan  <deniz@dogan.se>
+
+       Clear erc user list upon disconnection
+
+       * lisp/erc/erc-backend.el (erc-process-sentinel): Clear channel user
+       lists upon disconnection.  This prevents invalid channel
+       user lists when reconnecting (bug#10947).
+
+2015-12-27  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Don't bug out in erc after waking from sleep
+
+       * erc-backend.el (erc-server-send-ping): If the server has
+       closed connection, this may already have been detected and
+       `erc-server-last-received-time' has been set to nil (bug#13608).
+
+2015-12-27  David Edmondson  <dme@dme.org>
+
+       Proxy error in erc with multiple clients
+
+       * lisp/erc/erc.el (erc-channel-receive-names): Fix errors
+       generated when multiple IRC clients talk to a single IRC proxy
+       (bug#19034).
+
+       Backport:
+
+       (cherry picked from commit 507e98a54d1aa37823c64993d6b59257a82fe8f4)
+
+2015-12-27  David Edmondson  <dme@dme.org>
+
+       Proxy error in erc with multiple clients
+
+       * lisp/erc/erc.el (erc-channel-receive-names): Fix errors
+       generated when multiple IRC clients talk to a single IRC proxy
+       (bug#19034).
+
+2015-12-27  Dima Kogan  <dima@secretsauce.net>
+
+       Ensure that we don't have several timers in erc
+
+       * lisp/erc/erc-backend.el (erc-server-setup-periodical-ping): Checks
+       for existing timers in the alist before adding new ones.  If a
+       timer already exists, it is cancelled and
+       overwritten. (bug#19292).
+
+2015-12-27  Jens Lechtenboerger  <jens.lechtenboerger@fsfe.org>
+
+       Fix mml-sec build warnings
+
+       * lisp/gnus/mml-sec.el: Fix warnings by adding autoloads
+       (bug#18718).
+
+       Backport:
+
+       (cherry picked from commit 3603097f62f5f4aa5451716e9ac380161f6829e2)
+
+2015-12-27  Jens Lechtenboerger  <jens.lechtenboerger@fsfe.org>
+
+       Fix mml-sec build warnings
+
+       * lisp/gnus/mml-sec.el: Fix warnings by adding autoloads
+       (bug#18718).
+
+2015-12-27  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Don't insert erc logs at the end
+
+       * erc-log.el (erc-log-setup-logging): Insert the previous log
+       at the start of the buffer, not at the end (bug#20496).
+
+2015-12-27  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       (eww-setup-buffer): Restore left-to-right defaults
+
+       * eww.el (eww-setup-buffer): Restore left-to-right defaults.
+
+       Backport:
+
+       (cherry picked from commit 96c874b96b617c124d500a94de761a61f2a08685)
+
+2015-12-27  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       (eww-setup-buffer): Restore left-to-right defaults
+
+       * eww.el (eww-setup-buffer): Restore left-to-right defaults.
+
+2015-12-27  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Don't join erc channels doubly
+
+       * erc-join.el (erc-autojoin-channels): Don't join channels
+       more than once (if you have several nicks) (bug#20695).
+
+2015-12-27  Eli Zaretskii  <eliz@gnu.org>
+
+       Avoid leaving "ghost" of mouse pointer on MS-Windows
+
+       * src/w32term.c (frame_set_mouse_pixel_position):
+       * src/w32fns.c (Fw32_mouse_absolute_pixel_position): Momentarily
+       disable "mouse trails" when moving the mouse pointer.  (Bug#22247)
+       * src/w32term.c (frame_set_mouse_pixel_position): Include
+       w32common.h.
+
+2015-12-27  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe): Fix typo in last check-in.
+
+2015-12-27  Jens Lechtenboerger  <jens.lechtenboerger@fsfe.org>
+
+       Identify unsafe combinations of Bcc and encryption
+
+       * lisp/gnus/gnus-util.el (gnus-subsetp): New function
+       * lisp/gnus/mml-sec.el (mml-secure-safe-bcc-list): New variable
+       * lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe): New function
+
+2015-12-27  Krzysztof Jurewicz  <krzysztof.jurewicz@gmail.com>  (tiny change)
+
+       Fix auth source lookups from erc with port numbers
+
+       * lisp/erc/erc.el (erc-open): `auth-source' wants strings, not port
+       numbers (bug#20541).
+
+2015-12-27  Fran Litterio  <flitterio@gmail.com>
+
+       Run erc-kill-channel-hook always on exit
+
+       * lisp/erc/erc.el (erc-kill-buffer-function): Run erc-kill-channel-hook
+       when erc-kill-queries-on-quit is set (bug#21187).
+
+2015-12-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Spelling fix
+
+       * test/automated/url-parse-tests.el:
+       (url-generic-parse-url/same-document-reference):
+       Rename from url-generic-parse-url/same-decument-reference.
+
+2015-12-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Reword initial *scratch* for brevity, appearance
+
+       * lisp/startup.el (initial-scratch-message):
+       Reword to avoid apostrophes, and to make it shorter.
+       See the thread starting in:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01241.html
+
+2015-12-26  Leo Liu  <sdl.web@gmail.com>
+
+       Add ert-deftest to lisp-mode.el
+
+       * lisp-mode.el (lisp-imenu-generic-expression,
+         lisp-el-font-lock-keywords-1): Add ert-deftest.
+
+2015-12-26  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Mark imap changes as not needing doc changes
+
+       * imap.el (imap-ssl-open): Remove
+
+2015-12-26  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Use built-in encryption in imap.el
+
+       * lisp/net/imap.el (imap-ssl-program): Remove (bug#21134).
+       (imap-starttls-open): Use open-network-stream instead of starttls.el.
+       (imap-tls-open): Use open-network-stream instead of tls.el.
+
+2015-12-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Don't try using /bin/sh in artist.el on MS-Windows
+
+       * lisp/textmodes/artist.el (artist-figlet-get-font-list-windows):
+       New function.
+       (artist-figlet-choose-font): Use it on MS-Windows and MS-DOS.
+       (Bug#20167)
+
+2015-12-26  Wolfgang Jenkner  <wjenkner@inode.at>
+
+       Always define gmalloc etc. in src/gmalloc.c
+
+       This is a work-around to prevent the compiler from using semantic
+       knowledge about malloc for optimization purposes.  E.g., gcc 5.2
+       with -O2 replaces most of calloc's definition by a call to calloc;
+       see Bug#22085.
+       * src/gmalloc.c [!HYBRID_MALLOC] (malloc, realloc, calloc)
+       (aligned_alloc, free): Do not undef.  Instead, define these as
+       functions (perhaps renamed to gmalloc etc.) in terms of gmalloc etc.
+
+2015-12-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix documentation of browse-url browser-related functions
+
+       * lisp/net/browse-url.el (browse-url)
+       (browse-url-default-browser, browse-url-default-windows-browser)
+       (browse-url-default-macosx-browser, browse-url-chromium)
+       (browse-url-kde, browse-url-text-xterm): Clarify the usage of ARGS
+       and NEW-WINDOW arguments in these functions.  (Bug#19421)
+
+2015-12-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Propagate Bug#14412 fix to backtrace_eval_unrewind
+
+       * src/eval.c (unbind_to): Redo so that the FALLTHROUGH!! comment
+       becomes accurate again. This shouldn’t affect behavior.
+       (backtrace_eval_unrewind): Apply the recent unbind_to fix here, too.
+
+2015-12-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Don't produce non-ASCII characters in *scratch*
+
+       * lisp/startup.el (initial-scratch-message): Quote apostrophes to
+       avoid producing non-ASCII characters in the *scratch* buffer's
+       commentary.
+
+2015-12-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Document changes in 'compare-windows'
+
+       * lisp/vc/compare-w.el (compare-windows-removed)
+       (compare-windows-added): Doc fix.
+
+       * doc/emacs/files.texi (Comparing Files): Document the changes in
+       window selection by 'compare-windows'.
+
+2015-12-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Document 'vc-annotate-background-mode'
+
+       * doc/emacs/maintaining.texi (Old Revisions): Document
+       'vc-annotate-background-mode'.
+
+2015-12-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Document 'vc-region-history'
+
+       * doc/emacs/maintaining.texi (VC Change Log): Document
+       'vc-region-history'.
+
+2015-12-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve documentation of 'vc-push'
+
+       * doc/emacs/maintaining.texi (Pulling / Pushing): Expand and
+       improve the documentation of 'vc-push'.
+
+       * lisp/vc/vc.el (vc-pull, vc-push): Doc fix.
+
+2015-12-26  Alain Schneble  <a.s@realize.ch>
+
+       Include the tests for the URL parsing fixes
+
+2015-12-26  Alain Schneble  <a.s@realize.ch>
+
+       Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044)
+
+       * test/lisp/url/url-parse-tests.el: Add tests covering url-generic-parse-url.
+       * test/lisp/url/url-expand-tests.el: Add tests covering url-expand-file-name.
+       * lisp/url/url-parse.el (url-generic-parse-url): Keep empty fragment
+       information in URL-struct.
+       * lisp/url/url-parse.el (url-path-and-query): Do not artificially turn empty
+       path and query into nil path and query, respectively.
+       * lisp/url/url-expand.el (url-expander-remove-relative-links): Do not turn
+       empty path into an absolute ("/") path.
+       * lisp/url/url-expand.el (url-expand-file-name): Properly resolve
+       fragment-only URIs. Do not just return them unchanged.
+       * lisp/url/url-expand.el (url-default-expander): An empty path in the relative
+       reference URI should not drop the last segment.
+
+       Backport:
+
+       (cherry picked from commit b792ecea1715e080ad8e232d3d154b8a25d2edfb)
+
+2015-12-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Document 'url-user-agent'.
+
+       * lisp/url/url-http.el (url-user-agent): Move from here...
+       * lisp/url/url-vars.el (url-user-agent): ...to here.  This is to
+       keep all the URL defcustoms in one place, and also have it defined
+       whenever the URL library is loaded.
+
+       * doc/misc/url.texi (Customization): Document 'url-user-agent'.
+
+2015-12-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Document protocols supported by URL library via Tramp
+
+       * doc/misc/url.texi (Tramp): New node, describes the URL schemes
+       supported via Tramp.
+       (Supported URL Types, file/ftp, rlogin/telnet/tn3270): Mention
+       Tramp.
+
+2015-12-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Document changes in Shell-script mode
+
+       * lisp/progmodes/sh-script.el (sh-mode, sh-set-shell): Document
+       the 'sh-shell' file-local variable.
+       (top level): Add an auto-load form to avoid byte-compiler warning
+       about 'comint-send-string'.
+
+2015-12-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix documentation of 'ses-define-local-printer'
+
+       * doc/misc/ses.texi (Printer functions): Fix whitespace between
+       sentences and punctuation.  Add an index entry for
+       'ses-define-local-printer'.
+
+2015-12-26  Shakthi Kannan  <shakthimaan@gmail.com>
+
+       Document 'ert-summarize-tests-batch-and-exit'
+
+       * doc/misc/ert.texi (Running Tests in Batch Mode): Document
+       'ert-summarize-tests-batch-and-exit'.
+
+2015-12-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Avoid assertion violation in unbind_to
+
+       * src/eval.c (unbind_to) <SPECPDL_LET>: Avoid assertion violation
+       if we get here with an object that is not a symbol.  (Bug#14412)
+
+2015-12-25  Andreas Schwab  <schwab@linux-m68k.org>
+
+       Don't treat /foo/bar:mumble as ange-ftp address
+
+               * lisp/net/browse-url.el (browse-url-filename-alist): Match colons
+               only in the first component.  (bug#5362)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Follow <meta> redirects in eww
+
+       Merge conflict, but I think I resolved it.
+
+           Follow meta refresh tags in eww
+
+           * eww.el (eww-tag-meta): Follow meta refresh tags (bug#22234).
+
+       Backport:
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Allow http://user:pass@foo/ URLs again
+
+       * lisp/url/url-auth.el (url-basic-auth): Allow explicit
+       user/passwords in URLs (bug#19046).
+
+       Backport:
+
+       (cherry picked from commit b563715a2db265517d5a77f165a42afa1e233fdd)
+
+2015-12-25  Samer Masterson  <samer@samertm.com>
+
+       Autoload url-insert-buffer-contents
+
+       * lisp/url/url-handlers.el: Add autoload cookie so that
+       `package-list-packages' doesn't bug out (bug#21927) (tiny change)
+
+       Backport:
+
+       (cherry picked from commit 7a7b5b492ff9929eecd90c4564db6fbf3b192323)
+
+2015-12-25  Eli Zaretskii  <eliz@gnu.org>
+
+       Make sure *scratch* etc. use forward slashes in its default-directory
+
+       * lisp/startup.el (normal-top-level): On MS-Windows, convert
+       backslashes to forward slashes while decoding default-directory
+       of the initially-created buffers.
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       More eww file name coding fixes
+
+       * eww.el (eww-decode-url-file-name): Use the base coding
+       system to check for encodability.
+
+       Backport:
+
+       (cherry picked from commit a8627008abe4ab339df19b417776da28b3ce0fc7)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Always save eww history
+
+       * eww.el (eww-setup-buffer): Always save history, even when
+       called from outside the eww buffer (bug#19638).
+
+       Backport:
+
+       (cherry picked from commit 2a0f18d9b6ce0ccce3d9c4a4a3b5743bae71b41e)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Default web pages to right-to-left
+
+       * eww.el (eww-mode): Most web pages are left-to-right, so make
+       that the default (bug#19801).
+
+       * shr.el (shr-tag-html): Respect "dir" attributes
+       (left-to-right, right-to-left).
+
+       Backport:
+
+       (cherry picked from commit 9e089ec8a380ec3758fcf1564c5f86dc92c68c2a)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Make toggling checkboxes work again
+
+       * eww.el (eww-update-field): Make toggling checkboxes work
+       again (bug#21881).
+
+       Backport:
+
+       (cherry picked from commit 5e56f606952e5e81b4d3a93ea70e791b74b33041)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Don't store cookies with empty names
+
+       * lisp/url/url-cookie.el (url-cookie-store): Refuse to store
+       cookies with empty names (bug#21936).
+
+       Backport:
+
+       (cherry picked from commit 9f0fd7cb1aec3eb9e2e0f7b8854c30870286d96c)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Stop rendering HTML before specdlr exhaustion
+
+       Fixes: 22117
+
+       * shr.el (shr-descend): Stop rendering before we run out of
+       specpdl room (bug#22117).
+
+       Backport:
+
+       (cherry picked from commit 248da292fe46224b0b5a79b632c89cf4de2c2081)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Use cl-reduce, not reduce.
+
+       Backport:
+
+       (cherry picked from commit fe4606f93b91ff3d046aee0cf21ecc277af7a786)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Allow several <tbody> tags in shr
+
+       * shr.el (shr-table-body): New function to find the real body
+       of a table.
+       (shr-tag-table): Use it to render several <tbody> tags in a
+       table (bug#22170).
+
+       Backport:
+
+       (cherry picked from commit cdaf33029d6620073833876d76056045ecfbc7c4)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Make prettier unique file names in eww
+
+       (eww-make-unique-file-name): Make unique file names by making
+       files like foo(2).jpg instead of foo(1)(2).jpg.
+
+       Backport:
+
+       (cherry picked from commit edfdd0a6cbdfa9e5e4bd0553e2b489401ca39266)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Decode hex-encoded URLs before using them as file names
+
+       * eww.el (eww-decode-url-file-name): New function.
+       (eww-download-callback): Use it to decode file names before
+       saving them.
+
+       Backport:
+
+       (cherry picked from commit af22a010d87516c2a646572fb27512c03057784f)
+
+2015-12-25  Ashish SHUKLA  <ashish.is@lostca.se>
+
+       Add FreeBSD cert bundle
+
+       * doc/misc/emacs-gnutls.texi (Help For Users): Document
+       FreeBSD bundle.
+
+       * lisp/net/gnutls.el (gnutls-trustfiles): Add FreeBSD cert bundle.
+
+       Backport:
+
+       (cherry picked from commit 60c0f1a18ad88d6dc1a8f4ee5d9d18940eaeb6f7)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Ignore invalid SVG images
+
+       * shr.el (shr-tag-svg): Ignore SVG images that have no width
+       or height, because these can't be displayed by ImageMagick,
+       anyway.
+
+       Backport:
+
+       (cherry picked from commit 821107d53c2e390240d25c036b99ebbf9b4a93b6)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       shr table rendering fix
+
+       * shr.el (shr-tag-table): Allow rendering body-less tables
+       that have headers.
+
+       Backport:
+
+       (cherry picked from commit b05471e42c17e02c56c87d7599ada0c124a5fe09)
+
+2015-12-25  Eli Zaretskii  <eliz@gnu.org>
+
+       Restore info about the build host in bug reports
+
+       * lisp/mail/emacsbug.el (report-emacs-bug): Report the system on
+       which Emacs was built.  This is important information for
+       investigating bug reports reported by users who don't build their
+       Emacs.
+
+2015-12-25  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix bootstrap broken by changes related to OS X file-name encoding
+
+       * lisp/international/ucs-normalize.el (eval-when-compile): Make
+       sure char-code-property-alist includes elements that allow access
+       to 'decomposition' and 'canonical-combining-class' Unicode
+       properties, as compiling ucs-normalize.el requires that.
+       * lisp/loadup.el (featurep 'ns): Load ucs-normalize and ns-win
+       only of charprop.el was already loaded.
+
+       * src/Makefile.in ($(lispsource)/international/ucs-normalize.elc):
+       New order-only dependency.
+
+2015-12-25  Leo Liu  <sdl.web@gmail.com>
+
+       * ido.el (ido-add-virtual-buffers-to-list): Use bookmark-get-filename.
+
+2015-12-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Make tramp-test29-vc-registered more robust
+
+       * test/automated/tramp-tests.el (tramp-test29-vc-registered):
+       Move `bzr' case down.  Skip test when `vc-create-repo' fails.
+       Remove instrumentation.
+
+2015-12-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * lisp/term/x-win.el (x-gtk-stock-map): Fix typo.
+
+2015-12-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       Fix `gnus-union' so as to behave like `cl-union'
+
+       * lisp/gnus/gnus-group.el (gnus-group-prepare-flat):
+       Make gnus-union use `equal' to compare items in lists.
+
+       * lisp/gnus/gnus-util.el (gnus-union):
+       Make it behave like cl-union partially.
+
+2015-12-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix dired.c typo with ptrdiff_t vs Lisp_Object
+
+       * src/dired.c (file_name_completion): Don't assume Lisp_Object is
+       an integer type, fixing a problem introduced in the recent fix for
+       Bug#22169.
+
+2015-12-23  Eli Zaretskii  <eliz@gnu.org>
+
+       Document default process sentinel more prominently
+
+       * doc/lispref/processes.texi (Asynchronous Processes): Mention the
+       defaults for process filter and sentinel.  Provide cross-references.
+       (Process Information): Provide cross-references to where filters
+       and sentinels are described.
+       (Filter Functions): Add an index entry for "default filter".
+       (Sentinels): Add a few status messages not documented previously.
+       Resolve the "killed" confusion.  Document and describe the default
+       sentinel.  (Bug#22220)
+
+2015-12-23  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix file-name completion on OS X
+
+       * src/dired.c (file_name_completion): Reject false matches due to
+       file-name-coding-systems that decompose characters when encoding
+       file names, by comparing decoded file names as well.  (Bug#22169)
+       (syms_of_dired) <Qdecomposed_characters>: New DEFSYM.
+
+       * lisp/international/ucs-normalize.el (utf-8-hfs): Give it a
+       non-nil 'decomposed-characters' property.
+
+2015-12-23  Anders Lindgren  <andlind@gmail.com>
+
+       File-name completion of non-ASCII characters on OS X (bug#22169)
+
+       The coding system `utf-8-nfd', locally defined in ns-win.el,
+       didn't provide a :pre-write-conversion method, causing file name
+       completion of non-ASCII characters to fail.  Solved by using the
+       `utf-8-hfs' coding system provided by `ucs-normalize'.
+
+       * lisp/loadup.el: Load international/ucs-normalize (when building
+       for ns).
+
+       * lisp/term/ns-win.el (utf-8-nfd): Made `utf-8-nfd' as alias for
+       `utf-8-hfs' and removed the old implementation.  Set `utf-8-hfs'
+       as the file name coding system.
+
+       * src/nsfns.c (ns-convert-utf8-nfd-to-nfc): Removed.
+
+2015-12-22  Tom Tromey  <tom@tromey.com>
+
+       Fix bug #18588 by making bug-reference-bug-regexp more lenient
+
+       * lisp/progmodes/bug-reference.el (bug-reference-bug-regexp): Accept
+       "bug NNNN".  (Bug #18588)
+
+2015-12-22  Tom Tromey  <tom@tromey.com>
+
+       add some cl-* aliases to lisp-mode imenu
+
+       * (lisp-imenu-generic-expression): Add cl-define-compiler-macro,
+       cl-defgeneric, and cl-defmethod.
+
+2015-12-22  Tom Tromey  <tom@tromey.com>
+
+       Make a variable buffer-local
+
+       * lisp/generic-x.el (generic-rul-mode-setup-function): Make
+       font-lock-syntax-table buffer-local.  (Bug #21627)
+
+2015-12-22  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix decoding of text in URLs retrieved by EWW
+
+       * lisp/net/eww.el (eww-render): Pass 'charset' to
+       'eww-display-raw'.  Use the value of 'last-coding-system-used', if
+       non-nil, to set 'buffer-file-coding-system' of the buffer where we
+       show the URL.
+       (eww-display-html, eww-display-raw): Decode the text correctly,
+       using the charset found in the headers, and defaulting to UTF-8.
+       If the user told us to use a specific encoding, override the
+       charset from the headers.  (Bug#22222)
+
+2015-12-22  Alan Mackenzie  <acm@muc.de>
+
+       Fix a coding error in c-forward-<>-arglist-recur.  Fixes bug#22156
+
+       * lisp/progmodes/cc-engine.el (c-forward-<>-arglist-recur): Remove unused
+       variable `tmp'.
+       After a failed search for a matching ">", restore point before continuing.
+
+2015-12-22  Michael Albinus  <michael.albinus@gmx.de>
+
+       Instrument Tramp tests
+
+       * test/automated/tramp-tests.el (tramp-test29-vc-registered)
+       (tramp--test-utf8): Instrument tests.
+
+2015-12-22  Martin Rudalics  <rudalics@gmx.at>
+
+       Fix `display-buffer' call in `display-message-or-buffer' (Bug#22221)
+
+       * lisp/simple.el (display-message-or-buffer): Call
+       `display-buffer' with ACTION instead of NOT-THIS-WINDOW
+       (Bug#22221).
+
+2015-12-21  Juri Linkov  <juri@linkov.net>
+
+       * lisp/saveplace.el (toggle-save-place, save-place-to-alist)
+
+       (save-places-to-alist, save-place-dired-hook):
+       Check for dired-subdir-alist.  (Bug#19851)
+
+2015-12-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Add FIXME comment re stack overflow and modules
+
+2015-12-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Revert some recent emacs-module commentary
+
+       Most of the recently-added commentary was incorrect, due to the
+       possibility of stack overflow.
+
+2015-12-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Spelling fix: prefer "cooperate" to "co-operate"
+
+2015-12-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port undo fixes to -fno-common
+
+       Port recent fix for Bug#21968 to platforms like 'gcc -fno-common'.
+       * src/keyboard.c, src/keyboard.h (point_before_last_command_or_undo)
+       (buffer_before_last_command_or_undo):
+       Declare in keyboard.h, and define in keyboard.c,
+       instead of assuming the traditional Unix relaxed ref-def linkage.
+
+2015-12-20  Philipp Stephani  <phst@google.com>
+
+       Improve commentary for emacs-module.c
+
+       * src/lisp.h: Document emacs-module.c assumptions about EQ and NILP.
+       * src/emacs-module.c (module_non_local_exit_get): Document that we
+       cannot use the current implementation.
+       (module_is_not_nil, module_eq): Document assumptions about EQ and
+       NILP.
+
+2015-12-20  Michael Albinus  <michael.albinus@gmx.de>
+
+       Suppress test on Mac OS X
+
+       * test/automated/tramp-tests.el (tramp--test-darwin-p): New defun.
+       (tramp--test-utf8): Use it.
+
+2015-12-20  Alan Mackenzie  <acm@muc.de>
+
+       Merge branch 'scratch/follow' into emacs-25
+
+       This allows Isearch, etc., to work well when Follow Mode is active.
+
+2015-12-19  Michael Albinus  <michael.albinus@gmx.de>
+
+       * tramp-sh.el (tramp-get-ls-command-with-w-option): Improve check.
+
+2015-12-19  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix last commit
+
+       * doc/emacs/rmail.texi (Rmail Deletion): Document new behavior of 'u'
+       with numeric argument.
+
+2015-12-19  Eli Zaretskii  <eliz@gnu.org>
+
+       Document new features of Rmail
+
+       * doc/emacs/rmail.texi (Rmail Summary Edit, Rmail Deletion):
+       Document new behavior of 'd' and 'C-d' with numeric argument.
+       (Rmail Display): Document the rendering of HTML MIME parts.
+
+2015-12-19  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve documentation of new cl-lib functions
+
+       * doc/misc/cl.texi (Predicates on Numbers, Numerical Functions):
+       Fix wording.
+
+2015-12-19  Eli Zaretskii  <eliz@gnu.org>
+
+       Document the new feature of 'minibuffer-with-setup-hook'
+
+       * lisp/files.el (minibuffer-with-setup-hook): Clarify how FUN is
+       added to `minibuffer-setup-hook'.
+
+2015-12-19  Eli Zaretskii  <eliz@gnu.org>
+
+       Document new features of Font Lock
+
+       * doc/lispref/modes.texi (Other Font Lock Variables): Document
+       'font-lock-flush-function' and 'font-lock-ensure-function'.
+       (Font Lock Basics): Document the basic fontification functions
+       referenced in "Other Font Lock Variables".
+
+       * lisp/font-lock.el (font-lock-flush, font-lock-ensure): Doc fix.
+
+2015-12-19  Eli Zaretskii  <eliz@gnu.org>
+
+       Document new features of Rectangle mode
+
+       * doc/emacs/killing.texi (Rectangles): Document "C-x C-x" in
+       rectangle-mark-mode.
+
+2015-12-19  Eli Zaretskii  <eliz@gnu.org>
+
+       Manual followup to last change
+
+       * doc/lispref/display.texi (Displaying Messages): Sync with the
+       doc string.  (Bug#22210)
+
+2015-12-19  Eli Zaretskii  <eliz@gnu.org>
+
+       Clarify doc string of 'display-message-or-buffer'
+
+       * lisp/simple.el (display-message-or-buffer): Doc fix.  Suggested
+       by Sebastian Wiesner <swiesner@lunaryorn.com>.  (Bug#22210)
+
+2015-12-19  Eli Zaretskii  <eliz@gnu.org>
+
+       * doc/emacs/emacs.texi (Top): Update top-level menus.
+
+       * doc/lispref/elisp.texi (Top): Update top-level menus.
+
+2015-12-19  Eli Zaretskii  <eliz@gnu.org>
+
+       Document how to avoid file-local variables that aren't
+
+       * doc/emacs/custom.texi (Specifying File Variables): Describe how
+       to prevent Emacs from interpreting unrelated text as file-local
+       variables.  (Bug#22166)
+
+2015-12-19  Dave Thomas  <dave@pragprog.org>  (tiny change)
+
+       Fix a typo in eterm-color's termcap entry
+
+       * lisp/term.el (term-termcap-format): Fix a typo in the "ue="
+       entry.  (Bug#22184)
+
+2015-12-19  Eli Zaretskii  <eliz@gnu.org>
+
+       Allow 'browse-url-emacs' visit non-existent URLs
+
+       * lisp/url/url-handlers.el (url-insert-file-contents): Don't
+       signal an error if VISIT is non-nil, to more faithfully emulate
+       the behavior of 'insert-file-contents'.  (Bug#22160)
+
+2015-12-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove SunOS 4.x cruft
+
+       Support for SunOS 4.x was removed in Emacs 23 but some cruft was left behind.
+       * lib-src/pop.c [sun]: Remove no-longer-needed include.
+       * lwlib/xlwmenu.c (SUNSO41): Remove.
+
+2015-12-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge from gnulib
+
+       This mostly commentary fixes.
+       * doc/misc/texinfo.tex, lib/intprops.h: Copy from gnulib.
+       * lib/gnulib.mk: Regenerate with new gnulib-tool.
+
+2015-12-18  Michael Albinus  <michael.albinus@gmx.de>
+
+       Minor fixes in Tramp
+
+       * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls):
+       Reorder ls arguments.
+
+       * lisp/net/tramp.el (tramp-dissect-file-name): Fix docstring.
+
+2015-12-18  Michael Albinus  <michael.albinus@gmx.de>
+
+       Make tramp a built-in package
+
+       * lisp/finder.el (finder-compile-keywords): Update
+       `package--builtins' also when Version: keyword is available.
+
+       * lisp/net/trampver.el: Add Version: keyword.
+       (tramp-version): Change it to "2.2.13.25.1", in order to be
+       compatible with `version-to-list'.
+
+2015-12-18  Lele Gaifax  <lele@metapensiero.it>
+
+       * etc/tutorials/TUTORIAL.it: Update and fix typos.
+
+2015-12-18  Alan Mackenzie  <acm@muc.de>
+
+       Rename `recenter-group' to `recenter-window-group'
+
+       * doc/lispref/windows.texi (Textual Scrolling)
+       * lisp/window.el (top level, recenter-group)
+       * lisp/follow.el (follow-mode)
+       * lisp/isearch.el (isearch-back-into-window): Rename `recenter-group' to
+       `recenter-window-group' and `recenter-group-function' to
+       `recenter-window-group-function'.
+
+2015-12-18  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix vertical-motion in tabulated-list mode
+
+       * src/indent.c (Fvertical_motion): When moving from line beginning
+       to point under line truncation, assume overshoot by one line only
+       if point actually lies beyond the window's right margin.
+       (Bug#22194)
+
+2015-12-18  Martin Rudalics  <rudalics@gmx.at>
+
+       Don't have help functions call x-display-pixel-width/-height on ttys
+
+       * lisp/help.el (temp-buffer-max-height, temp-buffer-max-width):
+       Don't call x-display-pixel-width/-height on ttys.
+
+2015-12-17  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Use 'hg id' in vc-hg-previous-revision
+
+       * lisp/vc/vc-hg.el (vc-hg-previous-revision):
+       Use 'hg id' to retrieve it (bug#22032).
+
+2015-12-17  Alan Mackenzie  <acm@muc.de>
+
+       * lisp/follow.el (follow-sit-for): Remove (it's redundant).
+
+2015-12-17  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix a typo in the Emacs manual
+
+       * doc/emacs/trouble.texi (Sending Patches): Fix a typo.  Reported
+       by Lele Gaifax <lele@metapensiero.it>.  (Bug#22193)
+
+2015-12-17  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix parsing netrc entries with ports
+
+       * lisp/gnus/auth-source.el (auth-source-ensure-strings): Don't
+       make a list out of 't'.  (Bug#22188)
+
+       * test/automated/auth-source-tests.el
+       (auth-source-test-netrc-parse-entry): New test.
+
+2015-12-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix typo in Doug Lea malloc configure log
+
+       * configure.ac (emacs_cv_var_doug_lea_malloc):
+       Fix typo that confused the log output of 'configure'.
+
+2015-12-16  Nicolas Petton  <nicolas@petton.fr>
+
+       * etc/NEWS: Mention the new pcase patterns `seq' and `map'.
+
+2015-12-16  Alan Mackenzie  <acm@muc.de>
+
+       * etc/NEWS: Move entry on pcase to correct section
+
+       (Accidentally omitted from previous commit)
+
+2015-12-16  Alan Mackenzie  <acm@muc.de>
+
+       Add documentation for changes to Show Paren mode.
+
+       * lisp/paren.el (show-paren-highlight-openparen): Enhance doc string.
+
+       * doc/emacs/programs.texi (Matching): Add descriptions of some pertinent user
+       options, including the new show-paren-when-point-inside-paren and
+       show-paren-when-point-in-periphery.
+
+       * etc/NEWS (.. Specialized Modes ...): Add an entry for Show Paren mode.
+       Move an entry on pcase to the Lisp Changes section.
+
+2015-12-16  Eli Zaretskii  <eliz@gnu.org>
+
+       Document Eldoc changes
+
+       * doc/emacs/programs.texi (Lisp Doc): Document Global Eldoc mode.
+
+2015-12-16  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix invocation of Python and Guile interpreters from gdb-mi
+
+       * lisp/progmodes/gdb-mi.el (gdb-control-commands-regexp): Add
+       commands for interactive Python and Guile interpreters.
+       (gdb-send): Recognize various ways of exiting from Python and
+       Guile interpreters and returning to GDB.  For details, see
+       http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00693.html
+       and http://stackoverflow.com/questions/31514741.
+
+2015-12-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove attempt to use C11 threads
+
+       C11 threads are not needed for Emacs now, and their use is causing
+       hassles on FreeBSD 10.x.  Problem reported by Ashish SHUKLA in:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00648.html
+       * configure.ac: Do not check for C11 threads. Remove unnecessary
+       fiddling with CPPFLAGS when configuring pthreads.
+       * src/emacs-module.c (main_thread, check_main_thread)
+       (module_init): Do not worry about C11 threads.
+
+2015-12-15  Michael Albinus  <michael.albinus@gmx.de>
+
+       Set utf8 encoding with stty in Tramp
+
+       * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
+       Move up uname check.  Handle Mac OS X eol encoding.  Set utf8
+       encoding with stty.
+
+2015-12-15  Alan Mackenzie  <acm@muc.de>
+
+       Tidy up documentation associated with window groups.
+
+       * doc/lispref/windows.texi (Basic Windows): Add an @anchor for "Window
+       Groups".  Correct example function to `window-group-start'.
+       (Window Start and End, Textual scrolling): Point to the new anchor.  State
+       that (most of) the args in window group functions have the same meaning as for
+       the corresponding window primitives.
+
+       * doc/lispref/positions.texi (Screen Lines).  Same as above.
+
+2015-12-15  Michael Albinus  <michael.albinus@gmx.de>
+
+       Complete last commit
+
+       * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
+       Move uname check up.  Handle Mac OS X eol encoding.
+
+2015-12-15  Michael Albinus  <michael.albinus@gmx.de>
+
+       Handle Mac OS X eol encoding in Tramp
+
+       * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
+       Handle Mac OS X eol encoding.
+
+2015-12-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       Fix variable name typo in compute_tip_xy
+
+       * src/w32fns.c (compute_tip_xy):
+       * src/xfns.c (compute_tip_xy): Modify *root_x instead of *root_y
+       when `right' is integer.
+
+2015-12-14  foudfou  <foudil.newbie+git@gmail.com>
+
+       * lisp/ibuffer.el: Add ability to (un-)mark or delete buffers in the region.
+
+2015-12-14  Tassilo Horn  <tsdh@gnu.org>
+
+       Revert "Fix rx matcher overflow without limiting"
+
+       This reverts commit fe27e037663d36be3e5741c2ce86ab4ee8017db1.
+
+2015-12-14  Alan Mackenzie  <acm@muc.de>
+
+       Ispell: Bind isearch-regexp-function to nil around call to isearch..-new-loop
+
+       * lisp/textmodes/ispell.el (ispell-highlight-spelling-error-overlay): bind
+       isearch-regexp-function to nil around call to isearch-lazy-highligh-new-loop.
+
+2015-12-14  Tassilo Horn  <tsdh@gnu.org>
+
+       Fix rx matcher overflow without limiting
+
+       * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Improve last
+       change to the regexp without imposing a limit on the length of the
+       options.
+
+2015-12-14  Alan Mackenzie  <acm@muc.de>
+
+       Enhance ispell-skip-region-alist by generating part of it at runtime.
+
+       * lisp/textmodes/ispell.el (ispell--\\w-filter, ispell--make-\\w-expression)
+       (ispell--make-filename-or-URL-re): New functions which generate a regexp.
+       (ispell-skip-region-alist): Remove the bit that matches a filename/URL, etc.
+       (ispell-begin-skip-region-regexp, ispell-skip-region-list, ispell-message):
+       Include the result of ispell--make-filename-or-URL-re in regexps.
+
+2015-12-14  Glenn Morris  <rgm@gnu.org>
+
+       * build-aux/gitlog-to-emacslog: Ignore more pointless merge commits.
+
+2015-12-14  Alan Mackenzie  <acm@muc.de>
+
+       Replace GROUP argument in six window primitives by new functions.
+
+       * doc/lispref/windows.texi (Window Start and End, Textual Scrolling)
+       * doc/lispref/positions.texi (Screen Lines): Remove optional GROUP argument
+       from description of six window functions.  Add in description of new functions
+       window-group-start, window-group-end, set-window-group-start,
+       pos-visible-in-window-group-p, recenter-group and move-to-window-group-line,
+       together with the six variables indirecting to the pertinent group
+       functions.
+
+       * src/window.c
+       * src/keyboard.c: Revert the commit from 2015-11-11 12:02:48, in so far as it
+       applies to these two files, which added the GROUP argument to six window
+       primitives.
+
+       * lisp/follow.el (follow-mode): Use updated variable names for the indirected
+       functions.
+
+       * lisp/isearch.el (isearch-update, isearch-done, isearch-string-out-of-window)
+       (isearch-back-into-window, isearch-lazy-highlight-new-loop)
+       (isearch-lazy-highlight-search, isearch-lazy-highlight-update): Replace calls
+       to window primitives (e.g. window-start) with a GROUP argument by calls to
+       new functions (e.g. window-group-start).
+
+       * lisp/ispell.el (ispell-command-loop): Replace call to
+       pos-visible-in-window-p with pos-visible-in-window-group-p.
+
+       * lisp/window.el (window-group-start, window-group-end)
+       (set-window-group-start, recenter-group, pos-visible-in-window-group-p)
+       (selected-window-group, move-to-window-group-line): New functions.
+       (window-group-start-function, window-group-end-function)
+       (set-window-group-start-function, recenter-group-function)
+       (pos-visible-in-window-group-p-function, selected-window-group-function)
+       (move-to-window-group-line-function): New variables.
+
+2015-12-14  Vitorio Miguel  <vdrbandeiras@gmail.com>  (tiny change)
+
+       * etc/tutorials/TUTORIAL.pt_BR: Fix a typo.  (Bug#22165)
+
+2015-12-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25
+
+2015-12-13  Tassilo Horn  <tsdh@gnu.org>
+
+       Improve regex to not trigger stack overflow
+
+       * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Improve regex in
+       order not to trigger a stack overflow in regex matcher with unbalanced
+       brackets (bug#22146).
+
+2015-12-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix visiting files with raw-text
+
+       * src/fileio.c (Finsert_file_contents): Fix setting buffer unibyte
+       when some stuff was actually read.  (Bug#22162)
+
+2015-12-13  Tassilo Horn  <tsdh@gnu.org>
+
+       Fix regex matching keyval labels
+
+       * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Fix regexp
+       matching keyval labels.
+
+2015-12-13  Michael Albinus  <michael.albinus@gmx.de>
+
+       * lisp/ido.el (ido-file-name-all-completions-1): Do not raise an error
+
+       ... in case of Tramp.  (Bug#20821)
+
+2015-12-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix performance regression with gcc -O0
+
+       This fixes the smaller performance hit that I noted in:
+       https://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00357.html
+       * src/alloc.c (macro_XPNTR_OR_SYMBOL_OFFSET, macro_XPNTR):
+       * src/puresize.h (puresize_h_PURE_P)
+       (puresize_h_CHECK_IMPURE):
+       New macros, with the old contents of the functions.
+       * src/alloc.c (XPNTR_OR_SYMBOL_OFFSET, XPNTR):
+       * src/puresize.h (PURE_P, CHECK_IMPURE):
+       Use the new macros.  Also macros, if DEFINE_KEY_OPS_AS_MACROS.
+       * src/conf_post.h (ATTRIBUTE_UNUSED):
+       * src/lisp.h (DEFINE_KEY_OPS_AS_MACROS): New macros.
+
+2015-12-12  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/package.el (package-unpack): Security check
+
+       Check that we received the package we were offered.
+
+2015-12-12  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/package.el (package--compile): Don't activate
+
+       `package-unpack' takes care of all activations now (other than
+       `package-initialize).  `package--compile' now only compiles.
+
+2015-12-12  Eli Zaretskii  <eliz@gnu.org>
+
+       Document the new bindings of <UP> and <DOWN> in the minibuffer
+
+       * doc/emacs/mini.texi (Minibuffer History): Describe the new
+       bindings of <UP> and <DOWN> in the minibuffer.
+
+2015-12-12  Eli Zaretskii  <eliz@gnu.org>
+
+       Document new features of Ido
+
+       * doc/misc/ido.texi (Misc): Document 'C-S-b'.
+
+2015-12-12  Martin Rudalics  <rudalics@gmx.at>
+
+       Fix frame height calculations with added menu bar on Windows (Bug#22105)
+
+       * doc/lispref/frames.texi (Parameter Access): Mention pitfalls
+       when simultaneously specifying multiple parameters for
+       `modify-frame-parameters' that all may change the frame's size.
+       * src/w32fns.c (x_set_menu_bar_lines): Don't set
+       windows_or_buffers_changed here.
+       (my_create_tip_window, Fx_show_tip): Call AdjustWindowRect
+       with third argument false.
+       * src/w32menu.c (set_frame_menubar): Set
+       windows_or_buffers_changed here.
+       * src/w32term.c (x_set_window_size): Determine third argument of
+       AdjustWindowRect from whether the frame has a menu bar and not
+       from whether it wants one.
+
+2015-12-12  Eli Zaretskii  <eliz@gnu.org>
+
+       Document the change in interactive shell mode
+
+       * doc/emacs/misc.texi (Interactive Shell): Document that the
+       '*shell*' buffer by default displays in a new window.
+
+2015-12-12  Eli Zaretskii  <eliz@gnu.org>
+
+       Document new features of package.el
+
+       * doc/emacs/package.texi (Package Menu): Document the 'external'
+       status and the new menu commands.
+       (Package Installation): Document archive priorities.
+
+       * lisp/emacs-lisp/package.el (package-archive-priorities): Doc fix.
+       (package-menu-hide-low-priority): Doc fix.
+
+2015-12-12  Eli Zaretskii  <eliz@gnu.org>
+
+       Update and document new features of xterm support
+
+       * doc/emacs/frames.texi (Text-Only Mouse): Document that
+       track-mouse is supported by newer xterm versions.
+
+2015-12-12  Eli Zaretskii  <eliz@gnu.org>
+
+       Document new features of Prettify Mode
+
+       * doc/emacs/programs.texi (Misc for Programs): Document
+       'prettify-symbols-compose-predicate' and
+       'prettify-symbols-unprettify-at-point'.
+
+       * lisp/progmodes/prog-mode.el (prettify-symbols-alist)
+       (prettify-symbols-default-compose-p)
+       (prettify-symbols-compose-predicate)
+       (prettify-symbols--compose-symbol): Doc fixes.
+
+2015-12-12  Eli Zaretskii  <eliz@gnu.org>
+
+       Document multi-mode indentation facilities
+
+       * doc/lispref/text.texi (Mode-Specific Indent): Document
+       'prog-indentation-context', 'prog-first-column', and 'prog-widen'.
+
+       * lisp/progmodes/prog-mode.el (prog-indentation-context)
+       (prog-widen): Doc fixes.
+
+2015-12-12  Eli Zaretskii  <eliz@gnu.org>
+
+       Document 'vc-refresh-state'
+
+       * doc/emacs/maintaining.texi (Version Control): Document
+       'vc-refresh-state'.
+
+       * lisp/vc/vc-hooks.el (vc-refresh-state): Doc fix.
+
+2015-12-12  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix echo for "C-u"
+
+       * src/keyboard.c (command_loop_1): Undo last change.  It caused
+       duplicate echo of C-u.  (Bug#22107)
+
+2015-12-11  Eli Zaretskii  <eliz@gnu.org>
+
+       Avoid errors when creating files under SVN in new directory
+
+       * lisp/vc/vc-svn.el (vc-svn-registered): Use
+       file-accessible-directory-p, to avoid cd'ing to a non-existing
+       directory, which signals an error on some systems.  (Bug#21984)
+       (vc-svn-checkin): Call log-edit-extract-headers with 2 arguments.
+       Use declare-function to avoid byte-compiler warnings.
+
+2015-12-11  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve Lua support in etags
+
+       * lib-src/etags.c (Lua_functions): Skip spaces before looking for
+       "function".
+
+       * etc/NEWS: Mention improved Lua support by 'etags'.
+
+       * test/etags/lua-src/test.lua (test): Add tests for indented
+       function definitions.
+       * test/etags/ETAGS.good_1:
+       * test/etags/ETAGS.good_2:
+       * test/etags/ETAGS.good_3:
+       * test/etags/ETAGS.good_4:
+       * test/etags/ETAGS.good_5:
+       * test/etags/ETAGS.good_6:
+       * test/etags/CTAGS.good: Adapt to the modified Lua tests.
+
+2015-12-11  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix 'this-command-keys' wrt prefix argument
+
+       * src/keyboard.c (command_loop_1): Restore the feature whereby C-u
+       was part of this-command-keys, but not of this-single-command-keys.
+       (Bug#22107)
+
+       * lisp/simple.el (internal-echo-keystrokes-prefix): Add
+       commentary about the function's return value.
+
+2015-12-11  Eli Zaretskii  <eliz@gnu.org>
+
+       * lisp/files.el (load-library): Doc fix.  (Bug#22140)
+
+2015-12-11  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve and document Ruby support in 'etags'
+
+       * lib-src/etags.c (Ruby_suffixes): Add ".ruby".
+       (Ruby_functions): Support "module" and overloaded operators.
+       (Ruby_help): Mention "module".
+
+       * test/etags/ruby-src/test.rb:
+       * test/etags/ruby-src/test1.ruby: New files.
+       * test/etags/Makefile (RBSRC): New tests.
+       (SRCS): Add ${RBSRC}.
+       * test/etags/ETAGS.good_1:
+       * test/etags/ETAGS.good_2:
+       * test/etags/ETAGS.good_3:
+       * test/etags/ETAGS.good_4:
+       * test/etags/ETAGS.good_5:
+       * test/etags/ETAGS.good_6:
+       * test/etags/CTAGS.good: Adapt to the new Ruby tests.
+
+       * doc/man/etags.1: Mention Ruby support.
+       * etc/NEWS: Mention Ruby support.
+
+2015-12-11  Xi Lu  <lx@shellcodes.org>
+
+       Initial support for Ruby in 'etags'
+
+       * lib-src/etags.c <Ruby_suffixes>: New variable.
+       (lang_names): Add an entry for Ruby.
+       (Ruby_functions): New function.  (Bug#22116)
+
+2015-12-11  Eli Zaretskii  <eliz@gnu.org>
+
+       Clarify documentation of 'modify-frame-parameters'
+
+       * doc/lispref/frames.texi (Parameter Access): Clarify what "ignored
+       PARMs" mean for 'modify-frame-parameters'.
+
+       * src/frame.c (Fmodify_frame_parameters): Clarify what "ignored
+       PARMs" mean for this function.  (Bug#22104)
+
+2015-12-11  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix setting buffer unibyte when reading from a device
+
+       * src/fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
+       to make a (possibly non-empty) buffer unibyte.  (Bug#22096)
+
+2015-12-11  Eli Zaretskii  <eliz@gnu.org>
+
+       Clarify documentation of 'values'
+
+       * doc/lispref/eval.texi (Eval): Clarify that 'values' are not
+       updated by any evaluation commands in 'lisp-interaction-mode'.
+       (Bug#22056)
+
+2015-12-11  Anders Lindgren  <andlind@gmail.com>
+
+       Fixed subversion vc error when opening file in new directory (bug#21984).
+
+       * lisp/vc/vc-svn.el (vc-svn-registered): Check if directory exists.
+
+2015-12-09  Eli Zaretskii  <eliz@gnu.org>
+
+       Yet another fix for when point ends up in invisible text
+
+       * src/xdisp.c (redisplay_window): When someone forced
+       window-start, and honoring that failed to show the cursor, try
+       moving out of invisible text, before falling back to the middle of
+       the window.  (Bug#22098)
+
+2015-12-09  Michael Albinus  <michael.albinus@gmx.de>
+
+       Fix error in Tramp perl script for cygwin
+
+       * lisp/net/tramp-sh.el (tramp-perl-file-truename): Do not raise an
+       error if file doesn't exist.
+
+2015-12-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       Remove font workaround for limited outdated versions
+
+       * src/macfont.m (mac_font_descriptor_get_adjusted_weight): Remove
+       workaround for HiraginoSans-W7 on OS X 10.11 and 10.11.1.
+
+2015-12-09  Anders Lindgren  <andlind@gmail.com>
+
+       Don't add "." to load path (bug#21104)
+
+       When configured with --enable-locallisppath=no, which is the
+       default for OS X, the load-path incorrectly was populated with ".".
+
+       * src/lread.c (init_lread): Don't call `decode_env_path' when
+       PATH_SITELOADSEARCH is empty.
+
+2015-12-08  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/package.el (package--with-response-buffer):
+
+       Search for the blank-line in the right buffer.
+
+2015-12-08  Glenn Morris  <rgm@gnu.org>
+
+       * test/automated/simple-test.el (undo-auto-boundary-timer): Update
+       for recent change.
+
+2015-12-08  Glenn Morris  <rgm@gnu.org>
+
+       Fix some display-warning usage.
+
+       * lisp/files.el (hack-local-variables, hack-dir-local-variables):
+       * lisp/calendar/diary-lib.el (diary-include-files, diary-sexp-entry):
+       * lisp/calendar/holidays.el (calendar-holiday-list):
+       * lisp/mail/rmailout.el (rmail-output-read-file-name):
+       Fix display-warning usage.
+
+2015-12-07  Glenn Morris  <rgm@gnu.org>
+
+       * lisp/calendar/cal-html.el: Require diary-lib.
+
+       (cal-html-list-diary-entries): Handle no diary.  (Bug#21994)
+
+2015-12-07  Thomas Fitzsimmons  <fitzsim@fitzsim.org>
+
+       Add Obsolete-since header to eudcb-ph.el
+
+       * eudcb-ph.el: Add Obsolete-since header.
+
+2015-12-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Spelling fixes
+
+       * doc/misc/calc.texi (Predefined Units): Use the bland modern
+       scientific style for spelling the units “ampere” and
+       “angstrom” rather than the older style “Ampere” and
+       “Ångstrom”.  The latter spelling was wrong anyway (it should
+       have been “Ångström”).
+       * lisp/emacs-lisp/ert.el (ert--explain-equal-rec):
+       Fix misspelling of ‘atom’ in code.
+
+2015-12-07  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve documentation of kill commands
+
+       * lisp/simple.el (region-extract-function, delete-backward-char)
+       (delete-forward-char, kill-region, copy-region-as-kill)
+       (kill-ring-save): Better document the optional argument REGION in
+       the doc strings.  Mention in the doc strings that text put in the
+       kill-ring can be filtered by 'filter-buffer-substring'.
+
+       * doc/lispref/text.texi (Kill Functions): Mention that functions
+       described in this subsection can filter text they put in the
+       kill-ring.  Add a cross-reference to "Buffer Contents" and an
+       index entry.  Document the optional argument 'region' and its
+       effect.
+       (Bug#21315)
+
+2015-12-07  Alan Mackenzie  <acm@muc.de>
+
+       Further progress making Isearch, Ispell, Replace work with Follow Mode.
+
+       * lisp/follow.el: (follow-mode): Remove references to sit*-for-function, which
+       no longer exists.  Add follow-post-command-hook to  three special purpose
+       hooks at setup, and remove them at tear down.
+
+       * lisp/isearch.el: (isearch-update): invoke isearch-update-post-hook before
+       isearch-lazy-highlight-new-loop.
+       (isearch-lazy-highlight-new-loop): Restore this function to what it previously
+       was, merging the functionality of isearch-lazy-highlight-maybe-new-loop into
+       it.
+       (isearch-lazy-highlight-maybe-new-loop): function removed.
+
+       * lisp/replace.el: (replace-update-post-hook): New hook variable.
+       (perform-replace): Add second (nil) argument to looking-back.  Invoke
+       replace-update-post-hook before calling replace-highlight.
+
+       * lisp/textmodes/ispell.el: (ispell-update-post-hook): New hook variable.
+       (ispell-command-loop): invoke ispell-update-post-hook.  Add GROUP argument to
+       call of pos-visible-in-window-p.
+       (ispell-display-buffer): Place *Choices* window at the top of the last window
+       in a window group.
+
+2015-12-07  Alan Mackenzie  <acm@muc.de>
+
+       Amend doc of `mapconcat': it can take sequences, not merely strings.
+
+       * doc/lispref/functions.texi (Mapping Functions): Amend the doc of `mapconcat'
+       to say that SEPARATOR and the results from FUNCTION may be any character
+       sequences, not just strings.  Add an @xref to "Sequences Arrays Vectors".
+
+2015-12-07  Michael Albinus  <michael.albinus@gmx.de>
+
+       Fix an utf8 problem for Tramp on BSD
+
+       * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
+       Make lax check for utf8.
+       (tramp-get-remote-locale): Add "en_US.UTF-8" as candidate.
+
+2015-12-06  Thomas Fitzsimmons  <fitzsim@fitzsim.org>
+
+       Make eudcb-ph.el obsolete
+
+       * doc/misc/eudc.texi: Bump version to 1.40.0.
+       Remove PH/QI sections and mentions.
+       * lisp/obsolete/eudcb-ph.el: Make obsolete.
+       * lisp/net/eudc-vars.el (eudc-known-protocols): Remove ph.
+       (eudc-ph-bbdb-conversion-alist): Make obsolete.
+       * etc/NEWS: Mention this.  (Bug#21191)
+
+2015-12-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove overenthusiastic eassert
+
+       * src/lisp.h (XSYMBOL): Remove eassert incorrectly added in
+       previous change.  It breaks on MS-Windows --with-wide-int.
+       Problem reported by Eli Zaretskii in:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00275.html
+
+2015-12-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Pacify gcc -Wparentheses
+
+       * src/xdisp.c (row_containing_pos): Reparenthesize.
+
+2015-12-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port mod-test to 32-bit Emacs --without-wide-int
+
+       * modules/mod-test/test.el (mod-test-sum-test):
+       Bring back the 2**29 tests, but port them to 32-bit Emacs
+       --without-wide-int.
+
+2015-12-06  Michael Albinus  <michael.albinus@gmx.de>
+
+       Fix minor Tramp problems found on BSD
+
+       * lisp/net/tramp-sh.el (tramp-perl-file-truename): Do not append
+       trailing slash.  Quote apostrophes.
+       (tramp-sh-handle-file-truename): Do not append trailing slash in
+       the "ls" case.
+       (tramp-get-ls-command-with-w-option): New defun.
+       (tramp-do-file-attributes-with-ls)
+       (tramp-do-directory-files-and-attributes-with-stat): Use it.
+
+       * test/automated/tramp-tests.el
+       (tramp-test31-special-characters-with-perl)
+       (tramp-test31-special-characters-with-ls)
+       (tramp-test32-utf8-with-perl, tramp-test32-utf8-with-ls):
+       Suppress also readlink.
+
+2015-12-06  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix cursor display when invisible text is at line beginning
+
+       * src/xdisp.c (redisplay_window): When scrolling fails to show
+       point, prefer using the desired matrix if possible for finding the
+       fallback glyph row for displaying the cursor.  (Bug#22098)
+       (row_containing_pos): Exit the loop as soon as we hit the first
+       disabled glyph row.  Otherwise we risk accessing garbled data and
+       departing to the no-no land.
+
+2015-12-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Improve module interface when WIDE_EMACS_INT
+
+       * src/emacs-module.c (plain_values): New constant.
+       (module_nil): Now a constant.
+       (Finternal_module_call, value_to_lisp_bits, lisp_to_value_bits)
+       (syms_of_module): Use if, not #ifdef, so that both sides are
+       checked at compile-time, and so that GCC doesn’t complain
+       about an unused var in the typical case.  Also, depend on
+       plain_values, not on WIDE_EMACS_INT; the code shouldn’t assume
+       that WIDE_EMACS_INT implies !USE_LSB_TAG.
+       (value_to_lisp_bits, lisp_to_value_bits): New functions.
+       Sign-extend integers rather than zero-extending them, as small
+       negative integers are more likely.
+       (value_to_lisp, lisp_to_value): Rewrite in terms of the new *_bits
+       functions.
+       (HAVE_STRUCT_ATTRIBUTE_ALIGNED): Define to 0 if not already defined.
+       (mark_modules): Remove.  All uses removed.
+       (lisp_to_value): Don’t assume Fcons returns a pointer aligned
+       to GCALIGNMENT.
+       (syms_of_module): Check that module_nil converts to Qnil.
+       * src/lisp.h (lisp_h_XSYMBOL, XSYMBOL): Use signed conversion, since
+       we prefer signed to unsigned when either will do.
+       (TAG_PTR): Sign-extend pointers when USE_LSB_TAG, as this is
+       a bit better for emacs-module.c.
+
+2015-12-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port mod-test to x86-64 GNU/Linux running 32-bit
+
+       * modules/mod-test/test.el (mod-test-sum-test):
+       Don’t attempt to match descriptions to operating systems.
+       It didn’t work on Fedora x86-64 running a 32-bit executable,
+       and it’s not worth the trouble anyway.
+       Port to 32-bit platforms by removing an assumption about
+       fixnum widths.
+
+2015-12-06  Michael Albinus  <michael.albinus@gmx.de>
+
+       Fix auto-revert-tests.el when filenotify isn't used
+
+       * test/automated/auto-revert-tests.el (auto-revert--wait-for-revert):
+       Make it working also when filenotify isn't used.
+
+2015-12-05  Juri Linkov  <juri@linkov.net>
+
+       * lisp/textmodes/ispell.el (ispell-highlight-spelling-error-overlay):
+
+       Let-bind isearch-regexp-function to nil.  (Bug#22097)
+
+2015-12-05  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/package.el: Don't install bad signatures (bug#22089)
+
+       (package--with-response-buffer): NOERROR and ERROR-FORM only
+       handle connection errors.
+       (bad-signature): New error type.
+       (package--check-signature-content): Use it.
+       (package--check-signature): Properly distinguish connection errors
+       from bad-signature errors.  Do the check for
+       `package-check-signature' `allow-unsigned' here instead of forcing
+       the callbacks to do it.  Add a new argument, UNWIND.
+       (package--download-one-archive, package-install-from-archive):
+       Update usage of `package--check-signature'.
+
+2015-12-05  Ulf Jasper  <ulf.jasper@web.de>
+
+       Fix Bug#22092.
+
+       * lisp/calendar/icalendar.el (icalendar--get-unfolded-buffer):
+         Clean up inconsistent line endings. (Bug#22092)
+         (icalendar--clean-up-line-endings): New.
+       * test/automated/icalendar-tests.el (icalendar-real-world): Add test
+         for Bug#22092.
+
+2015-12-05  Eli Zaretskii  <eliz@gnu.org>
+
+       Document 'bookmark-set-no-overwrite'
+
+       * doc/emacs/regs.texi (Bookmarks): Document the new command
+       'bookmark-set-no-overwrite' and its keybinding.
+
+2015-12-05  Eli Zaretskii  <eliz@gnu.org>
+
+       Document new binding of 'mouse-buffer-menu'
+
+       * doc/emacs/buffers.texi (Buffer Menus): 'mouse-buffer-menu' is
+       now also on C-F10.
+
+2015-12-05  Eli Zaretskii  <eliz@gnu.org>
+
+       Initial documentation of dynamic modules
+
+       * doc/lispref/loading.texi (Dynamic Modules): New section with
+       initial documentation for dynamic modules.
+       * doc/lispref/elisp.texi (Top): Add "Dynamic Modules" to the
+       detailed menu
+
+       * etc/NEWS: Fix typos in dynamic modules' entry.
+
+2015-12-05  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       Remove copyright statements from trivial test files
+
+2015-12-05  Eli Zaretskii  <eliz@gnu.org>
+
+       Add "Preliminaries" section to etc/DEBUG
+
+       * etc/DEBUG: Add the "Preliminaries" section for GDB beginners.
+       Most of the content was suggested by Phillip Lord
+       <phillip.lord@russet.org.uk>.  Remove the section about debugging
+       with the Visual Studio, as building Emacs with the Microsoft
+       compilers is no longer supported.  Minor fixes in some other
+       sections.
+
+2015-12-05  Alex Dunn  <dunn.alex@gmail.com>  (tiny change)
+
+       Improve parsing of version strings
+
+       * lisp/subr.el (version-regexp-alist): Allow "." as priority separator
+       (version-to-list): More helpful error messages.
+       (version-to-list): ".5" is valid (update docstring).  Make
+       "22.8X3" invalid, as the doc string says.
+
+       * test/automated/subr-tests.el (ert-test-version-parsing): New
+       tests for version string processing.
+
+2015-12-05  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix documentation of 'undo' changes
+
+       * doc/lispref/text.texi (Undo): Minor wording changes.  Use US
+       English conventions for spelling and whitespace between sentences.
+
+       * etc/NEWS: Fix wording and spelling of undo-related entries.
+       Mark them as documented.
+
+2015-12-04  Glenn Morris  <rgm@gnu.org>
+
+       * lisp/net/net-utils.el: Small improvements.
+
+       (net-utils--executable-find-sbin): New function.
+       (ifconfig-program): Check sbin directories.
+       Fallback to "ip".  (Bug#22091)
+       (ifconfig-program-options): Check the actual program in use.
+       (arp-program): Check sbin directories.
+
+2015-12-04  (tiny change) Arash Esbati  <esbati@gmx.de>  (tiny change)
+
+       Fix wrong-type-argument integer-or-marker-p nil error
+
+       * lisp/textmodes/reftex-auc.el (reftex-what-index-tag):
+       Fix (wrong-type-argument integer-or-marker-p nil) error (bug#22077).
+
+2015-12-04  Alan Mackenzie  <acm@muc.de>
+
+       Merge branch 'scratch/follow' of /home/acm/emacs/emacs.git/emacs-25 into scratch/follow
+
+       Merge necessitated by a rebase operation.
+
+2015-12-04  Alan Mackenzie  <acm@muc.de>
+
+       lisp/isearch.el: Eliminate macro isearch-call-message, replacing with funcall.
+
+2015-12-04  Alan Mackenzie  <acm@muc.de>
+
+       First commit to scratch/follow.  Make Isearch work with Follow Mode, etc.
+
+       doc/lispref/window.texi (Basic Windows): Add paragraph defining "Group of
+       Windows" and new @defun selected-window-group.
+       (Window Start and End): Describe new &optional parameter GROUP and
+       ...-group-function for window-start, window-end, set-window-start, and
+       pos-visible-in-window-p.
+       (Textual Scrolling) Describe the same for recenter.
+       doc/lispref/positions.texi (Screen Lines): Describe the same for
+       move-to-window-line.
+
+       src/window.c (Fwindow_start, Fwindow_end, Fset_window_start)
+       (Fpos_visible_in_window_p, Frecenter, Fmove_to_window_line): To each, add ar
+       new optional parameter "group".  At the beginning of each, check whether the
+       corresponding ...-group-function is set to a function, and if so execute this
+       function in place of the normal processing.
+       (syms_of_window): Define symbols for the six new variables below.
+       (window-start-group-function, window-end-group-function)
+       (set-window-start-group-function, recenter-group-function)
+       (pos-visible-in-window-p-group-function, move-to-window-line-group-function):
+       New permanent local buffer local variables.
+       src/keyboard.c (Fposn_at_point): Add extra parameter in call to
+       Fpos_visible_in_window_p.
+
+       lisp/window.el (selected-window-group-function): New permanent local buffer
+       local variable.
+       (selected-window-group): New function.
+
+       lisp/follow.el (follow-mode): Set the ...-group-function variables at mode
+       enable, kill them at mode disable.  Add/remove follow-after-change to/from
+       after-change-functions.
+       (follow-start-end-invalid): New variable.
+       (follow-redisplay): Manipulate follow-start-end-invalid.
+       (follow-after-change, follow-window-start, follow-window-end)
+       (follow-set-window-start, follow-pos-visible-in-window-p)
+       (follow-move-to-window-line, follow-sit-for): New functions.
+
+       lisp/isearch.el (isearch-call-message): New macro.
+       (isearch-update, with-isearch-suspended, isearch-del-char)
+       (isearch-search-and-update, isearch-ring-adjust): Invoke above new macro.
+       (with-isearch-suspended): Rearrange code such that isearch-call-message is
+       invoked before point is moved.
+       (isearch-message): Add comment about where point must be at function call.
+       (isearch-search): Remove call to isearch-message.
+       (isearch-lazy-highlight-window-group): New variable.
+       (isearch-lazy-highlight-new-loop): Unconditionally start idle timer.  Move
+       the battery of tests to ...
+       (isearch-lazy-highlight-maybe-new-loop): New function, started by idle timer.
+       Note: (sit-for 0) is still called.
+       (isearch-lazy-highlight-update): Check membership of
+       isearch-lazy-highlight-window-group.  Don't set the `window' overlay
+       property.
+       (isearch-update, isearch-done, isearch-string-out-of-window)
+       (isearch-back-into-window, isearch-lazy-highlight-maybe-new-loop)
+       (isearch-lazy-highlight-search, isearch-lazy-highlight-update)
+       (isearch-lazy-highlight-update): Call the six amended primitives (see
+       src/window.c above) with the new `group' argument set to t, to cooperate
+       with Follow Mode.
+
+2015-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp/emacs-lisp/ert.el: Prefer pcase over cl-typecase
+
+       * lisp/emacs-lisp/ert.el (ert--should-error-handle-error)
+       (ert--explain-format-atom, ert--explain-equal-rec)
+       (ert--print-backtrace, ert-test-result-type-p, ert-select-tests)
+       (ert--insert-human-readable-selector): Prefer pcase over cl-typecase.
+
+2015-12-04  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/character-fold.el: Remove special case-folding support
+
+       (character-fold-to-regexp): Remove special code for
+       case-folding.  Char-fold search still respects the
+       `case-fold-search' variable (i.e., f matches F).  This only
+       removes the code that was added to ensure that f also matched
+       all chars that F matched.  For instance, after this commit, f
+       no longer matches 𝔽.
+
+       This was necessary because the logic created a regexp with
+       2^(length of the string) redundant paths.  So, when a very
+       long string "almost" matched, Emacs took a very long time to
+       figure out that it didn't.  This became particularly relevant
+       because isearch's lazy-highlight does a search bounded by (1-
+       match-end) (which, in most circumstances, is a search that
+       almost matches).  A recipe for this can be found in bug#22090.
+
+2015-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp/emacs-lisp/cl-macs.el (character): Can't be negative
+
+       Fixes (bug#21701)
+
+2015-12-04  Daiki Ueno  <ueno@gnu.org>
+
+       lisp/gnus/qp.el: Don't replace "from " at bol
+
+       * lisp/gnus/qp.el (quoted-printable-encode-region): Bind `case-fold-search'
+       to nil when looking for "^From ".  Problem reported by Simon Josefsson.
+
+2015-12-03  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Externalize some symbols in undo-auto
+
+        * doc/lispref/text.texi: Update symbols.
+        * lisp/simple.el (undo-auto--amalgamate,
+          undo-auto--current-boundary-timer): Make symbols public.
+        * src/cmds.c (Fself_insert_command,Fdelete_char): Call
+          updated symbol.
+
+2015-12-03  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp/emacs-lisp/smie.el (smie-next-sexp): Fix BOB "token"
+
+2015-12-03  Michael Albinus  <michael.albinus@gmx.de>
+
+       Some error message improvements in tramp-sh.el
+
+       * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
+       Suppress error messages for "mesg" and "biff" calls.
+       (tramp-get-remote-path): Ignore errors when expanding
+       `tramp-own-remote-path'.  Raise a warning instead.
+
+2015-12-03  Eli Zaretskii  <eliz@gnu.org>
+
+       Document 'nacl' value for 'system-type'
+
+       * doc/lispref/os.texi (System Environment): Document the 'nacl'
+       value of 'system-type'.
+
+2015-12-03  Eli Zaretskii  <eliz@gnu.org>
+
+       Document 'window-max-chars-per-line'
+
+       * doc/lispref/windows.texi (Window Sizes): Document
+       'window-max-chars-per-line'.
+
+2015-12-03  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       Fix some file headers for the purpose of `package--builtins'
+
+       * lisp/emacs-lisp/cl-preloaded.el
+       * lisp/emacs-lisp/eieio-compat.el
+       * lisp/net/sasl-scram-rfc.el: Add a "Package:" header
+
+       * lisp/ielm.el: Fix summary line.
+
+2015-12-03  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/package.el (package-unpack): Load before compiling
+
+       Reload any previously loaded package files before compiling
+       the package (also reload the same files after compiling).
+       This ensures that we have the most recent definitions during
+       compilation, and avoids generating bad elc files when a macro
+       changes and it is used in a different file from the one it's
+       defined in.
+
+2015-12-03  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/package.el: Refactor package activation code
+
+       (package-activate): Move code that activates dependencies into
+       package-activate-1.
+       (package--load-files-for-activation): New function.
+       (package-activate-1): Add code for (optionally) activating
+       dependencies, and move file-loading code into
+       `package--load-files-for-activation'.
+
+2015-12-03  Eli Zaretskii  <eliz@gnu.org>
+
+       Document new font-related functionality
+
+       * doc/lispref/display.texi (Low-Level Font): Document
+       'default-font-width', 'default-font-height', 'window-font-width',
+       and 'window-font-height'.
+
+       * etc/NEWS: Move entries for 'default-font-width',
+       'default-font-height', 'window-font-width', and 'window-font-height'
+       to their place and mark them documented.
+
+2015-12-03  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix documentation and implementation of 'directory-name-p'
+
+       * lisp/files.el (directory-name-p): Modify to recognize
+       backslashes on MS-Windows and MS-DOS.  Adjust the doc string
+       accordingly.  Use '=', not char-equal, for comparison, as
+       letter-case cannot possibly be an issue here.
+
+       * doc/lispref/files.texi (Directory Names): Move the documentation
+       of directory-name-p here from "Relative File Names".  Update the
+       description per the changes in implementation.
+
+       * etc/NEWS: Move the entry for 'directory-name-p' to its proper
+       place and mark it documented.
+
+2015-12-02  Eli Zaretskii  <eliz@gnu.org>
+
+       Minor copyedit in Emacs manual
+
+       * doc/emacs/search.texi (Lax Search): Make wording about character
+       folding by default less definitive.  (Bug#22043)
+
+2015-12-02  Eli Zaretskii  <eliz@gnu.org>
+
+       More emacs-module.c fixes for wide ints
+
+       * src/emacs-module.c (value_to_lisp) [WIDE_EMACS_INT]: Use
+       unsigned data types to manipulate pointers, to avoid sign
+       extension coming after us with a vengeance.
+
+       * modules/mod-test/test.el (mod-test-sum-test): Add tests for
+       Emacs with wide ints that verify integer values near the critical
+       value that requires us to switch to a cons cell.
+
+2015-12-02  Stephen Leake  <stephen_leake@stephe-leake.org>
+
+       Fix bug#22069 in cl-generic.el
+
+       * lisp/emacs-lisp/cl-generic.el (cl-no-method): Remove %S; this string is
+       not run thru `format'.
+
+2015-12-01  Dmitry Gutov  <dgutov@yandex.ru>
+
+       APPEND etags--xref-backend to xref-backend-functions
+
+       * lisp/progmodes/xref.el (xref-backend-functions):
+       Use APPEND when adding the default element
+       (http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00061.html).
+
+2015-12-01  Eli Zaretskii  <eliz@gnu.org>
+
+       More accurate documentation of lax whitespace matching
+
+       * lisp/isearch.el (isearch-forward-word, isearch-forward-symbol)
+       (word-search-backward, word-search-forward)
+       (word-search-backward-lax, word-search-forward-lax): Mention in
+       doc strings that toggling lax whitespace matching has no effect on
+       these commands.
+
+       * doc/emacs/search.texi (Word Search, Symbol Search): Clarify that
+       lax whitespace matching has no effect on these commands.
+
+2015-12-01  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix emacs-module.c for wide ints
+
+       * src/emacs-module.c (lisp_to_value): Compare the produced value
+       with the original Lisp object, not with the one potentially
+       converted into a Lisp_Cons.  Fixes assertion violations when
+       working with integers larger than fit into a 32-bit value.
+
+       * modules/mod-test/test.el (mod-test-sum-test): Add tests for
+       large integers, to test --with-wide-int.
+
+2015-12-01  Eli Zaretskii  <eliz@gnu.org>
+
+       Document 'directory-files-recursively'
+
+       * lisp/files.el (directory-files-recursively): Doc fix.  Rename
+       the argument MATCH to REGEXP, to be more explicit about its form.
+
+       * doc/lispref/files.texi (Contents of Directories): Improve the
+       documentation of 'directory-files-recursively'.  Add
+       cross-references.
+
+       * etc/NEWS: Move the entry for 'directory-files-recursively' to
+       its place and mark it documented.
+
+2015-12-01  Eli Zaretskii  <eliz@gnu.org>
+
+       Document 'inhibit-read-only' property
+
+       * doc/lispref/text.texi (Special Properties): Describe the new
+       'inhibit-read-only' text property.  Add cross-reference to where
+       read-only buffers are described.
+       * doc/lispref/buffers.texi (Read Only Buffers): Mention that
+       'inhibit-read-only' property exempts text from being read-only.
+       Add cross-reference to "Special Properties".
+
+       * etc/NEWS: Move the entry about 'inhibit-read-only' property to
+       its place and mark it documented.
+
+2015-12-01  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/package.el: Update header comments
+
+2015-12-01  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/character-fold.el: Add back multi-char matching
+
+       (character-fold-to-regexp): Uncomment recently commented code
+       and make the algorithm "dummer" by not checking every possible
+       combination.  This will miss some possible matches, but it
+       greatly reduces regexp size.
+
+       * test/automated/character-fold-tests.el
+       (character-fold--test-fold-to-regexp): Comment out test of
+       functionality no longer supported.
+
+2015-12-01  Xue Fuqiao  <xfq.free@gmail.com>
+
+       * doc/emacs/ack.texi (Acknowledgments): Update.
+
+2015-12-01  Michael Albinus  <michael.albinus@gmx.de>
+
+       Check `file-remote-p' over absolute files names in files.el
+
+       * lisp/files.el (directory-files-recursively)
+       (get-free-disk-space): Check `file-remote-p' over absolute files names.
+
+2015-12-01  Andreas Schwab  <schwab@linux-m68k.org>
+
+               * src/lread.c (syms_of_lread): Doc fix.
+
+2015-11-30  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Don't mistake certain JS method calls for keywords
+
+       * lisp/progmodes/js.el (js--ctrl-statement-indentation):
+       Braceless keyword can't come after a period (bug#22063).
+
+2015-11-30  David Reitter  <david.reitter@gmail.com>
+
+       Read frame_title_format from buffer-local variable for NS port
+
+       * nsfns.m (x_implicitly_set_name): Read frame-title-format and
+       icon-title-format variables from buffer in appropriate window.
+       (Bug#22048)
+
+2015-11-30  Juri Linkov  <juri@linkov.net>
+
+       * lisp/replace.el (occur-engine): Count matches in empty lines.
+
+       (Bug#22062)
+
+2015-11-30  Aurélien Aptel  <aurelien.aptel@gmail.com>
+
+       * src/emacs-module.h: Fix finalizer typedef for C++11
+
+       C++11 standard doesn't allow exception-specification in typedef.
+       The workaround is to declare a dummy function prototype and use
+       decltype on it.
+
+2015-11-30  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix last change
+
+       * src/emacs-module.c (lisp_to_value, value_to_lisp)
+       [WIDE_EMACS_INT]: Avoid compiler warnings.
+
+2015-11-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       Rely on conservative stack scanning to find "emacs_value"s
+
+       * src/emacs-module.c (struct emacs_value_tag)
+       (struct emacs_value_frame, struct emacs_value_storage): Remove.
+       (value_frame_size): Remove constant.
+       (struct emacs_env_private): Use Lisp_Object for non_local_exit info.
+       (lisp_to_value): Remove first arg.
+       (module_nil): New constant.
+       Use it instead of NULL when returning an emacs_value.
+       (module_make_function): Adjust to new calling convention of
+       Qinternal_module_call.
+       (DEFUN): Receive args in an array rather than a list.
+       Use SAFE_ALLOCA rather than xnmalloc.  Skip the lisp_to_value loop when
+       we don't have WIDE_EMACS_INT.  Adjust to new type of non_local_exit info.
+       (module_non_local_exit_signal_1, module_non_local_exit_throw_1):
+       Adjust to new type of non_local_exit info.
+       (ltv_mark) [WIDE_EMACS_INT]: New constant.
+       (value_to_lisp, lisp_to_value): Rewrite.
+       (initialize_frame, initialize_storage, finalize_storage): Remove functions.
+       (allocate_emacs_value): Remove function.
+       (mark_modules): Gut it.
+       (initialize_environment): Don't initialize storage any more.
+       Keep the actual env object on Vmodule_environments.
+       (finalize_environment): Don't finalize storage any more.
+       (syms_of_module): Initialize ltv_mark and module_nil.
+
+       * src/emacs-module.h (emacs_value): Make it more clear that this type
+       is really opaque, including the fact that NULL may not be valid.
+
+       * modules/mod-test/mod-test.c (Fmod_test_signal, Fmod_test_throw):
+       Don't assume that NULL is a valid emacs_value.
+
+2015-11-30  Eli Zaretskii  <eliz@gnu.org>
+
+       Yet another doc improvement for search commands
+
+       * doc/emacs/search.texi (Word Search, Symbol Search)
+       (Regexp Search): Document commands that don't support lax
+       whitespace matching or character folding.
+       (Nonincremental Search): Mention the search commands that can be
+       invoked from the menu bar.
+
+       * lisp/isearch.el (isearch-define-mode-toggle-word)
+       (isearch-define-mode-toggle-symbol)
+       (isearch-define-mode-toggle-character-fold): Note in the doc
+       string that turning these on exits the regexp mode.
+       (isearch-forward-regexp, isearch-forward-word)
+       (isearch-forward-symbol, isearch-backward-regexp)
+       (word-search-backward, word-search-forward)
+       (word-search-backward-lax, word-search-forward-lax): State in the
+       doc string which commands don't support character folding and/or
+       lax-whitespace matching.
+
+2015-11-30  Martin Rudalics  <rudalics@gmx.at>
+
+       Run `window-size-change-functions' also when reading from minibuffer
+
+       * src/xdisp.c (redisplay_internal): Run `window-size-change-functions'
+       also when reading from minibuffer.
+
+2015-11-30  Ulf Jasper  <ulf.jasper@web.de>
+
+       Fix scrambling of html-rendered item buffers
+
+       * net/newst-treeview.el (newsticker--treeview-render-text): Fix
+         scrambling of contents by wrapping call to html-renderer in
+         save-selected-window.
+
+2015-11-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix font typo in previous doc fix.
+
+2015-11-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       A bit more security doc, esp. file local vars
+
+       * doc/emacs/emacs.texi (Top):
+       * doc/emacs/misc.texi (Miscellaneous Commands):
+       Refer to new Host Security section.
+       (Host Security): New section.
+       * doc/lispref/os.texi (Security Considerations):
+       Mention file local variables.
+
+2015-11-30  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/character-fold.el: Comment out branching code
+
+       (character-fold-to-regexp): Comment out code that uses multi-char
+       table.  The branching caused by this induces absurdly long regexps,
+       up to 10k chars for as little as 25 input characters.
+
+2015-11-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Spelling and grammar fixes
+
+2015-11-29  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Make lisp-completion-at-point a wrapper instead of an alias
+
+       * lisp/progmodes/elisp-mode.el (lisp-completion-at-point):
+       Turn into an obsolete wrapper around elisp-completion-at-point
+       (bug#20455).
+
+2015-11-29  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/isearch.el (isearch-search-fun-default): Nicer error
+
+       message when the search fails.
+
+2015-11-29  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Update menu-bar-goto-uses-etags-p for the current xref API
+
+       * lisp/menu-bar.el (menu-bar-goto-uses-etags-p): Consult
+       xref-backend-functions, instead of now-nonexistent
+       xref-find-function.
+
+2015-11-29  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/isearch.el (isearch-define-mode-toggle): Advertise binding
+
+2015-11-29  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/menu-bar.el: Use folding in searches
+
+       (nonincremental-search-forward): Use `isearch-search-fun-default'
+       to determine the search function.
+       (nonincremental-search-backward)
+       (nonincremental-repeat-search-forward)
+       (nonincremental-repeat-search-backward): Use it.
+
+2015-11-29  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/menu-bar.el (menu-bar-goto-uses-etags-p): Fix a warning
+
+2015-11-29  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/character-fold.el (character-fold-to-regexp): Be careful
+
+       not to return huge regexps.
+
+2015-11-29  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve documentation of string-collate-* functions
+
+       * doc/lispref/strings.texi (Text Comparison): Improve wording and
+       indexing of 'string-collate-equalp' and 'string-collate-lessp'.
+
+       * etc/NEWS: Move the entry of 'string-collate-equalp' and
+       'string-collate-lessp' to "Lisp Changes" section and mark it as
+       documented.
+
+2015-11-29  Eli Zaretskii  <eliz@gnu.org>
+
+       Document truncate-string-ellipsis
+
+       * doc/lispref/display.texi (Size of Displayed Text): Document
+       'truncate-string-ellipsis'.
+
+       * lisp/international/mule-util.el (truncate-string-ellipsis): Doc fix.
+       (truncate-string-to-width): Mention in the doc string that the
+       default for ELLIPSIS comes from 'truncate-string-ellipsis'.
+
+       * etc/NEWS: Move the 'truncate-string-ellipsis' entry to the "Lisp
+       Changes" section.
+
+2015-11-29  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix confusion wrt character folding in the Emacs manual
+
+       * doc/emacs/search.texi (Nonincremental Search, Regexp Search):
+       Document that invoking search-forward/backward and
+       re-search-forward/backward supports only case folding, but not the
+       rest of the lax-search features.  Reported by Mike Kupfer
+       <m.kupfer@acm.org>.
+
+2015-11-29  Ken Brown  <kbrown@cornell.edu>
+
+       Update mod-test-sum-test
+
+       * modules/mod-test/test.el (mod-test-sum-test): Update to
+       accommodate the lack of dladdr on Cygwin.
+
+2015-11-29  Alan Mackenzie  <acm@muc.de>
+
+       Byte compiler: Catch missing argument to `funcall'.  Fixes bug#22051.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-funcall): When there's no argument
+       to `funcall', (i) Output an error message; (ii) Generate code to signal a
+       `wrong-number-of-arguments' error.
+
+2015-11-29  Martin Rudalics  <rudalics@gmx.at>
+
+       * lisp/window.el (split-window): Don't sanitize sizes when SIZE is non-nil.
+
+2015-11-28  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/character-fold.el (character-fold-to-regexp)
+
+       Warn about using long strings.
+
+       * test/automated/character-fold-tests.el
+       (character-fold--test-lax-whitespace)
+       (character-fold--test-consistency): Reduce string size for tests.
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Document renaming of x-select-enable-* variables
+
+       * doc/emacs/killing.texi (Clipboard): Rename
+       x-select-enable-clipboard to select-enable-clipboard and
+       x-select-enable-primary to select-enable-primary.  Update index
+       entries.
+
+       * etc/NEWS: Mark entry as documented.
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Document the shorthand hints displayed by M-x
+
+       * doc/emacs/m-x.texi (M-x): Document the numeric meaning of
+       suggest-key-bindings.  Document the shorthand hints for commands
+       that have no key bindings.  Document that M-x completion ignores
+       obsolete commands.
+
+       * etc/NEWS: Move the M-x entry to "Editing Changes" and mark it as
+       documented.
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Update docs of character folding
+
+       * doc/emacs/search.texi (Lax Search): Update the description of
+       character folding for the latest changes.
+
+2015-11-28  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/character-fold.el: Also play nice with case-folding
+
+       (character-fold-to-regexp): Take `case-fold-search' into account.
+
+2015-11-28  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/character-fold.el: Add support for multi-char matches
+
+       (character-fold-table): Now has an extra-slot. This is a second
+       char-table that holds multi-character matches.  See docstring for
+       details.
+       (character-fold-to-regexp): Can build branching regexps when a
+       character's entry the extra slot of `character-fold-table' matches the
+       characters that succeed it.
+
+2015-11-28  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/character-fold.el: Code simplifications
+
+       (character-fold-table): Reduce the scope of a variable.
+       (character-fold-to-regexp): Change logic to work directly on the
+       input string.  It's a little easier to understand, probably
+       faster, and sets us up for implementing multi-char matches.
+
+       * test/automated/character-fold-tests.el
+       (character-fold--test-fold-to-regexp): New test.
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Document changes in "C-h l"
+
+       * doc/emacs/help.texi (Misc Help): Document the changes in "C-h l".
+
+       * etc/NEWS: mark "C-h l" changes as documented.
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Finalize documentation of 'custom-prompt-customize-unsaved-options'
+
+       * doc/emacs/custom.texi (Saving Customizations): Index the new
+       function 'custom-prompt-customize-unsaved-options'.
+
+       * etc/NEWS: Mention when 'custom-prompt-customize-unsaved-options'
+       is useful.
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Document 'comment-line'
+
+       * doc/emacs/programs.texi (Comment Commands): Document
+       'comment-line'.
+
+       * etc/NEWS: Move the entry for 'comment-line' into "Editing Changes".
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Document new checkdoc features
+
+       * doc/lispref/tips.texi (Tips, Library Headers): Document the
+       keyword-checking features of checkdoc and the commands
+       'checkdoc-file' and 'checkdoc-current-buffer'.
+
+       * etc/NEWS: Move the checkdoc-related entries to their own
+       section.
+
+2015-11-28  Philipp Stephani  <p.stephani2@gmail.com>
+
+       Simplify the prologue of emacs-module.c functions
+
+       * emacs-module.c (MODULE_FUNCTION_BEGIN): New macro.
+       (module_make_global_ref)
+       (module_free_global_ref, module_make_function, module_funcall)
+       (module_intern, module_type_of, module_extract_integer)
+       (module_make_integer, module_extract_float, module_make_float)
+       (module_copy_string_contents, module_make_string)
+       (module_make_user_ptr, module_get_user_ptr, module_set_user_ptr)
+       (module_get_user_finalizer, module_set_user_finalizer)
+       (module_vec_set, module_vec_get, module_vec_size): Use new helper
+       macro MODULE_FUNCTION_BEGIN.
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Don't reject module calls with no arguments
+
+       * src/emacs-module.c (Finternal_module_call): Allow ARGLIST be nil.
+
+2015-11-28  Philipp Stephani  <p.stephani2@gmail.com>
+
+       Make module-call be visible from Lisp
+
+       * src/emacs-module.c (module_make_function): Use internal--module-call.
+       (Finternal_module_call): Renamed from Fmodule_call.  Add safety
+       checks.
+       (syms_of_module): DEFSYM save-value-p and save-pointer-p.  Do
+       defsubr internal--module-call.
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Add etags tests for the recent Lua-related bugfix
+
+       * test/etags/lua-src/test.lua: New file, tests the issues raised
+       by bug#21934.
+       * test/etags/Makefile (LUASRC): Add test.lua.
+       * test/etags/ETAGS.good_1:
+       * test/etags/ETAGS.good_2:
+       * test/etags/ETAGS.good_3:
+       * test/etags/ETAGS.good_4:
+       * test/etags/ETAGS.good_5:
+       * test/etags/ETAGS.good_6:
+       * test/etags/CTAGS.good: Adapt to the new Lua test.  Also, an old
+       regression fix, resolved around 25 May 2015, required changes to
+       the "good" ETAGS files.
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix Lua tags when a function name includes '.' or ':'
+
+       * lib-src/etags.c (Lua_functions): Add a tag for the last element
+       of a function name after a dot or a colon.  (Bug#21934)
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve documentation of search and replace commands
+
+       * doc/emacs/search.texi (Replacement and Lax Matches): Document
+       which commands are affected by 'replace-character-fold'.
+       (Lax Search): Add a cross reference to "Replacement and Lax
+       Matches".  Improve wording.  Fix lost extra whitespace.
+       (Search Customizations): Improve wording.  (Bug#22036)
+       See also comments in
+       http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02376.html.
+
+       * lisp/replace.el (query-replace, query-replace-regexp)
+       (query-replace-regexp-eval, replace-string, replace-regexp):
+       Mention 'replace-character-fold' in the doc strings.
+
+2015-11-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix minor problems found by static checking
+
+       * src/undo.c (prepare_record): Add proper prototype for C.
+
+2015-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * src/emacs-module.c (struct env_storage): Delete
+
+       (struct emacs_runtime_private): Keep an emacs_env instead.
+       (Fmodule_load, Fmodule_call): Declare emacs_env_private separately.
+       (initialize_environment): Split the arg in two.  Adjust all callers.
+       Only store the private part in Vmodule_environments.
+       (finalize_environment): Change the arg to only be the private env.
+       Adjust all callers.
+
+2015-11-27  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve documentation of 'replace-character-fold'
+
+       * lisp/replace.el (replace-character-fold): Clarify which commands
+       are affected by this variable.
+
+2015-11-27  Mark Oteiza  <mvoteiza@udel.edu>
+
+       Backport: Add interactive seek command.
+
+       * lisp/mpc.el (mpc-cmd-seekcur): New function.
+       (mpc-seek-current): New command.
+       (mpc-mode-menu): Add entry for mpc-seek-current
+       (mpc-mode-map): Bind mpc-seek-current to "g"
+
+2015-11-27  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Autoload etags when using its xref backend
+
+       * lisp/progmodes/xref.el (xref--etags-backend):
+       Rename to etags--xref-backend.  Move to etags.el.  Autoload.
+       (Bug#22026)
+
+2015-11-27  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/character-fold.el: Allow complex chars to match their decomposition
+
+       (character-fold-table): When a character's decomposition does not
+       involve a formatting tag (i.e., if it has an "exact" description via
+       other characters), then this character is allowed to match the
+       decomposition.
+
+2015-11-27  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/character-fold.el: More descriptive variable names
+
+       (character-fold-table): Rename a lot of the lexical variables to
+       make the code easier to read.
+
+2015-11-27  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/isearch.el: Ensure we still support `isearch-new-word'
+
+       (isearch-new-regexp-function): Define variable.
+       (isearch-new-word): Define as an obsolete alias. (Bug#22018)
+
+2015-11-27  Eli Zaretskii  <eliz@gnu.org>
+
+       Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25
+
+2015-11-27  Lee Bochicchio  <lboc.home@gmail.com>
+
+       * test/lisp/abbrev-tests.el: Define more tests
+
+       (abbrev-table-name-test, kill-all-abbrevs-test)
+       (clear-abbrev-table-test): New tests.
+
+2015-11-27  Eli Zaretskii  <eliz@gnu.org>
+
+       Add module tests for wrong-type-argument
+
+       * modules/mod-test/test.el (mod-test-sum-test): Add tests for
+       wrong-type-argument.
+
+2015-11-27  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve handling of signals and 'throw' in modules
+
+       * src/emacs-module.c: Add commentary explaining how to write
+       functions in this file.
+       (module_make_global_ref, module_free_global_ref)
+       (module_non_local_exit_signal, module_non_local_exit_throw)
+       (module_make_function, module_funcall, module_intern)
+       (module_type_of, module_is_not_nil, module_eq)
+       (module_extract_integer, module_make_integer)
+       (module_extract_float, module_make_float)
+       (module_copy_string_contents, module_make_string)
+       (module_make_user_ptr, module_get_user_ptr, module_set_user_ptr)
+       (module_get_user_finalizer, module_set_user_finalizer)
+       (module_vec_set, module_vec_get, module_vec_size)
+       (module_non_local_exit_signal_1, module_non_local_exit_throw_1):
+       Do nothing and return with failure indication immediately, if some
+       previous module call signaled an error or wants to throw.  See
+       http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02133.html
+       for the relevant discussions.
+
+2015-11-27  Eli Zaretskii  <eliz@gnu.org>
+
+       Add ':version' tag to 'checkdoc-package-keywords-flag'
+
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-package-keywords-flag):
+       Add a ':version' tag.
+
+2015-11-27  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve documentation of 'eval-buffer' and 'eval-region'
+
+       * src/lread.c (Feval_buffer, Feval_region): Doc fixes.  (Bug#22023)
+
+       * doc/lispref/eval.texi (Eval): Mention narrowing to clarify
+       "accessible portion of buffer".
+
+2015-11-27  Eli Zaretskii  <eliz@gnu.org>
+
+       Unbreak the Cygwin w32 build
+
+       * src/emacs.c (main): Call w32_init_main_thread in the Cygwin w32
+       build as well.  Reported by Andy Moreton <andrewjmoreton@gmail.com>.
+
+2015-11-27  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve commentary in character-fold.el
+
+       * lisp/character-fold.el (character-fold-to-regexp): Move detailed
+       description from commit log message to comments.  (Bug#22019)
+
+2015-11-26  Alan Mackenzie  <acm@muc.de>
+
+       Byte Compiler: generate code to adjust stack count after call to `signal'.
+
+       Corrects change from earlier today.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): supply the current value of
+       `byte-compile--for-effect' as argument to `byte-compile-form'.
+
+2015-11-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve commentary of prepare_to_modify_buffer_1
+
+       * src/insdel.c (prepare_to_modify_buffer_1): Mention in commentary
+       that this function runs Lisp.  Suggested by Richard Stallman
+       <rms@gnu.org>.
+
+2015-11-26  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25
+
+2015-11-26  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Fix regression after merge.
+
+        * undo.c (prepare_record): Remove call to run_undoable_change.
+
+2015-11-26  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       After delete, record point location in undo.
+
+       Addresses Bug #21968.
+
+               * lisp/simple.el (undo-auto--add-boundary): Clean up code to
+               better support intercalating calls.
+               * src/keyboard.c,src/keyboard.h (command_loop_1): Store value of
+               point and current buffer before each command.
+               * src/undo.c (record_point): Now only record the point.
+               * src/undo.c (prepare_record): Functionality removed form
+               record_point.
+               * src/undo.c (record_delete): Check if point needs recording.
+               * src/undo.c (undo-boundary): Record value of point before each
+               boundary.
+               * test/automated/simple-test.el: New tests.
+
+       Conflicts:
+               src/undo.c
+
+2015-11-26  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix compiler warnings in w32.c
+
+       * src/w32.c (sys_socket): In case of error, use -1 as return
+       value, not INVALID_SOCKET, which causes compiler warnings.
+       (maybe_load_unicows_dll): Cast the return value of GetProcAddress
+       to the appropriate function signature, to avoid compiler errors.
+       Reported by Andy Moreton <andrewjmoreton@gmail.com>.  (Bug#21953)
+
+2015-11-26  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Check if the file exists on disk before producing the revert diff
+
+       * lisp/vc/vc-dispatcher.el (vc-buffer-sync): Check if the file
+       exists on disk (bug#20558).
+
+2015-11-26  Alan Mackenzie  <acm@muc.de>
+
+       Byte compiler: on setq with an odd number of arguments, generate a `signal'
+
+       * lisp/emacs-lisp/cconv.el (cconv-convert): Don't transform `setq' form when
+       it has an odd number of arguments, to allow bytecomp to handle the error.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): In a `setq' form with an
+       odd number of arguments, generate a `signal' instead of the normal code.
+
+2015-11-25  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Use find-tag-default for xref-backend-identifier-at-point
+
+       * lisp/progmodes/etags.el (find-tag-tag)
+       (tags-completion-at-point-function): Extract common code as
+       find-tag--default.
+       (xref-backend-identifier-at-point): Define in terms of the new
+       function.
+
+2015-11-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/undo.c (record_property_change): Remove now-unused local.
+
+2015-11-25  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       run_undoable_changes now called from insdel.
+
+       The original calls from inside undo.c are not always at a safe position
+       to call lisp, as they originate in varied positions within insdel.c.
+       Calling them directly from prepare_to_modify_buffer_1 ensures that they
+       are always run at the same point.
+
+        * undo.c (run_undoable_changes,syms_of_undo): Remove function
+        and symbol used.
+        * insdel.c (run_undoable_changes): Add function and symbol.
+
+2015-11-25  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve and update documentation of search commands
+
+       * doc/emacs/search.texi (Lax Search): Renamed from "Search Case";
+       all references changed.  Move the description of lax-whitespace
+       here.  Add description of the new character folding features and
+       additional customizable options.
+       (Isearch Yank): Move before "Error in Search".
+       (Basic Isearch): Improve wording.  Add index entries.  Add short
+       description of how to abandon search, making this subsection a
+       complete introduction to search basics.
+       (Repeat Isearch): Add index entries.  Describe additional
+       customizable options.  Describe mouse clicks.
+       (Isearch Yank): Add index entries.  Describe mouse-2 click in echo
+       area.  Describe more customizable options.
+       (Error in Isearch): Add index entries.
+       (Special Isearch): Move actual description of some isearch
+       commands to other sections, leaving here just the summary of the
+       commands.  Add command that toggles character folding.  Describe
+       commands, like "C-h C-h", that were previously omitted for some
+       reason.
+       (Not Exiting Isearch): Describe search-exit-option.  Add index
+       entries.
+       (Word Search): Describe eww-search-word and eww-search-prefix.
+       (Symbol Search): Add index entries.
+       (Regexp Search): Describe regexp-search-ring-max.
+       (Replacement and Lax Matches): Renamed from "Replacement and
+       Case"; all references changed.  Describe lax-whitespace matching
+       in replace commands and related options.  Describe character
+       folding in replace commands and related options.
+       (Query Replace): Describe query-replace-from-to-separator and the
+       new history features.  Add index entries for highlighted text.
+       Describe query-replace-skip-read-only.  Describe more keys
+       accepted by query-replace.
+       (Other Repeating Search): More index entries for Occur.  Describe
+       list-matching-lines-default-context-lines.
+       (Search Customizations): New section, documents customizable
+       options that were not documented until now.
+       * doc/emacs/glossary.texi (Glossary): Add "Case Folding" and
+       "Character Folding".
+
+       * etc/NEWS: Move search- and replace-related entries to a single
+       parent section.
+
+       * lisp/replace.el (query-replace-show-replacement): Doc fix.
+       * lisp/isearch.el (search-nonincremental-instead)
+       (isearch-hide-immediately): Doc fixes.
+
+2015-11-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       Remove nnml-retrieve-groups that is unnecessary and somewhat problematic
+
+       * lisp/gnus/nnml.el (nnml-retrieve-groups): Remove.  See:
+       <http://thread.gmane.org/gmane.emacs.gnus.general/86308> and
+       <http://thread.gmane.org/gmane.emacs.gnus.general/86321>
+
+2015-11-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix module_format_fun_env when dynlib_addr fails
+
+       * src/emacs-module.c (module_format_fun_env):
+       exprintf doesn’t support %p, so use %x.  Reported by Eli Zaretskii in:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02122.html
+
+2015-11-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Disambiguate variable help a bit better
+
+       * lisp/help-fns.el (describe-variable): Quote the
+       variable’s value if it is a symbol other than t or nil.
+       See: T.V Raman in:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02147.html
+
+2015-11-24  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Pass SVN commit message through log-edit-extract-headers
+
+       * lisp/vc/vc-svn.el (vc-svn-checkin): Pass COMMENT through
+       log-edit-extract-headers (bug#18954).
+
+2015-11-24  Alan Mackenzie  <acm@muc.de>
+
+       CC Mode: Eliminate compiler warning messages.
+
+       * lisp/progmodes/cc-mode.el (top level): remove compile time declaration of
+       `font-lock-syntactic-keywords' (which CC Mode doesn't use).
+       * lisp/progmodes/cc-awk.el (awk-mode-syntax-table)
+       (c-awk-set-syntax-table-properties): Clarify comments about
+       `font-lock-syntactic-keywords'.
+
+       * lisp/progmodes/cc-bytecomp.el (cc-bytecomp-load): Create a dummy declaration
+       of this before the real (interpreted) one, to satisfy the byte compiler.
+
+2015-11-24  Simen Heggestøyl  <simenheg@gmail.com>
+
+       Extend the test suite for json.el
+
+       * lisp/json.el (json-plist-p): Clarify docstring.
+
+       * test/automated/json-tests.el (json-tests--with-temp-buffer): New
+       macro.
+       (test-json-join, test-json-alist-p)
+       (test-json-plist-p, test-json-advance, test-json-peek)
+       (test-json-pop, test-json-skip-whitespace)
+       (test-json-read-keyword, test-json-encode-keyword)
+       (test-json-read-number, test-json-encode-number)
+       (test-json-read-escaped-char, test-json-read-string)
+       (test-json-encode-string, test-json-encode-key)
+       (test-json-new-object, test-json-add-to-object)
+       (test-json-read-object, test-json-encode-list)
+       (test-json-read-array, test-json-encode-array)
+       (test-json-read, test-json-read-from-string)
+       (test-json-encode): New tests.
+       (json-read-simple-alist): Merged into `test-json-read-object'.
+       (json-encode-string-with-special-chars): Merged into
+       `test-json-encode-string'.
+       (json-read-string-with-special-chars): Split into
+       `test-json-encode-string' and `test-json-read-from-string'.
+
+2015-11-24  Anders Lindgren  <andlind@gmail.com>
+
+       Fixed bug#18283: Enable applescript in NextStep.
+
+       * nextstep/templates/Info.plist.in: Set NSAppleScriptEnabled to YES.
+
+2015-11-24  Eli Zaretskii  <eliz@gnu.org>
+
+       Allow completion on dynamic module files in load-library
+
+       * lisp/files.el (load-library): Bind completion-ignored-extensions
+       to nil, to allow completion on dynamic modules typed as file
+       names.  Reported by Andy Moreton <andrewjmoreton@gmail.com>.
+
+2015-11-24  Alan Mackenzie  <acm@muc.de>
+
+       CC Mode: eliminate almost all byte compilation warnings
+
+       * lisp/progmodes/cc-bytecomp.el (cc-bytecomp-noruntime-functions): Remove.
+       (cc-require): Remove the crude hack that saved and restored
+       byte-compile-noruntime-functions.
+       (cc-conditional-require, cc-conditional-require-after-load): New macros.
+
+       * lisp/progmodes/cc-defs.el (top level): Reformulate code which loaded
+       cc-fix.el using the new macros in cc-bytecomp.el.
+
+       * lisp/progmodes/cc-langs.el (c++-template-syntax-table)
+       (c-no-parens-syntax-table): Add extra "(eval ..)"s around "'(lambda ..)"
+       forms to remove the superflous quotes.
+
+2015-11-24  Eli Zaretskii  <eliz@gnu.org>
+
+       Add one more mod-test test
+
+       * modules/mod-test/test.el (mod-test-sum-test): Test the error
+       signaled when the function is invoked with a wrong number of
+       arguments.
+
+2015-11-24  Philipp Stephani  <phst@google.com>
+
+       * modules/mod-test/mod-test.c (Fmod_test_sum): Verify there are 2 args.
+
+2015-11-24  Eli Zaretskii  <eliz@gnu.org>
+
+       Implement dynlib_addr for MS-Windows
+
+       * src/dynlib.c [WINDOWSNT]: Include w32common.h.
+       <g_b_init_get_module_handle_ex> [WINDOWSNT]: New static variable.
+       (GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS)
+       (GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT) [WINDOWSNT]: Define
+       if undefined.
+       (dynlib_reset_last_error): Reset g_b_init_get_module_handle_ex to
+       zero.
+       (dynlib_addr) [WINDOWSNT]: Non-trivial implementation to report
+       the full file name of the module for a given address.
+
+2015-11-24  Alan Mackenzie  <acm@muc.de>
+
+       Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25
+
+2015-11-24  Alan Mackenzie  <acm@muc.de>
+
+       Squashed commit of the following:
+
+       commit e1ecf76585bef2eb87995f7a7f92cc12003a6f70
+       Author: Alan Mackenzie <acm@muc.de>
+       Date:   Tue Nov 24 16:50:09 2015 +0000
+
+           Byte compile: minor amendments.
+
+           * lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
+           add a comment to explain the binding of variables around a subsidiary
+           compilation.
+           (byte-compile-new-defuns): Amend the doc string.
+
+       commit c537bfed1dda1593d218956ff00c6105a3ff0316
+       Author: Alan Mackenzie <acm@muc.de>
+       Date:   Sat Nov 21 18:43:57 2015 +0000
+
+           Byte compiler: fix spurious warnings "might not be defined at runtime".
+
+           Also initialize byte-compile-noruntime-functions between runs.
+
+           * lisp/emacs-lisp/bytecomp.el (byte-compile-new-defuns): New variable.
+           (byte-compile-initial-macro-environment): For eval-when-compile: bind
+           byte-compile-unresolved-functions and byte-compile-new-defuns around
+           byte-compile-top-level, to prevent spurious entries being made.
+           (byte-compile-warn-about-unresolved-functions): Check whether function is
+           in byte-compile-new-defuns before emitting a warning about it.
+           (byte-compile-from-buffer): Initialize new variable and
+           byte-compile-noruntime-functions to nil.
+           (byte-compile-file-form-require): record all new functions defined by a
+           `require' in byte-compile-new-defuns.
+           (byte-compile-file-form-defmumble): record the new alias in
+           byte-compile-new-defuns.
+
+2015-11-24  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix crash at startup related to GC of font entities
+
+       * src/font.h (GC_FONT_SPEC_P, GC_FONT_ENTITY_P)
+       (GC_FONT_OBJECT_P, GC_XFONT_SPEC, GC_XFONT_ENTITY)
+       (GC_XFONT_OBJECT): New macros, for use in garbage collector.
+       * src/alloc.c (compact_font_cache_entry, compact_font_caches):
+       Don't ifdef away font cache compaction on NT_GUI, as the problems
+       which led to that seem to have been solved.
+       (compact_font_cache_entry): Use GC_FONT_SPEC_P, GC_XFONT_SPEC,
+       GC_XFONT_ENTITY, and GC_XFONT_OBJECT, instead of their non-GC_
+       cousins.  (Bug#21999)
+
+2015-11-24  Alan Mackenzie  <acm@muc.de>
+
+       Byte compile: Output an error, not a warning, for odd number of args to setq
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): Amend.
+
+2015-11-24  Ken Raeburn  <raeburn@raeburn.org>
+
+       Fix kbd_buffer iteration loop in readable_events
+
+       * src/keyboard.c (readable_events): Wrap the event pointer back to the
+       start of the kbd_buffer array inside the top of the loop instead of
+       right before checking the loop condition, since kbd_fetch_ptr and
+       kbd_store_ptr point past the end of the array to mean that element 0
+       is next. (bug#21935)
+
+2015-11-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Improve text-quoting-style doc again
+
+       * doc/lispref/help.texi (Keys in Documentation):
+       Omit overkill discussion of ‘setq’.  Mention Emacs versions
+       where ‘grave’ style was standard.
+
+2015-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Improve text-quoting-style doc
+
+2015-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify module_make_function
+
+       * src/emacs-module.c (module_make_function):
+       Simplify by calling build_unibyte_string.
+
+2015-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port better to FreeBSD’s dlfunc vs dlsym
+
+       This avoids warnings when converting between void * and
+       function pointers, which strict C11 does not allow.
+       * configure.ac (dlfunc): Check for existence.
+       * src/dynlib.c (dlfunc) [!HAVE_DLFUNC]: New macro.
+       (dynlib_func): New function.
+       * src/dynlib.h (dynlib_function_ptr, dynlib_func): New decls.
+       * src/emacs-module.c (Fmodule_load): Use dynlib_func, not
+       dynlib_sym, for function pointers.
+
+2015-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify use of emacs_finalizer_function type
+
+       * src/emacs-module.h (emacs_finalizer_function):
+       Now EMACS_NOEXCEPT.  All users simplified to omit EMACS_NOEXCEPT.
+       (struct emacs_env_25): Use emacs_finalizer_function where applicable.
+
+2015-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       module_format_fun_env fixes
+
+       * src/doprnt.c (exprintf) [HAVE_MODULES]: Also define in this case.
+       * src/emacs-module.c (module_format_fun_env):
+       Convert path and sym to UTF-8.
+       Don’t use VLAs, as the C11 standard says they’re optional,
+       and anyway they can cause core dumps with large allocations.
+       Use exprintf rather than snprintf, as exprintf handles arbitrarily
+       long strings.  Simplify the code a bit.
+
+2015-11-23  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Don't use package-user-dir in elisp-library-roots if it's not bound
+
+       * lisp/progmodes/elisp-mode.el (elisp-library-roots): Don't
+       use package-user-dir if it's not bound (bug#19759).
+
+2015-11-23  Anders Lindgren  <andlind@gmail.com>
+
+       New visible-bell for NextStep (OS X El Capitan compatible).
+
+       Instead of inverting a rectangle in the middle of the frame, use
+       the standard NextStep image "caution", represented using an
+       warning sign with an exclamation mark.  (Bug#21662)
+
+       Implemented based on a suggestion drafted by Mustafa Kocaturk.
+
+       * src/nsterm.m (EmacsBell): New class for managing the caution
+       image.  Support multiple active bells, the image is removed once
+       all bells have timed out.
+       (ns_timeout): Removed, no longer used.
+       (ns_ring_bell): Reimplemented to use EmacsBell.
+
+2015-11-23  Johan Bockgård  <bojohan@gnu.org>
+
+       * lisp/emacs-lisp/nadvice.el (add-function): Fix debug spec.
+
+       (remove-function): Ditto. (Bug#20376)
+
+2015-11-23  Mark Oteiza  <mvoteiza@udel.edu>
+
+       * lisp/leim/quail/tamil-dvorak.el: Add necessary escapes.
+
+2015-11-23  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve how non-ASCII strings are accepted from modules
+
+       * src/emacs-module.c (module_make_function, module_make_string):
+       Build a unibyte Lisp string and then decode it by UTF-8, instead
+       of building a multibyte string without decoding.  This is more
+       tolerant to deviations from UTF-8.
+
+2015-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port recent module changes to pickier compilers
+
+       * src/emacs-module.c (module_make_function)
+       (module_make_string): Add casts to fix pointer signedness issues.
+
+2015-11-23  Philipp Stephani  <phst@google.com>
+
+       Fix how strings are accepted from modules
+
+       * emacs-module.c (module_make_function, module_make_string): Use
+       make_multibyte_string.
+       (module_copy_string_contents): Encode before reading the byte
+       size.  Return false if and only if an error occurred.
+
+2015-11-23  Eli Zaretskii  <eliz@gnu.org>
+
+       Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25
+
+2015-11-23  Shakthi Kannan  <shakthimaan@gmail.com>
+
+       Add the tamil-dvorak input method
+
+       * lisp/leim/quail/tamil-dvorak.el: New file.  (Bug#21768)
+
+       * etc/NEWS: Mention the new input method.
+
+2015-11-23  Martin Rudalics  <rudalics@gmx.at>
+
+       Move setting FRAME_WINDOW_SIZES_CHANGED to resize_frame_windows.
+
+       * src/frame.c (adjust_frame_size): Don't set
+       FRAME_WINDOW_SIZES_CHANGED here ...
+       * src/window.c (resize_frame_windows): ... but here, as suggested
+       by Stefan Monnier.  Also remove some dead code along the way.
+
+2015-11-23  Alan Mackenzie  <acm@muc.de>
+
+       * /etc/NEWS (Incompatible Lisp Changes): Also `setf' needs an even # of args.
+
+2015-11-23  Alan Mackenzie  <acm@muc.de>
+
+       Signal an error when `setf' gets an odd number of arguments.
+
+       * lisp/emacs-lisp/gv.el (setf): Amend.
+
+2015-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp/emacs-lisp/smie.el (smie-backward-sexp): Handle BOB better.
+
+2015-11-23  Alan Mackenzie  <acm@muc.de>
+
+       * etc/NEWS (Incompatible Lisp Changes): Document new restriction on `setq'.
+
+2015-11-23  Alan Mackenzie  <acm@muc.de>
+
+       Expunge occurrences of `setq' with an odd number of arguments.
+
+       * lisp/apropos.el (apropos-documentation):
+       * lisp/obsolete/complete.el (PC-include-file-all-completions):
+       * lisp/progmodes/compile.el (compilation-goto-locus):
+       * lisp/vc/vc-cvs.el (vc-cvs-parse-root): (twice)
+       Insert missing nil at end of `setq' forms.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-autoload): Remove an
+       erroneous trailing variable name from a setq, thus allowing a compilation
+       properly to track functions not defined at runtime.
+
+2015-11-23  John Wiegley  <johnw@newartisans.com>
+
+       Add a note about a questionable use of bool in xdisp.c
+
+2015-11-23  Alan Mackenzie  <acm@muc.de>
+
+       Issue a warning from the byte compiler on a malformed `setq' form.
+
+       Partly fixes bug#20241.
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): Issue a warning when a
+       `setq' form with an odd number of arguments is compiled.
+
+2015-11-23  Alan Mackenzie  <acm@muc.de>
+
+       Don't let cconv_convert insert a nil argument into a `setq' form.
+
+       Fixes bug#21983.
+       * lisp/emacs-lisp/cconv.el (cconv-convert): Don't silently insert a nil last
+       argument into a `setq' when there're an odd number of args.  This enables the
+       byte compiler to issue a message in this case.
+
+2015-11-23  Alan Mackenzie  <acm@muc.de>
+
+       Signal an error when `setq' has an odd number of arguments.  Fixes bug#20241.
+
+       * src/eval.c (Fsetq): Signal an error on an odd number of arguments.
+       (syms_of_eval): Add a DEFSYM for Qsetq.
+
+2015-11-23  Martin Rudalics  <rudalics@gmx.at>
+
+       * doc/lispref/windows.texi (Window Sizes): Fix indices and references.
+
+       * src/frame.c (adjust_frame_size): Set FRAME_WINDOW_SIZES_CHANGED (Bug#21975).
+
+2015-11-22  Thomas Fitzsimmons  <fitzsim@fitzsim.org>
+
+       Add EUDC BBDB 3 entry in NEWS
+
+       * NEWS: Mention EUDC BBDB backend support for BBDB 3.
+
+2015-11-22  Thomas Fitzsimmons  <fitzsim@fitzsim.org>
+
+       Improve EUDC to BBDB 3 export
+
+       * eudc-vars.el (eudc-ldap-bbdb-conversion-alist): Change phone
+       entry to single item.  Add company conversion.
+       * eudc-export.el (eudc-bbdbify-company): New function.
+       (bbdb-parse-phone): Declare function.
+       (eudc-bbdbify-phone): Add BBDB 3 support.
+       (Bug#21971)
+
+2015-11-22  Thomas Fitzsimmons  <fitzsim@fitzsim.org>
+
+       Add BBDB 3 support for EUDC export
+
+       * eudc.el: Add bbdb-version defvar.
+       (eudc--using-bbdb-3-or-newer-p): New function.
+       * eudc-export.el (eudc-create-bbdb-record): Add support for
+       bbdb-create-internal argument list changes introduced in BBDB 3.
+       * eudcb-bbdb.el: Remove bbdb-version defvar.
+       (eudc-bbdb-field): Call eudc--using-bbdb-3-or-newer-p.
+       (Bug#21971)
+
+2015-11-22  Eli Zaretskii  <eliz@gnu.org>
+
+       Allow loading modules by 'load-file'
+
+       * src/lread.c (Fload): Call 'unbind_to' with 'Fmodule_load' as the
+       2nd arg, to avoid the "binding stack not balanced" error.
+       (syms_of_lread) <module-file-suffix>: New Lisp variable.
+
+       * lisp/files.el (module-file-suffix): Declare.
+       (load-file): Remove 'module-file-suffix' from
+       'completion-ignored-extensions', to allow completion on modules.
+
+       * etc/NEWS: Mention 'module-file-suffix'.
+
+2015-11-22  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix unoptimized builds
+
+       * src/lisp.h (XTYPE): Move before XSYMBOL, to fix unoptimized
+       builds.
+
+2015-11-22  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Work around the asynchronous-empty-diff problem
+
+       * lisp/vc/vc-rcs.el (vc-rcs-diff):
+       * lisp/vc/vc-mtn.el (vc-mtn-diff):
+       * lisp/vc/vc-hg.el (vc-hg-diff):
+       * lisp/vc/vc-git.el (vc-git-diff): Ignore the ASYNC argument,
+       do a synchronous process call (bug#21969).
+
+2015-11-21  Karl Fogel  <kfogel@red-bean.com>
+
+       Finish excising electric indent from `open-line'
+
+       * lisp/simple.el (open-line): Remove INTERACTIVE argument.
+
+       * test/automated/simple-test.el (open-line-indent, open-line-hook):
+         Adjust accordingly.
+
+       This change finishes what my commit of Thu Nov 19 17:32:37 2015 -0600
+       (git commit c59353896) started.  It turns out that having INTERACTIVE
+       cause `post-self-insert-hook' to run (via `newline') meant `open-line'
+       still had the electric indent behavior, as `post-self-insert-hook'
+       normally contains `electric-indent-post-self-insert-function' ever
+       since `electric-indent-mode' has been on by default.  Tracing the code
+       change in `open-line' is mildly twisty, because Artur Malabarba's
+       earliest two commits of 24 Oct 2015 first removed the `interactive'
+       form entirely (git commit 6939896e2) and then restored it with the new
+       extra "p" already added (git commit bd4f04f86), such that there is no
+       single-commit diff in which one sees the second "p" appear.  Thus this
+       change is effectively a reversion of parts of each of those commits.
+
+       This could close bug#21884, at least until further discussion.
+
+2015-11-21  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Adhere closer to the "implicit tag name" definition
+
+       * lisp/progmodes/etags.el (etags-tags-completion-table):
+       Adhere closer to the "implicit tag name" definition.  Simplify
+       the regexp.  Search for the explicit tag name first, and when
+       not found, search locally for the implicit one.  (Bug#21934)
+
+2015-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       Unrevert most of regexp reentrancy abort patch
+
+       The problem was in:
+         * src/syntax.c (update_syntax_table_forward): Propertize even when truncated
+       which is hence not unreverted.
+       The rest is:
+       * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST):
+       (UPDATE_SYNTAX_TABLE_FAST): Re-introduce.
+       All callers in regex.c changed back to the _FAST versions.
+
+       * test/automated/message-mode-tests.el: Tweak the test to rely on auto
+       propertization in backward-sexp.
+
+2015-11-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Revert regexp reentrancy abort patch
+
+       Although the patch does fix Bug#21688 and prevents a core dump,
+       it also makes the message-mode-propertize test fail; see:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01667.html
+       Perhaps someone else can come up with a better fix some day.
+       * src/syntax.c (update_syntax_table_forward):
+       Propertize even when truncated.
+       * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST):
+       (UPDATE_SYNTAX_TABLE_FAST): Remove.
+       All callers changed back to the non-_FAST versions.
+
+2015-11-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Add a few safety checks when ENABLE_CHECKING
+
+       This was motivated by the recent addition of module code,
+       which added some ENABLE_CHECKING-enabled checks that are
+       useful elsewhere too.
+       * src/alloc.c (compact_font_cache_entry):
+       * src/fns.c (sweep_weak_table):
+       * src/lread.c (oblookup):
+       Use gc_asize rather than doing it by hand.
+       * src/emacs-module.c (module_make_global_ref)
+       (module_free_global_ref, module_vec_size):
+       Omit assertions that lisp.h now checks.
+       * src/lisp.h (XFASTINT, ASIZE): In functional implementations,
+       check that the result is nonnegative.  Use eassume, as this
+       info can help a bit when optimizing production code.
+       (XSYMBOL) [!USE_LSB_TAG]: Assert that argument is a symbol,
+       to be consistent with the USE_LSB_TAG case.
+       (gc_asize): New function, when ASIZE is needed in the gc.
+       (gc_aset): Use it.
+       (HASH_TABLE_P): Move definition up, so that it can be used ...
+       (XHASH_TABLE): ... here, to assert that the arg is a hash table.
+
+2015-11-21  Eli Zaretskii  <eliz@gnu.org>
+
+       Simplify recording of main thread's ID on MS-Windows
+
+       * src/w32term.c (w32_initialize):
+       * src/w32console.c (initialize_w32_display):
+       * src/w32fns.c (globals_of_w32fns): Don't record the main thread
+       ID independently for each type of session (GUI, TTY, batch).
+       * src/w32term.c (w32_init_main_thread): New function, records the
+       main thread's thread ID.
+       * src/w32term.h: Add prototype for w32_init_main_thread.
+       * src/emacs.c (main) [WINDOWSNT]: Call w32_init_main_thread.
+
+       * src/emacs-module.c [WINDOWSNT]: Rename main_thread_id to
+       main_thread, for consistency with other threading libraries.  All
+       users changed.  Include w32term.h.
+       (check_main_thread) [WINDOWSNT]: Simplify the test: no need to
+       make sure the main thread is alive, as we hold a handle on it
+       opened by w32_init_main_thread.
+       (module_init) [WINDOWSNT]: Reuse the thread ID recorded by
+       w32_init_main_thread, instead of calling the requisite APIs once
+       more.
+
+2015-11-21  Mark Oteiza  <mvoteiza@udel.edu>
+
+       Backport: Fix issue where a new tempfile was created every refresh
+
+       * lisp/mpc.el (mpc-format): Leave dir as relative path
+
+2015-11-21  Eli Zaretskii  <eliz@gnu.org>
+
+       Call 'window-size-change-functions' for mini-windows
+
+       * src/window.c (grow_mini_window, shrink_mini_window): Set the
+       frame's 'window_sizes_changed' flag.
+       * src/xdisp.c (redisplay_internal): Call the hooks on
+       'window-size-change-functions' if the call to 'echo_area_display'
+       sets the frame's 'window_sizes_changed' flag.
+       (syms_of_xdisp) <window-size-change-functions>:
+       Update doc string to indicate the mini-window resizes trigger a
+       call to the hooks, and don't promise that will happen "before
+       redisplay".  (Bug#19576, Bug#21333)
+
+       * doc/lispref/windows.texi (Window Hooks): Update the description
+       of 'window-size-change-functions'.
+
+2015-11-21  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve documentation of dynamic modules
+
+       * src/fns.c (Frequire): Doc fix to include the dynamic module
+       support.
+       * src/lread.c (Fload, Vload_suffixes): Doc fixes to include the
+       dynamic module support.
+       (Fload): Treat the module suffix the same as '*.el' and '*.elc'
+       wrt the MUST-SUFFIX argument.
+
+       * etc/NEWS: Expand documentation of dynamically loaded modules.
+
+2015-11-21  Philipp Stephani  <phst@google.com>  (tiny change)
+
+       Initial documentation for dynamic modules
+
+       * etc/NEWS: Mention the new support for dynamically loaded modules.
+
+2015-11-20  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Add xref--etags-backend to xref-backing-functions using add-hook
+
+       * lisp/progmodes/xref.el (xref-backend-functions): Move the
+       default value into a separate `add-hook' call (bug#21964).
+
+       * lisp/progmodes/elisp-mode.el (emacs-lisp-mode):
+       Don't declare the xref-backend-functions variable.
+       It doesn't make any difference.
+
+2015-11-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix double-decrement bug when freeing global refs
+
+       * src/emacs-module.c (module_free_global_ref): Add a FIXME
+       comment about error reporting.  Fix a recently-introduced typo
+       that double-decremented the refcount.
+
+2015-11-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Declare emacs_module_init in the module API
+
+       * src/emacs-module.h (emacs_module_init): New decl.
+       Without it, GCC might complain about a module that defines
+       emacs_module_init without using it.  This also checks the
+       API better.
+
+2015-11-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix module test to use ptrdiff_t nargs too
+
+       * modules/mod-test/mod-test.c (Fmod_test_return_t)
+       (Fmod_test_sum, Fmod_test_signal, Fmod_test_throw)
+       (Fmod_test_non_local_exit_funcall, Fmod_test_globref_make)
+       (Fmod_test_string_a_to_b, Fmod_test_userptr_make)
+       (Fmod_test_userptr_get, Fmod_test_vector_fill)
+       (Fmod_test_vector_eq): Arg counts are ptrdiff_t, not int.
+       (finalizer): Remove; no longer used.
+
+2015-11-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix reindent-introduced typo in module code
+
+       * src/emacs-module.c (MODULE_SETJMP_1): Fix typo that I
+       introduced while reindenting the code earlier, and add a
+       comment explaining the unusual use of do-while here.
+
+2015-11-20  Anders Lindgren  <andlind@gmail.com>
+
+       Fixed bug#19576: `write-file' saves wrong buffer.
+
+       If a function on the hook `window-size-change-functions' doesn't
+       restore the current buffer, functions that save and restore the
+       current window configuration (like `y-or-no-p') could silently
+       change the current buffer.  When `write-file' asked the user
+       confirmation to overwrite a file, `y-or-no-p' changed the current
+       buffer, and the wrong buffer was saved to the file.
+
+       * lisp/follow.el (follow-windows-start-end): Call `select-frame'
+       using the `norecord' parameter.
+       (follow-window-size-change): Restore current buffer. Call
+       `select-frame' using the `norecord' parameter. Cleanup.
+
+2015-11-20  John Wiegley  <johnw@newartisans.com>
+
+       Correct a documentation error in frames.texi
+
+2015-11-20  Stephen Leake  <stephen_leake@stephe-leake.org>
+
+       * lisp/cedet/mode-local.el: Delete obsolete comment
+
+2015-11-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Module function arg counts are ptrdiff_t, not int
+
+       * src/emacs-module.c (struct module_fun_env)
+       (module_make_function, module_funcall, Fmodule_call):
+       * src/emacs-module.h (struct emacs_runtime, struct emacs_env_25):
+       Use ptrdiff_t, not int, for arg counts.
+       * src/emacs-module.c (module_make_function): Don’t bother
+       checking arity against MOST_POSITIVE_FIXNUM, as that’s
+       unnecessary here.  Make the checking clearer by negating it.
+       (module_make_function, Fmodule_call): No need to use xzalloc
+       since the storage doesn’t need to be cleared.
+       (module_funcall): Don’t use VLA, since C11 doesn’t guarantee support
+       for it, and many implementations are buggy with large VLAs anyway.
+       Use SAFE_ALLOCA_LISP instead.
+       (module_vec_set): Don’t crash if i < 0.
+       (module_vec_get): Don’t crash if i < MOST_NEGATIVE_FIXNUM.
+       (module_vec_set, module_vec_get): Do fixnum checks only when
+       i is out of array bounds, for efficiency in the usual case.
+       (Fmodule_load): Simplify fixnum range check.
+       (Fmodule_call): Simplify arity check.  Use xnmalloc to detect
+       integer overflow in array allocation size.
+
+2015-11-20  Eli Zaretskii  <eliz@gnu.org>
+
+       Minor improvements in module test
+
+       * modules/mod-test/mod-test.c: Include stdlib.h, to avoid warnings
+       about missing prototype of malloc.
+       * modules/mod-test/Makefile (CFLAGS): Add -std=gnu99, to avoid
+       compiler warnings.
+
+2015-11-20  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve MS-Windows implementation in dynlib.c
+
+       * src/dynlib.c [WINDOWSNT]: Include errno.h, lisp.h, and w32.h.
+       No need to include windows.h, as w32.h already does that.
+       <dynlib_last_err>: New static variable.
+       (dynlib_reset_last_error): New function.
+       (dynlib_open): Convert forward slashes to backslashes.  Convert
+       file names from UTF-8 to either UTF-16 or the current ANSI
+       codepage, and call either LoadLibraryW or LoadLibraryA.  If the
+       argument is NULL, return a handle to the main module, like
+       'dlopen' does.  Record the error, if any, for use by dynlib_error.
+       (dynlib_sym): Check the handle for validity. Record the error, if
+       any, for use by dynlib_error.
+       (dynlib_error): Call w32_strerror to produce the error string, and
+       zero out the last error code, like dlerror does.
+       (dynlib_close): Check the handle for validity.  Record the error,
+       if any, for use by dynlib_error.  Don't call FreeLibrary with a
+       handle for the main module.
+       * src/w32.c (globals_of_w32): Call dynlib_reset_last_error.
+
+2015-11-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Include-file tweaks for modules
+
+       * src/dynlib.c, src/emacs-module.c: Include <config.h> first.
+       * src/dynlib.h: Do not include config.h.
+       It’s every .c file’s responsibility to include config.h first.
+       * src/emacs-module.c: Include emacs-module.h immediately after
+       config.h, to test that emacs-module.h doesn’t depend on
+       include files other than config.h.
+
+2015-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify push_handler and profile its malloc
+
+       * src/lisp.h (PUSH_HANDLER): Remove.
+       All callers changed to use push_handler directly.
+       * src/eval.c (internal_condition_case)
+       (internal_condition_case_1, internal_condition_case_2)
+       (internal_condition_case_n):
+       Use same pattern as for other invokers of push_handler.
+       (push_handler, push_handler_nosignal): Use call-by-value
+       instead of call-by-reference.  All uses changed.
+       (push_handler): Simplify by rewriting in terms of
+       push_handler_nosignal.
+       (push_handler_nosignal): Profile any newly allocated memory.
+
+2015-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/emacs-module.h: Include stddef.h, not stdlib.h.
+
+2015-11-19  Juanma Barranquero  <lekktu@gmail.com>
+
+       Discover repository version in linked worktrees (bug#21930)
+
+       * lisp/version.el (emacs-repository--version-git-1): Do not assume
+       HEAD is at .git/HEAD, it can also be at .git/worktrees/<branch>/HEAD.
+       (emacs-repository-get-version): Grok linked worktrees when EXTERNAL
+       is nil too.
+
+2015-11-19  Juri Linkov  <juri@linkov.net>
+
+       * lisp/replace.el (occur-regexp-descr): New function.
+       (occur-1, occur-engine): Use it.
+
+       * lisp/isearch.el (isearch-occur): Propertize regexp with
+       isearch-string and isearch-regexp-function-descr for
+       occur-regexp-descr to display the correct description
+       message in the header (bug#21176, bug#21180).
+
+2015-11-19  Karl Fogel  <kfogel@red-bean.com>
+
+       Revert `open-line' electric-indent sensitivity
+
+       * lisp/simple.el (open-line): Remove electric indent code.
+         (electric-indent-just-newline): Don't declare.
+
+       * test/automated/simple-test.el (open-line-indent): Adjust test.
+
+       This partly reverts Artur Malabarba's change that added electric
+       indent sensitivity to `open-line' (Oct 24 22:26:27 2015 +0100, git
+       commit bd4f04f86), and adjusts a new test he added right afterwards
+       (Sat Oct 24 23:43:06 2015 +0100, git commit 207f235e3) accordingly.
+       However, the new INTERACTIVE argument to `open-line', which he also
+       added in the first commit, is not reverted here.
+
+       See the thread "Questioning the new behavior of `open-line'." on the
+       Emacs Devel mailing list, and in particular this message:
+
+         From: Artur Malabarba
+         Subject: Re: Questioning the new behavior of `open-line'.
+         To: Karl Fogel
+         Cc: David Kastrup, Pierpaolo Bernardi, emacs-devel
+         Date: Wed, 18 Nov 2015 21:03:58 +0000
+         Message-ID: \
+           <CAAdUY-KN06pvCMy5bt3+Buk3yeKjf6n9iB2FaSTTOPpCqPwyhA@mail.gmail.com>
+
+         https://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01707.html
+
+2015-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Omit unnecessary clear in Fmodule_load
+
+       * src/emacs-module.c (Fmodule_load):
+       Simplify and avoid unnecessary initialization of priv member to 0.
+
+       * src/emacs-module.c: (module_vec_set, module_vec_get, module_vec_size)
+
+2015-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Prefer signed integer types in module code
+
+       Generally speaking, at the C level the Emacs source code prefers
+       signed types like ‘ptrdiff_t’ to unsigned types like ‘size_t’,
+       partly to avoid the usual signedness confusion when comparing values.
+       Change the module API to follow this convention.
+       Use ‘int’ for small values that can’t exceed INT_MAX.
+       * modules/mod-test/mod-test.c (Fmod_test_globref_make)
+       (Fmod_test_string_a_to_b, Fmod_test_vector_fill)
+       (Fmod_test_vector_eq):
+       * src/emacs-module.c (struct emacs_value_frame)
+       (module_make_global_ref, module_free_global_ref)
+       (module_copy_string_contents, module_make_string)
+       (module_vec_set, module_vec_get, module_vec_size):
+       * src/emacs-module.h (struct emacs_runtime, struct emacs_env_25):
+       * src/lread.c (suffix_p):
+       Prefer signed to unsigned integer types.
+
+2015-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Omit ‘const’ on locals
+
+       Remove ‘const’ qualifier from locals that were newly added.
+       We don’t normally bother declaring locals with ‘const’ even
+       though they are not modified, for the same reason we don’t
+       bother declaring them with ‘register’ even though their
+       addresses are not taken; the advantage in compile-time
+       checking isn’t worth the loss of readability.
+       * modules/mod-test/mod-test.c (Fmod_test_non_local_exit_funcall)
+       (Fmod_test_vector_fill, Fmod_test_vector_eq):
+       * src/emacs-module.c (MODULE_SETJMP_1)
+       (module_make_global_ref, module_free_global_ref)
+       (module_non_local_exit_get, module_make_function)
+       (module_extract_integer, module_extract_float)
+       (module_get_user_ptr, module_set_user_ptr)
+       (module_get_user_finalizer, module_set_user_finalizer)
+       (module_vec_get, Fmodule_call)
+       (module_non_local_exit_signal_1)
+       (module_non_local_exit_throw_1, lisp_to_value)
+       (finalize_storage, allocate_emacs_value, mark_modules)
+       (module_handle_signal, module_handle_throw)
+       (module_format_fun_env):
+       * src/eval.c (push_handler, push_handler_nosignal)
+       (init_handler):
+       * src/lread.c (suffix_p):
+       Omit unnecessary ‘const’.
+
+2015-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Prefer intmax_t to int64_t in module code
+
+       * modules/mod-test/mod-test.c (sum, Fmod_test_sum):
+       * src/emacs-module.c (module_extract_integer)
+       (module_make_integer):
+       * src/emacs-module.h (struct emacs_env_25):
+       Prefer intmax_t to int64_t.  This doesn’t change the generated
+       code on any of the machines Emacs currently ports to, but it’s
+       at least in theory more future-proof as C99 doesn’t guarantee
+       that int64_t exists.
+
+2015-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Rename module.c to emacs-module.c, etc.
+
+       * src/emacs-module.c: Rename from src/module.c.
+       * src/emacs-module.h: Rename from src/module.h.
+       All uses changed.
+
+2015-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix minor module problems found by static checking
+
+       * src/dynlib.c (dynlib_close): #ifdef out for now, as it’s not used.
+       * src/eval.c, src/lisp.h (lisp_eval_depth): Now static.
+       * src/module.c (Fmodule_load): Fix pointer signedness bug.
+       (Fmodule_call): Tell GCC that the default case is unreachable.
+
+2015-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Style fixes for indenting etc. in module code
+
+       This is mostly indenting and spacing changes.  Also, remove
+       some unnecessary static decls instead of bothering to reindent them.
+       * src/module.h (EMACS_EXTERN_C_BEGIN): Remove, and do this inline,
+       as most other Emacs files do for this sort of thing.
+
+2015-11-19  Eli Zaretskii  <eliz@gnu.org>
+
+       Minor improvements in modules testing Makefile
+
+       * modules/mod-test/Makefile (EMACS, SO): New variables.
+       (CFLAGS): When SO = dll, don't use -fPIC.
+       (check): New target, runs the test.
+
+2015-11-19  Eli Zaretskii  <eliz@gnu.org>
+
+       * .gitignore: Add "*.dll".
+
+2015-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Migrate modules/.gitignore into .gitignore
+
+       * .gitignore: Add former contents of modules/.gitignore.
+       * modules/.gitignore: Remove.
+
+2015-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Add copyright notices to module code
+
+       Put them in the usual format for GNU Emacs copyright notices.
+
+2015-11-19  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Rename emacs_module.h to module.h
+
+       * src/module.h: Rename from src/emacs_module.h.
+       All uses changed.
+
+2015-11-19  Juanma Barranquero  <lekktu@gmail.com>
+
+       * src/module.c (Fmodule_load): Remove unused vars `doc_name', `args'
+
+       * src/lread.c (Fload): Remove unused variable `size'
+
+2015-11-19  Alan Mackenzie  <acm@muc.de>
+
+       src/keyboard.c (pre-command-hook): Fix typo in doc string: "pre" -> "post".
+
+2015-11-18  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Prioritize looking inside vc-parent-buffer over log-view-mode fallback
+
+       * lisp/vc/vc.el (vc-deduce-fileset): Prioritize looking inside
+       vc-parent-buffer over log-view-mode fallback (bug#21955).
+
+2015-11-18  Alan Mackenzie  <acm@muc.de>
+
+       lisp/isearch.el: Eliminate macro isearch-call-message, replacing with funcall.
+
+2015-11-18  Ken Brown  <kbrown@cornell.edu>
+
+       * configure.ac (LIBMODULES): Don’t define on Cygwin
+
+2015-11-18  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix MS-Windows build --with-modules
+
+       * src/module.c: Reformat copyright commentary.
+       (module_vec_get): Use explicit cast to size_t to avoid compiler
+       warning in 32-bit builds.
+       (check_main_thread) [WINDOWSNT]: Fix letter-case in Windows APIs.
+       Compare thread IDs directly, as GetThreadId is not available
+       before Windows Vista.
+       (check_main_thread) [WINDOWSNT]: Duplicate the thread handle
+       without using APIs and constants not available on XP and older
+       systems.  Obtain and store the thread ID as well.
+
+2015-11-18  Aurélien Aptel  <aurelien.aptel@gmail.com>
+           Philipp Stephani  <phst@google.com>
+
+       Add dynamic module test and helper script
+
+       Add 'modhelp.py' script (python2) to automate module testing and
+       module generation.
+
+       To build and test all modules in the modules/ dir
+         $ ./modhelp.py test
+
+       To generate a module from template code (good starting point)
+         $ ./modhelp init mynewtestmodule
+
+       See the script -h option for more documentation.
+
+       * modules/modhelp.py: New module helper script.
+       * modules/mod-test/Makefile: New file. Makefile for the test module.
+       * modules/mod-test/mod-test.c: New file. Test module source file.
+       * modules/mod-test/test.el: New file. ert test suite for the test module.
+       * modules/.gitignore: New file. Local .gitignore file.
+
+2015-11-18  Aurélien Aptel  <aurelien.aptel@gmail.com>
+
+       Make 'Fload' look for modules
+
+       'Fload' can now load dynamic modules. This also makes 'require' work.
+
+       * src/lread.c:
+         (suffix_p): New function.
+         (Fload): Use 'suffix_p'.  Call 'Fmodule_load' when we try to load a file
+         with a module suffix.
+         (syms_of_lread): Append module suffix to 'Vload_suffixes'.
+
+2015-11-18  Aurélien Aptel  <aurelien.aptel@gmail.com>
+           Philipp Stephani  <phst@google.com>
+
+       Add dynamic module module support
+
+       * configure.ac: Add '--with-modules' option.  Conditionally add
+         dynlib.o and module.o to the list of objects.  Add any system
+         specific flags to the linker flags to support dynamic libraries.
+       * m4/ax_gcc_var_attribute.m4: Add autoconf extension to test gcc
+         attributes.
+       * src/Makefile.in: Conditionally add module objects and linker flags.
+       * src/alloc.c (garbage_collect_1): protect module local values from
+         GC.
+       * src/lisp.h: Add 'module_init' and 'syms_of_module' prototypes.
+       * src/emacs_module.h: New header file included by modules.  Public
+         module API.
+       * src/module.c: New module implementation file.
+
+2015-11-18  Aurélien Aptel  <aurelien.aptel@gmail.com>
+
+       Add new User Pointer (User_Ptr) type
+
+       * src/lisp.h: Add new Lisp_Misc_User_Ptr type.
+       (XUSER_PTR): New User_Ptr accessor.
+       * src/alloc.c (make_user_ptr): New function.
+       (mark_object, sweep_misc): Handle Lisp_Misc_User_Ptr.
+       * src/data.c (Ftype_of): Return 'user-ptr' for user pointer.
+       (Fuser-ptrp): New user pointer type predicate function.
+       (syms_of_data): New 'user-ptrp', 'user-ptr' symbol.  New 'user-ptrp'
+       subr.
+       * src/print.c (print_object): Add printer for User_Ptr type.
+
+2015-11-18  Aurélien Aptel  <aurelien.aptel@gmail.com>
+           Philipp Stephani  <phst@google.com>
+
+       Add portable layer for dynamic loading
+
+       * src/dynlib.h: New file.
+       * src/dynlib.c: New file.
+
+2015-11-18  Philipp Stephani  <phst@google.com>
+
+       Add catch-all & no-signal version of PUSH_HANDLER
+
+       Ground work for modules. Add a non-signaling version of PUSH_HANDLER and
+       a new "catch-all" handler type.
+
+       * src/eval.c (init_handler, push_handler, push_handler_nosignal): New
+         functions.
+       * src/fns.c (hash_remove_from_table): Expose function public.
+       * src/lisp.h: New handler type, define macro to push_handler call.
+
+2015-11-18  Ken Brown  <kbrown@cornell.edu>
+
+       Silence byte-compiler warning
+
+       * lisp/server.el (server-process-filter): Silence byte-compiler
+       warning.
+
+2015-11-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Quote symbols in docstrings using `'
+
+       Be more systematic about quoting symbols `like-this' rather than
+       `like-this or 'like-this' in docstrings.  This follows up Artur
+       Malabarba's email in:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01647.html
+
+2015-11-18  Peder O. Klingenberg  <peder@klingenberg.no>
+
+       Fix savegames in dunnet
+
+       * lisp/play/dunnet.el (dun-rot13): Use the standard rot13-region instead
+         of separate implementation.
+
+2015-11-18  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/package.el (package--with-response-buffer):
+
+       Ensure we're at the start of the buffer before searching for
+       the end of headers.
+
+2015-11-17  Xue Fuqiao  <xfq.free@gmail.com>
+
+       * admin/release-process: Improve wording.
+
+2015-11-17  Xue Fuqiao  <xfq.free@gmail.com>
+
+       Backport: * CONTRIBUTE: Remove information about feature freeze.
+
+       (cherry picked from commit ae0653b5ab9ee223751ec389b87011963e1cbbef)
+
+2015-11-17  Xue Fuqiao  <xfq.free@gmail.com>
+
+       Backport: Document the release process
+
+       * admin/notes/versioning: Add information about RC releases.
+       * admin/release-process: Document the release process.
+       * admin/authors.el (authors-ignored-files):
+       * admin/README: Change FOR-RELEASE to release-process.
+       * CONTRIBUTE:
+       * admin/notes/bugtracker: Don't mention FOR-RELEASE.
+
+       (cherry picked from commit 9a4aa0f5945a03611ae29c516025dbd353bd26ab)
+
+2015-11-17  Xue Fuqiao  <xfq.free@gmail.com>
+
+       Backport: * admin/release-process: Rename from admin/FOR-RELEASE.
+
+       (cherry picked from commit f8cc14b59700e51a4e31139c0a65c8154995e055)
+
+2015-11-17  Xue Fuqiao  <xfq.free@gmail.com>
+
+       Backport: Mention CONTRIBUTE in README
+
+       Mention CONTRIBUTE in README, since it was moved from etc/ to root.
+       * etc/TODO: Remove the reference to `etc/CONTRIBUTE'.
+       * README: Mention CONTRIBUTE.
+
+       (cherry picked from commit ed2e7e20ae0945288c98091f308f5460c3453873)
+
+2015-11-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix docstring quoting problems with ‘ '’
+
+       Problem reported by Artur Malabarba in:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01513.html
+       Most of these fixes are to documentation; many involve fixing
+       longstanding quoting glitches that are independent of the
+       recent substitute-command-keys changes.  The changes to code are:
+       * lisp/cedet/mode-local.el (mode-local-augment-function-help)
+       (describe-mode-local-overload):
+       Substitute docstrings before displaying them.
+       * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda):
+       Quote the generated docstring for later substitution.
+
+2015-11-17  Eli Zaretskii  <eliz@gnu.org>
+
+       Improve configure --help text for wide ints
+
+       * configure.ac (wide-int): Clarify user-level advantages and
+       disadvantages.
+
+2015-11-17  Stephen Leake  <stephen_leake@stephe-leake.org>
+
+       Improve doc string
+
+       * lisp/progmodes/xref.el (xref-backend-references): Improve doc string.
+
+2015-11-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       eval_sub followed dangling pointer when debugging
+
+       Problem reported by Pip Cet (Bug#21245).
+       This bug could occur in eval_sub if the C compiler reused
+       storage associated with the ‘argvals’ local after ‘argvals’
+       went out of scope, and if the Elisp debugger stopped on Elisp
+       function exit and accessed ‘argvals’.  It could also occur if
+       a variadic function was called with so many arguments (over
+       2048 args on x86-64) that SAFE_ALLOCA_LISP called malloc, then
+       SAFE_FREE freed the arguments, then the memory manager used
+       the storage for other purposes, then the debugger accessed the
+       arguments.
+       * src/eval.c (eval_sub): Declare ‘argvals’ at top level of
+       function body.  Simplify local decls.
+       When allocating args via SAFE_ALLOCA, call
+       debugger before invoking SAFE_FREE, as the debugger needs
+       access to the args.
+       (eval_sub, apply_lambda): Rework to avoid need for
+       set_backtrace_debug_on_exit hack.  This is cleaner,
+       and should work better with buggy custom debuggers.
+
+2015-11-16  Daiki Ueno  <ueno@gnu.org>
+
+       * lisp/image-mode.el: Support encrypted file
+
+       (image-toggle-display-image): Read content from the buffer instead
+       of the file, if the buffer holds a decrypted data.  (Bug#21870)
+
+2015-11-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       ELF unexec: align section header
+
+       This ports the recent unexelf.c changes to Fedora x86-64
+       when configured with GCC’s -fsanitize=undefined option.
+       * src/unexelf.c (unexec): Align new_data2_size to a multiple
+       of ElfW (Shdr)’s alignment, so that NEW_SECTION_H returns a
+       pointer aligned appropriately for its type.
+
+2015-11-16  Andreas Schwab  <schwab@linux-m68k.org>
+
+       Do more checks on bytecode objects (Bug#21929)
+
+       * src/eval.c (funcall_lambda): Check size of compiled function
+       object.
+       (Ffetch_bytecode): Likewise.
+
+2015-11-16  Johan Bockgård  <bojohan@gnu.org>
+
+       pcase.el: Fix edebugging of backquoted cons patterns
+
+       * lisp/emacs-lisp/pcase.el (pcase-QPAT): Fix edebugging of backquoted
+       cons patterns. (Bug#21920)
+
+2015-11-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Improve fix for regex reentrancy abort
+
+       Suggested by Stefan Monnier (Bug#21688).
+       * src/syntax.c (update_syntax_table_forward):
+       Remove recently-added PROPERTIZE arg, and assume it is true.
+       All callers changed.
+       * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST):
+       Invoke update_syntax_table directly.
+
+2015-11-16  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/faces.el (faces--attribute-at-point): Use `face-list-p'
+
+       * lisp/emacs-lisp/package.el (package--with-response-buffer): Missing require
+
+       * lisp/emacs-lisp/nadvice.el (add-function): Escape quote
+
+2015-11-15  Vasily Korytov  <vasily.korytov@yahoo.com>
+
+       Recognize .rbw and .pyw files (bug#18753)
+
+       * lisp/progmodes/python.el (auto-mode-alist):
+       Recognize .pyw files.
+
+       * lisp/progmodes/ruby-mode.el (auto-mode-alist):
+       Recognize .rbw files.
+
+2015-11-15  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Fix ruby-mode auto-mode-alist entry
+
+       * lisp/progmodes/ruby-mode.el (auto-mode-alist): Add grouping
+       around the extensions (bug#21257).
+
+2015-11-15  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Fix etags completion near eob
+
+       * lisp/progmodes/etags.el (tags-completion-at-point-function):
+       Use `goto-char', to avoid the end-of-buffer error (bug#20061).
+
+2015-11-15  Alan Mackenzie  <acm@muc.de>
+
+       De-pessimize detection of C++ member initialization lists.
+
+       list/progmodes/cc-engine.el (c-back-over-list-of-member-inits): New macro.
+       (c-back-over-member-initializers): Reformulate such that c-at-toplevel-p
+       is only called when a construct "looks right" rather than continually.
+       (c-guess-basic-syntax, CASE 5R): Add a check for the mode being C++ Mode.
+
+2015-11-15  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       Backport: * lisp/emacs-lisp/package.el: Fix a decoding issue.
+
+       * lisp/url/url-handlers.el (url-insert-file-contents): Move some code to
+       `url-insert-buffer-contents'.
+       (url-insert-buffer-contents): New function
+
+       (package--with-response-buffer): Use `url-insert-buffer-contents'.
+       The previous code had some issues with decoding. Refactoring that
+       function allows us to use the decoding from url-handlers while still
+       treating both sync and async requests the same.
+
+2015-11-15  Stephen Leake  <stephen_leake@stephe-leake.org>
+
+       Improve a few doc strings, comments
+
+       * lisp/cedet/cedet-global.el (cedet-gnu-global-expand-filename):
+       * lisp/cedet/ede/locate.el (ede-locate-base):
+       * lisp/cedet/semantic/symref.el (semantic-symref-calculate-rootdir):
+       * src/fns.c (Fdelq): Improve doc string.
+
+       * lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions): Add FIXME.
+
+2015-11-15  Anders Lindgren  <andlind@gmail.com>
+
+       Enhance NSTRACE (trace output for NextStep).
+
+       Trace can be disabled for groups of functions. By default, event
+       functions and functions that generate lots of output are disabled.
+
+       Trace output of Objective-C functions now use the "[ClassName
+       parameter:]" form.
+
+       * src/nsterm.h (NSTRACE_ALL_GROUPS, NSTRACE_GROUP_EVENTS)
+       (NSTRACE_GROUP_UPDATES, NSTRACE_GROUP_FRINGE, NSTRACE_GROUP_COLOR)
+       (NSTRACE_GROUP_GLYPHS, NSTRACE_GROUP_FOCUS): New macros,
+       controlling in which function groups trace should be active.
+       (NSTRACE_WHEN): Support for silencing a function, this also
+       silencing all called functions.
+       (NSTRACE_UNSILENCE): New macro, used to re-enable trace.
+       (NSTRACE_FMT_FSTYPE, NSTRACE_ARG_FSTYPE): New macros, used to
+       print the full screen state in NSTRACE functions.
+
+       * src/nsterm.m (nstrace_depth, nstrace_num): Made volatile as they
+       can be accessed from multiple threads.
+       (nstrace_enabled_global): New variable, when FALSE, trace is
+       silenced.
+       (nstrace_restore_global_trace_state): New function, used to
+       restore `nstrace_enabled_global' at end of block.
+       ([EmacsView setFrame:], [EmacsWindow setFrame:display:])
+       ([EmacsWindow setFrame:display:animation:])
+       ([EmacsWindow setFrameTopLeftPoint:]): New functions, print trace
+       and call corresponding super function.
+       (Many functions): Add or enhance trace output.
+
+       * src/nsimage.m (ns_image_from_file): Enhanced trace output.
+
+       * src/nsfns.m (x_set_tool_bar_lines): Add trace output.
+
+       * src/nsmenu.m ([EmacsToolbar setVisible:]): New function, print trace
+       and call corresponding super function.
+
+2015-11-15  Anders Lindgren  <andlind@gmail.com>
+
+       Fixed a toolbar related issue on OS X.
+
+       Earlier, when toggling the tool-bar in a maximized frame, the
+       frame size didn't match the number of text lines, leaving an
+       unused area at the bottom of the frame.
+
+       * nsfns.m (x_set_tool_bar_lines): Exit maximized and full height
+       fullscreen modes when tool bar is disabled.
+
+2015-11-15  Anders Lindgren  <andlind@gmail.com>
+
+       Fixed OS X 10.6.8 build issue (bug#21862).
+
+       * src/nsterm.h (EmacsView): Add missing declarations.
+       * src/nsterm.m ([EmacsView windowDidBecomeKey]): New method, like
+       the standard method but without the notification parameter.
+       Intended to be used for direct calls.
+       ([EmacsView windowDidEnterFullScreen]): Call the non-notification
+       version of `windowDidBecomeKey'. Made the notification method call
+       the non-notification method instead of the vice versa.
+       (NSWindowDidEnterFullScreenNotification): Deleted, no longer
+       needed.
+
+2015-11-15  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/faces.el (faces--attribute-at-point): Fix an issue
+
+       Previous code would signal an error when the face at point was
+       a manually built list of attributes such as '(:foregroud "white").
+
+       * test/automated/faces-tests.el (faces--test-color-at-point): Add a test
+
+2015-11-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix regex abort when it tries to reenter itself
+
+       Problem reported by Ken Raeburn.
+       Solution suggested by Stefan Monnier (Bug#21688).
+       * src/regex.c (re_match_2_internal):
+       Use new _FAST functions to avoid regex code reentering itself.
+       * src/syntax.c (update_syntax_table_forward): New arg PROPERTIZE.
+       All callers changed.
+       * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST)
+       (UPDATE_SYNTAX_TABLE_FAST): New inline functions.
+
+2015-11-15  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Improve Ruby 1.9-style keyword keys highlighting
+
+       * lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords):
+       Handle required keyword arguments (bug#21367).
+       And highlight the colon together with the name.
+
+2015-11-15  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Unify the absolutely equal xref-backend-references implementations
+
+       * lisp/progmodes/elisp-mode.el (xref-backend-references):
+       Remove.
+
+       * lisp/progmodes/etags.el (xref-backend-references):
+       Remove.
+
+       * lisp/progmodes/xref.el (xref-backend-references):
+       Define the default implementation.
+
+2015-11-14  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Update project-find-regexp for the new xref API
+
+       * lisp/progmodes/project.el (project--read-regexp):
+       Update to use the new xref API methods.
+
+       * lisp/progmodes/xref.el (xref-find-backend): Autoload.
+
+2015-11-14  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Fix replacing a match with a shorter string
+
+       In effect, partially reverting fe973fc.
+
+       * lisp/progmodes/xref.el (xref-query-replace): Store the end
+       of each match as a marker again, instead of length.
+       (xref--query-replace-1): Update accordingly.
+
+2015-11-14  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/progmodes/xref.el (xref-pop-marker-stack): Downgrade errors
+
+       Signal user-errors instead.
+
+2015-11-14  Eli Zaretskii  <eliz@gnu.org>
+
+       Document 'describe-symbol'
+
+       * doc/emacs/help.texi (Help Summary): Mention "C-h o".
+       (Name Help): Document "C-h o" and describe-symbol.
+
+       * lisp/help-fns.el (describe-symbol): Doc fix.
+
+2015-11-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Change test name to avoid spellcheck issue.
+
+2015-11-14  Eli Zaretskii  <eliz@gnu.org>
+
+       Avoid signaling an error in 'describe-symbol'
+
+       * lisp/help-fns.el (describe-symbol): Avoid errors when the symbol
+       exists as a function/variable/face/etc., but is undocumented.
+
+       * test/automated/help-fns.el (help-fns-test-describe-symbol): New
+       test.
+
+2015-11-14  Eli Zaretskii  <eliz@gnu.org>
+
+       * INSTALL (--with-cairo): Document this new configure option.
+
+2015-11-14  Eli Zaretskii  <eliz@gnu.org>
+
+       Document that GNU Make >= 3.81 is required to build Emacs
+
+       * doc/lispref/internals.texi (Building Emacs): Document that GNU
+       Make 3.81 or later is now required.
+
+2015-11-14  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       Backport: * lisp/emacs-lisp/package.el: Refactor -with-work-buffer-async.
+
+       (package--with-work-buffer-async): Reimplement as
+       `package--with-response-buffer'.
+       (package--with-work-buffer): Mark obsolete.
+       (package--with-response-buffer): New macro. This is a more self
+       contained and less contrived version of
+       `package--with-work-buffer-async'.  It uses keyword arguments,
+       doesn't have async on the name, doesn't fallback on
+       `package--with-work-buffer', and has _much_ simpler error
+       handling.  On master, this macro will soon be part of another
+       library (either standalone or inside url.el), which is why this
+       commit is not to be merged back.
+
+       (package--check-signature, package--download-one-archive)
+       (package-install-from-archive, describe-package-1): Use it.
+
+       (package--download-and-read-archives): Let
+       `package--download-one-archive' take care of calling
+       `package--update-downloads-in-progress'.
+
+2015-11-14  Eli Zaretskii  <eliz@gnu.org>
+
+       * CONTRIBUTE (Branches): Improve wording for back-ported commits.
+
+2015-11-14  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Merge branch 'master' into emacs-25
+
+2015-11-13  John Wiegley  <johnw@newartisans.com>
+
+       Merge remote-tracking branch 'origin/master' into emacs-25
+
+2015-11-13  l3thal  <kwhite@gnu.org>
+
+       Merge branch 'erc-async-reconnect' into emacs-25
+
+       Reconnect asynchronously.
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25
+
+2015-11-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port recent XCB changes to 64-bit ‘long int’
+
+       For historical reasons, libX11 represents 32-bit values like Atoms as
+       ‘long int’ even on platforms where ‘long int’ is 64 bits.  XCB doesn’t
+       do that, so adapt the recent XCB code to behave properly on 64-bit
+       platforms.  Also, fix what appears to be a bug in the interpretation
+       of xcb_get_property_value_length, at least on my Fedora platform
+       which is running libxcb-1.11-5.fc21.
+       * src/xfns.c (x_real_pos_and_offsets):
+       * src/xterm.c (get_current_wm_state):
+       xcb_get_property_value_length returns a byte count, not a word count.
+       For 32-bit quantities, xcb_get_property_value returns a vector
+       of 32-bit words, not of (possibly 64-bit) long int.
+
+       Backport.
+
+2015-11-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/undo.c (run_undoable_change): Now static.
+
+       Backport.
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Remove support for ':timeout' from w32 tray notifications
+
+       * src/w32fns.c (Fw32_notification_notify): Delete the code that
+       supports ':timeout'.
+       (syms_of_w32fns): Don't DEFSYM ':timeout'.  This avoids clashes
+       with dbusbind.c when D-Bus is compiled in.
+
+       * doc/lispref/os.texi (Desktop Notifications): Don't mention
+       ':timeout'.
+
+       Backport.
+
+2015-11-13  Juanma Barranquero  <lekktu@gmail.com>
+
+       * test/automated/simple-test.el: Add test for bug#20698 (bug#21885)
+
+       (simple-test--transpositions): New macro.
+       (simple-transpose-subr): New test.
+
+       Backport.
+
+2015-11-13  Juanma Barranquero  <lekktu@gmail.com>
+
+       * lisp/progmodes/elisp-mode.el: Declare function `project-roots'
+
+       Backport.
+
+2015-11-13  Juanma Barranquero  <lekktu@gmail.com>
+
+       * src/undo.c: Small fixes for previous change
+
+       (run_undoable_change): Mark void argument list.
+       (record_property_change): Remove unused variable `boundary'.
+
+       Backport.
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Add a few more variables to redisplay--variables
+
+       * lisp/frame.el (redisplay--variables): Add bidi-paragraph-direction
+       and bidi-display-reordering to the list.
+
+       Backport.
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       * lisp/loadup.el: Enlarge the size of the hash table to 80000.
+
+       Backport.
+
+2015-11-13  Eli Barzilay  <eli@barzilay.org>
+
+       Fix point positioning after transposing with negative arg
+
+       * lisp/simple.el (transpose-subr): When invoked with a negative
+       argument, move point to after the transposed text, like we do
+       when invoked with a positive argument.  (Bug#21885)
+
+       Backport.
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix last change in shr.el
+
+       * lisp/net/shr.el (shr--have-one-fringe-p): Rename from
+       have-fringes-p.  All callers changed.  Doc fix.  (Bug#21895)
+
+       Backport.
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix last change
+
+       * src/w32fns.c (syms_of_w32fns) [WINDOWSNT && !HAVE_DBUS]:
+       Don't DEFSYM tray notification symbols if D-Bus is being used.
+
+       Backport.
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Another fix for MinGW64 and Cygwin builds due to notifications
+
+       * src/w32fns.c: Ifdef away tray notification code if D-Bus is
+       being compiled into Emacs.
+       (syms_of_w32fns) [WINDOWSNT && !HAVE_DBUS]: Don't defsubr
+       Sw32_notification_notify and Sw32_notification_close if the code
+       is not compiled.  Reported by Andy Moreton <andrewjmoreton@gmail.com>.
+
+       Backport.
+
+2015-11-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       Remove intern calls and XXX comments from Fx_export_frames
+
+       * src/xfns.c (Fx_export_frames): Use Qpdf, Qpng, Qpostscript, and
+       Qsvg instead of intern calls.  Use "postscript" instead of "ps"
+       for consistency with image types.  Remove XXX comments.
+       (syms_of_xfns) <Qpdf>: DEFSYM it.
+
+       Backport.
+
+2015-11-13  Michael Albinus  <michael.albinus@gmx.de>
+
+       Adapt Tramp version, do not merge with master
+
+       * doc/misc/trampver.texi (trampver):
+       * lisp/net/trampver.el (tramp-version): Set to "2.2.13-25.1".
+
+2015-11-11  Alan Mackenzie  <acm@muc.de>
+
+       First commit to scratch/follow.  Make Isearch work with Follow Mode, etc.
+
+       doc/lispref/window.texi (Basic Windows): Add paragraph defining "Group of
+       Windows" and new @defun selected-window-group.
+       (Window Start and End): Describe new &optional parameter GROUP and
+       ...-group-function for window-start, window-end, set-window-start, and
+       pos-visible-in-window-p.
+       (Textual Scrolling) Describe the same for recenter.
+       doc/lispref/positions.texi (Screen Lines): Describe the same for
+       move-to-window-line.
+
+       src/window.c (Fwindow_start, Fwindow_end, Fset_window_start)
+       (Fpos_visible_in_window_p, Frecenter, Fmove_to_window_line): To each, add ar
+       new optional parameter "group".  At the beginning of each, check whether the
+       corresponding ...-group-function is set to a function, and if so execute this
+       function in place of the normal processing.
+       (syms_of_window): Define symbols for the six new variables below.
+       (window-start-group-function, window-end-group-function)
+       (set-window-start-group-function, recenter-group-function)
+       (pos-visible-in-window-p-group-function, move-to-window-line-group-function):
+       New permanent local buffer local variables.
+       src/keyboard.c (Fposn_at_point): Add extra parameter in call to
+       Fpos_visible_in_window_p.
+
+       lisp/window.el (selected-window-group-function): New permanent local buffer
+       local variable.
+       (selected-window-group): New function.
+
+       lisp/follow.el (follow-mode): Set the ...-group-function variables at mode
+       enable, kill them at mode disable.  Add/remove follow-after-change to/from
+       after-change-functions.
+       (follow-start-end-invalid): New variable.
+       (follow-redisplay): Manipulate follow-start-end-invalid.
+       (follow-after-change, follow-window-start, follow-window-end)
+       (follow-set-window-start, follow-pos-visible-in-window-p)
+       (follow-move-to-window-line, follow-sit-for): New functions.
+
+       lisp/isearch.el (isearch-call-message): New macro.
+       (isearch-update, with-isearch-suspended, isearch-del-char)
+       (isearch-search-and-update, isearch-ring-adjust): Invoke above new macro.
+       (with-isearch-suspended): Rearrange code such that isearch-call-message is
+       invoked before point is moved.
+       (isearch-message): Add comment about where point must be at function call.
+       (isearch-search): Remove call to isearch-message.
+       (isearch-lazy-highlight-window-group): New variable.
+       (isearch-lazy-highlight-new-loop): Unconditionally start idle timer.  Move
+       the battery of tests to ...
+       (isearch-lazy-highlight-maybe-new-loop): New function, started by idle timer.
+       Note: (sit-for 0) is still called.
+       (isearch-lazy-highlight-update): Check membership of
+       isearch-lazy-highlight-window-group.  Don't set the `window' overlay
+       property.
+       (isearch-update, isearch-done, isearch-string-out-of-window)
+       (isearch-back-into-window, isearch-lazy-highlight-maybe-new-loop)
+       (isearch-lazy-highlight-search, isearch-lazy-highlight-update)
+       (isearch-lazy-highlight-update): Call the six amended primitives (see
+       src/window.c above) with the new `group' argument set to t, to cooperate
+       with Follow Mode.
+
+2015-12-27  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * shr.el (shr-descend): Allow using lambdas in external functions.
+
+2015-12-25  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * admin/gitmerge.el: Tweaks that seemed necessary
+
+       * admin/gitmerge.el (gitmerge-skip-regexp): Remove "sync".
+       (gitmerge-maybe-resume): Provide explicit empty commit message.
+
+2015-12-25  Łukasz Stelmach  <stlman@poczta.fm>  (tiny change)
+
+       Use a different port for TLS erc
+
+       * lisp/erc/erc.el (erc-default-port-tls): New variable
+       (bug#19497).
+       * lisp/erc/erc.el (erc-tls): Use it.
+
+2015-12-25  Alain Schneble  <a.s@realize.ch>
+
+       Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044)
+
+       * test/lisp/url/url-parse-tests.el: Add tests covering url-generic-parse-url.
+       * test/lisp/url/url-expand-tests.el: Add tests covering url-expand-file-name.
+       * lisp/url/url-parse.el (url-generic-parse-url): Keep empty fragment
+       information in URL-struct.
+       * lisp/url/url-parse.el (url-path-and-query): Do not artificially turn empty
+       path and query into nil path and query, respectively.
+       * lisp/url/url-expand.el (url-expander-remove-relative-links): Do not turn
+       empty path into an absolute ("/") path.
+       * lisp/url/url-expand.el (url-expand-file-name): Properly resolve
+       fragment-only URIs. Do not just return them unchanged.
+       * lisp/url/url-expand.el (url-default-expander): An empty path in the relative
+       reference URI should not drop the last segment.
+
+2015-12-25  Alain Schneble  <a.s@realize.ch>
+
+       Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044)
+
+       * test/lisp/url/url-parse-tests.el: Add tests covering url-generic-parse-url.
+       * test/lisp/url/url-expand-tests.el: Add tests covering url-expand-file-name.
+       * lisp/url/url-parse.el (url-generic-parse-url): Keep empty fragment
+       information in URL-struct.
+       * lisp/url/url-parse.el (url-path-and-query): Do not artificially turn empty
+       path and query into nil path and query, respectively.
+       * lisp/url/url-expand.el (url-expander-remove-relative-links): Do not turn
+       empty path into an absolute ("/") path.
+       * lisp/url/url-expand.el (url-expand-file-name): Properly resolve
+       fragment-only URIs. Do not just return them unchanged.
+       * lisp/url/url-expand.el (url-default-expander): An empty path in the relative
+       reference URI should not drop the last segment.
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Let url use default file modes when copying files
+
+       * lisp/url/url-handlers.el (url-copy-file): Use default file
+       modes when copying files (bug#11400).
+
+2015-12-25  Devon Sean McCullough  <Emacs-Hacker2012@jovi.net>
+
+       Doc fix for url-http
+
+       * lisp/url/url-http.el (url-http): Document better return values
+         (bug#13187) (tiny change)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * eww.el (eww-display-html): Support <button> tags (bug#20485).
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Made ffap-url-p a defun instead of a defsubst
+
+       * lisp/ffap.el (ffap-url-p): Change from defsusbt to defun,
+       since there doesn't seem to be much of a reason for it to be a
+       defsubst (bug#18203).
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Add a command to view files in the browser to dired
+
+       * lisp/dired.el (dired-mode-map): Add the `W' command
+       (bug#18810).
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Allow http://user:pass@foo/ URLs again
+
+       * lisp/url/url-auth.el (url-basic-auth): Allow explicit
+       user/passwords in URLs (bug#19046).
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * eww.el (eww-mode-map): Fix command name of eww-toggle-colors.
+
+2015-12-25  Samer Masterson  <samer@samertm.com>
+
+       Autoload url-insert-buffer-contents
+
+       * lisp/url/url-handlers.el: Add autoload cookie so that
+       `package-list-packages' doesn't bug out (bug#21927) (tiny change)
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Allow toggling colors in eww
+
+       * doc/misc/eww.texi (Basics): Mention "C".
+
+       * lisp/net/eww.el (eww-toggle-colors): New command and keystroke.
+
+       * lisp/net/shr.el (shr-use-colors): New variable.
+       (shr-colorize-region): Use it.
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Follow meta refresh tags in eww
+
+       * eww.el (eww-tag-meta): Follow meta refresh tags (bug#22234).
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       More eww file name coding fixes
+
+       * eww.el (eww-decode-url-file-name): Use the base coding
+       system to check for encodability.
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Always save eww history
+
+       * eww.el (eww-setup-buffer): Always save history, even when
+       called from outside the eww buffer (bug#19638).
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Default web pages to right-to-left
+
+       * eww.el (eww-mode): Most web pages are left-to-right, so make
+       that the default (bug#19801).
+
+       * shr.el (shr-tag-html): Respect "dir" attributes
+       (left-to-right, right-to-left).
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Make toggling checkboxes work again
+
+       * eww.el (eww-update-field): Make toggling checkboxes work
+       again (bug#21881).
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Don't store cookies with empty names
+
+       * lisp/url/url-cookie.el (url-cookie-store): Refuse to store
+       cookies with empty names (bug#21936).
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Stop rendering HTML before specdlr exhaustion
+
+       Fixes: 22117
+
+       * shr.el (shr-descend): Stop rendering before we run out of
+       specpdl room (bug#22117).
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Use cl-reduce, not reduce.
+
+2015-12-25  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Allow several <tbody> tags in shr
+
+       * shr.el (shr-table-body): New function to find the real body
+       of a table.
+       (shr-tag-table): Use it to render several <tbody> tags in a
+       table (bug#22170).
+
+2015-12-24  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Make prettier unique file names in eww
+
+       (eww-make-unique-file-name): Make unique file names by making
+       files like foo(2).jpg instead of foo(1)(2).jpg.
+
+2015-12-24  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Decode hex-encoded URLs before using them as file names
+
+       * eww.el (eww-decode-url-file-name): New function.
+       (eww-download-callback): Use it to decode file names before
+       saving them.
+
+2015-12-24  Ashish SHUKLA  <ashish.is@lostca.se>
+
+       Add FreeBSD cert bundle
+
+       * doc/misc/emacs-gnutls.texi (Help For Users): Document
+       FreeBSD bundle.
+
+       * lisp/net/gnutls.el (gnutls-trustfiles): Add FreeBSD cert bundle.
+
+2015-12-24  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Allow overriding shr functions from eww
+
+       * eww.el (eww-display-html): Allow overriding elements in
+       `shr-external-rendering-functions'.
+
+2015-12-24  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       Ignore invalid SVG images
+
+       * shr.el (shr-tag-svg): Ignore SVG images that have no width
+       or height, because these can't be displayed by ImageMagick,
+       anyway.
+
+2015-12-24  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       shr table rendering fix
+
+       * shr.el (shr-tag-table): Allow rendering body-less tables
+       that have headers.
+
+2015-12-22  Sam Steingold  <sds@gnu.org>
+
+       clipboard should still work even if interprogram-* is disabled
+
+       (clipboard-yank): When `interprogram-cut-function' is nil,
+       bind it to `gui-selection-value' - the default value.
+       (clipboard-kill-region, clipboard-kill-ring-save): When
+       `interprogram-paste-function' is nil, bind it to `gui-select-text' -
+       the default value.
+
+2015-12-18  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Fix bootstrap issue with dired-loaddefs
+
+       * lisp/dired.el: Autoloads for secondary files loaded optionally.
+
+2015-12-17  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       dired generate autoloads to non-versioned file.
+
+       * lisp/dired.el: Remove autoloads.
+       * lisp/Makefile.in: Add dired to autogenel.
+       * lisp/dired-aux.el,lisp/dired-x.el: Update file local.
+       * test/lisp/dired-tests.el: Add new test.
+
+2015-12-17  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       eieio generate autoloads to non-versioned file.
+
+       * lisp/Makefile.in: eieio-loaddefs add to autogenel.
+       * lisp/emacs-lisp/eieio.el,lisp/emacs-lisp/eieio-core.el:
+         Remove autoloads.
+       * lisp/emacs-lisp/eieio-compat.el,lisp/emacs-lisp/eieio-custom.el,
+         lisp/emacs-lisp/eieio-opt.el: Update file local.
+       * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: New test.
+
+2015-12-17  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       htmlfontify generate autoload to non-versioned file.
+
+       * lisp/Makefile.in: Add htmlfontity-loaddefs to autogenel.
+       * lisp/hfy-cmap.el: Update file local.
+       * lisp/htmlfontify.el: Remove autoloads, add require.
+       * test/lisp/htmlfontify-tests.el: Test autoload functionality.
+
+2015-12-17  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       ibuffer generate autoloads to non-versioned file.
+
+       * lisp/Makefile.in: Add ibuffer-loaddefs to autogenel.
+       * lisp/ibuf-ext.el: Update file local.
+       * lisp/ibuffer.el: Remove autoloads and add a require.
+       * test/lisp/ibuffer-tests.el: Test that autoload is working.
+
+2015-12-17  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       rmail generate autoloads to non-versioned file.
+
+       * lisp/Makefile.in: Add rmail-loaddefs.el to autogenel.
+       * lisp/mail/rmail.el: Remove autoloads, add require.
+       * lisp/mail/rmailedit.el,lisp/mail/rmailkwd.el,
+         lisp/mail/rmailmm.el,lisp/mail/rmailmsc.el,
+         lisp/mail/rmailsort.el,lisp/mail/rmailsum.el,
+         lisp/mail/undigest.el: Update file-local.
+       * test/lisp/mail/rmail-tests.el:
+
+2015-12-17  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Add autoload-force target.
+
+       * lisp/Makefile.in (autoload-force): New target.
+
+2015-12-17  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       ps-print generate autoloads to non versioned file.
+
+       * lisp/Makefile.in: Add ps-print-loaddefs.el to autogen list.
+       * lisp/ps-print.el: Remove autoloads.
+       * lisp/ps-mule.el: Update file-local.
+       * test/lisp/ps-print-tests.el: Test autoload functionality.
+
+2015-12-17  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       reftex generate autoloads to non versioned file.
+
+       * lisp/Makefile.in: Add reftex-loaddefs to autogen files
+       * lisp/textmodes/reftex.el: Remove autoloads.
+       * lisp/textmodes/reftex-auc.el,lisp/textmodes/reftex-cite.el,
+         lisp/textmodes/reftex-dcr.el,lisp/textmodes/reftex-global.el,
+         lisp/textmodes/reftex-index.el,lisp/textmodes/reftex-parse.el,
+         lisp/textmodes/reftex-ref.el,lisp/textmodes/reftex-sel.el,
+         lisp/textmodes/reftex-toc.el: Update autoload file-local.
+       * test/lisp/textmodes/reftex-tests.el: Add test of an autoloaded
+         function.
+
+2015-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp/calculator.el (calculator-define-key): Undo last change
+
+       Make map argument mandatory instead (bug#22106).
+       (calculator-add-operators): Pass the argument that's not optional any more.
+
+2015-12-03  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in: Avoid duplication.
+
+       (have-tests): New rule.
+       (check, check-maybe): Use it.
+
+2015-12-02  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       make check unconditional, check-maybe top-level.
+
+        * Makefile.in: Add check-maybe target.
+        * test/Makefile.in: Restore unconditional behaviour to make check.
+
+2015-12-01  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Tests now support out-of-source-build.
+
+        * tests/Makefile.in,test/make-test-deps.emacs-lisp: Remove assumptions
+          about current working directory.
+
+2015-12-01  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/let-alist.el: Now an Elpa :core package
+
+2015-11-30  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Improve documentation and clean up.
+
+        * test/Makefile.in: Improve documentation, use EMACS variable
+          correctly, and clean up makefile rules.
+
+2015-11-30  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Update file headers for name change.
+
+        * (test/src/decompress-tests.el, test/src/alloc-tests.el): Update headers.
+
+2015-11-30  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Test files renamed to new scheme.
+
+        * (finalizer-tests.el): Now renamed alloc-tests.el
+        * (zlib-tests.el): Now renamed decompress-tests.el.
+
+2015-11-30  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Tests now depend on source files
+
+        * test/Makefile.in: Include dependences from tests to source files.
+        * test/make-test-deps.emacs-lisp: New file
+        * .gitignore: Ignore generated make include file
+
+2015-11-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp/progmodes/which-func.el: Improve disabling the mode
+
+       Use lexical-binding.
+       (which-func-modes, which-func-non-auto-modes, which-func-maxout)
+       (which-func, which-func-format): Remove redundant :group arg.
+       (which-func-try-to-enable): New function.
+       (which-func-ff-hook, which-function-mode): Use it.
+       (mode-line-misc-info): Add ourselves here instead of in bindings.el.
+       * lisp/bindings.el (mode-line-misc-info): Remove which-func-mode entry.
+
+2015-11-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp/calculator.el (calculator-define-key): Silence warning
+
+       ...about unknown calculator-mode-map.
+
+2015-11-29  Eli Barzilay  <eli@barzilay.org>
+
+       * lisp/calculator.el: more improvements and bugfixes.
+
+       - Mark `calculator-paste-decimals' as obsolete.  (It wasn't having an
+         effect anyway.)
+
+       - Simplify `calculator-number-to-string' by throwing most of the work
+         onto `number-to-string', leaving just some tweaks for decimal inputs.
+         This leads to some minor changes, for example, pasting "1x1" in hex
+         mode would warn that "x" is ignored and result in "11" (and it wasn't
+         done in decimal mode), whereas now it just ignores everything from the
+         "x" and on and result in a "1" just like in decimal input mode.  Also,
+         overflows are left for `number-to-string' to deal with.
+
+       - `calculator-paste' is very simple as a result.
+
+       - Extend the simplified `calculator-paste': with a prefix argument it
+         pastes a string as if the characters were entered.  This can be used
+         to reduce expressions, but note that it's a simple literal operation,
+         so precedence can be messed, a number can be paster while entering a
+         number, spaces and newlines matter, etc.
+
+       - Fix a minor bug where "e+" in hex mode wouldn't use "+" as an
+         operator.
+
+       - Fix a bug in `calculator-put-value': avoid grouping in the display
+         that is used to construct `calculator-curnum'.  This would trigger
+         when pasting or getting a value from a register in some radix mode
+         with a large enough value.  Another fix: make the output radix equal
+         the input one, otherwise numbers could be converted twice.
+
+2015-11-29  Eli Barzilay  <eli@barzilay.org>
+
+       * lisp/calculator.el: Re-do key bindings.
+
+       Use a helper function that arranges a parent keymap that binds alternate
+       case keys so if some letter key is unbound and it's un/shifted version
+       is, it will get used.  This makes the global-map trickery unnecessary.
+
+       Also switch to passing strings that name keys through `kbd'.
+
+2015-11-29  Eli Barzilay  <eli@barzilay.org>
+
+       * lisp/calculator.el: improve radix modes
+
+       Fix prompt for some input radix with decimal output (eg, "BD" instead of
+       the incorrect "B="); also, some minor docstring tweaks for these.
+
+2015-11-29  Eli Barzilay  <eli@barzilay.org>
+
+       * lisp/calculator.el: better reading of register names
+
+       Use `register-read-with-preview' with a dynamically bound
+       `register-alist' and a proper preview function to read register names.
+
+2015-11-29  Eli Barzilay  <eli@barzilay.org>
+
+       * lisp/calculator.el: General improvements
+
+       Use things like `when', `unless', and `push'.
+
+       Improve `calculator-last-input' so it doesn't barf when hitting `F1' in
+       non-electric mode.
+
+2015-11-28  Michael Albinus  <michael.albinus@gmx.de>
+
+       Fix a problem with gfilenotify in filenotify-tests.el
+
+       * test/lisp/filenotify-tests.el
+       (file-notify--test-expected-events): Remove.
+       (file-notify--test-cleanup): Do not set that variable.
+       (file-notify--test-with-events): EVENTS can also be a list of lists.
+       (file-notify-test02-events, file-notify-test04-file-validity):
+       Adapt expected result.
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       * .gitignore: Adjust to changes in 'test' directory structure.
+
+2015-11-28  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix test/manual/etags/Makefile
+
+       * test/manual/etags/Makefile (ETAGS_PROG, CTAGS_PROG): Adjust to
+       changes in 'test' directory structure.
+
+2015-11-27  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Exclude resource dirs from search for tests.
+
+       * test/Makefile.in: Test file locations are now found with find
+         rather than using finds native functions.
+
+2015-11-27  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Add test targets without directory names.
+
+        * (test/Makefile.in): Extend test_template to add two targets for each
+          file.
+
+2015-11-27  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/package.el: Require url-handlers
+
+2015-11-27  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Move elisp-mode-tests to new function names.
+
+        * test/lisp/progmodes/elisp-mode-tests.el (find-defsdefun-c-defvar-c,
+        find-defs-defun-el-defvar-c): Call `elisp--xref-find-definitions'.
+
+2015-11-27  Juanma Barranquero  <lekktu@gmail.com>
+
+       * lisp/emacs-lisp/package.el: Declare `url-insert-buffer-contents'
+
+2015-11-26  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Merge branch 'feature/standard-test-location'
+
+2015-11-25  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp/emacs-lisp/eieio.el: Add some default implementations
+
+       (standard-class): Mark it obsolete.
+       (slot-missing): Give it a default implementation.
+       (destructor): Simplify and mark it obsolete.
+       (object-print): Give it a default implementation.
+       (eieio-change-class): Rename from change-class.
+       (change-class): Redefine as obsolete alias.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Some final fixes in file notification before merging with master
+
+       * lisp/filenotify.el (file-notify--rm-descriptor): Remove WHAT arg.
+       (file-notify-callback): Improve check for `stopped' event.  Call
+       `file-notify-rm-watch' rather than `file-notify--rm-descriptor'.
+       (file-notify-add-watch): In case FILE is not a directory, call the
+       file monitor for the kqueue backend.  Otherwise, call the
+       directory monitor for the upper directory.
+
+       * src/inotify.c (inotifyevent_to_event): Extract file name from
+       watch_object if the event doesn't provide it.
+       (Finotify_add_watch): Add file name to watch_object.
+
+       * test/automated/file-notify-tests.el (file-notify--test-timeout):
+       Use different timeouts for different libraries.
+       (file-notify--test-with-events): Suppress lock files.  Flush
+       outstanding events before running the body.
+       (file-notify-test02-events, file-notify-test04-file-validity): Do
+       not skip cygwin tests.  Add additional test for file creation.
+       Adapt expected result for different backends.
+       (file-notify-test03-autorevert): Some of the tests don't work for
+       w32notify.
+       (file-notify-test06-many-events): Rename into both directions.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Rework file notifications, kqueue has problems with directory monitors
+
+       * lisp/filenotify.el (file-notify-add-watch): Call the native
+       add-watch function on the file, not on the dir.
+
+       * src/kqueue.c (kqueue_compare_dir_list): Make also bookkeeping
+       about already deleted entries.
+
+       * test/automated/auto-revert-tests.el
+       (auto-revert-test01-auto-revert-several-files): Do not call "cp -f"
+       since this deletes the target file first.
+
+       * test/automated/file-notify-tests.el (file-notify--test-event-test):
+       Make stronger checks.
+       (file-notify-test01-add-watch, file-notify-test02-events)
+       (file-notify-test04-file-validity, file-notify-test05-dir-validity):
+       Rewrite in order to call file monitors but directory monitors.
+       (file-notify-test06-many-events): Ler rename work in both directions.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Continue with pending events
+
+       * src/kqueue.c (pending_events): Remove global variable.
+       (kqueue_compare_dir_list): Create `write' event for not used
+       pending events.
+       (globals_of_kqueue): Remove initialization of pending_events.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Improve loops in file-notify-test06-many-events
+
+       * test/automated/file-notify-tests.el (file-notify-test06-many-events):
+       Use `read-event' pauses for the `write-file' loops; otherwise
+       events are lost in inotify and gfilenotify cases.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Handle more complex rename operation in kqueue
+
+       * src/kqueue.c (pending_events): New variable.
+       (kqueue_compare_dir_list): Handle more complex rename operation.
+       (globals_of_kqueue): Initialize pending_events.
+
+       * test/automated/file-notify-tests.el (file-notify-test06-many-events):
+       Adapt expected events in the `rename-file' case.
+       (file-notify-test06-many-events-remote): Declare.
+
+2015-11-25  Wolfgang Jenkner  <wjenkner@inode.at>
+
+       New test with a larger number of events
+
+       * test/automated/file-notify-tests.el (file-notify--test-with-events):
+       Make timeout heuristically depend on the number of events.
+
+       (file-notify-test06-many-events): Use it for new test.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Further fixes for kqueue
+
+       * lisp/filenotify.el (file-notify-callback): Raise also event if
+       directory name matches.
+       (file-notify-add-watch): Add `create' to the flags for `kqueue'.
+
+       * src/kqueue.c (kqueue_generate_event): Use watch_object as
+       argument instead of ident.  Remove callback argument.  Adapt
+       callees.  Check actions whether they are monitored flags.
+
+       * test/automated/file-notify-tests.el (file-notify--test-library):
+       New defun.
+       (file-notify-test00-availability, file-notify-test02-events)
+       (file-notify-test04-file-validity)
+       (file-notify-test05-dir-validity): Use it.
+       (file-notify-test02-events, file-notify-test04-file-validity): Add
+       `read-event' calls between different file actions, in order to
+       give the backends a chance to rais an event.  Needed especially
+       for kqueue.  In case of deleting a directory, there are two
+       `deleted' events.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Code cleanup of kqueue.c
+
+       * src/kqueue.c (kqueue_directory_listing): Skip "." and "..".
+       (kqueue_compare_dir_list): Do not loop when calling
+       directory_files_internal.  Remove checks for "." and "..", this is
+       done in kqueue_directory_listing now.
+       (Fkqueue_add_watch): Check for proper emacs_open flags.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Doc changes for kqueue
+
+       * doc/lispref/os.texi (File Notifications): Add kqueue as backend.
+       Fix some glitches in the example.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Finish implementation in kqueue.c
+
+       * src/kqueue.c (kqueue_directory_listing, kqueue_callback):
+       Simplify access to list.
+       (kqueue_compare_dir_list): Simplify access to list.  Raise
+       `delete' event if directory does not exist any longer.  Otherwise,
+       wait until directory contents has changed.  Fix error in check.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       * lisp/filenotify.el (file-notify-add-watch): Fix thinko.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       More work on kqueue
+
+       * lisp/filenotify.el (file-notify-callback): Handle also the
+       `rename' event from kqueue.
+       (file-notify-add-watch): Do not register an entry twice.
+
+       * src/kqueue.c (kqueue_directory_listing): New function.
+       (kqueue_generate_event): New argument FILE1.  Adapt callees.
+       (kqueue_compare_dir_list): Rewrite in order to make it more robust.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Implement directory events
+
+       * lisp/filenotify.el (file-notify-handle-event)
+       (file-notify-callback): Remove traces.
+
+       * src/kqueue.c: Include <sys/time.h>.
+       (kqueue_generate_event, kqueue_compare_dir_list): New functions.
+       (kqueue_callback): Use them.  Call kevent() with a zero timeout.
+       (Fkqueue_add_watch): Adapt docstring.  Support directory events.
+       Compute initial directory listing.  Close file descriptor in case
+       of errors.
+       (syms_of_kqueue): Declare Qcreate.
+
+2015-11-25  Wolfgang Jenkner  <wjenkner@inode.at>
+
+       Build fixes for kqueue support
+
+       * src/kqueue.c (Fkqueue_add_watch): O_BINARY is not a POSIX open(3)
+       flag.
+
+       * configure.ac (HAVE_KQUEUE): There is no pkg-config module for native
+       kqueue on *BSD.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Continue kqueue implementation
+
+       * lisp/filenotify.el (file-notify-handle-event)
+       (file-notify-callback): Enable trace messages.
+
+       * src/kqueue.c: Include also <sys/types.h>.
+       (kqueue_callback): Remove watch in case of NOTE_DELETE or NOTE_RENAME.
+       (Fkqueue_rm_watch, Fkqueue_valid_p): New functions.
+       (syms_of_kqueue): Add them.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Work on kqueue
+
+       * lisp/filenotify.el (file-notify--library)
+       (file-notify-descriptors, file-notify-callback)
+       (file-notify-add-watch, file-notify-rm-watch)
+       (file-notify-valid-p): Add kqueue support.
+
+       * src/keyboard.c (make_lispy_event): Check also for HAVE_KQUEUE.
+
+2015-11-25  Michael Albinus  <michael.albinus@gmx.de>
+
+       Add kqueue support
+
+       * configure.ac (--with-file-notification): Add kqueue.
+       (top): Remove special test for "${HAVE_NS}" and
+       ${with_file_notification}, this is handled inside gfilenotify
+       tests.  Add kqueue tests.  Use NOTIFY_CFLAGS and NOTIFY_LIBS
+       instead of library specific variables.
+
+       * src/Makefile.in: Use NOTIFY_CFLAGS and NOTIFY_LIBS.
+
+       * src/emacs.c (main): Call globals_of_kqueue and syms_of_kqueue.
+
+       * src/kqueue.c: New file.
+
+       * src/lisp.h: Declare extern globals_of_kqueue and syms_of_kqueue.
+
+2015-11-24  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Update elisp-mode-tests for changed file location.
+
+        * test/lisp/progmodes/elisp-mode-tests.el:
+
+2015-11-24  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Exclude manual tests from Makefile
+
+        * test/Makefile.in:
+
+2015-11-24  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Move package test files to new directory.
+
+        * test/lisp/emacs-lisp/package-tests.el: Update resoruce file location.
+        * test/data/package: Moved to test/lisp/emacs-lisp/package-resources
+
+2015-11-24  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Restore delete Makefiles and fix .gitignore.
+
+        * .gitignore: Update Makefiles to changed locations
+        * test/lisp/progmodes/flymake-resources/Makefile,
+          test/manual/etags/Makefile,
+          test/manual/etags/make-src/Makefile,
+          test/manual/indent/Makefile: Restored and moved to new location.
+
+2015-11-24  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Test infrastructure: updates after directory move
+
+        * (test/Makefile.in): Support directories several levels deep.
+        * (test/data/flymake): Rename to test/lisp/progmodes/flymake-resources.
+        * (test/lisp/progmodes/flymake-tests.el): Support renamed resource directory.
+
+2015-11-24  Phillip Lord  <phillip.lord@russet.org.uk>
+
+       Rename all test files to reflect source layout.
+
+        * CONTRIBUTE,Makefile.in,configure.ac: Update to reflect
+          test directory moves.
+        * test/file-organisation.org: New file.
+        * test/automated/Makefile.in
+          test/automated/data/decompress/foo.gz
+          test/automated/data/epg/pubkey.asc
+          test/automated/data/epg/seckey.asc
+          test/automated/data/files-bug18141.el.gz
+          test/automated/data/flymake/test.c
+          test/automated/data/flymake/test.pl
+          test/automated/data/package/archive-contents
+          test/automated/data/package/key.pub
+          test/automated/data/package/key.sec
+          test/automated/data/package/multi-file-0.2.3.tar
+          test/automated/data/package/multi-file-readme.txt
+          test/automated/data/package/newer-versions/archive-contents
+          test/automated/data/package/newer-versions/new-pkg-1.0.el
+          test/automated/data/package/newer-versions/simple-single-1.4.el
+          test/automated/data/package/package-test-server.py
+          test/automated/data/package/signed/archive-contents
+          test/automated/data/package/signed/archive-contents.sig
+          test/automated/data/package/signed/signed-bad-1.0.el
+          test/automated/data/package/signed/signed-bad-1.0.el.sig
+          test/automated/data/package/signed/signed-good-1.0.el
+          test/automated/data/package/signed/signed-good-1.0.el.sig
+          test/automated/data/package/simple-depend-1.0.el
+          test/automated/data/package/simple-single-1.3.el
+          test/automated/data/package/simple-single-readme.txt
+          test/automated/data/package/simple-two-depend-1.1.el
+          test/automated/abbrev-tests.el
+          test/automated/auto-revert-tests.el
+          test/automated/calc-tests.el
+          test/automated/icalendar-tests.el
+          test/automated/character-fold-tests.el
+          test/automated/comint-testsuite.el
+          test/automated/descr-text-test.el
+          test/automated/electric-tests.el
+          test/automated/cl-generic-tests.el
+          test/automated/cl-lib-tests.el
+          test/automated/eieio-test-methodinvoke.el
+          test/automated/eieio-test-persist.el
+          test/automated/eieio-tests.el
+          test/automated/ert-tests.el
+          test/automated/ert-x-tests.el
+          test/automated/generator-tests.el
+          test/automated/let-alist.el
+          test/automated/map-tests.el
+          test/automated/advice-tests.el
+          test/automated/package-test.el
+          test/automated/pcase-tests.el
+          test/automated/regexp-tests.el
+          test/automated/seq-tests.el
+          test/automated/subr-x-tests.el
+          test/automated/tabulated-list-test.el
+          test/automated/thunk-tests.el
+          test/automated/timer-tests.el
+          test/automated/epg-tests.el
+          test/automated/eshell.el
+          test/automated/faces-tests.el
+          test/automated/file-notify-tests.el
+          test/automated/auth-source-tests.el
+          test/automated/gnus-tests.el
+          test/automated/message-mode-tests.el
+          test/automated/help-fns.el
+          test/automated/imenu-test.el
+          test/automated/info-xref.el
+          test/automated/mule-util.el
+          test/automated/isearch-tests.el
+          test/automated/json-tests.el
+          test/automated/bytecomp-tests.el
+          test/automated/coding-tests.el
+          test/automated/core-elisp-tests.el
+          test/automated/decoder-tests.el
+          test/automated/files.el
+          test/automated/font-parse-tests.el
+          test/automated/lexbind-tests.el
+          test/automated/occur-tests.el
+          test/automated/process-tests.el
+          test/automated/syntax-tests.el
+          test/automated/textprop-tests.el
+          test/automated/undo-tests.el
+          test/automated/man-tests.el
+          test/automated/completion-tests.el
+          test/automated/dbus-tests.el
+          test/automated/newsticker-tests.el
+          test/automated/sasl-scram-rfc-tests.el
+          test/automated/tramp-tests.el
+          test/automated/obarray-tests.el
+          test/automated/compile-tests.el
+          test/automated/elisp-mode-tests.el
+          test/automated/f90.el
+          test/automated/flymake-tests.el
+          test/automated/python-tests.el
+          test/automated/ruby-mode-tests.el
+          test/automated/subword-tests.el
+          test/automated/replace-tests.el
+          test/automated/simple-test.el
+          test/automated/sort-tests.el
+          test/automated/subr-tests.el
+          test/automated/reftex-tests.el
+          test/automated/sgml-mode-tests.el
+          test/automated/tildify-tests.el
+          test/automated/thingatpt.el
+          test/automated/url-future-tests.el
+          test/automated/url-util-tests.el
+          test/automated/add-log-tests.el
+          test/automated/vc-bzr.el
+          test/automated/vc-tests.el
+          test/automated/xml-parse-tests.el
+          test/BidiCharacterTest.txt
+          test/biditest.el
+          test/cedet/cedet-utests.el
+          test/cedet/ede-tests.el
+          test/cedet/semantic-ia-utest.el
+          test/cedet/semantic-tests.el
+          test/cedet/semantic-utest-c.el
+          test/cedet/semantic-utest.el
+          test/cedet/srecode-tests.el
+          test/cedet/tests/test.c
+          test/cedet/tests/test.el
+          test/cedet/tests/test.make
+          test/cedet/tests/testdoublens.cpp
+          test/cedet/tests/testdoublens.hpp
+          test/cedet/tests/testfriends.cpp
+          test/cedet/tests/testjavacomp.java
+          test/cedet/tests/testnsp.cpp
+          test/cedet/tests/testpolymorph.cpp
+          test/cedet/tests/testspp.c
+          test/cedet/tests/testsppcomplete.c
+          test/cedet/tests/testsppreplace.c
+          test/cedet/tests/testsppreplaced.c
+          test/cedet/tests/testsubclass.cpp
+          test/cedet/tests/testsubclass.hh
+          test/cedet/tests/testtypedefs.cpp
+          test/cedet/tests/testvarnames.c
+          test/etags/CTAGS.good
+          test/etags/ETAGS.good_1
+          test/etags/ETAGS.good_2
+          test/etags/ETAGS.good_3
+          test/etags/ETAGS.good_4
+          test/etags/ETAGS.good_5
+          test/etags/ETAGS.good_6
+          test/etags/a-src/empty.zz
+          test/etags/a-src/empty.zz.gz
+          test/etags/ada-src/2ataspri.adb
+          test/etags/ada-src/2ataspri.ads
+          test/etags/ada-src/etags-test-for.ada
+          test/etags/ada-src/waroquiers.ada
+          test/etags/c-src/a/b/b.c
+          test/etags/c-src/abbrev.c
+          test/etags/c-src/c.c
+          test/etags/c-src/dostorture.c
+          test/etags/c-src/emacs/src/gmalloc.c
+          test/etags/c-src/emacs/src/keyboard.c
+          test/etags/c-src/emacs/src/lisp.h
+          test/etags/c-src/emacs/src/regex.h
+          test/etags/c-src/etags.c
+          test/etags/c-src/exit.c
+          test/etags/c-src/exit.strange_suffix
+          test/etags/c-src/fail.c
+          test/etags/c-src/getopt.h
+          test/etags/c-src/h.h
+          test/etags/c-src/machsyscalls.c
+          test/etags/c-src/machsyscalls.h
+          test/etags/c-src/sysdep.h
+          test/etags/c-src/tab.c
+          test/etags/c-src/torture.c
+          test/etags/cp-src/MDiagArray2.h
+          test/etags/cp-src/Range.h
+          test/etags/cp-src/burton.cpp
+          test/etags/cp-src/c.C
+          test/etags/cp-src/clheir.cpp.gz
+          test/etags/cp-src/clheir.hpp
+          test/etags/cp-src/conway.cpp
+          test/etags/cp-src/conway.hpp
+          test/etags/cp-src/fail.C
+          test/etags/cp-src/functions.cpp
+          test/etags/cp-src/screen.cpp
+          test/etags/cp-src/screen.hpp
+          test/etags/cp-src/x.cc
+          test/etags/el-src/TAGTEST.EL
+          test/etags/el-src/emacs/lisp/progmodes/etags.el
+          test/etags/erl-src/gs_dialog.erl
+          test/etags/f-src/entry.for
+          test/etags/f-src/entry.strange.gz
+          test/etags/f-src/entry.strange_suffix
+          test/etags/forth-src/test-forth.fth
+          test/etags/html-src/algrthms.html
+          test/etags/html-src/index.shtml
+          test/etags/html-src/software.html
+          test/etags/html-src/softwarelibero.html
+          test/etags/lua-src/allegro.lua
+          test/etags/objc-src/PackInsp.h
+          test/etags/objc-src/PackInsp.m
+          test/etags/objc-src/Subprocess.h
+          test/etags/objc-src/Subprocess.m
+          test/etags/objcpp-src/SimpleCalc.H
+          test/etags/objcpp-src/SimpleCalc.M
+          test/etags/pas-src/common.pas
+          test/etags/perl-src/htlmify-cystic
+          test/etags/perl-src/kai-test.pl
+          test/etags/perl-src/yagrip.pl
+          test/etags/php-src/lce_functions.php
+          test/etags/php-src/ptest.php
+          test/etags/php-src/sendmail.php
+          test/etags/prol-src/natded.prolog
+          test/etags/prol-src/ordsets.prolog
+          test/etags/ps-src/rfc1245.ps
+          test/etags/pyt-src/server.py
+          test/etags/tex-src/gzip.texi
+          test/etags/tex-src/nonewline.tex
+          test/etags/tex-src/testenv.tex
+          test/etags/tex-src/texinfo.tex
+          test/etags/y-src/atest.y
+          test/etags/y-src/cccp.c
+          test/etags/y-src/cccp.y
+          test/etags/y-src/parse.c
+          test/etags/y-src/parse.y
+          test/indent/css-mode.css
+          test/indent/js-indent-init-dynamic.js
+          test/indent/js-indent-init-t.js
+          test/indent/js-jsx.js
+          test/indent/js.js
+          test/indent/latex-mode.tex
+          test/indent/modula2.mod
+          test/indent/nxml.xml
+          test/indent/octave.m
+          test/indent/pascal.pas
+          test/indent/perl.perl
+          test/indent/prolog.prolog
+          test/indent/ps-mode.ps
+          test/indent/ruby.rb
+          test/indent/scheme.scm
+          test/indent/scss-mode.scss
+          test/indent/sgml-mode-attribute.html
+          test/indent/shell.rc
+          test/indent/shell.sh
+          test/redisplay-testsuite.el
+          test/rmailmm.el
+          test/automated/buffer-tests.el
+          test/automated/cmds-tests.el
+          test/automated/data-tests.el
+          test/automated/finalizer-tests.el
+          test/automated/fns-tests.el
+          test/automated/inotify-test.el
+          test/automated/keymap-tests.el
+          test/automated/print-tests.el
+          test/automated/libxml-tests.el
+          test/automated/zlib-tests.el: Files Moved.
+
+2015-11-20  Michael Albinus  <michael.albinus@gmx.de>
+
+       Rework file notifications, kqueue has problems with directory monitors
+
+       * lisp/filenotify.el (file-notify-add-watch): Call the native
+       add-watch function on the file, not on the dir.
+
+       * src/kqueue.c (kqueue_compare_dir_list): Make also bookkeeping
+       about already deleted entries.
+
+       * test/automated/auto-revert-tests.el
+       (auto-revert-test01-auto-revert-several-files): Do not call "cp -f"
+       since this deletes the target file first.
+
+       * test/automated/file-notify-tests.el (file-notify--test-event-test):
+       Make stronger checks.
+       (file-notify-test01-add-watch, file-notify-test02-events)
+       (file-notify-test04-file-validity, file-notify-test05-dir-validity):
+       Rewrite in order to call file monitors but directory monitors.
+       (file-notify-test06-many-events): Ler rename work in both directions.
+
+2015-11-19  Michael Albinus  <michael.albinus@gmx.de>
+
+       Continie with pending events
+
+       * src/kqueue.c (pending_events): Remove global variable.
+       (kqueue_compare_dir_list): Create `write' event for not used
+       pending events.
+       (globals_of_kqueue): Remove initialization of pending_events.
+
+2015-11-19  Michael Albinus  <michael.albinus@gmx.de>
+
+       Improve loops in file-notify-test06-many-events
+
+       * test/automated/file-notify-tests.el (file-notify-test06-many-events):
+       Use `read-event' pauses for the `write-file' loops; otherwise
+       events are lost in inotify and gfilenotify cases.
+
+2015-11-19  Michael Albinus  <michael.albinus@gmx.de>
+
+       Handle more complex rename operation in kqueue
+
+       * src/kqueue.c (pending_events): New variable.
+       (kqueue_compare_dir_list): Handle more complex rename operation.
+       (globals_of_kqueue): Initialize pending_events.
+
+       * test/automated/file-notify-tests.el (file-notify-test06-many-events):
+       Adapt expected events in the `rename-file' case.
+       (file-notify-test06-many-events-remote): Declare.
+
+2015-11-18  Wolfgang Jenkner  <wjenkner@inode.at>
+
+       New test with a larger number of events.
+
+       * test/automated/file-notify-tests.el (file-notify--test-with-events):
+       Make timeout heuristically depend on the number of events.
+
+       (file-notify-test06-many-events): Use it for new test.
+
+2015-11-18  Michael Albinus  <michael.albinus@gmx.de>
+
+       Further fixes for kqueue.
+
+       * lisp/filenotify.el (file-notify-callback): Raise also event if
+       directory name matches.
+       (file-notify-add-watch): Add `create' to the flags for `kqueue'.
+
+       * src/kqueue.c (kqueue_generate_event): Use watch_object as
+       argument instead of ident.  Remove callback argument.  Adapt
+       callees.  Check actions whether they are monitored flags.
+
+       * test/automated/file-notify-tests.el (file-notify--test-library):
+       New defun.
+       (file-notify-test00-availability, file-notify-test02-events)
+       (file-notify-test04-file-validity)
+       (file-notify-test05-dir-validity): Use it.
+       (file-notify-test02-events, file-notify-test04-file-validity): Add
+       `read-event' calls between different file actions, in order to
+       give the backends a chance to rais an event.  Needed especially
+       for kqueue.  In case of deleting a directory, there are two
+       `deleted' events.
+
+2015-11-17  Michael Albinus  <michael.albinus@gmx.de>
+
+       Code cleanup of kqueue.c
+
+       * src/kqueue.c (kqueue_directory_listing): Skip "." and "..".
+       (kqueue_compare_dir_list): Do not loop when calling
+       directory_files_internal.  Remove checks for "." and "..", this is
+       done in kqueue_directory_listing now.
+       (Fkqueue_add_watch): Check for proper emacs_open flags.
+
+2015-11-16  Michael Albinus  <michael.albinus@gmx.de>
+
+       Doc changes for kqueue
+
+       * doc/lispref/os.texi (File Notifications): Add kqueue as backend.
+       Fix some glitches in the example.
+
+2015-11-16  Michael Albinus  <michael.albinus@gmx.de>
+
+       Finish implementation in kqueue.c
+
+       * src/kqueue.c (kqueue_directory_listing, kqueue_callback):
+       Simplify access to list.
+       (kqueue_compare_dir_list): Simplify access to list.  Raise
+       `delete' event if directory does not exist any longer.  Otherwise,
+       wait until directory contents has changed.  Fix error in check.
+
+2015-11-16  Michael Albinus  <michael.albinus@gmx.de>
+
+       * lisp/filenotify.el (file-notify-add-watch): Fix thinko.
+
+2015-11-15  Michael Albinus  <michael.albinus@gmx.de>
+
+       More work on kqueue
+
+       * lisp/filenotify.el (file-notify-callback): Handle also the
+       `rename' event from kqueue.
+       (file-notify-add-watch): Do not register an entry twice.
+
+       * src/kqueue.c (kqueue_directory_listing): New function.
+       (kqueue_generate_event): New argument FILE1.  Adapt callees.
+       (kqueue_compare_dir_list): Rewrite in order to make it more robust.
+
+2015-11-14  Michael Albinus  <michael.albinus@gmx.de>
+
+       Implement directory events
+
+       * lisp/filenotify.el (file-notify-handle-event)
+       (file-notify-callback): Remove traces.
+
+       * src/kqueue.c: Include <sys/time.h>.
+       (kqueue_generate_event, kqueue_compare_dir_list): New functions.
+       (kqueue_callback): Use them.  Call kevent() with a zero timeout.
+       (Fkqueue_add_watch): Adapt docstring.  Support directory events.
+       Compute initial directory listing.  Close file descriptor in case
+       of errors.
+       (syms_of_kqueue): Declare Qcreate.
+
+2015-11-11  Wolfgang Jenkner  <wjenkner@inode.at>
+
+       Build fixes for kqueue support.
+
+       * src/kqueue.c (Fkqueue_add_watch): O_BINARY is not a POSIX open(3)
+       flag.
+
+       * configure.ac (HAVE_KQUEUE): There is no pkg-config module for native
+       kqueue on *BSD.
+
+2015-11-11  Michael Albinus  <michael.albinus@gmx.de>
+
+       Continue kqueue implementation
+
+       * lisp/filenotify.el (file-notify-handle-event)
+       (file-notify-callback): Enable trace messages.
+
+       * src/kqueue.c: Include also <sys/types.h>.
+       (kqueue_callback): Remove watch in case of NOTE_DELETE or NOTE_RENAME.
+       (Fkqueue_rm_watch, Fkqueue_valid_p): New functions.
+       (syms_of_kqueue): Add them.
+
+2015-11-11  Michael Albinus  <michael.albinus@gmx.de>
+
+       Work on kqueue
+
+       * lisp/filenotify.el (file-notify--library)
+       (file-notify-descriptors, file-notify-callback)
+       (file-notify-add-watch, file-notify-rm-watch)
+       (file-notify-valid-p): Add kqueue support.
+
+       * src/keyboard.c (make_lispy_event): Check also for HAVE_KQUEUE.
+
+2015-11-11  Michael Albinus  <michael.albinus@gmx.de>
+
+       Add kqueue support
+
+       * configure.ac (--with-file-notification): Add kqueue.
+       (top): Remove special test for "${HAVE_NS}" and
+       ${with_file_notification}, this is handled inside gfilenotify
+       tests.  Add kqueue tests.  Use NOTIFY_CFLAGS and NOTIFY_LIBS
+       instead of library specific variables.
+
+       * src/Makefile.in: Use NOTIFY_CFLAGS and NOTIFY_LIBS.
+
+       * src/emacs.c (main): Call globals_of_kqueue and syms_of_kqueue.
+
+       * src/kqueue.c: New file.
+
+       * src/lisp.h: Declare extern globals_of_kqueue and syms_of_kqueue.
+
+2015-11-21  Wilson Snyder  <wsnyder@wsnyder.org>
+
+       verilog-mode.el: Commentary and fix pre-Emacs 21 behavior.
+
+       * verilog-mode.el (verilog-save-font-no-change-functions):
+       Commentary and fix pre-Emacs 21 behavior.
+
+2015-11-19  Przemysław Wojnowski  <esperanto@cumego.com>
+
+       Use obarray functions from obarray.
+
+       * lisp/abbrev.el (copy-abbrev-table, abbrev-table-p, make-abbrev-table,
+         abbrev-table-get, abbrev-table-put, abbrev-table-empty-p,
+         clear-abbrev-table, define-abbrev, abbrev--symbol, abbrev-table-menu):
+         delegate to obarray.el functions.
+       * lisp/loadup.el: load obarray before abbrev
+       * test/automated/abbrev-tests.el: new tests
+
+2015-11-18  Christian Schwarzgruber  <c.schwarzgruber.cs@gmail.com>  (tiny change)
+
+       epa.el: Add option to replace original text
+
+       * lisp/epa.el (epa-replace-original-text): New user option.
+       (Bug#21947)
+
+2015-11-18  Mark Oteiza  <mvoteiza@udel.edu>
+
+       Add interactive seek command.
+
+       * lisp/mpc.el (mpc-cmd-seekcur): New function.
+       (mpc-seek-current): New command.
+       (mpc-mode-menu): Add entry for mpc-seek-current
+       (mpc-mode-map): Bind mpc-seek-current to "g"
+
+2015-11-18  Mark Oteiza  <mvoteiza@udel.edu>
+
+       Fix issue where a new tempfile was created every refresh
+
+       * lisp/mpc.el (mpc-format): Leave dir as relative path
+
+2015-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp/progmodes/cc-defs.el: Use with-silent-modifications
+
+       (c-save-buffer-state): Use with-silent-modifications when available.
+       (c--macroexpand-all): Check macroexpand-all directly rather than
+       c--mapcan-status.
+
+2015-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp/loadup.el: Set max-lisp-eval-depth here
+
+       * lisp/Makefile.in (BIG_STACK_DEPTH, BIG_STACK_OPTS): Remove.
+       (BYTE_COMPILE_FLAGS): Adjust accordingly.
+
+2015-11-17  João Távora  <joaotavora@gmail.com>
+
+       Minor fix to comment indentation and typo in last commit
+
+       * linum.el (linum-update-window): Fix comment indentation and a
+       typo.
+
+2015-11-17  João Távora  <joaotavora@gmail.com>
+
+       linum-mode plays more nicely with other margin-setting extensions
+
+       linum.el will only modify the left margin if it needs to, and will
+       only reset the it back to 0 if it guesses that no-one has touched that
+       margin in the meantime.
+
+       As such, this is a more of a workaround than an actual fix, but fixes
+       the problems described in bug#20674 regarding the interaction with
+       modes such as darkroom-mode and olivetti-mode.
+
+       A similar fix was commited to nlinum.el in ELPA.git's
+       e7f5f549fbfb740b911fb7f33b42381ecece56d8
+
+       * linum.el (linum-delete-overlays): Restore margins more
+       criteriously.
+       (linum-update-window): Set margins more criteriously.
+
+2015-11-16  Daiki Ueno  <ueno@gnu.org>
+
+       * lisp/image-mode.el: Support encrypted file
+
+       (image-toggle-display-image): Read content from the buffer instead
+       of the file, if the buffer holds a decrypted data.  (Bug#21870)
+
+2015-11-15  Juanma Barranquero  <lekktu@gmail.com>
+
+       * lisp/progmodes/verilog-mode.el (verilog-save-buffer-state): Add backquote
+
+2015-11-15  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/package.el: Fix a decoding issue
+
+       (package--with-response-buffer): Use `url-insert-buffer-contents'.
+       The previous code had some issues with decoding. Refactoring that
+       function allows us to use the decoding from url-handlers while still
+       treating both sync and async requests the same.
+
+       * lisp/url/url-handlers.el (url-insert-file-contents): Move some code to
+       `url-insert-buffer-contents'.
+       (url-insert-buffer-contents): New function
+
+2015-11-15  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/package.el: Refactor -with-work-buffer-async
+
+       (package--with-work-buffer-async): Reimplement as
+       `package--with-response-buffer'.
+       (package--with-work-buffer): Mark obsolete.
+       (package--with-response-buffer): New macro. This is a more self
+       contained and less contrived version of
+       `package--with-work-buffer-async'.  It uses keyword arguments,
+       doesn't have async on the name, doesn't fallback on
+       `package--with-work-buffer', and has _much_ simpler error
+       handling.
+
+       (package--check-signature, package--download-one-archive)
+       (package-install-from-archive, describe-package-1): Use it.
+
+       (package--download-and-read-archives): Let
+       `package--download-one-archive' take care of calling
+       `package--update-downloads-in-progress'.
+
+2015-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp/progmodes/verilog-mode.el: Use with-silent-modifications
+
+       (verilog-save-buffer-state): Use with-silent-modifications when available.
+       (verilog-save-font-no-change-functions): Don't bind
+       before/after-change-functions if it's not needed.
+
+2015-11-14  Xue Fuqiao  <xfq.free@gmail.com>
+
+       * CONTRIBUTE: Remove information about feature freeze.
+
+       Merge branch 'release-process-lowercase'
+
+2015-11-14  Xue Fuqiao  <xfq.free@gmail.com>
+
+       Document the release process
+
+       * admin/notes/versioning: Add information about RC releases.
+       * admin/release-process: Document the release process.
+       * admin/authors.el (authors-ignored-files):
+       * admin/README: Change FOR-RELEASE to release-process.
+       * CONTRIBUTE:
+       * admin/notes/bugtracker: Don't mention FOR-RELEASE.
+
+2015-11-14  Xue Fuqiao  <xfq.free@gmail.com>
+
+       * admin/release-process: Rename from admin/FOR-RELEASE.
+
+2015-11-14  David Engster  <deng@randomsample.de>
+
+       gitmerge: Fix git log command
+
+       * admin/gitmerge.el (gitmerge-missing): Use '--left-only' since we
+       only want commits from the branch that is to be merged.
+       (gitmerge-setup-log-buffer): Use the same symmetric range as in
+       `gitmerge-missing'.
+
+2015-11-14  David Engster  <deng@randomsample.de>
+
+       gitmerge: Try to detect cherry-picks
+
+       * admin/gitmerge.el (gitmerge-default-branch): Change to
+       origin/emacs-25.
+       (gitmerge-missing): Use symmetric difference ('...') between
+       branch and master so that cherry-picks can be detected.
+
+2015-11-14  Eli Zaretskii  <eliz@gnu.org>
+
+       Increment Emacs version on master branch
+
+       * lisp/cus-edit.el (customize-changed-options-previous-release):
+       Increase previous version to 24.5.
+
+       * configure.ac:
+       * msdos/sed2v2.inp: Bump version to 25.1.50.
+
+2015-11-14  Xue Fuqiao  <xfq.free@gmail.com>
+
+       Mention CONTRIBUTE in README, since it was moved from etc/ to root.
+       * etc/TODO: Remove the reference to `etc/CONTRIBUTE'.
+       * README: Mention CONTRIBUTE.
+
+2015-11-13  Wilson Snyder  <wsnyder@wsnyder.org>
+
+       Update verilog-mode.el to 2015-11-09-b121d60-vpo
+
+       * verilog-mode.el (verilog-auto, verilog-delete-auto)
+       (verilog-modi-cache-results, verilog-save-buffer-state)
+       (verilog-save-font-no-change-functions): When internally suppressing
+       change functions, use `inhibit-modification-hooks' and call
+       `after-change-funtions' to more nicely work with user hooks.
+       Reported by Stefan Monnier.
+       (verilog-auto, verilog-delete-auto, verilog-delete-auto-buffer):
+       Create `verilog-delete-auto-buffer' to avoid double-calling
+       fontification hooks.
+       (verilog-restore-buffer-modified-p, verilog-auto)
+       (verilog-save-buffer-state): Prefer restore-buffer-modified-p over
+       set-buffer-modified-p.  Reported by Stefan Monnier.
+       (verilog-diff-auto, verilog-diff-buffers-p)
+       (verilog-diff-ignore-regexp): Add `verilog-diff-ignore-regexp'.
+       (verilog-auto-inst-port, verilog-read-sub-decls-expr): Fix
+       AUTOINST with unpacked dimensional parameters, bug981.  Reported by
+       by Amol Nagapurkar.
+       (verilog-read-decls, verilog-read-sub-decls-line): Avoid unneeded
+       properties inside internal structures.  No functional change
+       intended.
+
+2015-11-13  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Use generic dispatch for xref backends
+
+       * lisp/progmodes/xref.el (xref-backend-functions):
+       New variable.
+       (xref-find-function): Remove.
+       (xref-find-backend)
+       (xref--etags-backend): New functions.
+       (xref-identifier-at-point-function)
+       (xref-identifier-completion-table-function): Remove.
+       (xref-backend-definitions, xref-backend-references)
+       (xref-backend-apropos, xref-backend-identifier-at-point)
+       (xref-backend-identifier-completion-table):
+       New generic functions.
+
+       * lisp/progmodes/elisp-mode.el (emacs-lisp-mode):
+       Add `elisp--xref-backend' to the beginning of
+       `xref-backend-functions', locally.  Delete references to
+       removed functions and vars.
+       (elisp-xref-find): Remove.
+       (elisp--xref-backend): New function.
+       (elisp--xref-find-references, elisp--xref-find-apropos)
+       (elisp--xref-identifier-completion-table):
+       Turn into appropriately named generic methods.
+
+       * lisp/progmodes/etags.el (etags-xref-find): Remove.
+       (xref-backend-identifier-completion-table)
+       (xref-backend-references, xref-backend-definitions)
+       (xref-backend-apropos): New generic methods.
+
+2015-11-13  Juri Linkov  <juri@linkov.net>
+
+       Support rectangular regions for more commands
+
+       * lisp/simple.el (region-extract-function): Handle the arg
+       value ‘bounds’.
+       (region-insert-function): New function.
+       (shell-command-on-region): Add arg ‘region-noncontiguous-p’.
+       If non-nil, operate on multiple chunks.
+       (region-noncontiguous-p): New function.
+
+       * lisp/rect.el: Add function rectangle--insert-region
+       around region-insert-function.
+       (extract-rectangle-bounds): New function.
+       (rectangle--extract-region): Handle the arg value ‘bounds’.
+       (rectangle--insert-region): New function.
+
+       * lisp/emulation/cua-rect.el: Add function cua--insert-rectangle
+       around region-insert-function.
+       (cua--extract-rectangle-bounds): New function.
+       (cua--rectangle-region-extract): Handle the arg value ‘bounds’.
+
+       * lisp/replace.el (query-replace, query-replace-regexp): Add arg
+       ‘region-noncontiguous-p’.  Use ‘use-region-p’.
+       (query-replace-regexp-eval, map-query-replace-regexp)
+       (replace-string, replace-regexp): Use ‘use-region-p’.
+       (keep-lines, flush-lines, how-many): Use ‘use-region-p’.
+       (perform-replace): Add arg ‘region-noncontiguous-p’.
+       If non-nil, operate on multiple chunks.
+
+       * src/casefiddle.c (Fdowncase_region): Add arg ‘region-noncontiguous-p’.
+       If non-nil, operate on multiple chunks.  (Bug#19829)
+
+2015-11-13  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Handle multiple matches on the same line; add highlighting
+
+       * lisp/progmodes/xref.el (xref-location-marker): Interpret the
+       column value in characters.
+       (xref--collect-matches): Rename from `xref--collect-match'.
+       Search for all matches in the hit line.  Add `highlight' face to
+       the matched region in the summary.  Update both callers.
+
+2015-11-13  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Replace xref-match-bounds with xref-match-length
+
+       Relying on xref-location-marker to point to the beginning of the match
+
+       * lisp/progmodes/xref.el (xref-match-bounds): Remove.
+       (xref-match-length): Add.
+       (xref-make-match): Change the arguments.
+       (xref--match-buffer-bounds): Remove.
+       (xref-match-item): Store length, instead of end-column.
+       (xref-pulse-momentarily)
+       (xref--collect-match)
+       (xref--query-replace-1): Update accordingly.
+       (xref-query-replace): Ditto.  And check that the search results
+       are up-to-date.
+
+2015-11-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge from gnulib
+
+       This incorporates:
+       2015-11-13 xalloc-oversized: improve performance with GCC 5
+       * lib/xalloc-oversized.h: Copy from gnulib.
+
+2015-11-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Spruce up ftfont.c memory allocation
+
+       * src/ftfont.c (setup_otf_gstring):
+       Avoid O(N**2) behavior when reallocating.
+       (ftfont_shape_by_flt): Prefer xpalloc to xrealloc when
+       reallocating buffers; this simplifies the code.  Do not trust
+       mflt_run to leave the output areas unchanged on failure, as
+       this isn’t part of its interface spec.
+
+2015-11-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port recent XCB changes to 64-bit ‘long int’
+
+       For historical reasons, libX11 represents 32-bit values like Atoms as
+       ‘long int’ even on platforms where ‘long int’ is 64 bits.  XCB doesn’t
+       do that, so adapt the recent XCB code to behave properly on 64-bit
+       platforms.  Also, fix what appears to be a bug in the interpretation
+       of xcb_get_property_value_length, at least on my Fedora platform
+       which is running libxcb-1.11-5.fc21.
+       * src/xfns.c (x_real_pos_and_offsets):
+       * src/xterm.c (get_current_wm_state):
+       xcb_get_property_value_length returns a byte count, not a word count.
+       For 32-bit quantities, xcb_get_property_value returns a vector
+       of 32-bit words, not of (possibly 64-bit) long int.
+
+2015-11-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/undo.c (run_undoable_change): Now static.
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Remove support for ':timeout' from w32 tray notifications
+
+       * src/w32fns.c (Fw32_notification_notify): Delete the code that
+       supports ':timeout'.
+       (syms_of_w32fns): Don't DEFSYM ':timeout'.  This avoids clashes
+       with dbusbind.c when D-Bus is compiled in.
+
+       * doc/lispref/os.texi (Desktop Notifications): Don't mention
+       ':timeout'.
+
+2015-11-13  Juanma Barranquero  <lekktu@gmail.com>
+
+       * test/automated/simple-test.el: Add test for bug#20698 (bug#21885)
+       (simple-test--transpositions): New macro.
+       (simple-transpose-subr): New test.
+
+2015-11-13  Juanma Barranquero  <lekktu@gmail.com>
+
+       * lisp/progmodes/elisp-mode.el: Declare function `project-roots'
+
+2015-11-13  Juanma Barranquero  <lekktu@gmail.com>
+
+       * src/undo.c: Small fixes for previous change
+       (run_undoable_change): Mark void argument list.
+       (record_property_change): Remove unused variable `boundary'.
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Add a few more variables to redisplay--variables
+
+       * lisp/frame.el (redisplay--variables): Add bidi-paragraph-direction
+       and bidi-display-reordering to the list.
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       * lisp/loadup.el: Enlarge the size of the hash table to 80000.
+
+2015-11-13  Eli Barzilay  <eli@barzilay.org>
+
+       Fix point positioning after transposing with negative arg
+
+       * lisp/simple.el (transpose-subr): When invoked with a negative
+       argument, move point to after the transposed text, like we do
+       when invoked with a positive argument.  (Bug#21885)
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix last change in shr.el
+
+       * lisp/net/shr.el (shr--have-one-fringe-p): Rename from
+       have-fringes-p.  All callers changed.  Doc fix.  (Bug#21895)
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix last change
+
+       * src/w32fns.c (syms_of_w32fns) [WINDOWSNT && !HAVE_DBUS]:
+       Don't DEFSYM tray notification symbols if D-Bus is being used.
+
+2015-11-13  Eli Zaretskii  <eliz@gnu.org>
+
+       Another fix for MinGW64 and Cygwin builds due to notifications
+
+       * src/w32fns.c: Ifdef away tray notification code if D-Bus is
+       being compiled into Emacs.
+       (syms_of_w32fns) [WINDOWSNT && !HAVE_DBUS]: Don't defsubr
+       Sw32_notification_notify and Sw32_notification_close if the code
+       is not compiled.  Reported by Andy Moreton <andrewjmoreton@gmail.com>.
+
+2015-11-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       Remove intern calls and XXX comments from Fx_export_frames
+
+       * src/xfns.c (Fx_export_frames): Use Qpdf, Qpng, Qpostscript, and
+       Qsvg instead of intern calls.  Use "postscript" instead of "ps"
+       for consistency with image types.  Remove XXX comments.
+       (syms_of_xfns) <Qpdf>: DEFSYM it.
+
+2015-11-12  Eric Hanchrow  <eric.hanchrow@gmail.com>
+
+       shr: don't invoke unbound function (Bug#21895)
+
+       * lisp/net/shr.el (have-fringes-p): New function.
+       (shr-insert-document, shr-fill-text): Use it.
+
+2015-11-12  Juanma Barranquero  <lekktu@gmail.com>
+
+       * test/automated/keymaps-test.el: Fix test to make it repeatable
+
+       (keymap-store_in_keymap-FASTINT-on-nonchars): Reset Buffer-menu-mode-map
+       entry to its initial value to make the test repeatable in interactive
+       sessions (assuming it doesn't fail and crashes Emacs, of course).
+
+2015-11-12  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * test/automated/cl-lib-tests.el (cl-lib-struct-constructors):
+       Small fix.
+
+2015-11-12  Phillip Lord  <phillip.lord@newcastle.ac.uk>
+
+       The heuristic that Emacs uses to add an `undo-boundary' has been
+       reworked, as it interacts poorly with functions on `post-command-hook'
+       or `after-change-functions'.
+
+       * lisp/simple.el: New section added.
+       * src/cmds.c (remove_excessive_undo_boundaries): Now in lisp.
+       (self_insert_command): Calls simple.el to amalgamate.
+       (delete_char): Calls simple.el to amalgamate.
+       * src/keyboard.c (last_undo_boundary): Removed.
+       * src/undo.c (run_undoable_change): New function.
+
+2015-11-12  Juri Linkov  <juri@linkov.net>
+
+       Bind [?\S-\ ] to previous line command in Dired-like modes
+
+       * lisp/arc-mode.el (archive-mode-map):
+       * lisp/dired.el (dired-mode-map):
+       * lisp/proced.el (proced-mode-map):
+       * lisp/vc/vc-dir.el (vc-dir-mode-map):
+       Bind [?\S-\ ] to previous line command.
+       (Bug#20790)
+
+2015-11-12  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix the MinGW64 and Cygwin-w32 builds
+
+       * src/w32fns.c (MYNOTIFYICONDATAW_V1_SIZE)
+       (MYNOTIFYICONDATAW_V2_SIZE, MYNOTIFYICONDATAW_V3_SIZE): Define and
+       use instead of the corresponding NOTIFYICONDATAW_Vn_SIZE macros,
+       which cause trouble with MinGW42 headers.  Ifdef away tray
+       notifications code for Cygwin.  Reported by Andy Moreton
+       <andrewjmoreton@gmail.com>.
+
+2015-11-12  Simen Heggestøyl  <simenheg@gmail.com>
+
+       Enable sorting of JSON object keys when encoding
+
+       * lisp/json.el (json-encoding-object-sort-predicate): New variable
+       for specifying a sorting predicate for JSON objects during encoding.
+       (json--plist-to-alist): New utility function.
+       (json-encode-hash-table): Re-use `json-encode-alist' when object keys
+       are to be sorted.
+       (json-encode-alist): Sort output by
+       `json-encoding-object-sort-predicate, when set.
+       (json-encode-plist): Re-use `json-encode-alist' when object keys are
+       to be sorted.
+       (json-pretty-print-buffer-ordered): New command to pretty print the
+       buffer with object keys sorted alphabetically.
+       (json-pretty-print-ordered): New command to pretty print the region
+       with object keys sorted alphabetically.
+
+       * test/automated/json-tests.el (test-json-plist-to-alist)
+       (test-json-encode-plist, test-json-encode-hash-table)
+       (test-json-encode-alist-with-sort-predicate)
+       (test-json-encode-plist-with-sort-predicate): New tests.
+
+       * etc/NEWS: Add an entry for the new commands.
+
+2015-11-12  Juanma Barranquero  <lekktu@gmail.com>
+
+       * test/automated/keymap-tests.el: New test file.
+
+2015-11-12  Ken Raeburn  <raeburn@raeburn.org>
+
+       Speed up x_real_pos_and_offsets using XCB
+
+       * src/xfns.c (x_real_pos_and_offsets) [USE_XCB]: Add XCB flavors of
+       all X calls, and pipeline requests when possible, collecting results
+       later.  Eliminate use of x_catch_errors (and thus XSync) in XCB case.
+
+2015-11-12  Ken Raeburn  <raeburn@raeburn.org>
+
+       Enable use of XCB for checking window manager state
+
+       * src/xterm.c (get_current_wm_state) [USE_XCB]: Use XCB calls instead
+       of XGetWindowProperty plus error-catching, since we can explicitly
+       check for errors in the XCB version.  This eliminates 3 XSync calls on
+       top of the round-trip actually fetching the information.
+
+2015-11-12  Ken Raeburn  <raeburn@raeburn.org>
+
+       Detect XCB and save a connection handle
+
+       * configure.ac: If using X11, check for XCB libraries and header.
+       * src/Makefile.in (XCB_LIBS): Define.
+       (LIBX_EXTRA): Include it.
+
+       * src/xterm.h [USE_XCB]: Include X11/Xlib-xcb.h.
+       (struct x_display_info) [USE_XCB]: Add an XCB connection handle field.
+       * src/xterm.c (x_term_init) [USE_XCB]: Initialize the new field.
+
+2015-11-12  Ken Raeburn  <raeburn@raeburn.org>
+
+       Reduce some data dependencies between X calls
+
+       Gains nothing in the traditional-Xlib code, but more closely aligns
+       with how the XCB version will work.
+
+       * src/xfns.c (x_real_pos_and_offsets): When translating coordinates,
+       send coordinates (0,0) to the X server and add in the real coordinates
+       after getting the response.  Move XGetGeometry for outer window inside
+       error-trapping block.  Use DPY variable more, since it's available.
+
+2015-11-12  Ken Raeburn  <raeburn@raeburn.org>
+
+       Use color cache for creating bitmap
+
+       * src/image.c (x_create_bitmap_from_xpm_data) [ALLOC_XPM_COLORS]:
+       Set attributes to use the caching color allocator.  Initialize and
+       free the cache.
+
+2015-11-12  Eli Barzilay  <eli@barzilay.org>
+
+       Add "^" to the interactive specs of `dired-next/previous-line'
+
+       * lisp/dired.el (dired-next-line, dired-previous-line): It makes sense
+       to bind these commands to the arrow keys, and that means that they work
+       better with a "^" in the `interactive' declaration so selection works
+       as expected.
+
+2015-11-11  Thomas Fitzsimmons  <fitzsim@fitzsim.org>
+
+       Sync with soap-client repository, version 3.0.2
+
+       * soap-client.el: Bump version to 3.0.2.
+
+       * soap-client.el (soap-warning): Use format, not format-message.
+
+       * soap-client.el: Add cl-lib to Package-Requires.  Require cl-lib.
+       (soap-validate-xs-simple-type): Use cl-labels instead of cl-flet.
+
+       * soap-client.el: Support Emacs versions that do not have
+       define-error.
+
+       * soap-inspect.el: Remove version header.
+
+       * soap-client.el, soap-inspect.el, jira2.el: Fix first line header
+       format.
+
+2015-11-11  Alan Mackenzie  <acm@muc.de>
+
+       CC Mode: Respect users' settings of open-paren-in-column-0-is-defun-start
+
+       * lisp/progmodes/cc-engine.el (c-backward-single-comment)
+       (c-backward-comments, c-invalidate-state-cache-1, c-parse-state-1)
+       (c-guess-basic-syntax):
+       Remove bindings of open-paren-in-column-0-is-defun-start to nil.
+       (c-get-fallback-scan-pos): "New" function (existed several years ago).
+       (c-parse-state-get-strategy): Reintroduce the 'BOD strategy, using
+       c-get-fallback-scan-pos.
+       (c-parse-state-1): Handle 'BOD strategy.
+
+       * lisp/progmodes/cc-mode.el (c-before-change, c-after-change)
+       (c-font-lock-fontify-region): Remove bindings of
+       open-paren-in-column-0-is-defun-start to nil.
+
+       * doc/misc/cc-mode.texi (Performance Issues)
+       (Limitations and Known Bugs): Fix mix up between @chapter and @appendix.
+
+2015-11-11  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/obarray.el: Fix shadowed variables.
+       (obarray-map, obarray-remove, obarray-put, obarray-get):
+       Change OBARRAY arg to OB to avoid shadowing ‘obarray’.
+
+2015-11-11  Eli Zaretskii  <eliz@gnu.org>
+
+       Avoid error in submitting a form with EWW
+
+       * lisp/gnus/mm-url.el (mm-url-form-encode-xwfu): Allow argument
+       CHUNK to be nil.  (Bug#21881)
+
+2015-11-11  Nicolas Petton  <nicolas@petton.fr>
+
+       Rename seq-p and map-p to seqp and mapp
+
+       * lisp/emacs-lisp/seq.el (seqp): New name.
+       * lisp/emacs-lisp/map.el (mapp): New name.
+       * doc/lispref/sequences.texi: Update the documentation for seqp.
+       * test/automated/map-tests.el: Update the tests for mapp.
+
+2015-11-11  Nicolas Petton  <nicolas@petton.fr>
+
+       Rename obarray-p to obarrayp
+
+       * lisp/obarray.el (obarrayp): New name.
+       * test/automated/obarray-tests.el: Update the tests.
+
+2015-11-11  Nicolas Petton  <nicolas@petton.fr>
+
+       Rename obarray-foreach to obarray-map
+
+       * lisp/obarray.el (obarray-map): New name.
+       * test/automated/obarray-tests.el: Update the corresponding tests.
+
+2015-11-11  Przemysław Wojnowski  <esperanto@cumego.com>
+
+       New file with obarray functions
+
+       * lisp/obarray.el: Basic obarray functions extracted from abbrev.el.
+       * test/automated/obarray-tests.el: New file.
+
+2015-11-11  Eli Zaretskii  <eliz@gnu.org>
+
+       Implement tray notifications for MS-Windows
+
+       * src/w32fns.c (MY_NOTIFYICONDATAW): New typedef.
+       (NOTIFYICONDATAW_V1_SIZE, NOTIFYICONDATAW_V2_SIZE)
+       (NOTIFYICONDATAW_V3_SIZE, NIF_INFO, NIIF_NONE, NIIF_INFO)
+       (NIIF_WARNING, NIIF_ERROR, EMACS_TRAY_NOTIFICATION_ID)
+       (EMACS_NOTIFICATION_MSG): New macros.
+       (NI_Severity): New enumeration.
+       (get_dll_version, utf8_mbslen_lim, add_tray_notification)
+       (delete_tray_notification, Fw32_notification_notify)
+       (Fw32_notification_close): New functions.
+       (syms_of_w32fns): Defsubr functions exposed to Lisp.  DEFSYM
+       keywords used by w32-notification-notify.
+
+       * doc/lispref/os.texi (Desktop Notifications): Describe the native
+       w32 tray notifications.
+
+2015-11-11  Michael Albinus  <michael.albinus@gmx.de>
+
+       Optimize `file-equal-p' and `file-in-directory-p' in Tramp
+
+       * lisp/net/tramp.el (tramp-handle-file-equal-p)
+       (tramp-handle-file-in-directory-p): New defuns.  Suggested by
+       Harvey Chapman <hchapman@3gfp.com>.
+
+       * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
+       * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
+       * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): Use them.
+
+2015-11-10  Karl Fogel  <kfogel@red-bean.com>
+
+       * CONTRIBUTE: Encourage adding tests.
+
+       Based on this post from John Wiegley:
+
+         From: "John Wiegley" <johnw@newartisans.com>
+         Subject: Re: [Emacs-diffs] master 1f02cbe: Fix bug#21766 and add test
+         To: Juanma Barranquero <lekktu@gmail.com>
+         Cc: emacs-diffs@gnu.org, bruce.connor.am@gmail.com,
+             emacs-devel <emacs-devel@gnu.org>
+         Date: Wed, 28 Oct 2015 18:45:29 -0700
+         Message-ID: <m2y4emqwg6.fsf@newartisans.com>
+
+         https://lists.gnu.org/archive/html/emacs-devel/2015-10/msg02372.html
+
+2015-11-10  David Reitter  <david.reitter@gmail.com>
+
+       Avoid creating notification objects when possible
+
+       * src/nsterm.m (windowWillEnterFullScreen, windowWillExitFullScreen:)
+       (windowDidEnterFullScreen, windowDidExitFullScreen): Provide convenience
+       functions that do not require a notification object.  When needed,
+       define NSWindowDidEnterFullScreenNotification to allow for compilation
+       on OS X 10.6.8.
+
+2015-11-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Move INTEGER_TO_CONS body out of .h file
+
+       * src/data.c (INTBIG_TO_LISP): New macro, with most
+       of the contents of the old INTEGER_TO_CONS.
+       (intbig_to_lisp, uintbig_to_lisp): New functions.
+       * src/lisp.h (INTEGER_TO_CONS):
+       Simplify by using EXPR_SIGNED and the new functions.
+       This shrinks code size a bit, and makes it easier to
+       put a breakpoint on handling of large integers.
+
+2015-11-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge from gnulib
+
+       This incorporates:
+       2015-11-10 intprops: new public macro EXPR_SIGNED
+       2015-11-10 intprops: fix typo in clang port
+       * lib/intprops.h: Copy from gnulib.
+
+2015-11-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Spelling fixes
+
+       * lisp/net/soap-inspect.el (soap-inspect-xs-simple-type):
+       Fix misspelling in output.
+
+2015-11-10  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * doc/lispref/variables.texi (Directory Local Variables):
+       Document dir-locals wildcards.
+
+       * lisp/files.el (dir-locals-file): Point to Info node.
+
+       * doc/emacs/custom.texi (Directory Variables):
+       Document dir-locals wildcards.
+
+       * etc/NEWS: Document new functionality.
+
+2015-11-10  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/files.el: Don't allow customization of dir-locals sorting.
+       In retrospect, this is not a good idea for the same reason that
+       `dir-locals-file' is a defconst, because it is important that this
+       behaviour be "uniform across different environments and users".
+       Sure, the user can still change the sorting with a hack, but we
+       shouldn't encourage them to change it.
+       (dir-locals--all-files): Return list in the order returned by
+       `file-expand-wildcards'.
+       (file-expand-wildcards): Document the sorting predicate used.
+       (dir-locals-sort-predicate): Delete variable.
+
+2015-11-10  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/files.el (dir-locals-read-from-file): Better handle errors.
+
+       * lisp/isearch.el (search-default-regexp-mode): Change default value.
+
+2015-11-10  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/files.el (dir-locals-find-file): Don't stop at unreadable files.
+       `locate-dominating-file' will now keep looking if the files it finds in
+       a given directory are unreadable (or not files).
+
+2015-11-10  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/files.el (dir-locals-file): Allow wildcards.
+       (dir-locals-find-file, dir-locals-collect-variables)
+       (dir-locals-read-from-file): Update accordingly.
+       (hack-dir-local-variables): Rename a local variable.
+
+       * lisp/files-x.el (modify-dir-local-variable): Update accordingly.
+
+       * lisp/help-fns.el (describe-variable): Update accordingly.
+
+       * .gitignore: Add .dir-locals?.el.
+
+2015-11-10  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+       * lisp/emacs-lisp/map.el (map-merge-with): New function.
+
+       * test/automated/map-tests.el (test-map-merge-with): New test.
+
+2015-11-09  Karl Fogel  <kfogel@red-bean.com>
+
+       Fix some recently-perturbed bookmark autoloads
+
+       * lisp/bookmark.el (bookmark-set-internal): Remove unnecessary autoload.
+       (bookmark-set): Restore autoload.
+       (bookmark-set-no-overwrite): Add autoload.
+
+       Thanks to Juanma Barranquero for noticing the autoload problems
+       introduced by my recent commit adding/changing the above functions
+       (Sun Nov 8 14:16:43 2015 -0500, git commit 3812e17978).
+
+2015-11-09  Noah Friedman  <friedman@splode.com>
+
+       * etc/emacs-buffer.gdb (ydump-buffer): Handle case where gap is at
+       the start of buffer.  I don't recall if older versions of gdb were
+       less strict but you cannot dump a 0-length range in gdb 7.9.1.
+
+2015-11-09  Dmitry Gutov  <dgutov@yandex.ru>
+
+       * lisp/progmodes/project.el: Update Commentary.
+
+       Merge branch 'project-next'
+
+2015-11-09  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Fold `project-ask-user' into `project-current'
+
+       * lisp/progmodes/project.el (project-find-functions):
+       Remove `project-ask-user'.
+       (project-ask-user): Remove function and the corresponding
+       `project-roots' implementation.
+       (project-current): Add a new argument, MAYBE-PROMPT.  Prompt the
+       user in case there's no project in the current directory.  Update
+       all callers.
+
+2015-11-09  Karl Fogel  <kfogel@red-bean.com>
+
+       When VC detects a conflict, specify which file
+
+       * lisp/vc/vc.el (vc-message-unresolved-conflicts): New function.
+       * lisp/vc/vc-svn.el (vc-svn-find-file-hook):
+       * lisp/vc/vc-hg.el (vc-hg-find-file-hook):
+       * lisp/vc/vc-bzr.el (vc-bzr-find-file-hook):
+       * lisp/vc/vc-git.el (vc-git-find-file-hook): Use above new function
+         to display a standard message that specifies the conflicted file.
+
+       Before this change, the message VC used for indicating a conflicted
+       file was just "There are unresolved conflicts in this file" without
+       naming the file (and this language was duplicated in several places).
+       After this change, it's "There are unresolved conflicts in file FOO"
+       (and this language is now centralized in one function in vc.el).
+
+       Justification: It's important for the message to name the conflicted
+       file because the moment when VC realizes a file is conflicted does not
+       always come interactively.  For example, some people automatically
+       find a set of Org Mode files on startup, and may keep those .org files
+       under version control.  If any of the files are conflicted, the user
+       just sees some messages fly by, and might later check the "*Messages*"
+       buffer to find out what files were conflicted.  I'm not saying this
+       happened to me or anything; it's a purely hypothetical example.
+
+2015-11-09  Eli Zaretskii  <eliz@gnu.org>
+
+       Fix assertion violation in define-key
+
+       * src/keymap.c (store_in_keymap): Don't use XFASTINT on non-character
+       objects.  Reported by Drew Adams <drew.adams@oracle.com>
+       and Juanma Barranquero <lekktu@gmail.com>.
+
+2015-11-09  Dima Kogan  <dima@secretsauce.net>
+
+       Fix a memory leak in GC of font cache
+
+       * src/alloc.c (compact_font_cache_entry): Don't GC unmarked font
+       entities if some of the fonts it references are marked.  This
+       plugs a memory leak.  (Bug#21556)
+
+2015-11-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use INT_ADD_WRAPV etc. to check integer overflow
+
+       * src/alloc.c (xnmalloc, xnrealloc, xpalloc, Fmake_string):
+       * src/buffer.c (record_overlay_string, overlay_strings):
+       * src/casefiddle.c (casify_object):
+       * src/ccl.c (Fccl_execute_on_string):
+       * src/character.c (char_width, c_string_width, lisp_string_width)
+       (count_size_as_multibyte, string_escape_byte8):
+       * src/coding.c (coding_alloc_by_realloc, produce_chars):
+       * src/data.c (arith_driver):
+       * src/dispnew.c (realloc_glyph_pool, init_display):
+       * src/editfns.c (styled_format):
+       * src/fns.c (Ffillarray):
+       * src/ftfont.c (ftfont_shape_by_flt):
+       * src/gnutls.c (gnutls_hex_string):
+       * src/gtkutil.c (get_utf8_string):
+       * src/image.c (x_to_xcolors, x_detect_edges, png_load_body):
+       * src/keymap.c (Fkey_description):
+       * src/lisp.h (SAFE_ALLOCA_LISP):
+       * src/term.c (encode_terminal_code):
+       * src/tparam.c (tparam1):
+       * src/xselect.c (x_property_data_to_lisp):
+       * src/xsmfns.c (smc_save_yourself_CB):
+       * src/xterm.c (x_term_init):
+       When checking for integer overflow, prefer INT_MULTIPLY_WRAPV to
+       more-complicated code involving division and/or
+       INT_MULTIPLY_OVERFLOW, and similarly for INT_ADD_WRAPV and
+       subtraction and/or INT_ADD_OVERFLOW.
+       * src/casefiddle.c (casify_object): Simplify multibyte size check.
+       * src/character.c: Remove some obsolete ‘#ifdef emacs’s.
+       * src/data.c (arith_driver): Also check for division overflow,
+       as that’s now possible given that the accumulator can now contain
+       any Emacs integer.
+       * src/lisp.h (lisp_word_count): Remove; no longer used.
+
+2015-11-08  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Make sure that the ignore file exists
+
+       * lisp/vc/vc.el (vc-default-ignore-completion-table):
+       Make sure that the ignore file exists.
+
+2015-11-08  Michael Sperber  <mike@xemacs.org>
+
+       * gnus-sum.el (gnus-summary-backend-map): Bind B-backspace to
+       `gnus-summary-delete-article` in a way that also works on XEmacs.
+
+2015-11-08  Simen Heggestøyl  <simenheg@gmail.com>
+
+       Add support for retrieving paths to JSON elements
+
+       Add support for retrieving the path to a JSON element. This can for
+       instance be useful to retrieve paths in deeply nested JSON
+       structures.
+
+       * lisp/json.el (json-pre-element-read-function)
+       (json-post-element-read-function): New variables to hold pre- and post
+       read callback functions for `json-read-array' and `json-read-object'.
+       (json--path): New variable used internally by `json-path-to-position'.
+       (json--record-path, json--check-position): New functions used
+       internally by `json-path-to-position'.
+       (json-path-to-position): New function for retrieving the path to a
+       JSON element at a given position.
+       (json-read-object, json-read-array): Call
+       `json-pre-element-read-function' and `json-post-element-read-function'
+       when set.
+
+       * test/automated/json-tests.el (test-json-path-to-position-with-objects)
+       (test-json-path-to-position-with-arrays)
+       (test-json-path-to-position-no-match): New tests for
+       `json-path-to-position'.
+
+2015-11-08  Karl Fogel  <kfogel@red-bean.com>
+
+       * etc/NEWS: Mention new `bookmark-set-no-overwrite'.
+
+       This really should been part of my previous commit
+       (Sun Nov 8 14:16:43 2015 -0500, git commit 3812e17978).
+
+2015-11-08  Karl Fogel  <kfogel@red-bean.com>
+
+       Offer non-overwrite bookmark setter (Bug#15746)
+
+       * lisp/bookmark.el (bookmark-set-internal): New helper function to do
+       what `bookmark-set' used to do, but with more choices for overwrite
+       vs push, and with minor changes to the interactive prompt format.
+       (bookmark-set): Rewrite as wrapper around above.
+       If overwriting, inform the user of that in the prompt.
+       (bookmark-set-no-overwrite): New function, also done as wrapper.
+       Bind to "M" in `ctl-x-r-map' autoloads.
+       (bookmark-map): Similarly bind "M" here.
+
+2015-11-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/unexelf.c (NEW_PROGRAM_H): Remove unused macro (Bug#20614).
+
+2015-11-08  Alan Modra  <amodra@gmail.com>
+
+       ELF unexec: Don't insert a new section
+
+       Reuse the .bss section instead, making it SHT_PROGBITS.  This way we
+       don't need to mess with symbol st_shndx, or section sh_link and
+       sh_info.
+
+       This does lead to eu-elflint complaints about symbols defined in .bss
+       with a needed version, because normally it is undefined symbols that
+       have needed versions;  Defined symbols have version definitions.
+       The exception is symbols defined by the linker in .dynbss for
+       variables copied from a shared library in order to avoid text
+       relocations, with copy relocs to copy their initial values from the
+       shared library.  These symbols are both defined and have needed
+       versions, and eu-elflink only expects to see them in SHT_NOBITS
+       sections.  Of course there is no real problem with having such symbols
+       in SHT_PROGBITS sections.  glibc ld.so handles them fine.
+
+       * src/unexelf.c: Delete outdated comments.
+       (PATCH_INDEX): Delete.
+       (find_section): Delete.
+       (unexec): Don't add a new section.  Instead reuse the last bss
+       section, extending it to cover dumped data.  Make bss sections
+       SHT_PROGBITS.  Remove all patching of sh_link, sh_info and
+       st_shndx.  Rename bss sections.
+
+2015-11-08  Alan Modra  <amodra@gmail.com>
+
+       ELF unexec: Drive from PT_LOAD header rather than sections
+
+       This rewrites bss handling in the ELF unexec code.  Finding bss
+       sections by name results in complicated code that
+       - does not account for all names of possible bss sections,
+       - assumes specific ordering of bss sections,
+       - can wrongly choose a SHT_NOBITS section not in the bss segment,
+       - incorrectly calculates bss size (no accounting for alignment gaps),
+       - assumes .data and .bss are in the same segment.
+
+       All of these problems and more are solved by finding the bss segment
+       in PT_LOAD headers, ie. the address range included in p_memsz but not
+       p_filesz of the last PT_LOAD header, then matching SHT_NOBITS sections
+       in that address range.
+
+       * src/unexelf.c: Delete old ppc comment.
+       (OLD_PROGRAM_H): Define.
+       (round_up): Delete.
+       (unexec): Don't search for bss style sections by name.  Instead,
+       use the last PT_LOAD header address range covered by p_memsz
+       but not p_filesz and match any SHT_NOBITS section in that
+       address range.  Simplify initialisation of section header vars.
+       Don't assume that section headers are above bss segment.  Move
+       copying of bss area out of section loop.  Align .data2 section
+       to 1, since it now covers the entire bss area.  For SHT_NOBITS
+       sections in the bss segment, leave sh_addr and sh_addralign
+       unchanged, but correct sh_offset.  Clear memory corresponding
+       to SHT_NOBITS .plt section.  Delete comment and hacks for
+       sections partly overlapping bss range now that the full range
+       is properly calculated.  Delete now dead .sbss code.
+       (Bug#20614)
+
+2015-11-08  Alan Modra  <amodra@gmail.com>
+
+       ELF unexec: R_*_NONE relocs
+
+       These should be ignored on all targets.
+
+       * src/unexelf.c (unexec): Ignore R_*_NONE relocs for any target,
+       not just Alpha.  Comment on reloc size assumption.
+
+2015-11-08  Alan Modra  <amodra@gmail.com>
+
+       ELF unexec: _OBJC_ symbols in bss sections
+
+       This code assumed that there was only one bss section.  Rather than
+       checking for a particular index, check the section type.  Also, handle
+       the possibility that the section was SHT_NOBITS originally and is
+       unchanged, in which case no clearing is needed (and sh_offset isn't
+       necessarily valid, which can lead to a wild memset).
+
+       * src/unexelf.c (unexec): Properly handle _OBJC_ symbols in
+       bss sections.
+
+2015-11-08  Alan Modra  <amodra@gmail.com>
+
+       ELF unexec: Symbol table patching
+
+       No st_shndx value larger than SHN_LORESERVE should be changed.
+       * src/unexelf.c (unexec): Don't adjust any st_shndx larger than
+       SHN_LORESERVE.  Error on SHN_XINDEX.
+
+2015-11-08  Alan Modra  <amodra@gmail.com>
+
+       ELF unexec: Merge Alpha and MIPS COFF debug handling
+
+       * src/unexelf.c (unexec): Merge Alpha and MIPS COFF debug handling.
+       Don't find .mdebug section index, find the section in the loop.
+       Allow for unlikely possibility that .mdebug is located at sh_offset
+       before bss segment, by calculating move from difference in
+       sh_offset rather than just assuming new_data2_size.  Simplify
+       cbLineOffset handling.
+
+2015-11-08  Alan Modra  <amodra@gmail.com>
+
+       ELF unexec: Tidy code
+
+       Separate out some of the more mechanical changes so following patches
+       are smaller.
+
+       * src/unexelf.c (unexec): Rearrange initialisation of program
+       header vars.  Use pointer vars in loops rather than indexing
+       section header array via macros.  Simplify _OBJC_ sym code
+       and reloc handling code.
+
+2015-11-08  Alan Modra  <amodra@gmail.com>
+
+       ELF unexec: Correct section header index
+
+       First a small fix.  The code incorrectly uses "NEW_SECTION_H (n)" when
+       it should have been using "NEW_SECTION_H (nn)" to find the name of the
+       section currently being processed.  Of course, before the bss
+       sections, n and nn have the same value, so this doesn't matter except
+       in the case of .sbss.  For .sbss this probably meant .bss (most likely
+       the next section) was copied from memory.  A later patch removes the
+       bogus .sbss handling anyway.
+
+       * src/unexelf.c (unexec): Use correct index to look up names.
+
+2015-11-08  Michael Albinus  <michael.albinus@gmx.de>
+
+       Fix Bug#21841
+
+       * lisp/filenotify.el (file-notify--rm-descriptor):
+       Use `descriptor' instead of computing its value.
+       (file-notify--descriptor): Additional argument FILE.  Adapt all callees.
+       (file-notify-rm-watch): Use `descriptor' when calling file name handler.
+       (Bug#21841)
+
+2015-11-08  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Remove dirs in vc project roots from the the vc project library roots
+
+       * lisp/progmodes/project.el (project-library-roots):
+       Remove directories inside the project roots from the result.
+       (http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg00536.html)
+
+2015-11-07  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Move and rename xref-find-regexp to the project package
+
+       * lisp/progmodes/project.el (project-find-regexp)
+       (project--read-regexp)
+       (project--find-regexp-in): New functions.
+
+       * lisp/progmodes/xref.el (xref--find-xrefs): Extract from
+       xref--show-xrefs.  Use in existing callers in place of that
+       function.
+       (xref--show-xrefs): Only do the "show" part.
+       (xref-find-regexp): Rename, more or less, to
+       project-or-libraries-find-regexp.
+
+2015-11-06  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Abolish temporary buffer management for xref
+
+       * lisp/progmodes/xref.el (xref--temporary-buffers)
+       (xref--current)
+       (xref--inhibit-mark-current)
+       (xref--mark-selected): Remove.  Remove all references.
+       (xref--show-xrefs): Do not construct the
+       list of the temporary buffers, nor pass it along.
+
+2015-11-06  Dmitry Gutov  <dgutov@yandex.ru>
+
+       Rename "search path" to "library roots"
+
+       * lisp/emacs-lisp/cl-seq.el (cl-set-difference): Retain the order
+       of the elements from CL-LIST1.
+
+       * test/automated/cl-lib-tests.el (cl-lib-test-set-functions):
+       Update WRT to the above change.
+
+       * lisp/progmodes/project.el (project-search-path-function): Rename
+       to project-library-roots-function, update the documentation and
+       references.
+       (project-search-path): Likewise, to project-library-roots.
+       (project-roots): Clarify documentation.
+       (project-vc-search-path): Likewise, to project-vc-library-roots.
+       (project-library-roots): In addition to the renames, thread the
+       results through file-name-as-directory.
+       (project-prune-directories): Accept a variable number of
+       arguments.  Rename to project-combine-directories.
+       (project-subtract-directories): New function.
+
+       * lisp/progmodes/elisp-mode.el (elisp--xref-find-references):
+       Append project-roots and project-library-roots together.
+
+       * lisp/progmodes/etags.el (etags--xref-find-references): Ditto.
+
 2015-11-08  Paul Eggert  <eggert@cs.ucla.edu>
 
        Prefer xpalloc to doubling buffers by hand
 
 This file records repository revisions from
 commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
-commit 8a8613bcf4227dfe46a694b761e9575bdf6ca2ce (inclusive).
+commit 384cf23c6ed05e1f151032958a2cc2bb8100344b (inclusive).
 See ChangeLog.1 for earlier changes.
 
 ;; Local Variables:
index c6a7bda0794c7c8745e544ef9ef5b6edf2435f8c..fdaa63a9ec2eba630259a5395a4960c10b124520 100644 (file)
@@ -921,14 +921,17 @@ extraclean: $(extraclean_dirs:=_extraclean)
 TAGS tags: lib lib-src src
        $(MAKE) -C src tags
 
-check: all
-       @if test ! -d test/automated; then \
+.PHONY: have-tests
+have-tests:
+       @if test ! -d test; then \
          echo "You do not seem to have the test/ directory."; \
          echo "Maybe you are using a release tarfile, rather than a repository checkout."; \
-       else \
-         $(MAKE) -C test/automated check; \
+        exit 1; \
        fi
 
+check check-maybe: have-tests all
+       $(MAKE) -C test $@
+
 dist:
        cd ${srcdir}; ./make-dist
 
@@ -943,7 +946,7 @@ $(DOCS):
        $(MAKE) -C doc/$(subst -, ,$@)
 
 .PHONY: $(DOCS) docs pdf ps
-.PHONY: info dvi dist check html info-real info-dir check-info
+.PHONY: info dvi dist check check-maybe html info-real info-dir check-info
 
 ## TODO add etc/refcards.
 docs: $(DOCS)
diff --git a/README b/README
index 61f4cc142cfd906347b93ee918f461053d105db4..35a31dbd31e448e2e815c9bb2d7f115b8fd5357a 100644 (file)
--- a/README
+++ b/README
@@ -2,7 +2,7 @@ Copyright (C) 2001-2016 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
-This directory tree holds version 25.0.50 of GNU Emacs, the extensible,
+This directory tree holds version 25.1.50 of GNU Emacs, the extensible,
 customizable, self-documenting real-time display editor.
 
 The file INSTALL in this directory says how to build and install GNU
index a08a36937b175b2dce91dc8738f11d34ba3c1cc8..ae863fdecb5f14d5df2bfd7988ace0823e4a3eee 100644 (file)
@@ -48,7 +48,9 @@
 (require 'smerge-mode)
 
 (defvar gitmerge-skip-regexp
-  "back[- ]?port\\|merge\\|sync\\|re-?generate\\|bump version\\|from trunk\\|\
+  ;; We used to include "sync" in there, but in my experience it only
+  ;; caused false positives.  --Stef
+  "back[- ]?port\\|merge\\|re-?generate\\|bump version\\|from trunk\\|\
 Auto-commit"
   "Regexp matching logs of revisions that might be skipped.
 `gitmerge-missing' will ask you if it should skip any matches.")
@@ -65,7 +67,7 @@ Auto-commit"
   '((t (:strike-through t)))
   "Face for skipped commits.")
 
-(defconst gitmerge-default-branch "origin/emacs-24"
+(defconst gitmerge-default-branch "origin/emacs-25"
   "Default for branch that should be merged.")
 
 (defconst gitmerge-buffer "*gitmerge*"
@@ -183,8 +185,8 @@ if and why this commit should be skipped."
     ;; Go through the log and remember all commits that match
     ;; `gitmerge-skip-regexp' or are marked by --cherry-mark.
     (with-temp-buffer
-      (call-process "git" nil t nil "log" "--cherry-mark" from
-                   (concat "^" (car (vc-git-branches))))
+      (call-process "git" nil t nil "log" "--cherry-mark" "--left-only"
+                   (concat from "..." (car (vc-git-branches))))
       (goto-char (point-max))
       (while (re-search-backward "^commit \\(.+\\) \\([0-9a-f]+\\).*" nil t)
        (let ((cherrymark (match-string 1))
@@ -206,9 +208,9 @@ if and why this commit should be skipped."
   "Create the buffer for choosing commits."
   (with-current-buffer (get-buffer-create gitmerge-buffer)
     (erase-buffer)
-    (call-process "git" nil t nil "log"
+    (call-process "git" nil t nil "log" "--left-only"
                  "--pretty=format:%h %<(20,trunc) %an: %<(100,trunc) %s"
-                 from (concat "^" (car (vc-git-branches))))
+                 (concat from "..." (car (vc-git-branches))))
     (goto-char (point-min))
     (while (looking-at "^\\([a-f0-9]+\\)")
       (let ((skipreason (gitmerge-skip-commit-p (match-string 1) commits)))
@@ -429,8 +431,14 @@ If so, add no longer conflicted files and commit."
        (when mergehead
          (with-current-buffer (get-buffer-create gitmerge-output-buffer)
            (erase-buffer)
+            ;; FIXME: We add "-m-" because the default commit message
+            ;; apparently tickles our commit hook:
+            ;;    Line longer than 78 characters in commit message
+            ;;    Line longer than 78 characters in commit message
+            ;;    Line longer than 78 characters in commit message
+            ;;    Commit aborted; please see the file CONTRIBUTE
            (unless (zerop (call-process "git" nil t nil
-                                        "commit" "--no-edit"))
+                                        "commit" "--no-edit" "-m-"))
              (error "Git error during merge - fix it manually"))))
        ;; Successfully resumed.
        t))))
index 40b5b78ee8f0a7011f357aee807f59acdd19b497..363bb23d1194400f5c7a84d43716d3b498b8aaea 100755 (executable)
@@ -32,7 +32,7 @@ GNULIB_MODULES='
   dtoastr dtotimespec dup2 environ execinfo faccessat
   fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync
   getloadavg getopt-gnu gettime gettimeofday gitlog-to-changelog
-  ignore-value intprops largefile lstat
+  intprops largefile lstat
   manywarnings memrchr mkostemp mktime
   pipe2 pselect pthread_sigmask putenv qcopy-acl readlink readlinkat
   sig2str socklen stat-time stdalign stddef stdio
diff --git a/admin/notes/bug-triage b/admin/notes/bug-triage
new file mode 100644 (file)
index 0000000..7392fb9
--- /dev/null
@@ -0,0 +1,102 @@
+HOW TO TRIAGE EMACS BUGS  -*- outline -*-
+
+This document just describes the procedure of triaging bugs, for information on
+how to work with the bug tracker, see the bugtracker file in this same directory
+for the basics.  You can also install the debbugs ELPA package for access to M-x
+debbugs-gnu, an emacs interface to debbugs, and M-x debbugs-org, an emacs
+interface via org-mode.
+
+* Bug backlog triage procedure
+
+The goal of this triage is to prune down the list of old bugs, closing
+the ones that are not reproducible on the current release.
+
+  1. To start, enter debbugs mode (either debbugs-gnu, debbugs-org, or via the
+     web browser), and accept the default list option of bugs that have severity
+     serious, important, or normal.
+  2. This will also show closed bugs that have yet to be archived.  You can
+     filter these out in debbugs-gnu with "x" (debbugs-gnu-toggle-suppress).
+  3. For each bug, we want to primarily make sure it is still
+     reproducible.  A bug can and should stay open as long as it is
+     still a bug and no one has fixed it.  The following is a
+     suggested checklist to follow for handling these bugs, along with
+     example replies.  The various closings, taggings, etc, are done
+     with debbugs control messages, which in debbugs-gnu is initiated
+     with a "C".
+     [ ] Read the mail thread for the bug.  Find out if anyone has
+         been able to reproduce this on the current release.  If
+         someone has been able to, then your work is finished for this
+         bug.
+     [ ] Make sure there's enough information to reproduce the bug.
+         It should be very clear how to reproduce.  If not, please ask
+         for specific steps to reproduce.  If you don't get them, and
+         you can't reproduce without them, you can close as
+         "doneunreproducible".  Sometimes there is specific hardware
+         involved, such as particular models of keyboards, or it may
+         simply involve a platform you don't have access to.  It's
+         fine to ignore those, and let a future triager that is better
+         equipped to reproduce it handle it.
+
+         An example reply asking for clear reproduction steps would be
+         something like: "Hi!  In the interest of seeing whether this
+         is reproducible, and to aid anyone who will look at this bug
+         in the future, can you please give instructions on how to
+         reproduce this bug starting from an emacs without
+         configuration ("emacs -Q")?
+     [ ] If there is enough detail to reproduce, but no one has
+         mentioned being able to reproduce on the current release,
+         read the bug description and attempt to reproduce on an emacs
+         started with "emacs -Q" (the goal is to not let our personal
+         configs interfere with bug testing).
+
+         If you can reproduce, then reply on the thread (either on the
+         original message, or anywhere you find appropriate) that you
+         can reproduce this on the current release. If your
+         reproduction gives additional info (such as a backtrace),
+         then add that as well, since it will help whoever attempts to
+         fix it.
+
+         Example reply: "I'd just like to add that I can reproduce
+         this on the latest version of Emacs, Emacs 25."
+
+         If you can't reproduce, state that you can't reproduce it on
+         the current release, ask if they can try again against the
+         current release.  Tag the bug as "unreproducable".  Wait a
+         few weeks for their reply - if they can reproduce it, then
+         that's great, otherwise close as "doneunreproducible".
+
+         Example reply: "I've attempted to reproduce this on the
+         latest version of emacs, Emacs 25, but haven't been able to.
+         Can you try to reproduce this on this version, and let us
+         know if you are able to?  If I don't hear back in a few
+         weeks, I'll just close this bug as unreproducible."
+     [ ] Check that the priority is reasonable.  Most bugs should be
+         marked as normal, but crashers and security issues can be
+         marked as "severe".
+  4. Your changes will take some time to take effect.  After a period of minutes
+     to hours, you will get a mail telling you the control message has been
+     processed.  At this point, if there were no errors detected, you and
+     everyone else can see your changes. If there are errors, read the error
+     text - if you need help, consulting the bugtracker documentation in this
+     same directory.
+
+* New bug triage process
+
+The goal of the new bug triage process is similar to the backlog triage process,
+except that the focus is on prioritizing the bug, and making sure it is has
+necessary information for others to act on.
+
+For each new bug, ask the following questions:
+
+  1. Is the bug report written in a way to be easy to reproduce (starts from
+     emacs -Q, etc.)?  If not, ask the reporter to try and reproduce it on an
+     emacs without customization.
+  2. Is the bug report written against the latest emacs?  If not, try to
+     reproduce on the latest version, and if it can't be reproduced, ask the
+     reporter to try again with the latest version.
+  3. Is the bug the same as another bug?  If so, merge the bugs.
+  4. What is the priority of the bug?  Add a priority: critical, grave, serious,
+     important, normal, minor, or wishlist.
+  5. Who should be the owner?  This depends on what component the bug is part
+     of.  You can look at the admin/MAINTAINERS file (then you can just search
+     emacs-devel to match the name with an email address).
index 5a95fa2d7bcb72f52e2fc2f83a35790a4f4aaa2b..a9f4419e594eb08e2fe912b2a8bfc488103f9f00 100644 (file)
@@ -44,9 +44,10 @@ branches merges bugfix commits from the "emacs-NN" branch.
 Emacs uses the "blocking bug(s)" feature of Debbugs for bugs need to
 be addressed in the next release.
 
-Currently, bug#19759 is the tracking bug for release of 25.1.  Say
-bug#123 needs to be fixed for Emacs 25.1.  Send a message to
-control@debbugs.gnu.org that says:
+Currently, bug#19759 is the tracking bug for release of 25.1 and
+bug#21966 is the tracking bug for release of 25.2.  Say bug#123 needs
+to be fixed for Emacs 25.1.  Send a message to control@debbugs.gnu.org
+that says:
 
    block 19759 by 123
 
index e25d48ec3a229000d5d69266dcddbc4aea4b11d7..a0e0a05df8f1194dcc47012e58b26ab11cae3c57 100755 (executable)
@@ -9,7 +9,7 @@ my $VERSION = '2015-06-11 01:03'; # 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-2015 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
index cd744a92f366979f61bcb43c53f7c22a5493e6c0..3cd87a9ae5527343720977447d31cb8f5b0c7214 100755 (executable)
@@ -8,7 +8,7 @@ VERSION='2012-01-06 07:23'; # 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-2015 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
index 584649f694b15c7c2344a2f0d3759a6cba5a0497..0d55e2bced4586de924df039f8aa5efd0b54fbf2 100644 (file)
@@ -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-2015 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
index 813f2e2e4e8ca20df9649faf55d05348db52684d..585b38ab39a3e877f66160043ae6fae9907a1e48 100644 (file)
@@ -1,5 +1,5 @@
 /* C++ compatible function declaration macros.
-   Copyright (C) 2010-2016 Free Software Foundation, Inc.
+   Copyright (C) 2010-2015 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
index 2948b47882e7250155bb0d8ffedb70c0d210653a..90f4985ce1ee38c77fd46643d6d95c64a6797e73 100644 (file)
@@ -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-2015 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
index 40f7b9817bcda4659356b9d6ff02660ec9def035..8cc36e22d59c48766a533745bc8d7d69e58dcd4d 100755 (executable)
@@ -5,7 +5,7 @@ eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" ${1+"$@"}'
 
 my $VERSION = '2015-01-15.20:53'; # UTC
 
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2009-2015 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
index 8c01abac9c6baa17fd9e4b7555d75db280807d15..ddf0f5fcfa1de1bf7e5b811a7484aca48db2009a 100644 (file)
@@ -23,7 +23,7 @@ dnl  along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 AC_PREREQ(2.65)
 dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el.
-AC_INIT(GNU Emacs, 25.0.50, bug-gnu-emacs@gnu.org)
+AC_INIT(GNU Emacs, 25.1.50, bug-gnu-emacs@gnu.org)
 
 dnl Set emacs_config_options to the options of 'configure', quoted for the shell,
 dnl and then quoted again for a C string.  Separate options with spaces.
@@ -356,17 +356,18 @@ OPTION_DEFAULT_ON([zlib],[don't compile with zlib decompression support])
 OPTION_DEFAULT_OFF([modules],[compile with dynamic modules support])
 
 AC_ARG_WITH([file-notification],[AS_HELP_STRING([--with-file-notification=LIB],
- [use a file notification library (LIB one of: yes, gfile, inotify, w32, no)])],
+ [use a file notification library (LIB one of: yes, inotify, kqueue, gfile, w32, no)])],
  [ case "${withval}" in
     y | ye | yes )     val=yes ;;
     n | no )           val=no  ;;
-    g | gf | gfi | gfil | gfile )      val=gfile ;;
     i | in | ino | inot | inoti | inotif | inotify )   val=inotify ;;
+    k | kq | kqu | kque | kqueu | kqueue )     val=kqueue ;;
+    g | gf | gfi | gfil | gfile )      val=gfile ;;
     w | w3 | w32 )     val=w32 ;;
     * ) AC_MSG_ERROR(['--with-file-notification=$withval' is invalid;
-this option's value should be 'yes', 'no', 'gfile', 'inotify' or 'w32'.
+this option's value should be 'yes', 'no', 'inotify', 'kqueue', 'gfile' or 'w32'.
 'yes' is a synonym for 'w32' on MS-Windows, for 'no' on Nextstep,
-otherwise for the first of 'inotify' or 'gfile' that is usable.])
+otherwise for the first of 'inotify', 'kqueue' or 'gfile' that is usable.])
     ;;
    esac
    with_file_notification=$val
@@ -2689,12 +2690,6 @@ AC_SUBST(LIBGNUTLS_CFLAGS)
 NOTIFY_OBJ=
 NOTIFY_SUMMARY=no
 
-dnl FIXME?  Don't auto-detect on NS, but do allow someone to specify
-dnl a particular library.  This doesn't make much sense?
-if test "${HAVE_NS}" = yes && test ${with_file_notification} = yes; then
-  with_file_notification=no
-fi
-
 dnl MS Windows native file monitor is available for mingw32 only.
 case $with_file_notification,$opsys in
   w32,cygwin)
@@ -2725,16 +2720,44 @@ case $with_file_notification,$NOTIFY_OBJ in
     fi ;;
 esac
 
+dnl kqueue is available on BSD-like systems.
+case $with_file_notification,$NOTIFY_OBJ in
+  kqueue,* | yes,)
+    EMACS_CHECK_MODULES([KQUEUE], [libkqueue])
+    if test "$HAVE_KQUEUE" = "yes"; then
+       AC_DEFINE(HAVE_KQUEUE, 1, [Define to 1 to use kqueue.])
+       CPPFLAGS="$CPPFLAGS -I/usr/include/kqueue"
+       NOTIFY_CFLAGS=$KQUEUE_CFLAGS
+       NOTIFY_LIBS=$KQUEUE_LIBS
+       NOTIFY_OBJ=kqueue.o
+       NOTIFY_SUMMARY="yes -lkqueue"
+    else
+       AC_SEARCH_LIBS(kqueue, [])
+       if test "$ac_cv_search_kqueue" != no; then
+         AC_DEFINE(HAVE_KQUEUE, 1, [Define to 1 to use kqueue.])
+        NOTIFY_OBJ=kqueue.o
+        NOTIFY_SUMMARY="yes (kqueue)"
+       fi
+    fi ;;
+esac
+
 dnl g_file_monitor exists since glib 2.18.  G_FILE_MONITOR_EVENT_MOVED
 dnl has been added in glib 2.24.  It has been tested under
 dnl GNU/Linux only.
 case $with_file_notification,$NOTIFY_OBJ in
   gfile,* | yes,)
-    EMACS_CHECK_MODULES([GFILENOTIFY], [gio-2.0 >= 2.24])
-    if test "$HAVE_GFILENOTIFY" = "yes"; then
-       AC_DEFINE(HAVE_GFILENOTIFY, 1, [Define to 1 if using GFile.])
-       NOTIFY_OBJ=gfilenotify.o
-       NOTIFY_SUMMARY="yes -lgio (gfile)"
+    if test "${HAVE_NS}" = yes; then
+       AC_MSG_ERROR(['--with-file-notification=gfile' is not supported in NextStep builds.
+Consider kqueue instead.])
+    else
+       EMACS_CHECK_MODULES([GFILENOTIFY], [gio-2.0 >= 2.24])
+       if test "$HAVE_GFILENOTIFY" = "yes"; then
+         AC_DEFINE(HAVE_GFILENOTIFY, 1, [Define to 1 if using GFile.])
+         NOTIFY_CFLAGS=$GFILENOTIFY_CFLAGS
+         NOTIFY_LIBS=$GFILENOTIFY_LIBS
+         NOTIFY_OBJ=gfilenotify.o
+         NOTIFY_SUMMARY="yes -lgio (gfile)"
+       fi
     fi ;;
 esac
 
@@ -2746,9 +2769,9 @@ esac
 if test -n "$NOTIFY_OBJ"; then
    AC_DEFINE(USE_FILE_NOTIFY, 1, [Define to 1 if using file notifications.])
 fi
+AC_SUBST(NOTIFY_CFLAGS)
+AC_SUBST(NOTIFY_LIBS)
 AC_SUBST(NOTIFY_OBJ)
-AC_SUBST(GFILENOTIFY_CFLAGS)
-AC_SUBST(GFILENOTIFY_LIBS)
 
 dnl Do not put whitespace before the #include statements below.
 dnl Older compilers (eg sunos4 cc) choke on it.
@@ -4119,8 +4142,8 @@ OLDCFLAGS="$CFLAGS"
 OLDLIBS="$LIBS"
 CFLAGS="$CFLAGS $GTK_CFLAGS $RSVG_CFLAGS $DBUS_CFLAGS $SETTINGS_CFLAGS"
 LIBS="$LIBS $GTK_LIBS $RSVG_LIBS $DBUS_LIBS $SETTINGS_LIBS"
-CFLAGS="$CFLAGS $GFILENOTIFY_CFLAGS $CAIRO_CFLAGS"
-LIBS="$LIBS $GFILENOTIFY_LIBS $CAIRO_LIBS"
+CFLAGS="$CFLAGS $NOTIFY_CFLAGS $CAIRO_CFLAGS"
+LIBS="$LIBS $NOTIFY_LIBS $CAIRO_LIBS"
 AC_MSG_CHECKING([whether GLib is linked in])
 AC_LINK_IFELSE([AC_LANG_PROGRAM(
        [[#include <glib.h>
@@ -4200,7 +4223,7 @@ else
   SEPCHAR=':'
 fi
 AC_DEFINE_UNQUOTED(SEPCHAR, ['$SEPCHAR'], [Character that separates PATH elements.])
-dnl This is for MinGW, and is used in test/automated/Makefile.in.
+dnl This is for MinGW, and is used in test/Makefile.in.
 dnl The MSYS Bash has heuristics for replacing ':' with ';' when it
 dnl decides that a command-line argument to be passed to a MinGW program
 dnl is a PATH-style list of directories.  But that heuristics plays it
@@ -5339,13 +5362,13 @@ AC_CONFIG_FILES([Makefile lib/Makefile lib-src/Makefile oldXMenu/Makefile \
        leim/Makefile nextstep/Makefile nt/Makefile])
 
 dnl test/ is not present in release tarfiles.
-opt_makefile=test/automated/Makefile
+opt_makefile=test/Makefile
 
 if test -f "$srcdir/$opt_makefile.in"; then
   SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
   dnl Again, it's best not to use a variable.  Though you can add
   dnl ", [], [opt_makefile='$opt_makefile']" and it should work.
-  AC_CONFIG_FILES([test/automated/Makefile])
+  AC_CONFIG_FILES([test/Makefile])
 fi
 
 
index f3211b5fecf46f4418ba70fe4becf1ef4e1db0fa..119a10ccc081670acddf4395255d41efe283f933 100644 (file)
@@ -1414,6 +1414,13 @@ names into arguments for other Emacs commands.  It also displays what
 it added to the kill ring, so you can use it to display the list of
 currently marked files in the echo area.
 
+@kindex W @r{(Dired)}
+@findex browse-url-of-dired-file
+  If you have an HTML file in the file listing, it can be useful to
+view that file with a browser.  The @kbd{W}
+(@code{browse-url-of-dired-file}) command will use the standard
+configured browser to view that file.
+
 @kindex ( @r{(Dired)}
 @findex dired-hide-details-mode
 @vindex dired-hide-details-hide-symlink-targets
index 969c1d6e1eafa3e81e11ea15dbd798ee9ae4a1ed..9db5e9e1e97a33774e06c82c772d9cda3f8ba3d9 100644 (file)
@@ -2643,9 +2643,9 @@ This function removes the tray notification given by its unique
 
 Several operating systems support watching of filesystems for changes
 of files.  If configured properly, Emacs links a respective library
-like @file{gfilenotify}, @file{inotify}, or @file{w32notify}
-statically.  These libraries enable watching of filesystems on the
-local machine.
+like @file{inotify}, @file{kqueue}, @file{gfilenotify}, or
+@file{w32notify} statically.  These libraries enable watching of
+filesystems on the local machine.
 
 It is also possible to watch filesystems on remote machines,
 @pxref{Remote Files,, Remote Files, emacs, The GNU Emacs Manual}
@@ -2716,7 +2716,8 @@ watching @var{file} has been stopped
 Note that the @file{w32notify} library does not report
 @code{attribute-changed} events.  When some file's attribute, like
 permissions or modification time, has changed, this library reports a
-@code{changed} event.
+@code{changed} event.  Likewise, the @file{kqueue} library does not
+report reliably file attribute changes when watching a directory.
 
 The @code{stopped} event reports, that watching the file has been
 stopped.  This could be because @code{file-notify-rm-watch} was called
@@ -2755,7 +2756,7 @@ being reported.  For example:
 @group
 (write-region "bla" nil "/tmp/foo")
      @result{} Event (35025468 created "/tmp/.#foo")
-        Event (35025468 changed "/tmp/foo") [2 times]
+        Event (35025468 changed "/tmp/foo")
         Event (35025468 deleted "/tmp/.#foo")
 @end group
 
@@ -2801,14 +2802,14 @@ also makes it invalid.
 @example
 @group
 (make-directory "/tmp/foo")
-     @result{} nil
+     @result{} Event (35025468 created "/tmp/foo")
 @end group
 
 @group
 (setq desc
       (file-notify-add-watch
         "/tmp/foo" '(change) 'my-notify-callback))
-     @result{} 35025468
+     @result{} 11359632
 @end group
 
 @group
@@ -2818,32 +2819,34 @@ also makes it invalid.
 
 @group
 (write-region "bla" nil "/tmp/foo/bla")
-     @result{} Event (35025468 created "/tmp/foo/.#bla")
-        Event (35025468 created "/tmp/foo/bla")
-        Event (35025468 changed "/tmp/foo/bla")
-        Event (35025468 changed "/tmp/foo/.#bla")
+     @result{} Event (11359632 created "/tmp/foo/.#bla")
+        Event (11359632 created "/tmp/foo/bla")
+        Event (11359632 changed "/tmp/foo/bla")
+        Event (11359632 deleted "/tmp/foo/.#bla")
 @end group
 
 @group
 ;; Deleting a file in the directory doesn't invalidate the watch.
 (delete-file "/tmp/foo/bla")
-     @result{} Event (35025468 deleted "/tmp/foo/bla")
+     @result{} Event (11359632 deleted "/tmp/foo/bla")
 @end group
 
 @group
 (write-region "bla" nil "/tmp/foo/bla")
-     @result{} Event (35025468 created "/tmp/foo/.#bla")
-        Event (35025468 created "/tmp/foo/bla")
-        Event (35025468 changed "/tmp/foo/bla")
-        Event (35025468 changed "/tmp/foo/.#bla")
+     @result{} Event (11359632 created "/tmp/foo/.#bla")
+        Event (11359632 created "/tmp/foo/bla")
+        Event (11359632 changed "/tmp/foo/bla")
+        Event (11359632 deleted "/tmp/foo/.#bla")
 @end group
 
 @group
 ;; Deleting the directory invalidates the watch.
+;; Events arrive for different watch descriptors.
 (delete-directory "/tmp/foo" 'recursive)
-     @result{} Event (35025468 deleted "/tmp/foo/bla")
-        Event (35025468 deleted "/tmp/foo")
-        Event (35025468 stopped "/tmp/foo")
+     @result{} Event (35025468 deleted "/tmp/foo")
+        Event (11359632 deleted "/tmp/foo/bla")
+        Event (11359632 deleted "/tmp/foo")
+        Event (11359632 stopped "/tmp/foo")
 @end group
 
 @group
index 16511de9573f993e3f193e34cb9e039da2be0f63..14f0a8d0ea2b7a6dea0b755f8bfc5dc35ad91aea 100644 (file)
@@ -109,6 +109,12 @@ only display this part.  This usually gets rid of menus and the like.
   The @kbd{F} command (@code{eww-toggle-fonts}) toggles whether to use
 variable-pitch fonts or not.  This sets the @code{shr-use-fonts} variable.
 
+@findex eww-toggle-colors
+@findex shr-use-colors
+@kindex F
+  The @kbd{C} command (@code{eww-toggle-colors}) toggles whether to use
+HTML-specified colors or not.  This sets the @code{shr-use-colors} variable.
+
 @findex eww-download
 @vindex eww-download-directory
 @kindex d
index 761fb772f464a24d0e333b24e5f93922c7ddcea7..dbc77592a0329de6d4764e7122fe297e7c2046c9 100644 (file)
@@ -938,82 +938,16 @@ Libidn} installed in order to use this functionality.
 @cindex encrypt
 @cindex secure
 
-By default, e-mails are transmitted without any protection around the
-Internet, which implies that they can be read and changed by lots of
-different parties.  In particular, they are analyzed under bulk
-surveillance, which violates basic human rights.  To defend those
-rights, digital self-defense is necessary (in addition to legal
-changes), and encryption and digital signatures are powerful
-techniques for self-defense.  In essence, encryption ensures that
-only the intended recipient will be able to read a message, while
-digital signatures make sure that modifications to messages can be
-detected by the recipient.
-
-Nowadays, there are two major incompatible e-mail encryption
-standards, namely @acronym{OpenPGP} and @acronym{S/MIME}.  Both of
-these standards are implemented by the @uref{https://www.gnupg.org/,
-GNU Privacy Guard (GnuPG)}, which needs to be installed as external
-software in addition to GNU Emacs.  Before you can start to encrypt,
-decrypt, and sign messages, you need to create a so-called key-pair,
-which consists of a private key and a public key.  Your @emph{public} key
-(also known as @emph{certificate}, in particular with @acronym{S/MIME}), is
-used by others (a) to encrypt messages intended for you and (b) to verify
-digital signatures created by you.  In contrast, you use your @emph{private}
-key (a) to decrypt messages and (b) to sign messages.  (You may want to
-think of your public key as an open safe that you offer to others such
-that they can deposit messages and lock the door, while your private
-key corresponds to the opening combination for the safe.)
-
-Thus, you need to perform the following steps for e-mail encryption,
-typically outside Emacs.  See, for example, the
-@uref{https://www.gnupg.org/gph/en/manual.html, The GNU Privacy
-Handbook} for details covering the standard @acronym{OpenPGP} with
-@acronym{GnuPG}.
-@enumerate
-@item
-Install GnuPG.
-@item
-Create a key-pair for your own e-mail address.
-@item
-Distribute your public key, e.g., via upload to key servers.
-@item
-Import the public keys for the recipients to which you want to send
-encrypted e-mails.
-@end enumerate
-
-Whether to use the standard @acronym{OpenPGP} or @acronym{S/MIME} is
-beyond the scope of this documentation.  Actually, you can use one
-standard for one set of recipients and the other standard for
-different recipients (depending their preferences or capabilities).
-
-In case you are not familiar with all those acronyms: The standard
-@acronym{OpenPGP} is also called @acronym{PGP} (Pretty Good Privacy).
-The command line tools offered by @acronym{GnuPG} for
-@acronym{OpenPGP} are called @command{gpg} and @command{gpg2}, while
-the one for @acronym{S/MIME} is called @command{gpgsm}.  An
-alternative, but discouraged, tool for @acronym{S/MIME} is
-@command{openssl}.  To make matters worse, e-mail messages can be
-formed in two different ways with @acronym{OpenPGP}, namely
-@acronym{PGP} (RFC 1991/4880) and @acronym{PGP/MIME} (RFC 2015/3156).
-
-The good news, however, is the following: In GNU Emacs, Message
-supports all those variants, comes with reasonable defaults that can
-be customized according to your needs, and invokes the proper command
-line tools behind the scenes for encryption, decryption, as well as
-creation and verification of digital signatures.
-
-Message uses the @acronym{MML} language for the creation of signed
-and/or encrypted messages as explained in the following.
-
+Using the @acronym{MML} language, Message is able to create digitally
+signed and digitally encrypted messages.  Message (or rather
+@acronym{MML}) currently support @acronym{PGP} (RFC 1991),
+@acronym{PGP/MIME} (RFC 2015/3156) and @acronym{S/MIME}.
 
 @menu
 * Signing and encryption::      Signing and encrypting commands.
 * Using S/MIME::                Using S/MIME
-* Using OpenPGP::               Using OpenPGP
-* Passphrase caching::          How to cache passphrases
+* Using PGP/MIME::              Using PGP/MIME
 * PGP Compatibility::           Compatibility with older implementations
-* Encrypt-to-self::             Reading your own encrypted messages
-* Bcc Warning::                 Do not use encryption with Bcc headers
 @end menu
 
 @node Signing and encryption
@@ -1107,45 +1041,11 @@ programs are required to make things work, and some small general hints.
 @node Using S/MIME
 @subsection Using S/MIME
 
-@acronym{S/MIME} requires an external implementation, such as
-@uref{https://www.gnupg.org/, GNU Privacy Guard} or
-@uref{https://www.openssl.org/, OpenSSL}.  The default Emacs interface
-to the S/MIME implementation is EasyPG (@pxref{Top,,EasyPG Assistant
-User's Manual, epa, EasyPG Assistant User's Manual}), which has been
-included in Emacs since version 23 and which relies on the command
-line tool @command{gpgsm} provided by @acronym{GnuPG}.  That tool
-implements certificate management, including certificate revocation
-and expiry, while such tasks need to be performed manually, if OpenSSL
-is used.
-
-The choice between EasyPG and OpenSSL is controlled by the variable
-@code{mml-smime-use}, which needs to be set to the value @code{epg}
-for EasyPG.  Depending on your version of Emacs that value may be the
-default; if not, you can either customize that variable or place the
-following line in your @file{.emacs} file (that line needs to be
-placed above other code related to message/gnus/encryption):
-
-@lisp
-(require 'epg)
-@end lisp
-
-Moreover, you may want to customize the variables
-@code{mml-default-encrypt-method} and
-@code{mml-default-sign-method} to the string @code{"smime"}.
-
-That's all if you want to use S/MIME with EasyPG, and that's the
-recommended way of using S/MIME with Message.
-
-If you think about using OpenSSL instead of EasyPG, please read the
-BUGS section in the manual for the @command{smime} command coming with
-OpenSSL first.  If you still want to use OpenSSL, the following
-applies.
-
-@emph{Note!}  The remainder of this section assumes you have a basic
-familiarity with modern cryptography, @acronym{S/MIME}, various PKCS
-standards, OpenSSL and so on.
+@emph{Note!}  This section assume you have a basic familiarity with
+modern cryptography, @acronym{S/MIME}, various PKCS standards, OpenSSL and
+so on.
 
-The @acronym{S/MIME} support in Message (and @acronym{MML}) can use
+The @acronym{S/MIME} support in Message (and @acronym{MML}) require
 OpenSSL@.  OpenSSL performs the actual @acronym{S/MIME} sign/encrypt
 operations.  OpenSSL can be found at @uref{http://www.openssl.org/}.
 OpenSSL 0.9.6 and later should work.  Version 0.9.5a cannot extract mail
@@ -1201,44 +1101,26 @@ you use unencrypted keys (e.g., if they are on a secure storage, or if
 you are on a secure single user machine) simply press @code{RET} at
 the passphrase prompt.
 
-@node Using OpenPGP
-@subsection Using OpenPGP
+@node Using PGP/MIME
+@subsection Using PGP/MIME
 
-Use of OpenPGP requires an external software, such
-as @uref{https://www.gnupg.org/, GNU Privacy Guard}.  Pre-OpenPGP
+@acronym{PGP/MIME} requires an external OpenPGP implementation, such
+as @uref{http://www.gnupg.org/, GNU Privacy Guard}. Pre-OpenPGP
 implementations such as PGP 2.x and PGP 5.x are also supported.  The
 default Emacs interface to the PGP implementation is EasyPG
 (@pxref{Top,,EasyPG Assistant User's Manual, epa, EasyPG Assistant
 User's Manual}), but PGG (@pxref{Top, ,PGG, pgg, PGG Manual}) and
 Mailcrypt are also supported.  @xref{PGP Compatibility}.
 
-As stated earlier, messages encrypted with OpenPGP can be formatted
-according to two different standards, namely @acronym{PGP} or
-@acronym{PGP/MIME}.  The variables
-@code{mml-default-encrypt-method} and
-@code{mml-default-sign-method} determine which variant to prefer,
-@acronym{PGP/MIME} by default.
-
-@node Passphrase caching
-@subsection Passphrase caching
-
 @cindex gpg-agent
-Message with EasyPG internally calls GnuPG (the @command{gpg} or
-@command{gpgsm} command) to perform
+Message internally calls GnuPG (the @command{gpg} command) to perform
 data encryption, and in certain cases (decrypting or signing for
-example), @command{gpg}/@command{gpgsm} requires user's passphrase.
-Currently the recommended way to supply your passphrase is to use the
+example), @command{gpg} requires user's passphrase.  Currently the
+recommended way to supply your passphrase to @command{gpg} is to use the
 @command{gpg-agent} program.
 
-In particular, the @command{gpg-agent} program supports passphrase
-caching so that you do not need to enter your passphrase for every
-decryption/sign operation.  @xref{Agent Options, , , gnupg, Using the
-GNU Privacy Guard}.
-
-How to use @command{gpg-agent} in Emacs depends on your version of
-GnuPG.  With GnuPG version 2.1, @command{gpg-agent} is started
-automatically if necessary.  With older versions you may need to run
-the following command from the shell before starting Emacs.
+To use @command{gpg-agent} in Emacs, you need to run the following
+command from the shell before starting Emacs.
 
 @example
 eval `gpg-agent --daemon`
@@ -1253,10 +1135,11 @@ GNU Privacy Guard}.
 Once your @command{gpg-agent} is set up, it will ask you for a
 passphrase as needed for @command{gpg}.  Under the X Window System,
 you will see a new passphrase input dialog appear.  The dialog is
-provided by PIN Entry (the @command{pinentry} command), reasonably
-recent versions of which can also cooperate with Emacs on a text
-console.  If that does not work, you may need to put a passphrase into
-gpg-agent's cache beforehand.  The following command does the trick.
+provided by PIN Entry (the @command{pinentry} command), and as of
+version 0.7.2, @command{pinentry} cannot cooperate with Emacs on a
+single tty.  So, if you are using a text console, you may need to put
+a passphrase into gpg-agent's cache beforehand.  The following command
+does the trick.
 
 @example
 gpg --use-agent --sign < /dev/null > /dev/null
@@ -1298,38 +1181,6 @@ message that can be understood by PGP version 2.
 (Refer to @uref{http://www.gnupg.org/gph/en/pgp2x.html} for more
 information about the problem.)
 
-@node Encrypt-to-self
-@subsection Encrypt-to-self
-
-By default, messages are encrypted to all recipients (@code{To},
-@code{Cc}, @code{Bcc} headers).  Thus, you will not be able to decrypt
-your own messages.  To make sure that messages are also encrypted to
-your own key(s), several alternative solutions exist:
-@enumerate
-@item
-Use the @code{encrypt-to} option in the file @file{gpg.conf} (for
-OpenPGP) or @file{gpgsm.conf} (for @acronym{S/MIME} with EasyPG).
-@xref{Invoking GPG, , , gnupg, Using the GNU Privacy Guard}, or
-@xref{Invoking GPGSM, , , gnupg, Using the GNU Privacy Guard}.
-@item
-Include your own e-mail address (for which you created a key-pair)
-among the recipients.
-@item
-Customize the variable @code{mml-secure-openpgp-encrypt-to-self} (for
-OpenPGP) or @code{mml-secure-smime-encrypt-to-self} (for
-@acronym{S/MIME} with EasyPG).
-@end enumerate
-
-@node Bcc Warning
-@subsection Bcc Warning
-
-The @code{Bcc} header is meant to hide recipients of messages.
-However, when encrypted messages are used, the e-mail addresses of all
-@code{Bcc}-headers are given away to all recipients without
-warning, which is a bug, see
-@uref{https://debbugs.gnu.org/cgi/bugreport.cgi?bug=18718}.
-
-
 @node Various Commands
 @section Various Commands
 
index 58f9ba8ccf324d7db89facd92f17bb5370a0d391..8b0bb82f17487eb16dbd0b7bcea7cbb67d6d1b3d 100644 (file)
@@ -444,6 +444,36 @@ printer function.  Then, if you call again
 @code{"%.3f"}, all the cells using printer @samp{foo} will be
 reprinted accordingly.
 
+When you define a printer function with a lambda expression taking one
+argument, please take care that the returned value is a string, or a
+list containing a string, even when the input argument has an
+unexpected value. Here is an example:
+
+@example
+(lambda (val)
+   (cond
+      ((null val) "")
+      ((and (numberp val) (>= val 0)) (format "%.1f" val))
+      (t (ses-center-span (format "%S" val) ?#))))
+@end example
+
+This example will:
+@itemize
+@item
+When the cell is empty (ie.@: when @code{val} is @code{nil}), print an
+empty string @code{""}
+@item
+When the cell value is a non negative number, format the the value in
+fixed-point notation with one decimal after point
+@item
+Otherwise, handle the value as erroneous by printing it as an
+s-expression (using @code{prin1}), centered and surrounded by @code{#}
+filling.
+@end itemize
+
+
+
+
 @node Clearing cells
 @section Clearing cells
 @cindex clearing commands
index f140bba94b8ddb633f72e90a31d06525199c85ed..34fd353a9dc9984ebbb88a5cb5f498eb92a458d8 100644 (file)
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2015-12-20.12}
+\def\texinfoversion{2015-12-17.20}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -5410,9 +5410,6 @@ end
 }
 
 \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
-  % If not much space left on page, start a new page.
-  \ifdim\pagetotal>0.8\vsize\vfill\eject\fi
-  %
   % Grab any single-column material above us.
   \output = {%
     %
@@ -5470,7 +5467,7 @@ end
   % since nobody clobbers \vsize.)
   \global\doublecolumntopgap = \topskip
   \global\advance\doublecolumntopgap by -1\baselineskip
-  \advance\vsize by -1\doublecolumntopgap
+  \global\advance\vsize by -1\doublecolumntopgap
   \vsize = 2\vsize
   \topskip=0pt
   \global\entrylinedepth=0pt\relax
@@ -5540,20 +5537,23 @@ end
   \penalty0
   %
   \output = {%
-    % Split the last of the double-column material.
+    % Split the last of the double-column material.  Leave it on the
+    % current page, no automatic page break.
     \savemarks
     \balancecolumns
     %
-    % Having called \balancecolumns once, we do not
+    % If we end up splitting too much material for the current page,
+    % though, there will be another page break right after this \output
+    % invocation ends.  Having called \balancecolumns once, we do not
     % want to call it again.  Therefore, reset \output to its normal
-    % definition right away.
+    % definition right away.  (We hope \balancecolumns will never be
+    % called on to balance too much material, but if it is, this makes
+    % the output somewhat more palatable.)
     \global\output = {\onepageout{\pagecontents\PAGE}}%
   }%
   \eject
   \endgroup % started in \begindoublecolumns
   \restoremarks
-  % Leave the double-column material on the current page, no automatic
-  % page break.
   \box\balancedcolumns
   %
   % \pagegoal was set to the doubled \vsize above, since we restarted
index d31d1a00a4d9f43d1cd92fe945224ef2aa08fca3..0566ff2e834f0b99c728f2239aa117076301aa94 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -22,6 +22,58 @@ Temporary note:
 When you add a new item, use the appropriate mark if you are sure it applies,
 otherwise leave it unmarked.
 
+\f
+* Installation Changes in Emacs 25.2
+
+** 'configure' detects the kqueue file notification library on *BSD
+and Mac OS X machines.
+
+\f
+* Startup Changes in Emacs 25.2
+
+\f
+* Changes in Emacs 25.2
+
+** It is possible to disable attempted recovery on fatal signals
+
+Two new variables allow to disable attempts to recover from stack
+overflow and to avoid automatic auto-save when Emacs is delivered a
+fatal signal.  `attempt-stack-overflow-recovery', if set to `nil',
+will disable attempts to recover from C stack overflows; Emacs will
+then crash as with any other fatal signal.
+`attempt-orderly-shutdown-on-fatal-signal', if set to `nil', will
+disable attempts to auto-save the session and shut down in an orderly
+fashion when Emacs receives a fatal signal; instead, Emacs will
+terminate immediately.  Both variables are non-`nil' by default.
+These variables are for users who would like to avoid the small
+probability of data corruption due to techniques Emacs uses to recover
+in these situations.
+
+\f
+* Editing Changes in Emacs 25.2
+
+\f
+* Changes in Specialized Modes and Packages in Emacs 25.2
+
+** File Notifications
+
+*** The kqueue library is integrated for *BSD and Mac OS X machines.
+
+\f
+* New Modes and Packages in Emacs 25.2
+
+\f
+* Incompatible Lisp Changes in Emacs 25.2
+
+\f
+* Lisp Changes in Emacs 25.2
+
+** Autoload files can be generated without timestamps,
+by setting `autoload-timestamps' to nil.
+
+\f
+* Changes in Emacs 25.2 on Non-Free Operating Systems
+
 \f
 * Installation Changes in Emacs 25.1
 
@@ -161,6 +213,11 @@ the variable `dir-locals-file' for more information.
 added via the new Network Security Manager (NSM) and controlled via
 the `network-security-level' variable.
 
+---
+** International domain names (IDNA) are now encoded via the new
+puny.el library, so that one can visit web sites like
+"http://méxico.icom.museum".
+
 ** If Emacs isn't built with TLS support, an external TLS-capable
 program is used instead.  This program used to be run in --insecure
 mode by default, but has now changed to be secure instead, and will
@@ -170,9 +227,12 @@ controlled by the `tls-program' variable.
 +++
 ** C-h l now also lists the commands that were run.
 
-+++
-** x-select-enable-clipboard is renamed select-enable-clipboard
-and x-select-enable-primary is renamed select-enable-primary.
+** The new M-s M-w key binding uses eww to search the web for the
+text in the region.
+
+** M-x suggests shorthands and ignores obsolete commands for completion.
+** x-select-enable-clipboard is renamed select-enable-clipboard.
+x-select-enable-primary and renamed select-enable-primary.
 Additionally they both now apply to all systems (OSX, GNUstep, Windows, you
 name it), with the proviso that on some systems (e.g. Windows)
 select-enable-primary is ineffective since the system doesn't
@@ -388,6 +448,9 @@ additionally need to add `getSelection' to `xterm-extra-capabilities'.
 `erc-network-hide-list' and `erc-channel-hide-list' will only hide the
 specified message types for the respective specified targets.
 
+*** New variable `erc-default-port-tls' used to connect to TLS IRC
+servers.
+
 ** Midnight-mode
 
 ---
@@ -586,6 +649,11 @@ useful when, for example, one needs to distinguish various spaces (e.g. ] [,
 whether to use variable-pitch fonts or not.  The user can also
 customize the `shr-use-fonts' variable.
 
++++
+*** A new command `C' (`eww-toggle-colors') can be used to toggle
+whether to use the HTML-specified colors or not.  The user can also
+customize the `shr-use-colors' variable.
+
 +++
 *** A new command `R' (`eww-readable') will try do identify the main
 textual parts of a web page and display only that, leaving menus and
@@ -1066,6 +1134,10 @@ compress many marked files into a single named archive.  The
 compression command is determined from the new
 `dired-compress-files-alist' variable.
 
++++
+*** `W' is now bound to `browse-url-of-dired-file', and is useful for
+viewing HTML files and the like.
+
 ** Tabulated List Mode
 
 +++
@@ -1530,57 +1602,56 @@ For consistency with the usual Emacs spelling, the Lisp variable
 `hfy-optimisations' has been renamed to `hfy-optimizations'.
 The old name should still work, as an obsolescent alias.
 
-\f
-* Changes in Frames and Windows Code in Emacs 25.1
+** Changes in Frame- and Window- Handling
 
 +++
-** Emacs can now draw horizontal scroll bars on some platforms that
+*** Emacs can now draw horizontal scroll bars on some platforms that
 provide toolkit scroll bars, namely Gtk+, Lucid, Motif and Windows.
 Horizontal scroll bars are turned off by default.
-*** New function `horizontal-scroll-bars-available-p' telling whether
+**** New function `horizontal-scroll-bars-available-p' telling whether
     horizontal scroll bars are available on the underlying system.
-*** New mode `horizontal-scroll-bar-mode' to toggle horizontal scroll
+**** New mode `horizontal-scroll-bar-mode' to toggle horizontal scroll
     bars on all existing and future frames.
-*** New function `toggle-horizontal-scroll-bar' to toggle horizontal
+**** New function `toggle-horizontal-scroll-bar' to toggle horizontal
     scroll bars on the selected frame.
-*** New frame parameters `horizontal-scroll-bars' and
+**** New frame parameters `horizontal-scroll-bars' and
     `scroll-bar-height' to set horizontal scroll bars and their height
     for individual frames and in `default-frame-alist'.
-*** New functions `frame-scroll-bar-height' and
+**** New functions `frame-scroll-bar-height' and
     `window-scroll-bar-height' return the height of horizontal scroll
     bars on a specific frame or window.
-*** `set-window-scroll-bars' now accepts five parameters where the last
+**** `set-window-scroll-bars' now accepts five parameters where the last
     two specify height and type of the window's horizontal scroll bar.
-*** `window-scroll-bars' now returns type and sizes of horizontal scroll
+**** `window-scroll-bars' now returns type and sizes of horizontal scroll
     bars too.
-*** New buffer-local variables `horizontal-scroll-bar' and
+**** New buffer-local variables `horizontal-scroll-bar' and
     `scroll-bar-height'.
 
 +++
-** New functions `frame-geometry' and `frame-edges' give access to a
+*** New functions `frame-geometry' and `frame-edges' give access to a
 frame's geometry.
 
 +++
-** New functions `mouse-absolute-pixel-position' and
+*** New functions `mouse-absolute-pixel-position' and
 `set-mouse-absolute-pixel-position' get/set screen coordinates of the
 mouse cursor.
 
 +++
-** The function `window-edges' now accepts three additional arguments to
+*** The function `window-edges' now accepts three additional arguments to
 retrieve body, absolute and pixel edges of the window.
 
 +++
-** The functions `window-inside-edges', `window-inside-pixel-edges' and
+*** The functions `window-inside-edges', `window-inside-pixel-edges' and
 `window-inside-absolute-pixel-edges' have been renamed to respectively
 `window-body-edges', `window-body-pixel-edges' and
 `window-absolute-body-pixel-edges'.  The old names are kept as aliases.
 
 +++
-** New function `window-absolute-pixel-position' to get the screen
+*** New function `window-absolute-pixel-position' to get the screen
 coordinates of a visible buffer position.
 
 +++
-** The height of a frame's menu and tool bar are no longer counted in the
+*** The height of a frame's menu and tool bar are no longer counted in the
 frame's text height.  This means that the text height stands only for
 the height of the frame's root window plus that of the echo area (if
 present).  This was already the behavior for frames with external tool
@@ -1588,33 +1659,33 @@ and menu bars (like in the Gtk builds) but has now been extended to all
 builds.
 
 +++
-** Frames now do not necessarily preserve the number of columns or lines
+*** Frames now do not necessarily preserve the number of columns or lines
 they display when setting default font, menu bar, fringe width, or
 scroll bars.  In particular, maximized and fullscreen frames are
 conceptually never resized if such settings change.  For fullheight and
 fullwidth frames, the behavior may depend on the toolkit used.
-*** New option `frame-inhibit-implied-resize' if non-nil, means that
+**** New option `frame-inhibit-implied-resize' if non-nil, means that
    setting default font, menu bar, fringe width, or scroll bars of a
    specific frame does not resize that frame in order to preserve the
    number of columns or lines it displays.
 
 +++
-** New function `window-preserve-size' allows to preserve the size of
+*** New function `window-preserve-size' allows to preserve the size of
 windows without "fixing" it.  It's supported by `fit-window-to-buffer',
 `temp-buffer-resize-mode' and `display-buffer'.
 
 +++
-** New `display-buffer' action function `display-buffer-use-some-frame'.
+*** New `display-buffer' action function `display-buffer-use-some-frame'.
 This displays the buffer in an existing frame other than the current
 frame, and allows the caller to specify a frame predicate to exclude
 frames.
 
 +++
-** New minor mode `window-divider-mode' and options
+*** New minor mode `window-divider-mode' and options
 `window-divider-default-places', `window-divider-default-bottom-width'
 and `window-divider-default-right-width'.
 
-** Tearoff menus and detachable toolbars for Gtk+ has been removed.
+** Tearoff menus and detachable toolbars for Gtk+ have been removed.
 Those features have been deprecated in Gtk+ for a long time.
 
 ** Etags
index 5fa152ae5bfbc7d7186d9c2a2d3be10974fc710e..150d943b7e215f27a3a9e7466524bdb6d153487d 100644 (file)
@@ -345,9 +345,12 @@ extraclean: maintainer-clean
 check:
        @echo "We don't have any tests for the lib-src/ directory yet."
 
+tagsfiles = $(wildcard ${srcdir}/*.[ch])
+
+.PHONY: tags
 tags: TAGS
-TAGS: etags${EXEEXT}
-       etags *.[ch]
+TAGS: etags${EXEEXT} ${tagsfiles}
+       ./etags ${tagsfiles}
 
 ../lib/libgnu.a: $(config_h)
        $(MAKE) -C ../lib all
index 086f75fc62da15b864e322ebd711bc4fd5d20dc8..a64d3d3b5b5cb22231cd7c750f8f5609abac5993 100644 (file)
@@ -1,6 +1,6 @@
 /* Test whether ACLs are well supported on this system.
 
-   Copyright 2013-2016 Free Software Foundation, Inc.
+   Copyright 2013-2015 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
index 569e2f9c9e21c22f23bf86f852921e1f0a4f21ca..c1b70176ac0505f3d459d3837cdb23458bf69560 100644 (file)
@@ -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-2015 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
index 526e9f07788129e570b6794f94564369e64b1761..560d1464daa35f087dffaf023e6592b63643b1e9 100644 (file)
@@ -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-2015 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
index 491b1baa9d52516b5f610c112bb52de32a719d2a..88ea08d8ee785d72ce9164a15c77b460081b2cd2 100644 (file)
--- 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-2015 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
index 9fc9cf51697c4214f24739627fc59b22c9a0e4ce..936a1318134749207f7c6436df8e872dd7fb9fa2 100644 (file)
@@ -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-2015 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
index d457ebb47618fcb931eadd36e1aae08bcbab4820..906fe92379d9b11064ca152fd9e2d1e6827f28bd 100644 (file)
@@ -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-2015 Free Software Foundation,
    Inc.
 
    This program is free software; you can redistribute it and/or modify it
index 1f1eab6a03342153a602b2e32964955320099181..c7c851f91f70a412e46501984e7ea96cd0903cc0 100644 (file)
@@ -1,6 +1,6 @@
 /* Memory allocators such as malloc+free.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2015 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
index 5a8894a4ab548e6d0dfa36d39b7e35a9d620b366..bbbe458d9bbfa52a3aa6cf7ba16623159c17c87f 100644 (file)
@@ -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-2015 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
index d5c82335707f352aaa341eefcba38c6345447c53..f5b66c790952beb98558aa513a243876b60eb49b 100644 (file)
@@ -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-2015 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
index d965962018723815df04769c301f04d2ed9d72d4..db885d8d489e2726c335142a0838184cbb996500 100644 (file)
@@ -1,5 +1,5 @@
 /* byteswap.h - Byte swapping
-   Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2015 Free Software Foundation, Inc.
    Written by Oskar Liljeblad <oskar@osk.mine.nu>, 2005.
 
    This program is free software: you can redistribute it and/or modify
index 717ae78bb63de0d8a9dad48ddd4d33c3d5ba2836..15125308cb6677fd7d9f7f2ed40867bc61e0d0aa 100644 (file)
@@ -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-2015 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
index 7e570f59b8727632815ee1e1e1cd1f035382ae91..f25bcca23f5ac048faecdae6e691201c38df9295 100644 (file)
@@ -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-2015 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index bd113b7a2c3a1ebe8f6b192fbd6d27c792a91456..6deb6d1236dfea18fa86bbdad319ba28fb141a2c 100644 (file)
@@ -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-2015 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
index c316929d0df719a0fdafdf06310bd8fcc2f49b76..b98e36838ca8f48e76a83537d3696d210d6e2ec3 100644 (file)
@@ -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-2015 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
index 4180de9a4c4610ef040c605e671b2b0b4071eafb..f2f5da23a38f002cc911f85edf11754bf297656f 100644 (file)
@@ -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-2015 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index 84ede3ebf9ae03ee6d555a0ada3c0ea9893e6f39..4eb9fcccb852dda7e334b685f6ed3a23a0eeb22f 100644 (file)
@@ -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-2015 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
index 0c4beaec80852aa731b28a5ae69735585906996e..6e3d8658d580e7a179b58ca4e85ae8c30c94ba07 100644 (file)
@@ -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-2015 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
index 09c2dcbd2fd8af59de553daf33e344004a6ad6fe..d54397f5fac8b5c9c083c59c1a3225a6db29f1c6 100644 (file)
@@ -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-2015 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
index 7e09e64c9182f59b1690201aeafa24506debc1b8..83ce2fbe26ce84394a7e7ae165bf890f2422571c 100644 (file)
@@ -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-2015 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
index 4c62737bdc6bfa4107ce71b22e37f5a3934ea1d8..154d2689e3da7cc1330f1063f61e098f7fe3dc87 100644 (file)
@@ -1,5 +1,5 @@
 /* A GNU-like <dirent.h>.
-   Copyright (C) 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006-2015 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
index 1ea2a6373db8965183a99bd61944017018741ed0..c91f8e558721e772ab3e2097728adc5ddf6919a2 100644 (file)
@@ -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-2015 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
index 83a953f3c0f661fefa6318a329c724d3d6c5858f..893baf6ccf3361dd55d675f55429614579b2fa36 100644 (file)
@@ -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-2015 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
index 9028044ef2496354880f3bd62b816254604352ae..c28d219fd1dd8045cf764d602ded57d4d4742e28 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert double to timespec.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2015 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
index c913f473adceecfb0d5f5096adc7c546159b8880..0e13214c82565bc7befe8bf1ca15d45536801816 100644 (file)
@@ -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-2015 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
index b8397ee465da83a47a3ac834a8cf33a36aa3d86e..affbb9798806708f8d421a30b5da9c0dbff141db 100644 (file)
@@ -1,6 +1,6 @@
 /* A POSIX-like <errno.h>.
 
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2015 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
index 82af9417ac39f3d46ecff8c117f7bbdb703ab6b6..c7e6cfb7a98e5b99becbe7323ea44144de85b677 100644 (file)
@@ -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-2015 Free
    Software Foundation, Inc.
 
    This file is part of the GNU C Library.
index 09f1ddbdf950351ec7451dfbb1436d92b29d004c..4773d38899693bb21cf5405bf29d81d102e51be5 100644 (file)
@@ -1,6 +1,6 @@
 /* Information about executables.
 
-   Copyright (C) 2012-2016 Free Software Foundation, Inc.
+   Copyright (C) 2012-2015 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
index 1743fa34c3a474667751d736ec2c14817f9cc31e..5bd7ecfd827741911258afcef9574058a8c0a158 100644 (file)
@@ -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-2015 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
index 1ccc5acea8e4fb42218c0a806fa62a4b05f9561b..23b73e975c844d976a032d2582f482fac0f43f33 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide file descriptor control.
 
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2015 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
index b94397307e937a03cd2610ef49106833f0967653..e2880185c6310c0ff5689a18b501379ee18bb214 100644 (file)
@@ -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-2015 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
index 3351a0a251f30b4b5efe177e0407836584952754..bbc30396f52569fdc99c8252927ebff99e41975c 100644 (file)
@@ -1,6 +1,6 @@
 /* Emulate fdatasync on platforms that lack it.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2015 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
index f30ab2431b59e7b5b1e75911a8de10ca4a92c432..837a8219b3399f7431c70169e0694ee7cb523f1d 100644 (file)
@@ -1,5 +1,5 @@
 /* provide a replacement fdopendir function
-   Copyright (C) 2004-2016 Free Software Foundation, Inc.
+   Copyright (C) 2004-2015 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
index 2250ee01b33883612c1a4ba5ff2620dba967d90a..3b19507fd3d5f78e5c689ca8f212a5df4c99db76 100644 (file)
@@ -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-2015 Free
    Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 09f345e9bdb22d9d67753c324ed811e21aeb1daf..ff0460a5e078453c3298b7f98a2b441a158fa34a 100644 (file)
@@ -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-2015 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index a503b9f53ae3e157d2a4eb40f4ed855806af2731..c4b4a5196113093f4b968d68bc91fcb125ec6a33 100644 (file)
@@ -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-2015 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index 61008aa7658a5b587eb5c12933b3c2c0769918f8..5a1b2ad9442c168fa6f8f57a0ad1aa5ea5eb3d68 100644 (file)
@@ -1,6 +1,6 @@
 /* Declare __fpending.
 
-   Copyright (C) 2000, 2003, 2005-2006, 2009-2016 Free Software Foundation,
+   Copyright (C) 2000, 2003, 2005-2006, 2009-2015 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index ebbecfd14abdf1e2785f85d729fecb8f5ce025e2..6a9e8623e13139535a5974144a9031d7d251d727 100644 (file)
@@ -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-2015 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
index 5df79ba1dcb04df972bf1b7510413415f9a56698..b51d654dd09202ad241e396f42b1d756a1145ac1 100644 (file)
@@ -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-2015 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
index e3a0138698664a89ee2b4810305f964bb7583d46..5cdaedf47b29488f4096c49fa62076812b005ea2 100644 (file)
@@ -1,6 +1,6 @@
 /* floating point to accurate string
 
-   Copyright (C) 2010-2016 Free Software Foundation, Inc.
+   Copyright (C) 2010-2015 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
index 9207809e9fbb857a41a36d1a8c40a7f7ff13432d..970c3b1cd1745eb5b8dbca94a4d2dfd88ca4aba7 100644 (file)
@@ -1,6 +1,6 @@
 /* floating point to accurate string
 
-   Copyright (C) 2010-2016 Free Software Foundation, Inc.
+   Copyright (C) 2010-2015 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
index 8c70df1984ce34705e488e4418304b652e24b3eb..9dfb0764ce458e700a20589bf0cc6b4f8b593d27 100644 (file)
@@ -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-2015 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
index d23405571b074baf5b5c69722651c5db79c48d83..03eb7ef1bffd1e793a5b802eb6f2ab4d6dc4b9cf 100644 (file)
@@ -1,5 +1,5 @@
 /* getdtablesize() function for platforms that don't have it.
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2008-2015 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
index b04050546d9fe43aba203645534b05fa3850a630..5563dfb428096a2c24e65cefb10db4c7f769c827 100644 (file)
@@ -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-2015 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
index a7ffd06c451d313003156a06a8663770d677e992..0cbca265b2998af49d7d793d50ecba16e798a532 100644 (file)
@@ -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-2015 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with gnulib.
index 8ccb9010adba5524f0b0024ce447f5bf440802a0..212cbf7341074627ef9fa7440783aaab8643d9e2 100644 (file)
@@ -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 drepper@gnu.org
    before changing it!
-   Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2016 Free Software
+   Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2015 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index 0f7218278f004ed9b454d2f9f6f5d633b1c23906..9248f76ec8b1b54e2f8e792aac464816c6e46454 100644 (file)
@@ -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-2015 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index 63db74f9f7ede71dd71dc4ff11d2bcbc19e01f89..2b1feb6eadb7277139f5f633be149db91567a520 100644 (file)
@@ -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-2015 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index be4c22e2158bfdb67402f2ce7a940ece21649086..e893a6e133f5b40de21eba3e2e18ea04cf9599b3 100644 (file)
@@ -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-2015 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index 00af87265b47cefa13e91fe62939f432f76ef499..599a14ec1b3201e206247d473b27e927cda99e21 100644 (file)
@@ -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-2015 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index ea58eb0aafb23626b72e36a43a490798366ac1b7..1c47e3b299579c250cde2f2cd64884d27b6e134a 100644 (file)
@@ -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-2015 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
index 224ca6a17625d9e7093765c7c796998b52a4083e..e0e2e696d044b8375c13a2381c5d6467e2ad4c2d 100644 (file)
@@ -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-2015 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
index b920cbbc9bbacb6082174054ba8d4acbc84cd1ec..17a01af0adb410db805676fc05c8d62ab2491a1e 100644 (file)
@@ -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-2015 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
@@ -21,7 +21,7 @@
 # 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 --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt binary-io byteswap c-ctype c-strcase careadlinkat close-stream count-one-bits count-trailing-zeros crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday gitlog-to-changelog ignore-value intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qcopy-acl readlink readlinkat sig2str socklen stat-time stdalign stddef stdio stpcpy strftime strtoimax strtoumax symlink sys_stat sys_time time time_r time_rz timegm timer-time timespec-add timespec-sub unsetenv update-copyright utimens vla warnings
+# 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 --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt binary-io byteswap c-ctype c-strcase careadlinkat close-stream count-one-bits count-trailing-zeros crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday gitlog-to-changelog intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qcopy-acl readlink readlinkat sig2str socklen stat-time stdalign stddef stdio stpcpy strftime strtoimax strtoumax symlink sys_stat sys_time time time_r time_rz timegm timer-time timespec-add timespec-sub unsetenv update-copyright utimens vla warnings
 
 
 MOSTLYCLEANFILES += core *.stackdump
@@ -567,13 +567,6 @@ 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
 
 
index 365e1669216dbf67ce9b0c2310d958f01292381d..23074e4f693b4fc69cb6aeaa8aa540fccb37346c 100644 (file)
@@ -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-2015 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
deleted file mode 100644 (file)
index 6713d96..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/* ignore a function return without a compiler warning.  -*- coding: utf-8 -*-
-
-   Copyright (C) 2008-2016 Free Software Foundation, Inc.
-
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* Written by Jim Meyering, Eric Blake and Pádraig Brady.  */
-
-/* Use "ignore_value" to avoid a warning when using a function declared with
-   gcc's warn_unused_result attribute, but for which you really do want to
-   ignore the result.  Traditionally, people have used a "(void)" cast to
-   indicate that a function's return value is deliberately unused.  However,
-   if the function is declared with __attribute__((warn_unused_result)),
-   gcc issues a warning even with the cast.
-
-   Caution: most of the time, you really should heed gcc's warning, and
-   check the return value.  However, in those exceptional cases in which
-   you're sure you know what you're doing, use this function.
-
-   For the record, here's one of the ignorable warnings:
-   "copy.c:233: warning: ignoring return value of 'fchown',
-   declared with attribute warn_unused_result".  */
-
-#ifndef _GL_IGNORE_VALUE_H
-#define _GL_IGNORE_VALUE_H
-
-/* Normally casting an expression to void discards its value, but GCC
-   versions 3.4 and newer have __attribute__ ((__warn_unused_result__))
-   which may cause unwanted diagnostics in that case.  Use __typeof__
-   and __extension__ to work around the problem, if the workaround is
-   known to be needed.  */
-#if 3 < __GNUC__ + (4 <= __GNUC_MINOR__)
-# define ignore_value(x) \
-    (__extension__ ({ __typeof__ (x) __x = (x); (void) __x; }))
-#else
-# define ignore_value(x) ((void) (x))
-#endif
-
-#endif
index e1a6107b9c22b2e9752acca8445a605724c89ca3..ecafaf70e155d330121b88b7439b5bcf5de8e373 100644 (file)
@@ -1,6 +1,6 @@
 /* intprops.h -- properties of integer types
 
-   Copyright (C) 2001-2005, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2001-2005, 2009-2015 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
index ed09db6e86e881b2fd28cc7cce94267d106ac599..78846f696839df88118cf05ac559c262496a83d4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2015 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Derek Price.
    This file is part of gnulib.
 
index 03b063436d4f60966094792dc20146d097c38f5d..31dee1387f50b7baf0385fdef6ca09c85ed07bea 100644 (file)
@@ -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-2015 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
index 62d247ed7aa2bb7ecd1c47b4231c9cdd83e3421e..30525dc85da15440869056a3142616f8952be8e5 100644 (file)
--- 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-2015 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index a0a8c5e355e44eb9fce742b56ebe0fa8083f1b57..43add999ef0103dc8ebb8e6b015ea45f8c3550a3 100644 (file)
--- 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-2015 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index e6212e5c4f8ba9b06cf2f54865cccc51370b26a6..3827208d800df0d0523ba0ff36bea4f786192436 100644 (file)
@@ -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-2015 Free Software
    Foundation, Inc.
 
    Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
index 31c3e4837fcc24ed4b044e4c702da03dad4f5c02..47ff9d3b0f6aebcf4ef64f9938697fdf3e82e77a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2016 Free Software
+/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2015 Free Software
    Foundation, Inc.
    This file is derived from the one in the GNU C Library.
 
index adbf8d482ae987fbff686ca68375cae6f84280b8..580bc8ed0043ddec65f84e6ec7171a0b508e343f 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert a 'struct tm' to a time_t value.
-   Copyright (C) 1993-2016 Free Software Foundation, Inc.
+   Copyright (C) 1993-2015 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Eggert <eggert@twinsun.com>.
 
index ed763db5c0d853c2ec2e5b6f86f723ba31c10977..f5a3690553646e884f26815a37e3c53853d53f07 100644 (file)
@@ -1,6 +1,6 @@
 /* Internals for openat-like functions.
 
-   Copyright (C) 2005-2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2015 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
index 15a8c799c80d69272267ad166d25b9d7d85816e4..4e1d34198529865caa84bf2596cad9779acfe70b 100644 (file)
@@ -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-2015 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
index edee6c56554546c1079fd4cb11aa55af76a4f298..f148adfab2cbf786879a38e54078bdd80e6c9125 100644 (file)
@@ -1,5 +1,5 @@
 /* provide a replacement openat function
-   Copyright (C) 2004-2006, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2004-2006, 2008-2015 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
index aee22f864004caeb44648f7bfcd45ba64dba0c9e..2f3b64f457ce26ad52e4cd8c5a66da14b9f64759 100644 (file)
@@ -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-2015 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index f8912f28130a6fb55031f88b9455f55e17590b0e..89b982b5539958d2ec73e1e43163d094c6bb133f 100644 (file)
@@ -1,5 +1,5 @@
 /* Create a pipe, with specific opening flags.
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2015 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
index 56c2eb3d82c81e42250ea78eefd40f26c69ed762..0a23fdf3603707a1ea3540412ecb1932c272e1d4 100644 (file)
@@ -1,6 +1,6 @@
 /* pselect - synchronous I/O multiplexing
 
-   Copyright 2011-2016 Free Software Foundation, Inc.
+   Copyright 2011-2015 Free Software Foundation, Inc.
 
    This file is part of gnulib.
 
index f67e442bf3d4536536e4ddfeba4429c2d5b8b4cd..982ae6003cd4033db6d58796a93c5216b807c204 100644 (file)
@@ -1,5 +1,5 @@
 /* POSIX compatible signal blocking for threads.
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2015 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
index e67712dd1f5c05a69ab9192bd5404b5f83ee54fe..925bb2f4c7b8838600ee0130d681010316d183cc 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2016 Free Software
+/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2015 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C
index c7bdfbb1ea1254625be78874af8763f318c1626f..9db9033816d1a176262a16c77e9242ed9aac863a 100644 (file)
@@ -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-2015 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
index e6c3925e4d453eac5dcf6d02ea8b356ef60d5f8b..965c3e2558663da11c7cd893b7da62768a0d5bbc 100644 (file)
@@ -1,5 +1,5 @@
 /* Stub for readlink().
-   Copyright (C) 2003-2007, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2003-2007, 2009-2015 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
index 7006db85e9556b31e06dad018bd3e174316e4310..c91cf0e8200fafb62c2fde9828cd1a63ae4ff339 100644 (file)
@@ -1,5 +1,5 @@
 /* Read a symlink relative to an open directory.
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2015 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
index 23c630b69ff9fb5673c62a3520e512e279767793..d263f4da3cb294995c36ea046537aa8c05378f63 100644 (file)
@@ -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-2015 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
index f359ab2173bb8c224e31dd1a2a184c0519b85bc8..31aad1fd009cb9f809b1bd250b5398bf2c26dd80 100644 (file)
@@ -1,6 +1,6 @@
 /* Look up an environment variable more securely.
 
-   Copyright 2013-2016 Free Software Foundation, Inc.
+   Copyright 2013-2015 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
index 073075434d6c1aebbbdc5bba78be217ef08eb869..8e6ecf365d15dffc32ff11c8234814c4a481138e 100644 (file)
@@ -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-2015 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
index 45f1cbefd1838dbb8de638a8aded6609bf284da4..4411ceec86351547a3a7cf4684e2296669676801 100644 (file)
@@ -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-2015 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
index 2f2f230eac051f69f4d3bf4f7eca30224cc5528e..b9074165ddccba63e966fa4704f5f43cecc1aba5 100644 (file)
@@ -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-2015 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
index 0be8fd2a858bec014557a82d6c1176ae95851c07..9ac81732370516735aac10800ac049456f429732 100644 (file)
@@ -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-2015 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
index fc6d67f12ee9a55fd059589cd0d00447ab07071e..dae84f55812e2cb399261cfebef7c228804a3caa 100644 (file)
@@ -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-2015 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
index 5494dcbdbad77026c02f5824a9acc3cf5381630c..f48e74bd0c1f90acd15a6f57ea93106f006ca716 100644 (file)
@@ -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-2015 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
index b8a82519c197376414ecc191c0ae02c24468f9c2..d540887d71cef3d5ea62a77a75684a2741eb4b94 100644 (file)
@@ -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-2015 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
index ca8ac78d5c942a756bb9106c964af870f5d0179b..58154daac050e83fdf50170e754dc01f73f4aa44 100644 (file)
@@ -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-2015 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
index f3471702bac1397383dc837905f3adf3759a1cc1..ac2f67a17cbe8427ea38844eb613c3a56afd8c9e 100644 (file)
@@ -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-2015 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
index ab0a049f8bca54c99c7da9c2d33b1082c897a527..265b72ab0ec5fbff87cd210dc89fe8ff570cc8f5 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <signal.h>.
 
-   Copyright (C) 2006-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006-2015 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
index f5c4cd279c6cab7f79c7431cec631848377fd3a9..b67d1798353817b56a35f1d6a268dd23356eb0f4 100644 (file)
@@ -1,6 +1,6 @@
 /* stat-related time functions.
 
-   Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2015 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
index 62e9e0bb064784f2c6af2e310f04cbacec5c04f7..2209826fc31084bc9759e2308173a35fa2bded50 100644 (file)
@@ -1,5 +1,5 @@
 /* Work around platform bugs in stat.
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2015 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
index 9abb9aa279ef1d48545deddf6e261393073b1506..b16ccc869988d7c041efff151aa4a92aa7261084 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for ISO C11 <stdalign.h>.
 
-   Copyright 2011-2016 Free Software Foundation, Inc.
+   Copyright 2011-2015 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
index c6d2317ca2da766559d18114ec32d08e8818ef61..698307bc9559d35e497a2bdd5c42726aeb00df94 100644 (file)
@@ -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-2015 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
index d24139179505aae7740948af6589babd081b67a7..378de2ec6d49a2d4684db091ac379b4f1f61c9f8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2002, 2004-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2002, 2004-2015 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
    This file is part of gnulib.
 
index 9b313656c572d3cfd6813f86f0c7fbafd91f8ad9..ec438742969b245c5c17b9dda55ef73695b1b899 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <stdio.h>.
 
-   Copyright (C) 2004, 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2007-2015 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
index 70dc88db75360587c70ff1fb79a07ad088d67df3..428a119188c84d331314eb2d0cb66faa028452d1 100644 (file)
@@ -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-2015 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
index ec3996e69a4d4b1ba4367c1dc2af43aee6ce8353..559d2f231d46fd4007546c29a38c8931b95b9eed 100644 (file)
@@ -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-2015 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C Library.
index 10d3eb4ef318d39617226e8e324a1ba08ed7cebf..d1ca346b6873b6c6039f822002fdbd108bf78c10 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2001, 2003-2007, 2009-2016 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2001, 2003-2007, 2009-2015 Free Software Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C Library.
    Bugs can be reported to bug-glibc@prep.ai.mit.edu.
index 17445e18984303247464a047adf01162841f68de..2ce6cc57687b36e7481442726654233ecba43c3e 100644 (file)
@@ -1,6 +1,6 @@
 /* declarations for strftime.c
 
-   Copyright (C) 2002, 2004, 2008-2016 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2008-2015 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
index 7fb00c1c53958a4de7d2b12ac90ae1e38e679582..2abd6bc0e1066de23f38f4cf4c5a22a39c1477c4 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <string.h>.
 
-   Copyright (C) 1995-1996, 2001-2016 Free Software Foundation, Inc.
+   Copyright (C) 1995-1996, 2001-2015 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
index 223412bfcb48eba0c6cc52fb22e62fd36bada68f..8ff65cee4bc0bd28871a609306f3ab069e336b29 100644 (file)
@@ -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-2015 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index b0215fce76b8693d1b553067f0b70c21258de1fa..1bc143985dbdafb48ed2f0fb984d34d3d1440d16 100644 (file)
@@ -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-2015 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C
index d0f7b62c8f1b12f5666422fcf7190f4be60d5cda..d7123491f3b03da5feb666340d6fc8dd9f9964b6 100644 (file)
@@ -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-2015 Free Software Foundation,
    Inc.
    This file is part of the GNU C Library.
 
index 6a5d4dd9066ea4bd2a0babd22b6f7485042687e7..205177770000e44a2cb4f2bb2aa507220181e25d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1997, 2009-2016 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1997, 2009-2015 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
index 16da823b915063b7d6ac98c509d905c56bfa1625..5cd2554c719cad39e1c668aa9e5204b2170d7854 100644 (file)
@@ -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-2015 Free Software Foundation, Inc.
    NOTE: The canonical source of this file is maintained with the GNU C
    Library.  Bugs can be reported to bug-glibc@gnu.org.
 
index d8684b6ba08449a5b17b350ba6b5d1a0a640fc6b..14356c30e7c956ab53941cb8fc7b05d8dc24c00f 100644 (file)
@@ -1,5 +1,5 @@
 /* Stub for symlink().
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2015 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
index f7b260d2ad5183773f4e5feaa6a75c86465581c8..fd7a2917c7e08241088af0e8f33c3a25e5156450 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for <sys/select.h>.
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2015 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
index 72d9537420cbc11cd53b6d3a8d5c83247828c875..9f5e85369f7bb1362f7ec14308f0e3bcd3d347dc 100644 (file)
@@ -1,5 +1,5 @@
 /* Provide a more complete sys/stat header file.
-   Copyright (C) 2005-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005-2015 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
index 1623a1dba02b6e23f7c4ea33580ee774906484de..c556c5db23312cdf04ff7ffbf69a2f16366dfaab 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide a more complete sys/time.h.
 
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2015 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
index 8ab0545382946d981eaa108b3d632d2b3656e9e2..814bc179b0e0e60f3ec35c12d4006a2d037c62d2 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide a more complete sys/types.h.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2015 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
index b1e9880f7b60dd8fb081b956ebf0b4b420b4f5fa..69c572fbcb40c73509488e91e5d81d760b12b65b 100644 (file)
@@ -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-2015 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
index be01c514365191d75ae95de0627ba7acb9d9b043..e6093607463c113edbafa52d19b86ce47d825f28 100644 (file)
@@ -1,6 +1,6 @@
 /* Create a temporary file or directory.
 
-   Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2015 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
index 0635f28bb9b9581a957aed33a66729418c1f1c84..6bf3f8d30b7c6a8be6a90ddc76e2eee98382b831 100644 (file)
@@ -1,6 +1,6 @@
 /* Time internal interface
 
-   Copyright 2015-2016 Free Software Foundation, Inc.
+   Copyright 2015 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
index 865c114119680ca398343cc32d0be2f1ad2b0e28..a90552ce4474741bdb328390fdfb84dadb134ccd 100644 (file)
@@ -1,6 +1,6 @@
 /* A more-standard <time.h>.
 
-   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+   Copyright (C) 2007-2015 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
index dc1e16136f4cb54163a47efdd524bc1f031dffce..0b512de99fe24be0163072d05acebb202656177a 100644 (file)
@@ -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-2015 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
index bc801275b6d27520875a61ded3a70a04750ccfa3..a89b7e70f1408fdb6fd1e8b4125b3c5f395ff919 100644 (file)
@@ -1,6 +1,6 @@
 /* Time zone functions such as tzalloc and localtime_rz
 
-   Copyright 2015-2016 Free Software Foundation, Inc.
+   Copyright 2015 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
index 86bdac3f43e6246705b66007b8fe4eb4570f50c4..11c485ff05abf3a47c645e5cf780a243907bc261 100644 (file)
@@ -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-2015 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
index b09394677c5189c8a8b33f05c0f6bba33d356aa4..e8f6aac29d0ffb7e67061ce0d3dae8f45fc22908 100644 (file)
@@ -1,6 +1,6 @@
 /* Add two struct timespec values.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2015 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
index 63cc142c1b4ba1e5ca511aeaa2668a4af4851391..392ec1592a1c87e1a8cffa2ff7b42fc9cd171569 100644 (file)
@@ -1,6 +1,6 @@
 /* Subtract two struct timespec values.
 
-   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   Copyright (C) 2011-2015 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
index 601394b888c421bfae4be3f8107d8ee64e6077f3..9ec495a08d1ba39ed8b2761931ed93c18de26ed9 100644 (file)
@@ -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-2015 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 1ece9789fbd2e09f2a4e0b667a9d2eda18573d6d..0e569d022a6c79d35c490a1dccc01d1fde77dd86 100644 (file)
--- 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-2015 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
index c3af07ad2192aa65982589396b2e1bcb5db0b60d..958fea2a576ce58cff32c3af6bfa82db99d718f6 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <unistd.h>.
-   Copyright (C) 2003-2016 Free Software Foundation, Inc.
+   Copyright (C) 2003-2015 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
index ece9b07bbb3d4fb5b9889ed1d5a507c6760fe333..7386dcf210de32fa122d082cf55264409a1da0d3 100644 (file)
@@ -1,6 +1,6 @@
 /* Set file access and modification times.
 
-   Copyright (C) 2003-2016 Free Software Foundation, Inc.
+   Copyright (C) 2003-2015 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
index a92cad43e36a246061ff28c8ed48a35093ecf872..cbd06cc7f09df624612c11626f80ec4675b6e414 100644 (file)
@@ -1,6 +1,6 @@
 /* Set file access and modification times.
 
-   Copyright 2012-2016 Free Software Foundation, Inc.
+   Copyright 2012-2015 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
index 2f4383743bb03d928ada7661cc17268b85879bc8..60eba498110747ec1fd31b9b03e4802cf565ec40 100644 (file)
@@ -1,6 +1,6 @@
 /* Compile-time assert-like macros.
 
-   Copyright (C) 2005-2006, 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2015 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
index 381de9ecabad2a5fadb88d342e99a7981becfd09..9e46a2f30c83f49edf8c326ba402abbc431fba3d 100644 (file)
--- 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-2015 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
index d81a8471d377d573ebd723bd1de15f934957fcee..0e579deb2bb289898c84c4c2161c683551e814cf 100644 (file)
@@ -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-2015 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
index 24400a94d6a01dbf84603afc2bcd473e02668b6e..83714d0f5a7c8cdff1d86e2ec875170a63a2e21a 100644 (file)
@@ -81,23 +81,23 @@ AUTOGENEL = loaddefs.el \
        cus-load.el \
        finder-inf.el \
        subdirs.el \
+       ps-print-loaddefs.el \
        emacs-lisp/cl-loaddefs.el \
        calc/calc-loaddefs.el \
        eshell/esh-groups.el \
        cedet/semantic/loaddefs.el \
        cedet/ede/loaddefs.el \
        cedet/srecode/loaddefs.el \
-       org/org-loaddefs.el
-
-# Value of max-lisp-eval-depth when compiling initially.
-# During bootstrapping the byte-compiler is run interpreted when compiling
-# itself, and uses more stack than usual.
-#
-BIG_STACK_DEPTH = 2200
-BIG_STACK_OPTS = --eval "(setq max-lisp-eval-depth $(BIG_STACK_DEPTH))"
+       org/org-loaddefs.el \
+       textmodes/reftex-loaddefs.el \
+       mail/rmail-loaddefs.el \
+       ibuffer-loaddefs.el \
+       htmlfontify-loaddefs \
+       emacs-lisp/eieio-loaddefs.el \
+       dired-loaddefs.el
 
 # Set load-prefer-newer for the benefit of the non-bootstrappers.
-BYTE_COMPILE_FLAGS = $(BIG_STACK_OPTS) \
+BYTE_COMPILE_FLAGS = \
   --eval '(setq load-prefer-newer t)' $(BYTE_COMPILE_EXTRA_FLAGS)
 
 # Files to compile before others during a bootstrap.  This is done to
@@ -185,6 +185,13 @@ $(lisp)/loaddefs.el: $(LOADDEFS)
            --eval '(setq generated-autoload-file (expand-file-name (unmsys--file-name "$@")))' \
            -f batch-update-autoloads ${SUBDIRS_ALMOST}
 
+# autoloads only runs when loaddefs.el is nonexistent, although it
+# generates a number of different files. Provide a force option to enable
+# regeneration of all these files.
+autoloads-force .PHONY:
+       rm loaddefs.el
+       $(MAKE) autoloads
+
 # This is required by the bootstrap-emacs target in ../src/Makefile, so
 # we know that if we have an emacs executable, we also have a subdirs.el.
 $(lisp)/subdirs.el:
@@ -213,26 +220,28 @@ update-authors:
        $(emacs) -L "$(top_srcdir)/admin" -l authors \
          -f batch-update-authors "$(top_srcdir)/etc/AUTHORS" "$(top_srcdir)"
 
+FORCE:
+.PHONY: FORCE
+
+tagsfiles = $(shell find ${srcdir} -name '*.el')
+tagsfiles := $(filter-out ${srcdir}/%loaddefs.el,${tagsfiles})
+tagsfiles := $(filter-out ${srcdir}/ldefs-boot.el,${tagsfiles})
+tagsfiles := $(filter-out ${srcdir}/eshell/esh-groups.el,${tagsfiles})
 
-ETAGS = ../lib-src/etags
+ETAGS = ../lib-src/etags${EXEEXT}
 
-lisptagsfiles1 = $(srcdir)/*.el
-lisptagsfiles2 = $(srcdir)/*/*.el
-lisptagsfiles3 = $(srcdir)/*/*/*.el
-lisptagsfiles4 = $(srcdir)/*/*/*/*.el
+${ETAGS}: FORCE
+       ${MAKE} -C ../lib-src $(notdir $@)
 
-## The ls | sed | xargs is to stop the command line getting too long
+## The use of xargs is to stop the command line getting too long
 ## on MS Windows, when the MSYS Bash passes it to a MinGW compiled
 ## etags.  It might be better to use find in a similar way to
 ## compile-main.  But maybe this is not even necessary any more now
 ## that this uses relative filenames.
-TAGS: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
+TAGS: ${ETAGS} ${tagsfiles}
        rm -f $@
        touch $@
-       ls $(lisptagsfiles1) $(lisptagsfiles2) \
-          $(lisptagsfiles3) $(lisptagsfiles4) | \
-           sed -e '/loaddefs/d; /\/ldefs-boot/d; /esh-groups\.el/d' | \
-           xargs $(XARGS_LIMIT) "$(ETAGS)" -a -o $@
+       ls ${tagsfiles} | xargs $(XARGS_LIMIT) "${ETAGS}" -a -o $@
 
 
 # The src/Makefile.in has its own set of dependencies and when they decide
@@ -395,7 +404,7 @@ $(TRAMP_DIR)/tramp-loaddefs.el: $(TRAMP_SRC)
 CAL_DIR = $(lisp)/calendar
 ## Those files that may contain internal calendar autoload cookies.
 CAL_SRC = $(addprefix ${CAL_DIR}/,diary-lib.el holidays.el lunar.el solar.el)
-CAL_SRC := $(sort ${CAL_SRC} $(wildcard ${CAL_DIR}/cal*.el))
+CAL_SRC := $(sort ${CAL_SRC} $(wildcard ${CAL_DIR}/cal-*.el))
 CAL_SRC := $(filter-out ${CAL_DIR}/cal-loaddefs.el,${CAL_SRC})
 
 $(CAL_DIR)/cal-loaddefs.el: $(CAL_SRC)
index d181d97703ec722558b75fdc8d2902cb91b898f1..7814ea24b4a44daa4465d9ab26b610c9917f3696 100644 (file)
@@ -33,6 +33,7 @@
 ;;; Code:
 
 (eval-when-compile (require 'cl-lib))
+(require 'obarray)
 
 (defgroup abbrev-mode nil
   "Word abbreviations mode."
@@ -87,7 +88,7 @@ be replaced by its expansion."
   "Make a new abbrev-table with the same abbrevs as TABLE.
 Does not copy property lists."
   (let ((new-table (make-abbrev-table)))
-    (mapatoms
+    (obarray-map
      (lambda (symbol)
        (define-abbrev new-table
         (symbol-name symbol)
@@ -406,12 +407,12 @@ A prefix argument means don't query; expand all abbrevs."
 
 (defun abbrev-table-get (table prop)
   "Get the PROP property of abbrev table TABLE."
-  (let ((sym (intern-soft "" table)))
+  (let ((sym (obarray-get table "")))
     (if sym (get sym prop))))
 
 (defun abbrev-table-put (table prop val)
   "Set the PROP property of abbrev table TABLE to VAL."
-  (let ((sym (intern "" table)))
+  (let ((sym (obarray-put table "")))
     (set sym nil)           ; Make sure it won't be confused for an abbrev.
     (put sym prop val)))
 
@@ -435,8 +436,7 @@ See `define-abbrev' for the effect of some special properties.
 (defun make-abbrev-table (&optional props)
   "Create a new, empty abbrev table object.
 PROPS is a list of properties."
-  ;; The value 59 is an arbitrary prime number.
-  (let ((table (make-vector 59 0)))
+  (let ((table (obarray-make)))
     ;; Each abbrev-table has a `modiff' counter which can be used to detect
     ;; when an abbreviation was added.  An example of use would be to
     ;; construct :regexp dynamically as the union of all abbrev names, so
@@ -451,7 +451,7 @@ PROPS is a list of properties."
 
 (defun abbrev-table-p (object)
   "Return non-nil if OBJECT is an abbrev table."
-  (and (vectorp object)
+  (and (obarrayp object)
        (numberp (abbrev-table-get object :abbrev-table-modiff))))
 
 (defun abbrev-table-empty-p (object &optional ignore-system)
@@ -460,12 +460,12 @@ If IGNORE-SYSTEM is non-nil, system definitions are ignored."
   (unless (abbrev-table-p object)
     (error "Non abbrev table object"))
   (not (catch 'some
-        (mapatoms (lambda (abbrev)
-                    (unless (or (zerop (length (symbol-name abbrev)))
-                                (and ignore-system
-                                     (abbrev-get abbrev :system)))
-                      (throw 'some t)))
-                  object))))
+        (obarray-map (lambda (abbrev)
+                        (unless (or (zerop (length (symbol-name abbrev)))
+                                    (and ignore-system
+                                         (abbrev-get abbrev :system)))
+                          (throw 'some t)))
+                      object))))
 
 (defvar global-abbrev-table (make-abbrev-table)
   "The abbrev table whose abbrevs affect all buffers.
@@ -529,12 +529,12 @@ the current abbrev table before abbrev lookup happens."
 (defun clear-abbrev-table (table)
   "Undefine all abbrevs in abbrev table TABLE, leaving it empty."
   (setq abbrevs-changed t)
-  (let* ((sym (intern-soft "" table)))
+  (let* ((sym (obarray-get table "")))
     (dotimes (i (length table))
       (aset table i 0))
     ;; Preserve the table's properties.
     (cl-assert sym)
-    (let ((newsym (intern "" table)))
+    (let ((newsym (obarray-put table "")))
       (set newsym nil)      ; Make sure it won't be confused for an abbrev.
       (setplist newsym (symbol-plist sym)))
     (abbrev-table-put table :abbrev-table-modiff
@@ -583,7 +583,7 @@ An obsolete but still supported calling form is:
   (setq props (plist-put props :abbrev-table-modiff
                          (abbrev-table-get table :abbrev-table-modiff)))
   (let ((system-flag (plist-get props :system))
-        (sym (intern name table)))
+        (sym (obarray-put table name)))
     ;; Don't override a prior user-defined abbrev with a system abbrev,
     ;; unless system-flag is `force'.
     (unless (and (not (memq system-flag '(nil force)))
@@ -673,10 +673,10 @@ The value is nil if that abbrev is not defined."
          ;; abbrevs do, we have to be careful.
          (sym
           ;; First try without case-folding.
-          (or (intern-soft abbrev table)
+          (or (obarray-get table abbrev)
               (when case-fold
                 ;; We didn't find any abbrev, try case-folding.
-                (let ((sym (intern-soft (downcase abbrev) table)))
+                (let ((sym (obarray-get table (downcase abbrev))))
                   ;; Only use it if it doesn't require :case-fixed.
                   (and sym (not (abbrev-get sym :case-fixed))
                        sym))))))
@@ -1005,17 +1005,17 @@ PROMPT is the prompt to use for the keymap.
 SORTFUN is passed to `sort' to change the default ordering."
   (unless sortfun (setq sortfun 'string-lessp))
   (let ((entries ()))
-    (mapatoms (lambda (abbrev)
-                (when (symbol-value abbrev)
-                  (let ((name (symbol-name abbrev)))
-                    (push `(,(intern name) menu-item ,name
-                            (lambda () (interactive)
-                              (abbrev-insert ',abbrev)))
-                          entries))))
-              table)
+    (obarray-map (lambda (abbrev)
+                   (when (symbol-value abbrev)
+                     (let ((name (symbol-name abbrev)))
+                       (push `(,(intern name) menu-item ,name
+                               (lambda () (interactive)
+                                 (abbrev-insert ',abbrev)))
+                             entries))))
+                 table)
     (nconc (make-sparse-keymap prompt)
            (sort entries (lambda (x y)
-                (funcall sortfun (nth 2 x) (nth 2 y)))))))
+                           (funcall sortfun (nth 2 x) (nth 2 y)))))))
 
 ;; Keep it after define-abbrev-table, since define-derived-mode uses
 ;; define-abbrev-table.
index 9e8e745ec63c6611de03f9694e0f9c6d10e60065..b64cd71fe24a7d913f4aa0847f20984c3b118fdc 100644 (file)
@@ -430,11 +430,9 @@ Major modes that edit things other than ordinary files may change this
 (make-variable-buffer-local 'mode-line-buffer-identification)
 
 (defvar mode-line-misc-info
-  '((which-func-mode ("" which-func-format " "))
-    (global-mode-string ("" global-mode-string " ")))
+  '((global-mode-string ("" global-mode-string " ")))
   "Mode line construct for miscellaneous information.
-By default, this shows the information specified by
-`which-func-mode' and `global-mode-string'.")
+By default, this shows the information specified by `global-mode-string'.")
 (put 'mode-line-misc-info 'risky-local-variable t)
 
 (defvar mode-line-end-spaces '(:eval (unless (display-graphic-p) "-%-"))
index 9c94023a2a2dbf9d40d11f5054ab15cf7199bbd9..523bf98180ab6e46847a7cedbaf709f22a00b763 100644 (file)
@@ -161,6 +161,8 @@ This makes it possible to paste big integers since they will be read as
 floats, otherwise the Emacs reader will fail on them."
   :type  'boolean
   :group 'calculator)
+(make-obsolete-variable 'calculator-paste-decimals
+                        "it is no longer used." nil)
 
 (defcustom calculator-copy-displayer nil
   "If non-nil, this is any value that can be used for
@@ -195,9 +197,9 @@ For example, use this to define the golden ratio number:
 before you load calculator."
   :type  '(repeat (cons character number))
   :set   (lambda (_ val)
-           (and (boundp 'calculator-registers)
-                (setq calculator-registers
-                      (append val calculator-registers)))
+           (when (boundp 'calculator-registers)
+             (setq calculator-registers
+                   (append val calculator-registers)))
            (setq calculator-user-registers val))
   :group 'calculator)
 
@@ -221,10 +223,10 @@ Examples:
           (\"tF\" mt-to-ft (/ X 0.3048)         1)
           (\"tM\" ft-to-mt (* X 0.3048)         1)))
 
-* Using a function-like form is very simple: use `X' for the argument
-  (`Y' for the second in case of a binary operator), `TX' is a truncated
+* Using a function-like form is simple: use `X' for the argument (`Y'
+  for a second one in case of a binary operator), `TX' is a truncated
   version of `X' and `F' for a recursive call.  Here is a [very
-  inefficient] Fibonacci number calculation:
+  inefficient] Fibonacci number operator:
 
   (add-to-list \\='calculator-user-operators
                \\='(\"F\" fib
@@ -290,7 +292,8 @@ user-defined operators, use `calculator-user-operators' instead.")
 (defvar calculator-operators nil
   "The calculator operators, each a list with:
 
-1. The key that is bound to for this operation (usually a string);
+1. The key(s) that is bound to for this operation, a string that is
+   used with `kbd';
 
 2. The displayed symbol for this function;
 
@@ -312,8 +315,8 @@ user-defined operators, use `calculator-user-operators' instead.")
 
 It it possible have a unary prefix version of a binary operator if it
 comes later in this list.  If the list begins with the symbol `nobind',
-then no key binding will take place -- this is only useful for
-predefined keys.
+then no key binding will take place -- this is only used for predefined
+keys.
 
 Use `calculator-user-operators' to add operators to this list, see its
 documentation for an example.")
@@ -370,73 +373,96 @@ Used for repeating operations in calculator-repR/L.")
           (list (cons ?e float-e) (cons ?p float-pi)))
   "The association list of calculator register values.")
 
-(defvar calculator-saved-global-map nil
-  "Saved global key map.")
-
 (defvar calculator-restart-other-mode nil
   "Used to hack restarting with the electric mode changed.")
 
 ;;;---------------------------------------------------------------------
 ;;; Key bindings
 
+(defun calculator-define-key (key cmd map)
+  ;; Arranges for unbound alphabetic keys to be used as their un/shifted
+  ;; versions if those are bound (mimics the usual Emacs global bindings).
+  ;; FIXME: We should adjust Emacs's native "fallback to unshifted binding"
+  ;; such that it can also be used here, rather than having to use a hack like
+  ;; this one.
+  (let* ((key  (if (stringp key) (kbd key) key))
+         (omap (keymap-parent map)))
+    (define-key map key cmd)
+    ;; "other" map, used for case-flipped bindings
+    (unless omap
+      (setq omap (make-sparse-keymap))
+      (suppress-keymap omap t)
+      (set-keymap-parent map omap))
+    (let ((m omap))
+      ;; Bind all case-flipped versions.
+      (dotimes (i (length key))
+        (let* ((c (aref key i))
+               (k (vector c))
+               (b (lookup-key m k))
+               (defkey (lambda (x)
+                         (define-key m k x)
+                         (when (and (characterp c)
+                                    (or (<= ?A c ?Z) (<= ?a c ?z)))
+                           (define-key m (vector (logxor 32 c)) x)))))
+          (cond ((= i (1- (length key)))
+                 ;; Prefer longer sequences.
+                 (unless (keymapp b) (funcall defkey cmd)))
+                ((keymapp b) (setq m b))
+                (t (let ((sub (make-sparse-keymap)))
+                     (funcall defkey sub)
+                     (setq m sub)))))))))
+
 (defvar calculator-mode-map
   (let ((map (make-sparse-keymap)))
     (suppress-keymap map t)
-    (define-key map "i" nil)
-    (define-key map "o" nil)
-    (let ((p
-           '((calculator-open-paren  "[")
-             (calculator-close-paren "]")
-             (calculator-op-or-exp   "+" "-" [kp-add] [kp-subtract])
-             (calculator-digit       "0" "1" "2" "3" "4" "5" "6" "7" "8"
-                                     "9" "a" "b" "c" "d" "f"
-                                     [kp-0] [kp-1] [kp-2] [kp-3] [kp-4]
-                                     [kp-5] [kp-6] [kp-7] [kp-8] [kp-9])
-             (calculator-op          [kp-divide] [kp-multiply])
-             (calculator-decimal     "." [kp-decimal])
-             (calculator-exp         "e")
-             (calculator-dec/deg-mode "D")
-             (calculator-set-register "s")
-             (calculator-get-register "g")
-             (calculator-radix-mode        "H" "X" "O" "B")
-             (calculator-radix-input-mode  "id" "ih" "ix" "io" "ib"
-                                           "iD" "iH" "iX" "iO" "iB")
-             (calculator-radix-output-mode "od" "oh" "ox" "oo" "ob"
-                                           "oD" "oH" "oX" "oO" "oB")
-             (calculator-rotate-displayer      "'")
-             (calculator-rotate-displayer-back "\"")
-             (calculator-displayer-prev        "{")
-             (calculator-displayer-next        "}")
-             (calculator-saved-up      [up] [?\C-p])
-             (calculator-saved-down    [down] [?\C-n])
-             (calculator-quit          "q" [?\C-g])
-             (calculator-enter         [enter] [linefeed] [kp-enter]
-                                       [return] [?\r] [?\n])
-             (calculator-save-on-list  " " [space])
-             (calculator-clear-saved   [?\C-c] [(control delete)])
-             (calculator-save-and-quit [(control return)]
-                                       [(control kp-enter)])
-             (calculator-paste         [insert] [(shift insert)]
-                                       [paste] [mouse-2] [?\C-y])
-             (calculator-clear         [delete] [?\C-?] [?\C-d])
-             (calculator-help          [?h] [??] [f1] [help])
-             (calculator-copy          [(control insert)] [copy])
-             (calculator-backspace     [backspace])
-             )))
-      (while p
-        ;; reverse the keys so earlier definitions come last -- makes
-        ;; the more sensible bindings visible in the menu
-        (let ((func (caar p)) (keys (reverse (cdar p))))
-          (while keys
-            (define-key map (car keys) func)
-            (setq keys (cdr keys))))
-        (setq p (cdr p))))
+    (dolist (x '((calculator-digit
+                  "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "a" "b" "c"
+                  "d" "f" "<kp-0>" "<kp-1>" "<kp-2>" "<kp-3>" "<kp-4>"
+                  "<kp-5>" "<kp-6>" "<kp-7>" "<kp-8>" "<kp-9>")
+                 (calculator-open-paren  "[")
+                 (calculator-close-paren "]")
+                 (calculator-op-or-exp   "+" "-"
+                                         "<kp-add>" "<kp-subtract>")
+                 (calculator-op          "<kp-divide>" "<kp-multiply>")
+                 (calculator-decimal     "." "<kp-decimal>")
+                 (calculator-exp         "e")
+                 (calculator-dec/deg-mode "D")
+                 (calculator-set-register "s")
+                 (calculator-get-register "g")
+                 (calculator-radix-mode        "H" "X" "O" "B")
+                 (calculator-radix-input-mode  "iD" "iH" "iX" "iO" "iB")
+                 (calculator-radix-output-mode "oD" "oH" "oX" "oO" "oB")
+                 (calculator-rotate-displayer      "'")
+                 (calculator-rotate-displayer-back "\"")
+                 (calculator-displayer-prev        "{")
+                 (calculator-displayer-next        "}")
+                 (calculator-saved-up     "<up>" "C-p")
+                 (calculator-saved-down   "<down>" "C-n")
+                 (calculator-quit         "q" "C-g")
+                 (calculator-enter        "<enter>" "<linefeed>"
+                                          "<kp-enter>" "<return>"
+                                          "RET" "LFD")
+                 (calculator-save-on-list "SPC" "<space>")
+                 (calculator-clear-saved  "C-c" "<C-delete>")
+                 (calculator-save-and-quit "<C-return>" "<C-kp-enter>")
+                 (calculator-paste        "<insert>" "<S-insert>"
+                                          "<paste>" "<mouse-2>" "C-y")
+                 (calculator-clear        "<delete>" "DEL" "C-d")
+                 (calculator-help         "h" "?" "<f1>" "<help>")
+                 (calculator-copy         "<C-insert>" "<copy>")
+                 (calculator-backspace    "<backspace>")
+                 ))
+      ;; reverse the keys so earlier definitions come last -- makes the
+      ;; more sensible bindings visible in the menu
+      (dolist (k (reverse (cdr x)))
+        (calculator-define-key k (car x) map)))
     (if calculator-bind-escape
-      (progn (define-key map [?\e] 'calculator-quit)
-             (define-key map [escape] 'calculator-quit))
-      (define-key map [?\e ?\e ?\e] 'calculator-quit))
+      (progn (calculator-define-key "ESC" 'calculator-quit map)
+             (calculator-define-key "<escape>" 'calculator-quit map))
+      (calculator-define-key "ESC ESC ESC" 'calculator-quit map))
     ;; make C-h work in text-mode
-    (or window-system (define-key map [?\C-h] 'calculator-backspace))
+    (unless window-system
+      (calculator-define-key "C-h" 'calculator-backspace map))
     ;; set up a menu
     (when (and calculator-use-menu (not (boundp 'calculator-menu)))
       (let ((radix-selectors
@@ -530,9 +556,9 @@ Used for repeating operations in calculator-repR/L.")
             ("Modes"
              ["Radians"
               (progn
-                (and (or calculator-input-radix calculator-output-radix)
-                     (calculator-radix-mode "D"))
-                (and calculator-deg (calculator-dec/deg-mode)))
+                (when (or calculator-input-radix calculator-output-radix)
+                  (calculator-radix-mode "D"))
+                (when calculator-deg (calculator-dec/deg-mode)))
               :keys "D"
               :style radio
               :selected (not (or calculator-input-radix
@@ -540,9 +566,9 @@ Used for repeating operations in calculator-repR/L.")
                                  calculator-deg))]
              ["Degrees"
               (progn
-                (and (or calculator-input-radix calculator-output-radix)
-                     (calculator-radix-mode "D"))
-                (or calculator-deg (calculator-dec/deg-mode)))
+                (when (or calculator-input-radix calculator-output-radix)
+                  (calculator-radix-mode "D"))
+                (unless calculator-deg (calculator-dec/deg-mode)))
               :keys "D"
               :style radio
               :selected (and calculator-deg
@@ -619,16 +645,17 @@ argument.
 hex/oct/bin modes can be set for input and for display separately.
 Another toggle-able mode is for using degrees instead of radians for
 trigonometric functions.
-The keys to switch modes are (`X' is shortcut for `H'):
+The keys to switch modes are (both `H' and `X' are for hex):
 * `D'             switch to all-decimal mode, or toggle degrees/radians
 * `B' `O' `H' `X' binary/octal/hexadecimal modes for input & display
 * `i' `o'         followed by one of `D' `B' `O' `H' `X' (case
                   insensitive) sets only the input or display radix mode
 The prompt indicates the current modes:
-* \"D=\": degrees mode;
-* \"?=\": (? is B/O/H) this is the radix for both input and output;
-* \"=?\": (? is B/O/H) the display radix (when input is decimal);
-* \"??\": (? is D/B/O/H) 1st char for input radix, 2nd for display.
+* \"==\": decimal mode (using radians);
+* \"D=\": decimal mode using degrees;
+* \"?=\": ? is B/O/H, the radix for both input and output;
+* \"=?\": ? is B/O/H, the display radix (with decimal input);
+* \"??\": ? is D/B/O/H, 1st char for input radix, 2nd for display.
 
 Also, the quote key can be used to switch display modes for decimal
 numbers (double-quote rotates back), and the two brace characters
@@ -688,19 +715,14 @@ See the documentation for `calculator-mode' for more information."
   (if calculator-electric-mode
     (save-window-excursion
       (require 'electric) (message nil) ; hide load message
-      (let (old-g-map old-l-map
-            (old-buf (window-buffer (minibuffer-window)))
+      (let ((old-buf (window-buffer (minibuffer-window)))
             (echo-keystrokes 0)
             (garbage-collection-messages nil)) ; no gc msg when electric
         (set-window-buffer (minibuffer-window) calculator-buffer)
         (select-window (minibuffer-window))
         (calculator-reset)
         (calculator-update-display)
-        (setq old-l-map (current-local-map))
-        (setq old-g-map (current-global-map))
-        (setq calculator-saved-global-map (current-global-map))
-        (use-local-map nil)
-        (use-global-map calculator-mode-map)
+        (use-local-map calculator-mode-map)
         (run-hooks 'calculator-mode-hook)
         (unwind-protect
             (catch 'calculator-done
@@ -711,9 +733,7 @@ See the documentation for `calculator-mode' for more information."
                nil
                (lambda (_x _y) (calculator-update-display))))
           (set-window-buffer (minibuffer-window) old-buf)
-          (kill-buffer calculator-buffer)
-          (use-local-map old-l-map)
-          (use-global-map old-g-map))))
+          (kill-buffer calculator-buffer))))
     (progn
       (cond
         ((not (get-buffer-window calculator-buffer))
@@ -780,25 +800,11 @@ Defaults to 1."
 Adds MORE-OPS to `calculator-operator', called initially to handle
 `calculator-initial-operators' and `calculator-user-operators'."
   (let ((added-ops nil))
-    (while more-ops
-      (or (eq (caar more-ops) 'nobind)
-          (let ((i -1) (key (caar more-ops)))
-            ;; make sure the key is undefined, so it's easy to define
-            ;; prefix keys
-            (while (< (setq i (1+ i)) (length key))
-              (or (keymapp
-                   (lookup-key calculator-mode-map
-                               (substring key 0 (1+ i))))
-                  (progn
-                    (define-key
-                      calculator-mode-map (substring key 0 (1+ i)) nil)
-                    (setq i (length key)))))
-            (define-key calculator-mode-map key 'calculator-op)))
-      (setq added-ops (cons (if (eq (caar more-ops) 'nobind)
-                              (cdar more-ops)
-                              (car more-ops))
-                            added-ops))
-      (setq more-ops (cdr more-ops)))
+    (dolist (op more-ops)
+      (unless (eq (car op) 'nobind)
+        (calculator-define-key (car op) 'calculator-op calculator-mode-map))
+      (push (if (eq (car op) 'nobind) (cdr op) op)
+            added-ops))
     ;; added-ops come first, but in correct order
     (setq calculator-operators
           (append (nreverse added-ops) calculator-operators))))
@@ -808,11 +814,11 @@ Adds MORE-OPS to `calculator-operator', called initially to handle
 
 (defun calculator-reset ()
   "Reset calculator variables."
-  (or calculator-restart-other-mode
-      (setq calculator-stack           nil
-            calculator-curnum          nil
-            calculator-stack-display   nil
-            calculator-display-fragile nil))
+  (unless calculator-restart-other-mode
+    (setq calculator-stack           nil
+          calculator-curnum          nil
+          calculator-stack-display   nil
+          calculator-display-fragile nil))
   (setq calculator-restart-other-mode nil)
   (calculator-update-display))
 
@@ -831,7 +837,7 @@ The result should not exceed the screen width."
                          (cond ((or in-r out-r)
                                 (concat (or in-r "=")
                                         (if (equal in-r out-r) "="
-                                            (or out-r "="))))
+                                            (or out-r "D"))))
                                (calculator-deg "D=")
                                (t "=="))))
          (expr
@@ -852,39 +858,13 @@ The result should not exceed the screen width."
   "Convert the given STR to a number, according to the value of
 `calculator-input-radix'."
   (if calculator-input-radix
-    (let ((radix
-           (cdr (assq calculator-input-radix
-                      '((bin . 2) (oct . 8) (hex . 16)))))
-          (i -1) (value 0) (new-value 0))
-      ;; assume mostly valid input (e.g., characters in range)
-      (while (< (setq i (1+ i)) (length str))
-        (setq new-value
-              (let* ((ch (upcase (aref str i)))
-                     (n (cond ((< ch ?0)  nil)
-                              ((<= ch ?9) (- ch ?0))
-                              ((< ch ?A)  nil)
-                              ((<= ch ?Z) (- ch (- ?A 10)))
-                              (t          nil))))
-                (if (and n (<= 0 n) (< n radix))
-                  (+ n (* radix value))
-                  (progn
-                    (calculator-message
-                     "Warning: Ignoring bad input character `%c'." ch)
-                    (sit-for 1)
-                    value))))
-        (when (if (< new-value 0) (> value 0) (< value 0))
-          (calculator-message "Warning: Overflow in input."))
-        (setq value new-value))
-      value)
-    (car (read-from-string
-          (cond ((equal "." str) "0.0")
-                ((string-match-p "[eE][+-]?$" str) (concat str "0"))
-                ((string-match-p "\\.[0-9]\\|[eE]" str) str)
-                ((string-match-p "\\." str)
-                 ;; do this because Emacs reads "23." as an integer
-                 (concat str "0"))
-                ((stringp str) (concat str ".0"))
-                (t "0.0"))))))
+    (string-to-number str (cadr (assq calculator-input-radix
+                                      '((bin 2) (oct 8) (hex 16)))))
+    (let* ((str (replace-regexp-in-string
+                 "\\.\\([^0-9].*\\)?$" ".0\\1" str))
+           (str (replace-regexp-in-string
+                 "[eE][+-]?\\([^0-9].*\\)?$" "e0\\1" str)))
+      (string-to-number str))))
 
 (defun calculator-push-curnum ()
   "Push the numeric value of the displayed number to the stack."
@@ -911,9 +891,7 @@ If radix output mode is active, toggle digit grouping."
            (if (and new-disp (memq new-disp calculator-displayers))
              (let ((tmp nil))
                (while (not (eq (car calculator-displayers) new-disp))
-                 (setq tmp (cons (car calculator-displayers) tmp))
-                 (setq calculator-displayers
-                       (cdr calculator-displayers)))
+                 (push (pop calculator-displayers) tmp))
                (setq calculator-displayers
                      (nconc calculator-displayers (nreverse tmp))))
              (nconc (cdr calculator-displayers)
@@ -938,11 +916,11 @@ If radix output mode is active, increase the grouping size."
     (progn (setq calculator-radix-grouping-digits
                  (1+ calculator-radix-grouping-digits))
            (calculator-enter))
-    (and (car calculator-displayers)
-         (let ((disp (caar calculator-displayers)))
-           (cond ((symbolp disp) (funcall disp 'left))
-                 ((and (consp disp) (eq 'std (car disp)))
-                  (calculator-standard-displayer 'left)))))))
+    (when (car calculator-displayers)
+      (let ((disp (caar calculator-displayers)))
+        (cond ((symbolp disp) (funcall disp 'left))
+              ((and (consp disp) (eq 'std (car disp)))
+               (calculator-standard-displayer 'left)))))))
 
 (defun calculator-displayer-next ()
   "Send the current displayer function a `right' argument.
@@ -954,11 +932,11 @@ If radix output mode is active, decrease the grouping size."
     (progn (setq calculator-radix-grouping-digits
                  (max 2 (1- calculator-radix-grouping-digits)))
            (calculator-enter))
-    (and (car calculator-displayers)
-         (let ((disp (caar calculator-displayers)))
-           (cond ((symbolp disp) (funcall disp 'right))
-                 ((and (consp disp) (eq 'std (car disp)))
-                  (calculator-standard-displayer 'right)))))))
+    (when (car calculator-displayers)
+      (let ((disp (caar calculator-displayers)))
+        (cond ((symbolp disp) (funcall disp 'right))
+              ((and (consp disp) (eq 'std (car disp)))
+               (calculator-standard-displayer 'right)))))))
 
 (defun calculator-remove-zeros (numstr)
   "Get a number string NUMSTR and remove unnecessary zeros.
@@ -1003,10 +981,10 @@ The special `left' and `right' symbols will make it change the current
 number of digits displayed (`calculator-number-digits')."
   (if (symbolp num)
     (cond ((eq num 'left)
-           (and (> calculator-number-digits 0)
-                (setq calculator-number-digits
-                      (1- calculator-number-digits))
-                (calculator-enter)))
+           (when (> calculator-number-digits 0)
+             (setq calculator-number-digits
+                   (1- calculator-number-digits))
+             (calculator-enter)))
           ((eq num 'right)
            (setq calculator-number-digits
                  (1+ calculator-number-digits))
@@ -1054,7 +1032,7 @@ the `left' or `right' when one of the standard modes is used."
             (while (< i 0)
               (setq num (/ num 1000.0)) (setq exp (+ exp 3))
               (setq i (1+ i))))))
-      (or calculator-eng-tmp-show (setq calculator-eng-extra nil))
+      (unless calculator-eng-tmp-show (setq calculator-eng-extra nil))
       (let ((str (format (format "%%.%sf" calculator-number-digits)
                          num)))
         (concat (let ((calculator-remove-zeros
@@ -1206,7 +1184,7 @@ arguments."
           (DX (if (and X calculator-deg) (degrees-to-radians X) X))
           (L  calculator-saved-list)
           (fF `(calculator-funcall ',f x y))
-          (fD `(if calculator-deg (radians-to-degrees x) x)))
+          (fD `(if calculator-deg (radians-to-degrees x) x)))
       (eval `(cl-flet ((F (&optional x y) ,fF) (D (x) ,fD))
                (let ((X ,X) (Y ,Y) (DX ,DX) (TX ,TX) (TY ,TY) (L ',L))
                  ,f))
@@ -1216,19 +1194,20 @@ arguments."
 ;;; Input interaction
 
 (defun calculator-last-input (&optional keys)
-  "Last char (or event or event sequence) that was read.
-Use KEYS if given, otherwise use `this-command-keys'."
-  (let ((inp (or keys (this-command-keys))))
-    (if (or (stringp inp) (not (arrayp inp)))
+  "Return the last key sequence that was used to invoke this command, or
+the input KEYS.  Uses the `function-key-map' translate keypad numbers to
+plain ones."
+  (let* ((inp (or keys (this-command-keys)))
+         (inp (or (and (arrayp inp) (not (stringp inp))
+                       (lookup-key function-key-map inp))
+                  inp)))
+    (if (or (not inp) (stringp inp) (not (arrayp inp))
+            (catch 'done ; any non-chars?
+              (dotimes (i (length inp))
+                (unless (characterp (aref inp i)) (throw 'done t)))
+              nil))
       inp
-      ;; Translates kp-x to x and [tries to] create a string to lookup
-      ;; operators; assume all symbols are translatable via
-      ;; `function-key-map'.  This is needed because we have key
-      ;; bindings for kp-* (which might be the wrong thing to do) so
-      ;; they don't get translated in `this-command-keys'.
-      (concat (mapcar (lambda (k)
-                        (if (numberp k) k (error "??bad key?? (%S)" k)))
-                      (or (lookup-key function-key-map inp) inp))))))
+      (concat inp))))
 
 (defun calculator-clear-fragile (&optional op)
   "Clear the fragile flag if it was set, then maybe reset all.
@@ -1270,7 +1249,7 @@ OP is the operator (if any) that caused this call."
     (calculator-update-display)))
 
 (defun calculator-exp ()
-  "Enter an `E' exponent character, or a digit in hex input mode."
+  "Enter an exponent, or an \"E\" digit in hex input mode."
   (interactive)
   (cond
     (calculator-input-radix (calculator-digit))
@@ -1312,18 +1291,13 @@ Optional string argument KEYS will force using it as the keys entered."
         (throw 'op-error nil))
       (push op calculator-stack)
       (calculator-reduce-stack (calculator-op-prec op))
-      (and (= (length calculator-stack) 1)
-           (numberp (car calculator-stack))
-           ;; the display is fragile if it contains only one number
-           (setq calculator-display-fragile t)
-           ;; add number to the saved-list
-           calculator-add-saved
-           (if (= 0 calculator-saved-ptr)
-             (setq calculator-saved-list
-                   (cons (car calculator-stack) calculator-saved-list))
-             (let ((p (nthcdr (1- calculator-saved-ptr)
-                              calculator-saved-list)))
-               (setcdr p (cons (car calculator-stack) (cdr p))))))
+      (when (and (= (length calculator-stack) 1)
+                 (numberp (car calculator-stack)))
+        ;; the display is fragile if it contains only one number
+        (setq calculator-display-fragile t)
+        (when calculator-add-saved ; add number to the saved-list
+          (push (car calculator-stack)
+                (nthcdr calculator-saved-ptr calculator-saved-list))))
       (calculator-update-display))))
 
 (defun calculator-op-or-exp ()
@@ -1332,7 +1306,8 @@ Used with +/- for entering them as digits in numbers like 1e-3 (there is
 no need for negative numbers since these are handled by unary
 operators)."
   (interactive)
-  (if (and (not calculator-display-fragile)
+  (if (and (not calculator-input-radix)
+           (not calculator-display-fragile)
            calculator-curnum
            (string-match-p "[eE]$" calculator-curnum))
     (calculator-digit)
@@ -1346,8 +1321,8 @@ operators)."
   (interactive)
   (calculator-push-curnum)
   (if (or calculator-input-radix calculator-output-radix)
-    (progn (setq calculator-input-radix nil)
-           (setq calculator-output-radix nil))
+    (setq calculator-input-radix nil
+          calculator-output-radix nil)
     ;; already decimal -- toggle degrees mode
     (setq calculator-deg (not calculator-deg)))
   (calculator-update-display t))
@@ -1393,8 +1368,8 @@ Optional string argument KEYS will force using it as the keys entered."
 (defun calculator-clear-saved ()
   "Clear the list of saved values in `calculator-saved-list'."
   (interactive)
-  (setq calculator-saved-list nil)
-  (setq calculator-saved-ptr 0)
+  (setq calculator-saved-list nil
+        calculator-saved-ptr 0)
   (calculator-update-display t))
 
 (defun calculator-saved-move (n)
@@ -1492,21 +1467,6 @@ Optional string argument KEYS will force using it as the keys entered."
         (kill-new (replace-regexp-in-string
                    "^\\([^ ]+\\) *\\(\\[[0-9/]+\\]\\)? *$" "\\1" s))))))
 
-(defun calculator-set-register (reg)
-  "Set a register value for REG."
-  ;; FIXME: this should use `register-read-with-preview', but it uses
-  ;; calculator-registers rather than `register-alist'.  (Maybe
-  ;; dynamically rebinding it will get blessed?)  Also in to
-  ;; `calculator-get-register'.
-  (interactive "cRegister to store into: ")
-  (let* ((as  (assq reg calculator-registers))
-         (val (progn (calculator-enter) (car calculator-stack))))
-    (if as
-      (setcdr as val)
-      (setq calculator-registers
-            (cons (cons reg val) calculator-registers)))
-    (calculator-message "[%c] := %S" reg val)))
-
 (defun calculator-put-value (val)
   "Paste VAL as if entered.
 Used by `calculator-paste' and `get-register'."
@@ -1515,31 +1475,55 @@ Used by `calculator-paste' and `get-register'."
              (or calculator-display-fragile
                  (not (numberp (car calculator-stack)))))
     (calculator-clear-fragile)
-    (setq calculator-curnum (let ((calculator-displayer "%S"))
-                              (calculator-number-to-string val)))
+    (setq calculator-curnum
+          (let ((calculator-displayer "%S")
+                (calculator-radix-grouping-mode nil)
+                (calculator-output-radix calculator-input-radix))
+            (calculator-number-to-string val)))
     (calculator-update-display)))
 
-(defun calculator-paste ()
-  "Paste a value from the `kill-ring'."
-  (interactive)
-  (calculator-put-value
-   (let ((str (replace-regexp-in-string
-               "^ *\\(.+[^ ]\\) *$" "\\1" (current-kill 0))))
-     (and (not calculator-input-radix)
-          calculator-paste-decimals
-          (string-match "\\([0-9]+\\)\\(\\.[0-9]+\\)?\\(e[0-9]+\\)?"
-                        str)
-          (or (match-string 1 str)
-              (match-string 2 str)
-              (match-string 3 str))
-          (setq str (concat (or (match-string 1 str) "0")
-                            (or (match-string 2 str) ".0")
-                            (or (match-string 3 str) ""))))
-     (ignore-errors (calculator-string-to-number str)))))
+(defun calculator-paste (arg)
+  "Paste a value from the `kill-ring'.
+
+With a prefix argument, paste the raw string as a sequence of key
+presses, which can be used to paste expressions.  Note that this
+is literal; examples: spaces will store values, pasting \"1+2\"
+will not produce 3 if it's done you're entering a number or after
+a multiplication."
+  (interactive "P")
+  (let ((str (current-kill 0)))
+    (if arg
+      (setq unread-command-events
+            `(,@(listify-key-sequence str) ,@unread-command-events))
+      (calculator-put-value (calculator-string-to-number str)))))
+
+(defun calculator-register-read-with-preview (prompt)
+  "Similar to `register-read-with-preview' but for calculator
+registers."
+  (let ((register-alist calculator-registers)
+        (register-preview-delay 1)
+        (register-preview-function
+         (lambda (r)
+           (format "%s: %s\n"
+                   (single-key-description (car r))
+                   (calculator-number-to-string (cdr r))))))
+    (register-read-with-preview prompt)))
+
+(defun calculator-set-register (reg)
+  "Set a register value for REG."
+  (interactive (list (calculator-register-read-with-preview
+                      "Register to store value into: ")))
+  (let* ((as  (assq reg calculator-registers))
+         (val (progn (calculator-enter) (car calculator-stack))))
+    (if as
+      (setcdr as val)
+      (push (cons reg val) calculator-registers))
+    (calculator-message "[%c] := %S" reg val)))
 
 (defun calculator-get-register (reg)
   "Get a value from a register REG."
-  (interactive "cRegister to get value from: ")
+  (interactive (list (calculator-register-read-with-preview
+                      "Register to get value from: ")))
   (calculator-put-value (cdr (assq reg calculator-registers))))
 
 (declare-function electric-describe-mode "ehelp" ())
@@ -1551,10 +1535,11 @@ Used by `calculator-paste' and `get-register'."
   + - * / \\(div) %(rem) _(-X,postfix) ;(1/X,postfix) ^(exp) L(og)
   Q(sqrt) !(fact) S(in) C(os) T(an) |(or) #(xor) &(and) ~(not)
 * >/< repeats last binary operation with its 2nd (1st) arg as postfix op
-* I inverses next trig function        * \\='/\"/{} - display/display args
+* I inverse the next trig function     \
+* \\='/\"/{/}  - display/display args
 * D         - switch to all-decimal, or toggle deg/rad mode
-* B/O/H/X   - binary/octal/hex mode for i/o (X is a shortcut for H)
-* i/o       - prefix for d/b/o/x - set only input/output modes
+* B/O/H/X   - binary/octal/hex mode for i/o (both H and X are for hex)
+* i/o       - prefix for D/B/O/X - set only input/output modes
 * enter/=   - evaluate current expr.   * s/g      - set/get a register
 * space     - evaluate & save on list  * l/v      - list total/average
 * up/down/C-p/C-n - browse saved       * C-delete - clear all saved
@@ -1566,15 +1551,11 @@ Used by `calculator-paste' and `get-register'."
   (if (eq last-command 'calculator-help)
     (let ((mode-name "Calculator")
           (major-mode 'calculator-mode)
-          (g-map (current-global-map))
           (win (selected-window)))
       (require 'ehelp)
-      (when calculator-electric-mode
-        (use-global-map calculator-saved-global-map))
-      (if calculator-electric-mode
-        (electric-describe-mode)
-        (describe-mode))
-      (when calculator-electric-mode (use-global-map g-map))
+      (if (not calculator-electric-mode)
+        (describe-mode)
+        (electric-describe-mode))
       (select-window win)
       (message nil))
     (let ((one (one-window-p t))
index acb6368becab33f498b63aa87e6eeb3ca3a2a7a3..48221439e11b160e71a090706c88cf84489605e6 100644 (file)
@@ -595,7 +595,7 @@ Hebrew date diary entries must be prefaced by `diary-hebrew-entry-symbol'
 of the Hebrew calendar entries, except that the Hebrew month
 names cannot be abbreviated.  The Hebrew months are numbered
 from 1 to 13 with Nisan being 1, 12 being Adar I and 13 being
-Adar II; you must use `Adar I' if you want Adar of a common
+Adar II; you must use \"Adar I\" if you want Adar of a common
 Hebrew year.  If a Hebrew date diary entry begins with
 `diary-nonmarking-symbol', the entry will appear in the diary
 listing, but will not be marked in the calendar.  This function
index d2680828fe57c837200e337eb5e41c5a53b40792..d7c9a6d9e95739a2511f57e05de62aa6881afc81 100644 (file)
@@ -33,7 +33,7 @@
 
 (defun calendar-iso-to-absolute (date)
   "The number of days elapsed between the Gregorian date 12/31/1 BC and DATE.
-The `ISO year' corresponds approximately to the Gregorian year, but
+The \"ISO year\" corresponds approximately to the Gregorian year, but
 weeks start on Monday and end on Sunday.  The first week of the ISO year is
 the first such week in which at least 4 days are in a year.  The ISO
 commercial DATE has the form (week day year) in which week is in the range
@@ -49,7 +49,7 @@ Sunday).  The Gregorian date Sunday, December 31, 1 BC is imaginary."
 
 ;;;###cal-autoload
 (defun calendar-iso-from-absolute (date)
-  "Compute the `ISO commercial date' corresponding to the absolute DATE.
+  "Compute the \"ISO commercial date\" corresponding to the absolute DATE.
 The ISO year corresponds approximately to the Gregorian year, but weeks
 start on Monday and end on Sunday.  The first week of the ISO year is the
 first such week in which at least 4 days are in a year.  The ISO commercial
index 4f2eb9890105b83a142c62db5307d65cbc446569..c7729dc94296429179cf8ad4a169633e1386f72e 100644 (file)
@@ -1710,8 +1710,8 @@ non-nil, means add to end of buffer without erasing current contents."
   (cal-tex-cmd "\\hspace*" space))
 
 (defun cal-tex-comment (&optional comment)
-  "Insert `% ', followed by optional string COMMENT, followed by newline.
-COMMENT may contain newlines, which are prefixed by `% ' in the output."
+  "Insert \"% \", followed by optional string COMMENT, followed by newline.
+COMMENT may contain newlines, which are prefixed by \"% \" in the output."
   (insert (format "%% %s\n"
                   (if comment
                       (replace-regexp-in-string "\n" "\n% " comment)
index eb64b770e861a9abdaccc13551ea8d71ba74e483..2ce76d5da2fdce306780ad106ef70444d2d332fe 100644 (file)
@@ -65,10 +65,10 @@ and `am-pm' and `time-zone', both alphabetic strings.
 
 For example, the form
 
-  '(24-hours \":\" minutes
+   (24-hours \":\" minutes
     (if time-zone \" (\") time-zone (if time-zone \")\"))
 
-would give military-style times like `21:07 (UTC)'."
+would give military-style times like \"21:07 (UTC)\"."
   :type 'sexp
   :group 'calendar)
 
index 9609a034c9711f590bda7de04eb85a8be8f26c3f..addff82c624f0f534266e1cffdd0d82f25372f64 100644 (file)
@@ -1164,7 +1164,7 @@ Show the buffer in another window, but don't select it."
     (unless (eq symbol basevar)
       (message "`%s' is an alias for `%s'" symbol basevar))))
 
-(defvar customize-changed-options-previous-release "24.1"
+(defvar customize-changed-options-previous-release "24.5"
   "Version for `customize-changed-options' to refer back to by default.")
 
 ;; Packages will update this variable, so make it available.
index a8c40b2835c921f37c161fe0fc8da47ffc06e84f..a678fca3ea3c5dc5ae337a718fc4b0ee9d4e6eb0 100644 (file)
@@ -2736,7 +2736,7 @@ instead."
 
 ;; Local Variables:
 ;; byte-compile-dynamic: t
-;; generated-autoload-file: "dired.el"
+;; generated-autoload-file: "dired-loaddefs.el"
 ;; End:
 
 ;;; dired-aux.el ends here
index fd8290ee65c61cfeac57e709169571b74a14ae0c..053b3cb9738f519c0b19624b8cca959fdfe66938 100644 (file)
@@ -1669,7 +1669,7 @@ If `current-prefix-arg' is non-nil, uses name at point as guess."
 
 ;; Local Variables:
 ;; byte-compile-dynamic: t
-;; generated-autoload-file: "dired.el"
+;; generated-autoload-file: "dired-loaddefs.el"
 ;; End:
 
 ;;; dired-x.el ends here
index 5b5b6f073dff2855419a12e19084d5cd4b27d444..52386c91198f9547181b90cf1aae182955237648 100644 (file)
@@ -34,6 +34,9 @@
 
 ;;; Code:
 
+;; When bootstrapping dired-loaddefs has not been generated.
+(require 'dired-loaddefs nil t)
+
 (declare-function dired-buffer-more-recently-used-p
                  "dired-x" (buffer1 buffer2))
 
@@ -1535,6 +1538,7 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
     (define-key map "u" 'dired-unmark)
     (define-key map "v" 'dired-view-file)
     (define-key map "w" 'dired-copy-filename-as-kill)
+    (define-key map "W" 'browse-url-of-dired-file)
     (define-key map "x" 'dired-do-flagged-delete)
     (define-key map "y" 'dired-show-file-type)
     (define-key map "+" 'dired-create-directory)
@@ -3900,561 +3904,6 @@ Ask means pop up a menu for the user to select one of copy, move or link."
 (add-to-list 'desktop-buffer-mode-handlers
             '(dired-mode . dired-restore-desktop-buffer))
 
-\f
-;;; Start of automatically extracted autoloads.
-\f
-;;;### (autoloads nil "dired-aux" "dired-aux.el" "7b7e39be8bcaf5f35b2735c3f5635f40")
-;;; Generated autoloads from dired-aux.el
-
-(autoload 'dired-diff "dired-aux" "\
-Compare file at point with file FILE using `diff'.
-If called interactively, prompt for FILE.  If the file at point
-has a backup file, use that as the default.  If the file at point
-is a backup file, use its original.  If the mark is active
-in Transient Mark mode, use the file at the mark as the default.
-\(That's the mark set by \\[set-mark-command], not by Dired's
-\\[dired-mark] command.)
-
-FILE is the first file given to `diff'.  The file at point
-is the second file given to `diff'.
-
-With prefix arg, prompt for second argument SWITCHES, which is
-the string of command switches for the third argument of `diff'.
-
-\(fn FILE &optional SWITCHES)" t nil)
-
-(autoload 'dired-backup-diff "dired-aux" "\
-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 argument SWITCHES which is options for `diff'.
-
-\(fn &optional SWITCHES)" t nil)
-
-(autoload 'dired-compare-directories "dired-aux" "\
-Mark files with different file attributes in two dired buffers.
-Compare file attributes of files in the current directory
-with file attributes in directory DIR2 using PREDICATE on pairs of files
-with the same name.  Mark files for which PREDICATE returns non-nil.
-Mark files with different names if PREDICATE is nil (or interactively
-with empty input at the predicate prompt).
-
-PREDICATE is a Lisp expression that can refer to the following variables:
-
-    size1, size2   - file size in bytes
-    mtime1, mtime2 - last modification time in seconds, as a float
-    fa1, fa2       - list of file attributes
-                     returned by function `file-attributes'
-
-    where 1 refers to attribute of file in the current dired buffer
-    and 2 to attribute of file in second dired buffer.
-
-Examples of PREDICATE:
-
-    (> mtime1 mtime2) - mark newer files
-    (not (= size1 size2)) - mark files with different sizes
-    (not (string= (nth 8 fa1) (nth 8 fa2))) - mark files with different modes
-    (not (and (= (nth 2 fa1) (nth 2 fa2))   - mark files with different UID
-              (= (nth 3 fa1) (nth 3 fa2))))   and GID.
-
-\(fn DIR2 PREDICATE)" t nil)
-
-(autoload 'dired-do-chmod "dired-aux" "\
-Change the mode of the marked (or next ARG) files.
-Symbolic modes like `g+w' are allowed.
-Type M-n to pull the file attributes of the file at point
-into the minibuffer.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-do-chgrp "dired-aux" "\
-Change the group of the marked (or next ARG) files.
-Type M-n to pull the file attributes of the file at point
-into the minibuffer.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-do-chown "dired-aux" "\
-Change the owner of the marked (or next ARG) files.
-Type M-n to pull the file attributes of the file at point
-into the minibuffer.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-do-touch "dired-aux" "\
-Change the timestamp of the marked (or next ARG) files.
-This calls touch.
-Type M-n to pull the file attributes of the file at point
-into the minibuffer.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-do-print "dired-aux" "\
-Print the marked (or next ARG) files.
-Uses the shell command coming from variables `lpr-command' and
-`lpr-switches' as default.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-clean-directory "dired-aux" "\
-Flag numerical backups for deletion.
-Spares `dired-kept-versions' latest versions, and `kept-old-versions' oldest.
-Positive prefix arg KEEP overrides `dired-kept-versions';
-Negative prefix arg KEEP overrides `kept-old-versions' with KEEP made positive.
-
-To clear the flags on these files, you can use \\[dired-flag-backup-files]
-with a prefix argument.
-
-\(fn KEEP)" t nil)
-
-(autoload 'dired-do-async-shell-command "dired-aux" "\
-Run a shell command COMMAND on the marked files asynchronously.
-
-Like `dired-do-shell-command', but adds `&' at the end of COMMAND
-to execute it asynchronously.
-
-When operating on multiple files, asynchronous commands
-are executed in the background on each file in parallel.
-In shell syntax this means separating the individual commands
-with `&'.  However, when COMMAND ends in `;' or `;&' then commands
-are executed in the background on each file sequentially waiting
-for each command to terminate before running the next command.
-In shell syntax this means separating the individual commands with `;'.
-
-The output appears in the buffer `*Async Shell Command*'.
-
-\(fn COMMAND &optional ARG FILE-LIST)" t nil)
-
-(autoload 'dired-do-shell-command "dired-aux" "\
-Run a shell command COMMAND on the marked files.
-If no files are marked or a numeric prefix arg is given,
-the next ARG files are used.  Just \\[universal-argument] means the current file.
-The prompt mentions the file(s) or the marker, as appropriate.
-
-If there is a `*' in COMMAND, surrounded by whitespace, this runs
-COMMAND just once with the entire file list substituted there.
-
-If there is no `*', but there is a `?' in COMMAND, surrounded by
-whitespace, this runs COMMAND on each file individually with the
-file name substituted for `?'.
-
-Otherwise, this runs COMMAND on each file individually with the
-file name added at the end of COMMAND (separated by a space).
-
-`*' and `?' when not surrounded by whitespace have no special
-significance for `dired-do-shell-command', and are passed through
-normally to the shell, but you must confirm first.
-
-If you want to use `*' as a shell wildcard with whitespace around
-it, write `*\"\"' in place of just `*'.  This is equivalent to just
-`*' in the shell, but avoids Dired's special handling.
-
-If COMMAND ends in `&', `;', or `;&', it is executed in the
-background asynchronously, and the output appears in the buffer
-`*Async Shell Command*'.  When operating on multiple files and COMMAND
-ends in `&', the shell command is executed on each file in parallel.
-However, when COMMAND ends in `;' or `;&' then commands are executed
-in the background on each file sequentially waiting for each command
-to terminate before running the next command.  You can also use
-`dired-do-async-shell-command' that automatically adds `&'.
-
-Otherwise, COMMAND is executed synchronously, and the output
-appears in the buffer `*Shell Command Output*'.
-
-This feature does not try to redisplay Dired buffers afterward, as
-there's no telling what files COMMAND may have changed.
-Type \\[dired-do-redisplay] to redisplay the marked files.
-
-When COMMAND runs, its working directory is the top-level directory
-of the Dired buffer, so output files usually are created there
-instead of in a subdir.
-
-In a noninteractive call (from Lisp code), you must specify
-the list of file names explicitly with the FILE-LIST argument, which
-can be produced by `dired-get-marked-files', for example.
-
-\(fn COMMAND &optional ARG FILE-LIST)" t nil)
-
-(autoload 'dired-run-shell-command "dired-aux" "\
-
-
-\(fn COMMAND)" nil nil)
-
-(autoload 'dired-do-kill-lines "dired-aux" "\
-Kill all marked lines (not the files).
-With a prefix argument, kill that many lines starting with the current line.
-\(A negative argument kills backward.)
-If you use this command with a prefix argument to kill the line
-for a file that is a directory, which you have inserted in the
-Dired buffer as a subdirectory, then it deletes that subdirectory
-from the buffer as well.
-To kill an entire subdirectory (without killing its line in the
-parent directory), go to its directory header line and use this
-command with a prefix argument (the value does not matter).
-
-\(fn &optional ARG FMT)" t nil)
-
-(autoload 'dired-do-compress-to "dired-aux" "\
-Compress selected files and directories to an archive.
-You are prompted for the archive name.
-The archiving command is chosen based on the archive name extension and
-`dired-compress-files-alist'.
-
-\(fn)" t nil)
-
-(autoload 'dired-compress-file "dired-aux" "\
-Compress or uncompress FILE.
-Return the name of the compressed or uncompressed file.
-Return nil if no change in files.
-
-\(fn FILE)" nil nil)
-
-(autoload 'dired-query "dired-aux" "\
-Format PROMPT with ARGS, query user, and store the result in SYM.
-The return value is either nil or t.
-
-The user may type y or SPC to accept once; n or DEL to skip once;
-! to accept this and subsequent queries; or q or ESC to decline
-this and subsequent queries.
-
-If SYM is already bound to a non-nil value, this function may
-return automatically without querying the user.  If SYM is !,
-return t; if SYM is q or ESC, return nil.
-
-\(fn SYM PROMPT &rest ARGS)" nil nil)
-
-(autoload 'dired-do-compress "dired-aux" "\
-Compress or uncompress marked (or next ARG) files.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-do-byte-compile "dired-aux" "\
-Byte compile marked (or next ARG) Emacs Lisp files.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-do-load "dired-aux" "\
-Load the marked (or next ARG) Emacs Lisp files.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-do-redisplay "dired-aux" "\
-Redisplay all marked (or next ARG) files.
-If on a subdir line, redisplay that subdirectory.  In that case,
-a prefix arg lets you edit the `ls' switches used for the new listing.
-
-Dired remembers switches specified with a prefix arg, so that reverting
-the buffer will not reset them.  However, using `dired-undo' to re-insert
-or delete subdirectories can bypass this machinery.  Hence, you sometimes
-may have to reset some subdirectory switches after a `dired-undo'.
-You can reset all subdirectory switches to the default using
-\\<dired-mode-map>\\[dired-reset-subdir-switches].
-See Info node `(emacs)Subdir switches' for more details.
-
-\(fn &optional ARG TEST-FOR-SUBDIR)" t nil)
-
-(autoload 'dired-add-file "dired-aux" "\
-
-
-\(fn FILENAME &optional MARKER-CHAR)" nil nil)
-
-(autoload 'dired-remove-file "dired-aux" "\
-
-
-\(fn FILE)" nil nil)
-
-(autoload 'dired-relist-file "dired-aux" "\
-Create or update the line for FILE in all Dired buffers it would belong in.
-
-\(fn FILE)" nil nil)
-
-(autoload 'dired-copy-file "dired-aux" "\
-
-
-\(fn FROM TO OK-FLAG)" nil nil)
-
-(autoload 'dired-rename-file "dired-aux" "\
-
-
-\(fn FILE NEWNAME OK-IF-ALREADY-EXISTS)" nil nil)
-
-(autoload 'dired-create-directory "dired-aux" "\
-Create a directory called DIRECTORY.
-If DIRECTORY already exists, signal an error.
-
-\(fn DIRECTORY)" t nil)
-
-(autoload 'dired-do-copy "dired-aux" "\
-Copy all marked (or next ARG) files, or copy the current file.
-When operating on just the current file, prompt for the new name.
-
-When operating on multiple or marked files, prompt for a target
-directory, and make the new copies in that directory, with the
-same names as the original files.  The initial suggestion for the
-target directory is the Dired buffer's current directory (or, if
-`dired-dwim-target' is non-nil, the current directory of a
-neighboring Dired window).
-
-If `dired-copy-preserve-time' is non-nil, this command preserves
-the modification time of each old file in the copy, similar to
-the \"-p\" option for the \"cp\" shell command.
-
-This command copies symbolic links by creating new ones, similar
-to the \"-d\" option for the \"cp\" shell command.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-do-symlink "dired-aux" "\
-Make symbolic links to current file or all marked (or next ARG) files.
-When operating on just the current file, you specify the new name.
-When operating on multiple or marked files, you specify a directory
-and new symbolic links are made in that directory
-with the same names that the files currently have.  The default
-suggested for the target directory depends on the value of
-`dired-dwim-target', which see.
-
-For relative symlinks, use \\[dired-do-relsymlink].
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-do-hardlink "dired-aux" "\
-Add names (hard links) current file or all marked (or next ARG) files.
-When operating on just the current file, you specify the new name.
-When operating on multiple or marked files, you specify a directory
-and new hard links are made in that directory
-with the same names that the files currently have.  The default
-suggested for the target directory depends on the value of
-`dired-dwim-target', which see.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-do-rename "dired-aux" "\
-Rename current file or all marked (or next ARG) files.
-When renaming just the current file, you specify the new name.
-When renaming multiple or marked files, you specify a directory.
-This command also renames any buffers that are visiting the files.
-The default suggested for the target directory depends on the value
-of `dired-dwim-target', which see.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-do-rename-regexp "dired-aux" "\
-Rename selected files whose names match REGEXP to NEWNAME.
-
-With non-zero prefix argument ARG, the command operates on the next ARG
-files.  Otherwise, it operates on all the marked files, or the current
-file if none are marked.
-
-As each match is found, the user must type a character saying
-  what to do with it.  For directions, type \\[help-command] at that time.
-NEWNAME may contain \\=\\<n> or \\& as in `query-replace-regexp'.
-REGEXP defaults to the last regexp used.
-
-With a zero prefix arg, renaming by regexp affects the absolute file name.
-Normally, only the non-directory part of the file name is used and changed.
-
-\(fn REGEXP NEWNAME &optional ARG WHOLE-NAME)" t nil)
-
-(autoload 'dired-do-copy-regexp "dired-aux" "\
-Copy selected files whose names match REGEXP to NEWNAME.
-See function `dired-do-rename-regexp' for more info.
-
-\(fn REGEXP NEWNAME &optional ARG WHOLE-NAME)" t nil)
-
-(autoload 'dired-do-hardlink-regexp "dired-aux" "\
-Hardlink selected files whose names match REGEXP to NEWNAME.
-See function `dired-do-rename-regexp' for more info.
-
-\(fn REGEXP NEWNAME &optional ARG WHOLE-NAME)" t nil)
-
-(autoload 'dired-do-symlink-regexp "dired-aux" "\
-Symlink selected files whose names match REGEXP to NEWNAME.
-See function `dired-do-rename-regexp' for more info.
-
-\(fn REGEXP NEWNAME &optional ARG WHOLE-NAME)" t nil)
-
-(autoload 'dired-upcase "dired-aux" "\
-Rename all marked (or next ARG) files to upper case.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-downcase "dired-aux" "\
-Rename all marked (or next ARG) files to lower case.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'dired-maybe-insert-subdir "dired-aux" "\
-Insert this subdirectory into the same dired buffer.
-If it is already present, just move to it (type \\[dired-do-redisplay] to refresh),
-  else inserts it at its natural place (as `ls -lR' would have done).
-With a prefix arg, you may edit the ls switches used for this listing.
-  You can add `R' to the switches to expand the whole tree starting at
-  this subdirectory.
-This function takes some pains to conform to `ls -lR' output.
-
-Dired remembers switches specified with a prefix arg, so that reverting
-the buffer will not reset them.  However, using `dired-undo' to re-insert
-or delete subdirectories can bypass this machinery.  Hence, you sometimes
-may have to reset some subdirectory switches after a `dired-undo'.
-You can reset all subdirectory switches to the default using
-\\<dired-mode-map>\\[dired-reset-subdir-switches].
-See Info node `(emacs)Subdir switches' for more details.
-
-\(fn DIRNAME &optional SWITCHES NO-ERROR-IF-NOT-DIR-P)" t nil)
-
-(autoload 'dired-insert-subdir "dired-aux" "\
-Insert this subdirectory into the same Dired buffer.
-If it is already present, overwrite the previous entry;
-  otherwise, insert it at its natural place (as `ls -lR' would
-  have done).
-With a prefix arg, you may edit the `ls' switches used for this listing.
-  You can add `R' to the switches to expand the whole tree starting at
-  this subdirectory.
-This function takes some pains to conform to `ls -lR' output.
-
-\(fn DIRNAME &optional SWITCHES NO-ERROR-IF-NOT-DIR-P)" t nil)
-
-(autoload 'dired-prev-subdir "dired-aux" "\
-Go to previous subdirectory, regardless of level.
-When called interactively and not on a subdir line, go to this subdir's line.
-
-\(fn ARG &optional NO-ERROR-IF-NOT-FOUND NO-SKIP)" t nil)
-
-(autoload 'dired-goto-subdir "dired-aux" "\
-Go to end of header line of DIR in this dired buffer.
-Return value of point on success, otherwise return nil.
-The next char is either \\n, or \\r if DIR is hidden.
-
-\(fn DIR)" t nil)
-
-(autoload 'dired-mark-subdir-files "dired-aux" "\
-Mark all files except `.' and `..' in current subdirectory.
-If the Dired buffer shows multiple directories, this command
-marks the files listed in the subdirectory that point is in.
-
-\(fn)" t nil)
-
-(autoload 'dired-kill-subdir "dired-aux" "\
-Remove all lines of current subdirectory.
-Lower levels are unaffected.
-
-\(fn &optional REMEMBER-MARKS)" t nil)
-
-(autoload 'dired-tree-up "dired-aux" "\
-Go up ARG levels in the dired tree.
-
-\(fn ARG)" t nil)
-
-(autoload 'dired-tree-down "dired-aux" "\
-Go down in the dired tree.
-
-\(fn)" t nil)
-
-(autoload 'dired-hide-subdir "dired-aux" "\
-Hide or unhide the current subdirectory and move to next directory.
-Optional prefix arg is a repeat factor.
-Use \\[dired-hide-all] to (un)hide all directories.
-
-\(fn ARG)" t nil)
-
-(autoload 'dired-hide-all "dired-aux" "\
-Hide all subdirectories, leaving only their header lines.
-If there is already something hidden, make everything visible again.
-Use \\[dired-hide-subdir] to (un)hide a particular subdirectory.
-
-\(fn &optional IGNORED)" t nil)
-
-(autoload 'dired-isearch-filenames-setup "dired-aux" "\
-Set up isearch to search in Dired file names.
-Intended to be added to `isearch-mode-hook'.
-
-\(fn)" nil nil)
-
-(autoload 'dired-isearch-filenames "dired-aux" "\
-Search for a string using Isearch only in file names in the Dired buffer.
-
-\(fn)" t nil)
-
-(autoload 'dired-isearch-filenames-regexp "dired-aux" "\
-Search for a regexp using Isearch only in file names in the Dired buffer.
-
-\(fn)" t nil)
-
-(autoload 'dired-do-isearch "dired-aux" "\
-Search for a string through all marked files using Isearch.
-
-\(fn)" t nil)
-
-(autoload 'dired-do-isearch-regexp "dired-aux" "\
-Search for a regexp through all marked files using Isearch.
-
-\(fn)" t nil)
-
-(autoload 'dired-do-search "dired-aux" "\
-Search through all marked files for a match for REGEXP.
-Stops when a match is found.
-To continue searching for next match, use command \\[tags-loop-continue].
-
-\(fn REGEXP)" t nil)
-
-(autoload 'dired-do-query-replace-regexp "dired-aux" "\
-Do `query-replace-regexp' of FROM with TO, on all marked files.
-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].
-
-\(fn FROM TO &optional DELIMITED)" t nil)
-
-(autoload 'dired-show-file-type "dired-aux" "\
-Print the type of FILE, according to the `file' command.
-If you give a prefix to this command, and FILE is a symbolic
-link, then the type of the file linked to by FILE is printed
-instead.
-
-\(fn FILE &optional DEREF-SYMLINKS)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "dired-x" "dired-x.el" "26ec84bf71edaf13ce45aeab60b7f31f")
-;;; Generated autoloads from dired-x.el
-
-(autoload 'dired-jump "dired-x" "\
-Jump to Dired buffer corresponding to current buffer.
-If in a file, Dired the current directory and move to file's line.
-If in Dired already, pop up a level and goto old directory's line.
-In case the proper Dired file line cannot be found, refresh the dired
-buffer and try again.
-When OTHER-WINDOW is non-nil, jump to Dired buffer in other window.
-Interactively with prefix argument, read FILE-NAME and
-move to its line in dired.
-
-\(fn &optional OTHER-WINDOW FILE-NAME)" t nil)
-
-(autoload 'dired-jump-other-window "dired-x" "\
-Like \\[dired-jump] (`dired-jump') but in other window.
-
-\(fn &optional FILE-NAME)" t nil)
-
-(autoload 'dired-do-relsymlink "dired-x" "\
-Relative symlink all marked (or next ARG) files into a directory.
-Otherwise make a relative symbolic link to the current file.
-This creates relative symbolic links like
-
-    foo -> ../bar/foo
-
-not absolute ones like
-
-    foo -> /ugly/file/name/that/may/change/any/day/bar/foo
-
-For absolute symlinks, use \\[dired-do-symlink].
-
-\(fn &optional ARG)" t nil)
-
-;;;***
-\f
-;;; End of automatically extracted autoloads.
-
 (provide 'dired)
 
 (run-hooks 'dired-load-hook)           ; for your customizations
index f21f8d63206c81861b213b2fd60083e1358de932..401b419a9939969ca355f7f7f3cade8064125a1c 100644 (file)
@@ -87,6 +87,23 @@ that text will be copied verbatim to `generated-autoload-file'.")
 (defconst generate-autoload-section-continuation ";;;;;; "
   "String to add on each continuation of the section header form.")
 
+(defvar autoload-timestamps t
+  "Non-nil means insert a timestamp for each input file into the output.
+We use these in incremental updates of the output file to decide
+if we need to rescan an input file.  If you set this to nil,
+then we use the timestamp of the output file instead.  As a result:
+ - for fixed inputs, the output will be the same every time
+ - incremental updates of the output file might not be correct if:
+   i) the timestamp of the output file cannot be trusted (at least
+     relative to that of the input files)
+   ii) any of the input files can be modified during the time it takes
+      to create the output
+   iii) only a subset of the input files are scanned
+   These issues are unlikely to happen in practice, and would arguably
+   represent bugs in the build system.  Item iii) will happen if you
+   use a command like `update-file-autoloads', though, since it only
+   checks a single input file.")
+
 (defvar autoload-modified-buffers)      ;Dynamically scoped var.
 
 (defun make-autoload (form file &optional expansion)
@@ -624,7 +641,9 @@ FILE's modification time."
                                       ;; We'd really want to just use
                                       ;; `emacs-internal' instead.
                                       nil nil 'emacs-mule-unix)
-                               (nth 5 (file-attributes relfile))))
+                               (if autoload-timestamps
+                                   (nth 5 (file-attributes relfile))
+                                 t)))
                             (insert ";;; Generated autoloads from " relfile "\n")))
                         (insert generate-autoload-section-trailer))))
                   (or noninteractive
@@ -688,6 +707,9 @@ removes any prior now out-of-date autoload entries."
   (catch 'up-to-date
     (let* ((buf (current-buffer))
            (existing-buffer (if buffer-file-name buf))
+           (output-file (autoload-generated-file))
+           (output-time (if (file-exists-p output-file)
+                            (nth 5 (file-attributes output-file))))
            (found nil))
       (with-current-buffer (autoload-find-generated-file)
         ;; This is to make generated-autoload-file have Unix EOLs, so
@@ -712,16 +734,26 @@ removes any prior now out-of-date autoload entries."
                          (file-time (nth 5 (file-attributes file))))
                      (if (and (or (null existing-buffer)
                                   (not (buffer-modified-p existing-buffer)))
-                              (or
+                              (cond
                                ;; last-time is the time-stamp (specifying
                                ;; the last time we looked at the file) and
                                ;; the file hasn't been changed since.
-                               (and (listp last-time) (= (length last-time) 2)
-                                    (not (time-less-p last-time file-time)))
+                               ((listp last-time)
+                                (not (time-less-p last-time file-time)))
+                               ;; FIXME? Arguably we should throw a
+                               ;; user error, or some kind of warning,
+                               ;; if we were called from update-file-autoloads,
+                               ;; which can update only a single input file.
+                               ;; It's not appropriate to use the output
+                               ;; file modtime in such a case,
+                               ;; if there are multiple input files
+                               ;; contributing to the output.
+                               ((and output-time (eq t last-time))
+                                (not (time-less-p output-time file-time)))
                                ;; last-time is an MD5 checksum instead.
-                               (and (stringp last-time)
-                                    (equal last-time
-                                           (md5 buf nil nil 'emacs-mule)))))
+                               ((stringp last-time)
+                                (equal last-time
+                                      (md5 buf nil nil 'emacs-mule)))))
                          (throw 'up-to-date nil)
                        (autoload-remove-section begin)
                        (setq found t))))
@@ -781,7 +813,10 @@ write its autoloads into the specified file instead."
         (generated-autoload-file
          (if (called-interactively-p 'interactive)
              (read-file-name "Write autoload definitions to file: ")
-           generated-autoload-file)))
+           generated-autoload-file))
+        (output-time
+         (if (file-exists-p generated-autoload-file)
+             (nth 5 (file-attributes generated-autoload-file)))))
 
     (with-current-buffer (autoload-find-generated-file)
       (save-excursion
@@ -799,6 +834,8 @@ write its autoloads into the specified file instead."
                   ;; Remove the obsolete section.
                   (autoload-remove-section (match-beginning 0))
                   (setq last-time (nth 4 form))
+                  (if (equal t last-time)
+                      (setq last-time output-time))
                   (dolist (file file)
                     (let ((file-time (nth 5 (file-attributes file))))
                       (when (and file-time
@@ -814,7 +851,10 @@ write its autoloads into the specified file instead."
                        (member (expand-file-name file) autoload-excludes))
                    ;; Remove the obsolete section.
                   (autoload-remove-section (match-beginning 0)))
-                 ((not (time-less-p (nth 4 form)
+                 ((not (time-less-p (let ((oldtime (nth 4 form)))
+                                      (if (equal t oldtime)
+                                          output-time
+                                        oldtime))
                                      (nth 5 (file-attributes file))))
                   ;; File hasn't changed.
                   nil)
@@ -847,7 +887,9 @@ write its autoloads into the specified file instead."
          (goto-char (point-max))
          (search-backward "\f" nil t)
          (autoload-insert-section-header
-          (current-buffer) nil nil no-autoloads no-autoloads-time)
+          (current-buffer) nil nil no-autoloads (if autoload-timestamps
+                                                    no-autoloads-time
+                                                  t))
          (insert generate-autoload-section-trailer)))
 
       (let ((version-control 'never))
index 6d4798b92f9b1397ef5a516bcc68c2c46492ed0a..7ee897093b2348a18286a9ec06682b4180c49ab5 100644 (file)
@@ -265,7 +265,7 @@ Summary:
 
 
 ;; Local Variables:
-;; generated-autoload-file: "eieio-core.el"
+;; generated-autoload-file: "eieio-loaddefs.el"
 ;; End:
 
 (provide 'eieio-compat)
index 631e4a437f2628a431a7a5548bfa91afc6d38573..fd8ae2abecb0a78f0decc8999c04b25b94de4a54 100644 (file)
@@ -33,6 +33,7 @@
 
 (require 'cl-lib)
 (require 'pcase)
+(require 'eieio-loaddefs)
 
 ;;;
 ;; A few functions that are better in the official EIEIO src, but
@@ -756,9 +757,7 @@ Argument FN is the function calling this verifier."
          ;; The slot-missing method is a cool way of allowing an object author
          ;; to intercept missing slot definitions.  Since it is also the LAST
          ;; thing called in this fn, its return value would be retrieved.
-         (slot-missing obj slot 'oref)
-         ;;(signal 'invalid-slot-name (list (eieio-object-name obj) slot))
-         )
+         (slot-missing obj slot 'oref))
       (cl-check-type obj eieio-object)
       (eieio-barf-if-slot-unbound (aref obj c) obj slot 'oref))))
 
@@ -780,9 +779,7 @@ Fills in OBJ's SLOT with its default value."
            ;; Oref that slot.
            (aref (eieio--class-class-allocation-values cl)
                  c)
-         (slot-missing obj slot 'oref-default)
-         ;;(signal 'invalid-slot-name (list (class-name cl) slot))
-         )
+         (slot-missing obj slot 'oref-default))
       (eieio-barf-if-slot-unbound
        (let ((val (cl--slot-descriptor-initform
                    (aref (eieio--class-slots cl)
@@ -822,9 +819,7 @@ Fills in OBJ's SLOT with VALUE."
              (aset (eieio--class-class-allocation-values class)
                    c value))
          ;; See oref for comment on `slot-missing'
-         (slot-missing obj slot 'oset value)
-         ;;(signal 'invalid-slot-name (list (eieio-object-name obj) slot))
-         )
+         (slot-missing obj slot 'oset value))
       (eieio--validate-slot-value class c value slot)
       (aset obj c value))))
 
@@ -1100,98 +1095,6 @@ method invocation orders of the involved classes."
 (cl-defmethod cl-generic-generalizers ((_specializer (head subclass)))
   (list eieio--generic-subclass-generalizer))
 
-\f
-;;;### (autoloads nil "eieio-compat" "eieio-compat.el" "6aca3c1b5f751a01331761da45fc4f5c")
-;;; Generated autoloads from eieio-compat.el
-
-(autoload 'eieio--defalias "eieio-compat" "\
-Like `defalias', but with less side-effects.
-More specifically, it has no side-effects at all when the new function
-definition is the same (`eq') as the old one.
-
-\(fn NAME BODY)" nil nil)
-
-(autoload 'defgeneric "eieio-compat" "\
-Create a generic function METHOD.
-DOC-STRING is the base documentation for this class.  A generic
-function has no body, as its purpose is to decide which method body
-is appropriate to use.  Uses `defmethod' to create methods, and calls
-`defgeneric' for you.  With this implementation the ARGS are
-currently ignored.  You can use `defgeneric' to apply specialized
-top level documentation to a method.
-
-\(fn METHOD ARGS &optional DOC-STRING)" nil t)
-
-(function-put 'defgeneric 'doc-string-elt '3)
-
-(make-obsolete 'defgeneric 'cl-defgeneric '"25.1")
-
-(autoload 'defmethod "eieio-compat" "\
-Create a new METHOD through `defgeneric' with ARGS.
-
-The optional second argument KEY is a specifier that
-modifies how the method is called, including:
-   :before  - Method will be called before the :primary
-   :primary - The default if not specified
-   :after   - Method will be called after the :primary
-   :static  - First arg could be an object or class
-The next argument is the ARGLIST.  The ARGLIST specifies the arguments
-to the method as with `defun'.  The first argument can have a type
-specifier, such as:
-  ((VARNAME CLASS) ARG2 ...)
-where VARNAME is the name of the local variable for the method being
-created.  The CLASS is a class symbol for a class made with `defclass'.
-A DOCSTRING comes after the ARGLIST, and is optional.
-All the rest of the args are the BODY of the method.  A method will
-return the value of the last form in the BODY.
-
-Summary:
-
- (defmethod mymethod [:before | :primary | :after | :static]
-                     ((typearg class-name) arg2 &optional opt &rest rest)
-    \"doc-string\"
-     body)
-
-\(fn METHOD &rest ARGS)" nil t)
-
-(function-put 'defmethod 'doc-string-elt '3)
-
-(make-obsolete 'defmethod 'cl-defmethod '"25.1")
-
-(autoload 'eieio--defgeneric-init-form "eieio-compat" "\
-
-
-\(fn METHOD DOC-STRING)" nil nil)
-
-(autoload 'eieio--defmethod "eieio-compat" "\
-
-
-\(fn METHOD KIND ARGCLASS CODE)" nil nil)
-
-(autoload 'eieio-defmethod "eieio-compat" "\
-Obsolete work part of an old version of the `defmethod' macro.
-
-\(fn METHOD ARGS)" nil nil)
-
-(make-obsolete 'eieio-defmethod 'cl-defmethod '"24.1")
-
-(autoload 'eieio-defgeneric "eieio-compat" "\
-Obsolete work part of an old version of the `defgeneric' macro.
-
-\(fn METHOD DOC-STRING)" nil nil)
-
-(make-obsolete 'eieio-defgeneric 'cl-defgeneric '"24.1")
-
-(autoload 'eieio-defclass "eieio-compat" "\
-
-
-\(fn CNAME SUPERCLASSES SLOTS OPTIONS)" nil nil)
-
-(make-obsolete 'eieio-defclass 'eieio-defclass-internal '"25.1")
-
-;;;***
-\f
-
 (provide 'eieio-core)
 
 ;;; eieio-core.el ends here
index 0ba1eba4f48a8be6c815c7aa8c3437f8ef7c5285..d2d87ea15371d881e3542e1e45bf1d38b9ca52f9 100644 (file)
@@ -473,7 +473,7 @@ Return the symbol for the group, or nil"
 (provide 'eieio-custom)
 
 ;; Local variables:
-;; generated-autoload-file: "eieio.el"
+;; generated-autoload-file: "eieio-loaddefs.el"
 ;; End:
 
 ;;; eieio-custom.el ends here
index 8a4df0635c4d2f0bfba46bcebaae3d21fca96456..9e5f524a945c46238babd66a7ff076f1602bb83c 100644 (file)
@@ -349,7 +349,7 @@ INDENT is the current indentation level."
 (provide 'eieio-opt)
 
 ;; Local variables:
-;; generated-autoload-file: "eieio.el"
+;; generated-autoload-file: "eieio-loaddefs.el"
 ;; End:
 
 ;;; eieio-opt.el ends here
index 772ebd900de2e24e9d2b0959f5e67340b956eedf..47aff333d44e633403d4d66cec297282252746b1 100644 (file)
@@ -678,7 +678,8 @@ This class is not stored in the `parent' slot of a class vector."
 
 (setq eieio-default-superclass (cl--find-class 'eieio-default-superclass))
 
-(defalias 'standard-class 'eieio-default-superclass)
+(define-obsolete-function-alias 'standard-class
+  'eieio-default-superclass "25.2")
 
 (cl-defgeneric make-instance (class &rest initargs)
   "Make a new instance of CLASS based on INITARGS.
@@ -765,11 +766,7 @@ dynamically set from SLOTS."
   ;; Shared initialize will parse our slots for us.
   (shared-initialize this slots))
 
-(cl-defgeneric slot-missing (object slot-name operation &optional new-value)
-  "Method invoked when an attempt to access a slot in OBJECT fails.")
-
-(cl-defmethod slot-missing ((object eieio-default-superclass) slot-name
-                        _operation &optional _new-value)
+(cl-defgeneric slot-missing (object slot-name _operation &optional _new-value)
   "Method invoked when an attempt to access a slot in OBJECT fails.
 SLOT-NAME is the name of the failed slot, OPERATION is the type of access
 that was requested, and optional NEW-VALUE is the value that was desired
@@ -777,8 +774,9 @@ to be set.
 
 This method is called from `oref', `oset', and other functions which
 directly reference slots in EIEIO objects."
-  (signal 'invalid-slot-name (list (eieio-object-name object)
-                                  slot-name)))
+  (signal 'invalid-slot-name
+          (list (if (eieio-object-p object) (eieio-object-name object) object)
+                slot-name)))
 
 (cl-defgeneric slot-unbound (object class slot-name fn)
   "Slot unbound is invoked during an attempt to reference an unbound slot.")
@@ -815,22 +813,19 @@ first and modify the returned object.")
     (if params (shared-initialize nobj params))
     nobj))
 
-(cl-defgeneric destructor (this &rest params)
-  "Destructor for cleaning up any dynamic links to our object.")
-
-(cl-defmethod destructor ((_this eieio-default-superclass) &rest _params)
-  "Destructor for cleaning up any dynamic links to our object.
-Argument THIS is the object being destroyed.  PARAMS are additional
-ignored parameters."
+(cl-defgeneric destructor (_this &rest _params)
+  "Destructor for cleaning up any dynamic links to our object."
+  (declare (obsolete nil "25.2"))
   ;; No cleanup... yet.
-  )
+  nil)
 
-(cl-defgeneric object-print (this &rest strings)
-  "Pretty printer for object THIS.  Call function `object-name' with STRINGS.
+(cl-defgeneric object-print (this &rest _strings)
+  "Pretty printer for object THIS.
 
 It is sometimes useful to put a summary of the object into the
 default #<notation> string when using EIEIO browsing tools.
-Implement this method to customize the summary.")
+Implement this method to customize the summary."
+  (format "%S" this))
 
 (cl-defmethod object-print ((this eieio-default-superclass) &rest strings)
   "Pretty printer for object THIS.  Call function `object-name' with STRINGS.
@@ -938,11 +933,12 @@ this object."
 \f
 ;;; Unimplemented functions from CLOS
 ;;
-(defun change-class (_obj _class)
+(defun eieio-change-class (_obj _class)
   "Change the class of OBJ to type CLASS.
 This may create or delete slots, but does not affect the return value
 of `eq'."
   (error "EIEIO: `change-class' is unimplemented"))
+(define-obsolete-function-alias 'change-class 'eieio-change-class "25.2")
 
 ;; Hook ourselves into help system for describing classes and methods.
 ;; FIXME: This is not actually needed any more since we can click on the
@@ -970,41 +966,6 @@ variable PRINT-FUNCTION.  Optional argument NOESCAPE is passed to
 (advice-add 'edebug-prin1-to-string
             :around #'eieio-edebug-prin1-to-string)
 
-\f
-;;; Start of automatically extracted autoloads.
-\f
-;;;### (autoloads nil "eieio-custom" "eieio-custom.el" "e8d466f8eee341f3da967c2931b28043")
-;;; Generated autoloads from eieio-custom.el
-
-(autoload 'customize-object "eieio-custom" "\
-Customize OBJ in a custom buffer.
-Optional argument GROUP is the sub-group of slots to display.
-
-\(fn OBJ &optional GROUP)" nil nil)
-
-;;;***
-\f
-;;;### (autoloads nil "eieio-opt" "eieio-opt.el" "5bd32f1033d0e2eee7c32c0ad28330fc")
-;;; Generated autoloads from eieio-opt.el
-
-(autoload 'eieio-browse "eieio-opt" "\
-Create an object browser window to show all objects.
-If optional ROOT-CLASS, then start with that, otherwise start with
-variable `eieio-default-superclass'.
-
-\(fn &optional ROOT-CLASS)" t nil)
-
-(define-obsolete-function-alias 'eieio-help-class 'cl--describe-class "25.1")
-
-(autoload 'eieio-help-constructor "eieio-opt" "\
-Describe CTR if it is a class constructor.
-
-\(fn CTR)" nil nil)
-
-;;;***
-\f
-;;; End of automatically extracted autoloads.
-
 (provide 'eieio)
 
 ;;; eieio ends here
index e400b4990364a59c2d829f708b033f3f0f837432..3507a39543697f8a21cd1638fdec77f27ae96908 100644 (file)
@@ -2,13 +2,16 @@
 
 ;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
 
-;; Author: Artur Malabarba <bruce.connor.am@gmail.com>
-;; Maintainer: Artur Malabarba <bruce.connor.am@gmail.com>
+;; Author: Artur Malabarba <emacs@endlessparentheses.com>
+;; Package-Requires: ((emacs "24.1"))
 ;; Version: 1.0.4
 ;; Keywords: extensions lisp
 ;; Prefix: let-alist
 ;; Separator: -
 
+;; This is an Elpa :core package. Don't use functionality that is not
+;; compatible with Emacs 24.1.
+
 ;; This file is part of GNU Emacs.
 
 ;; GNU Emacs is free software: you can redistribute it and/or modify
@@ -134,7 +137,7 @@ displayed in the example above."
   (let ((var (make-symbol "alist")))
     `(let ((,var ,alist))
        (let ,(mapcar (lambda (x) `(,(car x) ,(let-alist--access-sexp (car x) var)))
-               (delete-dups (let-alist--deep-dot-search body)))
+                     (delete-dups (let-alist--deep-dot-search body)))
          ,@body))))
 
 (provide 'let-alist)
index a06b7ef012e12289f1b4c0855dd187e9e9917ec3..057d01488cc00b33fe964e68d8ec925345ff1474 100644 (file)
 
 (require 'tabulated-list)
 (require 'macroexp)
+(require 'url-handlers)
 
 (defgroup package nil
   "Manager for Emacs Lisp packages."
index b0b016b7063c4386e393c01748e78bc0ecb5ff57..170744026e1c9d610af68c32bcd0327d56c61c7b 100644 (file)
   :link '(custom-manual "(epa) Top")
   :group 'epg)
 
+(defcustom epa-replace-original-text 'ask
+  "Whether the original text shall be replaced by the decrypted.
+
+If t, replace the original text without any confirmation.
+If nil, don't replace the original text and show the result in a new buffer.
+If neither t nor nil, ask user for confirmation."
+  :type '(choice (const :tag "Never" nil)
+                (const :tag "Ask the user" ask)
+                (const :tag "Always" t))
+  :group 'epa)
+
 (defcustom epa-popup-info-window t
   "If non-nil, display status information from epa commands in another window."
   :type 'boolean
@@ -872,7 +883,9 @@ For example:
          (with-current-buffer (funcall make-buffer-function)
            (let ((inhibit-read-only t))
              (insert plain)))
-       (if (y-or-n-p "Replace the original text? ")
+       (if (or (eq epa-replace-original-text t)
+                (and epa-replace-original-text
+                     (y-or-n-p "Replace the original text? ")))
            (let ((inhibit-read-only t))
              (delete-region start end)
              (goto-char start)
@@ -968,7 +981,9 @@ For example:
                 (or coding-system-for-read
                     (get-text-property start 'epa-coding-system-used)
                     'undecided)))
-    (if (y-or-n-p "Replace the original text? ")
+    (if (or (eq epa-replace-original-text t)
+            (and epa-replace-original-text
+                 (y-or-n-p "Replace the original text? ")))
        (let ((inhibit-read-only t)
              buffer-read-only)
          (delete-region start end)
index 694f66eb050f401c199162a57f03134549688dfa..4a2a12dd4036d78782bfb70c9a92596d605258c1 100644 (file)
@@ -523,47 +523,45 @@ The current buffer is given by BUFFER."
 (defun erc-server-connect (server port buffer)
   "Perform the connection and login using the specified SERVER and PORT.
 We will store server variables in the buffer given by BUFFER."
-  (let ((msg (erc-format-message 'connect ?S server ?p port)))
+  (let ((msg (erc-format-message 'connect ?S server ?p port)) process)
     (message "%s" msg)
-    (let ((process (funcall erc-server-connect-function
-                            (format "erc-%s-%s" server port)
-                            nil server port)))
-      (unless (processp process)
-        (error "Connection attempt failed"))
+    (setq process (funcall erc-server-connect-function
+                           (format "erc-%s-%s" server port) nil server port))
+    (unless (processp process)
+      (error "Connection attempt failed"))
+    ;; Misc server variables
+    (with-current-buffer buffer
+      (setq erc-server-process process)
+      (setq erc-server-quitting nil)
+      (setq erc-server-reconnecting nil)
+      (setq erc-server-timed-out nil)
+      (setq erc-server-banned nil)
+      (setq erc-server-error-occurred nil)
+      (let ((time (erc-current-time)))
+        (setq erc-server-last-sent-time time)
+        (setq erc-server-last-ping-time time)
+        (setq erc-server-last-received-time time))
+      (setq erc-server-lines-sent 0)
+      ;; last peers (sender and receiver)
+      (setq erc-server-last-peers '(nil . nil)))
+    ;; we do our own encoding and decoding
+    (when (fboundp 'set-process-coding-system)
+      (set-process-coding-system process 'raw-text))
+    ;; process handlers
+    (set-process-sentinel process 'erc-process-sentinel)
+    (set-process-filter process 'erc-server-filter-function)
+    (set-process-buffer process buffer)
+    (erc-log "\n\n\n********************************************\n")
+    (message "%s" (erc-format-message
+                   'login ?n
+                   (with-current-buffer buffer (erc-current-nick))))
+    ;; wait with script loading until we receive a confirmation (first
+    ;; MOTD line)
+    (if (eq (process-status process) 'connect)
+        ;; waiting for a non-blocking connect - keep the user informed
+        (erc-display-message nil nil buffer "Opening connection..\n")
       (message "%s...done" msg)
-      ;; Misc server variables
-      (with-current-buffer buffer
-        (setq erc-server-process process)
-        (setq erc-server-quitting nil)
-        (setq erc-server-reconnecting nil)
-        (setq erc-server-timed-out nil)
-        (setq erc-server-banned nil)
-        (setq erc-server-error-occurred nil)
-        (let ((time (erc-current-time)))
-          (setq erc-server-last-sent-time time)
-          (setq erc-server-last-ping-time time)
-          (setq erc-server-last-received-time time))
-        (setq erc-server-lines-sent 0)
-        ;; last peers (sender and receiver)
-        (setq erc-server-last-peers '(nil . nil)))
-      ;; we do our own encoding and decoding
-      (when (fboundp 'set-process-coding-system)
-        (set-process-coding-system process 'raw-text))
-      ;; process handlers
-      (set-process-sentinel process 'erc-process-sentinel)
-      (set-process-filter process 'erc-server-filter-function)
-      (set-process-buffer process buffer)))
-  (erc-log "\n\n\n********************************************\n")
-  (message "%s" (erc-format-message
-            'login ?n
-            (with-current-buffer buffer (erc-current-nick))))
-  ;; wait with script loading until we receive a confirmation (first
-  ;; MOTD line)
-  (if (eq erc-server-connect-function 'open-network-stream-nowait)
-      ;; it's a bit unclear otherwise that it's attempting to establish a
-      ;; connection
-      (erc-display-message nil nil buffer "Opening connection..\n")
-    (erc-login)))
+      (erc-login)) ))
 
 (defun erc-server-reconnect ()
 "Reestablish the current IRC connection.
index aa3677c2111259e296a3649eeaabb127e244ff3f..3824c195d39d2c26adaa381551d5d9a642712e84 100644 (file)
@@ -1471,6 +1471,10 @@ Defaults to the server buffer."
 (defconst erc-default-port 6667
   "IRC port to use if it cannot be detected otherwise.")
 
+(defconst erc-default-port-tls 6697
+  "IRC port to use for encrypted connections if it cannot be
+  detected otherwise.")
+
 (defcustom erc-join-buffer 'buffer
   "Determines how to display a newly created IRC buffer.
 
@@ -2197,7 +2201,8 @@ be invoked for the values of the other parameters."
 (defun erc-tls (&rest r)
   "Interactively select TLS connection parameters and run ERC.
 Arguments are the same as for `erc'."
-  (interactive (erc-select-read-args))
+  (interactive (let ((erc-default-port erc-default-port-tls))
+                (erc-select-read-args)))
   (let ((erc-server-connect-function 'erc-open-tls-stream))
     (apply #'erc r)))
 
index 543b3b2e0b7a3f4f0ef8d118d48912e588c264af..6c7932b512e252ce07101e5da58c9fb1b25c6dca 100644 (file)
@@ -570,7 +570,7 @@ Looks at `ffap-ftp-default-user', returns \"\" for \"localhost\"."
 (defvaralias 'ffap-newsgroup-heads  'thing-at-point-newsgroup-heads)
 (defalias 'ffap-newsgroup-p 'thing-at-point-newsgroup-p)
 
-(defsubst ffap-url-p (string)
+(defun ffap-url-p (string)
   "If STRING looks like an URL, return it (maybe improved), else nil."
   (when (and (stringp string) ffap-url-regexp)
     (let* ((case-fold-search t)
index ebf4dd277c82c0abeef70016ac465533391b8a62..faa801ee6e7dace54c5a4b1ffcd9eaed5577881b 100644 (file)
 ;;; Commentary
 
 ;; This package is an abstraction layer from the different low-level
-;; file notification packages `gfilenotify', `inotify' and
+;; file notification packages `inotify', `kqueue', `gfilenotify' and
 ;; `w32notify'.
 
 ;;; Code:
 
 (defconst file-notify--library
   (cond
-   ((featurep 'gfilenotify) 'gfilenotify)
    ((featurep 'inotify) 'inotify)
+   ((featurep 'kqueue) 'kqueue)
+   ((featurep 'gfilenotify) 'gfilenotify)
    ((featurep 'w32notify) 'w32notify))
   "Non-nil when Emacs has been compiled with file notification support.
 The value is the name of the low-level file notification package
@@ -40,25 +41,24 @@ could use another implementation.")
 (defvar file-notify-descriptors (make-hash-table :test 'equal)
   "Hash table for registered file notification descriptors.
 A key in this hash table is the descriptor as returned from
-`gfilenotify', `inotify', `w32notify' or a file name handler.
-The value in the hash table is a list
+`inotify', `kqueue', `gfilenotify', `w32notify' or a file name
+handler.  The value in the hash table is a list
 
   (DIR (FILE . CALLBACK) (FILE . CALLBACK) ...)
 
 Several values for a given DIR happen only for `inotify', when
 different files from the same directory are watched.")
 
-(defun file-notify--rm-descriptor (descriptor &optional what)
+(defun file-notify--rm-descriptor (descriptor)
   "Remove DESCRIPTOR from `file-notify-descriptors'.
 DESCRIPTOR should be an object returned by `file-notify-add-watch'.
-If it is registered in `file-notify-descriptors', a stopped event is sent.
-WHAT is a file or directory name to be removed, needed just for `inotify'."
+If it is registered in `file-notify-descriptors', a stopped event is sent."
   (let* ((desc (if (consp descriptor) (car descriptor) descriptor))
         (file (if (consp descriptor) (cdr descriptor)))
          (registered (gethash desc file-notify-descriptors))
         (dir (car registered)))
 
-    (when (and (consp registered) (or (null what) (string-equal dir what)))
+    (when (consp registered)
       ;; Send `stopped' event.
       (dolist (entry (cdr registered))
        (funcall (cdr entry)
@@ -76,7 +76,8 @@ WHAT is a file or directory name to be removed, needed just for `inotify'."
            (remhash desc file-notify-descriptors)
          (puthash desc registered file-notify-descriptors))))))
 
-;; This function is used by `gfilenotify', `inotify' and `w32notify' events.
+;; This function is used by `inotify', `kqueue', `gfilenotify' and
+;; `w32notify' events.
 ;;;###autoload
 (defun file-notify-handle-event (event)
   "Handle file system monitoring event.
@@ -159,7 +160,7 @@ EVENT is the cadr of the event in `file-notify-handle-event'
        (setq actions nil))
 
       ;; Loop over actions.  In fact, more than one action happens only
-      ;; for `inotify'.
+      ;; for `inotify' and `kqueue'.
       (dolist (action actions)
 
        ;; Send pending event, if it doesn't match.
@@ -184,19 +185,17 @@ EVENT is the cadr of the event in `file-notify-handle-event'
        ;; Map action.  We ignore all events which cannot be mapped.
        (setq action
              (cond
-              ;; gfilenotify.
-              ((memq action '(attribute-changed changed created deleted))
+              ((memq action
+                      '(attribute-changed changed created deleted renamed))
                action)
-              ((eq action 'moved)
+              ((memq action '(moved rename))
                (setq file1 (file-notify--event-file1-name event))
                'renamed)
-
-              ;; inotify, w32notify.
               ((eq action 'ignored)
                 (setq stopped t actions nil))
-              ((eq action 'attrib) 'attribute-changed)
+              ((memq action '(attrib link)) 'attribute-changed)
               ((memq action '(create added)) 'created)
-              ((memq action '(modify modified)) 'changed)
+              ((memq action '(modify modified write)) 'changed)
               ((memq action '(delete delete-self move-self removed)) 'deleted)
               ;; Make the event pending.
               ((memq action '(moved-from renamed-from))
@@ -236,7 +235,6 @@ EVENT is the cadr of the event in `file-notify-handle-event'
           (setq pending-event nil))
 
         ;; Check for stopped.
-       ;;(message "file-notify-callback %S %S" file registered)
         (setq
          stopped
          (or
@@ -244,10 +242,13 @@ EVENT is the cadr of the event in `file-notify-handle-event'
           (and
            (memq action '(deleted renamed))
            (= (length (cdr registered)) 1)
-           (string-equal
-            (file-name-nondirectory file)
-           (or (file-name-nondirectory (car registered))
-               (car (cadr registered)))))))
+           (or
+            (string-equal
+             (file-name-nondirectory file)
+            (file-name-nondirectory (car registered)))
+            (string-equal
+             (file-name-nondirectory file)
+             (car (cadr registered)))))))
 
        ;; Apply callback.
        (when (and action
@@ -258,10 +259,17 @@ EVENT is the cadr of the event in `file-notify-handle-event'
                    ;; File matches.
                    (string-equal
                     (nth 0 entry) (file-name-nondirectory file))
+                   ;; Directory matches.
+                   (string-equal
+                    (file-name-nondirectory file)
+                    (file-name-nondirectory (car registered)))
                    ;; File1 matches.
                    (and (stringp file1)
                         (string-equal
                          (nth 0 entry) (file-name-nondirectory file1)))))
+          ;;(message
+           ;;"file-notify-callback %S %S %S %S %S"
+           ;;(file-notify--descriptor desc file) action file file1 registered)
          (if file1
              (funcall
               callback
@@ -272,11 +280,10 @@ EVENT is the cadr of the event in `file-notify-handle-event'
 
       ;; Modify `file-notify-descriptors'.
       (when stopped
-        (file-notify--rm-descriptor
-         (file-notify--descriptor desc file) file)))))
+        (file-notify-rm-watch (file-notify--descriptor desc file))))))
 
-;; `gfilenotify' and `w32notify' return a unique descriptor for every
-;; `file-notify-add-watch', while `inotify' returns a unique
+;; `kqueue', `gfilenotify' and `w32notify' return a unique descriptor
+;; for every `file-notify-add-watch', while `inotify' returns a unique
 ;; descriptor per inode only.
 (defun file-notify-add-watch (file flags callback)
   "Add a watch for filesystem events pertaining to FILE.
@@ -329,7 +336,7 @@ FILE is the name of the file whose event is being reported."
               (if (file-directory-p file)
                   file
                 (file-name-directory file))))
-       desc func l-flags registered)
+       desc func l-flags registered entry)
 
     (unless (file-directory-p dir)
       (signal 'file-notify-error `("Directory does not exist" ,dir)))
@@ -338,7 +345,12 @@ FILE is the name of the file whose event is being reported."
        ;; A file name handler could exist even if there is no local
        ;; file notification support.
        (setq desc (funcall
-                   handler 'file-notify-add-watch dir flags callback))
+                   handler 'file-notify-add-watch
+                    ;; kqueue does not report file changes in
+                    ;; directory monitor.  So we must watch the file
+                    ;; itself.
+                    (if (eq file-notify--library 'kqueue) file dir)
+                    flags callback))
 
       ;; Check, whether Emacs has been compiled with file notification
       ;; support.
@@ -349,8 +361,9 @@ FILE is the name of the file whose event is being reported."
       ;; Determine low-level function to be called.
       (setq func
            (cond
-            ((eq file-notify--library 'gfilenotify) 'gfile-add-watch)
             ((eq file-notify--library 'inotify) 'inotify-add-watch)
+            ((eq file-notify--library 'kqueue) 'kqueue-add-watch)
+            ((eq file-notify--library 'gfilenotify) 'gfile-add-watch)
             ((eq file-notify--library 'w32notify) 'w32notify-add-watch)))
 
       ;; Determine respective flags.
@@ -362,30 +375,32 @@ FILE is the name of the file whose event is being reported."
           (cond
            ((eq file-notify--library 'inotify)
             '(create delete delete-self modify move-self move))
+           ((eq file-notify--library 'kqueue)
+            '(create delete write extend rename))
            ((eq file-notify--library 'w32notify)
             '(file-name directory-name size last-write-time)))))
        (when (memq 'attribute-change flags)
          (push (cond
                  ((eq file-notify--library 'inotify) 'attrib)
+                 ((eq file-notify--library 'kqueue) 'attrib)
                  ((eq file-notify--library 'w32notify) 'attributes))
                 l-flags)))
 
       ;; Call low-level function.
-      (setq desc (funcall func dir l-flags 'file-notify-callback)))
+      (setq desc (funcall
+                  func (if (eq file-notify--library 'kqueue) file dir)
+                  l-flags 'file-notify-callback)))
 
     ;; Modify `file-notify-descriptors'.
-    (setq registered (gethash desc file-notify-descriptors))
-    (puthash
-     desc
-     `(,dir
-       (,(unless (file-directory-p file) (file-name-nondirectory file))
-       . ,callback)
-       . ,(cdr registered))
-     file-notify-descriptors)
+    (setq file (unless (file-directory-p file) (file-name-nondirectory file))
+         desc (if (consp desc) (car desc) desc)
+         registered (gethash desc file-notify-descriptors)
+         entry `(,file . ,callback))
+    (unless (member entry (cdr registered))
+      (puthash desc `(,dir ,entry . ,(cdr registered)) file-notify-descriptors))
 
     ;; Return descriptor.
-    (file-notify--descriptor
-     desc (unless (file-directory-p file) (file-name-nondirectory file)))))
+    (file-notify--descriptor desc file)))
 
 (defun file-notify-rm-watch (descriptor)
   "Remove an existing watch specified by its DESCRIPTOR.
@@ -410,8 +425,9 @@ DESCRIPTOR should be an object returned by `file-notify-add-watch'."
 
               (funcall
                (cond
-                ((eq file-notify--library 'gfilenotify) 'gfile-rm-watch)
                 ((eq file-notify--library 'inotify) 'inotify-rm-watch)
+                ((eq file-notify--library 'kqueue) 'kqueue-rm-watch)
+                ((eq file-notify--library 'gfilenotify) 'gfile-rm-watch)
                 ((eq file-notify--library 'w32notify) 'w32notify-rm-watch))
                desc))
           (file-notify-error nil)))
@@ -441,8 +457,9 @@ DESCRIPTOR should be an object returned by `file-notify-add-watch'."
                (funcall handler 'file-notify-valid-p descriptor)
              (funcall
               (cond
-               ((eq file-notify--library 'gfilenotify) 'gfile-valid-p)
                ((eq file-notify--library 'inotify) 'inotify-valid-p)
+               ((eq file-notify--library 'kqueue) 'kqueue-valid-p)
+               ((eq file-notify--library 'gfilenotify) 'gfile-valid-p)
                ((eq file-notify--library 'w32notify) 'w32notify-valid-p))
               desc))
            t))))
index 31645fcd3154674f230a7ebdf31ed433a5b5bed9..ea5f3155478a63b16876f4b71bcc65be6abf9bdc 100644 (file)
@@ -1996,14 +1996,6 @@ to case differences."
   (defun gnus-timer--function (timer)
     (elt timer 5)))
 
-(defun gnus-test-list (list predicate)
-  "To each element of LIST apply PREDICATE.
-Return nil if LIST is no list or is empty or some test returns nil;
-otherwise, return t."
-  (when (and list (listp list))
-    (let ((result (mapcar predicate list)))
-      (not (memq nil result)))))
-
 (defun gnus-subsetp (list1 list2)
   "Return t if LIST1 is a subset of LIST2.
 Similar to `subsetp' but use member for element test so that this works for
@@ -2014,13 +2006,6 @@ lists of strings."
             (gnus-subsetp (cdr list1) list2))
       t)))
 
-(defun gnus-setdiff (list1 list2)
-  "Return member-based set difference of LIST1 and LIST2."
-  (when (and list1 (listp list1) (listp list2))
-    (if (member (car list1) list2)
-       (gnus-setdiff (cdr list1) list2)
-      (cons (car list1) (gnus-setdiff (cdr list1) list2)))))
-
 (provide 'gnus-util)
 
 ;;; gnus-util.el ends here
index 0a5f472079d359b7e2adba44a3add40a18dea64c..dbd31629f97d3dfb840f1e490d107c4b3a09cb79 100644 (file)
@@ -25,9 +25,7 @@
 
 (eval-when-compile (require 'cl))
 
-(require 'gnus-util)
-(require 'epg)
-
+(autoload 'gnus-subsetp "gnus-util")
 (autoload 'mail-strip-quoted-names "mail-utils")
 (autoload 'mml2015-sign "mml2015")
 (autoload 'mml2015-encrypt "mml2015")
@@ -42,7 +40,6 @@
 (autoload 'mml-smime-encrypt-query "mml-smime")
 (autoload 'mml-smime-verify "mml-smime")
 (autoload 'mml-smime-verify-test "mml-smime")
-(autoload 'epa--select-keys "epa")
 
 (defvar mml-sign-alist
   '(("smime"     mml-smime-sign-buffer     mml-smime-sign-query)
@@ -94,7 +91,7 @@ signs and encrypt the message in one step.
 
 Note that the output generated by using a `combined' mode is NOT
 understood by all PGP implementations, in particular PGP version
-2 does not support it!  See Info node `(message) Security' for
+2 does not support it!  See Info node `(message)Security' for
 details."
   :version "22.1"
   :group 'message
@@ -114,9 +111,7 @@ details."
   (if (boundp 'password-cache)
       password-cache
     t)
-  "If t, cache OpenPGP or S/MIME passphrases inside Emacs.
-Passphrase caching in Emacs is NOT recommended.  Use gpg-agent instead.
-See Info node `(message) Security'."
+  "If t, cache passphrase."
   :group 'message
   :type 'boolean)
 
@@ -430,529 +425,6 @@ If called with a prefix argument, only encrypt (do NOT sign)."
   (interactive "P")
   (mml-secure-message "pgpauto" (if dontsign 'encrypt 'signencrypt)))
 
-;;; Common functionality for mml1991.el, mml2015.el, mml-smime.el
-
-(define-obsolete-variable-alias 'mml1991-signers 'mml-secure-openpgp-signers)
-(define-obsolete-variable-alias 'mml2015-signers 'mml-secure-openpgp-signers)
-(defcustom mml-secure-openpgp-signers nil
-  "A list of your own key ID(s) which will be used to sign OpenPGP messages.
-If set, it is added to the setting of `mml-secure-openpgp-sign-with-sender'."
-  :group 'mime-security
-  :type '(repeat (string :tag "Key ID")))
-
-(define-obsolete-variable-alias 'mml-smime-signers 'mml-secure-smime-signers)
-(defcustom mml-secure-smime-signers nil
-  "A list of your own key ID(s) which will be used to sign S/MIME messages.
-If set, it is added to the setting of `mml-secure-smime-sign-with-sender'."
-  :group 'mime-security
-  :type '(repeat (string :tag "Key ID")))
-
-(define-obsolete-variable-alias
-  'mml1991-encrypt-to-self 'mml-secure-openpgp-encrypt-to-self)
-(define-obsolete-variable-alias
-  'mml2015-encrypt-to-self 'mml-secure-openpgp-encrypt-to-self)
-(defcustom mml-secure-openpgp-encrypt-to-self nil
-  "List of own key ID(s) or t; determines additional recipients with OpenPGP.
-If t, also encrypt to key for message sender; if list, encrypt to those keys.
-With this variable, you can ensure that you can decrypt your own messages.
-Alternatives to this variable include Bcc'ing the message to yourself or
-using the encrypt-to or hidden-encrypt-to option in gpg.conf (see man gpg(1)).
-Note that this variable and the encrypt-to option give away your identity
-for *every* encryption without warning, which is not what you want if you are
-using, e.g., remailers.
-Also, use of Bcc gives away your identity for *every* encryption without
-warning, which is a bug, see:
-https://debbugs.gnu.org/cgi/bugreport.cgi?bug=18718"
-  :group 'mime-security
-  :type '(choice (const :tag "None" nil)
-                (const :tag "From address" t)
-                (repeat (string :tag "Key ID"))))
-
-(define-obsolete-variable-alias
-  'mml-smime-encrypt-to-self 'mml-secure-smime-encrypt-to-self)
-(defcustom mml-secure-smime-encrypt-to-self nil
-  "List of own key ID(s) or t; determines additional recipients with S/MIME.
-If t, also encrypt to key for message sender; if list, encrypt to those keys.
-With this variable, you can ensure that you can decrypt your own messages.
-Alternatives to this variable include Bcc'ing the message to yourself or
-using the encrypt-to option in gpgsm.conf (see man gpgsm(1)).
-Note that this variable and the encrypt-to option give away your identity
-for *every* encryption without warning, which is not what you want if you are
-using, e.g., remailers.
-Also, use of Bcc gives away your identity for *every* encryption without
-warning, which is a bug, see:
-https://debbugs.gnu.org/cgi/bugreport.cgi?bug=18718"
-  :group 'mime-security
-  :type '(choice (const :tag "None" nil)
-                (const :tag "From address" t)
-                (repeat (string :tag "Key ID"))))
-
-(define-obsolete-variable-alias
-  'mml2015-sign-with-sender 'mml-secure-openpgp-sign-with-sender)
-;mml1991-sign-with-sender did never exist.
-(defcustom mml-secure-openpgp-sign-with-sender nil
-  "If t, use message sender to find an OpenPGP key to sign with."
-  :group 'mime-security
-  :type 'boolean)
-
-(define-obsolete-variable-alias
-  'mml-smime-sign-with-sender 'mml-secure-smime-sign-with-sender)
-(defcustom mml-secure-smime-sign-with-sender nil
-  "If t, use message sender to find an S/MIME key to sign with."
-  :group 'mime-security
-  :type 'boolean)
-
-(define-obsolete-variable-alias
-  'mml2015-always-trust 'mml-secure-openpgp-always-trust)
-;mml1991-always-trust did never exist.
-(defcustom mml-secure-openpgp-always-trust t
-  "If t, skip key validation of GnuPG on encryption."
-  :group 'mime-security
-  :type 'boolean)
-
-(defcustom mml-secure-fail-when-key-problem nil
-  "If t, raise an error if some key is missing or several keys exist.
-Otherwise, ask the user."
-  :group 'mime-security
-  :type 'boolean)
-
-(defcustom mml-secure-key-preferences
-  '((OpenPGP (sign) (encrypt)) (CMS (sign) (encrypt)))
-  "Protocol- and usage-specific fingerprints of preferred keys.
-This variable is only relevant if a recipient owns multiple key pairs (for
-encryption) or you own multiple key pairs (for signing).  In such cases,
-you will be asked which key(s) should be used, and your choice can be
-customized in this variable."
-  :group 'mime-security
-  :type '(alist :key-type (symbol :tag "Protocol") :value-type
-               (alist :key-type (symbol :tag "Usage") :value-type
-                      (alist :key-type (string :tag "Name") :value-type
-                             (repeat (string :tag "Fingerprint"))))))
-
-(defun mml-secure-cust-usage-lookup (context usage)
-  "Return preferences for CONTEXT and USAGE."
-  (let* ((protocol (epg-context-protocol context))
-        (protocol-prefs (cdr (assoc protocol mml-secure-key-preferences))))
-    (assoc usage protocol-prefs)))
-
-(defun mml-secure-cust-fpr-lookup (context usage name)
-  "Return fingerprints of preferred keys for CONTEXT, USAGE, and NAME."
-  (let* ((usage-prefs (mml-secure-cust-usage-lookup context usage))
-        (fprs (assoc name (cdr usage-prefs))))
-    (when fprs
-      (cdr fprs))))
-
-(defun mml-secure-cust-record-keys (context usage name keys &optional save)
-  "For CONTEXT, USAGE, and NAME record fingerprint(s) of KEYS.
-If optional SAVE is not nil, save customized fingerprints.
-Return keys."
-  (assert keys)
-  (let* ((usage-prefs (mml-secure-cust-usage-lookup context usage))
-        (curr-fprs (cdr (assoc name (cdr usage-prefs))))
-        (key-fprs (mapcar 'mml-secure-fingerprint keys))
-        (new-fprs (gnus-union curr-fprs key-fprs :test 'equal)))
-    (if curr-fprs
-       (setcdr (assoc name (cdr usage-prefs)) new-fprs)
-      (setcdr usage-prefs (cons (cons name new-fprs) (cdr usage-prefs))))
-    (when save
-       (customize-save-variable
-        'mml-secure-key-preferences mml-secure-key-preferences))
-    keys))
-
-(defun mml-secure-cust-remove-keys (context usage name)
-  "Remove keys for CONTEXT, USAGE, and NAME.
-Return t if a customization for NAME was present (and has been removed)."
-  (let* ((usage-prefs (mml-secure-cust-usage-lookup context usage))
-        (current (assoc name usage-prefs)))
-    (when current
-      (setcdr usage-prefs (remove current (cdr usage-prefs)))
-      t)))
-
-(defvar mml-secure-secret-key-id-list nil)
-
-(defun mml-secure-add-secret-key-id (key-id)
-  "Record KEY-ID in list of secret keys."
-  (add-to-list 'mml-secure-secret-key-id-list key-id))
-
-(defun mml-secure-clear-secret-key-id-list ()
-  "Remove passwords from cache and clear list of secret keys."
-  ;; Loosely based on code inside mml2015-epg-encrypt,
-  ;; mml2015-epg-clear-decrypt, and mml2015-epg-decrypt
-  (dolist (key-id mml-secure-secret-key-id-list nil)
-    (password-cache-remove key-id))
-  (setq mml-secure-secret-key-id-list nil))
-
-(defvar mml1991-cache-passphrase)
-(defvar mml1991-passphrase-cache-expiry)
-
-(defun mml-secure-cache-passphrase-p (protocol)
-  "Return t if OpenPGP or S/MIME passphrases should be cached for PROTOCOL.
-Passphrase caching in Emacs is NOT recommended.  Use gpg-agent instead."
-  (or (and (eq 'OpenPGP protocol)
-          (or mml-secure-cache-passphrase
-              (and (boundp 'mml2015-cache-passphrase)
-                   mml2015-cache-passphrase)
-              (and (boundp 'mml1991-cache-passphrase)
-                   mml1991-cache-passphrase)))
-      (and (eq 'CMS protocol)
-          (or mml-secure-cache-passphrase
-              (and (boundp 'mml-smime-cache-passphrase)
-                   mml-smime-cache-passphrase)))))
-
-(defun mml-secure-cache-expiry-interval (protocol)
-  "Return time in seconds to cache passphrases for PROTOCOL.
-Passphrase caching in Emacs is NOT recommended.  Use gpg-agent instead."
-  (or (and (eq 'OpenPGP protocol)
-          (or (and (boundp 'mml2015-passphrase-cache-expiry)
-                   mml2015-passphrase-cache-expiry)
-              (and (boundp 'mml1991-passphrase-cache-expiry)
-                   mml1991-passphrase-cache-expiry)
-              mml-secure-passphrase-cache-expiry))
-      (and (eq 'CMS protocol)
-          (or (and (boundp 'mml-smime-passphrase-cache-expiry)
-                   mml-smime-passphrase-cache-expiry)
-              mml-secure-passphrase-cache-expiry))))
-
-(defun mml-secure-passphrase-callback (context key-id standard)
-  "Ask for passphrase in CONTEXT for KEY-ID for STANDARD.
-The passphrase is read and cached."
-  ;; Based on mml2015-epg-passphrase-callback.
-  (if (eq key-id 'SYM)
-      (epg-passphrase-callback-function context key-id nil)
-    (let* ((password-cache-key-id
-           (if (eq key-id 'PIN)
-               "PIN"
-              key-id))
-          (entry (assoc key-id epg-user-id-alist))
-          (passphrase
-           (password-read
-            (if (eq key-id 'PIN)
-                "Passphrase for PIN: "
-              (if entry
-                  (format "Passphrase for %s %s: " key-id (cdr entry))
-                (format "Passphrase for %s: " key-id)))
-            ;; TODO: With mml-smime.el, password-cache-key-id is not passed
-            ;; as argument to password-read.
-            ;; Is that on purpose?  If so, the following needs to be placed
-            ;; inside an if statement.
-            password-cache-key-id)))
-      (when passphrase
-       (let ((password-cache-expiry (mml-secure-cache-expiry-interval
-                                     (epg-context-protocol context))))
-         (password-cache-add password-cache-key-id passphrase))
-       (mml-secure-add-secret-key-id password-cache-key-id)
-       (copy-sequence passphrase)))))
-
-(defun mml-secure-check-user-id (key recipient)
-  "Check whether KEY has a non-revoked, non-expired UID for RECIPIENT."
-  ;; Based on mml2015-epg-check-user-id.
-  (let ((uids (epg-key-user-id-list key)))
-    (catch 'break
-      (dolist (uid uids nil)
-       (if (and (stringp (epg-user-id-string uid))
-                (equal (car (mail-header-parse-address
-                             (epg-user-id-string uid)))
-                       (car (mail-header-parse-address
-                             recipient)))
-                (not (memq (epg-user-id-validity uid)
-                           '(revoked expired))))
-           (throw 'break t))))))
-
-(defun mml-secure-secret-key-exists-p (context subkey)
-  "Return t if keyring for CONTEXT contains secret key for public SUBKEY."
-  (let* ((fpr (epg-sub-key-fingerprint subkey))
-        (candidates (epg-list-keys context fpr 'secret))
-        (candno (length candidates)))
-    ;; If two or more subkeys with the same fingerprint exist, something is
-    ;; terribly wrong.
-    (when (>= candno 2)
-      (error "Found %d secret keys with same fingerprint %s" candno fpr))
-    (= 1 candno)))
-
-(defun mml-secure-check-sub-key (context key usage &optional fingerprint)
-  "Check whether in CONTEXT the public KEY has a usable subkey for USAGE.
-This is the case if KEY is not disabled, and there is a subkey for
-USAGE that is neither revoked nor expired.  Additionally, if optional
-FINGERPRINT is present and if it is not the primary key's fingerprint, then
-the returned subkey must have that FINGERPRINT.  FINGERPRINT must consist of
-hexadecimal digits only (no leading \"0x\" allowed).
-If USAGE is not `encrypt', then additionally an appropriate secret key must
-be present in the keyring."
-  ;; Based on mml2015-epg-check-sub-key, extended by
-  ;; - check for secret keys if usage is not 'encrypt and
-  ;; - check for new argument FINGERPRINT.
-  (let* ((subkeys (epg-key-sub-key-list key))
-        (primary (car subkeys))
-        (fpr (epg-sub-key-fingerprint primary)))
-    ;; The primary key will be marked as disabled, when the entire
-    ;; key is disabled (see 12 Field, Format of colon listings, in
-    ;; gnupg/doc/DETAILS)
-    (unless (memq 'disabled (epg-sub-key-capability primary))
-      (catch 'break
-       (dolist (subkey subkeys nil)
-         (if (and (memq usage (epg-sub-key-capability subkey))
-                  (not (memq (epg-sub-key-validity subkey)
-                             '(revoked expired)))
-                  (or (eq 'encrypt usage) ; Encryption works with public key.
-                      ;; In contrast, signing requires secret key.
-                      (mml-secure-secret-key-exists-p context subkey))
-                  (or (not fingerprint)
-                      (gnus-string-match-p (concat fingerprint "$") fpr)
-                      (gnus-string-match-p (concat fingerprint "$")
-                                           (epg-sub-key-fingerprint subkey))))
-             (throw 'break t)))))))
-
-(defun mml-secure-find-usable-keys (context name usage &optional justone)
-  "In CONTEXT return a list of keys for NAME and USAGE.
-If USAGE is `encrypt' public keys are returned, otherwise secret ones.
-Only non-revoked and non-expired keys are returned whose primary key is
-not disabled.
-NAME can be an e-mail address or a key ID.
-If NAME just consists of hexadecimal digits (possibly prefixed by \"0x\"), it
-is treated as key ID for which at most one key must exist in the keyring.
-Otherwise, NAME is treated as user ID, for which no keys are returned if it
-is expired or revoked.
-If optional JUSTONE is not nil, return the first key instead of a list."
-  (let* ((keys (epg-list-keys context name))
-        (iskeyid (string-match "\\(0x\\)?\\([0-9a-fA-F]\\{8,\\}\\)" name))
-        (fingerprint (match-string 2 name))
-        result)
-    (when (and iskeyid (>= (length keys) 2))
-      (error
-       "Name %s (for %s) looks like a key ID but multiple keys found"
-       name usage))
-    (catch 'break
-      (dolist (key keys result)
-       (if (and (or iskeyid
-                    (mml-secure-check-user-id key name))
-                (mml-secure-check-sub-key context key usage fingerprint))
-           (if justone
-               (throw 'break key)
-             (push key result)))))))
-
-(defun mml-secure-select-preferred-keys (context names usage)
-  "Return list of preferred keys in CONTEXT for NAMES and USAGE.
-This inspects the keyrings to find keys for each name in NAMES.  If several
-keys are found for a name, `mml-secure-select-keys' is used to look for
-customized preferences or have the user select preferable ones.
-When `mml-secure-fail-when-key-problem' is t, fail with an error in
-case of missing, outdated, or multiple keys."
-  ;; Loosely based on code appearing inside mml2015-epg-sign and
-  ;; mml2015-epg-encrypt.
-  (apply
-   #'nconc
-   (mapcar
-    (lambda (name)
-      (let* ((keys (mml-secure-find-usable-keys context name usage))
-            (keyno (length keys)))
-       (cond ((= 0 keyno)
-              (when (or mml-secure-fail-when-key-problem
-                        (not (y-or-n-p
-                              (format "No %s key for %s; skip it? "
-                                      usage name))))
-                (error "No %s key for %s" usage name)))
-             ((= 1 keyno) keys)
-             (t (mml-secure-select-keys context name keys usage)))))
-    names)))
-
-(defun mml-secure-fingerprint (key)
-  "Return fingerprint for public KEY."
-  (epg-sub-key-fingerprint (car (epg-key-sub-key-list key))))
-
-(defun mml-secure-filter-keys (keys fprs)
-  "Filter KEYS to subset with fingerprints in FPRS."
-  (when keys
-    (if (member (mml-secure-fingerprint (car keys)) fprs)
-       (cons (car keys) (mml-secure-filter-keys (cdr keys) fprs))
-      (mml-secure-filter-keys (cdr keys) fprs))))
-
-(defun mml-secure-normalize-cust-name (name)
-  "Normalize NAME to be used for customization.
-Currently, remove ankle brackets."
-  (if (string-match "^<\\(.*\\)>$" name)
-      (match-string 1 name)
-    name))
-
-(defun mml-secure-select-keys (context name keys usage)
-  "In CONTEXT for NAME select among KEYS for USAGE.
-KEYS should be a list with multiple entries.
-NAME is normalized first as customized keys are inspected.
-When `mml-secure-fail-when-key-problem' is t, fail with an error in case of
-outdated or multiple keys."
-  (let* ((nname (mml-secure-normalize-cust-name name))
-        (fprs (mml-secure-cust-fpr-lookup context usage nname))
-        (usable-fprs (mapcar 'mml-secure-fingerprint keys)))
-    (if fprs
-       (if (gnus-subsetp fprs usable-fprs)
-           (mml-secure-filter-keys keys fprs)
-         (mml-secure-cust-remove-keys context usage nname)
-         (let ((diff (gnus-setdiff fprs usable-fprs)))
-           (if mml-secure-fail-when-key-problem
-               (error "Customization of %s keys for %s outdated" usage nname)
-             (mml-secure-select-keys-1
-              context nname keys usage (format "\
-Customized keys
- (%s)
-for %s not available any more.
-Select anew.  "
-                                              diff nname)))))
-      (if mml-secure-fail-when-key-problem
-         (error "Multiple %s keys for %s" usage nname)
-       (mml-secure-select-keys-1
-        context nname keys usage (format "\
-Multiple %s keys for:
- %s
-Select preferred one(s).  "
-                                        usage nname))))))
-
-(defun mml-secure-select-keys-1 (context name keys usage message)
-  "In CONTEXT for NAME let user select among KEYS for USAGE, showing MESSAGE.
-Return selected keys."
-  (let* ((selected (epa--select-keys message keys))
-        (selno (length selected))
-        ;; TODO: y-or-n-p does not always resize the echo area but may
-        ;; truncate the message.  Why?  The following does not help.
-        ;; yes-or-no-p shows full message, though.
-        (message-truncate-lines nil))
-    (if selected
-       (if (y-or-n-p
-            (format "%d %s key(s) selected.  Store for %s? "
-                    selno usage name))
-           (mml-secure-cust-record-keys context usage name selected 'save)
-         selected)
-      (unless (y-or-n-p
-              (format "No %s key for %s; skip it? " usage name))
-       (error "No %s key for %s" usage name)))))
-
-(defun mml-secure-signer-names (protocol sender)
-  "Determine signer names for PROTOCOL and message from SENDER.
-Returned names may be e-mail addresses or key IDs and are determined based
-on `mml-secure-openpgp-signers' and `mml-secure-openpgp-sign-with-sender' with
-OpenPGP or `mml-secure-smime-signers' and `mml-secure-smime-sign-with-sender'
-with S/MIME."
-  (if (eq 'OpenPGP protocol)
-      (append mml-secure-openpgp-signers
-             (if (and mml-secure-openpgp-sign-with-sender sender)
-                 (list (concat "<" sender ">"))))
-    (append mml-secure-smime-signers
-           (if (and mml-secure-smime-sign-with-sender sender)
-               (list (concat "<" sender ">"))))))
-
-(defun mml-secure-signers (context signer-names)
-  "Determine signing keys in CONTEXT from SIGNER-NAMES.
-If `mm-sign-option' is `guided', the user is asked to choose.
-Otherwise, `mml-secure-select-preferred-keys' is used."
-  ;; Based on code appearing inside mml2015-epg-sign and
-  ;; mml2015-epg-encrypt.
-  (if (eq mm-sign-option 'guided)
-      (epa-select-keys context "\
-Select keys for signing.
-If no one is selected, default secret key is used.  "
-                      signer-names t)
-    (mml-secure-select-preferred-keys context signer-names 'sign)))
-
-(defun mml-secure-self-recipients (protocol sender)
-  "Determine additional recipients based on encrypt-to-self variables.
-PROTOCOL specifies OpenPGP or S/MIME for a message from SENDER."
-  (let ((encrypt-to-self
-        (if (eq 'OpenPGP protocol)
-            mml-secure-openpgp-encrypt-to-self
-          mml-secure-smime-encrypt-to-self)))
-    (when encrypt-to-self
-      (if (listp encrypt-to-self)
-         encrypt-to-self
-       (list sender)))))
-
-(defun mml-secure-recipients (protocol context config sender)
-  "Determine encryption recipients.
-PROTOCOL specifies OpenPGP or S/MIME with matching CONTEXT and CONFIG
-for a message from SENDER."
-  ;; Based on code appearing inside mml2015-epg-encrypt.
-  (let ((recipients
-        (apply #'nconc
-               (mapcar
-                (lambda (recipient)
-                  (or (epg-expand-group config recipient)
-                      (list (concat "<" recipient ">"))))
-                (split-string
-                 (or (message-options-get 'message-recipients)
-                     (message-options-set 'message-recipients
-                                          (read-string "Recipients: ")))
-                 "[ \f\t\n\r\v,]+")))))
-    (nconc recipients (mml-secure-self-recipients protocol sender))
-    (if (eq mm-encrypt-option 'guided)
-       (setq recipients
-             (epa-select-keys context "\
-Select recipients for encryption.
-If no one is selected, symmetric encryption will be performed.  "
-                              recipients))
-      (setq recipients
-           (mml-secure-select-preferred-keys context recipients 'encrypt))
-      (unless recipients
-       (error "No recipient specified")))
-    recipients))
-
-(defun mml-secure-epg-encrypt (protocol cont &optional sign)
-  ;; Based on code appearing inside mml2015-epg-encrypt.
-  (let* ((context (epg-make-context protocol))
-        (config (epg-configuration))
-        (sender (message-options-get 'message-sender))
-        (recipients (mml-secure-recipients protocol context config sender))
-        (signer-names (mml-secure-signer-names protocol sender))
-        cipher signers)
-    (when sign
-      (setq signers (mml-secure-signers context signer-names))
-      (epg-context-set-signers context signers))
-    (when (eq 'OpenPGP protocol)
-      (epg-context-set-armor context t)
-      (epg-context-set-textmode context t))
-    (when (mml-secure-cache-passphrase-p protocol)
-      (epg-context-set-passphrase-callback
-       context
-       (cons 'mml-secure-passphrase-callback protocol)))
-    (condition-case error
-       (setq cipher
-             (if (eq 'OpenPGP protocol)
-                 (epg-encrypt-string context (buffer-string) recipients sign
-                                     mml-secure-openpgp-always-trust)
-               (epg-encrypt-string context (buffer-string) recipients))
-             mml-secure-secret-key-id-list nil)
-      (error
-       (mml-secure-clear-secret-key-id-list)
-       (signal (car error) (cdr error))))
-    cipher))
-
-(defun mml-secure-epg-sign (protocol mode)
-  ;; Based on code appearing inside mml2015-epg-sign.
-  (let* ((context (epg-make-context protocol))
-        (sender (message-options-get 'message-sender))
-        (signer-names (mml-secure-signer-names protocol sender))
-        (signers (mml-secure-signers context signer-names))
-        signature micalg)
-    (when (eq 'OpenPGP protocol)
-      (epg-context-set-armor context t)
-      (epg-context-set-textmode context t))
-    (epg-context-set-signers context signers)
-    (when (mml-secure-cache-passphrase-p protocol)
-      (epg-context-set-passphrase-callback
-       context
-       (cons 'mml-secure-passphrase-callback protocol)))
-    (condition-case error
-       (setq signature
-             (if (eq 'OpenPGP protocol)
-                 (epg-sign-string context (buffer-string) mode)
-               (epg-sign-string context
-                                (mm-replace-in-string (buffer-string)
-                                                      "\n" "\r\n") t))
-             mml-secure-secret-key-id-list nil)
-      (error
-       (mml-secure-clear-secret-key-id-list)
-       (signal (car error) (cdr error))))
-    (if (epg-context-result-for context 'sign)
-       (setq micalg (epg-new-signature-digest-algorithm
-                     (car (epg-context-result-for context 'sign)))))
-    (cons signature micalg)))
-
 (provide 'mml-sec)
 
 ;;; mml-sec.el ends here
index a40595ecbd594532021c2118010ff75a5e383a8b..b19c9e89ba9ac327542818bc01fbdaf079e126db 100644 (file)
 (autoload 'message-narrow-to-headers "message")
 (autoload 'message-fetch-field "message")
 
-;; Prefer epg over openssl if it is available as epg uses GnuPG's gpgsm,
-;; which features full-fledged certificate management, while openssl requires
-;; major manual efforts for certificate revocation and expiry and has bugs
-;; as documented under man smime(1).
-(ignore-errors (require 'epg))
-
 (defcustom mml-smime-use (if (featurep 'epg) 'epg 'openssl)
-  "Whether to use OpenSSL or EasyPG (EPG) to handle S/MIME messages.
-Defaults to EPG if it's available.
-If you think about using OpenSSL, please read the BUGS section in the manual
-for the `smime' command coming with OpenSSL first.  EasyPG is recommended."
+  "Whether to use OpenSSL or EPG to decrypt S/MIME messages.
+Defaults to EPG if it's loaded."
   :group 'mime-security
   :type '(choice (const :tag "EPG" epg)
                  (const :tag "OpenSSL" openssl)))
@@ -65,9 +57,6 @@ for the `smime' command coming with OpenSSL first.  EasyPG is recommended."
   "If t, cache passphrase."
   :group 'mime-security
   :type 'boolean)
-(make-obsolete-variable 'mml-smime-cache-passphrase
-                       'mml-secure-cache-passphrase
-                       "25.1")
 
 (defcustom mml-smime-passphrase-cache-expiry mml-secure-passphrase-cache-expiry
   "How many seconds the passphrase is cached.
@@ -75,9 +64,6 @@ Whether the passphrase is cached at all is controlled by
 `mml-smime-cache-passphrase'."
   :group 'mime-security
   :type 'integer)
-(make-obsolete-variable 'mml-smime-passphrase-cache-expiry
-                       'mml-secure-passphrase-cache-expiry
-                       "25.1")
 
 (defcustom mml-smime-signers nil
   "A list of your own key ID which will be used to sign a message."
@@ -216,7 +202,7 @@ Whether the passphrase is cached at all is controlled by
                                        "")))))
          (if (setq cert (smime-cert-by-dns who))
              (setq result (list 'certfile (buffer-name cert)))
-           (setq bad (format "`%s' not found. " who))))
+           (setq bad (gnus-format-message "`%s' not found. " who))))
       (quit))
     result))
 
@@ -235,7 +221,7 @@ Whether the passphrase is cached at all is controlled by
                                        "")))))
          (if (setq cert (smime-cert-by-ldap who))
              (setq result (list 'certfile (buffer-name cert)))
-           (setq bad (format "`%s' not found. " who))))
+           (setq bad (gnus-format-message "`%s' not found. " who))))
       (quit))
     result))
 
@@ -331,28 +317,82 @@ Whether the passphrase is cached at all is controlled by
 (defvar inhibit-redisplay)
 (defvar password-cache-expiry)
 
-(eval-when-compile
-  (autoload 'epg-make-context "epg")
-  (autoload 'epg-context-set-armor "epg")
-  (autoload 'epg-context-set-signers "epg")
-  (autoload 'epg-context-result-for "epg")
-  (autoload 'epg-new-signature-digest-algorithm "epg")
-  (autoload 'epg-verify-result-to-string "epg")
-  (autoload 'epg-list-keys "epg")
-  (autoload 'epg-decrypt-string "epg")
-  (autoload 'epg-verify-string "epg")
-  (autoload 'epg-sign-string "epg")
-  (autoload 'epg-encrypt-string "epg")
-  (autoload 'epg-passphrase-callback-function "epg")
-  (autoload 'epg-context-set-passphrase-callback "epg")
-  (autoload 'epg-sub-key-fingerprint "epg")
-  (autoload 'epg-configuration "epg-config")
-  (autoload 'epg-expand-group "epg-config")
-  (autoload 'epa-select-keys "epa"))
-
-(declare-function epg-key-sub-key-list   "ext:epg" (key))
-(declare-function epg-sub-key-capability "ext:epg" (sub-key))
-(declare-function epg-sub-key-validity   "ext:epg" (sub-key))
+(autoload 'epg-make-context "epg")
+(autoload 'epg-passphrase-callback-function "epg")
+(declare-function epg-context-set-signers "epg" (context signers))
+(declare-function epg-context-result-for "epg" (context name))
+(declare-function epg-new-signature-digest-algorithm "epg" (cl-x) t)
+(declare-function epg-verify-result-to-string "epg" (verify-result))
+(declare-function epg-list-keys "epg" (context &optional name mode))
+(declare-function epg-verify-string "epg"
+                 (context signature &optional signed-text))
+(declare-function epg-sign-string "epg" (context plain &optional mode))
+(declare-function epg-encrypt-string "epg"
+                 (context plain recipients &optional sign always-trust))
+(declare-function epg-context-set-passphrase-callback "epg"
+                 (context passphrase-callback))
+(declare-function epg-sub-key-fingerprint "epg" (cl-x) t)
+(declare-function epg-configuration "epg-config" ())
+(declare-function epg-expand-group "epg-config" (config group))
+(declare-function epa-select-keys "epa"
+                 (context prompt &optional names secret))
+
+(defvar mml-smime-epg-secret-key-id-list nil)
+
+(defun mml-smime-epg-passphrase-callback (context key-id ignore)
+  (if (eq key-id 'SYM)
+      (epg-passphrase-callback-function context key-id nil)
+    (let* (entry
+          (passphrase
+           (password-read
+            (if (eq key-id 'PIN)
+                "Passphrase for PIN: "
+              (if (setq entry (assoc key-id epg-user-id-alist))
+                  (format "Passphrase for %s %s: " key-id (cdr entry))
+                (format "Passphrase for %s: " key-id)))
+            (if (eq key-id 'PIN)
+                "PIN"
+              key-id))))
+      (when passphrase
+       (let ((password-cache-expiry mml-smime-passphrase-cache-expiry))
+         (password-cache-add key-id passphrase))
+       (setq mml-smime-epg-secret-key-id-list
+             (cons key-id mml-smime-epg-secret-key-id-list))
+       (copy-sequence passphrase)))))
+
+(declare-function epg-key-sub-key-list   "epg" (key) t)
+(declare-function epg-sub-key-capability "epg" (sub-key) t)
+(declare-function epg-sub-key-validity   "epg" (sub-key) t)
+
+(defun mml-smime-epg-find-usable-key (keys usage)
+  (catch 'found
+    (while keys
+      (let ((pointer (epg-key-sub-key-list (car keys))))
+       (while pointer
+         (if (and (memq usage (epg-sub-key-capability (car pointer)))
+                  (not (memq (epg-sub-key-validity (car pointer))
+                             '(revoked expired))))
+             (throw 'found (car keys)))
+         (setq pointer (cdr pointer))))
+      (setq keys (cdr keys)))))
+
+;; XXX: since gpg --list-secret-keys does not return validity of each
+;; key, `mml-smime-epg-find-usable-key' defined above is not enough for
+;; secret keys.  The function `mml-smime-epg-find-usable-secret-key'
+;; below looks at appropriate public keys to check usability.
+(defun mml-smime-epg-find-usable-secret-key (context name usage)
+  (let ((secret-keys (epg-list-keys context name t))
+       secret-key)
+    (while (and (not secret-key) secret-keys)
+      (if (mml-smime-epg-find-usable-key
+          (epg-list-keys context (epg-sub-key-fingerprint
+                                  (car (epg-key-sub-key-list
+                                        (car secret-keys)))))
+          usage)
+         (setq secret-key (car secret-keys)
+               secret-keys nil)
+       (setq secret-keys (cdr secret-keys))))
+    secret-key))
 
 (autoload 'mml-compute-boundary "mml")
 
@@ -361,37 +401,146 @@ Whether the passphrase is cached at all is controlled by
 (declare-function message-options-set "message" (symbol value))
 
 (defun mml-smime-epg-sign (cont)
-  (let ((inhibit-redisplay t)
-       (boundary (mml-compute-boundary cont)))
+  (let* ((inhibit-redisplay t)
+        (context (epg-make-context 'CMS))
+        (boundary (mml-compute-boundary cont))
+        (sender (message-options-get 'message-sender))
+        (signer-names (or mml-smime-signers
+                          (if (and mml-smime-sign-with-sender sender)
+                              (list (concat "<" sender ">")))))
+        signer-key
+        (signers
+         (or (message-options-get 'mml-smime-epg-signers)
+             (message-options-set
+              'mml-smime-epg-signers
+              (if (eq mm-sign-option 'guided)
+                  (epa-select-keys context "\
+Select keys for signing.
+If no one is selected, default secret key is used.  "
+                                   signer-names
+                                   t)
+                (if (or sender mml-smime-signers)
+                    (delq nil
+                          (mapcar
+                           (lambda (signer)
+                             (setq signer-key
+                                   (mml-smime-epg-find-usable-secret-key
+                                    context signer 'sign))
+                             (unless (or signer-key
+                                         (y-or-n-p
+                                          (format
+                                           "No secret key for %s; skip it? "
+                                           signer)))
+                               (error "No secret key for %s" signer))
+                             signer-key)
+                           signer-names)))))))
+        signature micalg)
+    (epg-context-set-signers context signers)
+    (if mml-smime-cache-passphrase
+       (epg-context-set-passphrase-callback
+        context
+        #'mml-smime-epg-passphrase-callback))
+    (condition-case error
+       (setq signature (epg-sign-string context
+                                        (mm-replace-in-string (buffer-string)
+                                                              "\n" "\r\n")
+                                        t)
+             mml-smime-epg-secret-key-id-list nil)
+      (error
+       (while mml-smime-epg-secret-key-id-list
+        (password-cache-remove (car mml-smime-epg-secret-key-id-list))
+        (setq mml-smime-epg-secret-key-id-list
+              (cdr mml-smime-epg-secret-key-id-list)))
+       (signal (car error) (cdr error))))
+    (if (epg-context-result-for context 'sign)
+       (setq micalg (epg-new-signature-digest-algorithm
+                     (car (epg-context-result-for context 'sign)))))
     (goto-char (point-min))
-    (let* ((pair (mml-secure-epg-sign 'CMS cont))
-          (signature (car pair))
-          (micalg (cdr pair)))
-      (insert (format "Content-Type: multipart/signed; boundary=\"%s\";\n"
-                     boundary))
-      (if micalg
-         (insert (format "\tmicalg=%s; "
-                         (downcase
-                          (cdr (assq micalg
-                                     epg-digest-algorithm-alist))))))
-      (insert "protocol=\"application/pkcs7-signature\"\n")
-      (insert (format "\n--%s\n" boundary))
-      (goto-char (point-max))
-      (insert (format "\n--%s\n" boundary))
-      (insert "Content-Type: application/pkcs7-signature; name=smime.p7s
+    (insert (format "Content-Type: multipart/signed; boundary=\"%s\";\n"
+                   boundary))
+    (if micalg
+       (insert (format "\tmicalg=%s; "
+                       (downcase
+                        (cdr (assq micalg
+                                   epg-digest-algorithm-alist))))))
+    (insert "protocol=\"application/pkcs7-signature\"\n")
+    (insert (format "\n--%s\n" boundary))
+    (goto-char (point-max))
+    (insert (format "\n--%s\n" boundary))
+    (insert "Content-Type: application/pkcs7-signature; name=smime.p7s
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename=smime.p7s
 
 ")
-      (insert (base64-encode-string signature) "\n")
-      (goto-char (point-max))
-      (insert (format "--%s--\n" boundary))
-      (goto-char (point-max)))))
+    (insert (base64-encode-string signature) "\n")
+    (goto-char (point-max))
+    (insert (format "--%s--\n" boundary))
+    (goto-char (point-max))))
 
 (defun mml-smime-epg-encrypt (cont)
   (let* ((inhibit-redisplay t)
+        (context (epg-make-context 'CMS))
+        (config (epg-configuration))
+        (recipients (message-options-get 'mml-smime-epg-recipients))
+        cipher signers
+        (sender (message-options-get 'message-sender))
+        (signer-names (or mml-smime-signers
+                          (if (and mml-smime-sign-with-sender sender)
+                              (list (concat "<" sender ">")))))
         (boundary (mml-compute-boundary cont))
-        (cipher (mml-secure-epg-encrypt 'CMS cont)))
+        recipient-key)
+    (unless recipients
+      (setq recipients
+           (apply #'nconc
+                  (mapcar
+                   (lambda (recipient)
+                     (or (epg-expand-group config recipient)
+                         (list recipient)))
+                   (split-string
+                    (or (message-options-get 'message-recipients)
+                        (message-options-set 'message-recipients
+                                             (read-string "Recipients: ")))
+                    "[ \f\t\n\r\v,]+"))))
+      (when mml-smime-encrypt-to-self
+       (unless signer-names
+         (error "Neither message sender nor mml-smime-signers are set"))
+       (setq recipients (nconc recipients signer-names)))
+      (if (eq mm-encrypt-option 'guided)
+         (setq recipients
+               (epa-select-keys context "\
+Select recipients for encryption.
+If no one is selected, symmetric encryption will be performed.  "
+                                recipients))
+       (setq recipients
+             (mapcar
+              (lambda (recipient)
+                (setq recipient-key (mml-smime-epg-find-usable-key
+                                     (epg-list-keys context recipient)
+                                     'encrypt))
+                (unless (or recipient-key
+                            (y-or-n-p
+                             (format "No public key for %s; skip it? "
+                                     recipient)))
+                  (error "No public key for %s" recipient))
+                recipient-key)
+              recipients))
+       (unless recipients
+         (error "No recipient specified")))
+      (message-options-set 'mml-smime-epg-recipients recipients))
+    (if mml-smime-cache-passphrase
+       (epg-context-set-passphrase-callback
+        context
+        #'mml-smime-epg-passphrase-callback))
+    (condition-case error
+       (setq cipher
+             (epg-encrypt-string context (buffer-string) recipients)
+             mml-smime-epg-secret-key-id-list nil)
+      (error
+       (while mml-smime-epg-secret-key-id-list
+        (password-cache-remove (car mml-smime-epg-secret-key-id-list))
+        (setq mml-smime-epg-secret-key-id-list
+              (cdr mml-smime-epg-secret-key-id-list)))
+       (signal (car error) (cdr error))))
     (delete-region (point-min) (point-max))
     (goto-char (point-min))
     (insert "\
index bb5c940f1737242e007c5307527a4d5a9c9ec275..6469636451fb177e13d03ff0ee6c4ccaf9f45df0 100644 (file)
 
 (defvar mml1991-cache-passphrase mml-secure-cache-passphrase
   "If t, cache passphrase.")
-(make-obsolete-variable 'mml1991-cache-passphrase
-                       'mml-secure-cache-passphrase
-                       "25.1")
 
 (defvar mml1991-passphrase-cache-expiry mml-secure-passphrase-cache-expiry
   "How many seconds the passphrase is cached.
 Whether the passphrase is cached at all is controlled by
 `mml1991-cache-passphrase'.")
-(make-obsolete-variable 'mml1991-passphrase-cache-expiry
-                       'mml-secure-passphrase-cache-expiry
-                       "25.1")
 
 (defvar mml1991-signers nil
   "A list of your own key ID which will be used to sign a message.")
@@ -81,7 +75,6 @@ Whether the passphrase is cached at all is controlled by
 (defvar mml1991-encrypt-to-self nil
   "If t, add your own key ID to recipient list when encryption.")
 
-
 ;;; mailcrypt wrapper
 
 (autoload 'mc-sign-generic "mc-toplev")
@@ -262,9 +255,91 @@ Whether the passphrase is cached at all is controlled by
 (autoload 'epg-configuration "epg-config")
 (autoload 'epg-expand-group "epg-config")
 
+(defvar mml1991-epg-secret-key-id-list nil)
+
+(defun mml1991-epg-passphrase-callback (context key-id ignore)
+  (if (eq key-id 'SYM)
+      (epg-passphrase-callback-function context key-id nil)
+    (let* ((entry (assoc key-id epg-user-id-alist))
+          (passphrase
+           (password-read
+            (format "GnuPG passphrase for %s: "
+                    (if entry
+                        (cdr entry)
+                      key-id))
+            (if (eq key-id 'PIN)
+                "PIN"
+              key-id))))
+      (when passphrase
+       (let ((password-cache-expiry mml1991-passphrase-cache-expiry))
+         (password-cache-add key-id passphrase))
+       (setq mml1991-epg-secret-key-id-list
+             (cons key-id mml1991-epg-secret-key-id-list))
+       (copy-sequence passphrase)))))
+
+(defun mml1991-epg-find-usable-key (keys usage)
+  (catch 'found
+    (while keys
+      (let ((pointer (epg-key-sub-key-list (car keys))))
+       ;; The primary key will be marked as disabled, when the entire
+       ;; key is disabled (see 12 Field, Format of colon listings, in
+       ;; gnupg/doc/DETAILS)
+       (unless (memq 'disabled (epg-sub-key-capability (car pointer)))
+         (while pointer
+           (if (and (memq usage (epg-sub-key-capability (car pointer)))
+                    (not (memq (epg-sub-key-validity (car pointer))
+                               '(revoked expired))))
+               (throw 'found (car keys)))
+           (setq pointer (cdr pointer)))))
+      (setq keys (cdr keys)))))
+
+;; XXX: since gpg --list-secret-keys does not return validity of each
+;; key, `mml1991-epg-find-usable-key' defined above is not enough for
+;; secret keys.  The function `mml1991-epg-find-usable-secret-key'
+;; below looks at appropriate public keys to check usability.
+(defun mml1991-epg-find-usable-secret-key (context name usage)
+  (let ((secret-keys (epg-list-keys context name t))
+       secret-key)
+    (while (and (not secret-key) secret-keys)
+      (if (mml1991-epg-find-usable-key
+          (epg-list-keys context (epg-sub-key-fingerprint
+                                  (car (epg-key-sub-key-list
+                                        (car secret-keys)))))
+          usage)
+         (setq secret-key (car secret-keys)
+               secret-keys nil)
+       (setq secret-keys (cdr secret-keys))))
+    secret-key))
+
 (defun mml1991-epg-sign (cont)
-  (let ((inhibit-redisplay t)
-       headers cte)
+  (let ((context (epg-make-context))
+       headers cte signer-key signers signature)
+    (if (eq mm-sign-option 'guided)
+       (setq signers (epa-select-keys context "Select keys for signing.
+If no one is selected, default secret key is used.  "
+                                      mml1991-signers t))
+      (if mml1991-signers
+         (setq signers (delq nil
+                             (mapcar
+                              (lambda (name)
+                                (setq signer-key
+                                      (mml1991-epg-find-usable-secret-key
+                                       context name 'sign))
+                                (unless (or signer-key
+                                            (y-or-n-p
+                                             (format
+                                              "No secret key for %s; skip it? "
+                                              name)))
+                                  (error "No secret key for %s" name))
+                                signer-key)
+                              mml1991-signers)))))
+    (epg-context-set-armor context t)
+    (epg-context-set-textmode context t)
+    (epg-context-set-signers context signers)
+    (if mml1991-cache-passphrase
+       (epg-context-set-passphrase-callback
+        context
+        #'mml1991-epg-passphrase-callback))
     ;; Don't sign headers.
     (goto-char (point-min))
     (when (re-search-forward "^$" nil t)
@@ -277,21 +352,28 @@ Whether the passphrase is cached at all is controlled by
       (when cte
        (setq cte (intern (downcase cte)))
        (mm-decode-content-transfer-encoding cte)))
-    (let* ((pair (mml-secure-epg-sign 'OpenPGP 'clear))
-          (signature (car pair)))
-      (delete-region (point-min) (point-max))
-      (mm-with-unibyte-current-buffer
-       (insert signature)
-       (goto-char (point-min))
-       (while (re-search-forward "\r+$" nil t)
-         (replace-match "" t t))
-       (when cte
-         (mm-encode-content-transfer-encoding cte))
-       (goto-char (point-min))
-       (when headers
-         (insert headers))
-       (insert "\n"))
-      t)))
+    (condition-case error
+       (setq signature (epg-sign-string context (buffer-string) 'clear)
+             mml1991-epg-secret-key-id-list nil)
+      (error
+       (while mml1991-epg-secret-key-id-list
+        (password-cache-remove (car mml1991-epg-secret-key-id-list))
+        (setq mml1991-epg-secret-key-id-list
+              (cdr mml1991-epg-secret-key-id-list)))
+       (signal (car error) (cdr error))))
+    (delete-region (point-min) (point-max))
+    (mm-with-unibyte-current-buffer
+      (insert signature)
+      (goto-char (point-min))
+      (while (re-search-forward "\r+$" nil t)
+       (replace-match "" t t))
+      (when cte
+       (mm-encode-content-transfer-encoding cte))
+      (goto-char (point-min))
+      (when headers
+       (insert headers))
+      (insert "\n"))
+    t))
 
 (defun mml1991-epg-encrypt (cont &optional sign)
   (goto-char (point-min))
@@ -304,7 +386,78 @@ Whether the passphrase is cached at all is controlled by
       (delete-region (point-min) (point))
       (when cte
        (mm-decode-content-transfer-encoding (intern (downcase cte))))))
-  (let ((cipher (mml-secure-epg-encrypt 'OpenPGP cont sign)))
+  (let ((context (epg-make-context))
+       (recipients
+        (if (message-options-get 'message-recipients)
+            (split-string
+             (message-options-get 'message-recipients)
+             "[ \f\t\n\r\v,]+")))
+       recipient-key signer-key cipher signers config)
+    (when mml1991-encrypt-to-self
+      (unless mml1991-signers
+       (error "mml1991-signers is not set"))
+      (setq recipients (nconc recipients mml1991-signers)))
+    ;; We should remove this check if epg-0.0.6 is released.
+    (if (and (condition-case nil
+                (require 'epg-config)
+              (error))
+            (functionp #'epg-expand-group))
+       (setq config (epg-configuration)
+             recipients
+             (apply #'nconc
+                    (mapcar (lambda (recipient)
+                              (or (epg-expand-group config recipient)
+                                  (list recipient)))
+                            recipients))))
+    (if (eq mm-encrypt-option 'guided)
+       (setq recipients
+             (epa-select-keys context "Select recipients for encryption.
+If no one is selected, symmetric encryption will be performed.  "
+                              recipients))
+      (setq recipients
+           (delq nil (mapcar
+                      (lambda (name)
+                        (setq recipient-key (mml1991-epg-find-usable-key
+                                             (epg-list-keys context name)
+                                             'encrypt))
+                        (unless (or recipient-key
+                                  (y-or-n-p
+                                   (format "No public key for %s; skip it? "
+                                           name)))
+                          (error "No public key for %s" name))
+                        recipient-key)
+                      recipients)))
+      (unless recipients
+       (error "No recipient specified")))
+    (when sign
+      (if (eq mm-sign-option 'guided)
+         (setq signers (epa-select-keys context "Select keys for signing.
+If no one is selected, default secret key is used.  "
+                                        mml1991-signers t))
+       (if mml1991-signers
+           (setq signers (delq nil
+                               (mapcar
+                                (lambda (name)
+                                  (mml1991-epg-find-usable-secret-key
+                                   context name 'sign))
+                                mml1991-signers)))))
+      (epg-context-set-signers context signers))
+    (epg-context-set-armor context t)
+    (epg-context-set-textmode context t)
+    (if mml1991-cache-passphrase
+       (epg-context-set-passphrase-callback
+        context
+        #'mml1991-epg-passphrase-callback))
+    (condition-case error
+       (setq cipher
+             (epg-encrypt-string context (buffer-string) recipients sign)
+             mml1991-epg-secret-key-id-list nil)
+      (error
+       (while mml1991-epg-secret-key-id-list
+        (password-cache-remove (car mml1991-epg-secret-key-id-list))
+        (setq mml1991-epg-secret-key-id-list
+              (cdr mml1991-epg-secret-key-id-list)))
+       (signal (car error) (cdr error))))
     (delete-region (point-min) (point-max))
     (insert "\n" cipher))
   t)
index e2e99771801c1031904c3e039b4dd17f1bb4e3ad..10ba126ae2b177807f6d0f73ca75901e2adaaf74 100644 (file)
@@ -111,9 +111,6 @@ Valid packages include `epg', `pgg' and `mailcrypt'.")
   "If t, cache passphrase."
   :group 'mime-security
   :type 'boolean)
-(make-obsolete-variable 'mml2015-cache-passphrase
-                       'mml-secure-cache-passphrase
-                       "25.1")
 
 (defcustom mml2015-passphrase-cache-expiry mml-secure-passphrase-cache-expiry
   "How many seconds the passphrase is cached.
@@ -121,9 +118,6 @@ Whether the passphrase is cached at all is controlled by
 `mml2015-cache-passphrase'."
   :group 'mime-security
   :type 'integer)
-(make-obsolete-variable 'mml2015-passphrase-cache-expiry
-                       'mml-secure-passphrase-cache-expiry
-                       "25.1")
 
 (defcustom mml2015-signers nil
   "A list of your own key ID(s) which will be used to sign a message.
@@ -780,6 +774,99 @@ If set, it overrides the setting of `mml2015-sign-with-sender'."
 (autoload 'epg-expand-group "epg-config")
 (autoload 'epa-select-keys "epa")
 
+(defvar mml2015-epg-secret-key-id-list nil)
+
+(defun mml2015-epg-passphrase-callback (context key-id ignore)
+  (if (eq key-id 'SYM)
+      (epg-passphrase-callback-function context key-id nil)
+    (let* ((password-cache-key-id
+           (if (eq key-id 'PIN)
+               "PIN"
+              key-id))
+          entry
+          (passphrase
+           (password-read
+            (if (eq key-id 'PIN)
+                "Passphrase for PIN: "
+              (if (setq entry (assoc key-id epg-user-id-alist))
+                  (format "Passphrase for %s %s: " key-id (cdr entry))
+                (format "Passphrase for %s: " key-id)))
+            password-cache-key-id)))
+      (when passphrase
+       (let ((password-cache-expiry mml2015-passphrase-cache-expiry))
+         (password-cache-add password-cache-key-id passphrase))
+       (setq mml2015-epg-secret-key-id-list
+             (cons password-cache-key-id mml2015-epg-secret-key-id-list))
+       (copy-sequence passphrase)))))
+
+(defun mml2015-epg-check-user-id (key recipient)
+  (let ((pointer (epg-key-user-id-list key))
+       result)
+    (while pointer
+      (if (and (equal (car (mail-header-parse-address
+                           (epg-user-id-string (car pointer))))
+                     (car (mail-header-parse-address
+                           recipient)))
+              (not (memq (epg-user-id-validity (car pointer))
+                         '(revoked expired))))
+         (setq result t
+               pointer nil)
+       (setq pointer (cdr pointer))))
+    result))
+
+(defun mml2015-epg-check-sub-key (key usage)
+  (let ((pointer (epg-key-sub-key-list key))
+       result)
+    ;; The primary key will be marked as disabled, when the entire
+    ;; key is disabled (see 12 Field, Format of colon listings, in
+    ;; gnupg/doc/DETAILS)
+    (unless (memq 'disabled (epg-sub-key-capability (car pointer)))
+      (while pointer
+       (if (and (memq usage (epg-sub-key-capability (car pointer)))
+                (not (memq (epg-sub-key-validity (car pointer))
+                           '(revoked expired))))
+           (setq result t
+                 pointer nil)
+         (setq pointer (cdr pointer)))))
+    result))
+
+(defun mml2015-epg-find-usable-key (context name usage
+                                           &optional name-is-key-id)
+  (let ((keys (epg-list-keys context name))
+       key)
+    (while keys
+      (if (and (or name-is-key-id
+                  ;; Non email user-id can be supplied through
+                  ;; mml2015-signers if mml2015-encrypt-to-self is set.
+                  ;; Treat it as valid, as it is user's intention.
+                  (not (string-match "\\`<" name))
+                  (mml2015-epg-check-user-id (car keys) name))
+              (mml2015-epg-check-sub-key (car keys) usage))
+         (setq key (car keys)
+               keys nil)
+       (setq keys (cdr keys))))
+    key))
+
+;; XXX: since gpg --list-secret-keys does not return validity of each
+;; key, `mml2015-epg-find-usable-key' defined above is not enough for
+;; secret keys.  The function `mml2015-epg-find-usable-secret-key'
+;; below looks at appropriate public keys to check usability.
+(defun mml2015-epg-find-usable-secret-key (context name usage)
+  (let ((secret-keys (epg-list-keys context name t))
+       secret-key)
+    (while (and (not secret-key) secret-keys)
+      (if (mml2015-epg-find-usable-key
+          context
+          (epg-sub-key-fingerprint
+           (car (epg-key-sub-key-list
+                 (car secret-keys))))
+          usage
+          t)
+         (setq secret-key (car secret-keys)
+               secret-keys nil)
+       (setq secret-keys (cdr secret-keys))))
+    secret-key))
+
 (autoload 'gnus-create-image "gnus-ems")
 
 (defun mml2015-epg-key-image (key-id)
@@ -834,15 +921,18 @@ If set, it overrides the setting of `mml2015-sign-with-sender'."
         mm-security-handle 'gnus-info "Corrupted")
        (throw 'error handle))
       (setq context (epg-make-context))
-      (if (or mml2015-cache-passphrase mml-secure-cache-passphrase)
+      (if mml2015-cache-passphrase
          (epg-context-set-passphrase-callback
           context
-          (cons 'mml-secure-passphrase-callback 'OpenPGP)))
+          #'mml2015-epg-passphrase-callback))
       (condition-case error
          (setq plain (epg-decrypt-string context (mm-get-part child))
-               mml-secure-secret-key-id-list nil)
+               mml2015-epg-secret-key-id-list nil)
        (error
-        (mml-secure-clear-secret-key-id-list)
+        (while mml2015-epg-secret-key-id-list
+          (password-cache-remove (car mml2015-epg-secret-key-id-list))
+          (setq mml2015-epg-secret-key-id-list
+                (cdr mml2015-epg-secret-key-id-list)))
         (mm-set-handle-multipart-parameter
          mm-security-handle 'gnus-info "Failed")
         (if (eq (car error) 'quit)
@@ -878,15 +968,18 @@ If set, it overrides the setting of `mml2015-sign-with-sender'."
   (let ((inhibit-redisplay t)
        (context (epg-make-context))
        plain)
-    (if (or mml2015-cache-passphrase mml-secure-cache-passphrase)
+    (if mml2015-cache-passphrase
        (epg-context-set-passphrase-callback
         context
-        (cons 'mml-secure-passphrase-callback 'OpenPGP)))
+        #'mml2015-epg-passphrase-callback))
     (condition-case error
        (setq plain (epg-decrypt-string context (buffer-string))
-             mml-secure-secret-key-id-list nil)
+             mml2015-epg-secret-key-id-list nil)
       (error
-       (mml-secure-clear-secret-key-id-list)
+       (while mml2015-epg-secret-key-id-list
+        (password-cache-remove (car mml2015-epg-secret-key-id-list))
+        (setq mml2015-epg-secret-key-id-list
+              (cdr mml2015-epg-secret-key-id-list)))
        (mm-set-handle-multipart-parameter
        mm-security-handle 'gnus-info "Failed")
        (if (eq (car error) 'quit)
@@ -972,37 +1065,176 @@ If set, it overrides the setting of `mml2015-sign-with-sender'."
       (mml2015-extract-cleartext-signature))))
 
 (defun mml2015-epg-sign (cont)
-  (let ((inhibit-redisplay t)
-       (boundary (mml-compute-boundary cont)))
+  (let* ((inhibit-redisplay t)
+        (context (epg-make-context))
+        (boundary (mml-compute-boundary cont))
+        (sender (message-options-get 'message-sender))
+        (signer-names (or mml2015-signers
+                          (if (and mml2015-sign-with-sender sender)
+                              (list (concat "<" sender ">")))))
+        signer-key
+        (signers
+         (or (message-options-get 'mml2015-epg-signers)
+             (message-options-set
+              'mml2015-epg-signers
+              (if (eq mm-sign-option 'guided)
+                  (epa-select-keys context "\
+Select keys for signing.
+If no one is selected, default secret key is used.  "
+                                   signer-names
+                                   t)
+                (if (or sender mml2015-signers)
+                    (delq nil
+                          (mapcar
+                           (lambda (signer)
+                             (setq signer-key
+                                   (mml2015-epg-find-usable-secret-key
+                                    context signer 'sign))
+                             (unless (or signer-key
+                                         (y-or-n-p
+                                          (format
+                                           "No secret key for %s; skip it? "
+                                           signer)))
+                               (error "No secret key for %s" signer))
+                             signer-key)
+                           signer-names)))))))
+        signature micalg)
+    (epg-context-set-armor context t)
+    (epg-context-set-textmode context t)
+    (epg-context-set-signers context signers)
+    (if mml2015-cache-passphrase
+       (epg-context-set-passphrase-callback
+        context
+        #'mml2015-epg-passphrase-callback))
     ;; Signed data must end with a newline (RFC 3156, 5).
     (goto-char (point-max))
     (unless (bolp)
       (insert "\n"))
-    (let* ((pair (mml-secure-epg-sign 'OpenPGP t))
-          (signature (car pair))
-          (micalg (cdr pair)))
-      (goto-char (point-min))
-      (insert (format "Content-Type: multipart/signed; boundary=\"%s\";\n"
-                     boundary))
-      (if micalg
-         (insert (format "\tmicalg=pgp-%s; "
-                         (downcase
-                          (cdr (assq micalg
-                                     epg-digest-algorithm-alist))))))
-      (insert "protocol=\"application/pgp-signature\"\n")
-      (insert (format "\n--%s\n" boundary))
-      (goto-char (point-max))
-      (insert (format "\n--%s\n" boundary))
-      (insert "Content-Type: application/pgp-signature; name=\"signature.asc\"\n\n")
-      (insert signature)
-      (goto-char (point-max))
-      (insert (format "--%s--\n" boundary))
-      (goto-char (point-max)))))
+    (condition-case error
+       (setq signature (epg-sign-string context (buffer-string) t)
+             mml2015-epg-secret-key-id-list nil)
+      (error
+       (while mml2015-epg-secret-key-id-list
+        (password-cache-remove (car mml2015-epg-secret-key-id-list))
+        (setq mml2015-epg-secret-key-id-list
+              (cdr mml2015-epg-secret-key-id-list)))
+       (signal (car error) (cdr error))))
+    (if (epg-context-result-for context 'sign)
+       (setq micalg (epg-new-signature-digest-algorithm
+                     (car (epg-context-result-for context 'sign)))))
+    (goto-char (point-min))
+    (insert (format "Content-Type: multipart/signed; boundary=\"%s\";\n"
+                   boundary))
+    (if micalg
+       (insert (format "\tmicalg=pgp-%s; "
+                       (downcase
+                        (cdr (assq micalg
+                                   epg-digest-algorithm-alist))))))
+    (insert "protocol=\"application/pgp-signature\"\n")
+    (insert (format "\n--%s\n" boundary))
+    (goto-char (point-max))
+    (insert (format "\n--%s\n" boundary))
+    (insert "Content-Type: application/pgp-signature; name=\"signature.asc\"\n\n")
+    (insert signature)
+    (goto-char (point-max))
+    (insert (format "--%s--\n" boundary))
+    (goto-char (point-max))))
 
 (defun mml2015-epg-encrypt (cont &optional sign)
   (let* ((inhibit-redisplay t)
+        (context (epg-make-context))
         (boundary (mml-compute-boundary cont))
-        (cipher (mml-secure-epg-encrypt 'OpenPGP cont sign)))
+        (config (epg-configuration))
+        (recipients (message-options-get 'mml2015-epg-recipients))
+        cipher
+        (sender (message-options-get 'message-sender))
+        (signer-names (or mml2015-signers
+                          (if (and mml2015-sign-with-sender sender)
+                              (list (concat "<" sender ">")))))
+        signers
+        recipient-key signer-key)
+    (unless recipients
+      (setq recipients
+           (apply #'nconc
+                  (mapcar
+                   (lambda (recipient)
+                     (or (epg-expand-group config recipient)
+                         (list (concat "<" recipient ">"))))
+                   (split-string
+                    (or (message-options-get 'message-recipients)
+                        (message-options-set 'message-recipients
+                                             (read-string "Recipients: ")))
+                    "[ \f\t\n\r\v,]+"))))
+      (when mml2015-encrypt-to-self
+       (unless signer-names
+         (error "Neither message sender nor mml2015-signers are set"))
+       (setq recipients (nconc recipients signer-names)))
+      (if (eq mm-encrypt-option 'guided)
+         (setq recipients
+               (epa-select-keys context "\
+Select recipients for encryption.
+If no one is selected, symmetric encryption will be performed.  "
+                                recipients))
+       (setq recipients
+             (delq nil
+                   (mapcar
+                    (lambda (recipient)
+                      (setq recipient-key (mml2015-epg-find-usable-key
+                                           context recipient 'encrypt))
+                      (unless (or recipient-key
+                                  (y-or-n-p
+                                   (format "No public key for %s; skip it? "
+                                           recipient)))
+                        (error "No public key for %s" recipient))
+                      recipient-key)
+                    recipients)))
+       (unless recipients
+         (error "No recipient specified")))
+      (message-options-set 'mml2015-epg-recipients recipients))
+    (when sign
+      (setq signers
+           (or (message-options-get 'mml2015-epg-signers)
+               (message-options-set
+                'mml2015-epg-signers
+                (if (eq mm-sign-option 'guided)
+                    (epa-select-keys context "\
+Select keys for signing.
+If no one is selected, default secret key is used.  "
+                                     signer-names
+                                     t)
+                  (if (or sender mml2015-signers)
+                      (delq nil
+                            (mapcar
+                             (lambda (signer)
+                               (setq signer-key
+                                     (mml2015-epg-find-usable-secret-key
+                                      context signer 'sign))
+                               (unless (or signer-key
+                                           (y-or-n-p
+                                            (format
+                                             "No secret key for %s; skip it? "
+                                             signer)))
+                                 (error "No secret key for %s" signer))
+                               signer-key)
+                             signer-names)))))))
+      (epg-context-set-signers context signers))
+    (epg-context-set-armor context t)
+    (epg-context-set-textmode context t)
+    (if mml2015-cache-passphrase
+       (epg-context-set-passphrase-callback
+        context
+        #'mml2015-epg-passphrase-callback))
+    (condition-case error
+       (setq cipher
+             (epg-encrypt-string context (buffer-string) recipients sign
+                                 mml2015-always-trust)
+             mml2015-epg-secret-key-id-list nil)
+      (error
+       (while mml2015-epg-secret-key-id-list
+        (password-cache-remove (car mml2015-epg-secret-key-id-list))
+        (setq mml2015-epg-secret-key-id-list
+              (cdr mml2015-epg-secret-key-id-list)))
+       (signal (car error) (cdr error))))
     (delete-region (point-min) (point-max))
     (goto-char (point-min))
     (insert (format "Content-Type: multipart/encrypted; boundary=\"%s\";\n"
index cf54ea54d0bb9c0ada38b7de4af6791cdf6dbfd9..e12ec8aa6467f15d44316f4bb8e6016f47b1ca5e 100644 (file)
@@ -845,7 +845,7 @@ Loads the variable `hfy-rgb-txt-colour-map', which is used by
 (provide 'hfy-cmap)
 
 ;; Local Variables:
-;; generated-autoload-file: "htmlfontify.el"
+;; generated-autoload-file: "htmlfontify-loaddefs.el"
 ;; End:
 
 ;;; hfy-cmap.el ends here
index 178f3a0013379a1890ab5335a755b170a1a2f127..964d7440332f35c3102568d8da72e786bb5ff918 100644 (file)
@@ -90,6 +90,8 @@
 ;;  (`font-lock-fontify-region')
 (require 'cus-edit)
 
+(require 'htmlfontify-loaddefs)
+
 (defconst htmlfontify-version 0.21)
 
 (defconst hfy-meta-tags
@@ -2411,26 +2413,6 @@ You may also want to set `hfy-page-header' and `hfy-page-footer'."
   (let ((file (hfy-initfile)))
     (load file 'NOERROR nil nil) ))
 
-\f
-;;;### (autoloads nil "hfy-cmap" "hfy-cmap.el" "e644ddae915ddb98c9b2f16ffa5a74b2")
-;;; Generated autoloads from hfy-cmap.el
-
-(autoload 'htmlfontify-load-rgb-file "hfy-cmap" "\
-Load an X11 style rgb.txt FILE.
-Search `hfy-rgb-load-path' if FILE is not specified.
-Loads the variable `hfy-rgb-txt-colour-map', which is used by
-`hfy-fallback-colour-values'.
-
-\(fn &optional FILE)" t nil)
-
-(autoload 'hfy-fallback-colour-values "hfy-cmap" "\
-Use a fallback method for obtaining the rgb values for a color.
-
-\(fn COLOUR-STRING)" nil nil)
-
-;;;***
-\f
-
 (provide 'htmlfontify)
 
 ;;; htmlfontify.el ends here
index f5375612c342a5180c96b6dedbfc48a27747639c..1d6182596ed4f0916e4e284ab45f4aae3223dc36 100644 (file)
@@ -1598,7 +1598,7 @@ defaults to one."
 (provide 'ibuf-ext)
 
 ;; Local Variables:
-;; generated-autoload-file: "ibuffer.el"
+;; generated-autoload-file: "ibuffer-loaddefs.el"
 ;; End:
 
 ;;; ibuf-ext.el ends here
index 9d23e64cd81484be7e8fc8377ea9a5fa78211f1a..9a1f3b9a0dfb85178ee0258392a8cef1764b5315 100644 (file)
@@ -37,6 +37,7 @@
 
 (require 'font-core)
 
+(require 'ibuffer-loaddefs)
 ;; These come from ibuf-ext.el, which can not be require'd at compile time
 ;; because it has a recursive dependency on ibuffer.el
 (defvar ibuffer-auto-mode)
@@ -2611,382 +2612,6 @@ will be inserted before the group at point."
     (setq default-directory ibuffer-default-directory))
   (add-hook 'change-major-mode-hook 'font-lock-defontify nil t))
 
-\f
-;;; Start of automatically extracted autoloads.
-\f
-;;;### (autoloads nil "ibuf-ext" "ibuf-ext.el" "9521139d5f2ba7c870e3101fd73bb3ce")
-;;; Generated autoloads from ibuf-ext.el
-
-(autoload 'ibuffer-auto-mode "ibuf-ext" "\
-Toggle use of Ibuffer's auto-update facility (Ibuffer Auto mode).
-With a prefix argument ARG, enable Ibuffer Auto 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 'ibuffer-mouse-filter-by-mode "ibuf-ext" "\
-Enable or disable filtering by the major mode chosen via mouse.
-
-\(fn EVENT)" t nil)
-
-(autoload 'ibuffer-interactive-filter-by-mode "ibuf-ext" "\
-Enable or disable filtering by the major mode at point.
-
-\(fn EVENT-OR-POINT)" t nil)
-
-(autoload 'ibuffer-mouse-toggle-filter-group "ibuf-ext" "\
-Toggle the display status of the filter group chosen with the mouse.
-
-\(fn EVENT)" t nil)
-
-(autoload 'ibuffer-toggle-filter-group "ibuf-ext" "\
-Toggle the display status of the filter group on this line.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-forward-filter-group "ibuf-ext" "\
-Move point forwards by COUNT filtering groups.
-
-\(fn &optional COUNT)" t nil)
-
-(autoload 'ibuffer-backward-filter-group "ibuf-ext" "\
-Move point backwards by COUNT filtering groups.
-
-\(fn &optional COUNT)" t nil)
- (autoload 'ibuffer-do-shell-command-pipe "ibuf-ext")
- (autoload 'ibuffer-do-shell-command-pipe-replace "ibuf-ext")
- (autoload 'ibuffer-do-shell-command-file "ibuf-ext")
- (autoload 'ibuffer-do-eval "ibuf-ext")
- (autoload 'ibuffer-do-view-and-eval "ibuf-ext")
- (autoload 'ibuffer-do-rename-uniquely "ibuf-ext")
- (autoload 'ibuffer-do-revert "ibuf-ext")
- (autoload 'ibuffer-do-isearch "ibuf-ext")
- (autoload 'ibuffer-do-isearch-regexp "ibuf-ext")
- (autoload 'ibuffer-do-replace-regexp "ibuf-ext")
- (autoload 'ibuffer-do-query-replace "ibuf-ext")
- (autoload 'ibuffer-do-query-replace-regexp "ibuf-ext")
- (autoload 'ibuffer-do-print "ibuf-ext")
-
-(autoload 'ibuffer-included-in-filters-p "ibuf-ext" "\
-
-
-\(fn BUF FILTERS)" nil nil)
-
-(autoload 'ibuffer-filters-to-filter-group "ibuf-ext" "\
-Make the current filters into a filtering group.
-
-\(fn NAME)" t nil)
-
-(autoload 'ibuffer-set-filter-groups-by-mode "ibuf-ext" "\
-Set the current filter groups to filter by mode.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-pop-filter-group "ibuf-ext" "\
-Remove the first filter group.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-decompose-filter-group "ibuf-ext" "\
-Decompose the filter group GROUP into active filters.
-
-\(fn GROUP)" t nil)
-
-(autoload 'ibuffer-clear-filter-groups "ibuf-ext" "\
-Remove all filter groups.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-jump-to-filter-group "ibuf-ext" "\
-Move point to the filter group whose name is NAME.
-
-\(fn NAME)" t nil)
-
-(autoload 'ibuffer-kill-filter-group "ibuf-ext" "\
-Kill the filter group named NAME.
-The group will be added to `ibuffer-filter-group-kill-ring'.
-
-\(fn NAME)" t nil)
-
-(autoload 'ibuffer-kill-line "ibuf-ext" "\
-Kill the filter group at point.
-See also `ibuffer-kill-filter-group'.
-
-\(fn &optional ARG INTERACTIVE-P)" t nil)
-
-(autoload 'ibuffer-yank "ibuf-ext" "\
-Yank the last killed filter group before group at point.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-yank-filter-group "ibuf-ext" "\
-Yank the last killed filter group before group named NAME.
-
-\(fn NAME)" t nil)
-
-(autoload 'ibuffer-save-filter-groups "ibuf-ext" "\
-Save all active filter groups GROUPS as NAME.
-They are added to `ibuffer-saved-filter-groups'.  Interactively,
-prompt for NAME, and use the current filters.
-
-\(fn NAME GROUPS)" t nil)
-
-(autoload 'ibuffer-delete-saved-filter-groups "ibuf-ext" "\
-Delete saved filter groups with NAME.
-They are removed from `ibuffer-saved-filter-groups'.
-
-\(fn NAME)" t nil)
-
-(autoload 'ibuffer-switch-to-saved-filter-groups "ibuf-ext" "\
-Set this buffer's filter groups to saved version with NAME.
-The value from `ibuffer-saved-filter-groups' is used.
-
-\(fn NAME)" t nil)
-
-(autoload 'ibuffer-filter-disable "ibuf-ext" "\
-Disable all filters currently in effect in this buffer.
-With optional arg DELETE-FILTER-GROUPS non-nil, delete all filter
-group definitions by setting `ibuffer-filter-groups' to nil.
-
-\(fn &optional DELETE-FILTER-GROUPS)" t nil)
-
-(autoload 'ibuffer-pop-filter "ibuf-ext" "\
-Remove the top filter in this buffer.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-decompose-filter "ibuf-ext" "\
-Separate the top compound filter (OR, NOT, or SAVED) in this buffer.
-
-This means that the topmost filter on the filtering stack, which must
-be a complex filter like (OR [name: foo] [mode: bar-mode]), will be
-turned into two separate filters [name: foo] and [mode: bar-mode].
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-exchange-filters "ibuf-ext" "\
-Exchange the top two filters on the stack in this buffer.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-negate-filter "ibuf-ext" "\
-Negate the sense of the top filter in the current buffer.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-or-filter "ibuf-ext" "\
-Replace the top two filters in this buffer with their logical OR.
-If optional argument REVERSE is non-nil, instead break the top OR
-filter into parts.
-
-\(fn &optional REVERSE)" t nil)
-
-(autoload 'ibuffer-save-filters "ibuf-ext" "\
-Save FILTERS in this buffer with name NAME in `ibuffer-saved-filters'.
-Interactively, prompt for NAME, and use the current filters.
-
-\(fn NAME FILTERS)" t nil)
-
-(autoload 'ibuffer-delete-saved-filters "ibuf-ext" "\
-Delete saved filters with NAME from `ibuffer-saved-filters'.
-
-\(fn NAME)" t nil)
-
-(autoload 'ibuffer-add-saved-filters "ibuf-ext" "\
-Add saved filters from `ibuffer-saved-filters' to this buffer's filters.
-
-\(fn NAME)" t nil)
-
-(autoload 'ibuffer-switch-to-saved-filters "ibuf-ext" "\
-Set this buffer's filters to filters with NAME from `ibuffer-saved-filters'.
-
-\(fn NAME)" t nil)
- (autoload 'ibuffer-filter-by-mode "ibuf-ext")
- (autoload 'ibuffer-filter-by-used-mode "ibuf-ext")
- (autoload 'ibuffer-filter-by-derived-mode "ibuf-ext")
- (autoload 'ibuffer-filter-by-name "ibuf-ext")
- (autoload 'ibuffer-filter-by-filename "ibuf-ext")
- (autoload 'ibuffer-filter-by-size-gt  "ibuf-ext")
- (autoload 'ibuffer-filter-by-size-lt  "ibuf-ext")
- (autoload 'ibuffer-filter-by-content "ibuf-ext")
- (autoload 'ibuffer-filter-by-predicate "ibuf-ext")
-
-(autoload 'ibuffer-toggle-sorting-mode "ibuf-ext" "\
-Toggle the current sorting mode.
-Default sorting modes are:
- Recency - the last time the buffer was viewed
- Name - the name of the buffer
- Major Mode - the name of the major mode of the buffer
- Size - the size of the buffer
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-invert-sorting "ibuf-ext" "\
-Toggle whether or not sorting is in reverse order.
-
-\(fn)" t nil)
- (autoload 'ibuffer-do-sort-by-major-mode "ibuf-ext")
- (autoload 'ibuffer-do-sort-by-mode-name "ibuf-ext")
- (autoload 'ibuffer-do-sort-by-alphabetic "ibuf-ext")
- (autoload 'ibuffer-do-sort-by-size "ibuf-ext")
- (autoload 'ibuffer-do-sort-by-filename/process "ibuf-ext")
-
-(autoload 'ibuffer-bs-show "ibuf-ext" "\
-Emulate `bs-show' from the bs.el package.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-add-to-tmp-hide "ibuf-ext" "\
-Add REGEXP to `ibuffer-tmp-hide-regexps'.
-This means that buffers whose name matches REGEXP will not be shown
-for this Ibuffer session.
-
-\(fn REGEXP)" t nil)
-
-(autoload 'ibuffer-add-to-tmp-show "ibuf-ext" "\
-Add REGEXP to `ibuffer-tmp-show-regexps'.
-This means that buffers whose name matches REGEXP will always be shown
-for this Ibuffer session.
-
-\(fn REGEXP)" t nil)
-
-(autoload 'ibuffer-forward-next-marked "ibuf-ext" "\
-Move forward by COUNT marked buffers (default 1).
-
-If MARK is non-nil, it should be a character denoting the type of mark
-to move by.  The default is `ibuffer-marked-char'.
-
-If DIRECTION is non-nil, it should be an integer; negative integers
-mean move backwards, non-negative integers mean move forwards.
-
-\(fn &optional COUNT MARK DIRECTION)" t nil)
-
-(autoload 'ibuffer-backwards-next-marked "ibuf-ext" "\
-Move backwards by COUNT marked buffers (default 1).
-
-If MARK is non-nil, it should be a character denoting the type of mark
-to move by.  The default is `ibuffer-marked-char'.
-
-\(fn &optional COUNT MARK)" t nil)
-
-(autoload 'ibuffer-do-kill-lines "ibuf-ext" "\
-Hide all of the currently marked lines.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-jump-to-buffer "ibuf-ext" "\
-Move point to the buffer whose name is NAME.
-
-If called interactively, prompt for a buffer name and go to the
-corresponding line in the Ibuffer buffer.  If said buffer is in a
-hidden group filter, open it.
-
-If `ibuffer-jump-offer-only-visible-buffers' is non-nil, only offer
-visible buffers in the completion list.  Calling the command with
-a prefix argument reverses the meaning of that variable.
-
-\(fn NAME)" t nil)
-
-(autoload 'ibuffer-diff-with-file "ibuf-ext" "\
-View the differences between marked buffers and their associated files.
-If no buffers are marked, use buffer at point.
-This requires the external program \"diff\" to be in your `exec-path'.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-copy-filename-as-kill "ibuf-ext" "\
-Copy filenames of marked buffers into the kill ring.
-
-The names are separated by a space.
-If a buffer has no filename, it is ignored.
-
-With no prefix arg, use the filename sans its directory of each marked file.
-With a zero prefix arg, use the complete filename of each marked file.
-With \\[universal-argument], use the filename of each marked file relative
-to `ibuffer-default-directory' if non-nil, otherwise `default-directory'.
-
-You can then feed the file name(s) to other commands with \\[yank].
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'ibuffer-mark-by-name-regexp "ibuf-ext" "\
-Mark all buffers whose name matches REGEXP.
-
-\(fn REGEXP)" t nil)
-
-(autoload 'ibuffer-mark-by-mode-regexp "ibuf-ext" "\
-Mark all buffers whose major mode matches REGEXP.
-
-\(fn REGEXP)" t nil)
-
-(autoload 'ibuffer-mark-by-file-name-regexp "ibuf-ext" "\
-Mark all buffers whose file name matches REGEXP.
-
-\(fn REGEXP)" t nil)
-
-(autoload 'ibuffer-mark-by-mode "ibuf-ext" "\
-Mark all buffers whose major mode equals MODE.
-
-\(fn MODE)" t nil)
-
-(autoload 'ibuffer-mark-modified-buffers "ibuf-ext" "\
-Mark all modified buffers.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-mark-unsaved-buffers "ibuf-ext" "\
-Mark all modified buffers that have an associated file.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-mark-dissociated-buffers "ibuf-ext" "\
-Mark all buffers whose associated file does not exist.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-mark-help-buffers "ibuf-ext" "\
-Mark buffers whose major mode is in variable `ibuffer-help-buffer-modes'.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-mark-compressed-file-buffers "ibuf-ext" "\
-Mark buffers whose associated file is compressed.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-mark-old-buffers "ibuf-ext" "\
-Mark buffers which have not been viewed in `ibuffer-old-time' hours.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-mark-special-buffers "ibuf-ext" "\
-Mark all buffers whose name begins and ends with `*'.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-mark-read-only-buffers "ibuf-ext" "\
-Mark all read-only buffers.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-mark-dired-buffers "ibuf-ext" "\
-Mark all `dired' buffers.
-
-\(fn)" t nil)
-
-(autoload 'ibuffer-do-occur "ibuf-ext" "\
-View lines which match REGEXP in all marked buffers.
-Optional argument NLINES says how many lines of context to display: it
-defaults to one.
-
-\(fn REGEXP &optional NLINES)" t nil)
-
-;;;***
-\f
-;;; End of automatically extracted autoloads.
-
-
 (provide 'ibuffer)
 
 (run-hooks 'ibuffer-load-hook)
index 498f01dd84e33c6f7968bc3a5b2b699c99db2f66..ae8cc95c9683fb3bb15d6321e613041c0793bd2d 100644 (file)
@@ -216,24 +216,26 @@ Bidirectional editing is supported.")))
          (setq idx 1 nglyphs nchars))
        ;; Now IDX is an index to the first non-precomposed glyph.
        ;; Adjust positions of the remaining glyphs artificially.
-       (setq base-width (lglyph-width (lgstring-glyph gstring 0)))
-       (while (< idx nglyphs)
-         (setq glyph (lgstring-glyph gstring idx))
-         (lglyph-set-from-to glyph 0 (1- nchars))
-         (if (>= (lglyph-lbearing glyph) (lglyph-width glyph))
-             ;; It seems that this glyph is designed to be rendered
-             ;; before the base glyph.
-             (lglyph-set-adjustment glyph (- base-width) 0 0)
-           (if (>= (lglyph-lbearing glyph) 0)
-               ;; Align the horizontal center of this glyph to the
-               ;; horizontal center of the base glyph.
-               (let ((width (- (lglyph-rbearing glyph)
-                               (lglyph-lbearing glyph))))
-                 (lglyph-set-adjustment glyph
-                                        (- (/ (- base-width width) 2)
-                                           (lglyph-lbearing glyph)
-                                           base-width) 0 0))))
-         (setq idx (1+ idx))))))
+        (if (font-get font :combining-capability)
+            (font-shape-gstring gstring)
+          (setq base-width (lglyph-width (lgstring-glyph gstring 0)))
+          (while (< idx nglyphs)
+            (setq glyph (lgstring-glyph gstring idx))
+            (lglyph-set-from-to glyph 0 (1- nchars))
+            (if (>= (lglyph-lbearing glyph) (lglyph-width glyph))
+                ;; It seems that this glyph is designed to be rendered
+                ;; before the base glyph.
+                (lglyph-set-adjustment glyph (- base-width) 0 0)
+              (if (>= (lglyph-lbearing glyph) 0)
+                  ;; Align the horizontal center of this glyph to the
+                  ;; horizontal center of the base glyph.
+                  (let ((width (- (lglyph-rbearing glyph)
+                                  (lglyph-lbearing glyph))))
+                    (lglyph-set-adjustment glyph
+                                           (- (/ (- base-width width) 2)
+                                              (lglyph-lbearing glyph)
+                                              base-width) 0 0))))
+            (setq idx (1+ idx)))))))
     gstring))
 
 (let* ((base "[\u05D0-\u05F2]")
index 311b698deb717d71e923d604f7257707182022ab..f0c65fa032bdf772ed1f4782ef36ecad42c11e7b 100644 (file)
@@ -3,7 +3,7 @@
 ;;; Code:
 
 \f
-;;;### (autoloads nil "5x5" "play/5x5.el" (22150 28228 674072 702000))
+;;;### (autoloads nil "5x5" "play/5x5.el" (22086 11930 122062 731000))
 ;;; Generated autoloads from play/5x5.el
 
 (autoload '5x5 "5x5" "\
@@ -65,8 +65,8 @@ should return a grid vector array that is the new solution.
 
 ;;;***
 \f
-;;;### (autoloads nil "ada-mode" "progmodes/ada-mode.el" (22150 28228
-;;;;;;  750072 702000))
+;;;### (autoloads nil "ada-mode" "progmodes/ada-mode.el" (22086 11930
+;;;;;;  138062 731000))
 ;;; Generated autoloads from progmodes/ada-mode.el
 
 (autoload 'ada-add-extensions "ada-mode" "\
@@ -85,8 +85,8 @@ Ada mode is the major mode for editing Ada code.
 
 ;;;***
 \f
-;;;### (autoloads nil "ada-stmt" "progmodes/ada-stmt.el" (22150 28228
-;;;;;;  750072 702000))
+;;;### (autoloads nil "ada-stmt" "progmodes/ada-stmt.el" (22086 11930
+;;;;;;  138062 731000))
 ;;; Generated autoloads from progmodes/ada-stmt.el
 
 (autoload 'ada-header "ada-stmt" "\
@@ -96,8 +96,8 @@ Insert a descriptive header at the top of the file.
 
 ;;;***
 \f
-;;;### (autoloads nil "ada-xref" "progmodes/ada-xref.el" (22150 28228
-;;;;;;  754072 702000))
+;;;### (autoloads nil "ada-xref" "progmodes/ada-xref.el" (22086 11930
+;;;;;;  138062 731000))
 ;;; Generated autoloads from progmodes/ada-xref.el
 
 (autoload 'ada-find-file "ada-xref" "\
@@ -108,8 +108,8 @@ Completion is available.
 
 ;;;***
 \f
-;;;### (autoloads nil "add-log" "vc/add-log.el" (22150 28229 246072
-;;;;;;  702000))
+;;;### (autoloads nil "add-log" "vc/add-log.el" (22086 11930 366062
+;;;;;;  731000))
 ;;; Generated autoloads from vc/add-log.el
 
 (put 'change-log-default-name 'safe-local-variable 'string-or-null-p)
@@ -238,8 +238,8 @@ old-style time formats for entries are supported.
 
 ;;;***
 \f
-;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (22150 28227
-;;;;;;  338072 702000))
+;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (22092 27717
+;;;;;;  604268 464000))
 ;;; Generated autoloads from emacs-lisp/advice.el
 
 (defvar ad-redefinition-action 'warn "\
@@ -374,7 +374,7 @@ usage: (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...)
 
 ;;;***
 \f
-;;;### (autoloads nil "align" "align.el" (22150 28226 938072 702000))
+;;;### (autoloads nil "align" "align.el" (22086 11929 490062 731000))
 ;;; Generated autoloads from align.el
 
 (autoload 'align "align" "\
@@ -477,7 +477,7 @@ A replacement function for `newline-and-indent', aligning as it goes.
 
 ;;;***
 \f
-;;;### (autoloads nil "allout" "allout.el" (22150 28226 942072 702000))
+;;;### (autoloads nil "allout" "allout.el" (22086 11929 494062 731000))
 ;;; Generated autoloads from allout.el
 (push (purecopy '(allout 2 3)) package--builtin-versions)
 
@@ -837,8 +837,8 @@ for details on preparing Emacs for automatic allout activation.
 
 ;;;***
 \f
-;;;### (autoloads nil "allout-widgets" "allout-widgets.el" (22150
-;;;;;;  28226 938072 702000))
+;;;### (autoloads nil "allout-widgets" "allout-widgets.el" (22086
+;;;;;;  11929 490062 731000))
 ;;; Generated autoloads from allout-widgets.el
 (push (purecopy '(allout-widgets 1 0)) package--builtin-versions)
 
@@ -896,8 +896,8 @@ outline hot-spot navigation (see `allout-mode').
 
 ;;;***
 \f
-;;;### (autoloads nil "ange-ftp" "net/ange-ftp.el" (22150 28228 350072
-;;;;;;  702000))
+;;;### (autoloads nil "ange-ftp" "net/ange-ftp.el" (22092 27717 960268
+;;;;;;  464000))
 ;;; Generated autoloads from net/ange-ftp.el
 
 (defalias 'ange-ftp-re-read-dir 'ange-ftp-reread-dir)
@@ -918,8 +918,8 @@ directory, so that Emacs will know its current contents.
 
 ;;;***
 \f
-;;;### (autoloads nil "animate" "play/animate.el" (22150 28228 674072
-;;;;;;  702000))
+;;;### (autoloads nil "animate" "play/animate.el" (22086 11930 122062
+;;;;;;  731000))
 ;;; Generated autoloads from play/animate.el
 
 (autoload 'animate-string "animate" "\
@@ -951,8 +951,8 @@ the buffer *Birthday-Present-for-Name*.
 
 ;;;***
 \f
-;;;### (autoloads nil "ansi-color" "ansi-color.el" (22150 28226 942072
-;;;;;;  702000))
+;;;### (autoloads nil "ansi-color" "ansi-color.el" (22086 11929 494062
+;;;;;;  731000))
 ;;; Generated autoloads from ansi-color.el
 (push (purecopy '(ansi-color 3 4 2)) package--builtin-versions)
 
@@ -978,8 +978,8 @@ This is a good function to put in `comint-output-filter-functions'.
 
 ;;;***
 \f
-;;;### (autoloads nil "antlr-mode" "progmodes/antlr-mode.el" (22150
-;;;;;;  28228 754072 702000))
+;;;### (autoloads nil "antlr-mode" "progmodes/antlr-mode.el" (22086
+;;;;;;  11930 138062 731000))
 ;;; Generated autoloads from progmodes/antlr-mode.el
 (push (purecopy '(antlr-mode 2 2 3)) package--builtin-versions)
 
@@ -1015,8 +1015,8 @@ Used in `antlr-mode'.  Also a useful function in `java-mode-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "appt" "calendar/appt.el" (22150 28227 46072
-;;;;;;  702000))
+;;;### (autoloads nil "appt" "calendar/appt.el" (22086 11929 526062
+;;;;;;  731000))
 ;;; Generated autoloads from calendar/appt.el
 
 (autoload 'appt-add "appt" "\
@@ -1037,8 +1037,8 @@ ARG is positive, otherwise off.
 
 ;;;***
 \f
-;;;### (autoloads nil "apropos" "apropos.el" (22150 28226 942072
-;;;;;;  702000))
+;;;### (autoloads nil "apropos" "apropos.el" (22099 26170 362017
+;;;;;;  16000))
 ;;; Generated autoloads from apropos.el
 
 (autoload 'apropos-read-pattern "apropos" "\
@@ -1153,8 +1153,8 @@ Returns list of symbols and documentation found.
 
 ;;;***
 \f
-;;;### (autoloads nil "arc-mode" "arc-mode.el" (22150 28226 946072
-;;;;;;  702000))
+;;;### (autoloads nil "arc-mode" "arc-mode.el" (22086 11929 494062
+;;;;;;  731000))
 ;;; Generated autoloads from arc-mode.el
 
 (autoload 'archive-mode "arc-mode" "\
@@ -1174,7 +1174,7 @@ archive.
 
 ;;;***
 \f
-;;;### (autoloads nil "array" "array.el" (22150 28226 946072 702000))
+;;;### (autoloads nil "array" "array.el" (22086 11929 494062 731000))
 ;;; Generated autoloads from array.el
 
 (autoload 'array-mode "array" "\
@@ -1245,8 +1245,8 @@ Entering array mode calls the function `array-mode-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "artist" "textmodes/artist.el" (22150 28229
-;;;;;;  86072 702000))
+;;;### (autoloads nil "artist" "textmodes/artist.el" (22086 11930
+;;;;;;  310062 731000))
 ;;; Generated autoloads from textmodes/artist.el
 (push (purecopy '(artist 1 2 6)) package--builtin-versions)
 
@@ -1452,8 +1452,8 @@ Keymap summary
 
 ;;;***
 \f
-;;;### (autoloads nil "asm-mode" "progmodes/asm-mode.el" (22150 28228
-;;;;;;  758072 702000))
+;;;### (autoloads nil "asm-mode" "progmodes/asm-mode.el" (22086 11930
+;;;;;;  142062 731000))
 ;;; Generated autoloads from progmodes/asm-mode.el
 
 (autoload 'asm-mode "asm-mode" "\
@@ -1480,8 +1480,8 @@ Special commands:
 
 ;;;***
 \f
-;;;### (autoloads nil "auth-source" "gnus/auth-source.el" (22150
-;;;;;;  28227 658072 702000))
+;;;### (autoloads nil "auth-source" "gnus/auth-source.el" (22086
+;;;;;;  11929 774062 731000))
 ;;; Generated autoloads from gnus/auth-source.el
 
 (defvar auth-source-cache-expiry 7200 "\
@@ -1493,8 +1493,8 @@ let-binding.")
 
 ;;;***
 \f
-;;;### (autoloads nil "autoarg" "autoarg.el" (22150 28226 946072
-;;;;;;  702000))
+;;;### (autoloads nil "autoarg" "autoarg.el" (22086 11929 494062
+;;;;;;  731000))
 ;;; Generated autoloads from autoarg.el
 
 (defvar autoarg-mode nil "\
@@ -1554,8 +1554,8 @@ This is similar to `autoarg-mode' but rebinds the keypad keys
 
 ;;;***
 \f
-;;;### (autoloads nil "autoconf" "progmodes/autoconf.el" (22150 28228
-;;;;;;  758072 702000))
+;;;### (autoloads nil "autoconf" "progmodes/autoconf.el" (22086 11930
+;;;;;;  142062 731000))
 ;;; Generated autoloads from progmodes/autoconf.el
 
 (autoload 'autoconf-mode "autoconf" "\
@@ -1565,8 +1565,8 @@ Major mode for editing Autoconf configure.ac files.
 
 ;;;***
 \f
-;;;### (autoloads nil "autoinsert" "autoinsert.el" (22150 28226 946072
-;;;;;;  702000))
+;;;### (autoloads nil "autoinsert" "autoinsert.el" (22086 11929 494062
+;;;;;;  731000))
 ;;; Generated autoloads from autoinsert.el
 
 (autoload 'auto-insert "autoinsert" "\
@@ -1604,8 +1604,8 @@ insert a template for the file depending on the mode of the buffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "autoload" "emacs-lisp/autoload.el" (22150
-;;;;;;  28227 338072 702000))
+;;;### (autoloads nil "autoload" "emacs-lisp/autoload.el" (22086
+;;;;;;  11929 634062 731000))
 ;;; Generated autoloads from emacs-lisp/autoload.el
 
 (put 'generated-autoload-file 'safe-local-variable 'stringp)
@@ -1656,8 +1656,8 @@ should be non-nil).
 
 ;;;***
 \f
-;;;### (autoloads nil "autorevert" "autorevert.el" (22150 28226 946072
-;;;;;;  702000))
+;;;### (autoloads nil "autorevert" "autorevert.el" (22089 51528 204929
+;;;;;;  316000))
 ;;; Generated autoloads from autorevert.el
 
 (autoload 'auto-revert-mode "autorevert" "\
@@ -1745,7 +1745,7 @@ specifies in the mode line.
 
 ;;;***
 \f
-;;;### (autoloads nil "avoid" "avoid.el" (22150 28226 946072 702000))
+;;;### (autoloads nil "avoid" "avoid.el" (22086 11929 498062 731000))
 ;;; Generated autoloads from avoid.el
 
 (defvar mouse-avoidance-mode nil "\
@@ -1783,8 +1783,8 @@ definition of \"random distance\".)
 
 ;;;***
 \f
-;;;### (autoloads nil "bat-mode" "progmodes/bat-mode.el" (22150 28228
-;;;;;;  758072 702000))
+;;;### (autoloads nil "bat-mode" "progmodes/bat-mode.el" (22086 11930
+;;;;;;  142062 731000))
 ;;; Generated autoloads from progmodes/bat-mode.el
 
 (add-to-list 'auto-mode-alist '("\\.\\(bat\\|cmd\\)\\'" . bat-mode))
@@ -1802,8 +1802,8 @@ Run script using `bat-run' and `bat-run-args'.
 
 ;;;***
 \f
-;;;### (autoloads nil "battery" "battery.el" (22150 28226 946072
-;;;;;;  702000))
+;;;### (autoloads nil "battery" "battery.el" (22086 11929 498062
+;;;;;;  731000))
 ;;; Generated autoloads from battery.el
  (put 'battery-mode-line-string 'risky-local-variable t)
 
@@ -1838,8 +1838,8 @@ seconds.
 
 ;;;***
 \f
-;;;### (autoloads nil "benchmark" "emacs-lisp/benchmark.el" (22150
-;;;;;;  28227 338072 702000))
+;;;### (autoloads nil "benchmark" "emacs-lisp/benchmark.el" (22086
+;;;;;;  11929 638062 731000))
 ;;; Generated autoloads from emacs-lisp/benchmark.el
 
 (autoload 'benchmark-run "benchmark" "\
@@ -1875,8 +1875,8 @@ For non-interactive use see also `benchmark-run' and
 
 ;;;***
 \f
-;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (22150 28229
-;;;;;;  94072 702000))
+;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (22092 27718
+;;;;;;  508268 464000))
 ;;; Generated autoloads from textmodes/bibtex.el
 
 (autoload 'bibtex-initialize "bibtex" "\
@@ -1968,7 +1968,7 @@ A prefix arg negates the value of `bibtex-search-entry-globally'.
 ;;;***
 \f
 ;;;### (autoloads nil "bibtex-style" "textmodes/bibtex-style.el"
-;;;;;;  (22150 28229 86072 702000))
+;;;;;;  (22086 11930 310062 731000))
 ;;; Generated autoloads from textmodes/bibtex-style.el
 
 (autoload 'bibtex-style-mode "bibtex-style" "\
@@ -1978,8 +1978,8 @@ Major mode for editing BibTeX style files.
 
 ;;;***
 \f
-;;;### (autoloads nil "binhex" "mail/binhex.el" (22150 28228 226072
-;;;;;;  702000))
+;;;### (autoloads nil "binhex" "mail/binhex.el" (22086 11929 930062
+;;;;;;  731000))
 ;;; Generated autoloads from mail/binhex.el
 
 (defconst binhex-begin-line "^:...............................................................$" "\
@@ -2003,8 +2003,8 @@ Binhex decode region between START and END.
 
 ;;;***
 \f
-;;;### (autoloads nil "blackbox" "play/blackbox.el" (22150 28228
-;;;;;;  674072 702000))
+;;;### (autoloads nil "blackbox" "play/blackbox.el" (22086 11930
+;;;;;;  122062 731000))
 ;;; Generated autoloads from play/blackbox.el
 
 (autoload 'blackbox "blackbox" "\
@@ -2123,8 +2123,8 @@ a reflection.
 
 ;;;***
 \f
-;;;### (autoloads nil "bookmark" "bookmark.el" (22150 28226 950072
-;;;;;;  702000))
+;;;### (autoloads nil "bookmark" "bookmark.el" (22086 11929 498062
+;;;;;;  731000))
 ;;; Generated autoloads from bookmark.el
  (define-key ctl-x-r-map "b" 'bookmark-jump)
  (define-key ctl-x-r-map "m" 'bookmark-set)
@@ -2348,8 +2348,8 @@ Incremental search of bookmarks, hiding the non-matches as we go.
 
 ;;;***
 \f
-;;;### (autoloads nil "browse-url" "net/browse-url.el" (22150 28228
-;;;;;;  350072 702000))
+;;;### (autoloads nil "browse-url" "net/browse-url.el" (22086 11929
+;;;;;;  990062 731000))
 ;;; Generated autoloads from net/browse-url.el
 
 (defvar browse-url-browser-function 'browse-url-default-browser "\
@@ -2395,17 +2395,12 @@ Ask a WWW browser to display the current region.
 (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'
+The variable `browse-url-browser-function' says which browser 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.
+Passes any ARGS to the browser function.
+The default is to pass `browse-url-new-window-flag'.
 
 \(fn URL &rest ARGS)" t nil)
 
@@ -2495,7 +2490,6 @@ 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)
 
@@ -2630,7 +2624,6 @@ 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)
 
@@ -2679,7 +2672,6 @@ don't offer a form of remote control.
 (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)
 
@@ -2697,7 +2689,7 @@ from `browse-url-elinks-wrapper'.
 
 ;;;***
 \f
-;;;### (autoloads nil "bs" "bs.el" (22150 28226 950072 702000))
+;;;### (autoloads nil "bs" "bs.el" (22086 11929 498062 731000))
 ;;; Generated autoloads from bs.el
 (push (purecopy '(bs 1 17)) package--builtin-versions)
 
@@ -2738,8 +2730,8 @@ name of buffer configuration.
 
 ;;;***
 \f
-;;;### (autoloads nil "bubbles" "play/bubbles.el" (22150 28228 674072
-;;;;;;  702000))
+;;;### (autoloads nil "bubbles" "play/bubbles.el" (22086 11930 122062
+;;;;;;  731000))
 ;;; Generated autoloads from play/bubbles.el
 
 (autoload 'bubbles "bubbles" "\
@@ -2761,7 +2753,7 @@ columns on its right towards the left.
 ;;;***
 \f
 ;;;### (autoloads nil "bug-reference" "progmodes/bug-reference.el"
-;;;;;;  (22150 28228 758072 702000))
+;;;;;;  (22086 11930 142062 731000))
 ;;; 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)))))
@@ -2781,8 +2773,8 @@ Like `bug-reference-mode', but only buttonize in comments and strings.
 
 ;;;***
 \f
-;;;### (autoloads nil "bytecomp" "emacs-lisp/bytecomp.el" (22150
-;;;;;;  28227 358072 702000))
+;;;### (autoloads nil "bytecomp" "emacs-lisp/bytecomp.el" (22108
+;;;;;;  15942 526032 987000))
 ;;; 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)
@@ -2902,8 +2894,8 @@ and corresponding effects.
 
 ;;;***
 \f
-;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (22150
-;;;;;;  28227 46072 702000))
+;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (22086
+;;;;;;  11929 526062 731000))
 ;;; Generated autoloads from calendar/cal-china.el
 
 (put 'calendar-chinese-time-zone 'risky-local-variable t)
@@ -2912,8 +2904,8 @@ and corresponding effects.
 
 ;;;***
 \f
-;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (22150 28227
-;;;;;;  50072 702000))
+;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (22086 11929
+;;;;;;  526062 731000))
 ;;; Generated autoloads from calendar/cal-dst.el
 
 (put 'calendar-daylight-savings-starts 'risky-local-variable t)
@@ -2924,8 +2916,8 @@ and corresponding effects.
 
 ;;;***
 \f
-;;;### (autoloads nil "cal-hebrew" "calendar/cal-hebrew.el" (22150
-;;;;;;  28227 50072 702000))
+;;;### (autoloads nil "cal-hebrew" "calendar/cal-hebrew.el" (22086
+;;;;;;  11929 526062 731000))
 ;;; Generated autoloads from calendar/cal-hebrew.el
 
 (autoload 'calendar-hebrew-list-yahrzeits "cal-hebrew" "\
@@ -2937,7 +2929,7 @@ from the cursor position.
 
 ;;;***
 \f
-;;;### (autoloads nil "calc" "calc/calc.el" (22150 28227 26072 702000))
+;;;### (autoloads nil "calc" "calc/calc.el" (22086 11929 522062 731000))
 ;;; Generated autoloads from calc/calc.el
  (define-key ctl-x-map "*" 'calc-dispatch)
 
@@ -3023,8 +3015,8 @@ See Info node `(calc)Defining Functions'.
 
 ;;;***
 \f
-;;;### (autoloads nil "calc-undo" "calc/calc-undo.el" (22150 28227
-;;;;;;  22072 702000))
+;;;### (autoloads nil "calc-undo" "calc/calc-undo.el" (22086 11929
+;;;;;;  518062 731000))
 ;;; Generated autoloads from calc/calc-undo.el
 
 (autoload 'calc-undo "calc-undo" "\
@@ -3034,8 +3026,8 @@ See Info node `(calc)Defining Functions'.
 
 ;;;***
 \f
-;;;### (autoloads nil "calculator" "calculator.el" (22150 28227 46072
-;;;;;;  702000))
+;;;### (autoloads nil "calculator" "calculator.el" (22092 27717 520268
+;;;;;;  464000))
 ;;; Generated autoloads from calculator.el
 
 (autoload 'calculator "calculator" "\
@@ -3046,8 +3038,8 @@ See the documentation for `calculator-mode' for more information.
 
 ;;;***
 \f
-;;;### (autoloads nil "calendar" "calendar/calendar.el" (22150 28227
-;;;;;;  62072 702000))
+;;;### (autoloads nil "calendar" "calendar/calendar.el" (22092 27717
+;;;;;;  540268 464000))
 ;;; Generated autoloads from calendar/calendar.el
 
 (autoload 'calendar "calendar" "\
@@ -3090,8 +3082,8 @@ This function is suitable for execution in an init file.
 
 ;;;***
 \f
-;;;### (autoloads nil "canlock" "gnus/canlock.el" (22150 28227 658072
-;;;;;;  702000))
+;;;### (autoloads nil "canlock" "gnus/canlock.el" (22086 11929 774062
+;;;;;;  731000))
 ;;; Generated autoloads from gnus/canlock.el
 
 (autoload 'canlock-insert-header "canlock" "\
@@ -3108,8 +3100,8 @@ it fails.
 
 ;;;***
 \f
-;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (22150
-;;;;;;  28228 786072 702000))
+;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (22108
+;;;;;;  15942 570032 987000))
 ;;; Generated autoloads from progmodes/cc-engine.el
 
 (autoload 'c-guess-basic-syntax "cc-engine" "\
@@ -3119,8 +3111,8 @@ Return the syntactic context of the current line.
 
 ;;;***
 \f
-;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (22150 28228
-;;;;;;  790072 702000))
+;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (22086 11930
+;;;;;;  150062 731000))
 ;;; Generated autoloads from progmodes/cc-guess.el
 
 (defvar c-guess-guessed-offsets-alist nil "\
@@ -3218,8 +3210,8 @@ the absolute file name of the file if STYLE-NAME is nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (22150 28228
-;;;;;;  798072 702000))
+;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (22101 42694
+;;;;;;  157526 804000))
 ;;; Generated autoloads from progmodes/cc-mode.el
 
 (autoload 'c-initialize-cc-mode "cc-mode" "\
@@ -3377,8 +3369,8 @@ Key bindings:
 
 ;;;***
 \f
-;;;### (autoloads nil "cc-styles" "progmodes/cc-styles.el" (22150
-;;;;;;  28228 798072 702000))
+;;;### (autoloads nil "cc-styles" "progmodes/cc-styles.el" (22086
+;;;;;;  11930 154062 731000))
 ;;; Generated autoloads from progmodes/cc-styles.el
 
 (autoload 'c-set-style "cc-styles" "\
@@ -3429,8 +3421,8 @@ and exists only for compatibility reasons.
 
 ;;;***
 \f
-;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (22150 28228
-;;;;;;  802072 702000))
+;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (22086 11930
+;;;;;;  154062 731000))
 ;;; Generated autoloads from progmodes/cc-vars.el
 (put 'c-basic-offset 'safe-local-variable 'integerp)
 (put 'c-backslash-column 'safe-local-variable 'integerp)
@@ -3438,8 +3430,8 @@ and exists only for compatibility reasons.
 
 ;;;***
 \f
-;;;### (autoloads nil "ccl" "international/ccl.el" (22150 28228 106072
-;;;;;;  702000))
+;;;### (autoloads nil "ccl" "international/ccl.el" (22086 11929 874062
+;;;;;;  731000))
 ;;; Generated autoloads from international/ccl.el
 
 (autoload 'ccl-compile "ccl" "\
@@ -3732,8 +3724,8 @@ See the documentation of `define-ccl-program' for the detail of CCL program.
 
 ;;;***
 \f
-;;;### (autoloads nil "cconv" "emacs-lisp/cconv.el" (22150 28227
-;;;;;;  358072 702000))
+;;;### (autoloads nil "cconv" "emacs-lisp/cconv.el" (22102 63557
+;;;;;;  288509 103000))
 ;;; Generated autoloads from emacs-lisp/cconv.el
 
 (autoload 'cconv-closure-convert "cconv" "\
@@ -3752,15 +3744,15 @@ Add the warnings that closure conversion would encounter.
 
 ;;;***
 \f
-;;;### (autoloads nil "cedet" "cedet/cedet.el" (22150 28227 146072
-;;;;;;  702000))
+;;;### (autoloads nil "cedet" "cedet/cedet.el" (22086 11929 542062
+;;;;;;  731000))
 ;;; Generated autoloads from cedet/cedet.el
 (push (purecopy '(cedet 2 0)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (22150 28228
-;;;;;;  802072 702000))
+;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (22086 11930
+;;;;;;  154062 731000))
 ;;; Generated autoloads from progmodes/cfengine.el
 (push (purecopy '(cfengine 1 4)) package--builtin-versions)
 
@@ -3789,8 +3781,8 @@ Choose `cfengine2-mode' or `cfengine3-mode' by buffer contents.
 
 ;;;***
 \f
-;;;### (autoloads nil "character-fold" "character-fold.el" (22150
-;;;;;;  28227 274072 702000))
+;;;### (autoloads nil "character-fold" "character-fold.el" (22109
+;;;;;;  36809 195889 179000))
 ;;; Generated autoloads from character-fold.el
 
 (autoload 'character-fold-to-regexp "character-fold" "\
@@ -3809,15 +3801,15 @@ from which to start.
 
 ;;;***
 \f
-;;;### (autoloads nil "chart" "emacs-lisp/chart.el" (22150 28227
-;;;;;;  358072 702000))
+;;;### (autoloads nil "chart" "emacs-lisp/chart.el" (22092 27717
+;;;;;;  628268 464000))
 ;;; Generated autoloads from emacs-lisp/chart.el
 (push (purecopy '(chart 0 2)) package--builtin-versions)
 
 ;;;***
 \f
 ;;;### (autoloads nil "check-declare" "emacs-lisp/check-declare.el"
-;;;;;;  (22150 28227 358072 702000))
+;;;;;;  (22086 11929 650062 731000))
 ;;; Generated autoloads from emacs-lisp/check-declare.el
 
 (autoload 'check-declare-file "check-declare" "\
@@ -3834,8 +3826,8 @@ Returns non-nil if any false statements are found.
 
 ;;;***
 \f
-;;;### (autoloads nil "checkdoc" "emacs-lisp/checkdoc.el" (22150
-;;;;;;  28227 362072 702000))
+;;;### (autoloads nil "checkdoc" "emacs-lisp/checkdoc.el" (22104
+;;;;;;  18893 193441 487000))
 ;;; 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)
@@ -4045,8 +4037,8 @@ Find package keywords that aren't in `finder-known-keywords'.
 
 ;;;***
 \f
-;;;### (autoloads nil "china-util" "language/china-util.el" (22150
-;;;;;;  28228 162072 702000))
+;;;### (autoloads nil "china-util" "language/china-util.el" (22086
+;;;;;;  11929 890062 731000))
 ;;; Generated autoloads from language/china-util.el
 
 (autoload 'decode-hz-region "china-util" "\
@@ -4083,8 +4075,8 @@ Encode the text in the current buffer to HZ.
 
 ;;;***
 \f
-;;;### (autoloads nil "chistory" "chistory.el" (22150 28227 274072
-;;;;;;  702000))
+;;;### (autoloads nil "chistory" "chistory.el" (22086 11929 582062
+;;;;;;  731000))
 ;;; Generated autoloads from chistory.el
 
 (autoload 'repeat-matching-complex-command "chistory" "\
@@ -4123,8 +4115,8 @@ and runs the normal hook `command-history-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "cl-indent" "emacs-lisp/cl-indent.el" (22150
-;;;;;;  28227 366072 702000))
+;;;### (autoloads nil "cl-indent" "emacs-lisp/cl-indent.el" (22086
+;;;;;;  11929 654062 731000))
 ;;; Generated autoloads from emacs-lisp/cl-indent.el
 
 (autoload 'common-lisp-indent-function "cl-indent" "\
@@ -4207,8 +4199,8 @@ instead.
 
 ;;;***
 \f
-;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (22150 28227
-;;;;;;  366072 702000))
+;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (22086 11929
+;;;;;;  654062 731000))
 ;;; Generated autoloads from emacs-lisp/cl-lib.el
 (push (purecopy '(cl-lib 1 0)) package--builtin-versions)
 
@@ -4226,8 +4218,8 @@ a future Emacs interpreter will be able to use it.")
 
 ;;;***
 \f
-;;;### (autoloads nil "cmacexp" "progmodes/cmacexp.el" (22150 28228
-;;;;;;  802072 702000))
+;;;### (autoloads nil "cmacexp" "progmodes/cmacexp.el" (22086 11930
+;;;;;;  158062 731000))
 ;;; Generated autoloads from progmodes/cmacexp.el
 
 (autoload 'c-macro-expand "cmacexp" "\
@@ -4247,8 +4239,8 @@ For use inside Lisp programs, see also `c-macro-expansion'.
 
 ;;;***
 \f
-;;;### (autoloads nil "cmuscheme" "cmuscheme.el" (22150 28227 274072
-;;;;;;  702000))
+;;;### (autoloads nil "cmuscheme" "cmuscheme.el" (22086 11929 582062
+;;;;;;  731000))
 ;;; Generated autoloads from cmuscheme.el
 
 (autoload 'run-scheme "cmuscheme" "\
@@ -4268,7 +4260,7 @@ is run).
 
 ;;;***
 \f
-;;;### (autoloads nil "color" "color.el" (22150 28227 274072 702000))
+;;;### (autoloads nil "color" "color.el" (22086 11929 582062 731000))
 ;;; Generated autoloads from color.el
 
 (autoload 'color-name-to-rgb "color" "\
@@ -4287,7 +4279,7 @@ If FRAME cannot display COLOR, return nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "comint" "comint.el" (22150 28227 278072 702000))
+;;;### (autoloads nil "comint" "comint.el" (22086 11929 586062 731000))
 ;;; Generated autoloads from comint.el
 
 (defvar comint-output-filter-functions '(ansi-color-process-output comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\
@@ -4388,8 +4380,8 @@ REGEXP-GROUP is the regular expression group in REGEXP to use.
 
 ;;;***
 \f
-;;;### (autoloads nil "compare-w" "vc/compare-w.el" (22150 28229
-;;;;;;  250072 702000))
+;;;### (autoloads nil "compare-w" "vc/compare-w.el" (22086 11930
+;;;;;;  370062 731000))
 ;;; Generated autoloads from vc/compare-w.el
 
 (autoload 'compare-windows "compare-w" "\
@@ -4425,8 +4417,8 @@ on third call it again advances points to the next difference and so on.
 
 ;;;***
 \f
-;;;### (autoloads nil "compile" "progmodes/compile.el" (22150 28228
-;;;;;;  802072 702000))
+;;;### (autoloads nil "compile" "progmodes/compile.el" (22099 26170
+;;;;;;  422017 16000))
 ;;; Generated autoloads from progmodes/compile.el
 
 (defvar compilation-mode-hook nil "\
@@ -4607,8 +4599,8 @@ This is the value of `next-error-function' in Compilation buffers.
 
 ;;;***
 \f
-;;;### (autoloads nil "completion" "completion.el" (22150 28227 286072
-;;;;;;  702000))
+;;;### (autoloads nil "completion" "completion.el" (22086 11929 586062
+;;;;;;  731000))
 ;;; Generated autoloads from completion.el
 
 (defvar dynamic-completion-mode nil "\
@@ -4630,8 +4622,8 @@ if ARG is omitted or nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "conf-mode" "textmodes/conf-mode.el" (22150
-;;;;;;  28229 94072 702000))
+;;;### (autoloads nil "conf-mode" "textmodes/conf-mode.el" (22086
+;;;;;;  11930 314062 731000))
 ;;; Generated autoloads from textmodes/conf-mode.el
 
 (autoload 'conf-mode "conf-mode" "\
@@ -4786,8 +4778,8 @@ For details see `conf-mode'.  Example:
 
 ;;;***
 \f
-;;;### (autoloads nil "cookie1" "play/cookie1.el" (22150 28228 674072
-;;;;;;  702000))
+;;;### (autoloads nil "cookie1" "play/cookie1.el" (22086 11930 122062
+;;;;;;  731000))
 ;;; Generated autoloads from play/cookie1.el
 
 (autoload 'cookie "cookie1" "\
@@ -4815,8 +4807,8 @@ and subsequent calls on the same file won't go to disk.
 
 ;;;***
 \f
-;;;### (autoloads nil "copyright" "emacs-lisp/copyright.el" (22150
-;;;;;;  28227 374072 702000))
+;;;### (autoloads nil "copyright" "emacs-lisp/copyright.el" (22086
+;;;;;;  11929 662062 731000))
 ;;; Generated autoloads from emacs-lisp/copyright.el
 (put 'copyright-at-end-flag 'safe-local-variable 'booleanp)
 (put 'copyright-names-regexp 'safe-local-variable 'stringp)
@@ -4854,8 +4846,8 @@ If FIX is non-nil, run `copyright-fix-years' instead.
 
 ;;;***
 \f
-;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (22150
-;;;;;;  28228 806072 702000))
+;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (22086
+;;;;;;  11930 162062 731000))
 ;;; Generated autoloads from progmodes/cperl-mode.el
 (put 'cperl-indent-level 'safe-local-variable 'integerp)
 (put 'cperl-brace-offset 'safe-local-variable 'integerp)
@@ -5053,8 +5045,8 @@ Run a `perldoc' on the word around point.
 
 ;;;***
 \f
-;;;### (autoloads nil "cpp" "progmodes/cpp.el" (22150 28228 806072
-;;;;;;  702000))
+;;;### (autoloads nil "cpp" "progmodes/cpp.el" (22092 27718 148268
+;;;;;;  464000))
 ;;; Generated autoloads from progmodes/cpp.el
 
 (autoload 'cpp-highlight-buffer "cpp" "\
@@ -5072,8 +5064,8 @@ Edit display information for cpp conditionals.
 
 ;;;***
 \f
-;;;### (autoloads nil "crm" "emacs-lisp/crm.el" (22150 28227 374072
-;;;;;;  702000))
+;;;### (autoloads nil "crm" "emacs-lisp/crm.el" (22086 11929 662062
+;;;;;;  731000))
 ;;; Generated autoloads from emacs-lisp/crm.el
 
 (autoload 'completing-read-multiple "crm" "\
@@ -5099,8 +5091,8 @@ with empty strings removed.
 
 ;;;***
 \f
-;;;### (autoloads nil "css-mode" "textmodes/css-mode.el" (22150 28229
-;;;;;;  94072 702000))
+;;;### (autoloads nil "css-mode" "textmodes/css-mode.el" (22086 11930
+;;;;;;  314062 731000))
 ;;; Generated autoloads from textmodes/css-mode.el
 
 (autoload 'css-mode "css-mode" "\
@@ -5116,8 +5108,8 @@ Major mode to edit \"Sassy CSS\" files.
 
 ;;;***
 \f
-;;;### (autoloads nil "cua-base" "emulation/cua-base.el" (22150 28227
-;;;;;;  458072 702000))
+;;;### (autoloads nil "cua-base" "emulation/cua-base.el" (22086 11929
+;;;;;;  690062 731000))
 ;;; Generated autoloads from emulation/cua-base.el
 
 (defvar cua-mode nil "\
@@ -5162,8 +5154,8 @@ Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings.
 
 ;;;***
 \f
-;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (22150 28227
-;;;;;;  462072 702000))
+;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (22087 9807
+;;;;;;  178279 951000))
 ;;; Generated autoloads from emulation/cua-rect.el
 
 (autoload 'cua-rectangle-mark-mode "cua-rect" "\
@@ -5175,7 +5167,7 @@ Activates the region if needed.  Only lasts until the region is deactivated.
 ;;;***
 \f
 ;;;### (autoloads nil "cursor-sensor" "emacs-lisp/cursor-sensor.el"
-;;;;;;  (22150 28227 374072 702000))
+;;;;;;  (22086 11929 662062 731000))
 ;;; Generated autoloads from emacs-lisp/cursor-sensor.el
 
 (autoload 'cursor-intangible-mode "cursor-sensor" "\
@@ -5195,8 +5187,8 @@ entering the area covered by the text-property property or leaving it.
 
 ;;;***
 \f
-;;;### (autoloads nil "cus-edit" "cus-edit.el" (22150 28227 290072
-;;;;;;  702000))
+;;;### (autoloads nil "cus-edit" "cus-edit.el" (22086 11929 590062
+;;;;;;  731000))
 ;;; Generated autoloads from cus-edit.el
 
 (defvar custom-browse-sort-alphabetically nil "\
@@ -5515,8 +5507,8 @@ The format is suitable for use with `easy-menu-define'.
 
 ;;;***
 \f
-;;;### (autoloads nil "cus-theme" "cus-theme.el" (22150 28227 290072
-;;;;;;  702000))
+;;;### (autoloads nil "cus-theme" "cus-theme.el" (22086 11929 590062
+;;;;;;  731000))
 ;;; Generated autoloads from cus-theme.el
 
 (autoload 'customize-create-theme "cus-theme" "\
@@ -5549,8 +5541,8 @@ omitted, a buffer named *Custom Themes* is used.
 
 ;;;***
 \f
-;;;### (autoloads nil "cvs-status" "vc/cvs-status.el" (22150 28229
-;;;;;;  250072 702000))
+;;;### (autoloads nil "cvs-status" "vc/cvs-status.el" (22086 11930
+;;;;;;  370062 731000))
 ;;; Generated autoloads from vc/cvs-status.el
 
 (autoload 'cvs-status-mode "cvs-status" "\
@@ -5560,8 +5552,8 @@ Mode used for cvs status output.
 
 ;;;***
 \f
-;;;### (autoloads nil "cwarn" "progmodes/cwarn.el" (22150 28228 810072
-;;;;;;  702000))
+;;;### (autoloads nil "cwarn" "progmodes/cwarn.el" (22089 51528 280929
+;;;;;;  316000))
 ;;; Generated autoloads from progmodes/cwarn.el
 (push (purecopy '(cwarn 1 3 1)) package--builtin-versions)
 
@@ -5605,8 +5597,8 @@ See `cwarn-mode' for more information on Cwarn mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "cyril-util" "language/cyril-util.el" (22150
-;;;;;;  28228 162072 702000))
+;;;### (autoloads nil "cyril-util" "language/cyril-util.el" (22086
+;;;;;;  11929 890062 731000))
 ;;; Generated autoloads from language/cyril-util.el
 
 (autoload 'cyrillic-encode-koi8-r-char "cyril-util" "\
@@ -5634,8 +5626,8 @@ If the argument is nil, we return the display table to its standard state.
 
 ;;;***
 \f
-;;;### (autoloads nil "dabbrev" "dabbrev.el" (22150 28227 290072
-;;;;;;  702000))
+;;;### (autoloads nil "dabbrev" "dabbrev.el" (22086 11929 590062
+;;;;;;  731000))
 ;;; Generated autoloads from dabbrev.el
 (put 'dabbrev-case-fold-search 'risky-local-variable t)
 (put 'dabbrev-case-replace 'risky-local-variable t)
@@ -5681,8 +5673,8 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion].
 
 ;;;***
 \f
-;;;### (autoloads nil "data-debug" "cedet/data-debug.el" (22150 28227
-;;;;;;  146072 702000))
+;;;### (autoloads nil "data-debug" "cedet/data-debug.el" (22086 11929
+;;;;;;  542062 731000))
 ;;; Generated autoloads from cedet/data-debug.el
 
 (autoload 'data-debug-new-buffer "data-debug" "\
@@ -5692,7 +5684,7 @@ Create a new data-debug buffer with NAME.
 
 ;;;***
 \f
-;;;### (autoloads nil "dbus" "net/dbus.el" (22150 28228 354072 702000))
+;;;### (autoloads nil "dbus" "net/dbus.el" (22086 11929 990062 731000))
 ;;; Generated autoloads from net/dbus.el
 
 (autoload 'dbus-handle-event "dbus" "\
@@ -5705,8 +5697,8 @@ If the HANDLER returns a `dbus-error', it is propagated as return message.
 
 ;;;***
 \f
-;;;### (autoloads nil "dcl-mode" "progmodes/dcl-mode.el" (22150 28228
-;;;;;;  810072 702000))
+;;;### (autoloads nil "dcl-mode" "progmodes/dcl-mode.el" (22086 11930
+;;;;;;  162062 731000))
 ;;; Generated autoloads from progmodes/dcl-mode.el
 
 (autoload 'dcl-mode "dcl-mode" "\
@@ -5832,8 +5824,8 @@ There is some minimal font-lock support (see vars
 
 ;;;***
 \f
-;;;### (autoloads nil "debug" "emacs-lisp/debug.el" (22150 28227
-;;;;;;  378072 702000))
+;;;### (autoloads nil "debug" "emacs-lisp/debug.el" (22086 11929
+;;;;;;  662062 731000))
 ;;; Generated autoloads from emacs-lisp/debug.el
 
 (setq debugger 'debug)
@@ -5876,8 +5868,8 @@ To specify a nil argument interactively, exit with an empty minibuffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "decipher" "play/decipher.el" (22150 28228
-;;;;;;  674072 702000))
+;;;### (autoloads nil "decipher" "play/decipher.el" (22086 11930
+;;;;;;  126062 731000))
 ;;; Generated autoloads from play/decipher.el
 
 (autoload 'decipher "decipher" "\
@@ -5905,8 +5897,8 @@ The most useful commands are:
 
 ;;;***
 \f
-;;;### (autoloads nil "delim-col" "delim-col.el" (22150 28227 290072
-;;;;;;  702000))
+;;;### (autoloads nil "delim-col" "delim-col.el" (22086 11929 590062
+;;;;;;  731000))
 ;;; Generated autoloads from delim-col.el
 (push (purecopy '(delim-col 2 1)) package--builtin-versions)
 
@@ -5931,7 +5923,7 @@ START and END delimits the corners of text rectangle.
 
 ;;;***
 \f
-;;;### (autoloads nil "delsel" "delsel.el" (22150 28227 290072 702000))
+;;;### (autoloads nil "delsel" "delsel.el" (22086 11929 594062 731000))
 ;;; Generated autoloads from delsel.el
 
 (defalias 'pending-delete-mode 'delete-selection-mode)
@@ -5959,8 +5951,8 @@ point regardless of any selection.
 
 ;;;***
 \f
-;;;### (autoloads nil "derived" "emacs-lisp/derived.el" (22150 28227
-;;;;;;  398072 702000))
+;;;### (autoloads nil "derived" "emacs-lisp/derived.el" (22086 11929
+;;;;;;  666062 731000))
 ;;; Generated autoloads from emacs-lisp/derived.el
 
 (autoload 'define-derived-mode "derived" "\
@@ -6028,8 +6020,8 @@ the first time the mode is used.
 
 ;;;***
 \f
-;;;### (autoloads nil "descr-text" "descr-text.el" (22150 28227 290072
-;;;;;;  702000))
+;;;### (autoloads nil "descr-text" "descr-text.el" (22086 11929 594062
+;;;;;;  731000))
 ;;; Generated autoloads from descr-text.el
 
 (autoload 'describe-text-properties "descr-text" "\
@@ -6078,8 +6070,8 @@ This function is meant to be used as a value of
 
 ;;;***
 \f
-;;;### (autoloads nil "desktop" "desktop.el" (22150 28227 294072
-;;;;;;  702000))
+;;;### (autoloads nil "desktop" "desktop.el" (22092 27717 592268
+;;;;;;  464000))
 ;;; Generated autoloads from desktop.el
 
 (defvar desktop-save-mode nil "\
@@ -6288,8 +6280,8 @@ Revert to the last loaded desktop.
 
 ;;;***
 \f
-;;;### (autoloads nil "deuglify" "gnus/deuglify.el" (22150 28227
-;;;;;;  658072 702000))
+;;;### (autoloads nil "deuglify" "gnus/deuglify.el" (22086 11929
+;;;;;;  774062 731000))
 ;;; Generated autoloads from gnus/deuglify.el
 
 (autoload 'gnus-article-outlook-unwrap-lines "deuglify" "\
@@ -6321,8 +6313,8 @@ Deuglify broken Outlook (Express) articles and redisplay.
 
 ;;;***
 \f
-;;;### (autoloads nil "diary-lib" "calendar/diary-lib.el" (22150
-;;;;;;  28227 74072 702000))
+;;;### (autoloads nil "diary-lib" "calendar/diary-lib.el" (22092
+;;;;;;  27717 544268 464000))
 ;;; Generated autoloads from calendar/diary-lib.el
 
 (autoload 'diary "diary-lib" "\
@@ -6364,7 +6356,7 @@ Major mode for editing the diary file.
 
 ;;;***
 \f
-;;;### (autoloads nil "diff" "vc/diff.el" (22150 28229 254072 702000))
+;;;### (autoloads nil "diff" "vc/diff.el" (22086 11930 370062 731000))
 ;;; Generated autoloads from vc/diff.el
 
 (defvar diff-switches (purecopy "-u") "\
@@ -6412,8 +6404,8 @@ This requires the external program `diff' to be in your `exec-path'.
 
 ;;;***
 \f
-;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (22150 28229
-;;;;;;  250072 702000))
+;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (22087 9807 430279
+;;;;;;  951000))
 ;;; Generated autoloads from vc/diff-mode.el
 
 (autoload 'diff-mode "diff-mode" "\
@@ -6445,7 +6437,7 @@ the mode if ARG is omitted or nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "dig" "net/dig.el" (22150 28228 354072 702000))
+;;;### (autoloads nil "dig" "net/dig.el" (22086 11929 990062 731000))
 ;;; Generated autoloads from net/dig.el
 
 (autoload 'dig "dig" "\
@@ -6456,7 +6448,7 @@ Optional arguments are passed to `dig-invoke'.
 
 ;;;***
 \f
-;;;### (autoloads nil "dired" "dired.el" (22150 28227 310072 702000))
+;;;### (autoloads nil "dired" "dired.el" (22086 11929 598062 731000))
 ;;; Generated autoloads from dired.el
 
 (defvar dired-listing-switches (purecopy "-al") "\
@@ -6582,8 +6574,8 @@ Keybindings:
 
 ;;;***
 \f
-;;;### (autoloads nil "dirtrack" "dirtrack.el" (22150 28227 310072
-;;;;;;  702000))
+;;;### (autoloads nil "dirtrack" "dirtrack.el" (22086 11929 598062
+;;;;;;  731000))
 ;;; Generated autoloads from dirtrack.el
 
 (autoload 'dirtrack-mode "dirtrack" "\
@@ -6613,8 +6605,8 @@ from `default-directory'.
 
 ;;;***
 \f
-;;;### (autoloads nil "disass" "emacs-lisp/disass.el" (22150 28227
-;;;;;;  398072 702000))
+;;;### (autoloads nil "disass" "emacs-lisp/disass.el" (22086 11929
+;;;;;;  666062 731000))
 ;;; Generated autoloads from emacs-lisp/disass.el
 
 (autoload 'disassemble "disass" "\
@@ -6628,8 +6620,8 @@ redefine OBJECT if it is a symbol.
 
 ;;;***
 \f
-;;;### (autoloads nil "disp-table" "disp-table.el" (22150 28227 310072
-;;;;;;  702000))
+;;;### (autoloads nil "disp-table" "disp-table.el" (22086 11929 598062
+;;;;;;  731000))
 ;;; Generated autoloads from disp-table.el
 
 (autoload 'make-display-table "disp-table" "\
@@ -6750,8 +6742,8 @@ in `.emacs'.
 
 ;;;***
 \f
-;;;### (autoloads nil "dissociate" "play/dissociate.el" (22150 28228
-;;;;;;  674072 702000))
+;;;### (autoloads nil "dissociate" "play/dissociate.el" (22086 11930
+;;;;;;  126062 731000))
 ;;; Generated autoloads from play/dissociate.el
 
 (autoload 'dissociated-press "dissociate" "\
@@ -6767,7 +6759,7 @@ Default is 2.
 
 ;;;***
 \f
-;;;### (autoloads nil "dnd" "dnd.el" (22150 28227 314072 702000))
+;;;### (autoloads nil "dnd" "dnd.el" (22086 11929 598062 731000))
 ;;; 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)) "\
@@ -6787,8 +6779,8 @@ if some action was made, or nil if the URL is ignored.")
 
 ;;;***
 \f
-;;;### (autoloads nil "dns-mode" "textmodes/dns-mode.el" (22150 28229
-;;;;;;  98072 702000))
+;;;### (autoloads nil "dns-mode" "textmodes/dns-mode.el" (22086 11930
+;;;;;;  314062 731000))
 ;;; Generated autoloads from textmodes/dns-mode.el
 
 (autoload 'dns-mode "dns-mode" "\
@@ -6811,8 +6803,8 @@ Locate SOA record and increment the serial field.
 
 ;;;***
 \f
-;;;### (autoloads nil "doc-view" "doc-view.el" (22150 28227 314072
-;;;;;;  702000))
+;;;### (autoloads nil "doc-view" "doc-view.el" (22086 11929 598062
+;;;;;;  731000))
 ;;; Generated autoloads from doc-view.el
 
 (autoload 'doc-view-mode-p "doc-view" "\
@@ -6858,8 +6850,8 @@ See the command `doc-view-mode' for more information on this mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "doctor" "play/doctor.el" (22150 28228 678072
-;;;;;;  702000))
+;;;### (autoloads nil "doctor" "play/doctor.el" (22086 11930 126062
+;;;;;;  731000))
 ;;; Generated autoloads from play/doctor.el
 
 (autoload 'doctor "doctor" "\
@@ -6869,7 +6861,7 @@ Switch to *doctor* buffer and start giving psychotherapy.
 
 ;;;***
 \f
-;;;### (autoloads nil "double" "double.el" (22150 28227 318072 702000))
+;;;### (autoloads nil "double" "double.el" (22086 11929 602062 731000))
 ;;; Generated autoloads from double.el
 
 (autoload 'double-mode "double" "\
@@ -6885,8 +6877,8 @@ strings when pressed twice.  See `double-map' for details.
 
 ;;;***
 \f
-;;;### (autoloads nil "dunnet" "play/dunnet.el" (22150 28228 678072
-;;;;;;  702000))
+;;;### (autoloads nil "dunnet" "play/dunnet.el" (22093 48588 576393
+;;;;;;  539000))
 ;;; Generated autoloads from play/dunnet.el
 (push (purecopy '(dunnet 2 2)) package--builtin-versions)
 
@@ -6897,8 +6889,8 @@ Switch to *dungeon* buffer and start game.
 
 ;;;***
 \f
-;;;### (autoloads nil "easy-mmode" "emacs-lisp/easy-mmode.el" (22150
-;;;;;;  28227 398072 702000))
+;;;### (autoloads nil "easy-mmode" "emacs-lisp/easy-mmode.el" (22092
+;;;;;;  27717 632268 464000))
 ;;; Generated autoloads from emacs-lisp/easy-mmode.el
 
 (defalias 'easy-mmode-define-minor-mode 'define-minor-mode)
@@ -7042,8 +7034,8 @@ CSS contains a list of syntax specifications of the form (CHAR . SYNTAX).
 
 ;;;***
 \f
-;;;### (autoloads nil "easymenu" "emacs-lisp/easymenu.el" (22150
-;;;;;;  28227 398072 702000))
+;;;### (autoloads nil "easymenu" "emacs-lisp/easymenu.el" (22086
+;;;;;;  11929 666062 731000))
 ;;; Generated autoloads from emacs-lisp/easymenu.el
 
 (autoload 'easy-menu-define "easymenu" "\
@@ -7181,8 +7173,8 @@ To implement dynamic menus, either call this from
 
 ;;;***
 \f
-;;;### (autoloads nil "ebnf2ps" "progmodes/ebnf2ps.el" (22150 28228
-;;;;;;  814072 702000))
+;;;### (autoloads nil "ebnf2ps" "progmodes/ebnf2ps.el" (22086 11930
+;;;;;;  166062 731000))
 ;;; Generated autoloads from progmodes/ebnf2ps.el
 (push (purecopy '(ebnf2ps 4 4)) package--builtin-versions)
 
@@ -7447,8 +7439,8 @@ See `ebnf-style-database' documentation.
 
 ;;;***
 \f
-;;;### (autoloads nil "ebrowse" "progmodes/ebrowse.el" (22150 28228
-;;;;;;  814072 702000))
+;;;### (autoloads nil "ebrowse" "progmodes/ebrowse.el" (22086 11930
+;;;;;;  170062 731000))
 ;;; Generated autoloads from progmodes/ebrowse.el
 
 (autoload 'ebrowse-tree-mode "ebrowse" "\
@@ -7596,8 +7588,8 @@ Display statistics for a class tree.
 
 ;;;***
 \f
-;;;### (autoloads nil "ebuff-menu" "ebuff-menu.el" (22150 28227 318072
-;;;;;;  702000))
+;;;### (autoloads nil "ebuff-menu" "ebuff-menu.el" (22086 11929 602062
+;;;;;;  731000))
 ;;; Generated autoloads from ebuff-menu.el
 
 (autoload 'electric-buffer-list "ebuff-menu" "\
@@ -7629,8 +7621,8 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry.
 
 ;;;***
 \f
-;;;### (autoloads nil "echistory" "echistory.el" (22150 28227 318072
-;;;;;;  702000))
+;;;### (autoloads nil "echistory" "echistory.el" (22086 11929 602062
+;;;;;;  731000))
 ;;; Generated autoloads from echistory.el
 
 (autoload 'Electric-command-history-redo-expression "echistory" "\
@@ -7641,8 +7633,8 @@ With prefix arg NOCONFIRM, execute current line as-is without editing.
 
 ;;;***
 \f
-;;;### (autoloads nil "ecomplete" "gnus/ecomplete.el" (22150 28227
-;;;;;;  658072 702000))
+;;;### (autoloads nil "ecomplete" "gnus/ecomplete.el" (22086 11929
+;;;;;;  774062 731000))
 ;;; Generated autoloads from gnus/ecomplete.el
 
 (autoload 'ecomplete-setup "ecomplete" "\
@@ -7652,7 +7644,7 @@ With prefix arg NOCONFIRM, execute current line as-is without editing.
 
 ;;;***
 \f
-;;;### (autoloads nil "ede" "cedet/ede.el" (22150 28227 202072 702000))
+;;;### (autoloads nil "ede" "cedet/ede.el" (22092 27717 556268 464000))
 ;;; Generated autoloads from cedet/ede.el
 (push (purecopy '(ede 1 2)) package--builtin-versions)
 
@@ -7678,8 +7670,8 @@ an EDE controlled project.
 
 ;;;***
 \f
-;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (22150 28227
-;;;;;;  406072 702000))
+;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (22086 11929
+;;;;;;  670062 731000))
 ;;; Generated autoloads from emacs-lisp/edebug.el
 
 (defvar edebug-all-defs nil "\
@@ -7743,7 +7735,7 @@ Toggle edebugging of all forms.
 
 ;;;***
 \f
-;;;### (autoloads nil "ediff" "vc/ediff.el" (22150 28229 274072 702000))
+;;;### (autoloads nil "ediff" "vc/ediff.el" (22086 11930 378062 731000))
 ;;; Generated autoloads from vc/ediff.el
 (push (purecopy '(ediff 2 81 4)) package--builtin-versions)
 
@@ -8015,8 +8007,8 @@ With optional NODE, goes to that node.
 
 ;;;***
 \f
-;;;### (autoloads nil "ediff-help" "vc/ediff-help.el" (22150 28229
-;;;;;;  254072 702000))
+;;;### (autoloads nil "ediff-help" "vc/ediff-help.el" (22086 11930
+;;;;;;  370062 731000))
 ;;; Generated autoloads from vc/ediff-help.el
 
 (autoload 'ediff-customize "ediff-help" "\
@@ -8026,8 +8018,8 @@ With optional NODE, goes to that node.
 
 ;;;***
 \f
-;;;### (autoloads nil "ediff-mult" "vc/ediff-mult.el" (22150 28229
-;;;;;;  262072 702000))
+;;;### (autoloads nil "ediff-mult" "vc/ediff-mult.el" (22086 11930
+;;;;;;  374062 731000))
 ;;; Generated autoloads from vc/ediff-mult.el
 
 (autoload 'ediff-show-registry "ediff-mult" "\
@@ -8039,8 +8031,8 @@ Display Ediff's registry.
 
 ;;;***
 \f
-;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (22150 28229
-;;;;;;  270072 702000))
+;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (22086 11930
+;;;;;;  374062 731000))
 ;;; Generated autoloads from vc/ediff-util.el
 
 (autoload 'ediff-toggle-multiframe "ediff-util" "\
@@ -8059,8 +8051,8 @@ To change the default, set the variable `ediff-use-toolbar-p', which see.
 
 ;;;***
 \f
-;;;### (autoloads nil "edmacro" "edmacro.el" (22150 28227 318072
-;;;;;;  702000))
+;;;### (autoloads nil "edmacro" "edmacro.el" (22086 11929 602062
+;;;;;;  731000))
 ;;; Generated autoloads from edmacro.el
 (push (purecopy '(edmacro 2 1)) package--builtin-versions)
 
@@ -8109,8 +8101,8 @@ or nil, use a compact 80-column format.
 
 ;;;***
 \f
-;;;### (autoloads nil "edt" "emulation/edt.el" (22150 28227 462072
-;;;;;;  702000))
+;;;### (autoloads nil "edt" "emulation/edt.el" (22086 11929 694062
+;;;;;;  731000))
 ;;; Generated autoloads from emulation/edt.el
 
 (autoload 'edt-set-scroll-margins "edt" "\
@@ -8127,7 +8119,7 @@ Turn on EDT Emulation.
 
 ;;;***
 \f
-;;;### (autoloads nil "ehelp" "ehelp.el" (22150 28227 318072 702000))
+;;;### (autoloads nil "ehelp" "ehelp.el" (22086 11929 602062 731000))
 ;;; Generated autoloads from ehelp.el
 
 (autoload 'with-electric-help "ehelp" "\
@@ -8163,15 +8155,15 @@ BUFFER is put back into its original major mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (22150 28227
-;;;;;;  422072 702000))
+;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (22086 11929
+;;;;;;  674062 731000))
 ;;; Generated autoloads from emacs-lisp/eieio.el
 (push (purecopy '(eieio 1 4)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (22150
-;;;;;;  28227 418072 702000))
+;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (22086
+;;;;;;  11929 670062 731000))
 ;;; Generated autoloads from emacs-lisp/eieio-core.el
 (push (purecopy '(eieio-core 1 4)) package--builtin-versions)
 
@@ -8187,8 +8179,8 @@ It creates an autoload function for CNAME's constructor.
 
 ;;;***
 \f
-;;;### (autoloads nil "elec-pair" "elec-pair.el" (22150 28227 322072
-;;;;;;  702000))
+;;;### (autoloads nil "elec-pair" "elec-pair.el" (22086 11929 602062
+;;;;;;  731000))
 ;;; Generated autoloads from elec-pair.el
 
 (defvar electric-pair-text-pairs '((34 . 34)) "\
@@ -8229,8 +8221,8 @@ Toggle `electric-pair-mode' only in this buffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "elide-head" "elide-head.el" (22150 28227 322072
-;;;;;;  702000))
+;;;### (autoloads nil "elide-head" "elide-head.el" (22086 11929 602062
+;;;;;;  731000))
 ;;; Generated autoloads from elide-head.el
 
 (autoload 'elide-head "elide-head" "\
@@ -8245,8 +8237,8 @@ This is suitable as an entry on `find-file-hook' or appropriate mode hooks.
 
 ;;;***
 \f
-;;;### (autoloads nil "elint" "emacs-lisp/elint.el" (22150 28227
-;;;;;;  422072 702000))
+;;;### (autoloads nil "elint" "emacs-lisp/elint.el" (22086 11929
+;;;;;;  674062 731000))
 ;;; Generated autoloads from emacs-lisp/elint.el
 
 (autoload 'elint-file "elint" "\
@@ -8281,8 +8273,8 @@ optional prefix argument REINIT is non-nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "elp" "emacs-lisp/elp.el" (22150 28227 422072
-;;;;;;  702000))
+;;;### (autoloads nil "elp" "emacs-lisp/elp.el" (22086 11929 674062
+;;;;;;  731000))
 ;;; Generated autoloads from emacs-lisp/elp.el
 
 (autoload 'elp-instrument-function "elp" "\
@@ -8316,8 +8308,8 @@ displayed.
 
 ;;;***
 \f
-;;;### (autoloads nil "emacs-lock" "emacs-lock.el" (22150 28227 458072
-;;;;;;  702000))
+;;;### (autoloads nil "emacs-lock" "emacs-lock.el" (22086 11929 690062
+;;;;;;  731000))
 ;;; Generated autoloads from emacs-lock.el
 
 (autoload 'emacs-lock-mode "emacs-lock" "\
@@ -8344,8 +8336,8 @@ Other values are interpreted as usual.
 
 ;;;***
 \f
-;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (22150 28228
-;;;;;;  226072 702000))
+;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (22086 11929
+;;;;;;  934062 731000))
 ;;; Generated autoloads from mail/emacsbug.el
 
 (autoload 'report-emacs-bug "emacsbug" "\
@@ -8419,8 +8411,8 @@ Emerge two RCS revisions of a file, with another revision as ancestor.
 
 ;;;***
 \f
-;;;### (autoloads nil "enriched" "textmodes/enriched.el" (22150 28229
-;;;;;;  98072 702000))
+;;;### (autoloads nil "enriched" "textmodes/enriched.el" (22086 11930
+;;;;;;  314062 731000))
 ;;; Generated autoloads from textmodes/enriched.el
 
 (autoload 'enriched-mode "enriched" "\
@@ -8455,7 +8447,7 @@ Commands:
 
 ;;;***
 \f
-;;;### (autoloads nil "epa" "epa.el" (22150 28227 482072 702000))
+;;;### (autoloads nil "epa" "epa.el" (22086 11929 698062 731000))
 ;;; Generated autoloads from epa.el
 
 (autoload 'epa-list-keys "epa" "\
@@ -8643,8 +8635,8 @@ Insert selected KEYS after the point.
 
 ;;;***
 \f
-;;;### (autoloads nil "epa-dired" "epa-dired.el" (22150 28227 478072
-;;;;;;  702000))
+;;;### (autoloads nil "epa-dired" "epa-dired.el" (22086 11929 698062
+;;;;;;  731000))
 ;;; Generated autoloads from epa-dired.el
 
 (autoload 'epa-dired-do-decrypt "epa-dired" "\
@@ -8669,8 +8661,8 @@ Encrypt marked files.
 
 ;;;***
 \f
-;;;### (autoloads nil "epa-file" "epa-file.el" (22150 28227 482072
-;;;;;;  702000))
+;;;### (autoloads nil "epa-file" "epa-file.el" (22086 11929 698062
+;;;;;;  731000))
 ;;; Generated autoloads from epa-file.el
 
 (autoload 'epa-file-handler "epa-file" "\
@@ -8690,8 +8682,8 @@ Encrypt marked files.
 
 ;;;***
 \f
-;;;### (autoloads nil "epa-mail" "epa-mail.el" (22150 28227 482072
-;;;;;;  702000))
+;;;### (autoloads nil "epa-mail" "epa-mail.el" (22086 11929 698062
+;;;;;;  731000))
 ;;; Generated autoloads from epa-mail.el
 
 (autoload 'epa-mail-mode "epa-mail" "\
@@ -8768,7 +8760,7 @@ if ARG is omitted or nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "epg" "epg.el" (22150 28227 482072 702000))
+;;;### (autoloads nil "epg" "epg.el" (22092 27717 648268 464000))
 ;;; Generated autoloads from epg.el
 (push (purecopy '(epg 1 0 0)) package--builtin-versions)
 
@@ -8779,8 +8771,8 @@ Return a context object.
 
 ;;;***
 \f
-;;;### (autoloads nil "epg-config" "epg-config.el" (22150 28227 482072
-;;;;;;  702000))
+;;;### (autoloads nil "epg-config" "epg-config.el" (22086 11929 698062
+;;;;;;  731000))
 ;;; Generated autoloads from epg-config.el
 
 (autoload 'epg-configuration "epg-config" "\
@@ -8800,7 +8792,7 @@ Look at CONFIG and try to expand GROUP.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc" "erc/erc.el" (22150 28227 526072 702000))
+;;;### (autoloads nil "erc" "erc/erc.el" (22093 48588 540393 539000))
 ;;; Generated autoloads from erc/erc.el
 (push (purecopy '(erc 5 3)) package--builtin-versions)
 
@@ -8849,36 +8841,36 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (22150
-;;;;;;  28227 506072 702000))
+;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (22086
+;;;;;;  11929 706062 731000))
 ;;; Generated autoloads from erc/erc-autoaway.el
  (autoload 'erc-autoaway-mode "erc-autoaway")
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-button" "erc/erc-button.el" (22150 28227
-;;;;;;  506072 702000))
+;;;### (autoloads nil "erc-button" "erc/erc-button.el" (22092 27717
+;;;;;;  652268 464000))
 ;;; Generated autoloads from erc/erc-button.el
  (autoload 'erc-button-mode "erc-button" nil t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (22150 28227
-;;;;;;  510072 702000))
+;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (22086 11929
+;;;;;;  706062 731000))
 ;;; Generated autoloads from erc/erc-capab.el
  (autoload 'erc-capab-identify-mode "erc-capab" nil t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (22150 28227
-;;;;;;  510072 702000))
+;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (22086 11929
+;;;;;;  706062 731000))
 ;;; Generated autoloads from erc/erc-compat.el
  (autoload 'erc-define-minor-mode "erc-compat")
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-dcc" "erc/erc-dcc.el" (22150 28227 510072
-;;;;;;  702000))
+;;;### (autoloads nil "erc-dcc" "erc/erc-dcc.el" (22086 11929 706062
+;;;;;;  731000))
 ;;; Generated autoloads from erc/erc-dcc.el
  (autoload 'erc-dcc-mode "erc-dcc")
 
@@ -8908,14 +8900,14 @@ that subcommand.
 ;;;***
 \f
 ;;;### (autoloads nil "erc-desktop-notifications" "erc/erc-desktop-notifications.el"
-;;;;;;  (22150 28227 510072 702000))
+;;;;;;  (22086 11929 706062 731000))
 ;;; Generated autoloads from erc/erc-desktop-notifications.el
 (autoload 'erc-notifications-mode "erc-desktop-notifications" "" t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-ezbounce" "erc/erc-ezbounce.el" (22150
-;;;;;;  28227 510072 702000))
+;;;### (autoloads nil "erc-ezbounce" "erc/erc-ezbounce.el" (22086
+;;;;;;  11929 710062 731000))
 ;;; Generated autoloads from erc/erc-ezbounce.el
 
 (autoload 'erc-cmd-ezb "erc-ezbounce" "\
@@ -8977,8 +8969,8 @@ Add EZBouncer convenience functions to ERC.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-fill" "erc/erc-fill.el" (22150 28227 510072
-;;;;;;  702000))
+;;;### (autoloads nil "erc-fill" "erc/erc-fill.el" (22086 11929 710062
+;;;;;;  731000))
 ;;; Generated autoloads from erc/erc-fill.el
  (autoload 'erc-fill-mode "erc-fill" nil t)
 
@@ -8990,8 +8982,8 @@ You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-identd" "erc/erc-identd.el" (22150 28227
-;;;;;;  510072 702000))
+;;;### (autoloads nil "erc-identd" "erc/erc-identd.el" (22086 11929
+;;;;;;  710062 731000))
 ;;; Generated autoloads from erc/erc-identd.el
  (autoload 'erc-identd-mode "erc-identd")
 
@@ -9012,8 +9004,8 @@ system.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-imenu" "erc/erc-imenu.el" (22150 28227
-;;;;;;  514072 702000))
+;;;### (autoloads nil "erc-imenu" "erc/erc-imenu.el" (22086 11929
+;;;;;;  710062 731000))
 ;;; Generated autoloads from erc/erc-imenu.el
 
 (autoload 'erc-create-imenu-index "erc-imenu" "\
@@ -9023,22 +9015,22 @@ system.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-join" "erc/erc-join.el" (22150 28227 514072
-;;;;;;  702000))
+;;;### (autoloads nil "erc-join" "erc/erc-join.el" (22086 11929 710062
+;;;;;;  731000))
 ;;; Generated autoloads from erc/erc-join.el
  (autoload 'erc-autojoin-mode "erc-join" nil t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-list" "erc/erc-list.el" (22150 28227 514072
-;;;;;;  702000))
+;;;### (autoloads nil "erc-list" "erc/erc-list.el" (22086 11929 710062
+;;;;;;  731000))
 ;;; Generated autoloads from erc/erc-list.el
  (autoload 'erc-list-mode "erc-list")
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-log" "erc/erc-log.el" (22150 28227 514072
-;;;;;;  702000))
+;;;### (autoloads nil "erc-log" "erc/erc-log.el" (22086 11929 710062
+;;;;;;  731000))
 ;;; Generated autoloads from erc/erc-log.el
  (autoload 'erc-log-mode "erc-log" nil t)
 
@@ -9067,8 +9059,8 @@ You can save every individual message by putting this function on
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-match" "erc/erc-match.el" (22150 28227
-;;;;;;  514072 702000))
+;;;### (autoloads nil "erc-match" "erc/erc-match.el" (22092 27717
+;;;;;;  652268 464000))
 ;;; Generated autoloads from erc/erc-match.el
  (autoload 'erc-match-mode "erc-match")
 
@@ -9114,15 +9106,15 @@ Delete dangerous-host interactively to `erc-dangerous-hosts'.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (22150 28227 514072
-;;;;;;  702000))
+;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (22086 11929 710062
+;;;;;;  731000))
 ;;; Generated autoloads from erc/erc-menu.el
  (autoload 'erc-menu-mode "erc-menu" nil t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-netsplit" "erc/erc-netsplit.el" (22150
-;;;;;;  28227 514072 702000))
+;;;### (autoloads nil "erc-netsplit" "erc/erc-netsplit.el" (22086
+;;;;;;  11929 710062 731000))
 ;;; Generated autoloads from erc/erc-netsplit.el
  (autoload 'erc-netsplit-mode "erc-netsplit")
 
@@ -9133,8 +9125,8 @@ Show who's gone.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-networks" "erc/erc-networks.el" (22150
-;;;;;;  28227 518072 702000))
+;;;### (autoloads nil "erc-networks" "erc/erc-networks.el" (22086
+;;;;;;  11929 710062 731000))
 ;;; Generated autoloads from erc/erc-networks.el
 
 (autoload 'erc-determine-network "erc-networks" "\
@@ -9151,8 +9143,8 @@ Interactively select a server to connect to using `erc-server-alist'.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-notify" "erc/erc-notify.el" (22150 28227
-;;;;;;  518072 702000))
+;;;### (autoloads nil "erc-notify" "erc/erc-notify.el" (22086 11929
+;;;;;;  710062 731000))
 ;;; Generated autoloads from erc/erc-notify.el
  (autoload 'erc-notify-mode "erc-notify" nil t)
 
@@ -9170,36 +9162,36 @@ with args, toggle notify status of people.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-page" "erc/erc-page.el" (22150 28227 518072
-;;;;;;  702000))
+;;;### (autoloads nil "erc-page" "erc/erc-page.el" (22086 11929 710062
+;;;;;;  731000))
 ;;; Generated autoloads from erc/erc-page.el
  (autoload 'erc-page-mode "erc-page")
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (22150
-;;;;;;  28227 518072 702000))
+;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (22086
+;;;;;;  11929 710062 731000))
 ;;; Generated autoloads from erc/erc-pcomplete.el
  (autoload 'erc-completion-mode "erc-pcomplete" nil t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (22150 28227
-;;;;;;  518072 702000))
+;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (22086 11929
+;;;;;;  710062 731000))
 ;;; Generated autoloads from erc/erc-replace.el
  (autoload 'erc-replace-mode "erc-replace")
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (22150 28227 518072
-;;;;;;  702000))
+;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (22092 27717 652268
+;;;;;;  464000))
 ;;; Generated autoloads from erc/erc-ring.el
  (autoload 'erc-ring-mode "erc-ring" nil t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-services" "erc/erc-services.el" (22150
-;;;;;;  28227 518072 702000))
+;;;### (autoloads nil "erc-services" "erc/erc-services.el" (22086
+;;;;;;  11929 710062 731000))
 ;;; Generated autoloads from erc/erc-services.el
  (autoload 'erc-services-mode "erc-services" nil t)
 
@@ -9216,15 +9208,15 @@ When called interactively, read the password using `read-passwd'.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (22150 28227
-;;;;;;  518072 702000))
+;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (22086 11929
+;;;;;;  714062 731000))
 ;;; Generated autoloads from erc/erc-sound.el
  (autoload 'erc-sound-mode "erc-sound")
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-speedbar" "erc/erc-speedbar.el" (22150
-;;;;;;  28227 518072 702000))
+;;;### (autoloads nil "erc-speedbar" "erc/erc-speedbar.el" (22086
+;;;;;;  11929 714062 731000))
 ;;; Generated autoloads from erc/erc-speedbar.el
 
 (autoload 'erc-speedbar-browser "erc-speedbar" "\
@@ -9235,22 +9227,22 @@ This will add a speedbar major display mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (22150
-;;;;;;  28227 518072 702000))
+;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (22086
+;;;;;;  11929 714062 731000))
 ;;; Generated autoloads from erc/erc-spelling.el
  (autoload 'erc-spelling-mode "erc-spelling" nil t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (22150 28227
-;;;;;;  518072 702000))
+;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (22086 11929
+;;;;;;  714062 731000))
 ;;; Generated autoloads from erc/erc-stamp.el
  (autoload 'erc-timestamp-mode "erc-stamp" nil t)
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-track" "erc/erc-track.el" (22150 28227
-;;;;;;  522072 702000))
+;;;### (autoloads nil "erc-track" "erc/erc-track.el" (22092 27717
+;;;;;;  656268 464000))
 ;;; Generated autoloads from erc/erc-track.el
 
 (defvar erc-track-minor-mode nil "\
@@ -9275,8 +9267,8 @@ keybindings will not do anything useful.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-truncate" "erc/erc-truncate.el" (22150
-;;;;;;  28227 522072 702000))
+;;;### (autoloads nil "erc-truncate" "erc/erc-truncate.el" (22086
+;;;;;;  11929 714062 731000))
 ;;; Generated autoloads from erc/erc-truncate.el
  (autoload 'erc-truncate-mode "erc-truncate" nil t)
 
@@ -9295,8 +9287,8 @@ Meant to be used in hooks, like `erc-insert-post-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "erc-xdcc" "erc/erc-xdcc.el" (22150 28227 522072
-;;;;;;  702000))
+;;;### (autoloads nil "erc-xdcc" "erc/erc-xdcc.el" (22086 11929 714062
+;;;;;;  731000))
 ;;; Generated autoloads from erc/erc-xdcc.el
  (autoload 'erc-xdcc-mode "erc-xdcc")
 
@@ -9307,8 +9299,8 @@ Add a file to `erc-xdcc-files'.
 
 ;;;***
 \f
-;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (22150 28227 426072
-;;;;;;  702000))
+;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (22092 27717 632268
+;;;;;;  464000))
 ;;; Generated autoloads from emacs-lisp/ert.el
 
 (autoload 'ert-deftest "ert" "\
@@ -9377,8 +9369,8 @@ Display the documentation for TEST-OR-TEST-NAME (a symbol or ert-test).
 
 ;;;***
 \f
-;;;### (autoloads nil "ert-x" "emacs-lisp/ert-x.el" (22150 28227
-;;;;;;  426072 702000))
+;;;### (autoloads nil "ert-x" "emacs-lisp/ert-x.el" (22086 11929
+;;;;;;  674062 731000))
 ;;; Generated autoloads from emacs-lisp/ert-x.el
 
 (put 'ert-with-test-buffer 'lisp-indent-function 1)
@@ -9390,8 +9382,8 @@ Kill all test buffers that are still live.
 
 ;;;***
 \f
-;;;### (autoloads nil "esh-mode" "eshell/esh-mode.el" (22150 28227
-;;;;;;  542072 702000))
+;;;### (autoloads nil "esh-mode" "eshell/esh-mode.el" (22086 11929
+;;;;;;  722062 731000))
 ;;; Generated autoloads from eshell/esh-mode.el
 
 (autoload 'eshell-mode "esh-mode" "\
@@ -9401,8 +9393,8 @@ Emacs shell interactive mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "eshell" "eshell/eshell.el" (22150 28227 542072
-;;;;;;  702000))
+;;;### (autoloads nil "eshell" "eshell/eshell.el" (22086 11929 722062
+;;;;;;  731000))
 ;;; Generated autoloads from eshell/eshell.el
 (push (purecopy '(eshell 2 4 2)) package--builtin-versions)
 
@@ -9437,8 +9429,8 @@ corresponding to a successful execution.
 
 ;;;***
 \f
-;;;### (autoloads nil "etags" "progmodes/etags.el" (22150 28228 818072
-;;;;;;  702000))
+;;;### (autoloads nil "etags" "progmodes/etags.el" (22105 39773 947886
+;;;;;;  896000))
 ;;; Generated autoloads from progmodes/etags.el
 
 (defvar tags-file-name nil "\
@@ -9755,8 +9747,8 @@ for \\[find-tag] (which see).
 
 ;;;***
 \f
-;;;### (autoloads nil "ethio-util" "language/ethio-util.el" (22150
-;;;;;;  28228 166072 702000))
+;;;### (autoloads nil "ethio-util" "language/ethio-util.el" (22086
+;;;;;;  11929 894062 731000))
 ;;; Generated autoloads from language/ethio-util.el
 
 (autoload 'setup-ethiopic-environment-internal "ethio-util" "\
@@ -9924,7 +9916,7 @@ With ARG, insert that many delimiters.
 
 ;;;***
 \f
-;;;### (autoloads nil "eudc" "net/eudc.el" (22150 28228 354072 702000))
+;;;### (autoloads nil "eudc" "net/eudc.el" (22099 965 90725 479000))
 ;;; Generated autoloads from net/eudc.el
 
 (autoload 'eudc-set-server "eudc" "\
@@ -9978,8 +9970,8 @@ This does nothing except loading eudc by autoload side-effect.
 
 ;;;***
 \f
-;;;### (autoloads nil "eudc-bob" "net/eudc-bob.el" (22150 28228 354072
-;;;;;;  702000))
+;;;### (autoloads nil "eudc-bob" "net/eudc-bob.el" (22086 11929 990062
+;;;;;;  731000))
 ;;; Generated autoloads from net/eudc-bob.el
 
 (autoload 'eudc-display-generic-binary "eudc-bob" "\
@@ -10014,8 +10006,8 @@ Display a button for the JPEG DATA.
 
 ;;;***
 \f
-;;;### (autoloads nil "eudc-export" "net/eudc-export.el" (22150 28228
-;;;;;;  354072 702000))
+;;;### (autoloads nil "eudc-export" "net/eudc-export.el" (22099 965
+;;;;;;  74725 479000))
 ;;; Generated autoloads from net/eudc-export.el
 
 (autoload 'eudc-insert-record-at-point-into-bbdb "eudc-export" "\
@@ -10031,8 +10023,8 @@ Call `eudc-insert-record-at-point-into-bbdb' if on a record.
 
 ;;;***
 \f
-;;;### (autoloads nil "eudc-hotlist" "net/eudc-hotlist.el" (22150
-;;;;;;  28228 354072 702000))
+;;;### (autoloads nil "eudc-hotlist" "net/eudc-hotlist.el" (22086
+;;;;;;  11929 990062 731000))
 ;;; Generated autoloads from net/eudc-hotlist.el
 
 (autoload 'eudc-edit-hotlist "eudc-hotlist" "\
@@ -10042,8 +10034,8 @@ Edit the hotlist of directory servers in a specialized buffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "ewoc" "emacs-lisp/ewoc.el" (22150 28227 430072
-;;;;;;  702000))
+;;;### (autoloads nil "ewoc" "emacs-lisp/ewoc.el" (22086 11929 674062
+;;;;;;  731000))
 ;;; Generated autoloads from emacs-lisp/ewoc.el
 
 (autoload 'ewoc-create "ewoc" "\
@@ -10069,7 +10061,7 @@ fourth arg NOSEP non-nil inhibits this.
 
 ;;;***
 \f
-;;;### (autoloads nil "eww" "net/eww.el" (22150 28228 358072 702000))
+;;;### (autoloads nil "eww" "net/eww.el" (22093 48588 548393 539000))
 ;;; Generated autoloads from net/eww.el
 
 (defvar eww-suggest-uris '(eww-links-at-point url-get-url-at-point eww-current-url) "\
@@ -10116,8 +10108,8 @@ Display the bookmarks.
 
 ;;;***
 \f
-;;;### (autoloads nil "executable" "progmodes/executable.el" (22150
-;;;;;;  28228 818072 702000))
+;;;### (autoloads nil "executable" "progmodes/executable.el" (22086
+;;;;;;  11930 170062 731000))
 ;;; Generated autoloads from progmodes/executable.el
 
 (autoload 'executable-command-find-posix-p "executable" "\
@@ -10152,7 +10144,7 @@ file modes.
 
 ;;;***
 \f
-;;;### (autoloads nil "expand" "expand.el" (22150 28227 542072 702000))
+;;;### (autoloads nil "expand" "expand.el" (22086 11929 726062 731000))
 ;;; Generated autoloads from expand.el
 
 (autoload 'expand-add-abbrevs "expand" "\
@@ -10201,8 +10193,8 @@ This is used only in conjunction with `expand-add-abbrevs'.
 
 ;;;***
 \f
-;;;### (autoloads nil "f90" "progmodes/f90.el" (22150 28228 818072
-;;;;;;  702000))
+;;;### (autoloads nil "f90" "progmodes/f90.el" (22092 27718 152268
+;;;;;;  464000))
 ;;; Generated autoloads from progmodes/f90.el
 
 (autoload 'f90-mode "f90" "\
@@ -10269,8 +10261,8 @@ with no args, if that value is non-nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "face-remap" "face-remap.el" (22150 28227 542072
-;;;;;;  702000))
+;;;### (autoloads nil "face-remap" "face-remap.el" (22086 11929 726062
+;;;;;;  731000))
 ;;; Generated autoloads from face-remap.el
 
 (autoload 'face-remap-add-relative "face-remap" "\
@@ -10484,7 +10476,7 @@ you can set `feedmail-queue-reminder-alist' to nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "ffap" "ffap.el" (22150 28227 554072 702000))
+;;;### (autoloads nil "ffap" "ffap.el" (22086 11929 730062 731000))
 ;;; Generated autoloads from ffap.el
 
 (autoload 'ffap-next "ffap" "\
@@ -10547,8 +10539,8 @@ Evaluate the forms in variable `ffap-bindings'.
 
 ;;;***
 \f
-;;;### (autoloads nil "filecache" "filecache.el" (22150 28227 554072
-;;;;;;  702000))
+;;;### (autoloads nil "filecache" "filecache.el" (22086 11929 734062
+;;;;;;  731000))
 ;;; Generated autoloads from filecache.el
 
 (autoload 'file-cache-add-directory "filecache" "\
@@ -10605,8 +10597,8 @@ the name is considered already unique; only the second substitution
 
 ;;;***
 \f
-;;;### (autoloads nil "filenotify" "filenotify.el" (22150 28227 554072
-;;;;;;  702000))
+;;;### (autoloads nil "filenotify" "filenotify.el" (22086 11929 734062
+;;;;;;  731000))
 ;;; Generated autoloads from filenotify.el
 
 (autoload 'file-notify-handle-event "filenotify" "\
@@ -10621,8 +10613,8 @@ Otherwise, signal a `file-notify-error'.
 
 ;;;***
 \f
-;;;### (autoloads nil "files-x" "files-x.el" (22150 28227 554072
-;;;;;;  702000))
+;;;### (autoloads nil "files-x" "files-x.el" (22086 11929 734062
+;;;;;;  731000))
 ;;; Generated autoloads from files-x.el
 
 (autoload 'add-file-local-variable "files-x" "\
@@ -10687,8 +10679,8 @@ Copy directory-local variables to the -*- line.
 
 ;;;***
 \f
-;;;### (autoloads nil "filesets" "filesets.el" (22150 28227 578072
-;;;;;;  702000))
+;;;### (autoloads nil "filesets" "filesets.el" (22092 27717 792268
+;;;;;;  464000))
 ;;; Generated autoloads from filesets.el
 
 (autoload 'filesets-init "filesets" "\
@@ -10699,8 +10691,8 @@ Set up hooks, load the cache file -- if existing -- and build the menu.
 
 ;;;***
 \f
-;;;### (autoloads nil "find-cmd" "find-cmd.el" (22150 28227 578072
-;;;;;;  702000))
+;;;### (autoloads nil "find-cmd" "find-cmd.el" (22086 11929 746062
+;;;;;;  731000))
 ;;; Generated autoloads from find-cmd.el
 (push (purecopy '(find-cmd 0 6)) package--builtin-versions)
 
@@ -10720,8 +10712,8 @@ result is a string that should be ready for the command line.
 
 ;;;***
 \f
-;;;### (autoloads nil "find-dired" "find-dired.el" (22150 28227 578072
-;;;;;;  702000))
+;;;### (autoloads nil "find-dired" "find-dired.el" (22086 11929 746062
+;;;;;;  731000))
 ;;; Generated autoloads from find-dired.el
 
 (autoload 'find-dired "find-dired" "\
@@ -10761,8 +10753,8 @@ use in place of \"-ls\" as the final argument.
 
 ;;;***
 \f
-;;;### (autoloads nil "find-file" "find-file.el" (22150 28227 578072
-;;;;;;  702000))
+;;;### (autoloads nil "find-file" "find-file.el" (22092 27717 792268
+;;;;;;  464000))
 ;;; 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)))) "\
@@ -10852,8 +10844,8 @@ Visit the file you click on in another window.
 
 ;;;***
 \f
-;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (22150
-;;;;;;  28227 430072 702000))
+;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (22086
+;;;;;;  11929 678062 731000))
 ;;; Generated autoloads from emacs-lisp/find-func.el
 
 (autoload 'find-library "find-func" "\
@@ -11023,8 +11015,8 @@ Define some key bindings for the find-function family of functions.
 
 ;;;***
 \f
-;;;### (autoloads nil "find-lisp" "find-lisp.el" (22150 28227 578072
-;;;;;;  702000))
+;;;### (autoloads nil "find-lisp" "find-lisp.el" (22086 11929 746062
+;;;;;;  731000))
 ;;; Generated autoloads from find-lisp.el
 
 (autoload 'find-lisp-find-dired "find-lisp" "\
@@ -11044,7 +11036,7 @@ Change the filter on a `find-lisp-find-dired' buffer to REGEXP.
 
 ;;;***
 \f
-;;;### (autoloads nil "finder" "finder.el" (22150 28227 578072 702000))
+;;;### (autoloads nil "finder" "finder.el" (22086 11929 750062 731000))
 ;;; Generated autoloads from finder.el
 (push (purecopy '(finder 1 0)) package--builtin-versions)
 
@@ -11066,8 +11058,8 @@ Find packages matching a given keyword.
 
 ;;;***
 \f
-;;;### (autoloads nil "flow-ctrl" "flow-ctrl.el" (22150 28227 578072
-;;;;;;  702000))
+;;;### (autoloads nil "flow-ctrl" "flow-ctrl.el" (22086 11929 750062
+;;;;;;  731000))
 ;;; Generated autoloads from flow-ctrl.el
 
 (autoload 'enable-flow-control "flow-ctrl" "\
@@ -11088,8 +11080,8 @@ to get the effect of a C-q.
 
 ;;;***
 \f
-;;;### (autoloads nil "flow-fill" "gnus/flow-fill.el" (22150 28227
-;;;;;;  658072 702000))
+;;;### (autoloads nil "flow-fill" "gnus/flow-fill.el" (22086 11929
+;;;;;;  774062 731000))
 ;;; Generated autoloads from gnus/flow-fill.el
 
 (autoload 'fill-flowed-encode "flow-fill" "\
@@ -11104,8 +11096,8 @@ to get the effect of a C-q.
 
 ;;;***
 \f
-;;;### (autoloads nil "flymake" "progmodes/flymake.el" (22150 28228
-;;;;;;  818072 702000))
+;;;### (autoloads nil "flymake" "progmodes/flymake.el" (22092 27718
+;;;;;;  156268 464000))
 ;;; Generated autoloads from progmodes/flymake.el
 (push (purecopy '(flymake 0 3)) package--builtin-versions)
 
@@ -11135,8 +11127,8 @@ Turn flymake mode off.
 
 ;;;***
 \f
-;;;### (autoloads nil "flyspell" "textmodes/flyspell.el" (22150 28229
-;;;;;;  102072 702000))
+;;;### (autoloads nil "flyspell" "textmodes/flyspell.el" (22086 11930
+;;;;;;  314062 731000))
 ;;; Generated autoloads from textmodes/flyspell.el
 
 (autoload 'flyspell-prog-mode "flyspell" "\
@@ -11206,14 +11198,14 @@ Flyspell whole buffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "foldout" "foldout.el" (22150 28227 582072
-;;;;;;  702000))
+;;;### (autoloads nil "foldout" "foldout.el" (22086 11929 750062
+;;;;;;  731000))
 ;;; Generated autoloads from foldout.el
 (push (purecopy '(foldout 1 10)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "follow" "follow.el" (22150 28227 582072 702000))
+;;;### (autoloads nil "follow" "follow.el" (22096 24780 228094 47000))
 ;;; Generated autoloads from follow.el
 
 (autoload 'turn-on-follow-mode "follow" "\
@@ -11307,8 +11299,8 @@ selected if the original window is the first one in the frame.
 
 ;;;***
 \f
-;;;### (autoloads nil "footnote" "mail/footnote.el" (22150 28228
-;;;;;;  226072 702000))
+;;;### (autoloads nil "footnote" "mail/footnote.el" (22086 11929
+;;;;;;  934062 731000))
 ;;; Generated autoloads from mail/footnote.el
 (push (purecopy '(footnote 0 19)) package--builtin-versions)
 
@@ -11327,7 +11319,7 @@ play around with the following keys:
 
 ;;;***
 \f
-;;;### (autoloads nil "forms" "forms.el" (22150 28227 586072 702000))
+;;;### (autoloads nil "forms" "forms.el" (22086 11929 754062 731000))
 ;;; Generated autoloads from forms.el
 
 (autoload 'forms-mode "forms" "\
@@ -11363,8 +11355,8 @@ Visit a file in Forms mode in other window.
 
 ;;;***
 \f
-;;;### (autoloads nil "fortran" "progmodes/fortran.el" (22150 28228
-;;;;;;  822072 702000))
+;;;### (autoloads nil "fortran" "progmodes/fortran.el" (22092 27718
+;;;;;;  156268 464000))
 ;;; Generated autoloads from progmodes/fortran.el
 
 (autoload 'fortran-mode "fortran" "\
@@ -11441,8 +11433,8 @@ with no args, if that value is non-nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "fortune" "play/fortune.el" (22150 28228 678072
-;;;;;;  702000))
+;;;### (autoloads nil "fortune" "play/fortune.el" (22086 11930 126062
+;;;;;;  731000))
 ;;; Generated autoloads from play/fortune.el
 
 (autoload 'fortune-add-fortune "fortune" "\
@@ -11490,8 +11482,8 @@ and choose the directory as the fortune-file.
 
 ;;;***
 \f
-;;;### (autoloads nil "frameset" "frameset.el" (22150 28227 622072
-;;;;;;  702000))
+;;;### (autoloads nil "frameset" "frameset.el" (22086 11929 754062
+;;;;;;  731000))
 ;;; Generated autoloads from frameset.el
 
 (defvar frameset-session-filter-alist '((name . :never) (left . frameset-filter-iconified) (minibuffer . frameset-filter-minibuffer) (top . frameset-filter-iconified)) "\
@@ -11677,15 +11669,15 @@ Interactively, reads the register using `register-read-with-preview'.
 
 ;;;***
 \f
-;;;### (autoloads nil "gamegrid" "play/gamegrid.el" (22150 28228
-;;;;;;  678072 702000))
+;;;### (autoloads nil "gamegrid" "play/gamegrid.el" (22086 11930
+;;;;;;  126062 731000))
 ;;; Generated autoloads from play/gamegrid.el
 (push (purecopy '(gamegrid 1 2)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (22150 28228
-;;;;;;  822072 702000))
+;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (22092 27718
+;;;;;;  172268 464000))
 ;;; Generated autoloads from progmodes/gdb-mi.el
 
 (defvar gdb-enable-debug nil "\
@@ -11762,8 +11754,8 @@ detailed description of this mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "generic" "emacs-lisp/generic.el" (22150 28227
-;;;;;;  430072 702000))
+;;;### (autoloads nil "generic" "emacs-lisp/generic.el" (22086 11929
+;;;;;;  678062 731000))
 ;;; Generated autoloads from emacs-lisp/generic.el
 
 (defvar generic-mode-list nil "\
@@ -11843,8 +11835,8 @@ regular expression that can be used as an element of
 
 ;;;***
 \f
-;;;### (autoloads nil "glasses" "progmodes/glasses.el" (22150 28228
-;;;;;;  822072 702000))
+;;;### (autoloads nil "glasses" "progmodes/glasses.el" (22086 11930
+;;;;;;  178062 731000))
 ;;; Generated autoloads from progmodes/glasses.el
 
 (autoload 'glasses-mode "glasses" "\
@@ -11858,8 +11850,8 @@ add virtual separators (like underscores) at places they belong to.
 
 ;;;***
 \f
-;;;### (autoloads nil "gmm-utils" "gnus/gmm-utils.el" (22150 28227
-;;;;;;  662072 702000))
+;;;### (autoloads nil "gmm-utils" "gnus/gmm-utils.el" (22086 11929
+;;;;;;  778062 731000))
 ;;; Generated autoloads from gnus/gmm-utils.el
 
 (autoload 'gmm-regexp-concat "gmm-utils" "\
@@ -11913,7 +11905,7 @@ DEFAULT-MAP specifies the default key map for ICON-LIST.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus" "gnus/gnus.el" (22150 28227 942072 702000))
+;;;### (autoloads nil "gnus" "gnus/gnus.el" (22086 11929 810062 731000))
 ;;; Generated autoloads from gnus/gnus.el
 (push (purecopy '(gnus 5 13)) package--builtin-versions)
 (when (fboundp 'custom-autoload)
@@ -11963,8 +11955,8 @@ prompt the user for the name of an NNTP server to use.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-agent" "gnus/gnus-agent.el" (22150 28227
-;;;;;;  666072 702000))
+;;;### (autoloads nil "gnus-agent" "gnus/gnus-agent.el" (22086 11929
+;;;;;;  778062 731000))
 ;;; Generated autoloads from gnus/gnus-agent.el
 
 (autoload 'gnus-unplugged "gnus-agent" "\
@@ -12054,8 +12046,8 @@ CLEAN is obsolete and ignored.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (22150 28227
-;;;;;;  674072 702000))
+;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (22086 11929
+;;;;;;  782062 731000))
 ;;; Generated autoloads from gnus/gnus-art.el
 
 (autoload 'gnus-article-prepare-display "gnus-art" "\
@@ -12065,8 +12057,8 @@ Make the current buffer look like a nice article.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-bookmark" "gnus/gnus-bookmark.el" (22150
-;;;;;;  28227 674072 702000))
+;;;### (autoloads nil "gnus-bookmark" "gnus/gnus-bookmark.el" (22086
+;;;;;;  11929 782062 731000))
 ;;; Generated autoloads from gnus/gnus-bookmark.el
 
 (autoload 'gnus-bookmark-set "gnus-bookmark" "\
@@ -12089,8 +12081,8 @@ deletion, or > if it is flagged for displaying.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-cache" "gnus/gnus-cache.el" (22150 28227
-;;;;;;  678072 702000))
+;;;### (autoloads nil "gnus-cache" "gnus/gnus-cache.el" (22086 11929
+;;;;;;  782062 731000))
 ;;; Generated autoloads from gnus/gnus-cache.el
 
 (autoload 'gnus-jog-cache "gnus-cache" "\
@@ -12131,8 +12123,8 @@ supported.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-delay" "gnus/gnus-delay.el" (22150 28227
-;;;;;;  682072 702000))
+;;;### (autoloads nil "gnus-delay" "gnus/gnus-delay.el" (22086 11929
+;;;;;;  786062 731000))
 ;;; Generated autoloads from gnus/gnus-delay.el
 
 (autoload 'gnus-delay-article "gnus-delay" "\
@@ -12167,8 +12159,8 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-diary" "gnus/gnus-diary.el" (22150 28227
-;;;;;;  686072 702000))
+;;;### (autoloads nil "gnus-diary" "gnus/gnus-diary.el" (22086 11929
+;;;;;;  786062 731000))
 ;;; Generated autoloads from gnus/gnus-diary.el
 
 (autoload 'gnus-user-format-function-d "gnus-diary" "\
@@ -12183,8 +12175,8 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-dired" "gnus/gnus-dired.el" (22150 28227
-;;;;;;  686072 702000))
+;;;### (autoloads nil "gnus-dired" "gnus/gnus-dired.el" (22086 11929
+;;;;;;  786062 731000))
 ;;; Generated autoloads from gnus/gnus-dired.el
 
 (autoload 'turn-on-gnus-dired-mode "gnus-dired" "\
@@ -12194,8 +12186,8 @@ Convenience method to turn on gnus-dired-mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-draft" "gnus/gnus-draft.el" (22150 28227
-;;;;;;  686072 702000))
+;;;### (autoloads nil "gnus-draft" "gnus/gnus-draft.el" (22086 11929
+;;;;;;  786062 731000))
 ;;; Generated autoloads from gnus/gnus-draft.el
 
 (autoload 'gnus-draft-reminder "gnus-draft" "\
@@ -12205,8 +12197,8 @@ Reminder user if there are unsent drafts.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-fun" "gnus/gnus-fun.el" (22150 28227
-;;;;;;  686072 702000))
+;;;### (autoloads nil "gnus-fun" "gnus/gnus-fun.el" (22086 11929
+;;;;;;  786062 731000))
 ;;; Generated autoloads from gnus/gnus-fun.el
 
 (autoload 'gnus--random-face-with-type "gnus-fun" "\
@@ -12271,8 +12263,8 @@ Insert a random Face header from `gnus-face-directory'.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-gravatar" "gnus/gnus-gravatar.el" (22150
-;;;;;;  28227 686072 702000))
+;;;### (autoloads nil "gnus-gravatar" "gnus/gnus-gravatar.el" (22086
+;;;;;;  11929 786062 731000))
 ;;; Generated autoloads from gnus/gnus-gravatar.el
 
 (autoload 'gnus-treat-from-gravatar "gnus-gravatar" "\
@@ -12289,8 +12281,8 @@ If gravatars are already displayed, remove them.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (22150 28227
-;;;;;;  694072 702000))
+;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (22086 11929
+;;;;;;  790062 731000))
 ;;; Generated autoloads from gnus/gnus-group.el
 
 (autoload 'gnus-fetch-group "gnus-group" "\
@@ -12307,8 +12299,8 @@ Pop up a frame and enter GROUP.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-html" "gnus/gnus-html.el" (22150 28227
-;;;;;;  694072 702000))
+;;;### (autoloads nil "gnus-html" "gnus/gnus-html.el" (22086 11929
+;;;;;;  790062 731000))
 ;;; Generated autoloads from gnus/gnus-html.el
 
 (autoload 'gnus-article-html "gnus-html" "\
@@ -12323,8 +12315,8 @@ Pop up a frame and enter GROUP.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-kill" "gnus/gnus-kill.el" (22150 28227
-;;;;;;  698072 702000))
+;;;### (autoloads nil "gnus-kill" "gnus/gnus-kill.el" (22086 11929
+;;;;;;  790062 731000))
 ;;; Generated autoloads from gnus/gnus-kill.el
 
 (defalias 'gnus-batch-kill 'gnus-batch-score)
@@ -12337,8 +12329,8 @@ Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-ml" "gnus/gnus-ml.el" (22150 28227 698072
-;;;;;;  702000))
+;;;### (autoloads nil "gnus-ml" "gnus/gnus-ml.el" (22086 11929 790062
+;;;;;;  731000))
 ;;; Generated autoloads from gnus/gnus-ml.el
 
 (autoload 'turn-on-gnus-mailing-list-mode "gnus-ml" "\
@@ -12361,8 +12353,8 @@ Minor mode for providing mailing-list commands.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-mlspl" "gnus/gnus-mlspl.el" (22150 28227
-;;;;;;  698072 702000))
+;;;### (autoloads nil "gnus-mlspl" "gnus/gnus-mlspl.el" (22092 27717
+;;;;;;  816268 464000))
 ;;; Generated autoloads from gnus/gnus-mlspl.el
 
 (autoload 'gnus-group-split-setup "gnus-mlspl" "\
@@ -12462,8 +12454,8 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns:
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (22150 28227
-;;;;;;  702072 702000))
+;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (22086 11929
+;;;;;;  794062 731000))
 ;;; Generated autoloads from gnus/gnus-msg.el
 
 (autoload 'gnus-msg-mail "gnus-msg" "\
@@ -12490,7 +12482,7 @@ Like `message-reply'.
 ;;;***
 \f
 ;;;### (autoloads nil "gnus-notifications" "gnus/gnus-notifications.el"
-;;;;;;  (22150 28227 702072 702000))
+;;;;;;  (22086 11929 794062 731000))
 ;;; Generated autoloads from gnus/gnus-notifications.el
 
 (autoload 'gnus-notifications "gnus-notifications" "\
@@ -12506,8 +12498,8 @@ This is typically a function to add in
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-picon" "gnus/gnus-picon.el" (22150 28227
-;;;;;;  702072 702000))
+;;;### (autoloads nil "gnus-picon" "gnus/gnus-picon.el" (22086 11929
+;;;;;;  794062 731000))
 ;;; Generated autoloads from gnus/gnus-picon.el
 
 (autoload 'gnus-treat-from-picon "gnus-picon" "\
@@ -12530,8 +12522,8 @@ If picons are already displayed, remove them.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-range" "gnus/gnus-range.el" (22150 28227
-;;;;;;  702072 702000))
+;;;### (autoloads nil "gnus-range" "gnus/gnus-range.el" (22086 11929
+;;;;;;  794062 731000))
 ;;; Generated autoloads from gnus/gnus-range.el
 
 (autoload 'gnus-sorted-difference "gnus-range" "\
@@ -12598,8 +12590,8 @@ Add NUM into sorted LIST by side effect.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-registry" "gnus/gnus-registry.el" (22150
-;;;;;;  28227 702072 702000))
+;;;### (autoloads nil "gnus-registry" "gnus/gnus-registry.el" (22086
+;;;;;;  11929 794062 731000))
 ;;; Generated autoloads from gnus/gnus-registry.el
 
 (autoload 'gnus-registry-initialize "gnus-registry" "\
@@ -12614,8 +12606,8 @@ Install the registry hooks.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-sieve" "gnus/gnus-sieve.el" (22150 28227
-;;;;;;  806072 702000))
+;;;### (autoloads nil "gnus-sieve" "gnus/gnus-sieve.el" (22086 11929
+;;;;;;  794062 731000))
 ;;; Generated autoloads from gnus/gnus-sieve.el
 
 (autoload 'gnus-sieve-update "gnus-sieve" "\
@@ -12642,8 +12634,8 @@ See the documentation for these variables and functions for details.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-spec" "gnus/gnus-spec.el" (22150 28227
-;;;;;;  806072 702000))
+;;;### (autoloads nil "gnus-spec" "gnus/gnus-spec.el" (22086 11929
+;;;;;;  798062 731000))
 ;;; Generated autoloads from gnus/gnus-spec.el
 
 (autoload 'gnus-update-format "gnus-spec" "\
@@ -12653,8 +12645,8 @@ Update the format specification near point.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (22150 28227
-;;;;;;  846072 702000))
+;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (22086 11929
+;;;;;;  798062 731000))
 ;;; Generated autoloads from gnus/gnus-start.el
 
 (autoload 'gnus-declare-backend "gnus-start" "\
@@ -12664,8 +12656,8 @@ Declare back end NAME with ABILITIES as a Gnus back end.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (22150 28227
-;;;;;;  858072 702000))
+;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (22086 11929
+;;;;;;  802062 731000))
 ;;; Generated autoloads from gnus/gnus-sum.el
 
 (autoload 'gnus-summary-bookmark-jump "gnus-sum" "\
@@ -12676,8 +12668,8 @@ BOOKMARK is a bookmark name or a bookmark record.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-sync" "gnus/gnus-sync.el" (22150 28227
-;;;;;;  862072 702000))
+;;;### (autoloads nil "gnus-sync" "gnus/gnus-sync.el" (22086 11929
+;;;;;;  802062 731000))
 ;;; Generated autoloads from gnus/gnus-sync.el
 
 (autoload 'gnus-sync-initialize "gnus-sync" "\
@@ -12692,8 +12684,8 @@ Install the sync hooks.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnus-win" "gnus/gnus-win.el" (22150 28227
-;;;;;;  938072 702000))
+;;;### (autoloads nil "gnus-win" "gnus/gnus-win.el" (22086 11929
+;;;;;;  806062 731000))
 ;;; Generated autoloads from gnus/gnus-win.el
 
 (autoload 'gnus-add-configuration "gnus-win" "\
@@ -12703,8 +12695,8 @@ Add the window configuration CONF to `gnus-buffer-configuration'.
 
 ;;;***
 \f
-;;;### (autoloads nil "gnutls" "net/gnutls.el" (22150 28228 358072
-;;;;;;  702000))
+;;;### (autoloads nil "gnutls" "net/gnutls.el" (22086 11929 994062
+;;;;;;  731000))
 ;;; Generated autoloads from net/gnutls.el
 
 (defvar gnutls-min-prime-bits 256 "\
@@ -12720,8 +12712,8 @@ A value of nil says to use the default GnuTLS value.")
 
 ;;;***
 \f
-;;;### (autoloads nil "gomoku" "play/gomoku.el" (22150 28228 678072
-;;;;;;  702000))
+;;;### (autoloads nil "gomoku" "play/gomoku.el" (22086 11930 126062
+;;;;;;  731000))
 ;;; Generated autoloads from play/gomoku.el
 
 (autoload 'gomoku "gomoku" "\
@@ -12747,8 +12739,8 @@ Use \\[describe-mode] for more info.
 
 ;;;***
 \f
-;;;### (autoloads nil "goto-addr" "net/goto-addr.el" (22150 28228
-;;;;;;  358072 702000))
+;;;### (autoloads nil "goto-addr" "net/goto-addr.el" (22086 11929
+;;;;;;  994062 731000))
 ;;; Generated autoloads from net/goto-addr.el
 
 (define-obsolete-function-alias 'goto-address-at-mouse 'goto-address-at-point "22.1")
@@ -12789,8 +12781,8 @@ Like `goto-address-mode', but only for comments and strings.
 
 ;;;***
 \f
-;;;### (autoloads nil "gravatar" "gnus/gravatar.el" (22150 28227
-;;;;;;  942072 702000))
+;;;### (autoloads nil "gravatar" "gnus/gravatar.el" (22086 11929
+;;;;;;  810062 731000))
 ;;; Generated autoloads from gnus/gravatar.el
 
 (autoload 'gravatar-retrieve "gravatar" "\
@@ -12806,8 +12798,8 @@ Retrieve MAIL-ADDRESS gravatar and returns it.
 
 ;;;***
 \f
-;;;### (autoloads nil "grep" "progmodes/grep.el" (22150 28228 826072
-;;;;;;  702000))
+;;;### (autoloads nil "grep" "progmodes/grep.el" (22086 11930 178062
+;;;;;;  731000))
 ;;; Generated autoloads from progmodes/grep.el
 
 (defvar grep-window-height nil "\
@@ -12974,7 +12966,7 @@ file name to `*.gz', and sets `grep-highlight-matches' to `always'.
 
 ;;;***
 \f
-;;;### (autoloads nil "gs" "gs.el" (22150 28228 26072 702000))
+;;;### (autoloads nil "gs" "gs.el" (22086 11929 854062 731000))
 ;;; Generated autoloads from gs.el
 
 (autoload 'gs-load-image "gs" "\
@@ -12987,8 +12979,8 @@ the form \"WINDOW-ID PIXMAP-ID\".  Value is non-nil if successful.
 
 ;;;***
 \f
-;;;### (autoloads nil "gud" "progmodes/gud.el" (22150 28228 826072
-;;;;;;  702000))
+;;;### (autoloads nil "gud" "progmodes/gud.el" (22092 27718 188268
+;;;;;;  464000))
 ;;; Generated autoloads from progmodes/gud.el
 
 (autoload 'gud-gdb "gud" "\
@@ -13083,8 +13075,8 @@ it if ARG is omitted or nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (22150 28227 434072
-;;;;;;  702000))
+;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (22099 26170 382017
+;;;;;;  16000))
 ;;; Generated autoloads from emacs-lisp/gv.el
 
 (autoload 'gv-get "gv" "\
@@ -13186,8 +13178,8 @@ binding mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "handwrite" "play/handwrite.el" (22150 28228
-;;;;;;  678072 702000))
+;;;### (autoloads nil "handwrite" "play/handwrite.el" (22086 11930
+;;;;;;  130062 731000))
 ;;; Generated autoloads from play/handwrite.el
 
 (autoload 'handwrite "handwrite" "\
@@ -13232,8 +13224,8 @@ to be updated.
 
 ;;;***
 \f
-;;;### (autoloads nil "hashcash" "mail/hashcash.el" (22150 28228
-;;;;;;  230072 702000))
+;;;### (autoloads nil "hashcash" "mail/hashcash.el" (22092 27717
+;;;;;;  880268 464000))
 ;;; Generated autoloads from mail/hashcash.el
 
 (autoload 'hashcash-insert-payment "hashcash" "\
@@ -13275,8 +13267,8 @@ Prefix arg sets default accept amount temporarily.
 
 ;;;***
 \f
-;;;### (autoloads nil "help-at-pt" "help-at-pt.el" (22150 28228 26072
-;;;;;;  702000))
+;;;### (autoloads nil "help-at-pt" "help-at-pt.el" (22086 11929 854062
+;;;;;;  731000))
 ;;; Generated autoloads from help-at-pt.el
 
 (autoload 'help-at-pt-string "help-at-pt" "\
@@ -13403,8 +13395,8 @@ different regions.  With numeric argument ARG, behaves like
 
 ;;;***
 \f
-;;;### (autoloads nil "help-fns" "help-fns.el" (22150 28228 26072
-;;;;;;  702000))
+;;;### (autoloads nil "help-fns" "help-fns.el" (22101 42694 89526
+;;;;;;  804000))
 ;;; Generated autoloads from help-fns.el
 
 (autoload 'describe-function "help-fns" "\
@@ -13491,8 +13483,8 @@ Produce a texinfo buffer with sorted doc-strings from the DOC file.
 
 ;;;***
 \f
-;;;### (autoloads nil "help-macro" "help-macro.el" (22150 28228 26072
-;;;;;;  702000))
+;;;### (autoloads nil "help-macro" "help-macro.el" (22086 11929 854062
+;;;;;;  731000))
 ;;; Generated autoloads from help-macro.el
 
 (defvar three-step-help nil "\
@@ -13506,8 +13498,8 @@ gives the window that lists the options.")
 
 ;;;***
 \f
-;;;### (autoloads nil "help-mode" "help-mode.el" (22150 28228 26072
-;;;;;;  702000))
+;;;### (autoloads nil "help-mode" "help-mode.el" (22086 11929 854062
+;;;;;;  731000))
 ;;; Generated autoloads from help-mode.el
 
 (autoload 'help-mode "help-mode" "\
@@ -13608,8 +13600,8 @@ BOOKMARK is a bookmark name or a bookmark record.
 
 ;;;***
 \f
-;;;### (autoloads nil "helper" "emacs-lisp/helper.el" (22150 28227
-;;;;;;  434072 702000))
+;;;### (autoloads nil "helper" "emacs-lisp/helper.el" (22086 11929
+;;;;;;  678062 731000))
 ;;; Generated autoloads from emacs-lisp/helper.el
 
 (autoload 'Helper-describe-bindings "helper" "\
@@ -13624,7 +13616,7 @@ Provide help for current mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "hexl" "hexl.el" (22150 28228 26072 702000))
+;;;### (autoloads nil "hexl" "hexl.el" (22086 11929 858062 731000))
 ;;; Generated autoloads from hexl.el
 
 (autoload 'hexl-mode "hexl" "\
@@ -13718,7 +13710,8 @@ This discards the buffer's undo information.
 
 ;;;***
 \f
-;;;### (autoloads nil "hi-lock" "hi-lock.el" (22150 28228 30072 702000))
+;;;### (autoloads nil "hi-lock" "hi-lock.el" (22092 27717 860268
+;;;;;;  464000))
 ;;; Generated autoloads from hi-lock.el
 
 (autoload 'hi-lock-mode "hi-lock" "\
@@ -13885,8 +13878,8 @@ be found in variable `hi-lock-interactive-patterns'.
 
 ;;;***
 \f
-;;;### (autoloads nil "hideif" "progmodes/hideif.el" (22150 28228
-;;;;;;  826072 702000))
+;;;### (autoloads nil "hideif" "progmodes/hideif.el" (22092 27718
+;;;;;;  188268 464000))
 ;;; Generated autoloads from progmodes/hideif.el
 
 (autoload 'hide-ifdef-mode "hideif" "\
@@ -13933,8 +13926,8 @@ Several variables affect how the hiding is done:
 
 ;;;***
 \f
-;;;### (autoloads nil "hideshow" "progmodes/hideshow.el" (22150 28228
-;;;;;;  830072 702000))
+;;;### (autoloads nil "hideshow" "progmodes/hideshow.el" (22093 48588
+;;;;;;  580393 539000))
 ;;; 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))) "\
@@ -13996,8 +13989,8 @@ Unconditionally turn off `hs-minor-mode'.
 
 ;;;***
 \f
-;;;### (autoloads nil "hilit-chg" "hilit-chg.el" (22150 28228 30072
-;;;;;;  702000))
+;;;### (autoloads nil "hilit-chg" "hilit-chg.el" (22086 11929 858062
+;;;;;;  731000))
 ;;; Generated autoloads from hilit-chg.el
 
 (autoload 'highlight-changes-mode "hilit-chg" "\
@@ -14128,8 +14121,8 @@ See `highlight-changes-mode' for more information on Highlight-Changes mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "hippie-exp" "hippie-exp.el" (22150 28228 30072
-;;;;;;  702000))
+;;;### (autoloads nil "hippie-exp" "hippie-exp.el" (22086 11929 858062
+;;;;;;  731000))
 ;;; Generated autoloads from hippie-exp.el
 (push (purecopy '(hippie-exp 1 6)) package--builtin-versions)
 
@@ -14161,7 +14154,8 @@ argument VERBOSE non-nil makes the function verbose.
 
 ;;;***
 \f
-;;;### (autoloads nil "hl-line" "hl-line.el" (22150 28228 30072 702000))
+;;;### (autoloads nil "hl-line" "hl-line.el" (22086 11929 858062
+;;;;;;  731000))
 ;;; Generated autoloads from hl-line.el
 
 (autoload 'hl-line-mode "hl-line" "\
@@ -14210,8 +14204,8 @@ Global-Hl-Line mode uses the functions `global-hl-line-unhighlight' and
 
 ;;;***
 \f
-;;;### (autoloads nil "holidays" "calendar/holidays.el" (22150 28227
-;;;;;;  78072 702000))
+;;;### (autoloads nil "holidays" "calendar/holidays.el" (22086 11929
+;;;;;;  534062 731000))
 ;;; 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 4 "Independence Day") (holiday-float 9 1 1 "Labor Day") (holiday-float 10 1 2 "Columbus Day") (holiday-fixed 10 31 "Halloween") (holiday-fixed 11 11 "Veteran's Day") (holiday-float 11 4 4 "Thanksgiving"))) "\
@@ -14321,8 +14315,8 @@ The optional LABEL is used to label the buffer created.
 
 ;;;***
 \f
-;;;### (autoloads nil "html2text" "gnus/html2text.el" (22150 28227
-;;;;;;  946072 702000))
+;;;### (autoloads nil "html2text" "gnus/html2text.el" (22086 11929
+;;;;;;  810062 731000))
 ;;; Generated autoloads from gnus/html2text.el
 
 (autoload 'html2text "html2text" "\
@@ -14332,8 +14326,8 @@ Convert HTML to plain text in the current buffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "htmlfontify" "htmlfontify.el" (22150 28228
-;;;;;;  34072 702000))
+;;;### (autoloads nil "htmlfontify" "htmlfontify.el" (22092 27717
+;;;;;;  864268 464000))
 ;;; Generated autoloads from htmlfontify.el
 (push (purecopy '(htmlfontify 0 21)) package--builtin-versions)
 
@@ -14366,8 +14360,8 @@ You may also want to set `hfy-page-header' and `hfy-page-footer'.
 
 ;;;***
 \f
-;;;### (autoloads nil "ibuf-macs" "ibuf-macs.el" (22150 28228 50072
-;;;;;;  702000))
+;;;### (autoloads nil "ibuf-macs" "ibuf-macs.el" (22086 11929 862062
+;;;;;;  731000))
 ;;; Generated autoloads from ibuf-macs.el
 
 (autoload 'define-ibuffer-column "ibuf-macs" "\
@@ -14469,7 +14463,8 @@ bound to the current value of the filter.
 
 ;;;***
 \f
-;;;### (autoloads nil "ibuffer" "ibuffer.el" (22150 28228 54072 702000))
+;;;### (autoloads nil "ibuffer" "ibuffer.el" (22092 27717 868268
+;;;;;;  464000))
 ;;; Generated autoloads from ibuffer.el
 
 (autoload 'ibuffer-list-buffers "ibuffer" "\
@@ -14508,8 +14503,8 @@ FORMATS is the value to use for `ibuffer-formats'.
 
 ;;;***
 \f
-;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (22150
-;;;;;;  28227 78072 702000))
+;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (22092
+;;;;;;  27717 556268 464000))
 ;;; Generated autoloads from calendar/icalendar.el
 (push (purecopy '(icalendar 0 19)) package--builtin-versions)
 
@@ -14562,8 +14557,8 @@ buffer `*icalendar-errors*'.
 
 ;;;***
 \f
-;;;### (autoloads nil "icomplete" "icomplete.el" (22150 28228 54072
-;;;;;;  702000))
+;;;### (autoloads nil "icomplete" "icomplete.el" (22086 11929 862062
+;;;;;;  731000))
 ;;; Generated autoloads from icomplete.el
 
 (defvar icomplete-mode nil "\
@@ -14602,8 +14597,8 @@ completions:
 
 ;;;***
 \f
-;;;### (autoloads nil "icon" "progmodes/icon.el" (22150 28228 830072
-;;;;;;  702000))
+;;;### (autoloads nil "icon" "progmodes/icon.el" (22086 11930 186062
+;;;;;;  731000))
 ;;; Generated autoloads from progmodes/icon.el
 
 (autoload 'icon-mode "icon" "\
@@ -14643,8 +14638,8 @@ with no args, if that value is non-nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (22150
-;;;;;;  28228 850072 702000))
+;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (22086
+;;;;;;  11930 194062 731000))
 ;;; Generated autoloads from progmodes/idlw-shell.el
 
 (autoload 'idlwave-shell "idlw-shell" "\
@@ -14669,8 +14664,8 @@ See also the variable `idlwave-shell-prompt-pattern'.
 
 ;;;***
 \f
-;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (22150 28228
-;;;;;;  862072 702000))
+;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (22092 27718
+;;;;;;  216268 464000))
 ;;; Generated autoloads from progmodes/idlwave.el
 (push (purecopy '(idlwave 6 1 22)) package--builtin-versions)
 
@@ -14799,7 +14794,7 @@ The main features of this mode are
 
 ;;;***
 \f
-;;;### (autoloads nil "ido" "ido.el" (22150 28228 82072 702000))
+;;;### (autoloads nil "ido" "ido.el" (22093 48588 548393 539000))
 ;;; Generated autoloads from ido.el
 
 (defvar ido-mode nil "\
@@ -15061,7 +15056,7 @@ DEF, if non-nil, is the default value.
 
 ;;;***
 \f
-;;;### (autoloads nil "ielm" "ielm.el" (22150 28228 82072 702000))
+;;;### (autoloads nil "ielm" "ielm.el" (22086 11929 866062 731000))
 ;;; Generated autoloads from ielm.el
 
 (autoload 'ielm "ielm" "\
@@ -15073,7 +15068,7 @@ See `inferior-emacs-lisp-mode' for details.
 
 ;;;***
 \f
-;;;### (autoloads nil "iimage" "iimage.el" (22150 28228 82072 702000))
+;;;### (autoloads nil "iimage" "iimage.el" (22086 11929 866062 731000))
 ;;; Generated autoloads from iimage.el
 
 (define-obsolete-function-alias 'turn-on-iimage-mode 'iimage-mode "24.1")
@@ -15089,7 +15084,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'.
 
 ;;;***
 \f
-;;;### (autoloads nil "image" "image.el" (22150 28228 86072 702000))
+;;;### (autoloads nil "image" "image.el" (22092 27717 872268 464000))
 ;;; Generated autoloads from image.el
 
 (autoload 'image-type-from-data "image" "\
@@ -15282,8 +15277,8 @@ If Emacs is compiled without ImageMagick support, this does nothing.
 
 ;;;***
 \f
-;;;### (autoloads nil "image-dired" "image-dired.el" (22150 28228
-;;;;;;  86072 702000))
+;;;### (autoloads nil "image-dired" "image-dired.el" (22092 27717
+;;;;;;  872268 464000))
 ;;; Generated autoloads from image-dired.el
 (push (purecopy '(image-dired 0 4 11)) package--builtin-versions)
 
@@ -15420,8 +15415,8 @@ easy-to-use form.
 
 ;;;***
 \f
-;;;### (autoloads nil "image-file" "image-file.el" (22150 28228 86072
-;;;;;;  702000))
+;;;### (autoloads nil "image-file" "image-file.el" (22086 11929 866062
+;;;;;;  731000))
 ;;; 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")) "\
@@ -15483,8 +15478,8 @@ An image file is one whose name has an extension in
 
 ;;;***
 \f
-;;;### (autoloads nil "image-mode" "image-mode.el" (22150 28228 86072
-;;;;;;  702000))
+;;;### (autoloads nil "image-mode" "image-mode.el" (22091 6875 287217
+;;;;;;  891000))
 ;;; Generated autoloads from image-mode.el
 
 (autoload 'image-mode "image-mode" "\
@@ -15531,7 +15526,7 @@ on these modes.
 
 ;;;***
 \f
-;;;### (autoloads nil "imenu" "imenu.el" (22150 28228 90072 702000))
+;;;### (autoloads nil "imenu" "imenu.el" (22092 27717 872268 464000))
 ;;; Generated autoloads from imenu.el
 
 (defvar imenu-sort-function nil "\
@@ -15669,8 +15664,8 @@ for more information.
 
 ;;;***
 \f
-;;;### (autoloads nil "ind-util" "language/ind-util.el" (22150 28228
-;;;;;;  190072 702000))
+;;;### (autoloads nil "ind-util" "language/ind-util.el" (22086 11929
+;;;;;;  898062 731000))
 ;;; Generated autoloads from language/ind-util.el
 
 (autoload 'indian-compose-region "ind-util" "\
@@ -15700,8 +15695,8 @@ Convert old Emacs Devanagari characters to UCS.
 
 ;;;***
 \f
-;;;### (autoloads nil "inf-lisp" "progmodes/inf-lisp.el" (22150 28228
-;;;;;;  862072 702000))
+;;;### (autoloads nil "inf-lisp" "progmodes/inf-lisp.el" (22086 11930
+;;;;;;  206062 731000))
 ;;; Generated autoloads from progmodes/inf-lisp.el
 
 (autoload 'inferior-lisp "inf-lisp" "\
@@ -15719,7 +15714,7 @@ of `inferior-lisp-program').  Runs the hooks from
 
 ;;;***
 \f
-;;;### (autoloads nil "info" "info.el" (22150 28228 98072 702000))
+;;;### (autoloads nil "info" "info.el" (22086 11929 874062 731000))
 ;;; 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/" "" "gnu/" "gnu/lib/" "gnu/lib/emacs/" "emacs/" "lib/" "lib/emacs/")) (standard-info-dirs (apply #'nconc (mapcar (lambda (pfx) (let ((dirs (mapcar (lambda (sfx) (concat pfx sfx "info/")) suffixes))) (prune-directory-list dirs))) prefixes))) (dirs (if (member config-dir standard-info-dirs) (nconc standard-info-dirs (list config-dir)) (cons config-dir standard-info-dirs)))) (if (not (eq system-type 'windows-nt)) dirs (let* ((instdir (file-name-directory invocation-directory)) (dir1 (expand-file-name "../info/" instdir)) (dir2 (expand-file-name "../../../info/" instdir))) (cond ((file-exists-p dir1) (append dirs (list dir1))) ((file-exists-p dir2) (append dirs (list dir2))) (t dirs))))) "\
@@ -15931,8 +15926,8 @@ completion alternatives to currently visited manuals.
 
 ;;;***
 \f
-;;;### (autoloads nil "info-look" "info-look.el" (22150 28228 90072
-;;;;;;  702000))
+;;;### (autoloads nil "info-look" "info-look.el" (22086 11929 870062
+;;;;;;  731000))
 ;;; Generated autoloads from info-look.el
 
 (autoload 'info-lookup-reset "info-look" "\
@@ -15979,8 +15974,8 @@ Perform completion on file preceding point.
 
 ;;;***
 \f
-;;;### (autoloads nil "info-xref" "info-xref.el" (22150 28228 94072
-;;;;;;  702000))
+;;;### (autoloads nil "info-xref" "info-xref.el" (22086 11929 870062
+;;;;;;  731000))
 ;;; Generated autoloads from info-xref.el
 (push (purecopy '(info-xref 3)) package--builtin-versions)
 
@@ -16063,8 +16058,8 @@ the sources handy.
 
 ;;;***
 \f
-;;;### (autoloads nil "informat" "informat.el" (22150 28228 102072
-;;;;;;  702000))
+;;;### (autoloads nil "informat" "informat.el" (22086 11929 874062
+;;;;;;  731000))
 ;;; Generated autoloads from informat.el
 
 (autoload 'Info-tagify "informat" "\
@@ -16109,8 +16104,8 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\"
 
 ;;;***
 \f
-;;;### (autoloads nil "inline" "emacs-lisp/inline.el" (22150 28227
-;;;;;;  434072 702000))
+;;;### (autoloads nil "inline" "emacs-lisp/inline.el" (22086 11929
+;;;;;;  678062 731000))
 ;;; Generated autoloads from emacs-lisp/inline.el
 
 (autoload 'define-inline "inline" "\
@@ -16124,8 +16119,8 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\"
 
 ;;;***
 \f
-;;;### (autoloads nil "inversion" "cedet/inversion.el" (22150 28227
-;;;;;;  218072 702000))
+;;;### (autoloads nil "inversion" "cedet/inversion.el" (22086 11929
+;;;;;;  550062 731000))
 ;;; Generated autoloads from cedet/inversion.el
 (push (purecopy '(inversion 1 3)) package--builtin-versions)
 
@@ -16137,8 +16132,8 @@ Only checks one based on which kind of Emacs is being run.
 
 ;;;***
 \f
-;;;### (autoloads nil "isearch-x" "international/isearch-x.el" (22150
-;;;;;;  28228 106072 702000))
+;;;### (autoloads nil "isearch-x" "international/isearch-x.el" (22086
+;;;;;;  11929 874062 731000))
 ;;; Generated autoloads from international/isearch-x.el
 
 (autoload 'isearch-toggle-specified-input-method "isearch-x" "\
@@ -16158,8 +16153,8 @@ Toggle input method in interactive search.
 
 ;;;***
 \f
-;;;### (autoloads nil "isearchb" "isearchb.el" (22150 28228 154072
-;;;;;;  702000))
+;;;### (autoloads nil "isearchb" "isearchb.el" (22086 11929 886062
+;;;;;;  731000))
 ;;; Generated autoloads from isearchb.el
 (push (purecopy '(isearchb 1 5)) package--builtin-versions)
 
@@ -16173,8 +16168,8 @@ accessed via isearchb.
 
 ;;;***
 \f
-;;;### (autoloads nil "iso-cvt" "international/iso-cvt.el" (22150
-;;;;;;  28228 106072 702000))
+;;;### (autoloads nil "iso-cvt" "international/iso-cvt.el" (22086
+;;;;;;  11929 874062 731000))
 ;;; Generated autoloads from international/iso-cvt.el
 
 (autoload 'iso-spanish "iso-cvt" "\
@@ -16265,15 +16260,15 @@ Add submenus to the File menu, to convert to and from various formats.
 ;;;***
 \f
 ;;;### (autoloads nil "iso-transl" "international/iso-transl.el"
-;;;;;;  (22150 28228 106072 702000))
+;;;;;;  (22086 11929 874062 731000))
 ;;; 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)
 
 ;;;***
 \f
-;;;### (autoloads nil "ispell" "textmodes/ispell.el" (22150 28229
-;;;;;;  102072 702000))
+;;;### (autoloads nil "ispell" "textmodes/ispell.el" (22086 11930
+;;;;;;  318062 731000))
 ;;; Generated autoloads from textmodes/ispell.el
 
 (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive))))
@@ -16304,7 +16299,7 @@ and added as a submenu of the \"Edit\" menu.")
 
 (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-Check Buffer") ispell-buffer :help ,(purecopy "Check spelling of selected buffer"))) (fset 'ispell-menu-map (symbol-value 'ispell-menu-map))))
 
-(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]orwarded [Mm]essage"))) "\
+(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]orwarded [Mm]essage")) (,(purecopy "\\(--+\\|_+\\|\\(/\\w\\|\\(\\(\\w\\|[-_]\\)+[.:@]\\)\\)\\(\\w\\|[-_]\\)*\\([.:/@]+\\(\\w\\|[-_~=?&]\\)+\\)+\\)"))) "\
 Alist expressing beginning and end of regions not to spell check.
 The alist key must be a regular expression.
 Valid forms include:
@@ -16506,8 +16501,8 @@ You can bind this to the key C-c i in GNUS or mail by adding to
 
 ;;;***
 \f
-;;;### (autoloads nil "japan-util" "language/japan-util.el" (22150
-;;;;;;  28228 190072 702000))
+;;;### (autoloads nil "japan-util" "language/japan-util.el" (22086
+;;;;;;  11929 898062 731000))
 ;;; Generated autoloads from language/japan-util.el
 
 (autoload 'setup-japanese-environment-internal "japan-util" "\
@@ -16584,8 +16579,8 @@ If non-nil, second arg INITIAL-INPUT is a string to insert before reading.
 
 ;;;***
 \f
-;;;### (autoloads nil "jka-compr" "jka-compr.el" (22150 28228 158072
-;;;;;;  702000))
+;;;### (autoloads nil "jka-compr" "jka-compr.el" (22086 11929 890062
+;;;;;;  731000))
 ;;; Generated autoloads from jka-compr.el
 
 (defvar jka-compr-inhibit nil "\
@@ -16608,8 +16603,8 @@ by `jka-compr-installed'.
 
 ;;;***
 \f
-;;;### (autoloads nil "js" "progmodes/js.el" (22150 28228 866072
-;;;;;;  702000))
+;;;### (autoloads nil "js" "progmodes/js.el" (22109 36809 299889
+;;;;;;  179000))
 ;;; Generated autoloads from progmodes/js.el
 (push (purecopy '(js 9)) package--builtin-versions)
 
@@ -16636,14 +16631,14 @@ locally, like so:
 
 ;;;***
 \f
-;;;### (autoloads nil "json" "json.el" (22150 28228 158072 702000))
+;;;### (autoloads nil "json" "json.el" (22101 42694 105526 804000))
 ;;; Generated autoloads from json.el
 (push (purecopy '(json 1 4)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "keypad" "emulation/keypad.el" (22150 28227
-;;;;;;  462072 702000))
+;;;### (autoloads nil "keypad" "emulation/keypad.el" (22092 27717
+;;;;;;  636268 464000))
 ;;; Generated autoloads from emulation/keypad.el
 
 (defvar keypad-setup nil "\
@@ -16698,8 +16693,8 @@ the decimal key on the keypad is mapped to DECIMAL instead of `.'
 
 ;;;***
 \f
-;;;### (autoloads nil "kinsoku" "international/kinsoku.el" (22150
-;;;;;;  28228 106072 702000))
+;;;### (autoloads nil "kinsoku" "international/kinsoku.el" (22086
+;;;;;;  11929 878062 731000))
 ;;; Generated autoloads from international/kinsoku.el
 
 (autoload 'kinsoku "kinsoku" "\
@@ -16720,8 +16715,8 @@ the context of text formatting.
 
 ;;;***
 \f
-;;;### (autoloads nil "kkc" "international/kkc.el" (22150 28228 106072
-;;;;;;  702000))
+;;;### (autoloads nil "kkc" "international/kkc.el" (22086 11929 878062
+;;;;;;  731000))
 ;;; Generated autoloads from international/kkc.el
 
 (defvar kkc-after-update-conversion-functions nil "\
@@ -16743,7 +16738,7 @@ and the return value is the length of the conversion.
 
 ;;;***
 \f
-;;;### (autoloads nil "kmacro" "kmacro.el" (22150 28228 162072 702000))
+;;;### (autoloads nil "kmacro" "kmacro.el" (22086 11929 890062 731000))
 ;;; Generated autoloads from kmacro.el
  (global-set-key "\C-x(" 'kmacro-start-macro)
  (global-set-key "\C-x)" 'kmacro-end-macro)
@@ -16855,8 +16850,8 @@ If kbd macro currently being defined end it before activating it.
 
 ;;;***
 \f
-;;;### (autoloads nil "korea-util" "language/korea-util.el" (22150
-;;;;;;  28228 194072 702000))
+;;;### (autoloads nil "korea-util" "language/korea-util.el" (22086
+;;;;;;  11929 902062 731000))
 ;;; Generated autoloads from language/korea-util.el
 
 (defvar default-korean-keyboard (purecopy (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "")) "\
@@ -16870,8 +16865,8 @@ The kind of Korean keyboard for Korean input method.
 
 ;;;***
 \f
-;;;### (autoloads nil "lao-util" "language/lao-util.el" (22150 28228
-;;;;;;  194072 702000))
+;;;### (autoloads nil "lao-util" "language/lao-util.el" (22086 11929
+;;;;;;  902062 731000))
 ;;; Generated autoloads from language/lao-util.el
 
 (autoload 'lao-compose-string "lao-util" "\
@@ -16908,8 +16903,8 @@ Transcribe Romanized Lao string STR to Lao character string.
 
 ;;;***
 \f
-;;;### (autoloads nil "latexenc" "international/latexenc.el" (22150
-;;;;;;  28228 106072 702000))
+;;;### (autoloads nil "latexenc" "international/latexenc.el" (22086
+;;;;;;  11929 878062 731000))
 ;;; 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" . utf-8))) "\
@@ -16941,7 +16936,7 @@ coding system names is determined from `latex-inputenc-coding-alist'.
 ;;;***
 \f
 ;;;### (autoloads nil "latin1-disp" "international/latin1-disp.el"
-;;;;;;  (22150 28228 110072 702000))
+;;;;;;  (22086 11929 878062 731000))
 ;;; Generated autoloads from international/latin1-disp.el
 
 (defvar latin1-display nil "\
@@ -16982,8 +16977,8 @@ use either \\[customize] or the function `latin1-display'.")
 
 ;;;***
 \f
-;;;### (autoloads nil "ld-script" "progmodes/ld-script.el" (22150
-;;;;;;  28228 866072 702000))
+;;;### (autoloads nil "ld-script" "progmodes/ld-script.el" (22086
+;;;;;;  11930 210062 731000))
 ;;; Generated autoloads from progmodes/ld-script.el
 
 (autoload 'ld-script-mode "ld-script" "\
@@ -16993,8 +16988,8 @@ A major mode to edit GNU ld script files
 
 ;;;***
 \f
-;;;### (autoloads nil "let-alist" "emacs-lisp/let-alist.el" (22150
-;;;;;;  28227 434072 702000))
+;;;### (autoloads nil "let-alist" "emacs-lisp/let-alist.el" (22092
+;;;;;;  27717 632268 464000))
 ;;; Generated autoloads from emacs-lisp/let-alist.el
 (push (purecopy '(let-alist 1 0 4)) package--builtin-versions)
 
@@ -17033,7 +17028,7 @@ displayed in the example above.
 
 ;;;***
 \f
-;;;### (autoloads nil "life" "play/life.el" (22150 28228 678072 702000))
+;;;### (autoloads nil "life" "play/life.el" (22086 11930 130062 731000))
 ;;; Generated autoloads from play/life.el
 
 (autoload 'life "life" "\
@@ -17046,7 +17041,7 @@ generations (this defaults to 1).
 
 ;;;***
 \f
-;;;### (autoloads nil "linum" "linum.el" (22150 28228 210072 702000))
+;;;### (autoloads nil "linum" "linum.el" (22086 11929 930062 731000))
 ;;; Generated autoloads from linum.el
 (push (purecopy '(linum 0 9 24)) package--builtin-versions)
 
@@ -17083,8 +17078,8 @@ See `linum-mode' for more information on Linum mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "loadhist" "loadhist.el" (22150 28228 210072
-;;;;;;  702000))
+;;;### (autoloads nil "loadhist" "loadhist.el" (22086 11929 930062
+;;;;;;  731000))
 ;;; Generated autoloads from loadhist.el
 
 (autoload 'unload-feature "loadhist" "\
@@ -17115,7 +17110,7 @@ something strange, such as redefining an Emacs function.
 
 ;;;***
 \f
-;;;### (autoloads nil "locate" "locate.el" (22150 28228 210072 702000))
+;;;### (autoloads nil "locate" "locate.el" (22086 11929 930062 731000))
 ;;; Generated autoloads from locate.el
 
 (defvar locate-ls-subdir-switches (purecopy "-al") "\
@@ -17167,8 +17162,8 @@ except that FILTER is not optional.
 
 ;;;***
 \f
-;;;### (autoloads nil "log-edit" "vc/log-edit.el" (22150 28229 278072
-;;;;;;  702000))
+;;;### (autoloads nil "log-edit" "vc/log-edit.el" (22092 27718 544268
+;;;;;;  464000))
 ;;; Generated autoloads from vc/log-edit.el
 
 (autoload 'log-edit "log-edit" "\
@@ -17199,8 +17194,8 @@ done.  Otherwise, it uses the current buffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "log-view" "vc/log-view.el" (22150 28229 278072
-;;;;;;  702000))
+;;;### (autoloads nil "log-view" "vc/log-view.el" (22086 11930 378062
+;;;;;;  731000))
 ;;; Generated autoloads from vc/log-view.el
 
 (autoload 'log-view-mode "log-view" "\
@@ -17210,7 +17205,7 @@ Major mode for browsing CVS log output.
 
 ;;;***
 \f
-;;;### (autoloads nil "lpr" "lpr.el" (22150 28228 210072 702000))
+;;;### (autoloads nil "lpr" "lpr.el" (22086 11929 930062 731000))
 ;;; Generated autoloads from lpr.el
 
 (defvar lpr-windows-system (memq system-type '(ms-dos windows-nt)) "\
@@ -17305,8 +17300,8 @@ for further customization of the printer command.
 
 ;;;***
 \f
-;;;### (autoloads nil "ls-lisp" "ls-lisp.el" (22150 28228 210072
-;;;;;;  702000))
+;;;### (autoloads nil "ls-lisp" "ls-lisp.el" (22086 11929 930062
+;;;;;;  731000))
 ;;; Generated autoloads from ls-lisp.el
 
 (defvar ls-lisp-support-shell-wildcards t "\
@@ -17317,8 +17312,8 @@ Otherwise they are treated as Emacs regexps (for backward compatibility).")
 
 ;;;***
 \f
-;;;### (autoloads nil "lunar" "calendar/lunar.el" (22150 28227 78072
-;;;;;;  702000))
+;;;### (autoloads nil "lunar" "calendar/lunar.el" (22086 11929 534062
+;;;;;;  731000))
 ;;; Generated autoloads from calendar/lunar.el
 
 (autoload 'lunar-phases "lunar" "\
@@ -17330,8 +17325,8 @@ This function is suitable for execution in an init file.
 
 ;;;***
 \f
-;;;### (autoloads nil "m4-mode" "progmodes/m4-mode.el" (22150 28228
-;;;;;;  866072 702000))
+;;;### (autoloads nil "m4-mode" "progmodes/m4-mode.el" (22086 11930
+;;;;;;  210062 731000))
 ;;; Generated autoloads from progmodes/m4-mode.el
 
 (autoload 'm4-mode "m4-mode" "\
@@ -17341,7 +17336,7 @@ A major mode to edit m4 macro files.
 
 ;;;***
 \f
-;;;### (autoloads nil "macros" "macros.el" (22150 28228 210072 702000))
+;;;### (autoloads nil "macros" "macros.el" (22086 11929 930062 731000))
 ;;; Generated autoloads from macros.el
 
 (autoload 'name-last-kbd-macro "macros" "\
@@ -17430,8 +17425,8 @@ and then select the region of un-tablified names and use
 
 ;;;***
 \f
-;;;### (autoloads nil "mail-extr" "mail/mail-extr.el" (22150 28228
-;;;;;;  230072 702000))
+;;;### (autoloads nil "mail-extr" "mail/mail-extr.el" (22086 11929
+;;;;;;  934062 731000))
 ;;; Generated autoloads from mail/mail-extr.el
 
 (autoload 'mail-extract-address-components "mail-extr" "\
@@ -17461,8 +17456,8 @@ Convert mail domain DOMAIN to the country it corresponds to.
 
 ;;;***
 \f
-;;;### (autoloads nil "mail-hist" "mail/mail-hist.el" (22150 28228
-;;;;;;  230072 702000))
+;;;### (autoloads nil "mail-hist" "mail/mail-hist.el" (22086 11929
+;;;;;;  934062 731000))
 ;;; Generated autoloads from mail/mail-hist.el
 
 (autoload 'mail-hist-define-keys "mail-hist" "\
@@ -17491,8 +17486,8 @@ This function normally would be called when the message is sent.
 
 ;;;***
 \f
-;;;### (autoloads nil "mail-utils" "mail/mail-utils.el" (22150 28228
-;;;;;;  230072 702000))
+;;;### (autoloads nil "mail-utils" "mail/mail-utils.el" (22086 11929
+;;;;;;  934062 731000))
 ;;; Generated autoloads from mail/mail-utils.el
 
 (defvar mail-use-rfc822 nil "\
@@ -17566,8 +17561,8 @@ matches may be returned from the message body.
 
 ;;;***
 \f
-;;;### (autoloads nil "mailabbrev" "mail/mailabbrev.el" (22150 28228
-;;;;;;  230072 702000))
+;;;### (autoloads nil "mailabbrev" "mail/mailabbrev.el" (22086 11929
+;;;;;;  938062 731000))
 ;;; Generated autoloads from mail/mailabbrev.el
 
 (defvar mail-abbrevs-mode nil "\
@@ -17616,8 +17611,8 @@ double-quotes.
 
 ;;;***
 \f
-;;;### (autoloads nil "mailalias" "mail/mailalias.el" (22150 28228
-;;;;;;  230072 702000))
+;;;### (autoloads nil "mailalias" "mail/mailalias.el" (22086 11929
+;;;;;;  938062 731000))
 ;;; Generated autoloads from mail/mailalias.el
 
 (defvar mail-complete-style 'angles "\
@@ -17670,8 +17665,8 @@ current header, calls `mail-complete-function' and passes prefix ARG if any.
 
 ;;;***
 \f
-;;;### (autoloads nil "mailclient" "mail/mailclient.el" (22150 28228
-;;;;;;  234072 702000))
+;;;### (autoloads nil "mailclient" "mail/mailclient.el" (22086 11929
+;;;;;;  938062 731000))
 ;;; Generated autoloads from mail/mailclient.el
 
 (autoload 'mailclient-send-it "mailclient" "\
@@ -17683,8 +17678,8 @@ The mail client is taken to be the handler of mailto URLs.
 
 ;;;***
 \f
-;;;### (autoloads nil "make-mode" "progmodes/make-mode.el" (22150
-;;;;;;  28228 870072 702000))
+;;;### (autoloads nil "make-mode" "progmodes/make-mode.el" (22086
+;;;;;;  11930 210062 731000))
 ;;; Generated autoloads from progmodes/make-mode.el
 
 (autoload 'makefile-mode "make-mode" "\
@@ -17801,8 +17796,8 @@ An adapted `makefile-mode' that knows about imake.
 
 ;;;***
 \f
-;;;### (autoloads nil "makesum" "makesum.el" (22150 28228 258072
-;;;;;;  702000))
+;;;### (autoloads nil "makesum" "makesum.el" (22086 11929 954062
+;;;;;;  731000))
 ;;; Generated autoloads from makesum.el
 
 (autoload 'make-command-summary "makesum" "\
@@ -17813,7 +17808,7 @@ Previous contents of that buffer are killed first.
 
 ;;;***
 \f
-;;;### (autoloads nil "man" "man.el" (22150 28228 262072 702000))
+;;;### (autoloads nil "man" "man.el" (22086 11929 954062 731000))
 ;;; Generated autoloads from man.el
 
 (defalias 'manual-entry 'man)
@@ -17869,14 +17864,14 @@ Default bookmark handler for Man buffers.
 
 ;;;***
 \f
-;;;### (autoloads nil "map" "emacs-lisp/map.el" (22150 28227 438072
-;;;;;;  702000))
+;;;### (autoloads nil "map" "emacs-lisp/map.el" (22086 11929 678062
+;;;;;;  731000))
 ;;; Generated autoloads from emacs-lisp/map.el
 (push (purecopy '(map 1 0)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "master" "master.el" (22150 28228 262072 702000))
+;;;### (autoloads nil "master" "master.el" (22086 11929 954062 731000))
 ;;; Generated autoloads from master.el
 (push (purecopy '(master 1 0 2)) package--builtin-versions)
 
@@ -17899,8 +17894,8 @@ yourself the value of `master-of' by calling `master-show-slave'.
 
 ;;;***
 \f
-;;;### (autoloads nil "mb-depth" "mb-depth.el" (22150 28228 262072
-;;;;;;  702000))
+;;;### (autoloads nil "mb-depth" "mb-depth.el" (22086 11929 958062
+;;;;;;  731000))
 ;;; Generated autoloads from mb-depth.el
 
 (defvar minibuffer-depth-indicate-mode nil "\
@@ -17927,14 +17922,14 @@ recursion depth in the minibuffer prompt.  This is only useful if
 
 ;;;***
 \f
-;;;### (autoloads nil "md4" "md4.el" (22150 28228 262072 702000))
+;;;### (autoloads nil "md4" "md4.el" (22086 11929 958062 731000))
 ;;; Generated autoloads from md4.el
 (push (purecopy '(md4 1 0)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "message" "gnus/message.el" (22150 28227 974072
-;;;;;;  702000))
+;;;### (autoloads nil "message" "gnus/message.el" (22092 27717 852268
+;;;;;;  464000))
 ;;; 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)
@@ -18099,8 +18094,8 @@ which specify the range to operate on.
 
 ;;;***
 \f
-;;;### (autoloads nil "meta-mode" "progmodes/meta-mode.el" (22150
-;;;;;;  28228 870072 702000))
+;;;### (autoloads nil "meta-mode" "progmodes/meta-mode.el" (22086
+;;;;;;  11930 210062 731000))
 ;;; Generated autoloads from progmodes/meta-mode.el
 (push (purecopy '(meta-mode 1 0)) package--builtin-versions)
 
@@ -18116,8 +18111,8 @@ Major mode for editing MetaPost sources.
 
 ;;;***
 \f
-;;;### (autoloads nil "metamail" "mail/metamail.el" (22150 28228
-;;;;;;  234072 702000))
+;;;### (autoloads nil "metamail" "mail/metamail.el" (22086 11929
+;;;;;;  938062 731000))
 ;;; Generated autoloads from mail/metamail.el
 
 (autoload 'metamail-interpret-header "metamail" "\
@@ -18160,8 +18155,8 @@ redisplayed as output is inserted.
 
 ;;;***
 \f
-;;;### (autoloads nil "mh-comp" "mh-e/mh-comp.el" (22150 28228 294072
-;;;;;;  702000))
+;;;### (autoloads nil "mh-comp" "mh-e/mh-comp.el" (22086 11929 970062
+;;;;;;  731000))
 ;;; Generated autoloads from mh-e/mh-comp.el
 
 (autoload 'mh-smail "mh-comp" "\
@@ -18251,7 +18246,7 @@ delete the draft message.
 
 ;;;***
 \f
-;;;### (autoloads nil "mh-e" "mh-e/mh-e.el" (22150 28228 298072 702000))
+;;;### (autoloads nil "mh-e" "mh-e/mh-e.el" (22092 27717 888268 464000))
 ;;; Generated autoloads from mh-e/mh-e.el
 (push (purecopy '(mh-e 8 6)) package--builtin-versions)
 
@@ -18268,8 +18263,8 @@ Display version information about MH-E and the MH mail handling system.
 
 ;;;***
 \f
-;;;### (autoloads nil "mh-folder" "mh-e/mh-folder.el" (22150 28228
-;;;;;;  302072 702000))
+;;;### (autoloads nil "mh-folder" "mh-e/mh-folder.el" (22086 11929
+;;;;;;  970062 731000))
 ;;; Generated autoloads from mh-e/mh-folder.el
 
 (autoload 'mh-rmail "mh-folder" "\
@@ -18350,8 +18345,8 @@ perform the operation on all messages in that region.
 
 ;;;***
 \f
-;;;### (autoloads nil "midnight" "midnight.el" (22150 28228 322072
-;;;;;;  702000))
+;;;### (autoloads nil "midnight" "midnight.el" (22086 11929 978062
+;;;;;;  731000))
 ;;; Generated autoloads from midnight.el
 
 (defvar midnight-mode nil "\
@@ -18391,8 +18386,8 @@ to its second argument TM.
 
 ;;;***
 \f
-;;;### (autoloads nil "minibuf-eldef" "minibuf-eldef.el" (22150 28228
-;;;;;;  322072 702000))
+;;;### (autoloads nil "minibuf-eldef" "minibuf-eldef.el" (22086 11929
+;;;;;;  978062 731000))
 ;;; Generated autoloads from minibuf-eldef.el
 
 (defvar minibuffer-electric-default-mode nil "\
@@ -18421,7 +18416,7 @@ is modified to remove the default indication.
 
 ;;;***
 \f
-;;;### (autoloads nil "misc" "misc.el" (22150 28228 326072 702000))
+;;;### (autoloads nil "misc" "misc.el" (22086 11929 982062 731000))
 ;;; Generated autoloads from misc.el
 
 (autoload 'butterfly "misc" "\
@@ -18449,8 +18444,8 @@ The return value is always nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "misearch" "misearch.el" (22150 28228 326072
-;;;;;;  702000))
+;;;### (autoloads nil "misearch" "misearch.el" (22086 11929 982062
+;;;;;;  731000))
 ;;; Generated autoloads from misearch.el
  (add-hook 'isearch-mode-hook 'multi-isearch-setup)
 
@@ -18538,8 +18533,8 @@ whose file names match the specified wildcard.
 
 ;;;***
 \f
-;;;### (autoloads nil "mixal-mode" "progmodes/mixal-mode.el" (22150
-;;;;;;  28228 874072 702000))
+;;;### (autoloads nil "mixal-mode" "progmodes/mixal-mode.el" (22086
+;;;;;;  11930 210062 731000))
 ;;; Generated autoloads from progmodes/mixal-mode.el
 (push (purecopy '(mixal-mode 0 1)) package--builtin-versions)
 
@@ -18550,8 +18545,8 @@ Major mode for the mixal asm language.
 
 ;;;***
 \f
-;;;### (autoloads nil "mm-encode" "gnus/mm-encode.el" (22150 28227
-;;;;;;  978072 702000))
+;;;### (autoloads nil "mm-encode" "gnus/mm-encode.el" (22086 11929
+;;;;;;  818062 731000))
 ;;; Generated autoloads from gnus/mm-encode.el
 
 (autoload 'mm-default-file-encoding "mm-encode" "\
@@ -18561,8 +18556,8 @@ Return a default encoding for FILE.
 
 ;;;***
 \f
-;;;### (autoloads nil "mm-extern" "gnus/mm-extern.el" (22150 28227
-;;;;;;  978072 702000))
+;;;### (autoloads nil "mm-extern" "gnus/mm-extern.el" (22086 11929
+;;;;;;  818062 731000))
 ;;; Generated autoloads from gnus/mm-extern.el
 
 (autoload 'mm-extern-cache-contents "mm-extern" "\
@@ -18580,8 +18575,8 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing.
 
 ;;;***
 \f
-;;;### (autoloads nil "mm-partial" "gnus/mm-partial.el" (22150 28227
-;;;;;;  978072 702000))
+;;;### (autoloads nil "mm-partial" "gnus/mm-partial.el" (22086 11929
+;;;;;;  818062 731000))
 ;;; Generated autoloads from gnus/mm-partial.el
 
 (autoload 'mm-inline-partial "mm-partial" "\
@@ -18594,8 +18589,8 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing.
 
 ;;;***
 \f
-;;;### (autoloads nil "mm-url" "gnus/mm-url.el" (22150 28227 978072
-;;;;;;  702000))
+;;;### (autoloads nil "mm-url" "gnus/mm-url.el" (22086 11929 818062
+;;;;;;  731000))
 ;;; Generated autoloads from gnus/mm-url.el
 
 (autoload 'mm-url-insert-file-contents "mm-url" "\
@@ -18611,8 +18606,8 @@ Insert file contents of URL using `mm-url-program'.
 
 ;;;***
 \f
-;;;### (autoloads nil "mm-uu" "gnus/mm-uu.el" (22150 28227 982072
-;;;;;;  702000))
+;;;### (autoloads nil "mm-uu" "gnus/mm-uu.el" (22086 11929 818062
+;;;;;;  731000))
 ;;; Generated autoloads from gnus/mm-uu.el
 
 (autoload 'mm-uu-dissect "mm-uu" "\
@@ -18631,7 +18626,7 @@ Assume text has been decoded if DECODED is non-nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "mml" "gnus/mml.el" (22150 28227 986072 702000))
+;;;### (autoloads nil "mml" "gnus/mml.el" (22086 11929 822062 731000))
 ;;; Generated autoloads from gnus/mml.el
 
 (autoload 'mml-to-mime "mml" "\
@@ -18656,8 +18651,8 @@ body) or \"attachment\" (separate from the body).
 
 ;;;***
 \f
-;;;### (autoloads nil "mml1991" "gnus/mml1991.el" (22150 28227 986072
-;;;;;;  702000))
+;;;### (autoloads nil "mml1991" "gnus/mml1991.el" (22086 11929 822062
+;;;;;;  731000))
 ;;; Generated autoloads from gnus/mml1991.el
 
 (autoload 'mml1991-encrypt "mml1991" "\
@@ -18672,8 +18667,8 @@ body) or \"attachment\" (separate from the body).
 
 ;;;***
 \f
-;;;### (autoloads nil "mml2015" "gnus/mml2015.el" (22150 28227 990072
-;;;;;;  702000))
+;;;### (autoloads nil "mml2015" "gnus/mml2015.el" (22086 11929 822062
+;;;;;;  731000))
 ;;; Generated autoloads from gnus/mml2015.el
 
 (autoload 'mml2015-decrypt "mml2015" "\
@@ -18713,8 +18708,8 @@ body) or \"attachment\" (separate from the body).
 
 ;;;***
 \f
-;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (22150 28227
-;;;;;;  222072 702000))
+;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (22096 24780
+;;;;;;  204094 47000))
 ;;; Generated autoloads from cedet/mode-local.el
 
 (put 'define-overloadable-function 'doc-string-elt 3)
@@ -18755,8 +18750,8 @@ followed by the first character of the construct.
 
 ;;;***
 \f
-;;;### (autoloads nil "morse" "play/morse.el" (22150 28228 682072
-;;;;;;  702000))
+;;;### (autoloads nil "morse" "play/morse.el" (22086 11930 130062
+;;;;;;  731000))
 ;;; Generated autoloads from play/morse.el
 
 (autoload 'morse-region "morse" "\
@@ -18781,8 +18776,8 @@ Convert NATO phonetic alphabet in region to ordinary ASCII text.
 
 ;;;***
 \f
-;;;### (autoloads nil "mouse-drag" "mouse-drag.el" (22150 28228 326072
-;;;;;;  702000))
+;;;### (autoloads nil "mouse-drag" "mouse-drag.el" (22086 11929 982062
+;;;;;;  731000))
 ;;; Generated autoloads from mouse-drag.el
 
 (autoload 'mouse-drag-throw "mouse-drag" "\
@@ -18829,7 +18824,7 @@ To test this function, evaluate:
 
 ;;;***
 \f
-;;;### (autoloads nil "mpc" "mpc.el" (22150 28228 326072 702000))
+;;;### (autoloads nil "mpc" "mpc.el" (22105 39773 859886 896000))
 ;;; Generated autoloads from mpc.el
 
 (autoload 'mpc "mpc" "\
@@ -18839,7 +18834,7 @@ Main entry point for MPC.
 
 ;;;***
 \f
-;;;### (autoloads nil "mpuz" "play/mpuz.el" (22150 28228 682072 702000))
+;;;### (autoloads nil "mpuz" "play/mpuz.el" (22086 11930 130062 731000))
 ;;; Generated autoloads from play/mpuz.el
 
 (autoload 'mpuz "mpuz" "\
@@ -18849,7 +18844,7 @@ Multiplication puzzle with GNU Emacs.
 
 ;;;***
 \f
-;;;### (autoloads nil "msb" "msb.el" (22150 28228 338072 702000))
+;;;### (autoloads nil "msb" "msb.el" (22086 11929 986062 731000))
 ;;; Generated autoloads from msb.el
 
 (defvar msb-mode nil "\
@@ -18874,8 +18869,8 @@ different buffer menu using the function `msb'.
 
 ;;;***
 \f
-;;;### (autoloads nil "mule-diag" "international/mule-diag.el" (22150
-;;;;;;  28228 114072 702000))
+;;;### (autoloads nil "mule-diag" "international/mule-diag.el" (22086
+;;;;;;  11929 882062 731000))
 ;;; Generated autoloads from international/mule-diag.el
 
 (autoload 'list-character-sets "mule-diag" "\
@@ -19007,8 +19002,8 @@ The default is 20.  If LIMIT is negative, do not limit the listing.
 
 ;;;***
 \f
-;;;### (autoloads nil "mule-util" "international/mule-util.el" (22150
-;;;;;;  28228 114072 702000))
+;;;### (autoloads nil "mule-util" "international/mule-util.el" (22108
+;;;;;;  15942 546032 987000))
 ;;; Generated autoloads from international/mule-util.el
 
 (defsubst string-to-list (string) "\
@@ -19167,8 +19162,8 @@ QUALITY can be:
 
 ;;;***
 \f
-;;;### (autoloads nil "net-utils" "net/net-utils.el" (22150 28228
-;;;;;;  378072 702000))
+;;;### (autoloads nil "net-utils" "net/net-utils.el" (22086 11929
+;;;;;;  998062 731000))
 ;;; Generated autoloads from net/net-utils.el
 
 (autoload 'ifconfig "net-utils" "\
@@ -19262,8 +19257,8 @@ Open a network connection to HOST on PORT.
 
 ;;;***
 \f
-;;;### (autoloads nil "netrc" "net/netrc.el" (22150 28228 378072
-;;;;;;  702000))
+;;;### (autoloads nil "netrc" "net/netrc.el" (22086 11929 998062
+;;;;;;  731000))
 ;;; Generated autoloads from net/netrc.el
 
 (autoload 'netrc-credentials "netrc" "\
@@ -19275,8 +19270,8 @@ listed in the PORTS list.
 
 ;;;***
 \f
-;;;### (autoloads nil "network-stream" "net/network-stream.el" (22150
-;;;;;;  28228 378072 702000))
+;;;### (autoloads nil "network-stream" "net/network-stream.el" (22086
+;;;;;;  11929 998062 731000))
 ;;; Generated autoloads from net/network-stream.el
 
 (autoload 'open-network-stream "network-stream" "\
@@ -19372,8 +19367,8 @@ asynchronously, if possible.
 
 ;;;***
 \f
-;;;### (autoloads nil "newst-backend" "net/newst-backend.el" (22150
-;;;;;;  28228 378072 702000))
+;;;### (autoloads nil "newst-backend" "net/newst-backend.el" (22092
+;;;;;;  27717 964268 464000))
 ;;; Generated autoloads from net/newst-backend.el
 
 (autoload 'newsticker-running-p "newst-backend" "\
@@ -19395,7 +19390,7 @@ Run `newsticker-start-hook' if newsticker was not running already.
 ;;;***
 \f
 ;;;### (autoloads nil "newst-plainview" "net/newst-plainview.el"
-;;;;;;  (22150 28228 382072 702000))
+;;;;;;  (22092 27717 980268 464000))
 ;;; Generated autoloads from net/newst-plainview.el
 
 (autoload 'newsticker-plainview "newst-plainview" "\
@@ -19405,8 +19400,8 @@ Start newsticker plainview.
 
 ;;;***
 \f
-;;;### (autoloads nil "newst-reader" "net/newst-reader.el" (22150
-;;;;;;  28228 382072 702000))
+;;;### (autoloads nil "newst-reader" "net/newst-reader.el" (22086
+;;;;;;  11929 998062 731000))
 ;;; Generated autoloads from net/newst-reader.el
 
 (autoload 'newsticker-show-news "newst-reader" "\
@@ -19416,8 +19411,8 @@ Start reading news.  You may want to bind this to a key.
 
 ;;;***
 \f
-;;;### (autoloads nil "newst-ticker" "net/newst-ticker.el" (22150
-;;;;;;  28228 382072 702000))
+;;;### (autoloads nil "newst-ticker" "net/newst-ticker.el" (22086
+;;;;;;  11929 998062 731000))
 ;;; Generated autoloads from net/newst-ticker.el
 
 (autoload 'newsticker-ticker-running-p "newst-ticker" "\
@@ -19437,8 +19432,8 @@ running already.
 
 ;;;***
 \f
-;;;### (autoloads nil "newst-treeview" "net/newst-treeview.el" (22150
-;;;;;;  28228 382072 702000))
+;;;### (autoloads nil "newst-treeview" "net/newst-treeview.el" (22109
+;;;;;;  36809 263889 179000))
 ;;; Generated autoloads from net/newst-treeview.el
 
 (autoload 'newsticker-treeview "newst-treeview" "\
@@ -19448,8 +19443,8 @@ Start newsticker treeview.
 
 ;;;***
 \f
-;;;### (autoloads nil "nndiary" "gnus/nndiary.el" (22150 28227 990072
-;;;;;;  702000))
+;;;### (autoloads nil "nndiary" "gnus/nndiary.el" (22086 11929 822062
+;;;;;;  731000))
 ;;; Generated autoloads from gnus/nndiary.el
 
 (autoload 'nndiary-generate-nov-databases "nndiary" "\
@@ -19459,8 +19454,8 @@ Generate NOV databases in all nndiary directories.
 
 ;;;***
 \f
-;;;### (autoloads nil "nndoc" "gnus/nndoc.el" (22150 28227 990072
-;;;;;;  702000))
+;;;### (autoloads nil "nndoc" "gnus/nndoc.el" (22086 11929 822062
+;;;;;;  731000))
 ;;; Generated autoloads from gnus/nndoc.el
 
 (autoload 'nndoc-add-type "nndoc" "\
@@ -19474,8 +19469,8 @@ symbol in the alist.
 
 ;;;***
 \f
-;;;### (autoloads nil "nnfolder" "gnus/nnfolder.el" (22150 28227
-;;;;;;  994072 702000))
+;;;### (autoloads nil "nnfolder" "gnus/nnfolder.el" (22086 11929
+;;;;;;  826062 731000))
 ;;; Generated autoloads from gnus/nnfolder.el
 
 (autoload 'nnfolder-generate-active-file "nnfolder" "\
@@ -19486,7 +19481,7 @@ This command does not work if you use short group names.
 
 ;;;***
 \f
-;;;### (autoloads nil "nnml" "gnus/nnml.el" (22150 28228 2072 702000))
+;;;### (autoloads nil "nnml" "gnus/nnml.el" (22102 63557 304509 103000))
 ;;; Generated autoloads from gnus/nnml.el
 
 (autoload 'nnml-generate-nov-databases "nnml" "\
@@ -19496,7 +19491,7 @@ Generate NOV databases in all nnml directories.
 
 ;;;***
 \f
-;;;### (autoloads nil "novice" "novice.el" (22150 28228 446072 702000))
+;;;### (autoloads nil "novice" "novice.el" (22086 11930 22062 731000))
 ;;; Generated autoloads from novice.el
 
 (define-obsolete-variable-alias 'disabled-command-hook 'disabled-command-function "22.1")
@@ -19528,8 +19523,8 @@ future sessions.
 
 ;;;***
 \f
-;;;### (autoloads nil "nroff-mode" "textmodes/nroff-mode.el" (22150
-;;;;;;  28229 102072 702000))
+;;;### (autoloads nil "nroff-mode" "textmodes/nroff-mode.el" (22086
+;;;;;;  11930 318062 731000))
 ;;; Generated autoloads from textmodes/nroff-mode.el
 
 (autoload 'nroff-mode "nroff-mode" "\
@@ -19543,14 +19538,14 @@ closing requests for requests that are used in matched pairs.
 
 ;;;***
 \f
-;;;### (autoloads nil "ntlm" "net/ntlm.el" (22150 28228 386072 702000))
+;;;### (autoloads nil "ntlm" "net/ntlm.el" (22086 11930 2062 731000))
 ;;; Generated autoloads from net/ntlm.el
 (push (purecopy '(ntlm 2 0 0)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "nxml-glyph" "nxml/nxml-glyph.el" (22150 28228
-;;;;;;  450072 702000))
+;;;### (autoloads nil "nxml-glyph" "nxml/nxml-glyph.el" (22086 11930
+;;;;;;  26062 731000))
 ;;; Generated autoloads from nxml/nxml-glyph.el
 
 (autoload 'nxml-glyph-display-string "nxml-glyph" "\
@@ -19562,8 +19557,8 @@ Return nil if the face cannot display a glyph for N.
 
 ;;;***
 \f
-;;;### (autoloads nil "nxml-mode" "nxml/nxml-mode.el" (22150 28228
-;;;;;;  450072 702000))
+;;;### (autoloads nil "nxml-mode" "nxml/nxml-mode.el" (22086 11930
+;;;;;;  26062 731000))
 ;;; Generated autoloads from nxml/nxml-mode.el
 
 (autoload 'nxml-mode "nxml-mode" "\
@@ -19623,8 +19618,8 @@ Many aspects this mode can be customized using
 
 ;;;***
 \f
-;;;### (autoloads nil "nxml-uchnm" "nxml/nxml-uchnm.el" (22150 28228
-;;;;;;  454072 702000))
+;;;### (autoloads nil "nxml-uchnm" "nxml/nxml-uchnm.el" (22086 11930
+;;;;;;  26062 731000))
 ;;; Generated autoloads from nxml/nxml-uchnm.el
 
 (autoload 'nxml-enable-unicode-char-name-sets "nxml-uchnm" "\
@@ -19636,8 +19631,8 @@ the variable `nxml-enabled-unicode-blocks'.
 
 ;;;***
 \f
-;;;### (autoloads nil "octave" "progmodes/octave.el" (22150 28228
-;;;;;;  874072 702000))
+;;;### (autoloads nil "octave" "progmodes/octave.el" (22086 11930
+;;;;;;  214062 731000))
 ;;; Generated autoloads from progmodes/octave.el
 
 (autoload 'octave-mode "octave" "\
@@ -19674,8 +19669,8 @@ startup file, `~/.emacs-octave'.
 
 ;;;***
 \f
-;;;### (autoloads nil "opascal" "progmodes/opascal.el" (22150 28228
-;;;;;;  878072 702000))
+;;;### (autoloads nil "opascal" "progmodes/opascal.el" (22086 11930
+;;;;;;  214062 731000))
 ;;; Generated autoloads from progmodes/opascal.el
 
 (define-obsolete-function-alias 'delphi-mode 'opascal-mode "24.4")
@@ -19710,7 +19705,7 @@ Coloring:
 
 ;;;***
 \f
-;;;### (autoloads nil "org" "org/org.el" (22150 28228 642072 702000))
+;;;### (autoloads nil "org" "org/org.el" (22092 27718 88268 464000))
 ;;; Generated autoloads from org/org.el
 
 (autoload 'org-babel-do-load-languages "org" "\
@@ -19931,8 +19926,8 @@ Call the customize function with org as argument.
 
 ;;;***
 \f
-;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (22150 28228
-;;;;;;  558072 702000))
+;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (22092 27718
+;;;;;;  24268 464000))
 ;;; Generated autoloads from org/org-agenda.el
 
 (autoload 'org-toggle-sticky-agenda "org-agenda" "\
@@ -20205,8 +20200,8 @@ to override `appt-message-warning-time'.
 
 ;;;***
 \f
-;;;### (autoloads nil "org-capture" "org/org-capture.el" (22150 28228
-;;;;;;  558072 702000))
+;;;### (autoloads nil "org-capture" "org/org-capture.el" (22086 11930
+;;;;;;  82062 731000))
 ;;; Generated autoloads from org/org-capture.el
 
 (autoload 'org-capture-string "org-capture" "\
@@ -20248,8 +20243,8 @@ Set `org-capture-templates' to be similar to `org-remember-templates'.
 
 ;;;***
 \f
-;;;### (autoloads nil "org-colview" "org/org-colview.el" (22150 28228
-;;;;;;  582072 702000))
+;;;### (autoloads nil "org-colview" "org/org-colview.el" (22086 11930
+;;;;;;  82062 731000))
 ;;; Generated autoloads from org/org-colview.el
 
 (autoload 'org-columns-remove-overlays "org-colview" "\
@@ -20312,8 +20307,8 @@ Turn on or update column view in the agenda.
 
 ;;;***
 \f
-;;;### (autoloads nil "org-compat" "org/org-compat.el" (22150 28228
-;;;;;;  582072 702000))
+;;;### (autoloads nil "org-compat" "org/org-compat.el" (22086 11930
+;;;;;;  82062 731000))
 ;;; Generated autoloads from org/org-compat.el
 
 (autoload 'org-check-version "org-compat" "\
@@ -20323,8 +20318,8 @@ Try very hard to provide sensible version strings.
 
 ;;;***
 \f
-;;;### (autoloads nil "org-macs" "org/org-macs.el" (22150 28228 602072
-;;;;;;  702000))
+;;;### (autoloads nil "org-macs" "org/org-macs.el" (22092 27718 44268
+;;;;;;  464000))
 ;;; Generated autoloads from org/org-macs.el
 
 (autoload 'org-load-noerror-mustsuffix "org-macs" "\
@@ -20352,8 +20347,8 @@ The Git version of org-mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "outline" "outline.el" (22150 28228 666072
-;;;;;;  702000))
+;;;### (autoloads nil "outline" "outline.el" (22086 11930 118062
+;;;;;;  731000))
 ;;; Generated autoloads from outline.el
 (put 'outline-regexp 'safe-local-variable 'stringp)
 (put 'outline-heading-end-regexp 'safe-local-variable 'stringp)
@@ -20396,10 +20391,10 @@ See the command `outline-mode' for more information on this mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "package" "emacs-lisp/package.el" (22150 28227
-;;;;;;  450072 702000))
+;;;### (autoloads nil "package" "emacs-lisp/package.el" (22092 27717
+;;;;;;  636268 464000))
 ;;; Generated autoloads from emacs-lisp/package.el
-(push (purecopy '(package 1 1 0)) package--builtin-versions)
+(push (purecopy '(package 1 0 1)) package--builtin-versions)
 
 (defvar package-enable-at-startup t "\
 Whether to activate installed packages when Emacs starts.
@@ -20512,7 +20507,7 @@ The list is displayed in a buffer named `*Packages*'.
 
 ;;;***
 \f
-;;;### (autoloads nil "paren" "paren.el" (22150 28228 666072 702000))
+;;;### (autoloads nil "paren" "paren.el" (22086 11930 122062 731000))
 ;;; Generated autoloads from paren.el
 
 (defvar show-paren-mode nil "\
@@ -20538,8 +20533,8 @@ matching parenthesis is highlighted in `show-paren-style' after
 
 ;;;***
 \f
-;;;### (autoloads nil "parse-time" "calendar/parse-time.el" (22150
-;;;;;;  28227 78072 702000))
+;;;### (autoloads nil "parse-time" "calendar/parse-time.el" (22086
+;;;;;;  11929 534062 731000))
 ;;; Generated autoloads from calendar/parse-time.el
 (put 'parse-time-rules 'risky-local-variable t)
 
@@ -20552,8 +20547,8 @@ unknown are returned as nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "pascal" "progmodes/pascal.el" (22150 28228
-;;;;;;  890072 702000))
+;;;### (autoloads nil "pascal" "progmodes/pascal.el" (22092 27718
+;;;;;;  228268 464000))
 ;;; Generated autoloads from progmodes/pascal.el
 
 (autoload 'pascal-mode "pascal" "\
@@ -20602,8 +20597,8 @@ See also the user variables `pascal-type-keywords', `pascal-start-keywords' and
 
 ;;;***
 \f
-;;;### (autoloads nil "password-cache" "password-cache.el" (22150
-;;;;;;  28228 666072 702000))
+;;;### (autoloads nil "password-cache" "password-cache.el" (22086
+;;;;;;  11930 122062 731000))
 ;;; Generated autoloads from password-cache.el
 
 (defvar password-cache t "\
@@ -20624,8 +20619,8 @@ Check if KEY is in the cache.
 
 ;;;***
 \f
-;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (22150 28227
-;;;;;;  454072 702000))
+;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (22091 6875 247217
+;;;;;;  891000))
 ;;; Generated autoloads from emacs-lisp/pcase.el
 
 (autoload 'pcase "pcase" "\
@@ -20726,8 +20721,8 @@ to this macro.
 
 ;;;***
 \f
-;;;### (autoloads nil "pcmpl-cvs" "pcmpl-cvs.el" (22150 28228 666072
-;;;;;;  702000))
+;;;### (autoloads nil "pcmpl-cvs" "pcmpl-cvs.el" (22086 11930 122062
+;;;;;;  731000))
 ;;; Generated autoloads from pcmpl-cvs.el
 
 (autoload 'pcomplete/cvs "pcmpl-cvs" "\
@@ -20737,8 +20732,8 @@ Completion rules for the `cvs' command.
 
 ;;;***
 \f
-;;;### (autoloads nil "pcmpl-gnu" "pcmpl-gnu.el" (22150 28228 666072
-;;;;;;  702000))
+;;;### (autoloads nil "pcmpl-gnu" "pcmpl-gnu.el" (22086 11930 122062
+;;;;;;  731000))
 ;;; Generated autoloads from pcmpl-gnu.el
 
 (autoload 'pcomplete/gzip "pcmpl-gnu" "\
@@ -20765,8 +20760,8 @@ Completion for the GNU tar utility.
 
 ;;;***
 \f
-;;;### (autoloads nil "pcmpl-linux" "pcmpl-linux.el" (22150 28228
-;;;;;;  670072 702000))
+;;;### (autoloads nil "pcmpl-linux" "pcmpl-linux.el" (22086 11930
+;;;;;;  122062 731000))
 ;;; Generated autoloads from pcmpl-linux.el
 
 (autoload 'pcomplete/kill "pcmpl-linux" "\
@@ -20786,8 +20781,8 @@ Completion for GNU/Linux `mount'.
 
 ;;;***
 \f
-;;;### (autoloads nil "pcmpl-rpm" "pcmpl-rpm.el" (22150 28228 670072
-;;;;;;  702000))
+;;;### (autoloads nil "pcmpl-rpm" "pcmpl-rpm.el" (22086 11930 122062
+;;;;;;  731000))
 ;;; Generated autoloads from pcmpl-rpm.el
 
 (autoload 'pcomplete/rpm "pcmpl-rpm" "\
@@ -20797,8 +20792,8 @@ Completion for the `rpm' command.
 
 ;;;***
 \f
-;;;### (autoloads nil "pcmpl-unix" "pcmpl-unix.el" (22150 28228 670072
-;;;;;;  702000))
+;;;### (autoloads nil "pcmpl-unix" "pcmpl-unix.el" (22086 11930 122062
+;;;;;;  731000))
 ;;; Generated autoloads from pcmpl-unix.el
 
 (autoload 'pcomplete/cd "pcmpl-unix" "\
@@ -20853,8 +20848,8 @@ Includes files as well as host names followed by a colon.
 
 ;;;***
 \f
-;;;### (autoloads nil "pcmpl-x" "pcmpl-x.el" (22150 28228 670072
-;;;;;;  702000))
+;;;### (autoloads nil "pcmpl-x" "pcmpl-x.el" (22086 11930 122062
+;;;;;;  731000))
 ;;; Generated autoloads from pcmpl-x.el
 
 (autoload 'pcomplete/tlmgr "pcmpl-x" "\
@@ -20878,8 +20873,8 @@ Completion for the `ag' command.
 
 ;;;***
 \f
-;;;### (autoloads nil "pcomplete" "pcomplete.el" (22150 28228 674072
-;;;;;;  702000))
+;;;### (autoloads nil "pcomplete" "pcomplete.el" (22086 11930 122062
+;;;;;;  731000))
 ;;; Generated autoloads from pcomplete.el
 
 (autoload 'pcomplete "pcomplete" "\
@@ -20936,7 +20931,7 @@ Setup `shell-mode' to use pcomplete.
 
 ;;;***
 \f
-;;;### (autoloads nil "pcvs" "vc/pcvs.el" (22150 28229 282072 702000))
+;;;### (autoloads nil "pcvs" "vc/pcvs.el" (22092 27718 548268 464000))
 ;;; Generated autoloads from vc/pcvs.el
 
 (autoload 'cvs-checkout "pcvs" "\
@@ -21011,8 +21006,8 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d
 
 ;;;***
 \f
-;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (22150 28229
-;;;;;;  278072 702000))
+;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (22086 11930
+;;;;;;  378062 731000))
 ;;; 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 [examine] `(menu-item ,(purecopy "Examine Directory") cvs-examine :help ,(purecopy "Examine the current state of a workarea"))) (fset 'cvs-global-menu m)) "\
@@ -21020,8 +21015,8 @@ Global menu used by PCL-CVS.")
 
 ;;;***
 \f
-;;;### (autoloads nil "perl-mode" "progmodes/perl-mode.el" (22150
-;;;;;;  28228 890072 702000))
+;;;### (autoloads nil "perl-mode" "progmodes/perl-mode.el" (22086
+;;;;;;  11930 214062 731000))
 ;;; Generated autoloads from progmodes/perl-mode.el
 (put 'perl-indent-level 'safe-local-variable 'integerp)
 (put 'perl-continued-statement-offset 'safe-local-variable 'integerp)
@@ -21082,8 +21077,8 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "picture" "textmodes/picture.el" (22150 28229
-;;;;;;  106072 702000))
+;;;### (autoloads nil "picture" "textmodes/picture.el" (22086 11930
+;;;;;;  318062 731000))
 ;;; Generated autoloads from textmodes/picture.el
 
 (autoload 'picture-mode "picture" "\
@@ -21163,8 +21158,8 @@ they are not by default assigned to keys.
 
 ;;;***
 \f
-;;;### (autoloads nil "pinentry" "net/pinentry.el" (22150 28228 386072
-;;;;;;  702000))
+;;;### (autoloads nil "pinentry" "net/pinentry.el" (22086 11930 2062
+;;;;;;  731000))
 ;;; Generated autoloads from net/pinentry.el
 (push (purecopy '(pinentry 0 1)) package--builtin-versions)
 
@@ -21181,8 +21176,8 @@ will not be shown.
 
 ;;;***
 \f
-;;;### (autoloads nil "plstore" "gnus/plstore.el" (22150 28228 10072
-;;;;;;  702000))
+;;;### (autoloads nil "plstore" "gnus/plstore.el" (22086 11929 842062
+;;;;;;  731000))
 ;;; Generated autoloads from gnus/plstore.el
 
 (autoload 'plstore-open "plstore" "\
@@ -21197,8 +21192,8 @@ Major mode for editing PLSTORE files.
 
 ;;;***
 \f
-;;;### (autoloads nil "po" "textmodes/po.el" (22150 28229 106072
-;;;;;;  702000))
+;;;### (autoloads nil "po" "textmodes/po.el" (22086 11930 322062
+;;;;;;  731000))
 ;;; Generated autoloads from textmodes/po.el
 
 (autoload 'po-find-file-coding-system "po" "\
@@ -21209,7 +21204,7 @@ Called through `file-coding-system-alist', before the file is visited for real.
 
 ;;;***
 \f
-;;;### (autoloads nil "pong" "play/pong.el" (22150 28228 682072 702000))
+;;;### (autoloads nil "pong" "play/pong.el" (22086 11930 130062 731000))
 ;;; Generated autoloads from play/pong.el
 
 (autoload 'pong "pong" "\
@@ -21225,7 +21220,7 @@ pong-mode keybindings:\\<pong-mode-map>
 
 ;;;***
 \f
-;;;### (autoloads nil "pop3" "gnus/pop3.el" (22150 28228 14072 702000))
+;;;### (autoloads nil "pop3" "gnus/pop3.el" (22086 11929 846062 731000))
 ;;; Generated autoloads from gnus/pop3.el
 
 (autoload 'pop3-movemail "pop3" "\
@@ -21236,8 +21231,8 @@ Use streaming commands.
 
 ;;;***
 \f
-;;;### (autoloads nil "pp" "emacs-lisp/pp.el" (22150 28227 454072
-;;;;;;  702000))
+;;;### (autoloads nil "pp" "emacs-lisp/pp.el" (22086 11929 682062
+;;;;;;  731000))
 ;;; Generated autoloads from emacs-lisp/pp.el
 
 (autoload 'pp-to-string "pp" "\
@@ -21287,8 +21282,8 @@ Ignores leading comment characters.
 
 ;;;***
 \f
-;;;### (autoloads nil "printing" "printing.el" (22150 28228 698072
-;;;;;;  702000))
+;;;### (autoloads nil "printing" "printing.el" (22092 27718 128268
+;;;;;;  464000))
 ;;; Generated autoloads from printing.el
 (push (purecopy '(printing 6 9 3)) package--builtin-versions)
 
@@ -21876,7 +21871,7 @@ are both set to t.
 
 ;;;***
 \f
-;;;### (autoloads nil "proced" "proced.el" (22150 28228 702072 702000))
+;;;### (autoloads nil "proced" "proced.el" (22092 27718 128268 464000))
 ;;; Generated autoloads from proced.el
 
 (autoload 'proced "proced" "\
@@ -21894,8 +21889,8 @@ Proced buffers.
 
 ;;;***
 \f
-;;;### (autoloads nil "profiler" "profiler.el" (22150 28228 702072
-;;;;;;  702000))
+;;;### (autoloads nil "profiler" "profiler.el" (22086 11930 134062
+;;;;;;  731000))
 ;;; Generated autoloads from profiler.el
 
 (autoload 'profiler-start "profiler" "\
@@ -21923,8 +21918,8 @@ Open profile FILENAME.
 
 ;;;***
 \f
-;;;### (autoloads nil "project" "progmodes/project.el" (22150 28228
-;;;;;;  890072 702000))
+;;;### (autoloads nil "project" "progmodes/project.el" (22088 30660
+;;;;;;  79412 927000))
 ;;; Generated autoloads from progmodes/project.el
 
 (autoload 'project-current "project" "\
@@ -21935,14 +21930,14 @@ the user for a different directory to look in.
 \(fn &optional MAYBE-PROMPT DIR)" nil nil)
 
 (autoload 'project-find-regexp "project" "\
-Find all matches for REGEXP in the current project's roots.
+Find all matches for REGEXP in the current project.
 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.
+(autoload 'project-or-libraries-find-regexp "project" "\
+Find all matches for REGEXP in the current project or libraries.
 With \\[universal-argument] prefix, you can specify the file name
 pattern to search for.
 
@@ -21950,8 +21945,8 @@ pattern to search for.
 
 ;;;***
 \f
-;;;### (autoloads nil "prolog" "progmodes/prolog.el" (22150 28228
-;;;;;;  894072 702000))
+;;;### (autoloads nil "prolog" "progmodes/prolog.el" (22086 11930
+;;;;;;  218062 731000))
 ;;; Generated autoloads from progmodes/prolog.el
 
 (autoload 'prolog-mode "prolog" "\
@@ -21984,7 +21979,7 @@ With prefix argument ARG, restart the Prolog process if running before.
 
 ;;;***
 \f
-;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (22150 28228 986072 702000))
+;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (22092 27718 404268 464000))
 ;;; 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")) "\
@@ -21995,8 +21990,8 @@ The default value is (\"/usr/local/share/emacs/fonts/bdf\").")
 
 ;;;***
 \f
-;;;### (autoloads nil "ps-mode" "progmodes/ps-mode.el" (22150 28228
-;;;;;;  894072 702000))
+;;;### (autoloads nil "ps-mode" "progmodes/ps-mode.el" (22086 11930
+;;;;;;  218062 731000))
 ;;; Generated autoloads from progmodes/ps-mode.el
 (push (purecopy '(ps-mode 1 1 9)) package--builtin-versions)
 
@@ -22042,8 +22037,8 @@ Typing \\<ps-run-mode-map>\\[ps-run-goto-error] when the cursor is at the number
 
 ;;;***
 \f
-;;;### (autoloads nil "ps-print" "ps-print.el" (22150 28228 990072
-;;;;;;  702000))
+;;;### (autoloads nil "ps-print" "ps-print.el" (22092 27718 412268
+;;;;;;  464000))
 ;;; Generated autoloads from ps-print.el
 (push (purecopy '(ps-print 7 3 5)) package--builtin-versions)
 
@@ -22240,8 +22235,8 @@ If EXTENSION is any other symbol, it is ignored.
 
 ;;;***
 \f
-;;;### (autoloads nil "pulse" "cedet/pulse.el" (22150 28227 222072
-;;;;;;  702000))
+;;;### (autoloads nil "pulse" "cedet/pulse.el" (22086 11929 550062
+;;;;;;  731000))
 ;;; Generated autoloads from cedet/pulse.el
 (push (purecopy '(pulse 1 0)) package--builtin-versions)
 
@@ -22259,8 +22254,8 @@ Optional argument FACE specifies the face to do the highlighting.
 
 ;;;***
 \f
-;;;### (autoloads nil "python" "progmodes/python.el" (22150 28228
-;;;;;;  906072 702000))
+;;;### (autoloads nil "python" "progmodes/python.el" (22092 27718
+;;;;;;  244268 464000))
 ;;; Generated autoloads from progmodes/python.el
 (push (purecopy '(python 0 25 1)) package--builtin-versions)
 
@@ -22297,7 +22292,7 @@ Major mode for editing Python files.
 
 ;;;***
 \f
-;;;### (autoloads nil "qp" "gnus/qp.el" (22150 28228 14072 702000))
+;;;### (autoloads nil "qp" "gnus/qp.el" (22086 11929 846062 731000))
 ;;; Generated autoloads from gnus/qp.el
 
 (autoload 'quoted-printable-decode-region "qp" "\
@@ -22316,8 +22311,8 @@ them into characters should be done separately.
 
 ;;;***
 \f
-;;;### (autoloads nil "quail" "international/quail.el" (22150 28228
-;;;;;;  122072 702000))
+;;;### (autoloads nil "quail" "international/quail.el" (22086 11929
+;;;;;;  882062 731000))
 ;;; Generated autoloads from international/quail.el
 
 (autoload 'quail-title "quail" "\
@@ -22547,8 +22542,8 @@ of each directory.
 
 ;;;***
 \f
-;;;### (autoloads nil "quail/hangul" "leim/quail/hangul.el" (22150
-;;;;;;  28228 202072 702000))
+;;;### (autoloads nil "quail/hangul" "leim/quail/hangul.el" (22086
+;;;;;;  11929 922062 731000))
 ;;; Generated autoloads from leim/quail/hangul.el
 
 (autoload 'hangul-input-method-activate "quail/hangul" "\
@@ -22561,7 +22556,7 @@ HELP-TEXT is a text set in `hangul-input-method-help-text'.
 ;;;***
 \f
 ;;;### (autoloads nil "quail/uni-input" "leim/quail/uni-input.el"
-;;;;;;  (22150 28228 210072 702000))
+;;;;;;  (22086 11929 930062 731000))
 ;;; Generated autoloads from leim/quail/uni-input.el
 
 (autoload 'ucs-input-activate "quail/uni-input" "\
@@ -22575,8 +22570,8 @@ While this input method is active, the variable
 
 ;;;***
 \f
-;;;### (autoloads nil "quickurl" "net/quickurl.el" (22150 28228 390072
-;;;;;;  702000))
+;;;### (autoloads nil "quickurl" "net/quickurl.el" (22086 11930 2062
+;;;;;;  731000))
 ;;; 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" "\
@@ -22647,8 +22642,8 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'.
 
 ;;;***
 \f
-;;;### (autoloads nil "rcirc" "net/rcirc.el" (22150 28228 390072
-;;;;;;  702000))
+;;;### (autoloads nil "rcirc" "net/rcirc.el" (22092 27717 984268
+;;;;;;  464000))
 ;;; Generated autoloads from net/rcirc.el
 
 (autoload 'rcirc "rcirc" "\
@@ -22686,8 +22681,8 @@ if ARG is omitted or nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "re-builder" "emacs-lisp/re-builder.el" (22150
-;;;;;;  28227 454072 702000))
+;;;### (autoloads nil "re-builder" "emacs-lisp/re-builder.el" (22086
+;;;;;;  11929 682062 731000))
 ;;; Generated autoloads from emacs-lisp/re-builder.el
 
 (defalias 'regexp-builder 're-builder)
@@ -22705,8 +22700,8 @@ matching parts of the target buffer will be highlighted.
 
 ;;;***
 \f
-;;;### (autoloads nil "recentf" "recentf.el" (22150 28228 990072
-;;;;;;  702000))
+;;;### (autoloads nil "recentf" "recentf.el" (22086 11930 254062
+;;;;;;  731000))
 ;;; Generated autoloads from recentf.el
 
 (defvar recentf-mode nil "\
@@ -22732,7 +22727,7 @@ were operated on recently.
 
 ;;;***
 \f
-;;;### (autoloads nil "rect" "rect.el" (22150 28228 990072 702000))
+;;;### (autoloads nil "rect" "rect.el" (22087 9807 394279 951000))
 ;;; Generated autoloads from rect.el
 
 (autoload 'delete-rectangle "rect" "\
@@ -22872,8 +22867,8 @@ Activates the region if needed.  Only lasts until the region is deactivated.
 
 ;;;***
 \f
-;;;### (autoloads nil "refill" "textmodes/refill.el" (22150 28229
-;;;;;;  106072 702000))
+;;;### (autoloads nil "refill" "textmodes/refill.el" (22086 11930
+;;;;;;  322062 731000))
 ;;; Generated autoloads from textmodes/refill.el
 
 (autoload 'refill-mode "refill" "\
@@ -22893,8 +22888,8 @@ For true \"word wrap\" behavior, use `visual-line-mode' instead.
 
 ;;;***
 \f
-;;;### (autoloads nil "reftex" "textmodes/reftex.el" (22150 28229
-;;;;;;  130072 702000))
+;;;### (autoloads nil "reftex" "textmodes/reftex.el" (22086 11930
+;;;;;;  330062 731000))
 ;;; Generated autoloads from textmodes/reftex.el
 (autoload 'reftex-citation "reftex-cite" nil t)
 (autoload 'reftex-all-document-files "reftex-parse")
@@ -22947,8 +22942,8 @@ This enforces rescanning the buffer on next use.
 
 ;;;***
 \f
-;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (22150
-;;;;;;  28229 114072 702000))
+;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (22092
+;;;;;;  27718 512268 464000))
 ;;; 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))))
@@ -22957,8 +22952,8 @@ This enforces rescanning the buffer on next use.
 
 ;;;***
 \f
-;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (22150
-;;;;;;  28227 454072 702000))
+;;;### (autoloads nil "regexp-opt" "emacs-lisp/regexp-opt.el" (22086
+;;;;;;  11929 682062 731000))
 ;;; Generated autoloads from emacs-lisp/regexp-opt.el
 
 (autoload 'regexp-opt "regexp-opt" "\
@@ -22987,15 +22982,15 @@ This means the number of non-shy regexp grouping constructs
 
 ;;;***
 \f
-;;;### (autoloads nil "regi" "emacs-lisp/regi.el" (22150 28227 454072
-;;;;;;  702000))
+;;;### (autoloads nil "regi" "emacs-lisp/regi.el" (22086 11929 682062
+;;;;;;  731000))
 ;;; Generated autoloads from emacs-lisp/regi.el
 (push (purecopy '(regi 1 8)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "remember" "textmodes/remember.el" (22150 28229
-;;;;;;  130072 702000))
+;;;### (autoloads nil "remember" "textmodes/remember.el" (22086 11930
+;;;;;;  334062 731000))
 ;;; Generated autoloads from textmodes/remember.el
 (push (purecopy '(remember 2 0)) package--builtin-versions)
 
@@ -23049,7 +23044,7 @@ to turn the *scratch* buffer into your notes buffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "repeat" "repeat.el" (22150 28228 994072 702000))
+;;;### (autoloads nil "repeat" "repeat.el" (22086 11930 258062 731000))
 ;;; Generated autoloads from repeat.el
 (push (purecopy '(repeat 0 51)) package--builtin-versions)
 
@@ -23072,8 +23067,8 @@ recently executed command not bound to an input event\".
 
 ;;;***
 \f
-;;;### (autoloads nil "reporter" "mail/reporter.el" (22150 28228
-;;;;;;  234072 702000))
+;;;### (autoloads nil "reporter" "mail/reporter.el" (22086 11929
+;;;;;;  938062 731000))
 ;;; Generated autoloads from mail/reporter.el
 
 (autoload 'reporter-submit-bug-report "reporter" "\
@@ -23104,8 +23099,8 @@ mail-sending package is used for editing and sending the message.
 
 ;;;***
 \f
-;;;### (autoloads nil "reposition" "reposition.el" (22150 28228 994072
-;;;;;;  702000))
+;;;### (autoloads nil "reposition" "reposition.el" (22086 11930 262062
+;;;;;;  731000))
 ;;; Generated autoloads from reposition.el
 
 (autoload 'reposition-window "reposition" "\
@@ -23131,7 +23126,7 @@ first comment line visible (if point is in a comment).
 
 ;;;***
 \f
-;;;### (autoloads nil "reveal" "reveal.el" (22150 28228 994072 702000))
+;;;### (autoloads nil "reveal" "reveal.el" (22086 11930 262062 731000))
 ;;; Generated autoloads from reveal.el
 
 (autoload 'reveal-mode "reveal" "\
@@ -23166,8 +23161,8 @@ the mode if ARG is omitted or nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "ring" "emacs-lisp/ring.el" (22150 28227 454072
-;;;;;;  702000))
+;;;### (autoloads nil "ring" "emacs-lisp/ring.el" (22086 11929 682062
+;;;;;;  731000))
 ;;; Generated autoloads from emacs-lisp/ring.el
 
 (autoload 'ring-p "ring" "\
@@ -23182,8 +23177,8 @@ Make a ring that can contain SIZE elements.
 
 ;;;***
 \f
-;;;### (autoloads nil "rlogin" "net/rlogin.el" (22150 28228 394072
-;;;;;;  702000))
+;;;### (autoloads nil "rlogin" "net/rlogin.el" (22086 11930 6062
+;;;;;;  731000))
 ;;; Generated autoloads from net/rlogin.el
 
 (autoload 'rlogin "rlogin" "\
@@ -23227,8 +23222,8 @@ variable.
 
 ;;;***
 \f
-;;;### (autoloads nil "rmail" "mail/rmail.el" (22150 28228 242072
-;;;;;;  702000))
+;;;### (autoloads nil "rmail" "mail/rmail.el" (22092 27717 884268
+;;;;;;  464000))
 ;;; Generated autoloads from mail/rmail.el
 
 (defvar rmail-file-name (purecopy "~/RMAIL") "\
@@ -23425,8 +23420,8 @@ Set PASSWORD to be used for retrieving mail from a POP or IMAP server.
 
 ;;;***
 \f
-;;;### (autoloads nil "rmailout" "mail/rmailout.el" (22150 28228
-;;;;;;  246072 702000))
+;;;### (autoloads nil "rmailout" "mail/rmailout.el" (22086 11929
+;;;;;;  942062 731000))
 ;;; Generated autoloads from mail/rmailout.el
 (put 'rmail-output-file-alist 'risky-local-variable t)
 
@@ -23490,8 +23485,8 @@ than appending to it.  Deletes the message after writing if
 
 ;;;***
 \f
-;;;### (autoloads nil "rng-cmpct" "nxml/rng-cmpct.el" (22150 28228
-;;;;;;  454072 702000))
+;;;### (autoloads nil "rng-cmpct" "nxml/rng-cmpct.el" (22086 11930
+;;;;;;  26062 731000))
 ;;; Generated autoloads from nxml/rng-cmpct.el
 
 (autoload 'rng-c-load-schema "rng-cmpct" "\
@@ -23502,8 +23497,8 @@ Return a pattern.
 
 ;;;***
 \f
-;;;### (autoloads nil "rng-nxml" "nxml/rng-nxml.el" (22150 28228
-;;;;;;  458072 702000))
+;;;### (autoloads nil "rng-nxml" "nxml/rng-nxml.el" (22086 11930
+;;;;;;  30062 731000))
 ;;; Generated autoloads from nxml/rng-nxml.el
 
 (autoload 'rng-nxml-mode-init "rng-nxml" "\
@@ -23515,8 +23510,8 @@ Validation will be enabled if `rng-nxml-auto-validate-flag' is non-nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "rng-valid" "nxml/rng-valid.el" (22150 28228
-;;;;;;  462072 702000))
+;;;### (autoloads nil "rng-valid" "nxml/rng-valid.el" (22086 11930
+;;;;;;  30062 731000))
 ;;; Generated autoloads from nxml/rng-valid.el
 
 (autoload 'rng-validate-mode "rng-valid" "\
@@ -23546,8 +23541,8 @@ to use for finding the schema.
 
 ;;;***
 \f
-;;;### (autoloads nil "rng-xsd" "nxml/rng-xsd.el" (22150 28228 462072
-;;;;;;  702000))
+;;;### (autoloads nil "rng-xsd" "nxml/rng-xsd.el" (22086 11930 30062
+;;;;;;  731000))
 ;;; Generated autoloads from nxml/rng-xsd.el
 
 (put 'http://www\.w3\.org/2001/XMLSchema-datatypes 'rng-dt-compile 'rng-xsd-compile)
@@ -23607,7 +23602,7 @@ Start using robin package NAME, which is a string.
 
 ;;;***
 \f
-;;;### (autoloads nil "rot13" "rot13.el" (22150 28228 994072 702000))
+;;;### (autoloads nil "rot13" "rot13.el" (22086 11930 266062 731000))
 ;;; Generated autoloads from rot13.el
 
 (autoload 'rot13 "rot13" "\
@@ -23644,8 +23639,8 @@ Toggle the use of ROT13 encoding for the current window.
 
 ;;;***
 \f
-;;;### (autoloads nil "rst" "textmodes/rst.el" (22150 28229 146072
-;;;;;;  702000))
+;;;### (autoloads nil "rst" "textmodes/rst.el" (22086 11930 338062
+;;;;;;  731000))
 ;;; Generated autoloads from textmodes/rst.el
  (add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode)))
 
@@ -23675,8 +23670,8 @@ for modes derived from Text mode, like Mail mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (22150
-;;;;;;  28228 910072 702000))
+;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (22089
+;;;;;;  51528 360929 316000))
 ;;; Generated autoloads from progmodes/ruby-mode.el
 (push (purecopy '(ruby-mode 1 2)) package--builtin-versions)
 
@@ -23693,8 +23688,8 @@ Major mode for editing Ruby code.
 
 ;;;***
 \f
-;;;### (autoloads nil "ruler-mode" "ruler-mode.el" (22150 28228 994072
-;;;;;;  702000))
+;;;### (autoloads nil "ruler-mode" "ruler-mode.el" (22086 11930 266062
+;;;;;;  731000))
 ;;; Generated autoloads from ruler-mode.el
 (push (purecopy '(ruler-mode 1 6)) package--builtin-versions)
 
@@ -23712,8 +23707,8 @@ if ARG is omitted or nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (22150 28227 454072
-;;;;;;  702000))
+;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (22086 11929 686062
+;;;;;;  731000))
 ;;; Generated autoloads from emacs-lisp/rx.el
 
 (autoload 'rx-to-string "rx" "\
@@ -24024,15 +24019,15 @@ enclosed in `(and ...)'.
 
 ;;;***
 \f
-;;;### (autoloads nil "sasl-ntlm" "net/sasl-ntlm.el" (22150 28228
-;;;;;;  394072 702000))
+;;;### (autoloads nil "sasl-ntlm" "net/sasl-ntlm.el" (22086 11930
+;;;;;;  6062 731000))
 ;;; Generated autoloads from net/sasl-ntlm.el
 (push (purecopy '(sasl 1 0)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "savehist" "savehist.el" (22150 28228 994072
-;;;;;;  702000))
+;;;### (autoloads nil "savehist" "savehist.el" (22086 11930 266062
+;;;;;;  731000))
 ;;; Generated autoloads from savehist.el
 (push (purecopy '(savehist 24)) package--builtin-versions)
 
@@ -24064,8 +24059,8 @@ histories, which is probably undesirable.
 
 ;;;***
 \f
-;;;### (autoloads nil "saveplace" "saveplace.el" (22150 28228 994072
-;;;;;;  702000))
+;;;### (autoloads nil "saveplace" "saveplace.el" (22086 11930 266062
+;;;;;;  731000))
 ;;; Generated autoloads from saveplace.el
 
 (defvar save-place-mode nil "\
@@ -24086,8 +24081,8 @@ where it was when you previously visited the same file.
 
 ;;;***
 \f
-;;;### (autoloads nil "scheme" "progmodes/scheme.el" (22150 28228
-;;;;;;  910072 702000))
+;;;### (autoloads nil "scheme" "progmodes/scheme.el" (22086 11930
+;;;;;;  222062 731000))
 ;;; Generated autoloads from progmodes/scheme.el
 
 (autoload 'scheme-mode "scheme" "\
@@ -24126,8 +24121,8 @@ that variable's value is a string.
 
 ;;;***
 \f
-;;;### (autoloads nil "score-mode" "gnus/score-mode.el" (22150 28228
-;;;;;;  18072 702000))
+;;;### (autoloads nil "score-mode" "gnus/score-mode.el" (22086 11929
+;;;;;;  850062 731000))
 ;;; Generated autoloads from gnus/score-mode.el
 
 (autoload 'gnus-score-mode "score-mode" "\
@@ -24140,8 +24135,8 @@ This mode is an extended emacs-lisp mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "scroll-all" "scroll-all.el" (22150 28228 994072
-;;;;;;  702000))
+;;;### (autoloads nil "scroll-all" "scroll-all.el" (22089 51528 372929
+;;;;;;  316000))
 ;;; Generated autoloads from scroll-all.el
 
 (defvar scroll-all-mode nil "\
@@ -24166,8 +24161,8 @@ one window apply to all visible windows in the same frame.
 
 ;;;***
 \f
-;;;### (autoloads nil "scroll-lock" "scroll-lock.el" (22150 28228
-;;;;;;  994072 702000))
+;;;### (autoloads nil "scroll-lock" "scroll-lock.el" (22086 11930
+;;;;;;  270062 731000))
 ;;; Generated autoloads from scroll-lock.el
 
 (autoload 'scroll-lock-mode "scroll-lock" "\
@@ -24183,16 +24178,16 @@ vertically fixed relative to window boundaries during scrolling.
 
 ;;;***
 \f
-;;;### (autoloads nil "secrets" "net/secrets.el" (22150 28228 394072
-;;;;;;  702000))
+;;;### (autoloads nil "secrets" "net/secrets.el" (22086 11930 6062
+;;;;;;  731000))
 ;;; Generated autoloads from net/secrets.el
 (when (featurep 'dbusbind)
  (autoload 'secrets-show-secrets "secrets" nil t))
 
 ;;;***
 \f
-;;;### (autoloads nil "semantic" "cedet/semantic.el" (22150 28227
-;;;;;;  222072 702000))
+;;;### (autoloads nil "semantic" "cedet/semantic.el" (22092 27717
+;;;;;;  568268 464000))
 ;;; Generated autoloads from cedet/semantic.el
 (push (purecopy '(semantic 2 2)) package--builtin-versions)
 
@@ -24250,7 +24245,7 @@ Semantic mode.
 ;;;***
 \f
 ;;;### (autoloads nil "semantic/bovine/grammar" "cedet/semantic/bovine/grammar.el"
-;;;;;;  (22150 28227 234072 702000))
+;;;;;;  (22086 11929 554062 731000))
 ;;; Generated autoloads from cedet/semantic/bovine/grammar.el
 
 (autoload 'bovine-grammar-mode "semantic/bovine/grammar" "\
@@ -24261,7 +24256,7 @@ Major mode for editing Bovine grammars.
 ;;;***
 \f
 ;;;### (autoloads nil "semantic/wisent/grammar" "cedet/semantic/wisent/grammar.el"
-;;;;;;  (22150 28227 266072 702000))
+;;;;;;  (22086 11929 578062 731000))
 ;;; Generated autoloads from cedet/semantic/wisent/grammar.el
 
 (autoload 'wisent-grammar-mode "semantic/wisent/grammar" "\
@@ -24271,8 +24266,8 @@ Major mode for editing Wisent grammars.
 
 ;;;***
 \f
-;;;### (autoloads nil "sendmail" "mail/sendmail.el" (22150 28228
-;;;;;;  254072 702000))
+;;;### (autoloads nil "sendmail" "mail/sendmail.el" (22086 11929
+;;;;;;  946062 731000))
 ;;; Generated autoloads from mail/sendmail.el
 
 (defvar mail-from-style 'default "\
@@ -24553,14 +24548,14 @@ Like `mail' command, but display mail buffer in another frame.
 
 ;;;***
 \f
-;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (22150 28227 454072
-;;;;;;  702000))
+;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (22086 11929 686062
+;;;;;;  731000))
 ;;; Generated autoloads from emacs-lisp/seq.el
 (push (purecopy '(seq 2 3)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "server" "server.el" (22150 28228 998072 702000))
+;;;### (autoloads nil "server" "server.el" (22093 48588 588393 539000))
 ;;; Generated autoloads from server.el
 
 (put 'server-host 'risky-local-variable t)
@@ -24627,7 +24622,7 @@ only these files will be asked to be saved.
 
 ;;;***
 \f
-;;;### (autoloads nil "ses" "ses.el" (22150 28229 14072 702000))
+;;;### (autoloads nil "ses" "ses.el" (22092 27718 416268 464000))
 ;;; Generated autoloads from ses.el
 
 (autoload 'ses-mode "ses" "\
@@ -24671,8 +24666,8 @@ formula:
 
 ;;;***
 \f
-;;;### (autoloads nil "sgml-mode" "textmodes/sgml-mode.el" (22150
-;;;;;;  28229 150072 702000))
+;;;### (autoloads nil "sgml-mode" "textmodes/sgml-mode.el" (22092
+;;;;;;  27718 512268 464000))
 ;;; Generated autoloads from textmodes/sgml-mode.el
 
 (autoload 'sgml-mode "sgml-mode" "\
@@ -24737,8 +24732,8 @@ To work around that, do:
 
 ;;;***
 \f
-;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (22150
-;;;;;;  28228 918072 702000))
+;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (22092
+;;;;;;  27718 260268 464000))
 ;;; Generated autoloads from progmodes/sh-script.el
 (push (purecopy '(sh-script 2 0 6)) package--builtin-versions)
 (put 'sh-shell 'safe-local-variable 'symbolp)
@@ -24753,8 +24748,7 @@ 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.
+shell-specific features.
 
 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
@@ -24802,8 +24796,8 @@ with your script for an edit-interpret-debug cycle.
 
 ;;;***
 \f
-;;;### (autoloads nil "shadow" "emacs-lisp/shadow.el" (22150 28227
-;;;;;;  454072 702000))
+;;;### (autoloads nil "shadow" "emacs-lisp/shadow.el" (22086 11929
+;;;;;;  686062 731000))
 ;;; Generated autoloads from emacs-lisp/shadow.el
 
 (autoload 'list-load-path-shadows "shadow" "\
@@ -24852,8 +24846,8 @@ function, `load-path-shadows-find'.
 
 ;;;***
 \f
-;;;### (autoloads nil "shadowfile" "shadowfile.el" (22150 28229 14072
-;;;;;;  702000))
+;;;### (autoloads nil "shadowfile" "shadowfile.el" (22086 11930 278062
+;;;;;;  731000))
 ;;; Generated autoloads from shadowfile.el
 
 (autoload 'shadow-define-cluster "shadowfile" "\
@@ -24891,7 +24885,7 @@ Set up file shadowing.
 
 ;;;***
 \f
-;;;### (autoloads nil "shell" "shell.el" (22150 28229 14072 702000))
+;;;### (autoloads nil "shell" "shell.el" (22086 11930 278062 731000))
 ;;; Generated autoloads from shell.el
 
 (defvar shell-dumb-shell-regexp (purecopy "cmd\\(proxy\\)?\\.exe") "\
@@ -24939,7 +24933,7 @@ Otherwise, one argument `-i' is passed to the shell.
 
 ;;;***
 \f
-;;;### (autoloads nil "shr" "net/shr.el" (22150 28228 398072 702000))
+;;;### (autoloads nil "shr" "net/shr.el" (22087 9807 382279 951000))
 ;;; Generated autoloads from net/shr.el
 
 (autoload 'shr-render-region "shr" "\
@@ -24956,8 +24950,8 @@ DOM should be a parse tree as generated by
 
 ;;;***
 \f
-;;;### (autoloads nil "sieve" "gnus/sieve.el" (22150 28228 18072
-;;;;;;  702000))
+;;;### (autoloads nil "sieve" "gnus/sieve.el" (22086 11929 850062
+;;;;;;  731000))
 ;;; Generated autoloads from gnus/sieve.el
 
 (autoload 'sieve-manage "sieve" "\
@@ -24982,8 +24976,8 @@ DOM should be a parse tree as generated by
 
 ;;;***
 \f
-;;;### (autoloads nil "sieve-mode" "gnus/sieve-mode.el" (22150 28228
-;;;;;;  18072 702000))
+;;;### (autoloads nil "sieve-mode" "gnus/sieve-mode.el" (22086 11929
+;;;;;;  850062 731000))
 ;;; Generated autoloads from gnus/sieve-mode.el
 
 (autoload 'sieve-mode "sieve-mode" "\
@@ -24998,8 +24992,8 @@ Turning on Sieve mode runs `sieve-mode-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "simula" "progmodes/simula.el" (22150 28228
-;;;;;;  922072 702000))
+;;;### (autoloads nil "simula" "progmodes/simula.el" (22092 27718
+;;;;;;  288268 464000))
 ;;; Generated autoloads from progmodes/simula.el
 
 (autoload 'simula-mode "simula" "\
@@ -25047,8 +25041,8 @@ with no arguments, if that value is non-nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "skeleton" "skeleton.el" (22150 28229 18072
-;;;;;;  702000))
+;;;### (autoloads nil "skeleton" "skeleton.el" (22086 11930 290062
+;;;;;;  731000))
 ;;; Generated autoloads from skeleton.el
 
 (defvar skeleton-filter-function 'identity "\
@@ -25167,8 +25161,8 @@ twice for the others.
 
 ;;;***
 \f
-;;;### (autoloads nil "smerge-mode" "vc/smerge-mode.el" (22150 28229
-;;;;;;  286072 702000))
+;;;### (autoloads nil "smerge-mode" "vc/smerge-mode.el" (22092 27718
+;;;;;;  548268 464000))
 ;;; Generated autoloads from vc/smerge-mode.el
 
 (autoload 'smerge-ediff "smerge-mode" "\
@@ -25195,8 +25189,8 @@ If no conflict maker is found, turn off `smerge-mode'.
 
 ;;;***
 \f
-;;;### (autoloads nil "smiley" "gnus/smiley.el" (22150 28228 18072
-;;;;;;  702000))
+;;;### (autoloads nil "smiley" "gnus/smiley.el" (22086 11929 850062
+;;;;;;  731000))
 ;;; Generated autoloads from gnus/smiley.el
 
 (autoload 'smiley-region "smiley" "\
@@ -25213,8 +25207,8 @@ interactively.  If there's no argument, do it at the current buffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "smtpmail" "mail/smtpmail.el" (22150 28228
-;;;;;;  254072 702000))
+;;;### (autoloads nil "smtpmail" "mail/smtpmail.el" (22086 11929
+;;;;;;  950062 731000))
 ;;; Generated autoloads from mail/smtpmail.el
 
 (autoload 'smtpmail-send-it "smtpmail" "\
@@ -25229,8 +25223,8 @@ Send mail that was queued as a result of setting `smtpmail-queue-mail'.
 
 ;;;***
 \f
-;;;### (autoloads nil "snake" "play/snake.el" (22150 28228 682072
-;;;;;;  702000))
+;;;### (autoloads nil "snake" "play/snake.el" (22086 11930 130062
+;;;;;;  731000))
 ;;; Generated autoloads from play/snake.el
 
 (autoload 'snake "snake" "\
@@ -25253,8 +25247,8 @@ Snake mode keybindings:
 
 ;;;***
 \f
-;;;### (autoloads nil "snmp-mode" "net/snmp-mode.el" (22150 28228
-;;;;;;  402072 702000))
+;;;### (autoloads nil "snmp-mode" "net/snmp-mode.el" (22086 11930
+;;;;;;  10062 731000))
 ;;; Generated autoloads from net/snmp-mode.el
 
 (autoload 'snmp-mode "snmp-mode" "\
@@ -25283,15 +25277,15 @@ then `snmpv2-mode-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "soap-client" "net/soap-client.el" (22150 28228
-;;;;;;  406072 702000))
+;;;### (autoloads nil "soap-client" "net/soap-client.el" (22092 27717
+;;;;;;  988268 464000))
 ;;; Generated autoloads from net/soap-client.el
 (push (purecopy '(soap-client 3 0 2)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "solar" "calendar/solar.el" (22150 28227 82072
-;;;;;;  702000))
+;;;### (autoloads nil "solar" "calendar/solar.el" (22086 11929 534062
+;;;;;;  731000))
 ;;; Generated autoloads from calendar/solar.el
 
 (autoload 'sunrise-sunset "solar" "\
@@ -25306,8 +25300,8 @@ This function is suitable for execution in an init file.
 
 ;;;***
 \f
-;;;### (autoloads nil "solitaire" "play/solitaire.el" (22150 28228
-;;;;;;  682072 702000))
+;;;### (autoloads nil "solitaire" "play/solitaire.el" (22086 11930
+;;;;;;  130062 731000))
 ;;; Generated autoloads from play/solitaire.el
 
 (autoload 'solitaire "solitaire" "\
@@ -25382,7 +25376,7 @@ Pick your favorite shortcuts:
 
 ;;;***
 \f
-;;;### (autoloads nil "sort" "sort.el" (22150 28229 18072 702000))
+;;;### (autoloads nil "sort" "sort.el" (22086 11930 290062 731000))
 ;;; Generated autoloads from sort.el
 (put 'sort-fold-case 'safe-local-variable 'booleanp)
 
@@ -25557,7 +25551,7 @@ is non-nil, it also prints a message describing the number of deletions.
 
 ;;;***
 \f
-;;;### (autoloads nil "spam" "gnus/spam.el" (22150 28228 22072 702000))
+;;;### (autoloads nil "spam" "gnus/spam.el" (22086 11929 854062 731000))
 ;;; Generated autoloads from gnus/spam.el
 
 (autoload 'spam-initialize "spam" "\
@@ -25571,8 +25565,8 @@ installed through `spam-necessary-extra-headers'.
 
 ;;;***
 \f
-;;;### (autoloads nil "spam-report" "gnus/spam-report.el" (22150
-;;;;;;  28228 22072 702000))
+;;;### (autoloads nil "spam-report" "gnus/spam-report.el" (22086
+;;;;;;  11929 850062 731000))
 ;;; Generated autoloads from gnus/spam-report.el
 
 (autoload 'spam-report-process-queue "spam-report" "\
@@ -25614,8 +25608,8 @@ Spam reports will be queued with the method used when
 
 ;;;***
 \f
-;;;### (autoloads nil "speedbar" "speedbar.el" (22150 28229 22072
-;;;;;;  702000))
+;;;### (autoloads nil "speedbar" "speedbar.el" (22092 27718 452268
+;;;;;;  464000))
 ;;; Generated autoloads from speedbar.el
 
 (defalias 'speedbar 'speedbar-frame-mode)
@@ -25639,8 +25633,8 @@ selected.  If the speedbar frame is active, then select the attached frame.
 
 ;;;***
 \f
-;;;### (autoloads nil "spook" "play/spook.el" (22150 28228 682072
-;;;;;;  702000))
+;;;### (autoloads nil "spook" "play/spook.el" (22086 11930 130062
+;;;;;;  731000))
 ;;; Generated autoloads from play/spook.el
 
 (autoload 'spook "spook" "\
@@ -25655,8 +25649,8 @@ Return a vector containing the lines from `spook-phrases-file'.
 
 ;;;***
 \f
-;;;### (autoloads nil "sql" "progmodes/sql.el" (22150 28228 926072
-;;;;;;  702000))
+;;;### (autoloads nil "sql" "progmodes/sql.el" (22092 27718 320268
+;;;;;;  464000))
 ;;; Generated autoloads from progmodes/sql.el
 (push (purecopy '(sql 3 5)) package--builtin-versions)
 
@@ -26122,15 +26116,15 @@ Run vsql as an inferior process.
 
 ;;;***
 \f
-;;;### (autoloads nil "srecode" "cedet/srecode.el" (22150 28227 270072
-;;;;;;  702000))
+;;;### (autoloads nil "srecode" "cedet/srecode.el" (22086 11929 578062
+;;;;;;  731000))
 ;;; Generated autoloads from cedet/srecode.el
 (push (purecopy '(srecode 1 2)) package--builtin-versions)
 
 ;;;***
 \f
 ;;;### (autoloads nil "srecode/srt-mode" "cedet/srecode/srt-mode.el"
-;;;;;;  (22150 28227 274072 702000))
+;;;;;;  (22086 11929 582062 731000))
 ;;; Generated autoloads from cedet/srecode/srt-mode.el
 
 (autoload 'srecode-template-mode "srecode/srt-mode" "\
@@ -26142,8 +26136,8 @@ Major-mode for writing SRecode macros.
 
 ;;;***
 \f
-;;;### (autoloads nil "starttls" "gnus/starttls.el" (22150 28228
-;;;;;;  22072 702000))
+;;;### (autoloads nil "starttls" "gnus/starttls.el" (22086 11929
+;;;;;;  854062 731000))
 ;;; Generated autoloads from gnus/starttls.el
 
 (autoload 'starttls-open-stream "starttls" "\
@@ -26166,7 +26160,8 @@ GnuTLS requires a port number.
 
 ;;;***
 \f
-;;;### (autoloads nil "strokes" "strokes.el" (22150 28229 22072 702000))
+;;;### (autoloads nil "strokes" "strokes.el" (22086 11930 294062
+;;;;;;  731000))
 ;;; Generated autoloads from strokes.el
 
 (autoload 'strokes-global-set-stroke "strokes" "\
@@ -26300,8 +26295,8 @@ Studlify-case the current buffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "subword" "progmodes/subword.el" (22150 28228
-;;;;;;  930072 702000))
+;;;### (autoloads nil "subword" "progmodes/subword.el" (22086 11930
+;;;;;;  226062 731000))
 ;;; Generated autoloads from progmodes/subword.el
 
 (define-obsolete-function-alias 'capitalized-words-mode 'subword-mode "25.1")
@@ -26393,8 +26388,8 @@ See `superword-mode' for more information on Superword mode.
 
 ;;;***
 \f
-;;;### (autoloads nil "supercite" "mail/supercite.el" (22150 28228
-;;;;;;  254072 702000))
+;;;### (autoloads nil "supercite" "mail/supercite.el" (22086 11929
+;;;;;;  950062 731000))
 ;;; Generated autoloads from mail/supercite.el
 
 (autoload 'sc-cite-original "supercite" "\
@@ -26426,7 +26421,8 @@ and `sc-post-hook' is run after the guts of this function.
 
 ;;;***
 \f
-;;;### (autoloads nil "t-mouse" "t-mouse.el" (22150 28229 26072 702000))
+;;;### (autoloads nil "t-mouse" "t-mouse.el" (22086 11930 298062
+;;;;;;  731000))
 ;;; Generated autoloads from t-mouse.el
 
 (define-obsolete-function-alias 't-mouse-mode 'gpm-mouse-mode "23.1")
@@ -26454,7 +26450,7 @@ It relies on the `gpm' daemon being activated.
 
 ;;;***
 \f
-;;;### (autoloads nil "tabify" "tabify.el" (22150 28229 26072 702000))
+;;;### (autoloads nil "tabify" "tabify.el" (22086 11930 298062 731000))
 ;;; Generated autoloads from tabify.el
 
 (autoload 'untabify "tabify" "\
@@ -26483,8 +26479,8 @@ The variable `tab-width' controls the spacing of tab stops.
 
 ;;;***
 \f
-;;;### (autoloads nil "table" "textmodes/table.el" (22150 28229 166072
-;;;;;;  702000))
+;;;### (autoloads nil "table" "textmodes/table.el" (22092 27718 520268
+;;;;;;  464000))
 ;;; Generated autoloads from textmodes/table.el
 
 (autoload 'table-insert "table" "\
@@ -27055,7 +27051,7 @@ converts a table into plain text without frames.  It is a companion to
 
 ;;;***
 \f
-;;;### (autoloads nil "talk" "talk.el" (22150 28229 26072 702000))
+;;;### (autoloads nil "talk" "talk.el" (22086 11930 298062 731000))
 ;;; Generated autoloads from talk.el
 
 (autoload 'talk-connect "talk" "\
@@ -27070,8 +27066,8 @@ Connect to the Emacs talk group from the current X display or tty frame.
 
 ;;;***
 \f
-;;;### (autoloads nil "tar-mode" "tar-mode.el" (22150 28229 26072
-;;;;;;  702000))
+;;;### (autoloads nil "tar-mode" "tar-mode.el" (22086 11930 298062
+;;;;;;  731000))
 ;;; Generated autoloads from tar-mode.el
 
 (autoload 'tar-mode "tar-mode" "\
@@ -27094,8 +27090,8 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'.
 
 ;;;***
 \f
-;;;### (autoloads nil "tcl" "progmodes/tcl.el" (22150 28228 934072
-;;;;;;  702000))
+;;;### (autoloads nil "tcl" "progmodes/tcl.el" (22086 11930 230062
+;;;;;;  731000))
 ;;; Generated autoloads from progmodes/tcl.el
 
 (autoload 'tcl-mode "tcl" "\
@@ -27143,8 +27139,8 @@ Prefix argument means invert sense of `tcl-use-smart-word-finder'.
 
 ;;;***
 \f
-;;;### (autoloads nil "telnet" "net/telnet.el" (22150 28228 406072
-;;;;;;  702000))
+;;;### (autoloads nil "telnet" "net/telnet.el" (22086 11930 14062
+;;;;;;  731000))
 ;;; Generated autoloads from net/telnet.el
 
 (autoload 'telnet "telnet" "\
@@ -27169,7 +27165,7 @@ Normally input is edited in Emacs and sent a line at a time.
 
 ;;;***
 \f
-;;;### (autoloads nil "term" "term.el" (22150 28229 58072 702000))
+;;;### (autoloads nil "term" "term.el" (22102 63557 312509 103000))
 ;;; Generated autoloads from term.el
 
 (autoload 'make-term "term" "\
@@ -27211,8 +27207,8 @@ use in that buffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "testcover" "emacs-lisp/testcover.el" (22150
-;;;;;;  28227 458072 702000))
+;;;### (autoloads nil "testcover" "emacs-lisp/testcover.el" (22086
+;;;;;;  11929 686062 731000))
 ;;; Generated autoloads from emacs-lisp/testcover.el
 
 (autoload 'testcover-this-defun "testcover" "\
@@ -27222,8 +27218,8 @@ Start coverage on function under point.
 
 ;;;***
 \f
-;;;### (autoloads nil "tetris" "play/tetris.el" (22150 28228 682072
-;;;;;;  702000))
+;;;### (autoloads nil "tetris" "play/tetris.el" (22086 11930 130062
+;;;;;;  731000))
 ;;; Generated autoloads from play/tetris.el
 (push (purecopy '(tetris 2 1)) package--builtin-versions)
 
@@ -27248,8 +27244,8 @@ tetris-mode keybindings:
 
 ;;;***
 \f
-;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (22150 28229
-;;;;;;  186072 702000))
+;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (22092 27718
+;;;;;;  524268 464000))
 ;;; Generated autoloads from textmodes/tex-mode.el
 
 (defvar tex-shell-file-name nil "\
@@ -27550,8 +27546,8 @@ Major mode to edit DocTeX files.
 
 ;;;***
 \f
-;;;### (autoloads nil "texinfmt" "textmodes/texinfmt.el" (22150 28229
-;;;;;;  190072 702000))
+;;;### (autoloads nil "texinfmt" "textmodes/texinfmt.el" (22086 11930
+;;;;;;  350062 731000))
 ;;; Generated autoloads from textmodes/texinfmt.el
 
 (autoload 'texinfo-format-buffer "texinfmt" "\
@@ -27590,8 +27586,8 @@ if large.  You can use `Info-split' to do this manually.
 
 ;;;***
 \f
-;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (22150 28229
-;;;;;;  194072 702000))
+;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (22086 11930
+;;;;;;  350062 731000))
 ;;; Generated autoloads from textmodes/texinfo.el
 
 (defvar texinfo-open-quote (purecopy "``") "\
@@ -27675,8 +27671,8 @@ value of `texinfo-mode-hook'.
 
 ;;;***
 \f
-;;;### (autoloads nil "thai-util" "language/thai-util.el" (22150
-;;;;;;  28228 198072 702000))
+;;;### (autoloads nil "thai-util" "language/thai-util.el" (22086
+;;;;;;  11929 902062 731000))
 ;;; Generated autoloads from language/thai-util.el
 
 (autoload 'thai-compose-region "thai-util" "\
@@ -27703,8 +27699,8 @@ Compose Thai characters in the current buffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "thingatpt" "thingatpt.el" (22150 28229 198072
-;;;;;;  702000))
+;;;### (autoloads nil "thingatpt" "thingatpt.el" (22086 11930 354062
+;;;;;;  731000))
 ;;; Generated autoloads from thingatpt.el
 
 (autoload 'forward-thing "thingatpt" "\
@@ -27768,7 +27764,7 @@ Return the Lisp list at point, or nil if none is found.
 
 ;;;***
 \f
-;;;### (autoloads nil "thumbs" "thumbs.el" (22150 28229 198072 702000))
+;;;### (autoloads nil "thumbs" "thumbs.el" (22086 11930 354062 731000))
 ;;; Generated autoloads from thumbs.el
 
 (autoload 'thumbs-find-thumb "thumbs" "\
@@ -27802,15 +27798,15 @@ In dired, call the setroot program on the image at point.
 
 ;;;***
 \f
-;;;### (autoloads nil "thunk" "emacs-lisp/thunk.el" (22150 28227
-;;;;;;  458072 702000))
+;;;### (autoloads nil "thunk" "emacs-lisp/thunk.el" (22086 11929
+;;;;;;  690062 731000))
 ;;; Generated autoloads from emacs-lisp/thunk.el
 (push (purecopy '(thunk 1 0)) package--builtin-versions)
 
 ;;;***
 \f
-;;;### (autoloads nil "tibet-util" "language/tibet-util.el" (22150
-;;;;;;  28228 198072 702000))
+;;;### (autoloads nil "tibet-util" "language/tibet-util.el" (22086
+;;;;;;  11929 906062 731000))
 ;;; Generated autoloads from language/tibet-util.el
 
 (autoload 'tibetan-char-p "tibet-util" "\
@@ -27883,8 +27879,8 @@ See also docstring of the function tibetan-compose-region.
 
 ;;;***
 \f
-;;;### (autoloads nil "tildify" "textmodes/tildify.el" (22150 28229
-;;;;;;  198072 702000))
+;;;### (autoloads nil "tildify" "textmodes/tildify.el" (22086 11930
+;;;;;;  354062 731000))
 ;;; Generated autoloads from textmodes/tildify.el
 (push (purecopy '(tildify 4 6 1)) package--builtin-versions)
 
@@ -27950,7 +27946,7 @@ variable will be set to the representation.
 
 ;;;***
 \f
-;;;### (autoloads nil "time" "time.el" (22150 28229 202072 702000))
+;;;### (autoloads nil "time" "time.el" (22086 11930 354062 731000))
 ;;; Generated autoloads from time.el
 
 (defvar display-time-day-and-date nil "\
@@ -28012,8 +28008,8 @@ Return a string giving the duration of the Emacs initialization.
 
 ;;;***
 \f
-;;;### (autoloads nil "time-date" "calendar/time-date.el" (22150
-;;;;;;  28227 82072 702000))
+;;;### (autoloads nil "time-date" "calendar/time-date.el" (22086
+;;;;;;  11929 538062 731000))
 ;;; Generated autoloads from calendar/time-date.el
 
 (autoload 'date-to-time "time-date" "\
@@ -28116,8 +28112,8 @@ Convert the time interval in seconds to a short string.
 
 ;;;***
 \f
-;;;### (autoloads nil "time-stamp" "time-stamp.el" (22150 28229 202072
-;;;;;;  702000))
+;;;### (autoloads nil "time-stamp" "time-stamp.el" (22092 27718 528268
+;;;;;;  464000))
 ;;; 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)
@@ -28157,8 +28153,8 @@ With ARG, turn time stamping on if and only if arg is positive.
 
 ;;;***
 \f
-;;;### (autoloads nil "timeclock" "calendar/timeclock.el" (22150
-;;;;;;  28227 82072 702000))
+;;;### (autoloads nil "timeclock" "calendar/timeclock.el" (22086
+;;;;;;  11929 538062 731000))
 ;;; Generated autoloads from calendar/timeclock.el
 (push (purecopy '(timeclock 2 6 1)) package--builtin-versions)
 
@@ -28268,7 +28264,7 @@ relative only to the time worked today, and not to past time.
 ;;;***
 \f
 ;;;### (autoloads nil "titdic-cnv" "international/titdic-cnv.el"
-;;;;;;  (22150 28228 134072 702000))
+;;;;;;  (22086 11929 886062 731000))
 ;;; Generated autoloads from international/titdic-cnv.el
 
 (autoload 'titdic-convert "titdic-cnv" "\
@@ -28290,7 +28286,7 @@ To get complete usage, invoke \"emacs -batch -f batch-titdic-convert -h\".
 
 ;;;***
 \f
-;;;### (autoloads nil "tmm" "tmm.el" (22150 28229 202072 702000))
+;;;### (autoloads nil "tmm" "tmm.el" (22086 11930 354062 731000))
 ;;; Generated autoloads from tmm.el
  (define-key global-map "\M-`" 'tmm-menubar)
  (define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse)
@@ -28332,8 +28328,8 @@ Its value should be an event that has a binding in MENU.
 
 ;;;***
 \f
-;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (22150
-;;;;;;  28227 138072 702000))
+;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (22086
+;;;;;;  11929 538062 731000))
 ;;; Generated autoloads from calendar/todo-mode.el
 
 (autoload 'todo-show "todo-mode" "\
@@ -28400,8 +28396,8 @@ Mode for displaying and reprioritizing top priority Todo.
 
 ;;;***
 \f
-;;;### (autoloads nil "tool-bar" "tool-bar.el" (22150 28229 202072
-;;;;;;  702000))
+;;;### (autoloads nil "tool-bar" "tool-bar.el" (22086 11930 358062
+;;;;;;  731000))
 ;;; Generated autoloads from tool-bar.el
 
 (autoload 'toggle-tool-bar-mode-from-frame "tool-bar" "\
@@ -28471,8 +28467,8 @@ holds a keymap.
 
 ;;;***
 \f
-;;;### (autoloads nil "tq" "emacs-lisp/tq.el" (22150 28227 458072
-;;;;;;  702000))
+;;;### (autoloads nil "tq" "emacs-lisp/tq.el" (22086 11929 690062
+;;;;;;  731000))
 ;;; Generated autoloads from emacs-lisp/tq.el
 
 (autoload 'tq-create "tq" "\
@@ -28485,8 +28481,8 @@ to a tcp server on another machine.
 
 ;;;***
 \f
-;;;### (autoloads nil "trace" "emacs-lisp/trace.el" (22150 28227
-;;;;;;  458072 702000))
+;;;### (autoloads nil "trace" "emacs-lisp/trace.el" (22086 11929
+;;;;;;  690062 731000))
 ;;; Generated autoloads from emacs-lisp/trace.el
 
 (defvar trace-buffer "*trace-output*" "\
@@ -28531,8 +28527,7 @@ the output buffer or changing the window configuration.
 
 ;;;***
 \f
-;;;### (autoloads nil "tramp" "net/tramp.el" (22150 28228 442072
-;;;;;;  702000))
+;;;### (autoloads nil "tramp" "net/tramp.el" (22092 27718 8268 464000))
 ;;; Generated autoloads from net/tramp.el
 
 (defvar tramp-mode t "\
@@ -28647,8 +28642,8 @@ Discard Tramp from loading remote files.
 
 ;;;***
 \f
-;;;### (autoloads nil "tramp-ftp" "net/tramp-ftp.el" (22150 28228
-;;;;;;  410072 702000))
+;;;### (autoloads nil "tramp-ftp" "net/tramp-ftp.el" (22086 11930
+;;;;;;  14062 731000))
 ;;; Generated autoloads from net/tramp-ftp.el
 
 (autoload 'tramp-ftp-enable-ange-ftp "tramp-ftp" "\
@@ -28658,15 +28653,8 @@ Discard Tramp from loading remote files.
 
 ;;;***
 \f
-;;;### (autoloads nil "trampver" "net/trampver.el" (22150 28228 442072
-;;;;;;  702000))
-;;; Generated autoloads from net/trampver.el
-(push (purecopy '(tramp 2 2 13 25 1)) package--builtin-versions)
-
-;;;***
-\f
-;;;### (autoloads nil "tutorial" "tutorial.el" (22150 28229 206072
-;;;;;;  702000))
+;;;### (autoloads nil "tutorial" "tutorial.el" (22086 11930 358062
+;;;;;;  731000))
 ;;; Generated autoloads from tutorial.el
 
 (autoload 'help-with-tutorial "tutorial" "\
@@ -28701,8 +28689,8 @@ resumed later.
 
 ;;;***
 \f
-;;;### (autoloads nil "two-column" "textmodes/two-column.el" (22150
-;;;;;;  28229 198072 702000))
+;;;### (autoloads nil "two-column" "textmodes/two-column.el" (22086
+;;;;;;  11930 354062 731000))
 ;;; Generated autoloads from textmodes/two-column.el
  (autoload '2C-command "two-column" () t 'keymap)
  (global-set-key "\C-x6" '2C-command)
@@ -28749,8 +28737,8 @@ First column's text    sSs  Second column's text
 
 ;;;***
 \f
-;;;### (autoloads nil "type-break" "type-break.el" (22150 28229 206072
-;;;;;;  702000))
+;;;### (autoloads nil "type-break" "type-break.el" (22086 11930 358062
+;;;;;;  731000))
 ;;; Generated autoloads from type-break.el
 
 (defvar type-break-mode nil "\
@@ -28882,7 +28870,7 @@ FRAC should be the inverse of the fractional value; for example, a value of
 
 ;;;***
 \f
-;;;### (autoloads nil "uce" "mail/uce.el" (22150 28228 258072 702000))
+;;;### (autoloads nil "uce" "mail/uce.el" (22086 11929 950062 731000))
 ;;; Generated autoloads from mail/uce.el
 
 (autoload 'uce-reply-to-uce "uce" "\
@@ -28896,7 +28884,7 @@ You might need to set `uce-mail-reader' before using this.
 ;;;***
 \f
 ;;;### (autoloads nil "ucs-normalize" "international/ucs-normalize.el"
-;;;;;;  (22150 28228 134072 702000))
+;;;;;;  (22086 11929 886062 731000))
 ;;; Generated autoloads from international/ucs-normalize.el
 
 (autoload 'ucs-normalize-NFD-region "ucs-normalize" "\
@@ -28961,8 +28949,8 @@ Normalize the string STR by the Unicode NFC and Mac OS's HFS Plus.
 
 ;;;***
 \f
-;;;### (autoloads nil "underline" "textmodes/underline.el" (22150
-;;;;;;  28229 198072 702000))
+;;;### (autoloads nil "underline" "textmodes/underline.el" (22086
+;;;;;;  11930 354062 731000))
 ;;; Generated autoloads from textmodes/underline.el
 
 (autoload 'underline-region "underline" "\
@@ -28982,8 +28970,8 @@ which specify the range to operate on.
 
 ;;;***
 \f
-;;;### (autoloads nil "unrmail" "mail/unrmail.el" (22150 28228 258072
-;;;;;;  702000))
+;;;### (autoloads nil "unrmail" "mail/unrmail.el" (22086 11929 950062
+;;;;;;  731000))
 ;;; Generated autoloads from mail/unrmail.el
 
 (autoload 'batch-unrmail "unrmail" "\
@@ -29003,8 +28991,8 @@ The variable `unrmail-mbox-format' controls which mbox format to use.
 
 ;;;***
 \f
-;;;### (autoloads nil "unsafep" "emacs-lisp/unsafep.el" (22150 28227
-;;;;;;  458072 702000))
+;;;### (autoloads nil "unsafep" "emacs-lisp/unsafep.el" (22086 11929
+;;;;;;  690062 731000))
 ;;; Generated autoloads from emacs-lisp/unsafep.el
 
 (autoload 'unsafep "unsafep" "\
@@ -29016,7 +29004,7 @@ UNSAFEP-VARS is a list of symbols with local bindings.
 
 ;;;***
 \f
-;;;### (autoloads nil "url" "url/url.el" (22150 28229 234072 702000))
+;;;### (autoloads nil "url" "url/url.el" (22086 11930 366062 731000))
 ;;; Generated autoloads from url/url.el
 
 (autoload 'url-retrieve "url" "\
@@ -29063,8 +29051,8 @@ no further processing).  URL is either a string or a parsed URL.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-auth" "url/url-auth.el" (22150 28229 210072
-;;;;;;  702000))
+;;;### (autoloads nil "url-auth" "url/url-auth.el" (22092 27718 528268
+;;;;;;  464000))
 ;;; Generated autoloads from url/url-auth.el
 
 (autoload 'url-get-authentication "url-auth" "\
@@ -29105,8 +29093,8 @@ RATING   a rating between 1 and 10 of the strength of the authentication.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-cache" "url/url-cache.el" (22150 28229
-;;;;;;  210072 702000))
+;;;### (autoloads nil "url-cache" "url/url-cache.el" (22086 11930
+;;;;;;  362062 731000))
 ;;; Generated autoloads from url/url-cache.el
 
 (autoload 'url-store-in-cache "url-cache" "\
@@ -29127,8 +29115,8 @@ Extract FNAM from the local disk cache.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-cid" "url/url-cid.el" (22150 28229 210072
-;;;;;;  702000))
+;;;### (autoloads nil "url-cid" "url/url-cid.el" (22086 11930 362062
+;;;;;;  731000))
 ;;; Generated autoloads from url/url-cid.el
 
 (autoload 'url-cid "url-cid" "\
@@ -29138,8 +29126,8 @@ Extract FNAM from the local disk cache.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-dav" "url/url-dav.el" (22150 28229 214072
-;;;;;;  702000))
+;;;### (autoloads nil "url-dav" "url/url-dav.el" (22086 11930 362062
+;;;;;;  731000))
 ;;; Generated autoloads from url/url-dav.el
 
 (autoload 'url-dav-supported-p "url-dav" "\
@@ -29173,8 +29161,8 @@ added to this list, so most requests can just pass in nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-file" "url/url-file.el" (22150 28229 214072
-;;;;;;  702000))
+;;;### (autoloads nil "url-file" "url/url-file.el" (22086 11930 362062
+;;;;;;  731000))
 ;;; Generated autoloads from url/url-file.el
 
 (autoload 'url-file "url-file" "\
@@ -29184,8 +29172,8 @@ Handle file: and ftp: URLs.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-gw" "url/url-gw.el" (22150 28229 218072
-;;;;;;  702000))
+;;;### (autoloads nil "url-gw" "url/url-gw.el" (22086 11930 362062
+;;;;;;  731000))
 ;;; Generated autoloads from url/url-gw.el
 
 (autoload 'url-gateway-nslookup-host "url-gw" "\
@@ -29206,8 +29194,8 @@ overriding the value of `url-gateway-method'.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (22150
-;;;;;;  28229 218072 702000))
+;;;### (autoloads nil "url-handlers" "url/url-handlers.el" (22089
+;;;;;;  51528 372929 316000))
 ;;; Generated autoloads from url/url-handlers.el
 
 (defvar url-handler-mode nil "\
@@ -29268,8 +29256,8 @@ if it had been inserted from a file named URL.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-http" "url/url-http.el" (22150 28229 218072
-;;;;;;  702000))
+;;;### (autoloads nil "url-http" "url/url-http.el" (22092 27718 532268
+;;;;;;  464000))
 ;;; Generated autoloads from url/url-http.el
  (autoload 'url-default-expander "url-expand")
 
@@ -29281,8 +29269,8 @@ if it had been inserted from a file named URL.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-irc" "url/url-irc.el" (22150 28229 222072
-;;;;;;  702000))
+;;;### (autoloads nil "url-irc" "url/url-irc.el" (22086 11930 366062
+;;;;;;  731000))
 ;;; Generated autoloads from url/url-irc.el
 
 (autoload 'url-irc "url-irc" "\
@@ -29292,8 +29280,8 @@ if it had been inserted from a file named URL.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-ldap" "url/url-ldap.el" (22150 28229 222072
-;;;;;;  702000))
+;;;### (autoloads nil "url-ldap" "url/url-ldap.el" (22086 11930 366062
+;;;;;;  731000))
 ;;; Generated autoloads from url/url-ldap.el
 
 (autoload 'url-ldap "url-ldap" "\
@@ -29306,8 +29294,8 @@ URL can be a URL string, or a URL vector of the type returned by
 
 ;;;***
 \f
-;;;### (autoloads nil "url-mailto" "url/url-mailto.el" (22150 28229
-;;;;;;  222072 702000))
+;;;### (autoloads nil "url-mailto" "url/url-mailto.el" (22086 11930
+;;;;;;  366062 731000))
 ;;; Generated autoloads from url/url-mailto.el
 
 (autoload 'url-mail "url-mailto" "\
@@ -29322,8 +29310,8 @@ Handle the mailto: URL syntax.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-misc" "url/url-misc.el" (22150 28229 222072
-;;;;;;  702000))
+;;;### (autoloads nil "url-misc" "url/url-misc.el" (22086 11930 366062
+;;;;;;  731000))
 ;;; Generated autoloads from url/url-misc.el
 
 (autoload 'url-man "url-misc" "\
@@ -29354,8 +29342,8 @@ Fetch a data URL (RFC 2397).
 
 ;;;***
 \f
-;;;### (autoloads nil "url-news" "url/url-news.el" (22150 28229 222072
-;;;;;;  702000))
+;;;### (autoloads nil "url-news" "url/url-news.el" (22086 11930 366062
+;;;;;;  731000))
 ;;; Generated autoloads from url/url-news.el
 
 (autoload 'url-news "url-news" "\
@@ -29370,8 +29358,8 @@ Fetch a data URL (RFC 2397).
 
 ;;;***
 \f
-;;;### (autoloads nil "url-ns" "url/url-ns.el" (22150 28229 222072
-;;;;;;  702000))
+;;;### (autoloads nil "url-ns" "url/url-ns.el" (22086 11930 366062
+;;;;;;  731000))
 ;;; Generated autoloads from url/url-ns.el
 
 (autoload 'isPlainHostName "url-ns" "\
@@ -29411,8 +29399,8 @@ Fetch a data URL (RFC 2397).
 
 ;;;***
 \f
-;;;### (autoloads nil "url-parse" "url/url-parse.el" (22150 28229
-;;;;;;  222072 702000))
+;;;### (autoloads nil "url-parse" "url/url-parse.el" (22086 11930
+;;;;;;  366062 731000))
 ;;; Generated autoloads from url/url-parse.el
 
 (autoload 'url-recreate-url "url-parse" "\
@@ -29463,8 +29451,8 @@ parses to
 
 ;;;***
 \f
-;;;### (autoloads nil "url-privacy" "url/url-privacy.el" (22150 28229
-;;;;;;  222072 702000))
+;;;### (autoloads nil "url-privacy" "url/url-privacy.el" (22086 11930
+;;;;;;  366062 731000))
 ;;; Generated autoloads from url/url-privacy.el
 
 (autoload 'url-setup-privacy-info "url-privacy" "\
@@ -29474,8 +29462,8 @@ Setup variables that expose info about you and your system.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-queue" "url/url-queue.el" (22150 28229
-;;;;;;  226072 702000))
+;;;### (autoloads nil "url-queue" "url/url-queue.el" (22086 11930
+;;;;;;  366062 731000))
 ;;; Generated autoloads from url/url-queue.el
 
 (autoload 'url-queue-retrieve "url-queue" "\
@@ -29489,8 +29477,8 @@ The variable `url-queue-timeout' sets a timeout.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-tramp" "url/url-tramp.el" (22150 28229
-;;;;;;  226072 702000))
+;;;### (autoloads nil "url-tramp" "url/url-tramp.el" (22086 11930
+;;;;;;  366062 731000))
 ;;; Generated autoloads from url/url-tramp.el
 
 (defvar url-tramp-protocols '("ftp" "ssh" "scp" "rsync" "telnet") "\
@@ -29508,8 +29496,8 @@ would have been passed to OPERATION.
 
 ;;;***
 \f
-;;;### (autoloads nil "url-util" "url/url-util.el" (22150 28229 234072
-;;;;;;  702000))
+;;;### (autoloads nil "url-util" "url/url-util.el" (22092 27718 532268
+;;;;;;  464000))
 ;;; Generated autoloads from url/url-util.el
 
 (defvar url-debug nil "\
@@ -29677,8 +29665,8 @@ This uses `url-current-object', set locally to the buffer.
 
 ;;;***
 \f
-;;;### (autoloads nil "userlock" "userlock.el" (22150 28229 234072
-;;;;;;  702000))
+;;;### (autoloads nil "userlock" "userlock.el" (22092 27718 532268
+;;;;;;  464000))
 ;;; Generated autoloads from userlock.el
 
 (autoload 'ask-user-about-lock "userlock" "\
@@ -29706,8 +29694,8 @@ The buffer in question is current when this function is called.
 
 ;;;***
 \f
-;;;### (autoloads nil "utf-7" "international/utf-7.el" (22150 28228
-;;;;;;  134072 702000))
+;;;### (autoloads nil "utf-7" "international/utf-7.el" (22086 11929
+;;;;;;  886062 731000))
 ;;; Generated autoloads from international/utf-7.el
 
 (autoload 'utf-7-post-read-conversion "utf-7" "\
@@ -29732,7 +29720,7 @@ The buffer in question is current when this function is called.
 
 ;;;***
 \f
-;;;### (autoloads nil "utf7" "gnus/utf7.el" (22150 28228 26072 702000))
+;;;### (autoloads nil "utf7" "gnus/utf7.el" (22086 11929 854062 731000))
 ;;; Generated autoloads from gnus/utf7.el
 
 (autoload 'utf7-encode "utf7" "\
@@ -29742,8 +29730,8 @@ Encode UTF-7 STRING.  Use IMAP modification if FOR-IMAP is non-nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "uudecode" "mail/uudecode.el" (22150 28228
-;;;;;;  258072 702000))
+;;;### (autoloads nil "uudecode" "mail/uudecode.el" (22086 11929
+;;;;;;  954062 731000))
 ;;; Generated autoloads from mail/uudecode.el
 
 (autoload 'uudecode-decode-region-external "uudecode" "\
@@ -29767,7 +29755,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME.
 
 ;;;***
 \f
-;;;### (autoloads nil "vc" "vc/vc.el" (22150 28229 306072 702000))
+;;;### (autoloads nil "vc" "vc/vc.el" (22093 48588 592393 539000))
 ;;; Generated autoloads from vc/vc.el
 
 (defvar vc-checkout-hook nil "\
@@ -29998,8 +29986,7 @@ 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.
+list if required.  Optional prefix ARG forces a prompt.
 
 On a non-distributed version control system, update the current
 fileset to the tip revisions.  For each unchanged and unlocked
@@ -30016,11 +30003,8 @@ 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.
-
+if required.  Optional prefix ARG non-nil forces a prompt.
 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)
 
@@ -30083,8 +30067,8 @@ Return the branch part of a revision number REV.
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-annotate" "vc/vc-annotate.el" (22150 28229
-;;;;;;  286072 702000))
+;;;### (autoloads nil "vc-annotate" "vc/vc-annotate.el" (22086 11930
+;;;;;;  382062 731000))
 ;;; Generated autoloads from vc/vc-annotate.el
 
 (autoload 'vc-annotate "vc-annotate" "\
@@ -30123,8 +30107,8 @@ should be applied to the background or to the foreground.
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (22150 28229 290072
-;;;;;;  702000))
+;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (22086 11930 382062
+;;;;;;  731000))
 ;;; Generated autoloads from vc/vc-bzr.el
 
 (defconst vc-bzr-admin-dirname ".bzr" "\
@@ -30140,8 +30124,8 @@ Name of the format file in a .bzr directory.")
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (22150 28229 290072
-;;;;;;  702000))
+;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (22099 26170 434017
+;;;;;;  16000))
 ;;; Generated autoloads from vc/vc-cvs.el
 (defun vc-cvs-registered (f)
   "Return non-nil if file F is registered with CVS."
@@ -30152,8 +30136,8 @@ Name of the format file in a .bzr directory.")
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-dir" "vc/vc-dir.el" (22150 28229 294072
-;;;;;;  702000))
+;;;### (autoloads nil "vc-dir" "vc/vc-dir.el" (22086 11930 386062
+;;;;;;  731000))
 ;;; Generated autoloads from vc/vc-dir.el
 
 (autoload 'vc-dir "vc-dir" "\
@@ -30177,8 +30161,8 @@ These are the commands available for use in the file status buffer:
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-dispatcher" "vc/vc-dispatcher.el" (22150
-;;;;;;  28229 294072 702000))
+;;;### (autoloads nil "vc-dispatcher" "vc/vc-dispatcher.el" (22104
+;;;;;;  18893 237441 487000))
 ;;; Generated autoloads from vc/vc-dispatcher.el
 
 (autoload 'vc-do-command "vc-dispatcher" "\
@@ -30201,8 +30185,8 @@ case, and the process object in the asynchronous case.
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-git" "vc/vc-git.el" (22150 28229 294072
-;;;;;;  702000))
+;;;### (autoloads nil "vc-git" "vc/vc-git.el" (22097 45637 495432
+;;;;;;  455000))
 ;;; Generated autoloads from vc/vc-git.el
  (defun vc-git-registered (file)
   "Return non-nil if FILE is registered with git."
@@ -30213,7 +30197,7 @@ case, and the process object in the asynchronous case.
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (22150 28229 298072 702000))
+;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (22097 45637 503432 455000))
 ;;; Generated autoloads from vc/vc-hg.el
  (defun vc-hg-registered (file)
   "Return non-nil if FILE is registered with hg."
@@ -30224,8 +30208,8 @@ case, and the process object in the asynchronous case.
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (22150 28229 298072
-;;;;;;  702000))
+;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (22097 45637 515432
+;;;;;;  455000))
 ;;; Generated autoloads from vc/vc-mtn.el
 
 (defconst vc-mtn-admin-dir "_MTN" "\
@@ -30241,8 +30225,8 @@ Name of the monotone directory's format file.")
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-rcs" "vc/vc-rcs.el" (22150 28229 302072
-;;;;;;  702000))
+;;;### (autoloads nil "vc-rcs" "vc/vc-rcs.el" (22097 45637 527432
+;;;;;;  455000))
 ;;; Generated autoloads from vc/vc-rcs.el
 
 (defvar vc-rcs-master-templates (purecopy '("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\
@@ -30255,8 +30239,8 @@ For a description of possible values, see `vc-check-master-templates'.")
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-sccs" "vc/vc-sccs.el" (22150 28229 302072
-;;;;;;  702000))
+;;;### (autoloads nil "vc-sccs" "vc/vc-sccs.el" (22086 11930 386062
+;;;;;;  731000))
 ;;; Generated autoloads from vc/vc-sccs.el
 
 (defvar vc-sccs-master-templates (purecopy '("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\
@@ -30274,8 +30258,8 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir)
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-src" "vc/vc-src.el" (22150 28229 302072
-;;;;;;  702000))
+;;;### (autoloads nil "vc-src" "vc/vc-src.el" (22086 11930 386062
+;;;;;;  731000))
 ;;; Generated autoloads from vc/vc-src.el
 
 (defvar vc-src-master-templates (purecopy '("%s.src/%s,v")) "\
@@ -30288,8 +30272,8 @@ For a description of possible values, see `vc-check-master-templates'.")
 
 ;;;***
 \f
-;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (22150 28229 302072
-;;;;;;  702000))
+;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (22101 42694 157526
+;;;;;;  804000))
 ;;; Generated autoloads from vc/vc-svn.el
  (defun vc-svn-registered (f)
   (let ((admin-dir (cond ((and (eq system-type 'windows-nt)
@@ -30302,8 +30286,8 @@ For a description of possible values, see `vc-check-master-templates'.")
 
 ;;;***
 \f
-;;;### (autoloads nil "vera-mode" "progmodes/vera-mode.el" (22150
-;;;;;;  28228 938072 702000))
+;;;### (autoloads nil "vera-mode" "progmodes/vera-mode.el" (22092
+;;;;;;  27718 320268 464000))
 ;;; 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))
@@ -30362,7 +30346,7 @@ Key bindings:
 ;;;***
 \f
 ;;;### (autoloads nil "verilog-mode" "progmodes/verilog-mode.el"
-;;;;;;  (22150 28228 970072 702000))
+;;;;;;  (22092 27718 348268 464000))
 ;;; Generated autoloads from progmodes/verilog-mode.el
 
 (autoload 'verilog-mode "verilog-mode" "\
@@ -30501,8 +30485,8 @@ Key bindings specific to `verilog-mode-map' are:
 
 ;;;***
 \f
-;;;### (autoloads nil "vhdl-mode" "progmodes/vhdl-mode.el" (22150
-;;;;;;  28228 986072 702000))
+;;;### (autoloads nil "vhdl-mode" "progmodes/vhdl-mode.el" (22092
+;;;;;;  27718 400268 464000))
 ;;; Generated autoloads from progmodes/vhdl-mode.el
 
 (autoload 'vhdl-mode "vhdl-mode" "\
@@ -31056,8 +31040,8 @@ Key bindings:
 
 ;;;***
 \f
-;;;### (autoloads nil "viet-util" "language/viet-util.el" (22150
-;;;;;;  28228 198072 702000))
+;;;### (autoloads nil "viet-util" "language/viet-util.el" (22086
+;;;;;;  11929 906062 731000))
 ;;; Generated autoloads from language/viet-util.el
 
 (autoload 'viet-encode-viscii-char "viet-util" "\
@@ -31101,7 +31085,7 @@ Convert Vietnamese characters of the current buffer to `VIQR' mnemonics.
 
 ;;;***
 \f
-;;;### (autoloads nil "view" "view.el" (22150 28229 322072 702000))
+;;;### (autoloads nil "view" "view.el" (22086 11930 390062 731000))
 ;;; Generated autoloads from view.el
 
 (defvar view-remove-frame-by-deleting t "\
@@ -31357,8 +31341,8 @@ Exit View mode and make the current buffer editable.
 
 ;;;***
 \f
-;;;### (autoloads nil "viper" "emulation/viper.el" (22150 28227 478072
-;;;;;;  702000))
+;;;### (autoloads nil "viper" "emulation/viper.el" (22086 11929 698062
+;;;;;;  731000))
 ;;; Generated autoloads from emulation/viper.el
 (push (purecopy '(viper 3 14 1)) package--builtin-versions)
 
@@ -31375,8 +31359,8 @@ Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Top'.
 
 ;;;***
 \f
-;;;### (autoloads nil "warnings" "emacs-lisp/warnings.el" (22150
-;;;;;;  28227 458072 702000))
+;;;### (autoloads nil "warnings" "emacs-lisp/warnings.el" (22086
+;;;;;;  11929 690062 731000))
 ;;; Generated autoloads from emacs-lisp/warnings.el
 
 (defvar warning-prefix-function nil "\
@@ -31466,7 +31450,7 @@ this is equivalent to `display-warning', using
 
 ;;;***
 \f
-;;;### (autoloads nil "wdired" "wdired.el" (22150 28229 322072 702000))
+;;;### (autoloads nil "wdired" "wdired.el" (22086 11930 394062 731000))
 ;;; Generated autoloads from wdired.el
 (push (purecopy '(wdired 2 0)) package--builtin-versions)
 
@@ -31484,8 +31468,8 @@ See `wdired-mode'.
 
 ;;;***
 \f
-;;;### (autoloads nil "webjump" "net/webjump.el" (22150 28228 442072
-;;;;;;  702000))
+;;;### (autoloads nil "webjump" "net/webjump.el" (22086 11930 22062
+;;;;;;  731000))
 ;;; Generated autoloads from net/webjump.el
 
 (autoload 'webjump "webjump" "\
@@ -31501,8 +31485,8 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke
 
 ;;;***
 \f
-;;;### (autoloads nil "which-func" "progmodes/which-func.el" (22150
-;;;;;;  28228 986072 702000))
+;;;### (autoloads nil "which-func" "progmodes/which-func.el" (22086
+;;;;;;  11930 242062 731000))
 ;;; Generated autoloads from progmodes/which-func.el
  (put 'which-func-format 'risky-local-variable t)
  (put 'which-func-current 'risky-local-variable t)
@@ -31532,8 +31516,8 @@ in certain major modes.
 
 ;;;***
 \f
-;;;### (autoloads nil "whitespace" "whitespace.el" (22150 28229 326072
-;;;;;;  702000))
+;;;### (autoloads nil "whitespace" "whitespace.el" (22086 11930 394062
+;;;;;;  731000))
 ;;; Generated autoloads from whitespace.el
 (push (purecopy '(whitespace 13 2 2)) package--builtin-versions)
 
@@ -31901,8 +31885,8 @@ cleaning up these problems.
 
 ;;;***
 \f
-;;;### (autoloads nil "wid-browse" "wid-browse.el" (22150 28229 326072
-;;;;;;  702000))
+;;;### (autoloads nil "wid-browse" "wid-browse.el" (22086 11930 394062
+;;;;;;  731000))
 ;;; Generated autoloads from wid-browse.el
 
 (autoload 'widget-browse-at "wid-browse" "\
@@ -31930,8 +31914,8 @@ if ARG is omitted or nil.
 
 ;;;***
 \f
-;;;### (autoloads nil "wid-edit" "wid-edit.el" (22150 28229 330072
-;;;;;;  702000))
+;;;### (autoloads nil "wid-edit" "wid-edit.el" (22092 27718 580268
+;;;;;;  464000))
 ;;; Generated autoloads from wid-edit.el
 
 (autoload 'widgetp "wid-edit" "\
@@ -31973,8 +31957,8 @@ Setup current buffer so editing string widgets works.
 
 ;;;***
 \f
-;;;### (autoloads nil "windmove" "windmove.el" (22150 28229 330072
-;;;;;;  702000))
+;;;### (autoloads nil "windmove" "windmove.el" (22092 27718 580268
+;;;;;;  464000))
 ;;; Generated autoloads from windmove.el
 
 (autoload 'windmove-left "windmove" "\
@@ -32026,7 +32010,7 @@ Default MODIFIER is `shift'.
 
 ;;;***
 \f
-;;;### (autoloads nil "winner" "winner.el" (22150 28229 354072 702000))
+;;;### (autoloads nil "winner" "winner.el" (22086 11930 398062 731000))
 ;;; Generated autoloads from winner.el
 
 (defvar winner-mode nil "\
@@ -32049,7 +32033,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'.
 
 ;;;***
 \f
-;;;### (autoloads nil "woman" "woman.el" (22150 28229 374072 702000))
+;;;### (autoloads nil "woman" "woman.el" (22092 27718 620268 464000))
 ;;; Generated autoloads from woman.el
 (push (purecopy '(woman 0 551)) package--builtin-versions)
 
@@ -32098,7 +32082,7 @@ Default bookmark handler for Woman buffers.
 
 ;;;***
 \f
-;;;### (autoloads nil "xml" "xml.el" (22150 28229 378072 702000))
+;;;### (autoloads nil "xml" "xml.el" (22092 27718 620268 464000))
 ;;; Generated autoloads from xml.el
 
 (autoload 'xml-parse-file "xml" "\
@@ -32154,8 +32138,8 @@ Both features can be combined by providing a cons cell
 
 ;;;***
 \f
-;;;### (autoloads nil "xmltok" "nxml/xmltok.el" (22150 28228 462072
-;;;;;;  702000))
+;;;### (autoloads nil "xmltok" "nxml/xmltok.el" (22086 11930 30062
+;;;;;;  731000))
 ;;; Generated autoloads from nxml/xmltok.el
 
 (autoload 'xmltok-get-declared-encoding-position "xmltok" "\
@@ -32173,8 +32157,8 @@ If LIMIT is non-nil, then do not consider characters beyond LIMIT.
 
 ;;;***
 \f
-;;;### (autoloads nil "xref" "progmodes/xref.el" (22150 28228 986072
-;;;;;;  702000))
+;;;### (autoloads nil "xref" "progmodes/xref.el" (22105 39773 959886
+;;;;;;  896000))
 ;;; Generated autoloads from progmodes/xref.el
 
 (autoload 'xref-find-backend "xref" "\
@@ -32236,8 +32220,8 @@ The argument has the same meaning as in `apropos'.
 
 ;;;***
 \f
-;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (22150 28229 378072
-;;;;;;  702000))
+;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (22086 11930 402062
+;;;;;;  731000))
 ;;; Generated autoloads from xt-mouse.el
 
 (defvar xterm-mouse-mode nil "\
@@ -32266,7 +32250,7 @@ down the SHIFT key while pressing the mouse button.
 
 ;;;***
 \f
-;;;### (autoloads nil "yenc" "gnus/yenc.el" (22150 28228 26072 702000))
+;;;### (autoloads nil "yenc" "gnus/yenc.el" (22086 11929 854062 731000))
 ;;; Generated autoloads from gnus/yenc.el
 
 (autoload 'yenc-decode-region "yenc" "\
@@ -32281,7 +32265,7 @@ Extract file name from an yenc header.
 
 ;;;***
 \f
-;;;### (autoloads nil "zone" "play/zone.el" (22150 28228 682072 702000))
+;;;### (autoloads nil "zone" "play/zone.el" (22086 11930 130062 731000))
 ;;; Generated autoloads from play/zone.el
 
 (autoload 'zone "zone" "\
@@ -32361,12 +32345,13 @@ Zone out, completely.
 ;;;;;;  "cedet/srecode/loaddefs.el" "cedet/srecode/map.el" "cedet/srecode/mode.el"
 ;;;;;;  "cedet/srecode/semantic.el" "cedet/srecode/srt.el" "cedet/srecode/table.el"
 ;;;;;;  "cedet/srecode/template.el" "cedet/srecode/texi.el" "cus-dep.el"
-;;;;;;  "dframe.el" "dired-aux.el" "dired-x.el" "dom.el" "dos-fns.el"
-;;;;;;  "dos-vars.el" "dos-w32.el" "dynamic-setting.el" "emacs-lisp/avl-tree.el"
-;;;;;;  "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el" "emacs-lisp/cl-extra.el"
-;;;;;;  "emacs-lisp/cl-loaddefs.el" "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el"
-;;;;;;  "emacs-lisp/cl.el" "emacs-lisp/eieio-base.el" "emacs-lisp/eieio-compat.el"
-;;;;;;  "emacs-lisp/eieio-custom.el" "emacs-lisp/eieio-datadebug.el"
+;;;;;;  "dframe.el" "dired-aux.el" "dired-loaddefs.el" "dired-x.el"
+;;;;;;  "dom.el" "dos-fns.el" "dos-vars.el" "dos-w32.el" "dynamic-setting.el"
+;;;;;;  "emacs-lisp/avl-tree.el" "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el"
+;;;;;;  "emacs-lisp/cl-extra.el" "emacs-lisp/cl-loaddefs.el" "emacs-lisp/cl-macs.el"
+;;;;;;  "emacs-lisp/cl-seq.el" "emacs-lisp/cl.el" "emacs-lisp/eieio-base.el"
+;;;;;;  "emacs-lisp/eieio-compat.el" "emacs-lisp/eieio-custom.el"
+;;;;;;  "emacs-lisp/eieio-datadebug.el" "emacs-lisp/eieio-loaddefs.el"
 ;;;;;;  "emacs-lisp/eieio-opt.el" "emacs-lisp/eieio-speedbar.el"
 ;;;;;;  "emacs-lisp/generator.el" "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el"
 ;;;;;;  "emacs-lisp/smie.el" "emacs-lisp/subr-x.el" "emacs-lisp/tcover-ses.el"
@@ -32417,15 +32402,15 @@ Zone out, completely.
 ;;;;;;  "leim/quail/indian.el" "leim/quail/ipa-praat.el" "leim/quail/ipa.el"
 ;;;;;;  "leim/quail/japanese.el" "leim/quail/lao.el" "leim/quail/latin-alt.el"
 ;;;;;;  "leim/quail/latin-ltx.el" "leim/quail/latin-post.el" "leim/quail/latin-pre.el"
-;;;;;;  "leim/quail/lrt.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/sisheng.el" "leim/quail/slovak.el"
-;;;;;;  "leim/quail/symbol-ksc.el" "leim/quail/tamil-dvorak.el" "leim/quail/thai.el"
-;;;;;;  "leim/quail/tibetan.el" "leim/quail/viqr.el" "leim/quail/vntelex.el"
-;;;;;;  "leim/quail/vnvni.el" "leim/quail/welsh.el" "loadup.el" "mail/blessmail.el"
-;;;;;;  "mail/mailheader.el" "mail/mspools.el" "mail/rfc2368.el"
-;;;;;;  "mail/rfc822.el" "mail/rmail-spam-filter.el" "mail/rmailedit.el"
-;;;;;;  "mail/rmailkwd.el" "mail/rmailmm.el" "mail/rmailmsc.el" "mail/rmailsort.el"
+;;;;;;  "leim/quail/lrt.el" "leim/quail/persian.el" "leim/quail/py-punct.el"
+;;;;;;  "leim/quail/pypunct-b5.el" "leim/quail/rfc1345.el" "leim/quail/sgml-input.el"
+;;;;;;  "leim/quail/sisheng.el" "leim/quail/slovak.el" "leim/quail/symbol-ksc.el"
+;;;;;;  "leim/quail/tamil-dvorak.el" "leim/quail/thai.el" "leim/quail/tibetan.el"
+;;;;;;  "leim/quail/viqr.el" "leim/quail/vntelex.el" "leim/quail/vnvni.el"
+;;;;;;  "leim/quail/welsh.el" "loadup.el" "mail/blessmail.el" "mail/mailheader.el"
+;;;;;;  "mail/mspools.el" "mail/rfc2368.el" "mail/rfc822.el" "mail/rmail-loaddefs.el"
+;;;;;;  "mail/rmail-spam-filter.el" "mail/rmailedit.el" "mail/rmailkwd.el"
+;;;;;;  "mail/rmailmm.el" "mail/rmailmsc.el" "mail/rmailsort.el"
 ;;;;;;  "mail/rmailsum.el" "mail/undigest.el" "mh-e/mh-acros.el"
 ;;;;;;  "mh-e/mh-alias.el" "mh-e/mh-buffers.el" "mh-e/mh-compat.el"
 ;;;;;;  "mh-e/mh-funcs.el" "mh-e/mh-gnus.el" "mh-e/mh-identity.el"
@@ -32435,15 +32420,15 @@ Zone out, completely.
 ;;;;;;  "mh-e/mh-speed.el" "mh-e/mh-thread.el" "mh-e/mh-tool-bar.el"
 ;;;;;;  "mh-e/mh-utils.el" "mh-e/mh-xface.el" "mouse-copy.el" "mwheel.el"
 ;;;;;;  "net/dns.el" "net/eudc-vars.el" "net/eudcb-bbdb.el" "net/eudcb-ldap.el"
-;;;;;;  "net/eudcb-mab.el" "net/hmac-def.el" "net/hmac-md5.el" "net/imap.el"
-;;;;;;  "net/ldap.el" "net/mairix.el" "net/newsticker.el" "net/nsm.el"
-;;;;;;  "net/rfc2104.el" "net/sasl-cram.el" "net/sasl-digest.el"
+;;;;;;  "net/eudcb-mab.el" "net/eudcb-ph.el" "net/hmac-def.el" "net/hmac-md5.el"
+;;;;;;  "net/imap.el" "net/ldap.el" "net/mairix.el" "net/newsticker.el"
+;;;;;;  "net/nsm.el" "net/rfc2104.el" "net/sasl-cram.el" "net/sasl-digest.el"
 ;;;;;;  "net/sasl-scram-rfc.el" "net/sasl.el" "net/shr-color.el"
 ;;;;;;  "net/soap-inspect.el" "net/socks.el" "net/tls.el" "net/tramp-adb.el"
 ;;;;;;  "net/tramp-cache.el" "net/tramp-cmds.el" "net/tramp-compat.el"
 ;;;;;;  "net/tramp-gvfs.el" "net/tramp-gw.el" "net/tramp-loaddefs.el"
-;;;;;;  "net/tramp-sh.el" "net/tramp-smb.el" "net/tramp-uu.el" "net/zeroconf.el"
-;;;;;;  "notifications.el" "nxml/nxml-enc.el" "nxml/nxml-maint.el"
+;;;;;;  "net/tramp-sh.el" "net/tramp-smb.el" "net/tramp-uu.el" "net/trampver.el"
+;;;;;;  "net/zeroconf.el" "notifications.el" "nxml/nxml-enc.el" "nxml/nxml-maint.el"
 ;;;;;;  "nxml/nxml-ns.el" "nxml/nxml-outln.el" "nxml/nxml-parse.el"
 ;;;;;;  "nxml/nxml-rap.el" "nxml/nxml-util.el" "nxml/rng-dt.el" "nxml/rng-loc.el"
 ;;;;;;  "nxml/rng-maint.el" "nxml/rng-match.el" "nxml/rng-parse.el"
@@ -32498,7 +32483,7 @@ Zone out, completely.
 ;;;;;;  "vc/ediff-vers.el" "vc/ediff-wind.el" "vc/pcvs-info.el" "vc/pcvs-parse.el"
 ;;;;;;  "vc/pcvs-util.el" "vc/vc-dav.el" "vc/vc-filewise.el" "vcursor.el"
 ;;;;;;  "vt-control.el" "vt100-led.el" "w32-fns.el" "w32-vars.el"
-;;;;;;  "x-dnd.el") (22150 28575 326072 702000))
+;;;;;;  "x-dnd.el") (22108 15942 558032 987000))
 
 ;;;***
 \f
index d49ccb356ff7cd720ada5c8f9da0e87c7f424ac6..122f8e31d5726908d20f9063910a0ca625e907d8 100644 (file)
@@ -120,7 +120,15 @@ Linum mode is a buffer-local minor mode."
   (mapc #'delete-overlay linum-overlays)
   (setq linum-overlays nil)
   (dolist (w (get-buffer-window-list (current-buffer) nil t))
-    (set-window-margins w 0 (cdr (window-margins w)))))
+    ;; restore margins if needed FIXME: This still fails if the
+    ;; "other" mode has incidentally set margins to exactly what linum
+    ;; had: see bug#20674 for a similar workaround in nlinum.el
+    (let ((set-margins (window-parameter w 'linum--set-margins))
+          (current-margins (window-margins w)))
+      (when (and set-margins
+                 (equal set-margins current-margins))
+        (set-window-margins w 0 (cdr current-margins))
+        (set-window-parameter w 'linum--set-margins nil)))))
 
 (defun linum-update-current ()
   "Update line numbers for the current buffer."
@@ -143,10 +151,10 @@ Linum mode is a buffer-local minor mode."
 
 (defun linum--face-width (face)
   (let ((info (font-info (face-font face)))
-       width)
+        width)
     (setq width (aref info 11))
     (if (<= width 0)
-       (setq width (aref info 10)))
+        (setq width (aref info 10)))
     width))
 
 (defun linum-update-window (win)
@@ -170,7 +178,7 @@ Linum mode is a buffer-local minor mode."
              (visited (catch 'visited
                         (dolist (o (overlays-in (point) (point)))
                           (when (equal-including-properties
-                                (overlay-get o 'linum-str) str)
+                                 (overlay-get o 'linum-str) str)
                             (unless (memq o linum-overlays)
                               (push o linum-overlays))
                             (setq linum-available (delq o linum-available))
@@ -193,7 +201,12 @@ Linum mode is a buffer-local minor mode."
       (setq width (ceiling
                    (/ (* width 1.0 (linum--face-width 'linum))
                       (frame-char-width)))))
-    (set-window-margins win width (cdr (window-margins win)))))
+    ;; open up space in the left margin, if needed, and record that
+    ;; fact as the window-parameter `linum--set-margins'
+    (let ((existing-margins (window-margins win)))
+      (when (> width (or (car existing-margins) 0))
+        (set-window-margins win width (cdr existing-margins))
+        (set-window-parameter win 'linum--set-margins (window-margins win))))))
 
 (defun linum-after-change (beg end _len)
   ;; update overlays on deletions, and after newlines are inserted
index b620e6572239ce23b0963140da77ab7a0217e5a2..5f29c01c77e9708a763c23afc7f09c29b91db597 100644 (file)
     (let ((dir (car load-path)))
       ;; We'll probably overflow the pure space.
       (setq purify-flag nil)
+      ;; Value of max-lisp-eval-depth when compiling initially.
+      ;; During bootstrapping the byte-compiler is run interpreted when
+      ;; compiling itself, which uses a lot more stack than usual.
+      (setq max-lisp-eval-depth 2200)
       (setq load-path (list (expand-file-name "." dir)
                            (expand-file-name "emacs-lisp" dir)
                            (expand-file-name "language" dir)
 (load "emacs-lisp/nadvice")
 (load "emacs-lisp/cl-preloaded")
 (load "minibuffer")            ;After loaddefs, for define-minor-mode.
+(load "obarray")        ;abbrev.el is implemented in terms of obarrays.
 (load "abbrev")         ;lisp-mode.el and simple.el use define-abbrev-table.
 (load "simple")
 
index 9a03b0516dfbd37ef1c4f2a1567ce95ded3b38b7..05511a845404ab6a65e8c397d8ed33cddfe4671c 100644 (file)
@@ -40,6 +40,8 @@
 (require 'mail-utils)
 (require 'rfc2047)
 
+(require 'rmail-loaddefs)
+
 (declare-function compilation--message->loc "compile" (cl-x) t)
 (declare-function epa--find-coding-system-for-mime-charset "epa" (mime-charset))
 
@@ -4722,227 +4724,6 @@ Argument MIME is non-nil if this is a mime message."
        (setq buffer-file-coding-system rmail-message-encoding))))
 (add-hook 'after-save-hook 'rmail-after-save-hook)
 
-\f
-;;; Start of automatically extracted autoloads.
-\f
-;;;### (autoloads nil "rmailedit" "rmailedit.el" "03eb8c36b3c57d58eecedb9eeffa623e")
-;;; Generated autoloads from rmailedit.el
-
-(autoload 'rmail-edit-current-message "rmailedit" "\
-Edit the contents of this message.
-
-\(fn)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "rmailkwd" "rmailkwd.el" "4e1b251929961e2b9d3b126301d697d0")
-;;; Generated autoloads from rmailkwd.el
-
-(autoload 'rmail-add-label "rmailkwd" "\
-Add LABEL to labels associated with current RMAIL message.
-Completes (see `rmail-read-label') over known labels when reading.
-LABEL may be a symbol or string.  Only one label is allowed.
-
-\(fn LABEL)" t nil)
-
-(autoload 'rmail-kill-label "rmailkwd" "\
-Remove LABEL from labels associated with current RMAIL message.
-Completes (see `rmail-read-label') over known labels when reading.
-LABEL may be a symbol or string.  Only one label is allowed.
-
-\(fn LABEL)" t nil)
-
-(autoload 'rmail-read-label "rmailkwd" "\
-Read a label with completion, prompting with PROMPT.
-Completions are chosen from `rmail-label-obarray'.  The default
-is `rmail-last-label', if that is non-nil.  Updates `rmail-last-label'
-according to the choice made, and returns a symbol.
-
-\(fn PROMPT)" nil nil)
-
-(autoload 'rmail-previous-labeled-message "rmailkwd" "\
-Show previous message with one of the labels LABELS.
-LABELS should be a comma-separated list of label names.
-If LABELS is empty, the last set of labels specified is used.
-With prefix argument N moves backward N messages with these labels.
-
-\(fn N LABELS)" t nil)
-
-(autoload 'rmail-next-labeled-message "rmailkwd" "\
-Show next message with one of the labels LABELS.
-LABELS should be a comma-separated list of label names.
-If LABELS is empty, the last set of labels specified is used.
-With prefix argument N moves forward N messages with these labels.
-
-\(fn N LABELS)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "rmailmm" "rmailmm.el" "7ab6ab96dfdeeec6bc8f4620295b7119")
-;;; Generated autoloads from rmailmm.el
-
-(autoload 'rmail-mime "rmailmm" "\
-Toggle the display of a MIME message.
-
-The actual behavior depends on the value of `rmail-enable-mime'.
-
-If `rmail-enable-mime' is non-nil (the default), this command toggles
-the display of a MIME message between decoded presentation form and
-raw data.  With optional prefix argument ARG, it toggles the display only
-of the MIME entity at point, if there is one.  The optional argument
-STATE forces a particular display state, rather than toggling.
-`raw' forces raw mode, any other non-nil value forces decoded mode.
-
-If `rmail-enable-mime' is nil, this creates a temporary \"*RMAIL*\"
-buffer holding a decoded copy of the message. Inline content-types are
-handled according to `rmail-mime-media-type-handlers-alist'.
-By default, this displays text and multipart messages, and offers to
-download attachments as specified by `rmail-mime-attachment-dirs-alist'.
-The arguments ARG and STATE have no effect in this case.
-
-\(fn &optional ARG STATE)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "rmailmsc" "rmailmsc.el" "471c370ff9f183806c8d749961ec9d79")
-;;; Generated autoloads from rmailmsc.el
-
-(autoload 'set-rmail-inbox-list "rmailmsc" "\
-Set the inbox list of the current RMAIL file to FILE-NAME.
-You can specify one file name, or several names separated by commas.
-If FILE-NAME is empty, remove any existing inbox list.
-
-This applies only to the current session.
-
-\(fn FILE-NAME)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "rmailsort" "rmailsort.el" "2c8e39f7bae6fcc465a83ebccd46c8a4")
-;;; Generated autoloads from rmailsort.el
-
-(autoload 'rmail-sort-by-date "rmailsort" "\
-Sort messages of current Rmail buffer by \"Date\" header.
-If prefix argument REVERSE is non-nil, sorts in reverse order.
-
-\(fn REVERSE)" t nil)
-
-(autoload 'rmail-sort-by-subject "rmailsort" "\
-Sort messages of current Rmail buffer by \"Subject\" header.
-Ignores any \"Re: \" prefix.  If prefix argument REVERSE is
-non-nil, sorts in reverse order.
-
-\(fn REVERSE)" t nil)
-
-(autoload 'rmail-sort-by-author "rmailsort" "\
-Sort messages of current Rmail buffer by author.
-This uses either the \"From\" or \"Sender\" header, downcased.
-If prefix argument REVERSE is non-nil, sorts in reverse order.
-
-\(fn REVERSE)" t nil)
-
-(autoload 'rmail-sort-by-recipient "rmailsort" "\
-Sort messages of current Rmail buffer by recipient.
-This uses either the \"To\" or \"Apparently-To\" header, downcased.
-If prefix argument REVERSE is non-nil, sorts in reverse order.
-
-\(fn REVERSE)" t nil)
-
-(autoload 'rmail-sort-by-correspondent "rmailsort" "\
-Sort messages of current Rmail buffer by other correspondent.
-This uses either the \"From\", \"Sender\", \"To\", or
-\"Apparently-To\" header, downcased.  Uses the first header not
-excluded by `mail-dont-reply-to-names'.  If prefix argument
-REVERSE is non-nil, sorts in reverse order.
-
-\(fn REVERSE)" t nil)
-
-(autoload 'rmail-sort-by-lines "rmailsort" "\
-Sort messages of current Rmail buffer by the number of lines.
-If prefix argument REVERSE is non-nil, sorts in reverse order.
-
-\(fn REVERSE)" t nil)
-
-(autoload 'rmail-sort-by-labels "rmailsort" "\
-Sort messages of current Rmail buffer by labels.
-LABELS is a comma-separated list of labels.  The order of these
-labels specifies the order of messages: messages with the first
-label come first, messages with the second label come second, and
-so on.  Messages that have none of these labels come last.
-If prefix argument REVERSE is non-nil, sorts in reverse order.
-
-\(fn REVERSE LABELS)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "rmailsum" "rmailsum.el" "8205e67c8188aa5c01715e79e10667c1")
-;;; Generated autoloads from rmailsum.el
-
-(autoload 'rmail-summary "rmailsum" "\
-Display a summary of all messages, one line per message.
-
-\(fn)" t nil)
-
-(autoload 'rmail-summary-by-labels "rmailsum" "\
-Display a summary of all messages with one or more LABELS.
-LABELS should be a string containing the desired labels, separated by commas.
-
-\(fn LABELS)" t nil)
-
-(autoload 'rmail-summary-by-recipients "rmailsum" "\
-Display a summary of all messages with the given RECIPIENTS.
-Normally checks the To, From and Cc fields of headers;
-but if PRIMARY-ONLY is non-nil (prefix arg given),
- only look in the To and From fields.
-RECIPIENTS is a regular expression.
-
-\(fn RECIPIENTS &optional PRIMARY-ONLY)" t nil)
-
-(autoload 'rmail-summary-by-regexp "rmailsum" "\
-Display a summary of all messages according to regexp REGEXP.
-If the regular expression is found in the header of the message
-\(including in the date and other lines, as well as the subject line),
-Emacs will list the message in the summary.
-
-\(fn REGEXP)" t nil)
-
-(autoload 'rmail-summary-by-topic "rmailsum" "\
-Display a summary of all messages with the given SUBJECT.
-Normally checks just the Subject field of headers; but with prefix
-argument WHOLE-MESSAGE is non-nil, looks in the whole message.
-SUBJECT is a regular expression.
-
-\(fn SUBJECT &optional WHOLE-MESSAGE)" t nil)
-
-(autoload 'rmail-summary-by-senders "rmailsum" "\
-Display a summary of all messages whose \"From\" field matches SENDERS.
-SENDERS is a regular expression.
-
-\(fn SENDERS)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "undigest" "undigest.el" "20561f083496eb113fa9e501902bfcc3")
-;;; Generated autoloads from undigest.el
-
-(autoload 'undigestify-rmail-message "undigest" "\
-Break up a digest message into its constituent messages.
-Leaves original message, deleted, before the undigestified messages.
-
-\(fn)" t nil)
-
-(autoload 'unforward-rmail-message "undigest" "\
-Extract a forwarded message from the containing message.
-This puts the forwarded message into a separate rmail message following
-the containing message.  This command is only useful when messages are
-forwarded with `rmail-enable-mime-composing' set to nil.
-
-\(fn)" t nil)
-
-;;;***
-\f
-;;; End of automatically extracted autoloads.
-
 
 (provide 'rmail)
 
index 5c29e7ec8bf8980c3ff9d4d2c491e44e1fcedf74..46e5e17a2e8f72b35da47958b02694406a217ad2 100644 (file)
@@ -448,7 +448,7 @@ HEADER-DIFF should be a return value from `rmail-edit-diff-headers'."
 (provide 'rmailedit)
 
 ;; Local Variables:
-;; generated-autoload-file: "rmail.el"
+;; generated-autoload-file: "rmail-loaddefs.el"
 ;; End:
 
 ;;; rmailedit.el ends here
index 0301e5121290fbfa0564db410183cee253b7932d..6581ee628a7077865d1f30dc5dbfcdd4dc0c2f7a 100644 (file)
@@ -192,7 +192,7 @@ With prefix argument N moves forward N messages with these labels."
 (provide 'rmailkwd)
 
 ;; Local Variables:
-;; generated-autoload-file: "rmail.el"
+;; generated-autoload-file: "rmail-loaddefs.el"
 ;; End:
 
 ;;; rmailkwd.el ends here
index 75219747684236cc6ef46f80854e52c740ed3f9d..9343b11806753e92e3e28412bcb99efa64d0cbef 100644 (file)
@@ -1560,7 +1560,7 @@ This is the usual value of `rmail-insert-mime-forwarded-message-function'."
 (provide 'rmailmm)
 
 ;; Local Variables:
-;; generated-autoload-file: "rmail.el"
+;; generated-autoload-file: "rmail-loaddefs.el"
 ;; End:
 
 ;;; rmailmm.el ends here
index 0a76576dfc24600fa67c97dec03583b32c06336d..1185dccf22578581b3759a9f1791e79f0c70dca7 100644 (file)
@@ -55,7 +55,7 @@ This applies only to the current session."
   (rmail-show-message-1 rmail-current-message))
 
 ;; Local Variables:
-;; generated-autoload-file: "rmail.el"
+;; generated-autoload-file: "rmail-loaddefs.el"
 ;; End:
 
 ;;; rmailmsc.el ends here
index 1eb60c2d547b1ef8e9ebed12c19a00e93e31cae4..60320b929e40855f6ab1cec9b99b7c2fd3f74779 100644 (file)
@@ -251,7 +251,7 @@ Numeric keys are sorted numerically, all others as strings."
 (provide 'rmailsort)
 
 ;; Local Variables:
-;; generated-autoload-file: "rmail.el"
+;; generated-autoload-file: "rmail-loaddefs.el"
 ;; End:
 
 ;;; rmailsort.el ends here
index 52b717fb9d5954df64cb91492a9f3073bc40b124..0a2ca0b803822ba8531011e743f83238f7b072fe 100644 (file)
@@ -1871,7 +1871,7 @@ the summary is only showing a subset of messages."
 (provide 'rmailsum)
 
 ;; Local Variables:
-;; generated-autoload-file: "rmail.el"
+;; generated-autoload-file: "rmail-loaddefs.el"
 ;; End:
 
 ;;; rmailsum.el ends here
index 1d0a3718a96a1401b5fee995ebb9744f0e487c6e..54ee99bafb2c885efb4427341bc7676fa6816dce 100644 (file)
@@ -327,7 +327,7 @@ forwarded with `rmail-enable-mime-composing' set to nil."
 (provide 'undigest)
 
 ;; Local Variables:
-;; generated-autoload-file: "rmail.el"
+;; generated-autoload-file: "rmail-loaddefs.el"
 ;; End:
 
 ;;; undigest.el ends here
index f9dde5748c27c9d9f18bc8d3eb44c8bb9a54fad8..512d65fa580218bcb723c4c2c08b913be5388e15 100644 (file)
 (defun clipboard-yank ()
   "Insert the clipboard contents, or the last stretch of killed text."
   (interactive "*")
-  (let ((gui-select-enable-clipboard t))
+  (let ((gui-select-enable-clipboard t)
+        (interprogram-paste-function (or interprogram-paste-function
+                                         #'gui-selection-value)))
     (yank)))
 
 (defun clipboard-kill-ring-save (beg end &optional region)
   "Copy region to kill ring, and save in the GUI's clipboard."
   (interactive "r\np")
-  (let ((gui-select-enable-clipboard t))
+  (let ((gui-select-enable-clipboard t)
+        (interprogram-cut-function (or interprogram-cut-function
+                                       #'gui-select-text)))
     (kill-ring-save beg end region)))
 
 (defun clipboard-kill-region (beg end &optional region)
   "Kill the region, and save it in the GUI's clipboard."
   (interactive "r\np")
-  (let ((gui-select-enable-clipboard t))
+  (let ((gui-select-enable-clipboard t)
+        (interprogram-cut-function (or interprogram-cut-function
+                                       #'gui-select-text)))
     (kill-region beg end region)))
 
 (defun menu-bar-enable-clipboard ()
index 48bf556a526e255fd5934cc215a4ef02d911aefe..3c2e74799afc6cbc810f3fdf1656a8b1a0f6e0da 100644 (file)
@@ -31,6 +31,7 @@
 (require 'url-queue)
 (require 'url-util)                    ; for url-get-url-at-point
 (require 'mm-url)
+(require 'puny)
 (eval-when-compile (require 'subr-x)) ;; for string-trim
 
 (defgroup eww nil
@@ -275,6 +276,13 @@ word(s) will be searched for via `eww-search-prefix'."
            (setq url (concat eww-search-prefix
                              (replace-regexp-in-string " " "+" url))))))
   (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)
@@ -409,9 +417,11 @@ Currently this means either text/html or application/xhtml+xml."
            (shr-target-id (url-target (url-generic-parse-url url)))
            (shr-external-rendering-functions
              (append
+              shr-external-rendering-functions
               '((title . eww-tag-title)
                 (form . eww-tag-form)
                 (input . eww-tag-input)
+                (button . eww-form-submit)
                 (textarea . eww-tag-textarea)
                 (select . eww-tag-select)
                 (link . eww-tag-link)
@@ -680,6 +690,7 @@ the like."
     (define-key map "E" 'eww-set-character-encoding)
     (define-key map "S" 'eww-list-buffers)
     (define-key map "F" 'eww-toggle-fonts)
+    (define-key map [(meta C)] 'eww-toggle-colors)
 
     (define-key map "b" 'eww-add-bookmark)
     (define-key map "B" 'eww-list-bookmarks)
@@ -704,6 +715,8 @@ the like."
        ["Add bookmark" eww-add-bookmark t]
        ["List bookmarks" eww-list-bookmarks t]
        ["List cookies" url-cookie-list t]
+       ["Toggle fonts" eww-toggle-fonts t]
+       ["Toggle colors" eww-toggle-colors t]
        ["Character Encoding" eww-set-character-encoding]))
     map))
 
@@ -1493,6 +1506,15 @@ If CHARSET is nil then use UTF-8."
             "off"))
   (eww-reload))
 
+(defun eww-toggle-colors ()
+  "Toggle whether to use HTML-specified colors or not."
+  (interactive)
+  (message "Colors are now %s"
+          (if (setq shr-use-colors (not shr-use-colors))
+              "on"
+            "off"))
+  (eww-reload))
+
 ;;; Bookmarks code
 
 (defvar eww-bookmarks nil)
index 11885987ba56528e3fc29b868d5d92f1daeab890..59ac2995c05c814568fc6859e2fbdc163a135f22 100644 (file)
@@ -46,6 +46,7 @@
 (require 'starttls)
 (require 'auth-source)
 (require 'nsm)
+(require 'puny)
 
 (autoload 'gnutls-negotiate "gnutls")
 (autoload 'open-gnutls-stream "gnutls")
@@ -148,7 +149,7 @@ asynchronously, if possible."
                                (plist-get parameters :capability-command))))))
        ;; The simplest case: wrapper around `make-network-process'.
        (make-network-process :name name :buffer buffer
-                             :host host :service service
+                             :host (puny-encode-domain host) :service service
                              :nowait (plist-get parameters :nowait))
       (let ((work-buffer (or buffer
                             (generate-new-buffer " *stream buffer*")))
@@ -198,7 +199,8 @@ asynchronously, if possible."
 (defun network-stream-open-plain (name buffer host service parameters)
   (let ((start (with-current-buffer buffer (point)))
        (stream (make-network-process :name name :buffer buffer
-                                     :host host :service service
+                                     :host (puny-encode-domain host)
+                                      :service service
                                      :nowait (plist-get parameters :nowait))))
     (when (plist-get parameters :warn-unless-encrypted)
       (setq stream (nsm-verify-connection stream host service nil t)))
@@ -219,7 +221,8 @@ asynchronously, if possible."
                                 eoc))
         ;; Return (STREAM GREETING CAPABILITIES RESULTING-TYPE)
         (stream (make-network-process :name name :buffer buffer
-                                      :host host :service service))
+                                      :host (puny-encode-domain host)
+                                       :service service))
         (greeting (and (not (plist-get parameters :nogreeting))
                        (network-stream-get-response stream start eoc)))
         (capabilities (network-stream-command stream capability-command
@@ -296,7 +299,8 @@ asynchronously, if possible."
          (unless require-tls
            (setq stream
                  (make-network-process :name name :buffer buffer
-                                       :host host :service service))
+                                       :host (puny-encode-domain host)
+                                        :service service))
            (network-stream-get-response stream start eoc)))
        ;; Re-get the capabilities, which may have now changed.
        (setq capabilities
diff --git a/lisp/net/puny.el b/lisp/net/puny.el
new file mode 100644 (file)
index 0000000..b3a82a2
--- /dev/null
@@ -0,0 +1,248 @@
+;;; puny.el --- translate non-ASCII domain names to ASCII
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Keywords: mail, net
+
+;; 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:
+
+;; Written by looking at
+;; http://stackoverflow.com/questions/183485/can-anyone-recommend-a-good-free-javascript-for-punycode-to-unicode-conversion
+
+;;; Code:
+
+(require 'seq)
+
+(defun puny-encode-domain (domain)
+  "Encode DOMAIN according to the IDNA/punycode algorithm.
+For instance, \"fśf.org\" => \"xn--ff-2sa.org\"."
+  ;; The vast majority of domain names are not IDNA domain names, so
+  ;; add a check first to avoid doing unnecessary work.
+  (if (string-match "\\'[[:ascii:]]+\\'" domain)
+      domain
+    (mapconcat 'puny-encode-string (split-string domain "[.]") ".")))
+
+(defun puny-encode-string (string)
+  "Encode STRING according to the IDNA/punycode algorithm.
+This is used to encode non-ASCII domain names.
+For instance, \"bücher\" => \"xn--bcher-kva\"."
+  (let ((ascii (seq-filter (lambda (char)
+                             (< char 128))
+                           string)))
+    (if (= (length ascii) (length string))
+        string
+      (concat "xn--"
+              (if (null ascii)
+                  ""
+                (concat ascii "-"))
+              (puny-encode-complex (length ascii) string)))))
+
+(defun puny-decode-domain (domain)
+  "Decode DOMAIN according to the IDNA/punycode algorithm.
+For instance, \"xn--ff-2sa.org\" => \"fśf.org\"."
+  (mapconcat 'puny-decode-string (split-string domain "[.]") "."))
+
+(defun puny-decode-string (string)
+  "Decode an IDNA/punycode-encoded string.
+For instance \"xn--bcher-kva\" => \"bücher\"."
+  (if (string-match "\\`xn--" string)
+      (puny-decode-string-internal (substring string 4))
+    string))
+
+(defconst puny-initial-n 128)
+(defconst puny-initial-bias 72)
+(defconst puny-base 36)
+(defconst puny-damp 700)
+(defconst puny-tmin 1)
+(defconst puny-tmax 26)
+(defconst puny-skew 28)
+
+;; 0-25  a-z
+;; 26-36 0-9
+(defun puny-encode-digit (d)
+  (if (< d 26)
+      (+ ?a d)
+    (+ ?0 (- d 26))))
+
+(defun puny-adapt (delta num-points first-time)
+  (let ((delta (if first-time
+                   (/ delta puny-damp)
+                 (/ delta 2)))
+        (k 0))
+    (setq delta (+ delta (/ delta num-points)))
+    (while (> delta (/ (* (- puny-base puny-tmin)
+                          puny-tmax)
+                       2))
+      (setq delta (/ delta (- puny-base puny-tmin))
+            k (+ k puny-base)))
+    (+ k (/ (* (1+ (- puny-base puny-tmin)) delta)
+            (+ delta puny-skew)))))
+
+(defun puny-encode-complex (insertion-points string)
+  (let ((n puny-initial-n)
+        (delta 0)
+        (bias puny-initial-bias)
+        (h insertion-points)
+        result m ijv q)
+    (while (< h (length string))
+      (setq ijv (cl-loop for char across string
+                         when (>= char n)
+                         minimize char))
+      (setq m ijv)
+      (setq delta (+ delta (* (- m n) (+ h 1)))
+            n m)
+      (cl-loop for char across string
+               when (< char n)
+               do (cl-incf delta)
+               when (= char ijv)
+               do (progn
+                    (setq q delta)
+                    (cl-loop with k = puny-base
+                             for t1 = (cond
+                                       ((<= k bias)
+                                        puny-tmin)
+                                       ((>= k (+ bias puny-tmax))
+                                        puny-tmax)
+                                       (t
+                                        (- k bias)))
+                             while (>= q t1)
+                             do (push (puny-encode-digit
+                                       (+ t1 (mod (- q t1)
+                                                  (- puny-base t1))))
+                                      result)
+                             do (setq q (/ (- q t1) (- puny-base t1))
+                                      k (+ k puny-base)))
+                    (push (puny-encode-digit q) result)
+                    (setq bias (puny-adapt delta (+ h 1) (= h insertion-points))
+                          delta 0
+                          h (1+ h))))
+      (cl-incf delta)
+      (cl-incf n))
+    (nreverse result)))
+
+(defun puny-decode-digit (cp)
+  (cond
+   ((<= cp ?9)
+    (+ (- cp ?0) 26))
+   ((<= cp ?Z)
+    (- cp ?A))
+   ((<= cp ?z)
+    (- cp ?a))
+   (t
+    puny-base)))
+
+(defun puny-decode-string-internal (string)
+  (with-temp-buffer
+    (insert string)
+    (goto-char (point-max))
+    (search-backward "-" nil (point-min))
+    ;; The encoded chars are after the final dash.
+    (let ((encoded (buffer-substring (1+ (point)) (point-max)))
+          (ic 0)
+          (i 0)
+          (bias puny-initial-bias)
+          (n puny-initial-n)
+          out)
+      (delete-region (point) (point-max))
+      (while (< ic (length encoded))
+        (let ((old-i i)
+              (w 1)
+              (k puny-base)
+              digit t1)
+          (cl-loop do (progn
+                        (setq digit (puny-decode-digit (aref encoded ic)))
+                        (cl-incf ic)
+                        (cl-incf i (* digit w))
+                        (setq t1 (cond
+                                  ((<= k bias)
+                                   puny-tmin)
+                                  ((>= k (+ bias puny-tmax))
+                                   puny-tmax)
+                                  (t
+                                   (- k bias)))))
+                   while (>= digit t1)
+                   do (setq w (* w (- puny-base t1))
+                            k (+ k puny-base)))
+          (setq out (1+ (buffer-size)))
+          (setq bias (puny-adapt (- i old-i) out (= old-i 0))))
+
+        (setq n (+ n (/ i out))
+              i (mod i out))
+        (goto-char (point-min))
+        (forward-char i)
+        (insert (format "%c" n))
+        (cl-incf i)))
+    (buffer-string)))
+
+;; http://www.unicode.org/reports/tr39/#Restriction_Level_Detection
+;; http://www.unicode.org/reports/tr31/#Table_Candidate_Characters_for_Inclusion_in_Identifiers
+
+(defun puny-highly-restrictive-string-p (string)
+  "Say whether STRING is \"highly restrictive\" in the Unicode IDNA sense.
+See http://www.unicode.org/reports/tr39/#Restriction_Level_Detection
+for details.  The main idea is that if you're mixing
+scripts (like latin and cyrillic), you may confuse the user by
+using homographs."
+  (let ((scripts
+         (delq
+          t
+          (seq-uniq
+           (seq-map (lambda (char)
+                      (if (memq char
+                                ;; These characters are always allowed
+                                ;; in any string.
+                                '(#x0027 ; APOSTROPHE
+                                  #x002D ; HYPHEN-MINUS
+                                  #x002E ; FULL STOP
+                                  #x003A ; COLON
+                                  #x00B7 ; MIDDLE DOT
+                                  #x058A ; ARMENIAN HYPHEN
+                                  #x05F3 ; HEBREW PUNCTUATION GERESH
+                                  #x05F4 ; HEBREW PUNCTUATION GERSHAYIM
+                                  #x0F0B ; TIBETAN MARK INTERSYLLABIC TSHEG
+                                  #x200C ; ZERO WIDTH NON-JOINER*
+                                  #x200D ; ZERO WIDTH JOINER*
+                                  #x2010 ; HYPHEN
+                                  #x2019 ; RIGHT SINGLE QUOTATION MARK
+                                  #x2027 ; HYPHENATION POINT
+                                  #x30A0 ; KATAKANA-HIRAGANA DOUBLE HYPHEN
+                                  #x30FB)) ; KATAKANA MIDDLE DOT
+                          t
+                        (aref char-script-table char)))
+                    string)))))
+    (or
+     ;; Every character uses the same script.
+     (= (length scripts) 1)
+     (seq-some 'identity
+               (mapcar (lambda (list)
+                         (seq-every-p (lambda (script)
+                                        (memq script list))
+                                      scripts))
+                       '((latin han hiragana kana)
+                         (latin han bopomofo)
+                         (latin han hangul)))))))
+
+(defun puny-highly-restrictive-domain-p (domain)
+  "Say whether DOMAIN is \"highly restrictive\" in the Unicode IDNA sense.
+See `puny-highly-restrictive-string-p' for further details."
+  (seq-every-p 'puny-highly-restrictive-string-p (split-string domain "[.]")))
+
+(provide 'puny)
+
+;;; puny.el ends here
index 0703171a436d5cbc584ef5421f09ff4646360bbc..2511d673e7e558f36e3aa05781f3e9ac839723ea 100644 (file)
@@ -63,6 +63,12 @@ fit these criteria."
   :group 'shr
   :type 'boolean)
 
+(defcustom shr-use-colors t
+  "If non-nil, respect color specifications in the HTML."
+  :version "25.2"
+  :group 'shr
+  :type 'boolean)
+
 (defcustom shr-table-horizontal-line nil
   "Character used to draw horizontal table lines.
 If nil, don't draw horizontal table lines."
@@ -135,6 +141,14 @@ cid: URL as the argument.")
 (defvar shr-inhibit-images nil
   "If non-nil, inhibit loading images.")
 
+(defvar shr-external-rendering-functions nil
+  "Alist of tag/function pairs used to alter how shr renders certain tags.
+For instance, eww uses this to alter rendering of title, forms
+and other things:
+((title . eww-tag-title)
+ (form . eww-tag-form)
+ ...)")
+
 ;;; Internal variables.
 
 (defvar shr-folding-mode nil)
@@ -150,7 +164,6 @@ cid: URL as the argument.")
 (defvar shr-depth 0)
 (defvar shr-warning nil)
 (defvar shr-ignore-cache nil)
-(defvar shr-external-rendering-functions nil)
 (defvar shr-target-id nil)
 (defvar shr-table-separator-length 1)
 (defvar shr-table-separator-pixel-width 0)
@@ -434,11 +447,10 @@ size, and full-buffer size."
 
 (defun shr-descend (dom)
   (let ((function
-        (or
-         ;; Allow other packages to override (or provide) rendering
-         ;; of elements.
-         (cdr (assq (dom-tag dom) shr-external-rendering-functions))
-         (intern (concat "shr-tag-" (symbol-name (dom-tag dom))) obarray)))
+         (intern (concat "shr-tag-" (symbol-name (dom-tag dom))) obarray))
+        ;; Allow other packages to override (or provide) rendering
+        ;; of elements.
+        (external (cdr (assq (dom-tag dom) shr-external-rendering-functions)))
        (style (dom-attr dom 'style))
        (shr-stylesheet shr-stylesheet)
        (shr-depth (1+ shr-depth))
@@ -453,9 +465,12 @@ size, and full-buffer size."
          (setq style nil)))
       ;; If we have a display:none, then just ignore this part of the DOM.
       (unless (equal (cdr (assq 'display shr-stylesheet)) "none")
-       (if (fboundp function)
-           (funcall function dom)
-         (shr-generic dom))
+        (cond (external
+               (funcall external dom))
+              ((fboundp function)
+               (funcall function dom))
+              (t
+               (shr-generic dom)))
        (when (and shr-target-id
                   (equal (dom-attr dom 'id) shr-target-id))
          ;; If the element was empty, we don't have anything to put the
@@ -1093,7 +1108,9 @@ ones, in case fg and bg are nil."
                (shr-color-visible bg fg)))))))
 
 (defun shr-colorize-region (start end fg &optional bg)
-  (when (and (or fg bg) (>= (display-color-cells) 88))
+  (when (and shr-use-colors
+             (or fg bg)
+             (>= (display-color-cells) 88))
     (let ((new-colors (shr-color-check fg bg)))
       (when new-colors
        (when fg
index d81e44d7c137e78c5db54aa57e21df432bf7419e..57a427c30d40da2995f081e02dc07d482124463d 100644 (file)
        * ox-html.el (org-html-link): Don't skip the link description when
        it matches the name of the headline it targets.
 
-       * ox-ascii.el (ascii): Remove inexistant function.
+       * ox-ascii.el (ascii): Remove nonexistent function.
 
        * ox-icalendar.el (icalendar): Ignore footnotes.
        (org-icalendar--combine-files): Small refactoring.
index 77e949c59d40a279a98cd5fbd90b64800e755cc7..c42fbe7e51f994e7bfaea99444e62e2d74523263 100644 (file)
@@ -206,7 +206,7 @@ This variant works around bugs in `eval-when-compile' in various
 (eval-and-compile
   (defmacro c--macroexpand-all (form &optional environment)
     ;; Macro to smooth out the renaming of `cl-macroexpand-all' in Emacs 24.3.
-    (if (eq c--mapcan-status 'cl-mapcan)
+    (if (fboundp 'macroexpand-all)
        `(macroexpand-all ,form ,environment)
       `(cl-macroexpand-all ,form ,environment)))
 
@@ -493,19 +493,21 @@ must not be within a `c-save-buffer-state', since the user then
 wouldn't be able to undo them.
 
 The return value is the value of the last form in BODY."
-  `(let* ((modified (buffer-modified-p)) (buffer-undo-list t)
-         (inhibit-read-only t) (inhibit-point-motion-hooks t)
-         before-change-functions after-change-functions
-         deactivate-mark
-         buffer-file-name buffer-file-truename ; Prevent primitives checking
-                                               ; for file modification
-         ,@varlist)
-     (unwind-protect
-        (progn ,@body)
-       (and (not modified)
-           (buffer-modified-p)
-           (set-buffer-modified-p nil)))))
-(put 'c-save-buffer-state 'lisp-indent-function 1)
+  (declare (debug t) (indent 1))
+  (if (fboundp 'with-silent-modifications)
+      `(with-silent-modifications (let* ,varlist ,@body))
+    `(let* ((modified (buffer-modified-p)) (buffer-undo-list t)
+           (inhibit-read-only t) (inhibit-point-motion-hooks t)
+           before-change-functions after-change-functions
+           deactivate-mark
+           buffer-file-name buffer-file-truename ; Prevent primitives checking
+                                                 ; for file modification
+           ,@varlist)
+       (unwind-protect
+          (progn ,@body)
+        (and (not modified)
+             (buffer-modified-p)
+             (set-buffer-modified-p nil))))))
 
 (defmacro c-tentative-buffer-changes (&rest body)
   "Eval BODY and optionally restore the buffer contents to the state it
index 7bd43a39325bac8d7ac9dca683ada81f50273013..6b6cc643ffc95dd8107a3315bdf8a77564269e60 100644 (file)
 ;;
 
 ;; This variable will always hold the version number of the mode
-(defconst verilog-mode-version "2015-09-18-314cf1d-vpo-GNU"
+(defconst verilog-mode-version "2015-11-21-8112ca0-vpo-GNU"
   "Version of this Verilog mode.")
 (defconst verilog-mode-release-emacs t
   "If non-nil, this version of Verilog mode was released with Emacs itself.")
@@ -230,10 +230,9 @@ STRING should be given if the last search was by `string-match' on STRING."
         `(customize ,var))
       )
 
-    (unless (boundp 'inhibit-point-motion-hooks)
-      (defvar inhibit-point-motion-hooks nil))
-    (unless (boundp 'deactivate-mark)
-      (defvar deactivate-mark nil))
+    (defvar inhibit-modification-hooks)
+    (defvar inhibit-point-motion-hooks)
+    (defvar deactivate-mark)
     )
   ;;
   ;; OK, do this stuff if we are NOT XEmacs:
@@ -326,6 +325,14 @@ wherever possible, since it is slow."
                 (looking-at (concat "\\(?:"  regexp "\\)\\'")))))
         (not (null pos)))))))
 
+(eval-and-compile
+  (cond
+   ((fboundp 'restore-buffer-modified-p)
+    ;; Faster, as does not update mode line when nothing changes
+    (defalias 'verilog-restore-buffer-modified-p 'restore-buffer-modified-p))
+   (t
+    (defalias 'verilog-restore-buffer-modified-p 'set-buffer-modified-p))))
+
 (eval-and-compile
   ;; Both xemacs and emacs
   (condition-case nil
@@ -827,6 +834,10 @@ Function takes three arguments, the original buffer, the
 difference buffer, and the point in original buffer with the
 first difference.")
 
+(defvar verilog-diff-ignore-regexp nil
+  "Non-nil specifies regexp which `verilog-diff-auto' will ignore.
+This is typically nil.")
+
 ;;; Compile support:
 ;;
 
@@ -2937,8 +2948,6 @@ find the errors."
     (modify-syntax-entry ?> "." table)
     (modify-syntax-entry ?& "." table)
     (modify-syntax-entry ?| "." table)
-    ;; FIXME: This goes against Emacs conventions.  Use "_" syntax instead and
-    ;; then use regexps with things like "\\_<...\\_>".
     (modify-syntax-entry ?` "w" table)  ; ` is part of definition symbols in Verilog
     (modify-syntax-entry ?_ "w" table)
     (modify-syntax-entry ?\' "." table)
@@ -3225,56 +3234,63 @@ A change is considered significant if it affects the buffer text
 in any way that isn't completely restored again.  Any
 user-visible changes to the buffer must not be within a
 `verilog-save-buffer-state'."
-  ;; From c-save-buffer-state
-  `(let* ((modified (buffer-modified-p))
-         (buffer-undo-list t)
-         (inhibit-read-only t)
-         (inhibit-point-motion-hooks t)
-         (verilog-no-change-functions t)
-         before-change-functions
-         after-change-functions
-         deactivate-mark
-         buffer-file-name ; Prevent primitives checking
-         buffer-file-truename) ; for file modification
-     (unwind-protect
-        (progn ,@body)
-       (and (not modified)
-           (buffer-modified-p)
-           (set-buffer-modified-p nil)))))
+  `(let ((inhibit-point-motion-hooks t)
+         (verilog-no-change-functions t))
+     ,(if (fboundp 'with-silent-modifications)
+          `(with-silent-modifications ,@body)
+        ;; Backward compatible version of with-silent-modifications
+        `(let* ((modified (buffer-modified-p))
+                (buffer-undo-list t)
+                (inhibit-read-only t)
+                (inhibit-modification-hooks t)
+                ;; XEmacs ignores inhibit-modification-hooks.
+                before-change-functions after-change-functions
+                deactivate-mark
+                buffer-file-name        ; Prevent primitives checking
+                buffer-file-truename)  ; for file modification
+           (unwind-protect
+               (progn ,@body)
+             (and (not modified)
+                  (buffer-modified-p)
+                  (verilog-restore-buffer-modified-p nil)))))))
 
-(defmacro verilog-save-no-change-functions (&rest body)
-  "Execute BODY forms, disabling all change hooks in BODY.
-For insignificant changes, see instead `verilog-save-buffer-state'."
-  `(let* ((inhibit-point-motion-hooks t)
-         (verilog-no-change-functions t)
-         before-change-functions
-         after-change-functions)
-     (progn ,@body)))
 
 (defvar verilog-save-font-mod-hooked nil
-  "Local variable when inside a `verilog-save-font-mods' block.")
+  "Local variable when inside a `verilog-save-font-no-change-functions' block.")
 (make-variable-buffer-local 'verilog-save-font-mod-hooked)
 
-(defmacro verilog-save-font-mods (&rest body)
 "Execute BODY forms, disabling text modifications to allow performing BODY.
+(defmacro verilog-save-font-no-change-functions (&rest body)
"Execute BODY forms, disabling all change hooks in BODY.
 Includes temporary disabling of `font-lock' to restore the buffer
 to full text form for parsing.  Additional actions may be specified with
-`verilog-before-save-font-hook' and `verilog-after-save-font-hook'."
-  ;; Before version 20, match-string with font-lock returns a
-  ;; vector that is not equal to the string.  IE if on "input"
-  ;; nil==(equal "input" (progn (looking-at "input") (match-string 0)))
-  `(let* ((hooked (unless verilog-save-font-mod-hooked
-                   (verilog-run-hooks 'verilog-before-save-font-hook)
-                   t))
-         (verilog-save-font-mod-hooked t)
-         (fontlocked (when (and (boundp 'font-lock-mode) font-lock-mode)
-                       (font-lock-mode 0)
-                       t)))
-     (unwind-protect
-         (progn ,@body)
-       ;; Unwind forms
-       (when fontlocked (font-lock-mode t))
-       (when hooked (verilog-run-hooks 'verilog-after-save-font-hook)))))
+`verilog-before-save-font-hook' and `verilog-after-save-font-hook'.
+For insignificant changes, see instead `verilog-save-buffer-state'."
+ `(if verilog-save-font-mod-hooked ; Short-circuit a recursive call
+      (progn ,@body)
+    ;; Before version 20, match-string with font-lock returns a
+    ;; vector that is not equal to the string.  IE if on "input"
+    ;; nil==(equal "input" (progn (looking-at "input") (match-string 0)))
+    ;; Therefore we must remove and restore font-lock mode
+    (verilog-run-hooks 'verilog-before-save-font-hook)
+    (let* ((verilog-save-font-mod-hooked (- (point-max) (point-min)))
+           ;; Significant speed savings with no font-lock properties
+           (fontlocked (when (and (boundp 'font-lock-mode) font-lock-mode)
+                         (font-lock-mode 0)
+                         t)))
+      (run-hook-with-args 'before-change-functions (point-min) (point-max))
+      (unwind-protect
+          ;; Must inhibit and restore hooks before restoring font-lock
+          (let* ((inhibit-point-motion-hooks t)
+                 (inhibit-modification-hooks t)
+                 (verilog-no-change-functions t)
+                 ;; XEmacs and pre-Emacs 21 ignore inhibit-modification-hooks.
+                 before-change-functions after-change-functions)
+            (progn ,@body))
+        ;; Unwind forms
+        (run-hook-with-args 'after-change-functions (point-min) (point-max)
+                            verilog-save-font-mod-hooked) ; old length
+        (when fontlocked (font-lock-mode t))
+        (verilog-run-hooks 'verilog-after-save-font-hook)))))
 
 ;;
 ;; Comment detection and caching
@@ -8074,7 +8090,7 @@ Duplicate signals are also removed.  For example A[2] and A[1] become A[2:1]."
             (when (and sv-busstring
                        (not (equal sv-busstring (verilog-sig-bits sig))))
                (when nil  ; Debugging
-                (message (concat "Warning, can't merge into single bus %s%s"
+                (message (concat "Warning, can't merge into single bus `%s%s'"
                                  ", the AUTOs may be wrong")
                          sv-name bus))
               (setq buswarn ", Couldn't Merge"))
@@ -8377,18 +8393,18 @@ Return an array of [outputs inouts inputs wire reg assign const]."
                 (setcar (cdr (cdr (cdr newsig)))
                         (if (verilog-sig-memory newsig)
                             (concat (verilog-sig-memory newsig) (match-string 1))
-                          (match-string 1))))
+                          (match-string-no-properties 1))))
                 (vec  ; Multidimensional
                 (setq multidim (cons vec multidim))
                 (setq vec (verilog-string-replace-matches
-                           "\\s-+" "" nil nil (match-string 1))))
+                           "\\s-+" "" nil nil (match-string-no-properties 1))))
                 (t  ; Bit width
                 (setq vec (verilog-string-replace-matches
-                           "\\s-+" "" nil nil (match-string 1))))))
+                           "\\s-+" "" nil nil (match-string-no-properties 1))))))
         ;; Normal or escaped identifier -- note we remember the \ if escaped
         ((looking-at "\\s-*\\([a-zA-Z0-9`_$]+\\|\\\\[^ \t\n\f]+\\)")
          (goto-char (match-end 0))
-         (setq keywd (match-string 1))
+         (setq keywd (match-string-no-properties 1))
          (when (string-match "^\\\\" (match-string 1))
             (setq keywd (concat keywd " ")))  ; Escaped ID needs space at end
          ;; Add any :: package names to same identifier
@@ -8573,11 +8589,12 @@ Return an array of [outputs inouts inputs wire reg assign const]."
   (defvar sigs-out-unk)
   (defvar sigs-temp)
   ;; These are known to be from other packages and may not be defined
-  (defvar diff-command nil)
+  (defvar diff-command)
   ;; There are known to be from newer versions of Emacs
-  (defvar create-lockfiles))
+  (defvar create-lockfiles)
+  (defvar which-func-modes))
 
-(defun verilog-read-sub-decls-sig (submoddecls comment port sig vec multidim)
+(defun verilog-read-sub-decls-sig (submoddecls comment port sig vec multidim mem)
   "For `verilog-read-sub-decls-line', add a signal."
   ;; sig eq t to indicate .name syntax
   ;;(message "vrsds: %s(%S)" port sig)
@@ -8588,6 +8605,7 @@ Return an array of [outputs inouts inputs wire reg assign const]."
       (setq sig  (if dotname port (verilog-symbol-detick-denumber sig)))
       (if vec (setq vec  (verilog-symbol-detick-denumber vec)))
       (if multidim (setq multidim  (mapcar `verilog-symbol-detick-denumber multidim)))
+      (if mem (setq mem (verilog-symbol-detick-denumber mem)))
       (unless (or (not sig)
                   (equal sig ""))  ; Ignore .foo(1'b1) assignments
        (cond ((or (setq portdata (assoc port (verilog-decls-get-inouts submoddecls)))
@@ -8597,7 +8615,7 @@ Return an array of [outputs inouts inputs wire reg assign const]."
                            sig
                            (if dotname (verilog-sig-bits portdata) vec)
                            (concat "To/From " comment)
-                           (verilog-sig-memory portdata)
+                            mem
                            nil
                            (verilog-sig-signed portdata)
                            (unless (member (verilog-sig-type portdata) '("wire" "reg"))
@@ -8611,7 +8629,7 @@ Return an array of [outputs inouts inputs wire reg assign const]."
                            sig
                            (if dotname (verilog-sig-bits portdata) vec)
                            (concat "From " comment)
-                           (verilog-sig-memory portdata)
+                           mem
                            nil
                            (verilog-sig-signed portdata)
                            ;; Though ok in SV, in V2K code, propagating the
@@ -8630,7 +8648,7 @@ Return an array of [outputs inouts inputs wire reg assign const]."
                            sig
                            (if dotname (verilog-sig-bits portdata) vec)
                            (concat "To " comment)
-                           (verilog-sig-memory portdata)
+                           mem
                            nil
                            (verilog-sig-signed portdata)
                            (unless (member (verilog-sig-type portdata) '("wire" "reg"))
@@ -8643,7 +8661,7 @@ Return an array of [outputs inouts inputs wire reg assign const]."
                            sig
                            (if dotname (verilog-sig-bits portdata) vec)
                            (concat "To/From " comment)
-                           (verilog-sig-memory portdata)
+                           mem
                            nil
                            (verilog-sig-signed portdata)
                            (verilog-sig-type portdata)
@@ -8656,7 +8674,7 @@ Return an array of [outputs inouts inputs wire reg assign const]."
                            sig
                            (if dotname (verilog-sig-bits portdata) vec)
                            (concat "To/From " comment)
-                           (verilog-sig-memory portdata)
+                           mem
                            nil
                            (verilog-sig-signed portdata)
                            (verilog-sig-type portdata)
@@ -8669,7 +8687,7 @@ Return an array of [outputs inouts inputs wire reg assign const]."
   "For `verilog-read-sub-decls-line', parse a subexpression and add signals."
   ;;(message "vrsde: `%s'" expr)
   ;; Replace special /*[....]*/ comments inserted by verilog-auto-inst-port
-  (setq expr (verilog-string-replace-matches "/\\*\\(\\[[^*]+\\]\\)\\*/" "\\1" nil nil expr))
+  (setq expr (verilog-string-replace-matches "/\\*\\(\\.?\\[[^*]+\\]\\)\\*/" "\\1" nil nil expr))
   ;; Remove front operators
   (setq expr (verilog-string-replace-matches "^\\s-*[---+~!|&]+\\s-*" "" nil nil expr))
   ;;
@@ -8683,7 +8701,7 @@ Return an array of [outputs inouts inputs wire reg assign const]."
        (while (setq mstr (pop mlst))
          (verilog-read-sub-decls-expr submoddecls comment port mstr)))))
    (t
-    (let (sig vec multidim)
+    (let (sig vec multidim mem)
       ;; Remove leading reduction operators, etc
       (setq expr (verilog-string-replace-matches "^\\s-*[---+~!|&]+\\s-*" "" nil nil expr))
       ;;(message "vrsde-ptop: `%s'" expr)
@@ -8703,10 +8721,15 @@ Return an array of [outputs inouts inputs wire reg assign const]."
        (when vec (setq multidim (cons vec multidim)))
        (setq vec (match-string 1 expr)
              expr (substring expr (match-end 0))))
+      ;; Find .[unpacked_memory] or .[unpacked][unpacked]...
+      (while (string-match "^\\s-*\\.\\(\\[[^]]+\\]\\)" expr)
+       ;;(message "vrsde-m: `%s'" (match-string 1 expr))
+       (setq mem (match-string 1 expr)
+             expr (substring expr (match-end 0))))
       ;; If found signal, and nothing unrecognized, add the signal
       ;;(message "vrsde-rem: `%s'" expr)
       (when (and sig (string-match "^\\s-*$" expr))
-       (verilog-read-sub-decls-sig submoddecls comment port sig vec multidim))))))
+       (verilog-read-sub-decls-sig submoddecls comment port sig vec multidim mem))))))
 
 (defun verilog-read-sub-decls-line (submoddecls comment)
   "For `verilog-read-sub-decls', read lines of port defs until none match.
@@ -8717,23 +8740,23 @@ Inserts the list of signals found, using submodi to look up each port."
       (while (not done)
        ;; Get port name
        (cond ((looking-at "\\s-*\\.\\s-*\\([a-zA-Z0-9`_$]*\\)\\s-*(\\s-*")
-              (setq port (match-string 1))
+              (setq port (match-string-no-properties 1))
               (goto-char (match-end 0)))
              ;; .\escaped (
              ((looking-at "\\s-*\\.\\s-*\\(\\\\[^ \t\n\f]*\\)\\s-*(\\s-*")
-               (setq port (concat (match-string 1) " "))  ; escaped id's need trailing space
+               (setq port (concat (match-string-no-properties 1) " "))  ; escaped id's need trailing space
               (goto-char (match-end 0)))
              ;; .name
              ((looking-at "\\s-*\\.\\s-*\\([a-zA-Z0-9`_$]*\\)\\s-*[,)/]")
               (verilog-read-sub-decls-sig
-               submoddecls comment (match-string 1) t ; sig==t for .name
-               nil nil) ; vec multidim
+               submoddecls comment (match-string-no-properties 1) t ; sig==t for .name
+               nil nil nil) ; vec multidim mem
               (setq port nil))
              ;; .\escaped_name
              ((looking-at "\\s-*\\.\\s-*\\(\\\\[^ \t\n\f]*\\)\\s-*[,)/]")
               (verilog-read-sub-decls-sig
-               submoddecls comment (concat (match-string 1) " ") t ; sig==t for .name
-               nil nil) ; vec multidim
+               submoddecls comment (concat (match-string-no-properties 1) " ") t ; sig==t for .name
+               nil nil nil) ; vec multidim mem
               (setq port nil))
              ;; random
              ((looking-at "\\s-*\\.[^(]*(")
@@ -8748,20 +8771,20 @@ Inserts the list of signals found, using submodi to look up each port."
          (cond ((looking-at "\\([a-zA-Z_][a-zA-Z_0-9]*\\)\\s-*)")
                 (verilog-read-sub-decls-sig
                  submoddecls comment port
-                 (verilog-string-remove-spaces (match-string 1)) ; sig
-                 nil nil)) ; vec multidim
+                 (verilog-string-remove-spaces (match-string-no-properties 1)) ; sig
+                 nil nil nil)) ; vec multidim mem
                ;;
                ((looking-at "\\([a-zA-Z_][a-zA-Z_0-9]*\\)\\s-*\\(\\[[^]]+\\]\\)\\s-*)")
                 (verilog-read-sub-decls-sig
                  submoddecls comment port
-                 (verilog-string-remove-spaces (match-string 1)) ; sig
-                 (match-string 2) nil)) ; vec multidim
+                 (verilog-string-remove-spaces (match-string-no-properties 1)) ; sig
+                 (match-string-no-properties 2) nil nil)) ; vec multidim mem
                ;; Fastpath was above looking-at's.
                ;; For something more complicated invoke a parser
                ((looking-at "[^)]+")
                 (verilog-read-sub-decls-expr
                  submoddecls comment port
-                 (buffer-substring
+                 (buffer-substring-no-properties
                   (point) (1- (progn (search-backward "(") ; start at (
                                      (verilog-forward-sexp-ign-cmt 1)
                                      (point)))))))) ; expr
@@ -9894,7 +9917,7 @@ Return modi if successful, else print message unless IGNORE-ERROR is true."
               (or mif ignore-error
                   (error
                    (concat
-                    "%s: Can't locate %s module definition%s"
+                    "%s: Can't locate `%s' module definition%s"
                     "\n    Check the verilog-library-directories variable."
                     "\n    I looked in (if not listed, doesn't exist):\n\t%s")
                    (verilog-point-text) module
@@ -9959,9 +9982,9 @@ Cache the output of function so next call may have faster access."
            (t
             ;; Read from file
             ;; Clear then restore any highlighting to make emacs19 happy
-            (let (func-returns)
-              (verilog-save-font-mods
-               (setq func-returns (funcall function)))
+             (let ((func-returns
+                    (verilog-save-font-no-change-functions
+                     (funcall function))))
               ;; Cache for next time
               (setq verilog-modi-cache-list
                     (cons (list (list modi function)
@@ -10003,7 +10026,7 @@ Report errors unless optional IGNORE-ERROR."
   (let* ((realname (verilog-symbol-detick name t))
         (modport (assoc name (verilog-decls-get-modports (verilog-modi-get-decls modi)))))
     (or modport ignore-error
-       (error "%s: Can't locate %s modport definition%s"
+       (error "%s: Can't locate `%s' modport definition%s"
                (verilog-point-text) name
                (if (not (equal name realname))
                    (concat " (Expanded macro to " realname ")")
@@ -10193,7 +10216,7 @@ When MODI is non-null, also add to modi-cache, for tracking."
          ((equal direction "parameter")
           (verilog-modi-cache-add-gparams modi sigs))
          (t
-          (error "Unsupported verilog-insert-definition direction: %s" direction))))
+          (error "Unsupported verilog-insert-definition direction: `%s'" direction))))
   (or dont-sort
       (setq sigs (sort (copy-alist sigs) `verilog-signals-sort-compare)))
   (while sigs
@@ -10224,7 +10247,7 @@ When MODI is non-null, also add to modi-cache, for tracking."
 
 (eval-when-compile
   (if (not (boundp 'indent-pt))
-      (defvar indent-pt nil "Local used by insert-indent")))
+      (defvar indent-pt nil "Local used by `verilog-insert-indent'.")))
 
 (defun verilog-insert-indent (&rest stuff)
   "Indent to position stored in local `indent-pt' variable, then insert STUFF.
@@ -10510,6 +10533,41 @@ removed."
          (re-search-backward ",")
          (delete-char 1))))))
 
+(defun verilog-delete-auto-buffer ()
+  "Perform `verilog-delete-auto' on the current buffer.
+Intended for internal use inside a `verilog-save-font-no-change-functions' block."
+  ;; Allow user to customize
+  (verilog-run-hooks 'verilog-before-delete-auto-hook)
+
+  ;; Remove those that have multi-line insertions, possibly with parameters
+  ;; We allow anything beginning with AUTO, so that users can add their own
+  ;; patterns
+  (verilog-auto-re-search-do
+   (concat "/\\*AUTO[A-Za-z0-9_]+"
+           ;; Optional parens or quoted parameter or .* for (((...)))
+           "\\(\\|([^)]*)\\|(\"[^\"]*\")\\).*?"
+           "\\*/")
+   'verilog-delete-autos-lined)
+  ;; Remove those that are in parenthesis
+  (verilog-auto-re-search-do
+   (concat "/\\*"
+           (eval-when-compile
+             (verilog-regexp-words
+              `("AS" "AUTOARG" "AUTOCONCATWIDTH" "AUTOINST" "AUTOINSTPARAM"
+                "AUTOSENSE")))
+           "\\*/")
+   'verilog-delete-to-paren)
+  ;; Do .* instantiations, but avoid removing any user pins by looking for our magic comments
+  (verilog-auto-re-search-do "\\.\\*"
+                             'verilog-delete-auto-star-all)
+  ;; Remove template comments ... anywhere in case was pasted after AUTOINST removed
+  (goto-char (point-min))
+  (while (re-search-forward "\\s-*// \\(Templated\\|Implicit \\.\\*\\)\\([ \tLT0-9]*\\| LHS: .*\\)?$" nil t)
+    (replace-match ""))
+
+  ;; Final customize
+  (verilog-run-hooks 'verilog-delete-auto-hook))
+
 (defun verilog-delete-auto ()
   "Delete the automatic outputs, regs, and wires created by \\[verilog-auto].
 Use \\[verilog-auto] to re-insert the updated AUTOs.
@@ -10520,39 +10578,10 @@ called before and after this function, respectively."
   (save-excursion
     (if (buffer-file-name)
         (find-file-noselect (buffer-file-name)))  ; To check we have latest version
-    (verilog-save-no-change-functions
+    (verilog-save-font-no-change-functions
      (verilog-save-scan-cache
-      ;; Allow user to customize
-      (verilog-run-hooks 'verilog-before-delete-auto-hook)
-
-      ;; Remove those that have multi-line insertions, possibly with parameters
-      ;; We allow anything beginning with AUTO, so that users can add their own
-      ;; patterns
-      (verilog-auto-re-search-do
-       (concat "/\\*AUTO[A-Za-z0-9_]+"
-              ;; Optional parens or quoted parameter or .* for (((...)))
-              "\\(\\|([^)]*)\\|(\"[^\"]*\")\\).*?"
-              "\\*/")
-       'verilog-delete-autos-lined)
-      ;; Remove those that are in parenthesis
-      (verilog-auto-re-search-do
-       (concat "/\\*"
-              (eval-when-compile
-                (verilog-regexp-words
-                 `("AS" "AUTOARG" "AUTOCONCATWIDTH" "AUTOINST" "AUTOINSTPARAM"
-                   "AUTOSENSE")))
-              "\\*/")
-       'verilog-delete-to-paren)
-      ;; Do .* instantiations, but avoid removing any user pins by looking for our magic comments
-      (verilog-auto-re-search-do "\\.\\*"
-                                'verilog-delete-auto-star-all)
-      ;; Remove template comments ... anywhere in case was pasted after AUTOINST removed
-      (goto-char (point-min))
-      (while (re-search-forward "\\s-*// \\(Templated\\|Implicit \\.\\*\\)\\([ \tLT0-9]*\\| LHS: .*\\)?$" nil t)
-       (replace-match ""))
+      (verilog-delete-auto-buffer)))))
 
-      ;; Final customize
-      (verilog-run-hooks 'verilog-delete-auto-hook)))))
 \f
 ;;; Auto inject:
 ;;
@@ -10679,10 +10708,11 @@ Typing \\[verilog-inject-auto] will make this into:
 ;; Auto diff:
 ;;
 
-(defun verilog-diff-buffers-p (b1 b2 &optional whitespace)
+(defun verilog-diff-buffers-p (b1 b2 &optional whitespace regexp)
   "Return nil if buffers B1 and B2 have same contents.
 Else, return point in B1 that first mismatches.
-If optional WHITESPACE true, ignore whitespace."
+If optional WHITESPACE true, ignore whitespace.
+If optional REGEXP, ignore differences matching it."
   (save-excursion
     (let* ((case-fold-search nil)  ; compare-buffer-substrings cares
           (p1 (with-current-buffer b1 (goto-char (point-min))))
@@ -10703,6 +10733,15 @@ If optional WHITESPACE true, ignore whitespace."
            (goto-char p2)
            (skip-chars-forward " \t\n\r\f\v")
            (setq p2 (point))))
+       (when regexp
+         (with-current-buffer b1
+           (goto-char p1)
+           (when (looking-at regexp)
+              (setq p1 (match-end 0))))
+         (with-current-buffer b2
+           (goto-char p2)
+           (when (looking-at regexp)
+              (setq p2 (match-end 0)))))
        (setq size (min (- maxp1 p1) (- maxp2 p2)))
        (setq progress (compare-buffer-substrings b2 p2 (+ size p2)
                                                  b1 p1 (+ size p1)))
@@ -10723,7 +10762,7 @@ Ignores WHITESPACE if t, and writes output to stdout if SHOW."
   ;; call `diff' as `diff' has different calling semantics on different
   ;; versions of Emacs.
   (if (not (file-exists-p f1))
-      (message "Buffer %s has no associated file on disc" (buffer-name b2))
+      (message "Buffer `%s' has no associated file on disk" (buffer-name b2))
     (with-temp-buffer "*Verilog-Diff*"
                       (let ((outbuf (current-buffer))
                             (f2 (make-temp-file "vm-diff-auto-")))
@@ -10791,7 +10830,7 @@ or `diff' in batch mode."
            ;; Restore name if unwind
            (with-current-buffer b1 (setq buffer-file-name name1)))))
       ;;
-      (setq diffpt (verilog-diff-buffers-p b1 b2 t))
+      (setq diffpt (verilog-diff-buffers-p b1 b2 t verilog-diff-ignore-regexp))
       (cond ((not diffpt)
             (unless noninteractive (message "AUTO expansion identical"))
              (kill-buffer newname))  ; Nice to cleanup after oneself
@@ -11054,6 +11093,7 @@ If PAR-VALUES replace final strings with these parameter values."
         (vl-name (verilog-sig-name port-st))
         (vl-width (verilog-sig-width port-st))
         (vl-modport (verilog-sig-modport port-st))
+        (vl-memory (verilog-sig-memory port-st))
         (vl-mbits (if (verilog-sig-multidim port-st)
                        (verilog-sig-multidim-string port-st) ""))
         (vl-bits (if (or verilog-auto-inst-vector
@@ -11078,15 +11118,25 @@ If PAR-VALUES replace final strings with these parameter values."
                        (concat "\\<" (nth 0 (car check-values)) "\\>")
                        (concat "(" (nth 1 (car check-values)) ")")
                        t t vl-mbits)
+             vl-memory (when vl-memory
+                          (verilog-string-replace-matches
+                           (concat "\\<" (nth 0 (car check-values)) "\\>")
+                           (concat "(" (nth 1 (car check-values)) ")")
+                           t t vl-memory))
              check-values (cdr check-values)))
       (setq vl-bits (verilog-simplify-range-expression vl-bits)
            vl-mbits (verilog-simplify-range-expression vl-mbits)
+           vl-memory (when vl-memory (verilog-simplify-range-expression vl-memory))
            vl-width (verilog-make-width-expression vl-bits))) ; Not in the loop for speed
     ;; Default net value if not found
-    (setq dflt-bits (if (and (verilog-sig-bits port-st)
-                            (or (verilog-sig-multidim port-st)
-                                (verilog-sig-memory port-st)))
-                       (concat "/*" vl-mbits vl-bits "*/")
+    (setq dflt-bits (if (or (and (verilog-sig-bits port-st)
+                                 (verilog-sig-multidim port-st))
+                            (verilog-sig-memory port-st))
+                       (concat "/*" vl-mbits vl-bits
+                                ;; .[ used to separate packed from unpacked
+                                (if vl-memory "." "")
+                                (if vl-memory vl-memory "")
+                                "*/")
                      (concat vl-bits))
          tpl-net (concat port
                          (if (and vl-modport
@@ -11157,7 +11207,7 @@ If PAR-VALUES replace final strings with these parameter values."
          (for-star
           (indent-to (+ (if (< verilog-auto-inst-column 48) 24 16)
                         verilog-auto-inst-column))
-          (verilog-insert " // Implicit .\*\n")) ;For some reason the . or * must be escaped...
+          (verilog-insert " // Implicit .*\n"))
          (t
           (insert "\n")))))
 ;;(verilog-auto-inst-port (list "foo" "[5:0]") 10 (list (list "foo" "a@\"(% (+ @ 1) 4)\"a")) "3")
@@ -13316,13 +13366,16 @@ Typing \\[verilog-auto] will make this into:
           (sig-list-all  (verilog-decls-get-iovars moddecls))
           ;;
           (undecode-sig (or (assoc undecode-name sig-list-all)
-                            (error "%s: Signal %s not found in design" (verilog-point-text) undecode-name)))
+                            (error "%s: Signal `%s' not found in design"
+                                    (verilog-point-text) undecode-name)))
           (undecode-enum (or (verilog-sig-enum undecode-sig)
-                             (error "%s: Signal %s does not have an enum tag" (verilog-point-text) undecode-name)))
+                             (error "%s: Signal `%s' does not have an enum tag"
+                                     (verilog-point-text) undecode-name)))
           ;;
           (enum-sigs (verilog-signals-not-in
                       (or (verilog-signals-matching-enum sig-list-consts undecode-enum)
-                          (error "%s: No state definitions for %s" (verilog-point-text) undecode-enum))
+                          (error "%s: No state definitions for `%s'"
+                                  (verilog-point-text) undecode-enum))
                       nil))
           ;;
           (one-hot (or
@@ -13518,120 +13571,115 @@ Wilson Snyder (wsnyder@wsnyder.org)."
   (unless noninteractive (message "Updating AUTOs..."))
   (if (fboundp 'dinotrace-unannotate-all)
       (dinotrace-unannotate-all))
-  (verilog-save-font-mods
+  ;; Disable change hooks for speed
+  ;; This let can't be part of above let; must restore
+  ;; after-change-functions before font-lock resumes
+  (verilog-save-font-no-change-functions
    (let ((oldbuf (if (not (buffer-modified-p))
-                    (buffer-string)))
-        (case-fold-search verilog-case-fold)
-        ;; Cache directories; we don't write new files, so can't change
-        (verilog-dir-cache-preserving t)
-        ;; Cache current module
-        (verilog-modi-cache-current-enable t)
-        (verilog-modi-cache-current-max (point-min)) ; IE it's invalid
-        verilog-modi-cache-current)
-     (unwind-protect
-        ;; Disable change hooks for speed
-        ;; This let can't be part of above let; must restore
-        ;; after-change-functions before font-lock resumes
-        (verilog-save-no-change-functions
-         (verilog-save-scan-cache
-          (save-excursion
-            ;; Wipe cache; otherwise if we AUTOed a block above this one,
-            ;; we'll misremember we have generated IOs, confusing AUTOOUTPUT
-            (setq verilog-modi-cache-list nil)
-            ;; Local state
-            (verilog-read-auto-template-init)
-            ;; If we're not in verilog-mode, change syntax table so parsing works right
-            (unless (eq major-mode `verilog-mode) (verilog-mode))
-            ;; Allow user to customize
-            (verilog-run-hooks 'verilog-before-auto-hook)
-            ;; Try to save the user from needing to revert-file to reread file local-variables
-            (verilog-auto-reeval-locals)
-            (verilog-read-auto-lisp-present)
-            (verilog-read-auto-lisp (point-min) (point-max))
-            (verilog-getopt-flags)
-            ;; From here on out, we can cache anything we read from disk
-            (verilog-preserve-dir-cache
-             ;; These two may seem obvious to do always, but on large includes it can be way too slow
-             (when verilog-auto-read-includes
-               (verilog-read-includes)
-               (verilog-read-defines nil nil t))
-             ;; Setup variables due to SystemVerilog expansion
-             (verilog-auto-re-search-do "/\\*AUTOLOGIC\\*/" 'verilog-auto-logic-setup)
-             ;; This particular ordering is important
-             ;; INST: Lower modules correct, no internal dependencies, FIRST
-             (verilog-preserve-modi-cache
-              ;; Clear existing autos else we'll be screwed by existing ones
-              (verilog-delete-auto)
-              ;; Injection if appropriate
-              (when inject
-                (verilog-inject-inst)
-                (verilog-inject-sense)
-                (verilog-inject-arg))
-              ;;
-              ;; Do user inserts first, so their code can insert AUTOs
-              (verilog-auto-re-search-do "/\\*AUTOINSERTLISP(.*?)\\*/"
-                                         'verilog-auto-insert-lisp)
-              ;; Expand instances before need the signals the instances input/output
-              (verilog-auto-re-search-do "/\\*AUTOINSTPARAM\\*/" 'verilog-auto-inst-param)
-              (verilog-auto-re-search-do "/\\*AUTOINST\\*/" 'verilog-auto-inst)
-              (verilog-auto-re-search-do "\\.\\*" 'verilog-auto-star)
-              ;; Doesn't matter when done, but combine it with a common changer
-              (verilog-auto-re-search-do "/\\*\\(AUTOSENSE\\|AS\\)\\*/" 'verilog-auto-sense)
-              (verilog-auto-re-search-do "/\\*AUTORESET\\*/" 'verilog-auto-reset)
-              ;; Must be done before autoin/out as creates a reg
-              (verilog-auto-re-search-do "/\\*AUTOASCIIENUM(.*?)\\*/" 'verilog-auto-ascii-enum)
-              ;;
-              ;; first in/outs from other files
-              (verilog-auto-re-search-do "/\\*AUTOINOUTMODPORT(.*?)\\*/" 'verilog-auto-inout-modport)
-              (verilog-auto-re-search-do "/\\*AUTOINOUTMODULE(.*?)\\*/" 'verilog-auto-inout-module)
-              (verilog-auto-re-search-do "/\\*AUTOINOUTCOMP(.*?)\\*/" 'verilog-auto-inout-comp)
-              (verilog-auto-re-search-do "/\\*AUTOINOUTIN(.*?)\\*/" 'verilog-auto-inout-in)
-              (verilog-auto-re-search-do "/\\*AUTOINOUTPARAM(.*?)\\*/" 'verilog-auto-inout-param)
-              ;; next in/outs which need previous sucked inputs first
-              (verilog-auto-re-search-do "/\\*AUTOOUTPUT\\((.*?)\\)?\\*/" 'verilog-auto-output)
-              (verilog-auto-re-search-do "/\\*AUTOINPUT\\((.*?)\\)?\\*/" 'verilog-auto-input)
-              (verilog-auto-re-search-do "/\\*AUTOINOUT\\((.*?)\\)?\\*/" 'verilog-auto-inout)
-              ;; Then tie off those in/outs
-              (verilog-auto-re-search-do "/\\*AUTOTIEOFF\\*/" 'verilog-auto-tieoff)
-              ;; These can be anywhere after AUTOINSERTLISP
-              (verilog-auto-re-search-do "/\\*AUTOUNDEF\\((.*?)\\)?\\*/" 'verilog-auto-undef)
-              ;; Wires/regs must be after inputs/outputs
-              (verilog-auto-re-search-do "/\\*AUTOASSIGNMODPORT(.*?)\\*/" 'verilog-auto-assign-modport)
-              (verilog-auto-re-search-do "/\\*AUTOLOGIC\\*/" 'verilog-auto-logic)
-              (verilog-auto-re-search-do "/\\*AUTOWIRE\\*/" 'verilog-auto-wire)
-              (verilog-auto-re-search-do "/\\*AUTOREG\\*/" 'verilog-auto-reg)
-              (verilog-auto-re-search-do "/\\*AUTOREGINPUT\\*/" 'verilog-auto-reg-input)
-              ;; outputevery needs AUTOOUTPUTs done first
-              (verilog-auto-re-search-do "/\\*AUTOOUTPUTEVERY\\((.*?)\\)?\\*/" 'verilog-auto-output-every)
-              ;; After we've created all new variables
-              (verilog-auto-re-search-do "/\\*AUTOUNUSED\\*/" 'verilog-auto-unused)
-              ;; Must be after all inputs outputs are generated
-              (verilog-auto-re-search-do "/\\*AUTOARG\\*/" 'verilog-auto-arg)
-              ;; User inserts
-              (verilog-auto-re-search-do "/\\*AUTOINSERTLAST(.*?)\\*/" 'verilog-auto-insert-last)
-              ;; Fix line numbers (comments only)
-              (when verilog-auto-inst-template-numbers
-                (verilog-auto-templated-rel))
-              (when verilog-auto-template-warn-unused
-                (verilog-auto-template-lint))))
-            ;;
-            (verilog-run-hooks 'verilog-auto-hook)
-            ;;
-            (when verilog-auto-delete-trailing-whitespace
-              (verilog-delete-trailing-whitespace))
-            ;;
-            (set (make-local-variable 'verilog-auto-update-tick) (buffer-chars-modified-tick))
-            ;;
-            ;; If end result is same as when started, clear modified flag
-            (cond ((and oldbuf (equal oldbuf (buffer-string)))
-                   (set-buffer-modified-p nil)
-                   (unless noninteractive (message "Updating AUTOs...done (no changes)")))
-                  (t (unless noninteractive (message "Updating AUTOs...done"))))
-            ;; End of after-change protection
-            )))
-       ;; Unwind forms
-       ;; Currently handled in verilog-save-font-mods
-       ))))
+                     (buffer-string)))
+         (case-fold-search verilog-case-fold)
+         ;; Cache directories; we don't write new files, so can't change
+         (verilog-dir-cache-preserving t)
+         ;; Cache current module
+         (verilog-modi-cache-current-enable t)
+         (verilog-modi-cache-current-max (point-min)) ; IE it's invalid
+         verilog-modi-cache-current)
+     (verilog-save-scan-cache
+      (save-excursion
+        ;; Wipe cache; otherwise if we AUTOed a block above this one,
+        ;; we'll misremember we have generated IOs, confusing AUTOOUTPUT
+        (setq verilog-modi-cache-list nil)
+        ;; Local state
+        (verilog-read-auto-template-init)
+        ;; If we're not in verilog-mode, change syntax table so parsing works right
+        (unless (eq major-mode `verilog-mode) (verilog-mode))
+        ;; Allow user to customize
+        (verilog-run-hooks 'verilog-before-auto-hook)
+        ;; Try to save the user from needing to revert-file to reread file local-variables
+        (verilog-auto-reeval-locals)
+        (verilog-read-auto-lisp-present)
+        (verilog-read-auto-lisp (point-min) (point-max))
+        (verilog-getopt-flags)
+        ;; From here on out, we can cache anything we read from disk
+        (verilog-preserve-dir-cache
+         ;; These two may seem obvious to do always, but on large includes it can be way too slow
+         (when verilog-auto-read-includes
+           (verilog-read-includes)
+           (verilog-read-defines nil nil t))
+         ;; Setup variables due to SystemVerilog expansion
+         (verilog-auto-re-search-do "/\\*AUTOLOGIC\\*/" 'verilog-auto-logic-setup)
+         ;; This particular ordering is important
+         ;; INST: Lower modules correct, no internal dependencies, FIRST
+         (verilog-preserve-modi-cache
+          ;; Clear existing autos else we'll be screwed by existing ones
+          (verilog-delete-auto-buffer)
+          ;; Injection if appropriate
+          (when inject
+            (verilog-inject-inst)
+            (verilog-inject-sense)
+            (verilog-inject-arg))
+          ;;
+          ;; Do user inserts first, so their code can insert AUTOs
+          (verilog-auto-re-search-do "/\\*AUTOINSERTLISP(.*?)\\*/"
+                                     'verilog-auto-insert-lisp)
+          ;; Expand instances before need the signals the instances input/output
+          (verilog-auto-re-search-do "/\\*AUTOINSTPARAM\\*/" 'verilog-auto-inst-param)
+          (verilog-auto-re-search-do "/\\*AUTOINST\\*/" 'verilog-auto-inst)
+          (verilog-auto-re-search-do "\\.\\*" 'verilog-auto-star)
+          ;; Doesn't matter when done, but combine it with a common changer
+          (verilog-auto-re-search-do "/\\*\\(AUTOSENSE\\|AS\\)\\*/" 'verilog-auto-sense)
+          (verilog-auto-re-search-do "/\\*AUTORESET\\*/" 'verilog-auto-reset)
+          ;; Must be done before autoin/out as creates a reg
+          (verilog-auto-re-search-do "/\\*AUTOASCIIENUM(.*?)\\*/" 'verilog-auto-ascii-enum)
+          ;;
+          ;; first in/outs from other files
+          (verilog-auto-re-search-do "/\\*AUTOINOUTMODPORT(.*?)\\*/" 'verilog-auto-inout-modport)
+          (verilog-auto-re-search-do "/\\*AUTOINOUTMODULE(.*?)\\*/" 'verilog-auto-inout-module)
+          (verilog-auto-re-search-do "/\\*AUTOINOUTCOMP(.*?)\\*/" 'verilog-auto-inout-comp)
+          (verilog-auto-re-search-do "/\\*AUTOINOUTIN(.*?)\\*/" 'verilog-auto-inout-in)
+          (verilog-auto-re-search-do "/\\*AUTOINOUTPARAM(.*?)\\*/" 'verilog-auto-inout-param)
+          ;; next in/outs which need previous sucked inputs first
+          (verilog-auto-re-search-do "/\\*AUTOOUTPUT\\((.*?)\\)?\\*/" 'verilog-auto-output)
+          (verilog-auto-re-search-do "/\\*AUTOINPUT\\((.*?)\\)?\\*/" 'verilog-auto-input)
+          (verilog-auto-re-search-do "/\\*AUTOINOUT\\((.*?)\\)?\\*/" 'verilog-auto-inout)
+          ;; Then tie off those in/outs
+          (verilog-auto-re-search-do "/\\*AUTOTIEOFF\\*/" 'verilog-auto-tieoff)
+          ;; These can be anywhere after AUTOINSERTLISP
+          (verilog-auto-re-search-do "/\\*AUTOUNDEF\\((.*?)\\)?\\*/" 'verilog-auto-undef)
+          ;; Wires/regs must be after inputs/outputs
+          (verilog-auto-re-search-do "/\\*AUTOASSIGNMODPORT(.*?)\\*/" 'verilog-auto-assign-modport)
+          (verilog-auto-re-search-do "/\\*AUTOLOGIC\\*/" 'verilog-auto-logic)
+          (verilog-auto-re-search-do "/\\*AUTOWIRE\\*/" 'verilog-auto-wire)
+          (verilog-auto-re-search-do "/\\*AUTOREG\\*/" 'verilog-auto-reg)
+          (verilog-auto-re-search-do "/\\*AUTOREGINPUT\\*/" 'verilog-auto-reg-input)
+          ;; outputevery needs AUTOOUTPUTs done first
+          (verilog-auto-re-search-do "/\\*AUTOOUTPUTEVERY\\((.*?)\\)?\\*/" 'verilog-auto-output-every)
+          ;; After we've created all new variables
+          (verilog-auto-re-search-do "/\\*AUTOUNUSED\\*/" 'verilog-auto-unused)
+          ;; Must be after all inputs outputs are generated
+          (verilog-auto-re-search-do "/\\*AUTOARG\\*/" 'verilog-auto-arg)
+          ;; User inserts
+          (verilog-auto-re-search-do "/\\*AUTOINSERTLAST(.*?)\\*/" 'verilog-auto-insert-last)
+          ;; Fix line numbers (comments only)
+          (when verilog-auto-inst-template-numbers
+            (verilog-auto-templated-rel))
+          (when verilog-auto-template-warn-unused
+            (verilog-auto-template-lint))))
+        ;;
+        (verilog-run-hooks 'verilog-auto-hook)
+        ;;
+        (when verilog-auto-delete-trailing-whitespace
+          (verilog-delete-trailing-whitespace))
+        ;;
+        (set (make-local-variable 'verilog-auto-update-tick) (buffer-chars-modified-tick))
+        ;;
+        ;; If end result is same as when started, clear modified flag
+        (cond ((and oldbuf (equal oldbuf (buffer-string)))
+               (verilog-restore-buffer-modified-p nil)
+               (unless noninteractive (message "Updating AUTOs...done (no changes)")))
+              (t (unless noninteractive (message "Updating AUTOs...done"))))
+        ;; End of save-cache
+        )))))
 \f
 ;;; Skeletons:
 ;;
index d883d4fc4dd0e54e3bf33f255a1d11df739860a2..2fc24a8cb3d873cbab2522f9fe0c1b7691f5f38b 100644 (file)
@@ -1,4 +1,4 @@
-;;; which-func.el --- print current function in mode line
+;;; which-func.el --- print current function in mode line  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1994, 1997-1998, 2001-2016 Free Software Foundation,
 ;; Inc.
@@ -80,7 +80,6 @@
   "List of major modes for which Which Function mode should be used.
 For other modes it is disabled.  If this is equal to t,
 then Which Function mode is enabled in any major mode that supports it."
-  :group 'which-func
   :version "24.3"                       ; explicit list -> t
   :type '(choice (const :tag "All modes" t)
                 (repeat (symbol :tag "Major mode"))))
@@ -91,13 +90,11 @@ This means that Which Function mode won't really do anything
 until you use Imenu, in these modes.  Note that files
 larger than `which-func-maxout' behave in this way too;
 Which Function mode doesn't do anything until you use Imenu."
-  :group 'which-func
   :type '(repeat (symbol :tag "Major mode")))
 
 (defcustom which-func-maxout 500000
   "Don't automatically compute the Imenu menu if buffer is this big or bigger.
 Zero means compute the Imenu menu regardless of size."
-  :group 'which-func
   :type 'integer)
 
 (defvar which-func-keymap
@@ -137,8 +134,7 @@ Zero means compute the Imenu menu regardless of size."
      :foreground "Blue1")
     (t
      :foreground "LightSkyBlue"))
-  "Face used to highlight mode line function names."
-  :group 'which-func)
+  "Face used to highlight mode line function names.")
 
 (defcustom which-func-format
   `("["
@@ -152,7 +148,6 @@ mouse-3: go to end")
     "]")
   "Format for displaying the function in the mode line."
   :version "24.2"                  ; added mouse-face; 24point2 is correct
-  :group 'which-func
   :type 'sexp)
 ;;;###autoload (put 'which-func-format 'risky-local-variable t)
 
@@ -193,14 +188,16 @@ This makes a difference only if `which-function-mode' is non-nil.")
 
 (add-hook 'find-file-hook 'which-func-ff-hook t)
 
+(defun which-func-try-to-enable ()
+  (unless (or (not which-function-mode)
+              (local-variable-p 'which-func-mode))
+    (setq which-func-mode (or (eq which-func-modes t)
+                              (member major-mode which-func-modes)))))
+
 (defun which-func-ff-hook ()
   "File find hook for Which Function mode.
 It creates the Imenu index for the buffer, if necessary."
-  (unless (local-variable-p 'which-func-mode)
-    (setq which-func-mode
-          (and which-function-mode
-               (or (eq which-func-modes t)
-                   (member major-mode which-func-modes)))))
+  (which-func-try-to-enable)
 
   (condition-case err
       (if (and which-func-mode
@@ -239,6 +236,13 @@ It creates the Imenu index for the buffer, if necessary."
 
 (defvar which-func-update-timer nil)
 
+(unless (or (assq 'which-func-mode mode-line-misc-info)
+            (assq 'which-function-mode mode-line-misc-info))
+  (add-to-list 'mode-line-misc-info
+               '(which-function-mode    ;Only display if mode is enabled.
+                 (which-func-mode       ;Only display if buffer supports it.
+                  ("" which-func-format " ")))))
+
 ;; This is the name people would normally expect.
 ;;;###autoload
 (define-minor-mode which-function-mode
@@ -254,17 +258,12 @@ in certain major modes."
   (when (timerp which-func-update-timer)
     (cancel-timer which-func-update-timer))
   (setq which-func-update-timer nil)
-  (if which-function-mode
-      ;;Turn it on
-      (progn
-        (setq which-func-update-timer
-              (run-with-idle-timer idle-update-delay t #'which-func-update))
-        (dolist (buf (buffer-list))
-          (with-current-buffer buf
-            (unless (local-variable-p 'which-func-mode)
-              (setq which-func-mode
-                    (or (eq which-func-modes t)
-                        (member major-mode which-func-modes)))))))))
+  (when which-function-mode
+    ;;Turn it on.
+    (setq which-func-update-timer
+          (run-with-idle-timer idle-update-delay t #'which-func-update))
+    (dolist (buf (buffer-list))
+      (with-current-buffer buf (which-func-try-to-enable)))))
 
 (defvar which-function-imenu-failed nil
   "Locally t in a buffer if `imenu--make-index-alist' found nothing there.")
index f8a11544121fbc5496054753ec97e893728b54c0..f14cd0d81cd580163848e710968c4b75cf0e6be5 100644 (file)
@@ -1232,7 +1232,7 @@ V%s 0 /%s-latin1 /%s Latin1Encoding put\n"
 (provide 'ps-mule)
 
 ;; Local Variables:
-;; generated-autoload-file: "ps-print.el"
+;; generated-autoload-file: "ps-print-loaddefs.el"
 ;; End:
 
 ;;; ps-mule.el ends here
index 965e67569610398d9ff98a8709ec1ac70c9d24b9..7333709c19c0e23d9a0e43a2958ca68b52d6f37d 100644 (file)
@@ -1475,6 +1475,8 @@ Please send all bug fixes and enhancements to
 ;; Load XEmacs/Emacs definitions
 (require 'ps-def)
 
+;; autoloads for secondary file
+(require 'ps-print-loaddefs)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; User Variables:
@@ -6584,79 +6586,6 @@ If FACE is not a valid face name, use default face."
 (unless noninteractive
   (add-hook 'kill-emacs-hook #'ps-kill-emacs-check))
 
-\f
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; To make this file smaller, some commands go in a separate file.
-;; But autoload them here to make the separation invisible.
-\f
-;;;### (autoloads nil "ps-mule" "ps-mule.el" "4a263b7a727e853f2e6672922c4e5755")
-;;; Generated autoloads from ps-mule.el
-
-(defvar ps-multibyte-buffer nil "\
-Specifies the multi-byte buffer handling.
-
-Valid values are:
-
-  nil                    This is the value to use the default settings;
-                         by default, this only works to print buffers with
-                         only ASCII and Latin characters.   But this default
-                         setting can be changed by setting the variable
-                         `ps-mule-font-info-database-default' differently.
-                         The initial value of this variable is
-                         `ps-mule-font-info-database-latin' (see
-                         documentation).
-
-  `non-latin-printer'    This is the value to use when you have a Japanese
-                         or Korean PostScript printer and want to print
-                         buffer with ASCII, Latin-1, Japanese (JISX0208 and
-                         JISX0201-Kana) and Korean characters.  At present,
-                         it was not tested with the Korean characters
-                         printing.  If you have a korean PostScript printer,
-                         please, test it.
-
-  `bdf-font'             This is the value to use when you want to print
-                         buffer with BDF fonts.  BDF fonts include both latin
-                         and non-latin fonts.  BDF (Bitmap Distribution
-                         Format) is a format used for distributing X's font
-                         source file.  BDF fonts are included in
-                         `intlfonts-1.2' which is a collection of X11 fonts
-                         for all characters supported by Emacs.  In order to
-                         use this value, be sure to have installed
-                         `intlfonts-1.2' and set the variable
-                         `bdf-directory-list' appropriately (see ps-bdf.el for
-                         documentation of this variable).
-
-  `bdf-font-except-latin' This is like `bdf-font' except that it uses
-                         PostScript default fonts to print ASCII and Latin-1
-                         characters.  This is convenient when you want or
-                         need to use both latin and non-latin characters on
-                         the same buffer.  See `ps-font-family',
-                         `ps-header-font-family' and `ps-font-info-database'.
-
-Any other value is treated as nil.")
-
-(custom-autoload 'ps-multibyte-buffer "ps-mule" t)
-
-(autoload 'ps-mule-initialize "ps-mule" "\
-Initialize global data for printing multi-byte characters.
-
-\(fn)" nil nil)
-
-(autoload 'ps-mule-begin-job "ps-mule" "\
-Start printing job for multi-byte chars between FROM and TO.
-It checks if all multi-byte characters in the region are printable or not.
-
-\(fn FROM TO)" nil nil)
-
-(autoload 'ps-mule-end-job "ps-mule" "\
-Finish printing job for multi-byte chars.
-
-\(fn)" nil nil)
-
-;;;***
-\f
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
 (provide 'ps-print)
 
 ;;; ps-print.el ends here
index d1e3afbb5c3becc4f3c3487ec04b4d1e332ec943..e2abd7426f6a9e5ae711c134f69ac26507b68793 100644 (file)
@@ -1283,7 +1283,7 @@ printer signaled one (and \"%s\" is used as the default printer), else nil."
                           (and locprn
                                (ses--locprn-compiled locprn))))
                    printer)
-               (or value "")))
+               value))
        (if (stringp value)
            value
          (or (stringp (car-safe value))
@@ -3408,15 +3408,17 @@ highlighted range in the spreadsheet."
     (setf (ses-cell--symbol cell) new-name)
     (makunbound sym)
     (and curcell (setq ses--curcell new-name))
-    (let* ((pos (point))
-          (inhibit-read-only t)
-          (col (current-column))
-          (end (save-excursion
-                 (move-to-column (1+ col))
-                 (if (eolp)
-                     (+ pos (ses-col-width col) 1)
-                   (point)))))
-      (put-text-property pos end 'cursor-intangible new-name))
+    (save-excursion
+      (or curcell (ses-goto-print row col))
+      (let* ((pos (point))
+             (inhibit-read-only t)
+             (end (progn
+                    (move-to-column (+ (current-column) (ses-col-width col)))
+                    (if (eolp)
+                        (+ pos (ses-col-width col) 1)
+                      (forward-char)
+                      (point)))))
+        (put-text-property pos end 'cursor-intangible new-name)))
     ;; Update the cell name in the mode-line.
     (force-mode-line-update)))
 
index c3f39ecd327fe351e156a5e2af833ad398a69274..505df5d34243583a7047a73630d880cd9ab8a8f2 100644 (file)
@@ -237,5 +237,5 @@ of ENTRY-LIST is a list of cons cells (\"MACRONAME\" . LEVEL).  See
 ;;; reftex-auc.el ends here
 
 ;; Local Variables:
-;; generated-autoload-file: "reftex.el"
+;; generated-autoload-file: "reftex-loaddefs.el"
 ;; End:
index 0a3e7a4835696fd88a07ab504eedd0ae1c88d2f6..b5b7d466e9c8a1ac33f3ef83664adced77efe891 100644 (file)
@@ -1262,5 +1262,5 @@ created files in the variables `reftex-create-bibtex-header' or
 ;;; reftex-cite.el ends here
 
 ;; Local Variables:
-;; generated-autoload-file: "reftex.el"
+;; generated-autoload-file: "reftex-loaddefs.el"
 ;; End:
index 9d4ee086db11f4850d7d1f56130fd4ee955cb83f..f1d4d6fcba867fa5207a57855215a96f6324d163 100644 (file)
@@ -488,5 +488,5 @@ Calling this function several times find successive citation locations."
 ;;; reftex-dcr.el ends here
 
 ;; Local Variables:
-;; generated-autoload-file: "reftex.el"
+;; generated-autoload-file: "reftex-loaddefs.el"
 ;; End:
index 7f27158d25719a9aac185d0087b27fd5f5cbf9ad..d2500510443dd98b200dae01938ee93e3814df37 100644 (file)
@@ -477,5 +477,5 @@ With no argument, this command toggles
 ;;; reftex-global.el ends here
 
 ;; Local Variables:
-;; generated-autoload-file: "reftex.el"
+;; generated-autoload-file: "reftex-loaddefs.el"
 ;; End:
index c5c3885b16785556dd657f604738d8702ab815cd..0ed6f26699a512b6e05162d6d448012c3dad31f3 100644 (file)
@@ -2119,5 +2119,5 @@ Does not do a save-excursion."
 ;;; reftex-index.el ends here
 
 ;; Local Variables:
-;; generated-autoload-file: "reftex.el"
+;; generated-autoload-file: "reftex-loaddefs.el"
 ;; End:
index 5f969f4effdfdaf014814b50c7af4aaf779385c1..1d6fa311d5f67aa4bab6ac9125744634c7312012 100644 (file)
@@ -1131,5 +1131,5 @@ When LEVEL is non-nil, increase section numbers on that level."
 ;;; reftex-parse.el ends here
 
 ;; Local Variables:
-;; generated-autoload-file: "reftex.el"
+;; generated-autoload-file: "reftex-loaddefs.el"
 ;; End:
index 5ac0e284eedc3223de20d862dc336d5de181ecf5..7f13ed5b06d00dfc432fc77ff6c0218aeede560a 100644 (file)
@@ -881,5 +881,5 @@ Optional prefix argument OTHER-WINDOW goes to the label in another window."
 ;;; reftex-ref.el ends here
 
 ;; Local Variables:
-;; generated-autoload-file: "reftex.el"
+;; generated-autoload-file: "reftex-loaddefs.el"
 ;; End:
index f46c2370d716c8fc0b2bb3d432657c59a56e07fe..02caa67e9a8ac20556f70e0665841f08fb094e4f 100644 (file)
@@ -745,5 +745,5 @@ Cycle in reverse order if optional argument REVERSE is non-nil."
 ;;; reftex-sel.el ends here
 
 ;; Local Variables:
-;; generated-autoload-file: "reftex.el"
+;; generated-autoload-file: "reftex-loaddefs.el"
 ;; End:
index e96e822fd0f9ec2b455c6bb571eb62ef603b090f..915acc8382d6e0434540ec4ec87e9b8c7ad5820a 100644 (file)
@@ -1111,5 +1111,5 @@ always show the current section in connection with the option
 ;;; reftex-toc.el ends here
 
 ;; Local Variables:
-;; generated-autoload-file: "reftex.el"
+;; generated-autoload-file: "reftex-loaddefs.el"
 ;; End:
index bfd4290877541c3fe50262d34529832c042e2606..a488ab14b1098a19163c8204fe406b7ffd75dc5f 100644 (file)
@@ -70,7 +70,8 @@
 (require 'reftex-vars)
 
 
-;;; Autoloads - see end for automatic autoloads
+;;; Autoloads to ensure loading of support files when necessary
+(require 'reftex-loaddefs)
 
 ;; We autoload tons of functions from these files, but some have
 ;; a single function that needs to be globally autoloaded.
@@ -2394,702 +2395,6 @@ Your bug report will be posted to the AUCTeX bug reporting list.
 
 (setq reftex-tables-dirty t)  ; in case this file is evaluated by hand
 
-\f
-;;; Start of automatically extracted autoloads.
-\f
-;;;### (autoloads nil "reftex-auc" "reftex-auc.el" "32dc44348a7eaf247f63c81b3ead2ba4")
-;;; Generated autoloads from reftex-auc.el
-
-(autoload 'reftex-arg-label "reftex-auc" "\
-Use `reftex-label', `reftex-reference' or AUCTeX's code to insert label arg.
-What is being used depends upon `reftex-plug-into-AUCTeX'.
-
-\(fn OPTIONAL &optional PROMPT DEFINITION)" nil nil)
-
-(autoload 'reftex-arg-cite "reftex-auc" "\
-Use `reftex-citation' or AUCTeX's code to insert a cite-key macro argument.
-What is being used depends upon `reftex-plug-into-AUCTeX'.
-
-\(fn OPTIONAL &optional PROMPT DEFINITION)" nil nil)
-
-(autoload 'reftex-arg-index-tag "reftex-auc" "\
-Prompt for an index tag with completion.
-This is the name of an index, not the entry.
-
-\(fn OPTIONAL &optional PROMPT &rest ARGS)" nil nil)
-
-(autoload 'reftex-arg-index "reftex-auc" "\
-Prompt for an index entry completing with known entries.
-Completion is specific for just one index, if the macro or a tag
-argument identify one of multiple indices.
-
-\(fn OPTIONAL &optional PROMPT &rest ARGS)" nil nil)
-
-(autoload 'reftex-plug-into-AUCTeX "reftex-auc" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'reftex-toggle-plug-into-AUCTeX "reftex-auc" "\
-Toggle Interface between AUCTeX and RefTeX on and off.
-
-\(fn)" t nil)
-
-(autoload 'reftex-add-label-environments "reftex-auc" "\
-Add label environment descriptions to `reftex-label-alist-style'.
-The format of ENTRY-LIST is exactly like `reftex-label-alist'.  See there
-for details.
-This function makes it possible to support RefTeX from AUCTeX style files.
-The entries in ENTRY-LIST will be processed after the user settings in
-`reftex-label-alist', and before the defaults (specified in
-`reftex-default-label-alist-entries').  Any changes made to
-`reftex-label-alist-style' will raise a flag to the effect that
-the label information is recompiled on next use.
-
-\(fn ENTRY-LIST)" nil nil)
-
-(defalias 'reftex-add-to-label-alist 'reftex-add-label-environments)
-
-(autoload 'reftex-add-section-levels "reftex-auc" "\
-Add entries to the value of `reftex-section-levels'.
-The added values are kept local to the current document.  The format
-of ENTRY-LIST is a list of cons cells (\"MACRONAME\" . LEVEL).  See
-`reftex-section-levels' for an example.
-
-\(fn ENTRY-LIST)" nil nil)
-
-(autoload 'reftex-notice-new-section "reftex-auc" "\
-
-
-\(fn)" nil nil)
-
-;;;***
-\f
-;;;### (autoloads nil "reftex-cite" "reftex-cite.el" "7ee48dcf194ffd3cce3b7a2eb990e300")
-;;; Generated autoloads from reftex-cite.el
-
-(autoload 'reftex-default-bibliography "reftex-cite" "\
-Return the expanded value of variable `reftex-default-bibliography'.
-The expanded value is cached.
-
-\(fn)" nil nil)
-
-(autoload 'reftex-bib-or-thebib "reftex-cite" "\
-Test if BibTeX or \begin{thebibliography} should be used for the citation.
-Find the bof of the current file
-
-\(fn)" nil nil)
-
-(autoload 'reftex-get-bibfile-list "reftex-cite" "\
-Return list of bibfiles for current document.
-When using the chapterbib or bibunits package you should either
-use the same database files everywhere, or separate parts using
-different databases into different files (included into the mater file).
-Then this function will return the applicable database files.
-
-\(fn)" nil nil)
-
-(autoload 'reftex-pop-to-bibtex-entry "reftex-cite" "\
-Find BibTeX KEY in any file in FILE-LIST in another window.
-If MARK-TO-KILL is non-nil, mark new buffer to kill.
-If HIGHLIGHT is non-nil, highlight the match.
-If ITEM in non-nil, search for bibitem instead of database entry.
-If RETURN is non-nil, just return the entry and restore point.
-
-\(fn KEY FILE-LIST &optional MARK-TO-KILL HIGHLIGHT ITEM RETURN)" nil nil)
-
-(autoload 'reftex-end-of-bib-entry "reftex-cite" "\
-
-
-\(fn ITEM)" nil nil)
-
-(autoload 'reftex-parse-bibtex-entry "reftex-cite" "\
-Parse BibTeX ENTRY.
-If ENTRY is nil then parse the entry in current buffer between FROM and TO.
-If RAW is non-nil, keep double quotes/curly braces delimiting fields.
-
-\(fn ENTRY &optional FROM TO RAW)" nil nil)
-
-(autoload 'reftex-citation "reftex-cite" "\
-Make a citation using BibTeX database files.
-After prompting for a regular expression, scans the buffers with
-bibtex entries (taken from the \\bibliography command) and offers the
-matching entries for selection.  The selected entry is formatted according
-to `reftex-cite-format' and inserted into the buffer.
-
-If NO-INSERT is non-nil, nothing is inserted, only the selected key returned.
-
-FORMAT-KEY can be used to pre-select a citation format.
-
-When called with a `C-u' prefix, prompt for optional arguments in
-cite macros.  When called with a numeric prefix, make that many
-citations.  When called with point inside the braces of a `\\cite'
-command, it will add another key, ignoring the value of
-`reftex-cite-format'.
-
-The regular expression uses an expanded syntax: && is interpreted as `and'.
-Thus, `aaaa&&bbb' matches entries which contain both `aaaa' and `bbb'.
-While entering the regexp, completion on knows citation keys is possible.
-`=' is a good regular expression to match all entries in all files.
-
-\(fn &optional NO-INSERT FORMAT-KEY)" t nil)
-
-(autoload 'reftex-citep "reftex-cite" "\
-Call `reftex-citation' with a format selector `?p'.
-
-\(fn)" t nil)
-
-(autoload 'reftex-citet "reftex-cite" "\
-Call `reftex-citation' with a format selector `?t'.
-
-\(fn)" t nil)
-
-(autoload 'reftex-make-cite-echo-string "reftex-cite" "\
-Format a bibtex ENTRY for the echo area and cache the result.
-
-\(fn ENTRY DOCSTRUCT-SYMBOL)" nil nil)
-
-(autoload 'reftex-create-bibtex-file "reftex-cite" "\
-Create a new BibTeX database BIBFILE with all entries referenced in document.
-The command prompts for a filename and writes the collected
-entries to that file.  Only entries referenced in the current
-document with any \\cite-like macros are used.  The sequence in
-the new file is the same as it was in the old database.
-
-Entries referenced from other entries must appear after all
-referencing entries.
-
-You can define strings to be used as header or footer for the
-created files in the variables `reftex-create-bibtex-header' or
-`reftex-create-bibtex-footer' respectively.
-
-\(fn BIBFILE)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "reftex-dcr" "reftex-dcr.el" "8a1cb9d9c9190eefd4e22ab89d278e03")
-;;; Generated autoloads from reftex-dcr.el
-
-(autoload 'reftex-view-crossref "reftex-dcr" "\
-View cross reference of macro at point.  Point must be on the KEY
-argument.  When at a `\\ref' macro, show corresponding `\\label'
-definition, also in external documents (`xr').  When on a label, show
-a locations where KEY is referenced.  Subsequent calls find additional
-locations.  When on a `\\cite', show the associated `\\bibitem' macro or
-the BibTeX database entry.  When on a `\\bibitem', show a `\\cite' macro
-which uses this KEY. When on an `\\index', show other locations marked
-by the same index entry.
-To define additional cross referencing items, use the option
-`reftex-view-crossref-extra'.  See also `reftex-view-crossref-from-bibtex'.
-With one or two C-u prefixes, enforce rescanning of the document.
-With argument 2, select the window showing the cross reference.
-AUTO-HOW is only for the automatic crossref display and is handed through
-to the functions `reftex-view-cr-cite' and `reftex-view-cr-ref'.
-
-\(fn &optional ARG AUTO-HOW FAIL-QUIETLY)" t nil)
-
-(autoload 'reftex-mouse-view-crossref "reftex-dcr" "\
-View cross reference of \\ref or \\cite macro where you click.
-If the macro at point is a \\ref, show the corresponding label definition.
-If it is a \\cite, show the BibTeX database entry.
-If there is no such macro at point, search forward to find one.
-With argument, actually select the window showing the cross reference.
-
-\(fn EV)" t nil)
-
-(autoload 'reftex-toggle-auto-view-crossref "reftex-dcr" "\
-Toggle the automatic display of crossref information in the echo area.
-When active, leaving point idle in the argument of a \\ref or \\cite macro
-will display info in the echo area.
-
-\(fn)" t nil)
-
-(autoload 'reftex-view-crossref-from-bibtex "reftex-dcr" "\
-View location in a LaTeX document which cites the BibTeX entry at point.
-Since BibTeX files can be used by many LaTeX documents, this function
-prompts upon first use for a buffer in RefTeX mode.  To reset this
-link to a document, call the function with a prefix arg.
-Calling this function several times find successive citation locations.
-
-\(fn &optional ARG)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "reftex-global" "reftex-global.el" "a7a6a1872e4509da5b211972c2a588ad")
-;;; Generated autoloads from reftex-global.el
-
-(autoload 'reftex-create-tags-file "reftex-global" "\
-Create TAGS file by running `etags' on the current document.
-The TAGS file is also immediately visited with `visit-tags-table'.
-
-\(fn)" t nil)
-
-(autoload 'reftex-grep-document "reftex-global" "\
-Run grep query through all files related to this document.
-With prefix arg, force to rescan document.
-No active TAGS table is required.
-
-\(fn GREP-CMD)" t nil)
-
-(autoload 'reftex-search-document "reftex-global" "\
-Regexp search through all files of the current document.
-Starts always in the master file.  Stops when a match is found.
-To continue searching for next match, use command \\[tags-loop-continue].
-No active TAGS table is required.
-
-\(fn &optional REGEXP)" t nil)
-
-(autoload 'reftex-query-replace-document "reftex-global" "\
-Do `query-replace-regexp' of FROM with TO over the entire document.
-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].
-No active TAGS table is required.
-
-\(fn &optional FROM TO DELIMITED)" t nil)
-
-(autoload 'reftex-find-duplicate-labels "reftex-global" "\
-Produce a list of all duplicate labels in the document.
-
-\(fn)" t nil)
-
-(autoload 'reftex-change-label "reftex-global" "\
-Run `query-replace-regexp' of FROM with TO in all macro arguments.
-Works on the entire multifile document.
-If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
-with the command \\[tags-loop-continue].
-No active TAGS table is required.
-
-\(fn &optional FROM TO)" t nil)
-
-(autoload 'reftex-renumber-simple-labels "reftex-global" "\
-Renumber all simple labels in the document to make them sequentially.
-Simple labels are the ones created by RefTeX, consisting only of the
-prefix and a number.  After the command completes, all these labels will
-have sequential numbers throughout the document.  Any references to
-the labels will be changed as well.  For this, RefTeX looks at the
-arguments of any macros which either start or end in the string `ref'.
-This command should be used with care, in particular in multifile
-documents.  You should not use it if another document refers to this
-one with the `xr' package.
-
-\(fn)" t nil)
-
-(autoload 'reftex-save-all-document-buffers "reftex-global" "\
-Save all documents associated with the current document.
-The function is useful after a global action like replacing or renumbering
-labels.
-
-\(fn)" t nil)
-
-(autoload 'reftex-isearch-minor-mode "reftex-global" "\
-When on, isearch searches the whole document, not only the current file.
-This minor mode allows isearch to search through all the files of
-the current TeX document.
-
-With no argument, this command toggles
-`reftex-isearch-minor-mode'.  With a prefix argument ARG, turn
-`reftex-isearch-minor-mode' on if ARG is positive, otherwise turn it off.
-
-\(fn &optional ARG)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "reftex-index" "reftex-index.el" "0e0eef2a199fb9de6f13b5eef601843f")
-;;; Generated autoloads from reftex-index.el
-
-(autoload 'reftex-index-selection-or-word "reftex-index" "\
-Put selection or the word near point into the default index macro.
-This uses the information in `reftex-index-default-macro' to make an index
-entry.  The phrase indexed is the current selection or the word near point.
-When called with one `C-u' prefix, let the user have a chance to edit the
-index entry.  When called with 2 `C-u' as prefix, also ask for the index
-macro and other stuff.
-When called inside TeX math mode as determined by the `texmathp.el' library
-which is part of AUCTeX, the string is first processed with the
-`reftex-index-math-format', which see.
-
-\(fn &optional ARG PHRASE)" t nil)
-
-(autoload 'reftex-index "reftex-index" "\
-Query for an index macro and insert it along with its arguments.
-The index macros available are those defined in `reftex-index-macro' or
-by a call to `reftex-add-index-macros', typically from an AUCTeX style file.
-RefteX provides completion for the index tag and the index key, and
-will prompt for other arguments.
-
-\(fn &optional CHAR KEY TAG SEL NO-INSERT)" t nil)
-
-(autoload 'reftex-index-complete-tag "reftex-index" "\
-
-
-\(fn &optional ITAG OPT-ARGS)" nil nil)
-
-(autoload 'reftex-index-select-tag "reftex-index" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'reftex-index-complete-key "reftex-index" "\
-
-
-\(fn &optional TAG OPTIONAL INITIAL)" nil nil)
-
-(autoload 'reftex-index-show-entry "reftex-index" "\
-
-
-\(fn DATA &optional NO-REVISIT)" nil nil)
-
-(autoload 'reftex-display-index "reftex-index" "\
-Display a buffer with an index compiled from the current document.
-When the document has multiple indices, first prompts for the correct one.
-When index support is turned off, offer to turn it on.
-With one or two `C-u' prefixes, rescan document first.
-With prefix 2, restrict index to current document section.
-With prefix 3, restrict index to region.
-
-\(fn &optional TAG OVERRIDING-RESTRICTION REDO &rest LOCATIONS)" t nil)
-
-(autoload 'reftex-index-phrase-selection-or-word "reftex-index" "\
-Add current selection or word at point to the phrases buffer.
-When you are in transient-mark-mode and the region is active, the
-selection will be used - otherwise the word at point.
-You get a chance to edit the entry in the phrases buffer - finish with
-`C-c C-c'.
-
-\(fn ARG)" t nil)
-
-(autoload 'reftex-index-visit-phrases-buffer "reftex-index" "\
-Switch to the phrases buffer, initialize if empty.
-
-\(fn)" t nil)
-
-(autoload 'reftex-index-phrases-mode "reftex-index" "\
-Major mode for managing the Index phrases of a LaTeX document.
-This buffer was created with RefTeX.
-
-To insert new phrases, use
- - `C-c \\' in the LaTeX document to copy selection or word
- - `\\[reftex-index-new-phrase]' in the phrases buffer.
-
-To index phrases use one of:
-
-\\[reftex-index-this-phrase]     index current phrase
-\\[reftex-index-next-phrase]     index next phrase (or N with prefix arg)
-\\[reftex-index-all-phrases]     index all phrases
-\\[reftex-index-remaining-phrases]     index current and following phrases
-\\[reftex-index-region-phrases]     index the phrases in the region
-
-You can sort the phrases in this buffer with \\[reftex-index-sort-phrases].
-To display information about the phrase at point, use \\[reftex-index-phrases-info].
-
-For more information see the RefTeX User Manual.
-
-Here are all local bindings.
-
-\\{reftex-index-phrases-mode-map}
-
-\(fn)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "reftex-parse" "reftex-parse.el" "9015d91c86a135c850f92b828eca6b62")
-;;; Generated autoloads from reftex-parse.el
-
-(autoload 'reftex-parse-one "reftex-parse" "\
-Re-parse this file.
-
-\(fn)" t nil)
-
-(autoload 'reftex-parse-all "reftex-parse" "\
-Re-parse entire document.
-
-\(fn)" t nil)
-
-(autoload 'reftex-do-parse "reftex-parse" "\
-Do a document rescan.
-When allowed, do only a partial scan from FILE.
-
-\(fn RESCAN &optional FILE)" nil nil)
-
-(autoload 'reftex-everything-regexp "reftex-parse" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'reftex-all-document-files "reftex-parse" "\
-Return a list of all files belonging to the current document.
-When RELATIVE is non-nil, give file names relative to directory
-of master file.
-
-\(fn &optional RELATIVE)" nil nil)
-
-(autoload 'reftex-locate-bibliography-files "reftex-parse" "\
-Scan buffer for bibliography macros and return file list.
-
-\(fn MASTER-DIR &optional FILES)" nil nil)
-
-(autoload 'reftex-section-info "reftex-parse" "\
-Return a section entry for the current match.
-Careful: This function expects the match-data to be still in place!
-
-\(fn FILE)" nil nil)
-
-(autoload 'reftex-ensure-index-support "reftex-parse" "\
-When index support is turned off, ask to turn it on and
-set the current prefix argument so that `reftex-access-scan-info'
-will rescan the entire document.
-
-\(fn &optional ABORT)" nil nil)
-
-(autoload 'reftex-index-info-safe "reftex-parse" "\
-
-
-\(fn FILE)" nil nil)
-
-(autoload 'reftex-index-info "reftex-parse" "\
-Return an index entry for the current match.
-Careful: This function expects the match-data to be still in place!
-
-\(fn FILE)" nil nil)
-
-(autoload 'reftex-short-context "reftex-parse" "\
-Get about one line of useful context for the label definition at point.
-
-\(fn ENV PARSE &optional BOUND DERIVE)" nil nil)
-
-(autoload 'reftex-where-am-I "reftex-parse" "\
-Return the docstruct entry above point.
-Actually returns a cons cell in which the cdr is a flag indicating
-if the information is exact (t) or approximate (nil).
-
-\(fn)" nil nil)
-
-(autoload 'reftex-notice-new "reftex-parse" "\
-Hook to handshake with RefTeX after something new has been inserted.
-
-\(fn &optional N FORCE)" nil nil)
-
-(autoload 'reftex-what-macro-safe "reftex-parse" "\
-Call `reftex-what-macro' with special syntax table.
-
-\(fn WHICH &optional BOUND)" nil nil)
-
-(autoload 'reftex-what-macro "reftex-parse" "\
-Find out if point is within the arguments of any TeX-macro.
-The return value is either (\"\\macro\" . (point)) or a list of them.
-
-If WHICH is nil, immediately return nil.
-If WHICH is 1, return innermost enclosing macro.
-If WHICH is t, return list of all macros enclosing point.
-If WHICH is a list of macros, look only for those macros and return the
-  name of the first macro in this list found to enclose point.
-If the optional BOUND is an integer, bound backwards directed
-  searches to this point.  If it is nil, limit to nearest \\section -
-  like statement.
-
-This function is pretty stable, but can be fooled if the text contains
-things like \\macro{aa}{bb} where \\macro is defined to take only one
-argument.  As RefTeX cannot know this, the string \"bb\" would still be
-considered an argument of macro \\macro.
-
-\(fn WHICH &optional BOUND)" nil nil)
-
-(autoload 'reftex-what-environment "reftex-parse" "\
-Find out if point is inside a LaTeX environment.
-The return value is (e.g.) either (\"equation\" . (point)) or a list of
-them.
-
-If WHICH is nil, immediately return nil.
-If WHICH is 1, return innermost enclosing environment.
-If WHICH is t, return list of all environments enclosing point.
-If WHICH is a list of environments, look only for those environments and
-  return the name of the first environment in this list found to enclose
-  point.
-
-If the optional BOUND is an integer, bound backwards directed searches to
-this point.  If it is nil, limit to nearest \\section - like statement.
-
-\(fn WHICH &optional BOUND)" nil nil)
-
-(autoload 'reftex-what-special-env "reftex-parse" "\
-Run the special environment parsers and return the matches.
-
-The return value is (e.g.) either (\"my-parser-function\" . (point))
-or a list of them.
-
-If WHICH is nil, immediately return nil.
-If WHICH is 1, return innermost enclosing environment.
-If WHICH is t, return list of all environments enclosing point.
-If WHICH is a list of environments, look only for those environments and
-  return the name of the first environment in this list found to enclose
-  point.
-
-\(fn WHICH &optional BOUND)" nil nil)
-
-(autoload 'reftex-nth-arg "reftex-parse" "\
-Return the Nth following {} or [] parentheses content.
-OPT-ARGS is a list of argument numbers which are optional.
-
-\(fn N &optional OPT-ARGS)" nil nil)
-
-(autoload 'reftex-move-over-touching-args "reftex-parse" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'reftex-init-section-numbers "reftex-parse" "\
-Initialize the section numbers with zeros or with what is found in the TOC-ENTRY.
-
-\(fn &optional TOC-ENTRY APPENDIX)" nil nil)
-
-(autoload 'reftex-section-number "reftex-parse" "\
-Return a string with the current section number.
-When LEVEL is non-nil, increase section numbers on that level.
-
-\(fn &optional LEVEL STAR)" nil nil)
-
-;;;***
-\f
-;;;### (autoloads nil "reftex-ref" "reftex-ref.el" "166ebc4928231b5b42134783b94557f3")
-;;; Generated autoloads from reftex-ref.el
-
-(autoload 'reftex-label-location "reftex-ref" "\
-Return the environment or macro which determines the label type at point.
-If optional BOUND is an integer, limit backward searches to that point.
-
-\(fn &optional BOUND)" nil nil)
-
-(autoload 'reftex-label-info-update "reftex-ref" "\
-
-
-\(fn CELL)" nil nil)
-
-(autoload 'reftex-label-info "reftex-ref" "\
-
-
-\(fn LABEL &optional FILE BOUND DERIVE ENV-OR-MAC)" nil nil)
-
-(autoload 'reftex-label "reftex-ref" "\
-Insert a unique label.  Return the label.
-If ENVIRONMENT is given, don't bother to find out yourself.
-If NO-INSERT is non-nil, do not insert label into buffer.
-With prefix arg, force to rescan document first.
-When you are prompted to enter or confirm a label, and you reply with
-just the prefix or an empty string, no label at all will be inserted.
-A new label is also recorded into the label list.
-This function is controlled by the settings of reftex-insert-label-flags.
-
-\(fn &optional ENVIRONMENT NO-INSERT)" t nil)
-
-(autoload 'reftex-reference "reftex-ref" "\
-Make a LaTeX reference.  Look only for labels of a certain TYPE.
-With prefix arg, force to rescan buffer for labels.  This should only be
-necessary if you have recently entered labels yourself without using
-reftex-label.  Rescanning of the buffer can also be requested from the
-label selection menu.
-The function returns the selected label or nil.
-If NO-INSERT is non-nil, do not insert \\ref command, just return label.
-When called with 2 C-u prefix args, disable magic word recognition.
-
-\(fn &optional TYPE NO-INSERT CUT)" t nil)
-
-(autoload 'reftex-query-label-type "reftex-ref" "\
-
-
-\(fn)" nil nil)
-
-(autoload 'reftex-show-label-location "reftex-ref" "\
-
-
-\(fn DATA FORWARD NO-REVISIT &optional STAY ERROR)" nil nil)
-
-(autoload 'reftex-goto-label "reftex-ref" "\
-Prompt for a label (with completion) and jump to the location of this label.
-Optional prefix argument OTHER-WINDOW goes to the label in another window.
-
-\(fn &optional OTHER-WINDOW)" t nil)
-
-;;;***
-\f
-;;;### (autoloads nil "reftex-sel" "reftex-sel.el" "b5e68431056b461d8a0562e9e685a5f1")
-;;; Generated autoloads from reftex-sel.el
-
-(autoload 'reftex-select-label-mode "reftex-sel" "\
-Major mode for selecting a label in a LaTeX document.
-This buffer was created with RefTeX.
-It only has a meaningful keymap when you are in the middle of a
-selection process.
-To select a label, move the cursor to it and press RET.
-Press `?' for a summary of important key bindings.
-
-During a selection process, these are the local bindings.
-
-\\{reftex-select-label-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'reftex-select-bib-mode "reftex-sel" "\
-Major mode for selecting a citation key in a LaTeX document.
-This buffer was created with RefTeX.
-It only has a meaningful keymap when you are in the middle of a
-selection process.
-In order to select a citation, move the cursor to it and press RET.
-Press `?' for a summary of important key bindings.
-
-During a selection process, these are the local bindings.
-
-\\{reftex-select-label-mode-map}
-
-\(fn)" t nil)
-
-(autoload 'reftex-get-offset "reftex-sel" "\
-
-
-\(fn BUF HERE-AM-I &optional TYPEKEY TOC INDEX FILE)" nil nil)
-
-(autoload 'reftex-insert-docstruct "reftex-sel" "\
-
-
-\(fn BUF TOC LABELS INDEX-ENTRIES FILES CONTEXT COUNTER SHOW-COMMENTED HERE-I-AM XR-PREFIX TOC-BUFFER)" nil nil)
-
-(autoload 'reftex-find-start-point "reftex-sel" "\
-
-
-\(fn FALLBACK &rest LOCATIONS)" nil nil)
-
-(autoload 'reftex-select-item "reftex-sel" "\
-
-
-\(fn REFTEX-SELECT-PROMPT HELP-STRING KEYMAP &optional OFFSET CALL-BACK CB-FLAG)" nil nil)
-
-;;;***
-\f
-;;;### (autoloads nil "reftex-toc" "reftex-toc.el" "af8f426ef3a0607322ca4c9742e177a8")
-;;; Generated autoloads from reftex-toc.el
-
-(autoload 'reftex-toc "reftex-toc" "\
-Show the table of contents for the current document.
-When called with a raw C-u prefix, rescan the document first.
-
-\(fn &optional REBUILD REUSE)" t nil)
-
-(autoload 'reftex-toc-recenter "reftex-toc" "\
-Display the TOC window and highlight line corresponding to current position.
-
-\(fn &optional ARG)" t nil)
-
-(autoload 'reftex-toggle-auto-toc-recenter "reftex-toc" "\
-Toggle the automatic recentering of the TOC window.
-When active, leaving point idle will make the TOC window jump to the correct
-section.
-
-\(fn)" t nil)
-
-;;;***
-\f
-;;; End of automatically extracted autoloads.
-
 (provide 'reftex)
 
 ;;; reftex.el ends here
index 717651df544860347d867eca7b04174a32373e92..d3be880b3822c5ef83228f8f360e8aead20a382b 100644 (file)
@@ -269,7 +269,8 @@ A prefix arg makes KEEP-TIME non-nil."
        (error "Opening input file: No such file or directory, %s" url))
     (with-current-buffer buffer
       (setq handle (mm-dissect-buffer t)))
-    (mm-save-part-to-file handle newname)
+    (let ((mm-attachment-file-modes (default-file-modes)))
+      (mm-save-part-to-file handle newname))
     (kill-buffer buffer)
     (mm-destroy-parts handle)))
 (put 'copy-file 'url-file-handlers 'url-copy-file)
index c79e7645d926995964949109976deddf9dbcbf63..222dbc64d68e64a20b7d36c1e8c1e00f5003ae16 100644 (file)
@@ -26,6 +26,7 @@
 ;;; Code:
 
 (require 'cl-lib)
+(require 'puny)
 (eval-when-compile
   (require 'subr-x))
 
@@ -307,8 +308,9 @@ request.")
                      (url-scheme-get-property
                       (url-type url-http-target-url) 'default-port))
                  (format
-                  "Host: %s:%d\r\n" host (url-port url-http-target-url))
-               (format "Host: %s\r\n" host))
+                  "Host: %s:%d\r\n" (puny-encode-domain host)
+                  (url-port url-http-target-url))
+               (format "Host: %s\r\n" (puny-encode-domain host)))
              ;; Who its from
              (if url-personal-mail-address
                  (concat
@@ -1195,17 +1197,20 @@ the end of the document."
   "Retrieve URL via HTTP asynchronously.
 URL must be a parsed URL.  See `url-generic-parse-url' for details.
 
-When retrieval is completed, execute the function CALLBACK, passing it
-an updated value of CBARGS as arguments.  The first element in CBARGS
-should be a plist describing what has happened so far during the
-request, as described in the docstring of `url-retrieve' (if in
-doubt, specify nil).
+When retrieval is completed, execute the function CALLBACK,
+passing it an updated value of CBARGS as arguments.  The first
+element in CBARGS should be a plist describing what has happened
+so far during the request, as described in the docstring of
+`url-retrieve' (if in doubt, specify nil).  The current buffer
+then CALLBACK is executed is the retrieval buffer.
 
 Optional arg RETRY-BUFFER, if non-nil, specifies the buffer of a
 previous `url-http' call, which is being re-attempted.
 
 Optional arg GATEWAY-METHOD specifies the gateway to be used,
-overriding the value of `url-gateway-method'."
+overriding the value of `url-gateway-method'.
+
+The return value of this function is the retrieval buffer."
   (cl-check-type url vector "Need a pre-parsed URL.")
   (let* ((host (url-host (or url-using-proxy url)))
         (port (url-port (or url-using-proxy url)))
index 1ae2213eee65b0280ba38869ba4af5287762b6a8..af18acd8b6a2f874100280354f4377461436921f 100644 (file)
@@ -468,7 +468,7 @@ should return it unchanged."
     (and host
         (not (string-match "\\`\\[.*\\]\\'" host))
         (setf (url-host obj)
-              (url-hexify-string host url-host-allowed-chars)))
+               (decode-coding-string (url-host obj) 'utf-8)))
 
     (if path
        (setq path (url-hexify-string path url-path-allowed-chars)))
index cc863f3d21f138a24d9fc171f4769660a838e8bd..94af056ea624a296b9eacd5538f4b5add1c5b9bf 100644 (file)
@@ -44,6 +44,7 @@ RANLIB=@RANLIB@
 AR = @AR@
 ARFLAGS = @ARFLAGS@
 MKDIR_P = @MKDIR_P@
+EXEEXT = @EXEEXT@
 
 LUCID_OBJS = lwlib-Xlw.o xlwmenu.o lwlib-Xaw.o
 MOTIF_OBJS = lwlib-Xm.o
@@ -128,15 +129,17 @@ distclean: clean
 bootstrap-clean maintainer-clean: distclean
        rm -f TAGS
 
+ETAGS = ../lib-src/etags${EXEEXT}
 
-ETAGS = ../lib-src/etags
+${ETAGS}: FORCE
+       ${MAKE} -C ../lib-src $(notdir $@)
 
-ctagsfiles= $(srcdir)/*.[ch]
+ctagsfiles= $(wildcard ${srcdir}/*.[ch])
 
-TAGS: $(ctagsfiles)
-       "$(ETAGS)" $(ctagsfiles)
+FORCE:
+.PHONY: tags FORCE
 tags: TAGS
-.PHONY: tags
-
+TAGS: ${ETAGS} $(ctagsfiles)
+       ${ETAGS} $(ctagsfiles)
 
 ### Makefile.in ends here
index bb37e32aa3cae3becf55ab00208c97ec7fca9263..c7103ed52f505ac77e5c54a229dedee39eae3ffe 100644 (file)
@@ -1,5 +1,5 @@
 # 00gnulib.m4 serial 3
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2015 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.
index 7ffc38d7a2b98c2d87e330d3d333414d366406ec..bc19dfc3010071ff39ef3cfe4922450611b13ff9 100644 (file)
@@ -1,5 +1,5 @@
 # absolute-header.m4 serial 16
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2015 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.
index 0f963374dcbb372c65ffb8aaf76b85552671efcc..75fc9ce4c03d95c30a3ec2e404b4c945a2a8fc69 100644 (file)
--- a/m4/acl.m4
+++ b/m4/acl.m4
@@ -1,7 +1,7 @@
 # acl.m4 - check for access control list (ACL) primitives
 # serial 21
 
-# Copyright (C) 2002, 2004-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2004-2015 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.
index 2382ff1eeeaf60a25374540f2b1c52aaee666dae..8408bed2882a3eff189abc3c823f72b1076088cd 100644 (file)
@@ -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-2015 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,
index 27f0fd69d2043797533d53fe4709fb974c13cde6..ec5d46cde2eddaa31dbd9944e4f6fb10b943cca4 100644 (file)
@@ -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-2015 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.
index ed04e2ca86d083b925b6eedf4b3c172bd0c46b39..b5d8ca0129ac2092956d0e108ce1c47f9ba006fa 100644 (file)
@@ -1,6 +1,6 @@
 # c-strtod.m4 serial 15
 
-# Copyright (C) 2004-2006, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2004-2006, 2009-2015 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.
index bb20344e8faf75983138ec37067b55e1fae57a1d..a903e582ea85e6634a3b79349cf153ae2fbbd802 100644 (file)
@@ -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-2015 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.
index ddda027ecb68ed861f56992f43820abb1cb2fa8e..a7a2efeeba481cb0c6d9990c527dcd988071e13e 100644 (file)
@@ -1,5 +1,5 @@
 #serial 4
-dnl Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2007, 2009-2015 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.
index 8db3bf1c84e1d412c0a3c43bed28ecd1efa614c0..e450e13645a533ff752a14c3e2371d41c766e5b2 100644 (file)
@@ -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-2015 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.
index 1b815cebc9742eae7bba97b58828b54e285c978b..abd1e50a236c5cc8331ddff12197f212920eb540 100644 (file)
@@ -1,5 +1,5 @@
 # count-trailing-zeros.m4
-dnl Copyright (C) 2013-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2013-2015 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.
index 68836a4066b91a6b041dda5c13cba958ed271507..7abd1d05e1966d1bd27b18ffed78cbe87a50939a 100644 (file)
@@ -1,5 +1,5 @@
 # dirent_h.m4 serial 16
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2015 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.
index e9532e60a999961ccc897bdd4cf265eef01b3ba6..ce56cff6912a80d594f97835641647bb6aef8813 100644 (file)
@@ -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-2015 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.
index 63d6d8eb6e29c7f2374a19f12ab74a52e90f94a4..59028e0982cc2990cabf2e71d565906b4337d7f4 100644 (file)
@@ -1,5 +1,5 @@
 #serial 24
-dnl Copyright (C) 2002, 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005, 2007, 2009-2015 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.
index 9a0ea7e2144b2451140b2e98870dfa8231a2a2ac..4dbf9473e149ec1afdacb416f376f86c8144d63d 100644 (file)
@@ -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-2015 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.
index b111fce0532d183187e1ec66f562ed569a2a7dcb..cfaa687615348895e0c4c38a7c7dfb662b2073ef 100644 (file)
@@ -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-2015 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.
index 9913f84123ac70355e6c1f55e2fc19dcfce87a40..e23e9c311345ad75721bc2124b3bb5bad4fe043e 100644 (file)
@@ -1,5 +1,5 @@
 # euidaccess.m4 serial 15
-dnl Copyright (C) 2002-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2015 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.
index 2f13a1f3519f0474fd15f05ae9e2ab409d1befef..2db49222d7d4e564691d0a6cb65c77b195451322 100644 (file)
@@ -1,6 +1,6 @@
 # Check for GNU-style execinfo.h.
 
-dnl Copyright 2012-2016 Free Software Foundation, Inc.
+dnl Copyright 2012-2015 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.
index 6d378ec41c182424adedae2e50458756e06715e4..35bc49c97bffdf361a23de1f3bb1da243d9d5038 100644 (file)
@@ -1,7 +1,7 @@
 # serial 13  -*- Autoconf -*-
 # Enable extensions on systems that normally disable them.
 
-# Copyright (C) 2003, 2006-2016 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006-2015 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.
index fe282a56ca6a873f9084453bec5271b37eb4c980..72800650e6f23e481623892512083d6f5071b06a 100644 (file)
@@ -1,6 +1,6 @@
 dnl 'extern inline' a la ISO C99.
 
-dnl Copyright 2012-2016 Free Software Foundation, Inc.
+dnl Copyright 2012-2015 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.
index dafce87b5d34e0e7431d4894a3a7413a94c40652..941cb02d12bb7440e025da4591911237edce5d22 100644 (file)
@@ -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-2015 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.
index 0037e5fb650cd6b39498a548df7978ba8880a0ff..76dd86711b224814c592fb73ce8a04ef8484aaaf 100644 (file)
@@ -1,5 +1,5 @@
 # fcntl.m4 serial 8
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2015 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.
index ef0d78dde1c80500009d42fa2ecf59faf13273a9..b279162a17ce5c28901aeca6c33a6b9b98252a39 100644 (file)
@@ -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-2015 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.
index 5a32e744ba68429ad71950811f5505a03d1dca24..35b09a849b6cdacecf83e3b78807110533b01ca7 100644 (file)
@@ -1,5 +1,5 @@
 # fdatasync.m4 serial 4
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2015 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.
index cadbee3ca97d3d8d8898401020de660392ef4a11..317eac94e42589fd24cb2bca2ab09589a8de427d 100644 (file)
@@ -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-2015 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.
index 839fcc17ebeacf1fb3f7d51eabd8ba3992b9b025..e2a195c04ef640c83cef842aaeb126893ef84913 100644 (file)
@@ -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-2015 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.
index a446156df2f3a5e72d34b84d62942515ce4a4501..4781db123794dbb112366afdc50f5b110394eb26 100644 (file)
@@ -1,6 +1,6 @@
 # serial 21
 
-# Copyright (C) 2000-2001, 2004-2016 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2004-2015 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.
index 84177f02cf06be6c554abe9f9cc0224f16bbc183..e5f9f90061f5a497806427388d8e3bacfef37217 100644 (file)
@@ -1,5 +1,5 @@
 # fstatat.m4 serial 3
-dnl Copyright (C) 2004-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2004-2015 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.
index 405d43d6d792bf7a2c9f0c1b5790188d233f0539..bc2b0935212006ba690d7fa66aedd23c427dbf66 100644 (file)
@@ -1,5 +1,5 @@
 # fsync.m4 serial 2
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2015 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.
index 1bf4db043e6e241c538e78f7d5e68da80c209316..25e9968947d0cf3703f60a4b86e67151c2846f1d 100644 (file)
@@ -1,5 +1,5 @@
 # getdtablesize.m4 serial 6
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2015 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.
index 4b1573d8657a3263d97b002f55463041820783c2..16e72c7bf3cdb6fb16d6c5b3de57451a54605617 100644 (file)
@@ -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-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index 76547d18c2e467a61a9d04a8a46a84071945a092..1234ba9fe2bcb02681b23d37dc3702698040057e 100644 (file)
@@ -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-2015 Free Software
 # Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
index ce6ec67b914657235319e7ab1c95b479ac027e7a..e76e501fdd6d6a459199eba4fcb5a17199129e60 100644 (file)
@@ -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-2015 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.
index 9843ed48557ff8b8655625eb59e4c02bce5148a9..cd499ff5d79c956445886e58d018d0f731c6fa83 100644 (file)
@@ -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-2015 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.
index 4ae5d63fe3e6e4c77f7299caa1a0fec9fc2fb695..ce246e18bc2b7d452c19d56818f4527abd7f07f1 100644 (file)
@@ -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-2015 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.
index f8454c8a0149ddcf1b74c5d8877bfb6c32aadf46..50ef974205f0625bd5a43479e56dda60c176e981 100644 (file)
@@ -1,5 +1,5 @@
 # gnulib-common.m4 serial 36
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2015 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.
index 27ca70a0d09ca4567010ae3a2b3916f4f0afd734..349c0dce4e2afc9a08908f9b7fb415a482af55cd 100644 (file)
@@ -1,5 +1,5 @@
 # DO NOT EDIT! GENERATED AUTOMATICALLY!
-# Copyright (C) 2002-2016 Free Software Foundation, Inc.
+# Copyright (C) 2002-2015 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
@@ -91,7 +91,6 @@ AC_DEFUN([gl_EARLY],
   # Code from module gettimeofday:
   # Code from module gitlog-to-changelog:
   # Code from module group-member:
-  # Code from module ignore-value:
   # Code from module include_next:
   # Code from module intprops:
   # Code from module inttypes-incomplete:
@@ -906,7 +905,6 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/gettimeofday.c
   lib/gl_openssl.h
   lib/group-member.c
-  lib/ignore-value.h
   lib/intprops.h
   lib/inttypes.in.h
   lib/lstat.c
index 0d2ee444b4fbfb890176b9a69c397b628fe71f16..fede1fc3bd1f08ab8e174ca8ce139e8f1f536219 100644 (file)
@@ -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-2015 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.
index 9e7e3e1444125ee141ff0a7cc954a63b83d7b613..526a67a895b496a9aa0ffdd5bb5b40218c781d8d 100644 (file)
@@ -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-2015 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index db0f2c0795cfac3ec2c8b932d4e6dbccc3c0bb27..233d254e808ded18d19b5c6937bcea8fac95608c 100644 (file)
@@ -1,5 +1,5 @@
 # include_next.m4 serial 23
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2015 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.
index 61cdb1a8483ef2adb19e3b94b570d93c51b3ffdd..4209ffd150926f10e6d5b5541f20f4002fd20dc6 100644 (file)
@@ -1,5 +1,5 @@
 # inttypes.m4 serial 26
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2015 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.
index 8bbdfaac1dbf8b7bda345d7c72149fece4a61107..b7a6c48b68020f876a2fbaee3ecf2197421dc8c2 100644 (file)
@@ -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-2015 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.
index 36d8b12421266e7fe5d4d34f52fddf272712b11b..d57bc700d4f5c5bacbc6bda57798073913c93c9e 100644 (file)
@@ -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-2015 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.
index e143d5c8b588137433eb7350221d1210e1697fc3..adf752c0dfa188fdb25551778aca1aee54d154a6 100644 (file)
@@ -1,6 +1,6 @@
 # serial 27
 
-# Copyright (C) 1997-2001, 2003-2016 Free Software Foundation, Inc.
+# Copyright (C) 1997-2001, 2003-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index 12d68da6f386d4825f1106c15763919c43ad0068..b4e38d94463183d8626dd59d74506c138c027cff 100644 (file)
@@ -1,5 +1,5 @@
 # manywarnings.m4 serial 7
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2015 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.
index f81f42a19ceb43032a4c20f793a7fc3e00a68b1a..0bb9036e6c1bb92443fe0375702a9a925cf22ed5 100644 (file)
--- 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-2015 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.
index 6e7df5c6d546e023374f72cd3e05dd866071ec23..f3f74b82cc077b255c911a200bf586370e730ae5 100644 (file)
@@ -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-2015 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,
index 1f44a0390aaa493913a19fbf2e2d5718a171baa9..cc1b65c40a3ac74713ed7d942e639211a2bbf693 100644 (file)
@@ -1,5 +1,5 @@
 # mkostemp.m4 serial 2
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2015 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.
index 78f16ba66ae9096b871801872907cea3522dc89a..3f0e1eee44082fab2bf9eeeb2066a18012d55159 100644 (file)
@@ -1,5 +1,5 @@
 # serial 25
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2016 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2015 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,
index 43b5d057508bd0c498eb21f92ac8504f32840f45..fc575c1d43739153c89d05f32ec69eeaa32bf485 100644 (file)
@@ -1,5 +1,5 @@
 # multiarch.m4 serial 7
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2015 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.
index ecc55c6172deef5b57612e45d57314c8edee38f7..56283180f04f2bc15b59e681870917c5403aa3d1 100644 (file)
@@ -1,5 +1,5 @@
 # nocrash.m4 serial 4
-dnl Copyright (C) 2005, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2009-2015 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.
index 282751b47b430203446acfca657bb4d422218749..0eb14678be143389a8934a205958684deb5e0769 100644 (file)
@@ -1,5 +1,5 @@
 # off_t.m4 serial 1
-dnl Copyright (C) 2012-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2015 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.
index 6f8e59a1a248c8e7154226fe8490ccbadcb22088..0e3db7a237bd5d55aae50f4030dd958d130a5e0a 100644 (file)
@@ -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-2015 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,
index c09fceebb86765736e19045d0a8bb2873f1a12ff..0b64651a57727b777b37c914077674d00c083458 100644 (file)
@@ -1,5 +1,5 @@
 # pipe2.m4 serial 2
-dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2015 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.
index 2c620de41370b93f7069c15ae92ead688b61a2d3..df007058b6fbef918f47821aadc7e1e9ad8a4da1 100644 (file)
@@ -1,5 +1,5 @@
 # pselect.m4 serial 2
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2015 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.
index 5b3e1cad327deb4d044ac94e485cf958dcddaa6d..25988566461fa14bbe64b59d2916b4d2ab75ca6e 100644 (file)
@@ -1,5 +1,5 @@
 # pthread_sigmask.m4 serial 16
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2015 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.
index c3c30d845680a184fb6aec9dba40925b3a8fd4b8..73a5f4691c27ce4ffc1d19939feff6845c42558a 100644 (file)
@@ -1,5 +1,5 @@
 # putenv.m4 serial 20
-dnl Copyright (C) 2002-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2015 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.
index ede0378b48107d230718ea031500ae75a25c7845..88c9bfef7170470176328bc961d78adc58a23871 100644 (file)
@@ -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-2015 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.
index 428b183b0862d2e7bb4492d6a2f44379380ba96e..3477602a14faedb08a6f7a89627eefd955294773 100644 (file)
@@ -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-2015 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.
index 00194c8497fa30556378bcfa1117e68c4fa82b4d..6afe89fda57ba4329b0d21b7f4ad38f1e3477d07 100644 (file)
@@ -1,5 +1,5 @@
 # Look up an environment variable more securely.
-dnl Copyright 2013-2016 Free Software Foundation, Inc.
+dnl Copyright 2013-2015 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.
index fbcb788e267cf3140e91f1adce9a0d8a48b11a42..9d6aa0ce8c89ab8dac1bf3378950c102e2cdd6d4 100644 (file)
@@ -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-2015 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.
index 91f63b75c9195617c96c2398e8e38f45bdb1e9d2..a12cd7e3d1cd15e51ec8c599e20571345d49e9ad 100644 (file)
@@ -1,5 +1,5 @@
 # sha256.m4 serial 8
-dnl Copyright (C) 2005, 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2008-2015 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.
index 3247e0a80d39fd7c7e687de741750f0c0e4ce53a..77c76a8f7db8b5688258b7b74e54854d95b2b831 100644 (file)
@@ -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-2015 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.
index 83acddd80a1be838e5b388c1832b08e9400ba61e..71cfa4b2bfaaaf7411c348072312bc1ed8137918 100644 (file)
@@ -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-2015 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.
index bcfd7b4be30495b440d86683136034ffd83b7af6..f737c36ba829143f2b91bc594162bba1dd5d0ac3 100644 (file)
@@ -1,5 +1,5 @@
 # signal_h.m4 serial 18
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2015 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.
index 634c43a35c1a5b34ee461541d394ac1532420b6a..bcabed3ef0f9c35acee35c2cfe9a156fbf87cf72 100644 (file)
@@ -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-2015 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.
index 3e7b9e6e024036b08a8f1c74e5c71ef755aeb579..25bd45143438219b005f5643c6ba793d58660708 100644 (file)
@@ -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-2015 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.
index 1cfe68e406597597e3864e673c4495f6cc4e2af4..6543bf625b556eaeb1ea2f4dd46ac253149edf61 100644 (file)
@@ -1,6 +1,6 @@
 # serial 6
 
-# Copyright (C) 1998-1999, 2001, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 1998-1999, 2001, 2009-2015 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.
index 231cb74038389864b628049373c2a8e5b786c11e..9c8ceec189396c37c2ff42e156586e7d4df4dfb5 100644 (file)
@@ -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-2015 Free Software
 # Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
index a794975de9c3334b242404ac9ac7a5eca098e50c..d1b37689632086289af0be2f13ad5384472dc365 100644 (file)
@@ -1,6 +1,6 @@
 # serial 11
 
-# Copyright (C) 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2009-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index 49980cd636e289b858d809c5498bf23c9bee0e54..033b0d39e4ad60c257613ebc116835b77aa5d7c1 100644 (file)
@@ -1,6 +1,6 @@
 # Check for stdalign.h that conforms to C11.
 
-dnl Copyright 2011-2016 Free Software Foundation, Inc.
+dnl Copyright 2011-2015 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.
index c045c65f9f845682c0f6f02a6f277cb5c986f7be..231050274adec7b2ec70e76775c3739b3166d0bf 100644 (file)
@@ -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-2015 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.
index 0f40ce803b7becf7f718f19cf54b6733e24bc623..4011a4942a1abe3dc7ff22642e709b32443f13e1 100644 (file)
@@ -1,5 +1,5 @@
 # stdint.m4 serial 43
-dnl Copyright (C) 2001-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2015 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.
index 0e387585d27fd9080da7380c91570c8cb7de6c55..f60cc2156e00cccbbc135fd4cc3e1d4b63be3fba 100644 (file)
@@ -1,5 +1,5 @@
 # stdio_h.m4 serial 46
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2015 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.
index 19107c4199631631d193f34b5d69eff5548360a6..0b4c623ec714087a76c62302080e87b7a30a4c79 100644 (file)
@@ -1,5 +1,5 @@
 # stdlib_h.m4 serial 42
-dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2015 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.
index 70bbfd87621655f6b82cdcf3b40c4214297a9d8a..7e28beeeeef7ccdd1ab629dfbc2f948a1e215dfc 100644 (file)
@@ -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-2015 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.
index 9598e7272eeddc65e51ca17fa64aaa0cb3f23900..4557626ae08ab8130ec420f7633eedff303160bc 100644 (file)
@@ -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-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index 0c5ec6f9a09e3b5028e9c5a06f4f3641a4e27f5a..55d09ef407800fd5c591aeec58e7494673f983c5 100644 (file)
@@ -1,6 +1,6 @@
 # Configure a GNU-like replacement for <string.h>.
 
-# Copyright (C) 2007-2016 Free Software Foundation, Inc.
+# Copyright (C) 2007-2015 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.
index 9d920ab27cbc41a634fe67c9be0b75a7ade018fd..fde732aa90af2200c737203bb8e2f7047d90e4c2 100644 (file)
@@ -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-2015 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.
index 3ad665eaca3c602b909f79b7f43c093f91faacf7..666f44a6ba25f1ae99d6a2f58d264ca051cd3a89 100644 (file)
@@ -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-2015 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.
index 78a67c71f6bfe3c4af17e5ff951317d588aa1590..4267bd72569737c69e0840f31a00d1e6849bcc76 100644 (file)
@@ -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-2015 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.
index 1a5ee4bde75fe3f9df17164b0334ebb95f36c072..5312ef4d5180604e49108fdcc194d7a8c5a87ca1 100644 (file)
@@ -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-2015 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.
index d15d915b08b282b1c96fcb53867d35ae1f4a321e..a59e2f0dd72dc3e42cdfcfd24c197cb6e7ef723e 100644 (file)
@@ -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-2015 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.
index 23526e5f56872a21113406cf03c233a5fc69906f..5ec5919f25d4bf61cb487d2e88566a7a16ea8e1a 100644 (file)
@@ -1,5 +1,5 @@
 # sys_select_h.m4 serial 20
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2015 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.
index ae500c76053040a3985d5d835fd54299264aff0a..eaeabe7d966ea969fceed76f2a3afbcb2dca091f 100644 (file)
@@ -1,5 +1,5 @@
 # sys_socket_h.m4 serial 23
-dnl Copyright (C) 2005-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2015 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.
index 3d43b6f5ef24c48e6646026c63c2f69e0fb95471..6c909e816a7444f62d8ce81c8da9bff886f27018 100644 (file)
@@ -1,5 +1,5 @@
 # sys_stat_h.m4 serial 28   -*- Autoconf -*-
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2015 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.
index 3061a9c185f9f919822d462d8de214cc3a051703..28c8b1acbbaca7341f0de92fec1c26d0b90cdbdd 100644 (file)
@@ -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-2015 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.
index b0aabb4786228ca39fa7685398442264c4434ccf..2232aece63ec0f4d42469f3885ea211f8ff9d51b 100644 (file)
@@ -1,5 +1,5 @@
 # sys_types_h.m4 serial 5
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2015 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.
index acf4c8d07c0a4c93d625147bcf6718bff740b32f..b1694d68475dadf8aff0e9950d0282759278dd10 100644 (file)
@@ -1,6 +1,6 @@
 #serial 5
 
-# Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2006-2007, 2009-2015 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.
index eb2a631e2cebcb3ef5c276088ef701c1ab149e80..754b469a0d9c2b7cc20e7f19cc330491720d8dbb 100644 (file)
@@ -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-2015 Free Software Foundation, Inc.
 
 # serial 9
 
index 21b4a2cc18e4e1e6e93b1660ca4835e9aa3842a9..8df7e139cf2efa043b12f8726cf7dbb65375917e 100644 (file)
@@ -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-2015 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.
index 9b1db1b24b6d3fd1f81acf12dfbbd4cd11f64a00..0c1f2c3736c37a949ad2212b312ce3ed0eb5c6a1 100644 (file)
@@ -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 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.
index 752aa43d7ea2ade5b165f801d7248a694737bb97..8e68b99baa259c756a5db07c12281219681dabf9 100644 (file)
@@ -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-2015 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.
index 114f92a9d93240ec30920eb40026b6d13b09a93d..962bbd2bdf03528883b80c911705e8be3c5630d6 100644 (file)
@@ -1,5 +1,5 @@
 # timer_time.m4 serial 3
-dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2015 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.
index 248251812459b77f76443db2fe108a089585a4e9..06b3533e42f653087b0795efc7e364f997b0765d 100644 (file)
@@ -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-2015 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index ce0671fd1f2188491089404a0cf07d08bba7f892..71a88f92f49d876f9e102f1106f43bff33446211 100644 (file)
@@ -1,5 +1,5 @@
 # tm_gmtoff.m4 serial 3
-dnl Copyright (C) 2002, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2009-2015 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.
index 544dadb4122ff3c21f005b786b85b51f1f51ca4e..b3c581f7b25e6efc72480e758356f2c39b02e2c1 100644 (file)
@@ -1,5 +1,5 @@
 # unistd_h.m4 serial 68
-dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2015 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.
index d2473bf66deabed38b0d22ab9fe10dd22a551b0d..7c33ae9492398cca1ea046f22563d72b35b3710a 100644 (file)
@@ -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-2015 Free Software Foundation,
 # Inc.
 #
 # This file is free software; the Free Software Foundation
index 211b1fc39dc0f67acaa7eed8466b1ebeb50fb714..b022cfdc8576314e8d0502d76503f9e34ab998e6 100644 (file)
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2003-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2015 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.
index a016723e24ae713ff27ce2bc8ef28620c6099ccd..e26a576b82052a8076804d9fa289c910b73e0b1e 100644 (file)
@@ -1,7 +1,7 @@
 # Detect some bugs in glibc's implementation of utimes.
 # serial 3
 
-dnl Copyright (C) 2003-2005, 2009-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2005, 2009-2015 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.
index 93fd66e61a6b82aab54ca8143978e41bbe0e5b0b..6e09c7b03989fc3f5f19a6ebc4dfba2da58ed520 100644 (file)
@@ -4,7 +4,7 @@
 
 # From Paul Eggert
 
-# Copyright (C) 2001, 2009-2016 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2009-2015 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.
index 924e21d5e876ded7f5830745239cf4b52a88475e..5ae01def133fb451019e908a8056aff7b4988e7e 100644 (file)
@@ -1,5 +1,5 @@
 # warnings.m4 serial 11
-dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2015 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.
index 2db8c3f2f629af7fdb27b85efa469cea7d9cb516..dc964e67e261d0166afb14b4dcb45872d6b114fd 100644 (file)
@@ -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-2015 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.
index 17873562714998960ec8a0fac313d38a5b5f6a4e..6079aab26043da6142648048345ddd4344a3c3a7 100644 (file)
@@ -66,7 +66,7 @@
 /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/
 /^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION ""/
 /^#undef PENDING_OUTPUT_COUNT/s/^.*$/#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)/
-/^#undef VERSION/s/^.*$/#define VERSION "25.0.50"/
+/^#undef VERSION/s/^.*$/#define VERSION "25.1.50"/
 /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/
 /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/
 /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/
index 2b528aa4bdf3e8586ae84e4abee2b7cb1e02b52d..28060febadd6f2ff0a918ddff29b56eec241333a 100644 (file)
@@ -225,9 +225,18 @@ extraclean: maintainer-clean
 check:
        @echo "We don't have any tests for the nt/ directory yet."
 
+ETAGS = ../lib-src/etags${EXEEXT}
+
+${ETAGS}: FORCE
+       ${MAKE} -C ../lib-src $(notdir $@)
+
+tagsfiles= $(wildcard ${srcdir}/*.[ch])
+
+FORCE:
+.PHONY: tags FORCE
 tags: TAGS
-TAGS: ${EXE_FILES:${EXEEXT}=.c}
-       ../lib-src/etags *.[ch]
+TAGS: ${ETAGS} ${tagsfiles}
+       ${ETAGS} ${tagsfiles}
 
 ## Build the programs
 addpm${EXEEXT}: ${srcdir}/addpm.c ../src/epaths.h
index 6be115a4aba419d2d21d17fa741fc515b1c72598..a695e731578808a9f7500e8fc05c576818bdf04c 100644 (file)
@@ -58,12 +58,12 @@ CC=@CC@
 CFLAGS=@CFLAGS@
 CPPFLAGS = @CPPFLAGS@
 
-TAGS = etags
 RM = rm -f
 RANLIB = @RANLIB@
 AR = @AR@
 ARFLAGS = @ARFLAGS@
 MKDIR_P = @MKDIR_P@
+EXEEXT = @EXEEXT@
 
 OBJS =  Activate.o \
        AddPane.o \
@@ -152,8 +152,17 @@ clean mostlyclean:
 bootstrap-clean maintainer-clean distclean: clean
        rm -f Makefile
 
-.PHONY: tags
-tags:
-       $(TAGS) -t *.[ch]
+ETAGS = ../lib-src/etags${EXEEXT}
+
+${ETAGS}: FORCE
+       ${MAKE} -C ../lib-src $(notdir $@)
+
+tagsfiles = $(wildcard ${srcdir}/*.[ch])
+
+FORCE:
+.PHONY: tags FORCE
+tags: TAGS
+TAGS: ${ETAGS} ${tagsfiles}
+       ${ETAGS} ${tagsfiles}
 
 ### Makefile.in ends here
index 74c0e4eeda5953e9f6577cc72a003de76a43de13..defce62c52959bb6bd44eed7b9899052c5048fc5 100644 (file)
@@ -160,12 +160,13 @@ SETTINGS_LIBS = @SETTINGS_LIBS@
 ## gtkutil.o if USE_GTK, else empty.
 GTK_OBJ=@GTK_OBJ@
 
-## gfilenotify.o if HAVE_GFILENOTIFY.
 ## inotify.o if HAVE_INOTIFY.
+## kqueue.o if HAVE_KQUEUE.
+## gfilenotify.o if HAVE_GFILENOTIFY.
 ## w32notify.o if HAVE_W32NOTIFY.
 NOTIFY_OBJ = @NOTIFY_OBJ@
-GFILENOTIFY_CFLAGS = @GFILENOTIFY_CFLAGS@
-GFILENOTIFY_LIBS = @GFILENOTIFY_LIBS@
+NOTIFY_CFLAGS = @NOTIFY_CFLAGS@
+NOTIFY_LIBS = @NOTIFY_LIBS@
 
 ## -ltermcap, or -lncurses, or -lcurses, or "".
 LIBS_TERMCAP=@LIBS_TERMCAP@
@@ -360,7 +361,7 @@ ALL_CFLAGS=-Demacs $(MYCPPFLAGS) -I. -I$(srcdir) \
   $(XRANDR_CFLAGS) $(XINERAMA_CFLAGS) $(XFIXES_CFLAGS) \
   $(SETTINGS_CFLAGS) $(FREETYPE_CFLAGS) $(FONTCONFIG_CFLAGS) \
   $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) \
-  $(LIBGNUTLS_CFLAGS) $(GFILENOTIFY_CFLAGS) $(CAIRO_CFLAGS) \
+  $(LIBGNUTLS_CFLAGS) $(NOTIFY_CFLAGS) $(CAIRO_CFLAGS) \
   $(WARN_CFLAGS) $(WERROR_CFLAGS) $(CFLAGS)
 ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
 
@@ -473,7 +474,7 @@ LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \
    $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) $(SETTINGS_LIBS) $(LIBSELINUX_LIBS) \
    $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \
    $(LIBGNUTLS_LIBS) $(LIB_PTHREAD) \
-   $(GFILENOTIFY_LIBS) $(LIB_MATH) $(LIBZ) $(LIBMODULES)
+   $(NOTIFY_LIBS) $(LIB_MATH) $(LIBZ) $(LIBMODULES)
 
 $(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT)
        $(MAKE) -C ../leim leim-list.el EMACS="$(bootstrap_exe)"
@@ -648,32 +649,34 @@ extraclean: distclean
        -rm -f *~ \#*
 
 
-ETAGS = ../lib-src/etags
+ETAGS = ../lib-src/etags${EXEEXT}
+
+${ETAGS}: FORCE
+       ${MAKE} -C ../lib-src $(notdir $@)
 
-ctagsfiles1 = [xyzXYZ]*.[hc]
-ctagsfiles2 = [a-wA-W]*.[hc]
-ctagsfiles3 = [a-zA-Z]*.m
+ctagsfiles1 = $(wildcard ${srcdir}/*.[hc])
+ctagsfiles2 = $(wildcard ${srcdir}/*.m)
 
 ## FIXME? In out-of-tree builds, should TAGS be generated in srcdir?
 
 ## This does not need to depend on ../lisp and ../lwlib TAGS files,
 ## because etags "--include" only includes a pointer to the file,
 ## rather than the file contents.
-TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) $(srcdir)/$(ctagsfiles3)
-       "$(ETAGS)" --include=../lisp/TAGS --include=$(lwlibdir)/TAGS \
+TAGS: ${ETAGS} $(ctagsfiles1) $(ctagsfiles2)
+       ${ETAGS} --include=../lisp/TAGS --include=$(lwlibdir)/TAGS \
          --regex='{c}/[        ]*DEFVAR_[A-Z_  (]+"\([^"]+\)"/\1/' \
          --regex='{c}/[        ]*DEFVAR_[A-Z_  (]+"[^"]+",[    ]\([A-Za-z0-9_]+\)/\1/' \
-         $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) \
+         $(ctagsfiles1) \
          --regex='{objc}/[     ]*DEFVAR_[A-Z_  (]+"\([^"]+\)"/\1/' \
          --regex='{objc}/[     ]*DEFVAR_[A-Z_  (]+"[^"]+",[    ]\([A-Za-z0-9_]+\)/\1/' \
-         $(srcdir)/$(ctagsfiles3)
+         $(ctagsfiles2)
 
 ## Arrange to make tags tables for ../lisp and ../lwlib,
 ## which the above TAGS file for the C files includes by reference.
-../lisp/TAGS:
+../lisp/TAGS: FORCE
        $(MAKE) -C ../lisp TAGS ETAGS="$(ETAGS)"
 
-$(lwlibdir)/TAGS:
+$(lwlibdir)/TAGS: FORCE
        $(MAKE) -C $(lwlibdir) TAGS ETAGS="$(ETAGS)"
 
 tags: TAGS ../lisp/TAGS $(lwlibdir)/TAGS
index b1b2170a02823dd577d810880e4a0ec4eb96293d..aaf058e4a80e12a3b7bb68d6398a81243a920594 100644 (file)
@@ -370,17 +370,20 @@ terminate_due_to_signal (int sig, int backtrace_limit)
 {
   signal (sig, SIG_DFL);
 
-  /* If fatal error occurs in code below, avoid infinite recursion.  */
-  if (! fatal_error_in_progress)
+  if (attempt_orderly_shutdown_on_fatal_signal)
     {
-      fatal_error_in_progress = 1;
+      /* If fatal error occurs in code below, avoid infinite recursion.  */
+      if (! fatal_error_in_progress)
+        {
+          fatal_error_in_progress = 1;
 
-      totally_unblock_input ();
-      if (sig == SIGTERM || sig == SIGHUP || sig == SIGINT)
-        Fkill_emacs (make_number (sig));
+          totally_unblock_input ();
+          if (sig == SIGTERM || sig == SIGHUP || sig == SIGINT)
+            Fkill_emacs (make_number (sig));
 
-      shut_down_emacs (sig, Qnil);
-      emacs_backtrace (backtrace_limit);
+          shut_down_emacs (sig, Qnil);
+          emacs_backtrace (backtrace_limit);
+        }
     }
 
   /* Signal the same code; this time it will really be fatal.
@@ -1357,6 +1360,10 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
     tzset ();
 #endif /* MSDOS */
 
+#ifdef HAVE_KQUEUE
+  globals_of_kqueue ();
+#endif
+
 #ifdef HAVE_GFILENOTIFY
   globals_of_gfilenotify ();
 #endif
@@ -1532,14 +1539,18 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
 
       syms_of_gnutls ();
 
-#ifdef HAVE_GFILENOTIFY
-      syms_of_gfilenotify ();
-#endif /* HAVE_GFILENOTIFY */
-
 #ifdef HAVE_INOTIFY
       syms_of_inotify ();
 #endif /* HAVE_INOTIFY */
 
+#ifdef HAVE_KQUEUE
+      syms_of_kqueue ();
+#endif /* HAVE_KQUEUE */
+
+#ifdef HAVE_GFILENOTIFY
+      syms_of_gfilenotify ();
+#endif /* HAVE_GFILENOTIFY */
+
 #ifdef HAVE_DBUS
       syms_of_dbusbind ();
 #endif /* HAVE_DBUS */
index 6af9e7cde1f85378e603032a660abe7177be74e0..039493bcbea8b762cb4bafc24d05bce1b7830a57 100644 (file)
@@ -4036,7 +4036,13 @@ The value of :otf is a cons (GSUB . GPOS) where GSUB and GPOS are lists
 representing the OpenType features supported by the font by this form:
   ((SCRIPT (LANGSYS FEATURE ...) ...) ...)
 SCRIPT, LANGSYS, and FEATURE are all symbols representing OpenType
-Layout tags.  */)
+Layout tags.
+
+In addition to the keys listed abobe, the following keys are reserved
+for the specific meanings as below:
+
+The value of :combining-capability is non-nil if the font-backend of
+FONT supports rendering of combining characters for non-OTF fonts.  */)
   (Lisp_Object font, Lisp_Object key)
 {
   int idx;
@@ -4051,14 +4057,22 @@ Layout tags.  */)
   if (idx >= 0 && idx < FONT_EXTRA_INDEX)
     return AREF (font, idx);
   val = Fassq (key, AREF (font, FONT_EXTRA_INDEX));
-  if (NILP (val) && EQ (key, QCotf) && FONT_OBJECT_P (font))
+  if (NILP (val) && FONT_OBJECT_P (font))
     {
       struct font *fontp = XFONT_OBJECT (font);
 
-      if (fontp->driver->otf_capability)
-       val = fontp->driver->otf_capability (fontp);
-      else
-       val = Fcons (Qnil, Qnil);
+      if (EQ (key, QCotf))
+       {
+         if (fontp->driver->otf_capability)
+           val = fontp->driver->otf_capability (fontp);
+         else
+           val = Fcons (Qnil, Qnil);
+       }
+      else if (EQ (key, QCcombining_capability))
+       {
+         if (fontp->driver->combining_capability)
+           val = fontp->driver->combining_capability (fontp);
+       }
     }
   else
     val = Fcdr (val);
@@ -5290,6 +5304,7 @@ syms_of_font (void)
   DEFSYM (QCscalable, ":scalable");
   DEFSYM (QCavgwidth, ":avgwidth");
   DEFSYM (QCfont_entity, ":font-entity");
+  DEFSYM (QCcombining_capability, ":combining-capability");
 
   /* Symbols representing values of font spacing property.  */
   DEFSYM (Qc, "c");
index ba208e3c27da5ef81964ce3d9023d8ede7043227..36fe51ad319da34a5df17c2129587f568ac245d1 100644 (file)
@@ -757,6 +757,12 @@ struct font_driver
   bool (*cached_font_ok) (struct frame *f,
                           Lisp_Object font_object,
                           Lisp_Object entity);
+
+  /* Optional
+
+     Return non-nil if the driver support rendering of combining
+     characters for FONT according to Unicode combining class.  */
+  Lisp_Object (*combining_capability) (struct font *font);
 };
 
 
index 084a9b39d21b9eb5453d8d04a973819dc6261802..2bc9bb1fcd94420ce5984ad5d18e14f3279ece6c 100644 (file)
@@ -63,17 +63,26 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
    An element of a base fontset is a vector of FONT-DEFs which themselves
    are vectors of the form [ FONT-SPEC ENCODING REPERTORY ].
 
-   An element of a realized fontset is nil, t, 0, or a vector of this
-   form:
+   An element of a realized fontset is nil, t, 0, or a cons that has
+   this from:
 
-       [ PREFERRED-RFONT-DEF RFONT-DEF0 RFONT-DEF1 ... ]
+       (CHARSET-ORDERED-LIST-TICK . FONT-GROUP)
+
+   CHARSET_ORDERED_LIST_TICK is the same as charset_ordered_list_tick or -1.
+
+   FONT-GROUP is a vector of elements that have this form:
+
+       [ RFONT-DEF0 RFONT-DEF1 ... ]
 
    Each RFONT-DEFn (i.e. Realized FONT-DEF) has this form:
 
        [ FACE-ID FONT-DEF FONT-OBJECT SORTING-SCORE ]
 
-   RFONT-DEFn are automatically reordered by the current charset
-   priority list.
+   RFONT-DEFn are automatically reordered considering the current
+   charset priority list, the current language environment, and
+   priorities determined by font-backends.
+
+   RFONT-DEFn may not be a vector in the following cases.
 
    The value nil means that we have not yet generated the above vector
    from the base of the fontset.
@@ -83,7 +92,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
    The value 0 means that no font is available for the corresponding
    range of characters in this fontset, but may be available in the
-   default fontset.
+   fallback font-group or in the default fontset.
 
    A fontset has 8 extra slots.
 
@@ -407,6 +416,9 @@ reorder_font_vector (Lisp_Object font_group, struct font *font)
 
          if (! NILP (encoding))
            {
+             /* This spec specifies an encoding by a charset set
+                name.  Reflect the preference order of that charset
+                in the upper bits of SCORE.  */
              Lisp_Object tail;
 
              for (tail = Vcharset_ordered_list;
@@ -419,6 +431,10 @@ reorder_font_vector (Lisp_Object font_group, struct font *font)
            }
          else
            {
+             /* This spec does not specify an encoding.  If the spec
+                specifies a language, and the language is not for the
+                current language environment, make the score
+                larger.  */
              Lisp_Object lang = Ffont_get (font_spec, QClang);
 
              if (! NILP (lang)
@@ -442,11 +458,11 @@ reorder_font_vector (Lisp_Object font_group, struct font *font)
   XSETCAR (font_group, make_number (low_tick_bits));
 }
 
-/* Return a font-group (actually a cons (-1 . FONT-GROUP-VECTOR)) for
-   character C in FONTSET.  If C is -1, return a fallback font-group.
-   If C is not -1, the value may be Qt (FONTSET doesn't have a font
-   for C even in the fallback group), or 0 (a font for C may be found
-   only in the fallback group).  */
+/* Return a font-group (actually a cons (CHARSET_ORDERED_LIST_TICK
+   . FONT-GROUP)) for character C or a fallback font-group in the
+   realized fontset FONTSET.  The elements of FONT-GROUP are
+   RFONT-DEFs.  The value may not be a cons.  See the comment at the
+   head of this file for the detail of the return value.  */
 
 static Lisp_Object
 fontset_get_font_group (Lisp_Object fontset, int c)
@@ -461,23 +477,37 @@ fontset_get_font_group (Lisp_Object fontset, int c)
   else
     font_group = FONTSET_FALLBACK (fontset);
   if (! NILP (font_group))
+    /* We have already realized FONT-DEFs of this font group for C or
+       for fallback (FONT_GROUP is a cons), or we have already found
+       that no appropriate font was found (FONT_GROUP is t or 0).  */
     return font_group;
   base_fontset = FONTSET_BASE (fontset);
   if (NILP (base_fontset))
+    /* Actually we never come here because FONTSET is a realized one,
+       and thus it should have a base.  */
     font_group = Qnil;
   else if (c >= 0)
     font_group = char_table_ref_and_range (base_fontset, c, &from, &to);
   else
     font_group = FONTSET_FALLBACK (base_fontset);
+
+  /* FONT_GROUP not being a vector means that no fonts are specified
+     for C, or the fontset does not have fallback fonts.  */
   if (NILP (font_group))
     {
       font_group = make_number (0);
       if (c >= 0)
+       /* Record that FONTSET does not specify fonts for C.  As
+          there's a possiblity that a font is found in a fallback
+          font group, we set 0 at the moment.  */
        char_table_set_range (fontset, from, to, font_group);
       return font_group;
     }
   if (!VECTORP (font_group))
     return font_group;
+
+  /* Now realize FONT-DEFs of this font group, and update the realized
+     fontset FONTSET. */
   font_group = Fcopy_sequence (font_group);
   for (i = 0; i < ASIZE (font_group); i++)
     if (! NILP (AREF (font_group, i)))
@@ -498,21 +528,21 @@ fontset_get_font_group (Lisp_Object fontset, int c)
 }
 
 /* Return RFONT-DEF (vector) in the realized fontset FONTSET for the
-   character C.  If no font is found, return Qnil if there's a
+   character C.  If no font is found, return Qnil or 0 if there's a
    possibility that the default fontset or the fallback font groups
    have a proper font, and return Qt if not.
 
    If a font is found but is not yet opened, open it (if FACE is not
    NULL) or return Qnil (if FACE is NULL).
 
-   ID is a charset-id that must be preferred, or -1 meaning no
+   CHARSET_ID is a charset-id that must be preferred, or -1 meaning no
    preference.
 
    If FALLBACK, search only fallback fonts.  */
 
 static Lisp_Object
-fontset_find_font (Lisp_Object fontset, int c, struct face *face, int id,
-                   bool fallback)
+fontset_find_font (Lisp_Object fontset, int c, struct face *face, 
+                  int charset_id, bool fallback)
 {
   Lisp_Object vec, font_group;
   int i, charset_matched = 0, found_index;
@@ -534,8 +564,8 @@ fontset_find_font (Lisp_Object fontset, int c, struct face *face, int id,
        /* We have just created the font-group,
           or the charset priorities were changed.  */
        reorder_font_vector (font_group, face->ascii_face->font);
-      if (id >= 0)
-       /* Find a spec matching with the charset ID to try at
+      if (charset_id >= 0)
+       /* Find a spec matching with CHARSET_ID to try it at
           first.  */
        for (i = 0; i < ASIZE (vec); i++)
          {
@@ -546,7 +576,7 @@ fontset_find_font (Lisp_Object fontset, int c, struct face *face, int id,
              break;
            repertory = FONT_DEF_REPERTORY (RFONT_DEF_FONT_DEF (rfont_def));
 
-           if (XINT (repertory) == id)
+           if (XINT (repertory) == charset_id)
              {
                charset_matched = i;
                break;
@@ -554,7 +584,9 @@ fontset_find_font (Lisp_Object fontset, int c, struct face *face, int id,
          }
     }
 
-  /* Find the first available font in the vector of RFONT-DEF.  */
+  /* Find the first available font in the vector of RFONT-DEF.  If
+     CHARSET_MATCHED > 0, try the correspoing RFONT-DEF first, then
+     try the rest.  */
   for (i = 0; i < ASIZE (vec); i++)
     {
       Lisp_Object font_def;
@@ -565,13 +597,13 @@ fontset_find_font (Lisp_Object fontset, int c, struct face *face, int id,
        {
          if (charset_matched > 0)
            {
-             /* Try the element matching with the charset ID at first.  */
+             /* Try the element matching with CHARSET_ID at first.  */
              found_index = charset_matched;
              /* Make this negative so that we don't come here in the
                 next loop.  */
              charset_matched = - charset_matched;
              /* We must try the first element in the next loop.  */
-             i--;
+             i = -1;
            }
        }
       else if (i == - charset_matched)
@@ -630,10 +662,10 @@ fontset_find_font (Lisp_Object fontset, int c, struct face *face, int id,
          if (NILP (font_object))
            {
              /* Something strange happened, perhaps because of a
-                Font-backend problem.  Too avoid crashing, record
+                Font-backend problem.  To avoid crashing, record
                 that this spec is unusable.  It may be better to find
                 another font of the same spec, but currently we don't
-                have such an API.  */
+                have such an API in font-backend.  */
              RFONT_DEF_SET_FACE (rfont_def, -1);
              continue;
            }
@@ -693,6 +725,7 @@ fontset_find_font (Lisp_Object fontset, int c, struct face *face, int id,
        i = found_index;
     }
 
+  /* Record that no font in this font group supports C.  */
   FONTSET_SET (fontset, make_number (c), make_number (0));
   return Qnil;
 
@@ -711,6 +744,9 @@ fontset_find_font (Lisp_Object fontset, int c, struct face *face, int id,
 }
 
 
+/* Return RFONT-DEF (vector) corresponding to the font for character
+   C.  The value is not a vector if no font is found for C.  */
+
 static Lisp_Object
 fontset_font (Lisp_Object fontset, int c, struct face *face, int id)
 {
index 8412dd0e2863fec5d9b5cf11d06cde5cd82a524a..bb8af96d7b195d9fac298de5c952f30a51291d8d 100644 (file)
@@ -30,6 +30,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "dispextern.h"
 #include "character.h"
 #include "charset.h"
+#include "category.h"
 #include "composite.h"
 #include "font.h"
 #include "ftfont.h"
@@ -81,6 +82,8 @@ static Lisp_Object ftfont_lookup_cache (Lisp_Object,
 
 static void ftfont_filter_properties (Lisp_Object font, Lisp_Object alist);
 
+static Lisp_Object ftfont_combining_capability (struct font *);
+
 #define SYMBOL_FcChar8(SYM) (FcChar8 *) SDATA (SYMBOL_NAME (SYM))
 
 static struct
@@ -547,6 +550,10 @@ struct font_driver ftfont_driver =
 #endif
 
     ftfont_filter_properties, /* filter_properties */
+
+    NULL,                      /* cached_font_ok */
+
+    ftfont_combining_capability,
   };
 
 static Lisp_Object
@@ -2533,7 +2540,7 @@ ftfont_shape_by_flt (Lisp_Object lgstring, struct font *font,
 
   len = i;
 
-  if (with_variation_selector)
+  if (otf && with_variation_selector)
     {
       setup_otf_gstring (len);
       for (i = 0; i < len; i++)
@@ -2583,14 +2590,19 @@ ftfont_shape_by_flt (Lisp_Object lgstring, struct font *font,
   flt_font_ft.otf = otf;
   flt_font_ft.matrix = matrix->xx != 0 ? matrix : 0;
 
-  if (1 < len)
+  if (1 < len || ! otf)
     {
       /* A little bit ad hoc.  Perhaps, shaper must get script and
         language information, and select a proper flt for them
         here.  */
       int c1 = LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, 1));
-      if (0x300 <= c1 && c1 <= 0x36F)
+      if (CHAR_HAS_CATEGORY (c1, '^'))
        flt = mflt_get (msymbol ("combining"));
+      else if (! otf)
+       flt = mflt_find (LGLYPH_CHAR (LGSTRING_GLYPH (lgstring, 0)),
+                        &flt_font_ft.flt_font);
+      if (! flt)
+       return make_number (0);
     }
 
   MFLTGlyphFT *glyphs = (MFLTGlyphFT *) gstring.glyphs;
@@ -2675,8 +2687,6 @@ ftfont_shape (Lisp_Object lgstring)
   struct ftfont_info *ftfont_info = (struct ftfont_info *) font;
   OTF *otf = ftfont_get_otf (ftfont_info);
 
-  if (! otf)
-    return make_number (0);
   return ftfont_shape_by_flt (lgstring, font, ftfont_info->ft_size->face, otf,
                              &ftfont_info->matrix);
 }
@@ -2750,6 +2760,16 @@ ftfont_filter_properties (Lisp_Object font, Lisp_Object alist)
 }
 
 
+static Lisp_Object
+ftfont_combining_capability (struct font *font)
+{
+#ifdef HAVE_M17N_FLT
+  return Qt;
+#else
+  return Qnil;
+#endif
+}
+
 void
 syms_of_ftfont (void)
 {
index 47652ff35bd3adca6bf6732eeb56ec1fbd785bfc..e0619e584f7382102138ef74ba6aaddd4f281bc7 100644 (file)
@@ -46,8 +46,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 static int inotifyfd = -1;
 
 /* Assoc list of files being watched.
-   Format:
-   (watch-descriptor . callback)
+   Format: (watch-descriptor name callback)
  */
 static Lisp_Object watch_list;
 
@@ -106,12 +105,14 @@ inotifyevent_to_event (Lisp_Object watch_object, struct inotify_event const *ev)
       name = make_unibyte_string (ev->name, min (len, ev->len));
       name = DECODE_FILE (name);
     }
+  else
+    name = XCAR (XCDR (watch_object));
 
   return list2 (list4 (make_watch_descriptor (ev->wd),
                        mask_to_aspects (ev->mask),
                        name,
                        make_number (ev->cookie)),
-                XCDR (watch_object));
+               Fnth (make_number (2), watch_object));
 }
 
 /* This callback is called when the FD is available for read.  The inotify
@@ -325,7 +326,7 @@ is managed internally and there is no corresponding inotify_init.  Use
       watch_list = Fdelete (watch_object, watch_list);
 
   /* Store watch object in watch list.  */
-  watch_object = Fcons (watch_descriptor, callback);
+  watch_object = list3 (watch_descriptor, encoded_file_name, callback);
   watch_list = Fcons (watch_object, watch_list);
 
   return watch_descriptor;
index 6bdfc1aa084811dd7e3512ded2d4beca1d6590af..c3aa76af51805c2b0613d4a7439e0078ab88232d 100644 (file)
@@ -64,8 +64,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <unistd.h>
 #include <fcntl.h>
 
-#include <ignore-value.h>
-
 #ifdef HAVE_WINDOW_SYSTEM
 #include TERM_HEADER
 #endif /* HAVE_WINDOW_SYSTEM */
@@ -1236,6 +1234,9 @@ static void adjust_point_for_property (ptrdiff_t, bool);
 Lisp_Object
 command_loop_1 (void)
 {
+  Lisp_Object cmd;
+  Lisp_Object keybuf[30];
+  int i;
   EMACS_INT prev_modiff = 0;
   struct buffer *prev_buffer = NULL;
   bool already_adjusted = 0;
@@ -1279,10 +1280,6 @@ command_loop_1 (void)
 
   while (1)
     {
-      Lisp_Object cmd;
-      Lisp_Object keybuf[30];
-      int i;
-
       if (! FRAME_LIVE_P (XFRAME (selected_frame)))
        Fkill_emacs (Qnil);
 
@@ -5950,12 +5947,12 @@ make_lispy_event (struct input_event *event)
       }
 #endif /* HAVE_DBUS */
 
-#if defined HAVE_GFILENOTIFY || defined HAVE_INOTIFY
+#if defined HAVE_INOTIFY || defined HAVE_KQUEUE || defined HAVE_GFILENOTIFY
     case FILE_NOTIFY_EVENT:
       {
         return Fcons (Qfile_notify, event->arg);
       }
-#endif /* defined HAVE_GFILENOTIFY || defined HAVE_INOTIFY */
+#endif /* HAVE_INOTIFY || HAVE_KQUEUE || HAVE_GFILENOTIFY */
 
     case CONFIG_CHANGED_EVENT:
        return list3 (Qconfig_changed_event,
@@ -10208,21 +10205,6 @@ deliver_interrupt_signal (int sig)
   deliver_process_signal (sig, handle_interrupt_signal);
 }
 
-/* Output MSG directly to standard output, without buffering.  Ignore
-   failures.  This is safe in a signal handler.  */
-static void
-write_stdout (char const *msg)
-{
-  ignore_value (write (STDOUT_FILENO, msg, strlen (msg)));
-}
-
-/* Read a byte from stdin, without buffering.  Safe in signal handlers.  */
-static int
-read_stdin (void)
-{
-  char c;
-  return read (STDIN_FILENO, &c, 1) == 1 ? c : EOF;
-}
 
 /* If Emacs is stuck because `inhibit-quit' is true, then keep track
    of the number of times C-g has been requested.  If C-g is pressed
@@ -10259,9 +10241,9 @@ handle_interrupt (bool in_signal_handler)
          sigemptyset (&blocked);
          sigaddset (&blocked, SIGINT);
          pthread_sigmask (SIG_BLOCK, &blocked, 0);
-         fflush (stdout);
        }
 
+      fflush (stdout);
       reset_all_sys_modes ();
 
 #ifdef SIGTSTP
@@ -10277,9 +10259,8 @@ handle_interrupt (bool in_signal_handler)
       /* Perhaps should really fork an inferior shell?
         But that would not provide any way to get back
         to the original shell, ever.  */
-      write_stdout ("No support for stopping a process"
-                   " on this operating system;\n"
-                   "you can continue or abort.\n");
+      printf ("No support for stopping a process on this operating system;\n");
+      printf ("you can continue or abort.\n");
 #endif /* not SIGTSTP */
 #ifdef MSDOS
       /* We must remain inside the screen area when the internal terminal
@@ -10290,49 +10271,46 @@ handle_interrupt (bool in_signal_handler)
         the code used for auto-saving doesn't cope with the mark bit.  */
       if (!gc_in_progress)
        {
-         write_stdout ("Auto-save? (y or n) ");
-         c = read_stdin ();
-         if ((c & 040) == 'Y')
+         printf ("Auto-save? (y or n) ");
+         fflush (stdout);
+         if (((c = getchar ()) & ~040) == 'Y')
            {
              Fdo_auto_save (Qt, Qnil);
 #ifdef MSDOS
-             write_stdout ("\r\nAuto-save done");
-#else
-             write_stdout ("Auto-save done\n");
-#endif
+             printf ("\r\nAuto-save done");
+#else /* not MSDOS */
+             printf ("Auto-save done\n");
+#endif /* not MSDOS */
            }
-         while (c != '\n')
-           c = read_stdin ();
+         while (c != '\n') c = getchar ();
        }
       else
        {
          /* During GC, it must be safe to reenable quitting again.  */
          Vinhibit_quit = Qnil;
-         write_stdout
-           (
 #ifdef MSDOS
-            "\r\n"
-#endif
-            "Garbage collection in progress; cannot auto-save now\r\n"
-            "but will instead do a real quit"
-            " after garbage collection ends\r\n");
+         printf ("\r\n");
+#endif /* not MSDOS */
+         printf ("Garbage collection in progress; cannot auto-save now\r\n");
+         printf ("but will instead do a real quit after garbage collection ends\r\n");
+         fflush (stdout);
        }
 
 #ifdef MSDOS
-      write_stdout ("\r\nAbort?  (y or n) ");
-#else
-      write_stdout ("Abort (and dump core)? (y or n) ");
-#endif
-      c = read_stdin ();
-      if ((c & ~040) == 'Y')
+      printf ("\r\nAbort?  (y or n) ");
+#else /* not MSDOS */
+      printf ("Abort (and dump core)? (y or n) ");
+#endif /* not MSDOS */
+      fflush (stdout);
+      if (((c = getchar ()) & ~040) == 'Y')
        emacs_abort ();
-      while (c != '\n')
-       c = read_stdin ();
+      while (c != '\n') c = getchar ();
 #ifdef MSDOS
-      write_stdout ("\r\nContinuing...\r\n");
+      printf ("\r\nContinuing...\r\n");
 #else /* not MSDOS */
-      write_stdout ("Continuing...\n");
+      printf ("Continuing...\n");
 #endif /* not MSDOS */
+      fflush (stdout);
       init_all_sys_modes ();
     }
   else
@@ -11686,6 +11664,25 @@ Currently, the only supported values for this
 variable are `sigusr1' and `sigusr2'.  */);
   Vdebug_on_event = intern_c_string ("sigusr2");
 
+  DEFVAR_BOOL ("attempt-stack-overflow-recovery",
+               attempt_stack_overflow_recovery,
+               doc: /* If non-nil, attempt to recover from C stack
+overflow.  This recovery is unsafe and may lead to deadlocks or data
+corruption, but it usually works and may preserve modified buffers
+that would otherwise be lost.  If nil, treat stack overflow like any
+other kind of crash.  */);
+  attempt_stack_overflow_recovery = true;
+
+  DEFVAR_BOOL ("attempt-orderly-shutdown-on-fatal-signal",
+               attempt_orderly_shutdown_on_fatal_signal,
+               doc: /* If non-nil, attempt to perform an orderly
+shutdown when Emacs receives a fatal signal (e.g., a crash).
+This cleanup is unsafe and may lead to deadlocks or data corruption,
+but it usually works and may preserve modified buffers that would
+otherwise be lost.  If nil, crash immediately in response to fatal
+signals.  */);
+  attempt_orderly_shutdown_on_fatal_signal = true;
+
   /* Create the initial keyboard.  Qt means 'unset'.  */
   initial_kboard = allocate_kboard (Qt);
 }
diff --git a/src/kqueue.c b/src/kqueue.c
new file mode 100644 (file)
index 0000000..e0ee5fb
--- /dev/null
@@ -0,0 +1,520 @@
+/* Filesystem notifications support with kqueue API.
+   Copyright (C) 2015 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/>.  */
+
+#include <config.h>
+
+#ifdef HAVE_KQUEUE
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/event.h>
+#include <sys/time.h>
+#include <sys/file.h>
+#include "lisp.h"
+#include "keyboard.h"
+#include "process.h"
+
+\f
+/* File handle for kqueue.  */
+static int kqueuefd = -1;
+
+/* This is a list, elements are (DESCRIPTOR FILE FLAGS CALLBACK [DIRLIST]).  */
+static Lisp_Object watch_list;
+
+/* Generate a list from the directory_files_internal output.
+   Items are (INODE FILE-NAME LAST-MOD LAST-STATUS-MOD SIZE).  */
+Lisp_Object
+kqueue_directory_listing (Lisp_Object directory_files)
+{
+  Lisp_Object dl, result = Qnil;
+
+  for (dl = directory_files; ! NILP (dl); dl = XCDR (dl)) {
+    /* We ignore "." and "..".  */
+    if ((strcmp (".", SSDATA (XCAR (XCAR (dl)))) == 0) ||
+       (strcmp ("..", SSDATA (XCAR (XCAR (dl)))) == 0))
+      continue;
+
+    result = Fcons
+      (list5 (/* inode.  */
+             Fnth (make_number (11), XCAR (dl)),
+             /* filename.  */
+             XCAR (XCAR (dl)),
+             /* last modification time.  */
+             Fnth (make_number (6), XCAR (dl)),
+             /* last status change time.  */
+             Fnth (make_number (7), XCAR (dl)),
+             /* size.  */
+             Fnth (make_number (8), XCAR (dl))),
+       result);
+  }
+  return result;
+}
+
+/* Generate a file notification event.  */
+static void
+kqueue_generate_event
+(Lisp_Object watch_object, Lisp_Object actions,
+ Lisp_Object file, Lisp_Object file1)
+{
+  Lisp_Object flags, action, entry;
+  struct input_event event;
+
+  /* Check, whether all actions shall be monitored.  */
+  flags = Fnth (make_number (2), watch_object);
+  action = actions;
+  do {
+    if (NILP (action))
+      break;
+    entry = XCAR (action);
+    if (NILP (Fmember (entry, flags))) {
+      action = XCDR (action);
+      actions = Fdelq (entry, actions);
+    } else
+      action = XCDR (action);
+  } while (1);
+
+  /* Store it into the input event queue.  */
+  if (! NILP (actions)) {
+    EVENT_INIT (event);
+    event.kind = FILE_NOTIFY_EVENT;
+    event.frame_or_window = Qnil;
+    event.arg = list2 (Fcons (XCAR (watch_object),
+                             Fcons (actions,
+                                    NILP (file1)
+                                    ? Fcons (file, Qnil)
+                                    : list2 (file, file1))),
+                      Fnth (make_number (3), watch_object));
+    kbd_buffer_store_event (&event);
+  }
+}
+
+/* This compares two directory listings in case of a `write' event for
+   a directory.  Generate resulting file notification events.  The old
+   directory listing is retrieved from watch_object, it will be
+   replaced by the new directory listing at the end of this
+   function.  */
+static void
+kqueue_compare_dir_list
+(Lisp_Object watch_object)
+{
+  Lisp_Object dir, pending_dl, deleted_dl;
+  Lisp_Object old_directory_files, old_dl, new_directory_files, new_dl, dl;
+
+  dir = XCAR (XCDR (watch_object));
+  pending_dl = Qnil;
+  deleted_dl = Qnil;
+
+  old_directory_files = Fnth (make_number (4), watch_object);
+  old_dl = kqueue_directory_listing (old_directory_files);
+
+  /* When the directory is not accessible anymore, it has been deleted.  */
+  if (NILP (Ffile_directory_p (dir))) {
+    kqueue_generate_event (watch_object, Fcons (Qdelete, Qnil), dir, Qnil);
+    return;
+  }
+  new_directory_files =
+    directory_files_internal (dir, Qnil, Qnil, Qnil, 1, Qnil);
+  new_dl = kqueue_directory_listing (new_directory_files);
+
+  /* Parse through the old list.  */
+  dl = old_dl;
+  while (1) {
+    Lisp_Object old_entry, new_entry, dl1;
+    if (NILP (dl))
+      break;
+
+    /* Search for an entry with the same inode.  */
+    old_entry = XCAR (dl);
+    new_entry = assq_no_quit (XCAR (old_entry), new_dl);
+    if (! NILP (Fequal (old_entry, new_entry))) {
+      /* Both entries are identical.  Nothing to do.  */
+      new_dl = Fdelq (new_entry, new_dl);
+      goto the_end;
+    }
+
+    /* Both entries have the same inode.  */
+    if (! NILP (new_entry)) {
+      /* Both entries have the same file name.  */
+      if (strcmp (SSDATA (XCAR (XCDR (old_entry))),
+                 SSDATA (XCAR (XCDR (new_entry)))) == 0) {
+       /* Modification time has been changed, the file has been written.  */
+       if (NILP (Fequal (Fnth (make_number (2), old_entry),
+                         Fnth (make_number (2), new_entry))))
+         kqueue_generate_event
+           (watch_object, Fcons (Qwrite, Qnil), XCAR (XCDR (old_entry)), Qnil);
+       /* Status change time has been changed, the file attributes
+          have changed.  */
+         if (NILP (Fequal (Fnth (make_number (3), old_entry),
+                           Fnth (make_number (3), new_entry))))
+         kqueue_generate_event
+           (watch_object, Fcons (Qattrib, Qnil),
+            XCAR (XCDR (old_entry)), Qnil);
+
+      } else {
+       /* The file has been renamed.  */
+       kqueue_generate_event
+         (watch_object, Fcons (Qrename, Qnil),
+          XCAR (XCDR (old_entry)), XCAR (XCDR (new_entry)));
+       deleted_dl = Fcons (new_entry, deleted_dl);
+      }
+      new_dl = Fdelq (new_entry, new_dl);
+      goto the_end;
+    }
+
+    /* Search, whether there is a file with the same name but another
+       inode.  */
+    for (dl1 = new_dl; ! NILP (dl1); dl1 = XCDR (dl1)) {
+      new_entry = XCAR (dl1);
+      if (strcmp (SSDATA (XCAR (XCDR (old_entry))),
+                 SSDATA (XCAR (XCDR (new_entry)))) == 0) {
+       pending_dl = Fcons (new_entry, pending_dl);
+       new_dl = Fdelq (new_entry, new_dl);
+       goto the_end;
+      }
+    }
+
+    /* Check, whether this a pending file.  */
+    new_entry = assq_no_quit (XCAR (old_entry), pending_dl);
+
+    if (NILP (new_entry)) {
+      /* Check, whether this is an already deleted file (by rename).  */
+      for (dl1 = deleted_dl; ! NILP (dl1); dl1 = XCDR (dl1)) {
+       new_entry = XCAR (dl1);
+       if (strcmp (SSDATA (XCAR (XCDR (old_entry))),
+                   SSDATA (XCAR (XCDR (new_entry)))) == 0) {
+         deleted_dl = Fdelq (new_entry, deleted_dl);
+         goto the_end;
+       }
+      }
+      /* The file has been deleted.  */
+      kqueue_generate_event
+       (watch_object, Fcons (Qdelete, Qnil), XCAR (XCDR (old_entry)), Qnil);
+
+    } else {
+      /* The file has been renamed.  */
+      kqueue_generate_event
+       (watch_object, Fcons (Qrename, Qnil),
+        XCAR (XCDR (old_entry)), XCAR (XCDR (new_entry)));
+      pending_dl = Fdelq (new_entry, pending_dl);
+    }
+
+  the_end:
+    dl = XCDR (dl);
+    old_dl = Fdelq (old_entry, old_dl);
+  }
+
+  /* Parse through the resulting new list.  */
+  dl = new_dl;
+  while (1) {
+    Lisp_Object entry;
+    if (NILP (dl))
+      break;
+
+    /* A new file has appeared.  */
+    entry = XCAR (dl);
+    kqueue_generate_event
+      (watch_object, Fcons (Qcreate, Qnil), XCAR (XCDR (entry)), Qnil);
+
+    /* Check size of that file.  */
+    Lisp_Object size = Fnth (make_number (4), entry);
+    if (FLOATP (size) || (XINT (size) > 0))
+      kqueue_generate_event
+       (watch_object, Fcons (Qwrite, Qnil), XCAR (XCDR (entry)), Qnil);
+
+    dl = XCDR (dl);
+    new_dl = Fdelq (entry, new_dl);
+  }
+
+  /* Parse through the resulting pending_dl list.  */
+  dl = pending_dl;
+  while (1) {
+    Lisp_Object entry;
+    if (NILP (dl))
+      break;
+
+    /* A file is still pending.  Assume it was a write.  */
+    entry = XCAR (dl);
+    kqueue_generate_event
+      (watch_object, Fcons (Qwrite, Qnil), XCAR (XCDR (entry)), Qnil);
+
+    dl = XCDR (dl);
+    pending_dl = Fdelq (entry, pending_dl);
+  }
+
+  /* At this point, old_dl, new_dl and pending_dl shall be empty.
+     deleted_dl might not be empty when there was a rename to a
+     nonexistent file.  Let's make a check for this (might be removed
+     once the code is stable).  */
+  if (! NILP (old_dl))
+    report_file_error ("Old list not empty", old_dl);
+  if (! NILP (new_dl))
+    report_file_error ("New list not empty", new_dl);
+  if (! NILP (pending_dl))
+    report_file_error ("Pending events list not empty", pending_dl);
+  //  if (! NILP (deleted_dl))
+  //    report_file_error ("Deleted events list not empty", deleted_dl);
+
+  /* Replace old directory listing with the new one.  */
+  XSETCDR (Fnthcdr (make_number (3), watch_object),
+          Fcons (new_directory_files, Qnil));
+  return;
+}
+
+/* This is the callback function for arriving input on kqueuefd.  It
+   shall create a Lisp event, and put it into the Emacs input queue.  */
+static void
+kqueue_callback (int fd, void *data)
+{
+  for (;;) {
+    struct kevent kev;
+    static const struct timespec nullts = { 0, 0 };
+    Lisp_Object descriptor, watch_object, file, actions;
+
+    /* Read one event.  */
+    int ret = kevent (kqueuefd, NULL, 0, &kev, 1, &nullts);
+    if (ret < 1) {
+      /* All events read.  */
+      return;
+    }
+
+    /* Determine descriptor and file name.  */
+    descriptor = make_number (kev.ident);
+    watch_object = assq_no_quit (descriptor, watch_list);
+    if (CONSP (watch_object))
+      file = XCAR (XCDR (watch_object));
+    else
+      continue;
+
+    /* Determine event actions.  */
+    actions = Qnil;
+    if (kev.fflags & NOTE_DELETE)
+      actions = Fcons (Qdelete, actions);
+    if (kev.fflags & NOTE_WRITE) {
+      /* Check, whether this is a directory event.  */
+      if (NILP (Fnth (make_number (4), watch_object)))
+       actions = Fcons (Qwrite, actions);
+      else
+       kqueue_compare_dir_list (watch_object);
+    }
+    if (kev.fflags & NOTE_EXTEND)
+      actions = Fcons (Qextend, actions);
+    if (kev.fflags & NOTE_ATTRIB)
+      actions = Fcons (Qattrib, actions);
+    if (kev.fflags & NOTE_LINK)
+      actions = Fcons (Qlink, actions);
+    /* It would be useful to know the target of the rename operation.
+       At this point, it is not possible.  Happens only when the upper
+       directory is monitored.  */
+    if (kev.fflags & NOTE_RENAME)
+      actions = Fcons (Qrename, actions);
+
+    /* Create the event.  */
+    if (! NILP (actions))
+      kqueue_generate_event (watch_object, actions, file, Qnil);
+
+    /* Cancel monitor if file or directory is deleted or renamed.  */
+    if (kev.fflags & (NOTE_DELETE | NOTE_RENAME))
+      Fkqueue_rm_watch (descriptor);
+  }
+  return;
+}
+
+DEFUN ("kqueue-add-watch", Fkqueue_add_watch, Skqueue_add_watch, 3, 3, 0,
+       doc: /* Add a watch for filesystem events pertaining to FILE.
+
+This arranges for filesystem events pertaining to FILE to be reported
+to Emacs.  Use `kqueue-rm-watch' to cancel the watch.
+
+Returned value is a descriptor for the added watch.  If the file cannot be
+watched for some reason, this function signals a `file-notify-error' error.
+
+FLAGS is a list of events to be watched for.  It can include the
+following symbols:
+
+  `create' -- FILE was created
+  `delete' -- FILE was deleted
+  `write'  -- FILE has changed
+  `extend' -- FILE was extended
+  `attrib' -- a FILE attribute was changed
+  `link'   -- a FILE's link count was changed
+  `rename' -- FILE was moved to FILE1
+
+When any event happens, Emacs will call the CALLBACK function passing
+it a single argument EVENT, which is of the form
+
+  (DESCRIPTOR ACTIONS FILE [FILE1])
+
+DESCRIPTOR is the same object as the one returned by this function.
+ACTIONS is a list of events.
+
+FILE is the name of the file whose event is being reported.  FILE1
+will be reported only in case of the `rename' event.  This is possible
+only when the upper directory of the renamed file is watched.  */)
+  (Lisp_Object file, Lisp_Object flags, Lisp_Object callback)
+{
+  Lisp_Object watch_object, dir_list;
+  int fd, oflags;
+  u_short fflags = 0;
+  struct kevent kev;
+
+  /* Check parameters.  */
+  CHECK_STRING (file);
+  file = Fdirectory_file_name (Fexpand_file_name (file, Qnil));
+  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);
+
+  if (kqueuefd < 0)
+    {
+      /* Create kqueue descriptor.  */
+      kqueuefd = kqueue ();
+      if (kqueuefd < 0)
+       report_file_notify_error ("File watching is not available", Qnil);
+
+      /* Start monitoring for possible I/O.  */
+      add_read_fd (kqueuefd, kqueue_callback, NULL);
+
+      watch_list = Qnil;
+    }
+
+  /* Open file.  */
+  file = ENCODE_FILE (file);
+  oflags = O_NONBLOCK;
+#if O_EVTONLY
+  oflags |= O_EVTONLY;
+#else
+  oflags |= O_RDONLY;
+#endif
+#if O_SYMLINK
+    oflags |= O_SYMLINK;
+#else
+    oflags |= O_NOFOLLOW;
+#endif
+  fd = emacs_open (SSDATA (file), oflags, 0);
+  if (fd == -1)
+    report_file_error ("File cannot be opened", file);
+
+  /* Assemble filter flags  */
+  if (! NILP (Fmember (Qdelete, flags))) fflags |= NOTE_DELETE;
+  if (! NILP (Fmember (Qwrite, flags)))  fflags |= NOTE_WRITE;
+  if (! NILP (Fmember (Qextend, flags))) fflags |= NOTE_EXTEND;
+  if (! NILP (Fmember (Qattrib, flags))) fflags |= NOTE_ATTRIB;
+  if (! NILP (Fmember (Qlink, flags)))   fflags |= NOTE_LINK;
+  if (! NILP (Fmember (Qrename, flags))) fflags |= NOTE_RENAME;
+
+  /* Register event.  */
+  EV_SET (&kev, fd, EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_CLEAR,
+         fflags, 0, NULL);
+
+  if (kevent (kqueuefd, &kev, 1, NULL, 0, NULL) < 0) {
+    emacs_close (fd);
+    report_file_error ("Cannot watch file", file);
+  }
+
+  /* Store watch object in watch list.  */
+  Lisp_Object watch_descriptor = make_number (fd);
+  if (NILP (Ffile_directory_p (file)))
+    watch_object = list4 (watch_descriptor, file, flags, callback);
+  else {
+    dir_list = directory_files_internal (file, Qnil, Qnil, Qnil, 1, Qnil);
+    watch_object = list5 (watch_descriptor, file, flags, callback, dir_list);
+  }
+  watch_list = Fcons (watch_object, watch_list);
+
+  return watch_descriptor;
+}
+
+DEFUN ("kqueue-rm-watch", Fkqueue_rm_watch, Skqueue_rm_watch, 1, 1, 0,
+       doc: /* Remove an existing WATCH-DESCRIPTOR.
+
+WATCH-DESCRIPTOR should be an object returned by `kqueue-add-watch'.  */)
+     (Lisp_Object watch_descriptor)
+{
+  Lisp_Object watch_object = assq_no_quit (watch_descriptor, watch_list);
+
+  if (! CONSP (watch_object))
+    xsignal2 (Qfile_notify_error, build_string ("Not a watch descriptor"),
+             watch_descriptor);
+
+  eassert (INTEGERP (watch_descriptor));
+  int fd = XINT (watch_descriptor);
+  if ( fd >= 0)
+    emacs_close (fd);
+
+  /* Remove watch descriptor from watch list.  */
+  watch_list = Fdelq (watch_object, watch_list);
+
+  if (NILP (watch_list) && (kqueuefd >= 0)) {
+    delete_read_fd (kqueuefd);
+    emacs_close (kqueuefd);
+    kqueuefd = -1;
+  }
+
+  return Qt;
+}
+
+DEFUN ("kqueue-valid-p", Fkqueue_valid_p, Skqueue_valid_p, 1, 1, 0,
+       doc: /* "Check a watch specified by its WATCH-DESCRIPTOR.
+
+WATCH-DESCRIPTOR should be an object returned by `kqueue-add-watch'.
+
+A watch can become invalid if the file or directory it watches is
+deleted, or if the watcher thread exits abnormally for any other
+reason.  Removing the watch by calling `kqueue-rm-watch' also makes it
+invalid.  */)
+     (Lisp_Object watch_descriptor)
+{
+  return NILP (assq_no_quit (watch_descriptor, watch_list)) ? Qnil : Qt;
+}
+
+\f
+void
+globals_of_kqueue (void)
+{
+  watch_list = Qnil;
+}
+
+void
+syms_of_kqueue (void)
+{
+  defsubr (&Skqueue_add_watch);
+  defsubr (&Skqueue_rm_watch);
+  defsubr (&Skqueue_valid_p);
+
+  /* Event types.  */
+  DEFSYM (Qcreate, "create");
+  DEFSYM (Qdelete, "delete");  /* NOTE_DELETE  */
+  DEFSYM (Qwrite, "write");    /* NOTE_WRITE  */
+  DEFSYM (Qextend, "extend");  /* NOTE_EXTEND  */
+  DEFSYM (Qattrib, "attrib");  /* NOTE_ATTRIB  */
+  DEFSYM (Qlink, "link");      /* NOTE_LINK  */
+  DEFSYM (Qrename, "rename");  /* NOTE_RENAME  */
+
+  staticpro (&watch_list);
+
+  Fprovide (intern_c_string ("kqueue"), Qnil);
+}
+
+#endif /* HAVE_KQUEUE  */
+
+/* PROBLEMS
+   * https://bugs.launchpad.net/ubuntu/+source/libkqueue/+bug/1514837
+     prevents tests on Ubuntu.  */
index 15aa2e883e48bc6f8339d99f7566e1ecdf509690..90a0c1272c96f5a02b2fd375492d615b972ce988 100644 (file)
@@ -4313,17 +4313,23 @@ extern void init_font (void);
 extern void syms_of_fontset (void);
 #endif
 
+/* Defined in inotify.c */
+#ifdef HAVE_INOTIFY
+extern void syms_of_inotify (void);
+#endif
+
+/* Defined in kqueue.c */
+#ifdef HAVE_KQUEUE
+extern void globals_of_kqueue (void);
+extern void syms_of_kqueue (void);
+#endif
+
 /* Defined in gfilenotify.c */
 #ifdef HAVE_GFILENOTIFY
 extern void globals_of_gfilenotify (void);
 extern void syms_of_gfilenotify (void);
 #endif
 
-/* Defined in inotify.c */
-#ifdef HAVE_INOTIFY
-extern void syms_of_inotify (void);
-#endif
-
 #ifdef HAVE_W32NOTIFY
 /* Defined on w32notify.c.  */
 extern void syms_of_w32notify (void);
index a78c4c64c815bacc6ac966f0b49cdbb7d7bafe17..e73acec733e6fc800c48e79a352d58875a4a7c27 100644 (file)
@@ -1622,6 +1622,9 @@ static unsigned char sigsegv_stack[SIGSTKSZ];
 static bool
 stack_overflow (siginfo_t *siginfo)
 {
+  if (!attempt_stack_overflow_recovery)
+    return false;
+
   /* In theory, a more-accurate heuristic can be obtained by using
      GNU/Linux pthread_getattr_np along with POSIX pthread_attr_getstack
      and pthread_attr_getguardsize to find the location and size of the
similarity index 76%
rename from test/automated/Makefile.in
rename to test/Makefile.in
index b36e7f9b99a50b33b299f957175e85fa892b1065..db386cebe293b4fb14f325556b74eeffda02e72a 100644 (file)
@@ -37,7 +37,7 @@ SEPCHAR = @SEPCHAR@
 # We never change directory before running Emacs, so a relative file
 # name is fine, and makes life easier.  If we need to change
 # directory, we can use emacs --chdir.
-EMACS = ../../src/emacs
+EMACS = ../src/emacs
 
 EMACS_EXTRAOPT=
 
@@ -87,7 +87,7 @@ WRITE_LOG = > $@ 2>&1 || { stat=ERROR; cat $@; }; echo $$stat: $@
 ## to change this; bug#17848 - if that gets done, this can be simplified).
 ##
 ## Beware: it approximates 'no-byte-compile', so watch out for false-positives!
-%.log: ${srcdir}/%.el
+%.log: %.el
        @if grep '^;.*no-byte-compile: t' $< > /dev/null; then \
          loadfile=$<; \
        else \
@@ -96,12 +96,18 @@ WRITE_LOG = > $@ 2>&1 || { stat=ERROR; cat $@; }; echo $$stat: $@
        fi; \
        echo Testing $$loadfile; \
        stat=OK ; \
+       mkdir --parents $(dir $@) ; \
        $(emacs) -l ert -l $$loadfile \
          -f ert-run-tests-batch-and-exit ${WRITE_LOG}
 
-ELFILES = $(sort $(wildcard ${srcdir}/*.el))
-LOGFILES = $(patsubst %.el,%.log,$(notdir ${ELFILES}))
-TESTS = ${LOGFILES:.log=}
+ELFILES = $(shell find ${srcdir} -path "${srcdir}/manual" -prune -o \
+               -path "*resources" -prune -o -name "*el" -print)
+## .elc files may be in a different directory for out of source builds
+ELCFILES = $(patsubst %.el,%.elc, \
+               $(patsubst $(srcdir)%,.%,$(ELFILES)))
+LOGFILES = $(patsubst %.elc,%.log,${ELCFILES})
+LOGSAVEFILES  = $(patsubst %.elc,%.log~,${ELCFILES})
+TESTS = $(subst ${srcdir}/,,$(LOGFILES:.log=))
 
 ## If we have to interrupt a hanging test, preserve the log so we can
 ## see what the problem was.
@@ -110,18 +116,27 @@ TESTS = ${LOGFILES:.log=}
 .PHONY: ${TESTS}
 
 ## The short aliases that always re-run the tests, with no logging.
+## Define an alias both with and without the directory name for ease
+## of use.
 define test_template
 $(1):
-       @test ! -f $(1).log || mv $(1).log $(1).log~
-       @${MAKE} $(1).log WRITE_LOG=
+       @test ! -f ./$(1).log || mv ./$(1).log ./$(1).log~
+       @${MAKE} ./$(1).log WRITE_LOG=
+
+$(notdir $(1)): $(1)
 endef
 
 $(foreach test,${TESTS},$(eval $(call test_template,${test})))
 
+## Include dependencies between test files and the files they test.
+## We do this without the file and eval directly, but then we would
+## have to run Emacs for every make invocation, and it might not be
+## available during clean.
+-include make-test-deps.mk
 
 ## Re-run all the tests every time.
 check:
-       -@for f in *.log; do test ! -f $$f || mv $$f $$f~; done
+       -@for f in $(LOGFILES); do test ! -f $$f || mv $$f $$f~; done
        @${MAKE} check-maybe
 
 ## Only re-run tests whose .log is older than the test.
@@ -132,14 +147,19 @@ check-maybe: ${LOGFILES}
 .PHONY: mostlyclean clean bootstrap-clean distclean maintainer-clean
 
 clean mostlyclean:
-       -rm -f *.log *.log~
+       -rm -f ${LOGFILES} ${LOGSAVEFILES}
+       -rm make-test-deps.mk
 
 bootstrap-clean: clean
-       -rm -f ${srcdir}/*.elc
+       -rm -f ${ELCFILES}
 
 distclean: clean
        rm -f Makefile
 
 maintainer-clean: distclean bootstrap-clean
 
+make-test-deps.mk: $(ELFILES) make-test-deps.emacs-lisp
+       $(EMACS) --batch -l $(srcdir)/make-test-deps.emacs-lisp \
+       --eval "(make-test-deps \"$(srcdir)\")" \
+       2> $@
 # Makefile ends here.
diff --git a/test/file-organisation.org b/test/file-organisation.org
new file mode 100644 (file)
index 0000000..226e12d
--- /dev/null
@@ -0,0 +1,54 @@
+#+TITLE: The Location of Emacs-Lisp Tests
+
+
+
+* The Main Emacs Repository
+
+The Emacs repository contains a very large number of Emacs-Lisp files, many of
+which pre-date both formal package support for Emacs and automated unit
+testing.
+
+All paths are relative to the Emacs root directory.
+
+** Source
+
+Lisp files are stored in the ~lisp~ directory or its sub-directories.
+Sub-directories are in many cases themed after packages (~gnus~, ~org~,
+~calc~), related functionality (~net~, ~emacs-lisp~, ~progmodes~) or status
+(~obsolete~).
+
+C source is stored in the ~src~ directory, which is flat.
+
+** Test Files
+
+Automated tests should be stored in the ~test/automated/lisp~ directory. Tests
+should reflect the directory structure of the source tree; so tests for files
+in the ~emacs-lisp~ source directory should reside in the
+~test/lisp/emacs-lisp~ directory.
+
+Tests should normally reside in a file with ~-tests~ added to the name of
+the tested source file; hence ~ert.el~ is tested in ~ert-tests.el~, or
+~pcase.el~ is tested in ~pcase-tests.el~. Exceptionally, tests for a
+single feature may be placed into multiple files of any name which are
+themselves placed in a directory named after the feature with ~-tests~
+appended, such as ~/test/lisp/emacs-lisp/eieio-tests~
+
+Where features of the C source are tested using Emacs-Lisp test files, these
+should reside in ~/test/src~ and be named after the C file.
+
+A few test suites which predate this scheme and do not fit cleanly
+into it are placed in ~/test/lisp/legacy~.
+
+There are also some test materials that cannot be run automatically
+(i.e. via ert). These should be placed in ~/test/manual~
+
+** Resource Files
+
+Resource files for tests (containing test data) should reside in a directory
+named after the feature with a ~-resources~ suffix, and located in the same
+directory as the feature. Hence, the lisp file ~flymake.el~ should have test
+files in ~/test/automated/lisp/progmodes/flymake-tests.el~ should reside in a
+directory called ~/test/automated/lisp/progmodes/flymake-resources~.
+
+No guidance is given for the organization of resource files inside the
+~-resource~ directory; files can be organized at the author's discretion.
similarity index 73%
rename from test/automated/abbrev-tests.el
rename to test/lisp/abbrev-tests.el
index 66413c5a59072a1d8104a223af5b286bd26ccf42..0d93e268a99882f917a7318afa5cfdf2c993669d 100644 (file)
@@ -1,4 +1,4 @@
-;;; abbrev-tests.el --- Test suite for abbrevs.
+;;; abbrev-tests.el --- Test suite for abbrevs  -*- lexical-binding: t; -*-
 
 ;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
 
   (abbrev-table-put ert-test-abbrevs :ert-test "ert-test-value")
   ert-test-abbrevs)
 
+(ert-deftest abbrev-table-p-test ()
+  (should-not (abbrev-table-p 42))
+  (should-not (abbrev-table-p "aoeu"))
+  (should-not (abbrev-table-p '()))
+  (should-not (abbrev-table-p []))
+  ;; Missing :abbrev-table-modiff counter:
+  (should-not (abbrev-table-p (obarray-make)))
+  (let* ((table (obarray-make)))
+    (abbrev-table-put table :abbrev-table-modiff 42)
+    (should (abbrev-table-p table))))
+
+(ert-deftest abbrev-make-abbrev-table-test ()
+  ;; Table without properties:
+  (let ((table (make-abbrev-table)))
+    (should (abbrev-table-p table))
+    (should (= (length table) obarray-default-size)))
+  ;; Table with one property 'foo with value 'bar:
+  (let ((table (make-abbrev-table '(foo bar))))
+    (should (abbrev-table-p table))
+    (should (= (length table) obarray-default-size))
+    (should (eq (abbrev-table-get table 'foo) 'bar))))
+
+(ert-deftest abbrev-table-get-put-test ()
+  (let ((table (make-abbrev-table)))
+    (should-not (abbrev-table-get table 'foo))
+    (should (= (abbrev-table-put table 'foo 42) 42))
+    (should (= (abbrev-table-get table 'foo) 42))
+    (should (eq (abbrev-table-put table 'foo 'bar) 'bar))
+    (should (eq (abbrev-table-get table 'foo) 'bar))))
+
 (ert-deftest copy-abbrev-table-test ()
   (defvar foo-abbrev-table nil)         ; Avoid compiler warning
   (define-abbrev-table 'foo-abbrev-table
     (should (equal t (abbrev-table-empty-p ert-test-abbrevs)))))
 
 (provide 'abbrev-tests)
-
 ;;; abbrev-tests.el ends here
similarity index 99%
rename from test/automated/auto-revert-tests.el
rename to test/lisp/autorevert-tests.el
index 2d6746530e1d34746fbf2b4ac13d07d848bd6d03..b37850054faa55c817f70b915204ca2393bc9c5c 100644 (file)
           ;; Strange, that `copy-directory' does not work as expected.
           ;; The following shell command is not portable on all
           ;; platforms, unfortunately.
-          (shell-command (format "%s -f %s/* %s" cp tmpdir2 tmpdir1))
+          (shell-command (format "%s %s/* %s" cp tmpdir2 tmpdir1))
 
           ;; Check, that the buffers have been reverted.
           (dolist (buf (list buf1 buf2))
diff --git a/test/lisp/dired-tests.el b/test/lisp/dired-tests.el
new file mode 100644 (file)
index 0000000..ff6c88f
--- /dev/null
@@ -0,0 +1,35 @@
+;;; dired-tests.el --- Test suite. -*- lexical-binding: t -*-
+
+;; Copyright (C) 2015 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 'dired)
+
+
+(ert-deftest dired-autoload ()
+  "Tests to see whether dired-x has been autoloaded"
+  (should
+   (fboundp 'dired-jump))
+  (should
+   (autoloadp
+    (symbol-function
+     'dired-jump))))
+
+(provide 'dired-tests)
+;; dired-tests.el ends here
similarity index 99%
rename from test/automated/eieio-tests.el
rename to test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
index bdf66c946f072c9cb3c211563ae26214ea2aaf4a..9665beb490ea8813b06accfbe401d7bf30cbe083 100644 (file)
@@ -895,6 +895,12 @@ Subclasses to override slot attributes.")
 (ert-deftest eieio-test-37-obsolete-name-in-constructor ()
   (should (equal (eieio--testing "toto") '("toto" 2))))
 
+(ert-deftest eieio-autoload ()
+  "Tests to see whether reftex-auc has been autoloaded"
+  (should
+   (fboundp 'eieio--defalias)))
+
+
 (provide 'eieio-tests)
 
 ;;; eieio-tests.el ends here
similarity index 96%
rename from test/automated/package-test.el
rename to test/lisp/emacs-lisp/package-tests.el
index e10946efa966a216bbcf28b98aed1f0283d50948..9afdfe67c26437edcd9dfc476ae56d567b3bdb44 100644 (file)
@@ -97,7 +97,7 @@
                                (multi-file (0 1))))
   "`package-desc' used for testing dependencies.")
 
-(defvar package-test-data-dir (expand-file-name "data/package" package-test-file-dir)
+(defvar package-test-data-dir (expand-file-name "package-resources" package-test-file-dir)
   "Base directory of package test files.")
 
 (defvar package-test-fake-contents-file
@@ -190,18 +190,18 @@ Must called from within a `tar-mode' buffer."
 
 (ert-deftest package-test-desc-from-buffer ()
   "Parse an elisp buffer to get a `package-desc' object."
-  (with-package-test (:basedir "data/package" :file "simple-single-1.3.el")
+  (with-package-test (:basedir "package-resources" :file "simple-single-1.3.el")
     (should (equal (package-buffer-info) simple-single-desc)))
-  (with-package-test (:basedir "data/package" :file "simple-depend-1.0.el")
+  (with-package-test (:basedir "package-resources" :file "simple-depend-1.0.el")
     (should (equal (package-buffer-info) simple-depend-desc)))
-  (with-package-test (:basedir "data/package"
+  (with-package-test (:basedir "package-resources"
                                :file "multi-file-0.2.3.tar")
     (tar-mode)
     (should (equal (package-tar-file-info) multi-file-desc))))
 
 (ert-deftest package-test-install-single ()
   "Install a single file without using an archive."
-  (with-package-test (:basedir "data/package" :file "simple-single-1.3.el")
+  (with-package-test (:basedir "package-resources" :file "simple-single-1.3.el")
     (should (package-install-from-buffer))
     (package-initialize)
     (should (package-installed-p 'simple-single))
@@ -244,7 +244,7 @@ Must called from within a `tar-mode' buffer."
 
 (ert-deftest package-test-macro-compilation ()
   "Install a package which includes a dependency."
-  (with-package-test (:basedir "data/package")
+  (with-package-test (:basedir "package-resources")
     (package-install-file (expand-file-name "macro-problem-package-1.0/"))
     (require 'macro-problem)
     ;; `macro-problem-func' uses a macro from `macro-aux'.
@@ -283,7 +283,7 @@ Must called from within a `tar-mode' buffer."
 (ert-deftest package-test-install-prioritized ()
   "Install a lower version from a higher-prioritized archive."
   (with-package-test ()
-    (let* ((newer-version (expand-file-name "data/package/newer-versions"
+    (let* ((newer-version (expand-file-name "package-resources/newer-versions"
                                             package-test-file-dir))
            (package-archives `(("older" . ,package-test-data-dir)
                                ("newer" . ,newer-version)))
@@ -299,7 +299,7 @@ Must called from within a `tar-mode' buffer."
 
 (ert-deftest package-test-install-multifile ()
   "Check properties of the installed multi-file package."
-  (with-package-test (:basedir "data/package" :install '(multi-file))
+  (with-package-test (:basedir "package-resources" :install '(multi-file))
     (let ((autoload-file
            (expand-file-name "multi-file-autoloads.el"
                              (expand-file-name
@@ -350,7 +350,7 @@ Must called from within a `tar-mode' buffer."
       (package-menu-execute)
       (should (package-installed-p 'simple-single))
       (let ((package-test-data-dir
-             (expand-file-name "data/package/newer-versions" package-test-file-dir)))
+             (expand-file-name "package-resources/newer-versions" package-test-file-dir)))
         (setq package-archives `(("gnu" . ,package-test-data-dir)))
         (package-menu-refresh)
 
@@ -470,7 +470,7 @@ Must called from within a `tar-mode' buffer."
                     (delete-directory homedir t)))))
   (let* ((keyring (expand-file-name "key.pub" package-test-data-dir))
         (package-test-data-dir
-          (expand-file-name "data/package/signed" package-test-file-dir)))
+          (expand-file-name "package-resources/signed" package-test-file-dir)))
     (with-package-test ()
       (package-initialize)
       (package-import-keyring keyring)
@@ -522,7 +522,7 @@ Must called from within a `tar-mode' buffer."
 
 (ert-deftest package-x-test-upload-buffer ()
   "Test creating an \"archive-contents\" file"
-  (with-package-test (:basedir "data/package"
+  (with-package-test (:basedir "package-resources"
                                :file "simple-single-1.3.el"
                                :upload-base t)
     (package-upload-buffer)
@@ -546,7 +546,7 @@ Must called from within a `tar-mode' buffer."
 
 (ert-deftest package-x-test-upload-new-version ()
   "Test uploading a new version of a package"
-  (with-package-test (:basedir "data/package"
+  (with-package-test (:basedir "package-resources"
                                :file "simple-single-1.3.el"
                                :upload-base t)
     (package-upload-buffer)
@@ -613,6 +613,7 @@ Must called from within a `tar-mode' buffer."
                simple-depend-desc-2)))
     (should
      (equal (package--sort-by-dependence delete-list)
+
             (list simple-depend-desc-2 simple-depend-desc-1 new-pkg-desc
                   multi-file-desc simple-depend-desc simple-single-desc)))
     (should
similarity index 50%
rename from test/automated/file-notify-tests.el
rename to test/lisp/filenotify-tests.el
index 5479eb1a34d18df27caac74331c84c387152674f..4cde86c8eeea992745c4c0e6f196c25836e34b2d 100644 (file)
 (defvar file-notify--test-results nil)
 (defvar file-notify--test-event nil)
 (defvar file-notify--test-events nil)
-(defvar file-notify--test-expected-events nil)
 
 (defun file-notify--test-timeout ()
   "Timeout to wait for arriving events, in seconds."
-  (if (file-remote-p temporary-file-directory) 6 3))
+  (cond
+   ((file-remote-p temporary-file-directory) 6)
+   ((string-equal (file-notify--test-library) "w32notify") 20)
+   ((eq system-type 'cygwin) 10)
+   (t 3)))
 
 (defun file-notify--test-cleanup ()
   "Cleanup after a test."
@@ -89,8 +92,7 @@
         file-notify--test-tmpfile1 nil
         file-notify--test-desc nil
         file-notify--test-results nil
-        file-notify--test-events nil
-        file-notify--test-expected-events nil)
+        file-notify--test-events nil)
   (when file-notify--test-event
     (error "file-notify--test-event should not be set but bound dynamically")))
 
@@ -133,6 +135,18 @@ being the result.")
   ;; Return result.
   (cdr file-notify--test-remote-enabled-checked))
 
+(defun file-notify--test-library ()
+  "The used library for the test, as a string.
+In the remote case, it is the process name which runs on the
+remote host, or nil."
+  (if (null (file-remote-p temporary-file-directory))
+      (symbol-name file-notify--library)
+    (and (consp file-notify--test-remote-enabled-checked)
+        (processp (cdr file-notify--test-remote-enabled-checked))
+        (replace-regexp-in-string
+         "<[[:digit:]]+>\\'" ""
+         (process-name (cdr file-notify--test-remote-enabled-checked))))))
+
 (defmacro file-notify--deftest-remote (test docstring)
   "Define ert `TEST-remote' for remote files."
   (declare (indent 1))
@@ -150,12 +164,7 @@ being the result.")
   "Test availability of `file-notify'."
   (skip-unless (file-notify--test-local-enabled))
   ;; Report the native library which has been used.
-  (if (null (file-remote-p temporary-file-directory))
-      (message "Local library: `%s'" file-notify--library)
-    (message "Remote command: `%s'"
-             (replace-regexp-in-string
-              "<[[:digit:]]+>\\'" ""
-              (process-name (cdr file-notify--test-remote-enabled-checked)))))
+  (message "Library: `%s'" (file-notify--test-library))
   (should
    (setq file-notify--test-desc
          (file-notify-add-watch temporary-file-directory '(change) 'ignore)))
@@ -189,12 +198,13 @@ being the result.")
          (file-notify-add-watch
           temporary-file-directory '(change attribute-change) 'ignore)))
   (file-notify-rm-watch file-notify--test-desc)
-  ;; The file does not need to exist, just the upper directory.
+  (write-region "any text" nil file-notify--test-tmpfile nil 'no-message)
   (should
    (setq file-notify--test-desc
          (file-notify-add-watch
           file-notify--test-tmpfile '(change attribute-change) 'ignore)))
   (file-notify-rm-watch file-notify--test-desc)
+  (delete-file file-notify--test-tmpfile)
 
   ;; Check error handling.
   (should-error (file-notify-add-watch 1 2 3 4)
@@ -235,16 +245,17 @@ is bound somewhere."
   (should
    (or (string-equal (file-notify--event-file-name file-notify--test-event)
                     file-notify--test-tmpfile)
-       (string-equal (directory-file-name
-                     (file-name-directory
-                      (file-notify--event-file-name file-notify--test-event)))
-                    file-notify--test-tmpfile)))
+       (string-equal (file-notify--event-file-name file-notify--test-event)
+                    file-notify--test-tmpfile1)
+       (string-equal (file-notify--event-file-name file-notify--test-event)
+                    temporary-file-directory)))
   ;; Check the second file name if exists.
   (when (eq (nth 1 file-notify--test-event) 'renamed)
     (should
-     (string-equal
-      (file-notify--event-file1-name file-notify--test-event)
-      file-notify--test-tmpfile1))))
+     (or (string-equal (file-notify--event-file1-name file-notify--test-event)
+                      file-notify--test-tmpfile1)
+        (string-equal (file-notify--event-file1-name file-notify--test-event)
+                      temporary-file-directory)))))
 
 (defun file-notify--test-event-handler (event)
   "Run a test over FILE-NOTIFY--TEST-EVENT.
@@ -253,7 +264,7 @@ and the event to `file-notify--test-events'."
   (let* ((file-notify--test-event event)
          (result
           (ert-run-test (make-ert-test :body 'file-notify--test-event-test))))
-    ;; Do not add temporary files, this would confuse the checks.
+    ;; Do not add lock files, this would confuse the checks.
     (unless (string-match
             (regexp-quote ".#")
             (file-notify--event-file-name file-notify--test-event))
@@ -277,137 +288,246 @@ TIMEOUT is the maximum time to wait for, in seconds."
 
 (defmacro file-notify--test-with-events (events &rest body)
   "Run BODY collecting events and then compare with EVENTS.
-Don't wait longer than timeout seconds for the events to be delivered."
+EVENTS is either a simple list of events, or a list of lists of
+events, which represent different possible results.  Don't wait
+longer than timeout seconds for the events to be delivered."
   (declare (indent 1))
   (let ((outer (make-symbol "outer")))
-    `(let ((,outer file-notify--test-events))
-       (setq file-notify--test-expected-events
-            (append file-notify--test-expected-events ,events))
+    `(let* ((,outer file-notify--test-events)
+            (events (if (consp (car ,events)) ,events (list ,events)))
+            (max-length (apply 'max (mapcar 'length events)))
+            create-lockfiles result)
+       ;; Flush pending events.
+       (file-notify--wait-for-events
+        (file-notify--test-timeout)
+        (input-pending-p))
        (let (file-notify--test-events)
          ,@body
          (file-notify--wait-for-events
-          (file-notify--test-timeout)
-          (= (length ,events) (length file-notify--test-events)))
-         (should (equal ,events (mapcar #'cadr file-notify--test-events)))
+          ;; More events need more time.  Use some fudge factor.
+          (* (ceiling max-length 100) (file-notify--test-timeout))
+          (= max-length (length file-notify--test-events)))
+         ;; One of the possible results shall match.
+         (should
+          (dolist (elt events result)
+            (setq result
+                  (or result
+                      (equal elt (mapcar #'cadr file-notify--test-events))))))
          (setq ,outer (append ,outer file-notify--test-events)))
        (setq file-notify--test-events ,outer))))
 
 (ert-deftest file-notify-test02-events ()
   "Check file creation/change/removal notifications."
   (skip-unless (file-notify--test-local-enabled))
-  ;; Under cygwin there are so bad timings that it doesn't make sense to test.
-  (skip-unless (not (eq system-type 'cygwin)))
-
-  (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)
-       file-notify--test-tmpfile1 (file-notify--test-make-temp-name))
 
   (unwind-protect
       (progn
-        ;; Check creation, change and deletion.
-       (setq file-notify--test-desc
-              (file-notify-add-watch
-               file-notify--test-tmpfile
-               '(change) 'file-notify--test-event-handler))
-        (file-notify--test-with-events '(created changed deleted)
+        ;; 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"))
+          (setq file-notify--test-tmpfile (file-notify--test-make-temp-name))
+          (should
+           (setq file-notify--test-desc
+                 (file-notify-add-watch
+                  file-notify--test-tmpfile
+                  '(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))
+               (t '(created changed deleted stopped)))
+            (write-region
+             "another text" nil file-notify--test-tmpfile nil 'no-message)
+            (read-event nil nil 0.1)
+            (delete-file file-notify--test-tmpfile))
+          ;; `file-notify-rm-watch' fires the `stopped' event.  Suppress it.
+          (let (file-notify--test-events)
+            (file-notify-rm-watch file-notify--test-desc)))
+
+        ;; Check file change and deletion.
+       (setq file-notify--test-tmpfile (file-notify--test-make-temp-name))
+        (write-region "any text" nil file-notify--test-tmpfile nil 'no-message)
+       (should
+        (setq file-notify--test-desc
+              (file-notify-add-watch
+               file-notify--test-tmpfile
+               '(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))
+             ;; inotify and kqueue raise just one `changed' event.
+             ((or (string-equal "inotify" (file-notify--test-library))
+                  (string-equal "kqueue" (file-notify--test-library)))
+             '(changed deleted stopped))
+             ;; gfilenotify raises one or two `changed' events
+             ;; randomly, no chance to test.  So we accept both cases.
+             ((string-equal "gfilenotify" (file-notify--test-library))
+              '((changed deleted stopped)
+                (changed changed deleted stopped)))
+            (t '(changed changed deleted stopped)))
+          (read-event nil nil 0.1)
           (write-region
-           "any text" nil file-notify--test-tmpfile nil 'no-message)
+           "another text" nil file-notify--test-tmpfile nil 'no-message)
+          (read-event nil nil 0.1)
           (delete-file file-notify--test-tmpfile))
        ;; `file-notify-rm-watch' fires the `stopped' event.  Suppress it.
        (let (file-notify--test-events)
          (file-notify-rm-watch file-notify--test-desc))
 
-        ;; Check creation, change and deletion.  There must be a
-        ;; `stopped' event when deleting the directory.  It doesn't
-        ;; work for w32notify.
-        (unless (eq file-notify--library 'w32notify)
-         (make-directory file-notify--test-tmpfile)
-         (setq file-notify--test-desc
-               (file-notify-add-watch
-                file-notify--test-tmpfile
-                '(change) 'file-notify--test-event-handler))
+        ;; Check file creation, change and deletion when watching a
+        ;; directory.  There must be a `stopped' event when deleting
+        ;; the directory.
+       (let ((temporary-file-directory
+              (make-temp-file "file-notify-test-parent" t)))
+         (should
+          (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)
+                file-notify--test-desc
+                (file-notify-add-watch
+                 temporary-file-directory
+                 '(change) 'file-notify--test-event-handler)))
          (file-notify--test-with-events
-             ;; There are two `deleted' events, for the file and for
-             ;; the directory.
-             '(created changed deleted deleted stopped)
+             (cond
+              ;; w32notify does raise a `stopped' event when a
+              ;; watched directory is deleted.
+              ((string-equal (file-notify--test-library) "w32notify")
+               '(created changed deleted))
+              ;; cygwin recognizes only `deleted' and `stopped' events.
+              ((eq system-type 'cygwin)
+               '(deleted stopped))
+              ;; There are two `deleted' events, for the file and for
+              ;; the directory.  Except for kqueue.
+              ((string-equal (file-notify--test-library) "kqueue")
+               '(created changed deleted stopped))
+              (t '(created changed deleted deleted stopped)))
+           (read-event nil nil 0.1)
            (write-region
-            "any text" nil (expand-file-name "foo" file-notify--test-tmpfile)
-            nil 'no-message)
-           (delete-directory file-notify--test-tmpfile 'recursive))
+            "any text" nil file-notify--test-tmpfile nil 'no-message)
+           (read-event nil nil 0.1)
+           (delete-directory temporary-file-directory 'recursive))
          ;; `file-notify-rm-watch' fires the `stopped' event.  Suppress it.
          (let (file-notify--test-events)
            (file-notify-rm-watch file-notify--test-desc)))
 
-        ;; Check copy.
-        (setq file-notify--test-desc
-              (file-notify-add-watch
-               file-notify--test-tmpfile
-               '(change) 'file-notify--test-event-handler))
-        (should file-notify--test-desc)
-        (file-notify--test-with-events
-            ;; w32notify does not distinguish between `changed' and
-            ;; `attribute-changed'.
-            (if (eq file-notify--library 'w32notify)
-                '(created changed changed deleted)
-              '(created changed deleted))
-          (write-region
-           "any text" nil file-notify--test-tmpfile nil 'no-message)
-          (copy-file file-notify--test-tmpfile file-notify--test-tmpfile1)
-          ;; The next two events shall not be visible.
-          (set-file-modes file-notify--test-tmpfile 000)
-          (read-event nil nil 0.1) ; In order to distinguish the events.
-          (set-file-times file-notify--test-tmpfile '(0 0))
-          (delete-file file-notify--test-tmpfile)
-          (delete-file file-notify--test-tmpfile1))
-       ;; `file-notify-rm-watch' fires the `stopped' event.  Suppress it.
-       (let (file-notify--test-events)
-         (file-notify-rm-watch file-notify--test-desc))
+        ;; Check copy of files inside a directory.
+       (let ((temporary-file-directory
+              (make-temp-file "file-notify-test-parent" t)))
+         (should
+          (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)
+                file-notify--test-tmpfile1 (file-notify--test-make-temp-name)
+                file-notify--test-desc
+                (file-notify-add-watch
+                 temporary-file-directory
+                 '(change) 'file-notify--test-event-handler)))
+         (file-notify--test-with-events
+             (cond
+              ;; w32notify does not distinguish between `changed' and
+              ;; `attribute-changed'.
+              ((string-equal (file-notify--test-library) "w32notify")
+               '(created changed created changed changed changed changed
+                 deleted deleted))
+              ;; cygwin recognizes only `deleted' and `stopped' events.
+              ((eq system-type 'cygwin)
+               '(deleted stopped))
+              ;; There are three `deleted' events, for two files and
+              ;; for the directory.  Except for kqueue.
+              ((string-equal (file-notify--test-library) "kqueue")
+               '(created changed created changed deleted stopped))
+              (t '(created changed created changed
+                   deleted deleted deleted stopped)))
+           (read-event nil nil 0.1)
+           (write-region
+            "any text" nil file-notify--test-tmpfile nil 'no-message)
+           (read-event nil nil 0.1)
+           (copy-file file-notify--test-tmpfile file-notify--test-tmpfile1)
+           ;; The next two events shall not be visible.
+           (read-event nil nil 0.1)
+           (set-file-modes file-notify--test-tmpfile 000)
+           (read-event nil nil 0.1)
+           (set-file-times file-notify--test-tmpfile '(0 0))
+           (read-event nil nil 0.1)
+           (delete-directory temporary-file-directory 'recursive))
+         ;; `file-notify-rm-watch' fires the `stopped' event.  Suppress it.
+         (let (file-notify--test-events)
+           (file-notify-rm-watch file-notify--test-desc)))
 
-        ;; Check rename.
-        (setq file-notify--test-desc
-              (file-notify-add-watch
-               file-notify--test-tmpfile
-               '(change) 'file-notify--test-event-handler))
-        (should file-notify--test-desc)
-        (file-notify--test-with-events '(created changed renamed)
-          (write-region
-           "any text" nil file-notify--test-tmpfile nil 'no-message)
-          (rename-file file-notify--test-tmpfile file-notify--test-tmpfile1)
-          ;; After the rename, we won't get events anymore.
-          (delete-file file-notify--test-tmpfile1))
-       ;; `file-notify-rm-watch' fires the `stopped' event.  Suppress it.
-       (let (file-notify--test-events)
-         (file-notify-rm-watch file-notify--test-desc))
+        ;; Check rename of files inside a directory.
+       (let ((temporary-file-directory
+              (make-temp-file "file-notify-test-parent" t)))
+         (should
+          (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)
+                file-notify--test-tmpfile1 (file-notify--test-make-temp-name)
+                file-notify--test-desc
+                (file-notify-add-watch
+                 temporary-file-directory
+                 '(change) 'file-notify--test-event-handler)))
+         (file-notify--test-with-events
+             (cond
+              ;; w32notify does not distinguish between `changed' and
+              ;; `attribute-changed'.
+              ((string-equal (file-notify--test-library) "w32notify")
+               '(created changed renamed deleted))
+              ;; cygwin recognizes only `deleted' and `stopped' events.
+              ((eq system-type 'cygwin)
+               '(deleted stopped))
+              ;; There are two `deleted' events, for the file and for
+              ;; the directory.  Except for kqueue.
+              ((string-equal (file-notify--test-library) "kqueue")
+               '(created changed renamed deleted stopped))
+              (t '(created changed renamed deleted deleted stopped)))
+           (read-event nil nil 0.1)
+           (write-region
+            "any text" nil file-notify--test-tmpfile nil 'no-message)
+           (read-event nil nil 0.1)
+           (rename-file file-notify--test-tmpfile file-notify--test-tmpfile1)
+           ;; After the rename, we won't get events anymore.
+           (read-event nil nil 0.1)
+           (delete-directory temporary-file-directory 'recursive))
+         ;; `file-notify-rm-watch' fires the `stopped' event.  Suppress it.
+         (let (file-notify--test-events)
+           (file-notify-rm-watch file-notify--test-desc)))
 
-        ;; Check attribute change.  It doesn't work for w32notify.
-        (unless (eq file-notify--library 'w32notify)
-          (setq file-notify--test-desc
-                (file-notify-add-watch
-                 file-notify--test-tmpfile
-                 '(attribute-change) 'file-notify--test-event-handler))
-          (file-notify--test-with-events
-              (if (file-remote-p temporary-file-directory)
-                  ;; In the remote case, `write-region' raises also an
-                  ;; `attribute-changed' event.
-                  '(attribute-changed attribute-changed attribute-changed)
-                '(attribute-changed attribute-changed))
-            ;; We must use short delays between the operations.
-            ;; Otherwise, not all events arrive us in the remote case.
-            (write-region
-             "any text" nil file-notify--test-tmpfile nil 'no-message)
-            (read-event nil nil 0.1)
-            (set-file-modes file-notify--test-tmpfile 000)
-            (read-event nil nil 0.1)
-            (set-file-times file-notify--test-tmpfile '(0 0))
-            (read-event nil nil 0.1)
-            (delete-file file-notify--test-tmpfile))
+        ;; Check attribute change.  Does not work for cygwin.
+       (unless (eq system-type 'cygwin)
+         (setq file-notify--test-tmpfile (file-notify--test-make-temp-name))
+         (write-region
+          "any text" nil file-notify--test-tmpfile nil 'no-message)
+         (should
+          (setq file-notify--test-desc
+                (file-notify-add-watch
+                 file-notify--test-tmpfile
+                 '(attribute-change) 'file-notify--test-event-handler)))
+         (file-notify--test-with-events
+             (cond
+              ;; w32notify does not distinguish between `changed' and
+              ;; `attribute-changed'.
+              ((string-equal (file-notify--test-library) "w32notify")
+               '(changed changed changed changed))
+              ;; For kqueue and in the remote case, `write-region'
+              ;; raises also an `attribute-changed' event.
+              ((or (string-equal (file-notify--test-library) "kqueue")
+                   (file-remote-p temporary-file-directory))
+               '(attribute-changed attribute-changed attribute-changed))
+              (t '(attribute-changed attribute-changed)))
+           (read-event nil nil 0.1)
+           (write-region
+            "any text" nil file-notify--test-tmpfile nil 'no-message)
+           (read-event nil nil 0.1)
+           (set-file-modes file-notify--test-tmpfile 000)
+           (read-event nil nil 0.1)
+           (set-file-times file-notify--test-tmpfile '(0 0))
+           (read-event nil nil 0.1)
+           (delete-file file-notify--test-tmpfile))
          ;; `file-notify-rm-watch' fires the `stopped' event.  Suppress it.
          (let (file-notify--test-events)
            (file-notify-rm-watch file-notify--test-desc)))
 
         ;; Check the global sequence again just to make sure that
         ;; `file-notify--test-events' has been set correctly.
-        (should (equal (mapcar #'cadr file-notify--test-events)
-                      file-notify--test-expected-events))
         (should file-notify--test-results)
         (dolist (result file-notify--test-results)
           (when (ert-test-failed-p result)
@@ -475,28 +595,31 @@ Don't wait longer than timeout seconds for the events to be delivered."
            (should (string-match "another text" (buffer-string)))
 
             ;; Stop file notification.  Autorevert shall still work via polling.
-           (file-notify-rm-watch auto-revert-notify-watch-descriptor)
-            (file-notify--wait-for-events
-             timeout (null auto-revert-use-notify))
-           (should-not auto-revert-use-notify)
-           (should-not auto-revert-notify-watch-descriptor)
-
-           ;; Modify file.  We wait for two seconds, in order to have
-           ;; another timestamp.  One second seems to be too short.
-            (with-current-buffer (get-buffer-create "*Messages*")
-              (narrow-to-region (point-max) (point-max)))
-           (sleep-for 2)
-            (write-region
-             "foo bla" nil file-notify--test-tmpfile nil 'no-message)
-
-           ;; Check, that the buffer has been reverted.
-           (with-current-buffer (get-buffer-create "*Messages*")
+           ;; It doesn't work for `w32notify'.
+           (unless (string-equal (file-notify--test-library) "w32notify")
+             (file-notify-rm-watch auto-revert-notify-watch-descriptor)
              (file-notify--wait-for-events
-              timeout
-              (string-match
-                (format-message "Reverting buffer `%s'." (buffer-name buf))
-                (buffer-string))))
-           (should (string-match "foo bla" (buffer-string)))))
+              timeout (null auto-revert-use-notify))
+             (should-not auto-revert-use-notify)
+             (should-not auto-revert-notify-watch-descriptor)
+
+             ;; Modify file.  We wait for two seconds, in order to
+             ;; have another timestamp.  One second seems to be too
+             ;; short.
+             (with-current-buffer (get-buffer-create "*Messages*")
+               (narrow-to-region (point-max) (point-max)))
+             (sleep-for 2)
+             (write-region
+              "foo bla" nil file-notify--test-tmpfile nil 'no-message)
+
+             ;; Check, that the buffer has been reverted.
+             (with-current-buffer (get-buffer-create "*Messages*")
+               (file-notify--wait-for-events
+                timeout
+                (string-match
+                 (format-message "Reverting buffer `%s'." (buffer-name buf))
+                 (buffer-string))))
+             (should (string-match "foo bla" (buffer-string))))))
 
       ;; Cleanup.
       (with-current-buffer "*Messages*" (widen))
@@ -509,51 +632,94 @@ Don't wait longer than timeout seconds for the events to be delivered."
 (ert-deftest file-notify-test04-file-validity ()
   "Check `file-notify-valid-p' for files."
   (skip-unless (file-notify--test-local-enabled))
-  ;; Under cygwin there are so bad timings that it doesn't make sense to test.
-  (skip-unless (not (eq system-type 'cygwin)))
 
   (unwind-protect
       (progn
-        (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)
-              file-notify--test-desc
-              (file-notify-add-watch
-               file-notify--test-tmpfile
-               '(change) #'file-notify--test-event-handler))
-        (file-notify--test-with-events '(created changed deleted)
+        (setq file-notify--test-tmpfile (file-notify--test-make-temp-name))
+       (write-region "any text" nil file-notify--test-tmpfile nil 'no-message)
+       (should
+        (setq file-notify--test-desc
+              (file-notify-add-watch
+               file-notify--test-tmpfile
+               '(change) #'file-notify--test-event-handler)))
+        (should (file-notify-valid-p file-notify--test-desc))
+       ;; After calling `file-notify-rm-watch', the descriptor is not
+       ;; valid anymore.
+        (file-notify-rm-watch file-notify--test-desc)
+        (should-not (file-notify-valid-p file-notify--test-desc))
+       (delete-file file-notify--test-tmpfile))
+
+    ;; Cleanup.
+    (file-notify--test-cleanup))
+
+  (unwind-protect
+      (progn
+        (setq file-notify--test-tmpfile (file-notify--test-make-temp-name))
+       (write-region "any text" nil file-notify--test-tmpfile nil 'no-message)
+       (should
+        (setq file-notify--test-desc
+              (file-notify-add-watch
+               file-notify--test-tmpfile
+               '(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))
+             ;; inotify and kqueue raise just one `changed' event.
+             ((or (string-equal "inotify" (file-notify--test-library))
+                  (string-equal "kqueue" (file-notify--test-library)))
+             '(changed deleted stopped))
+             ;; gfilenotify raises one or two `changed' events
+             ;; randomly, no chance to test.  So we accept both cases.
+             ((string-equal "gfilenotify" (file-notify--test-library))
+              '((changed deleted stopped)
+                (changed changed deleted stopped)))
+            (t '(changed changed deleted stopped)))
           (should (file-notify-valid-p file-notify--test-desc))
+         (read-event nil nil 0.1)
           (write-region
-           "any text" nil file-notify--test-tmpfile nil 'no-message)
+           "another text" nil file-notify--test-tmpfile nil 'no-message)
+         (read-event nil nil 0.1)
          (delete-file file-notify--test-tmpfile))
-       ;; After deleting the file, the descriptor is still valid.
-        (should (file-notify-valid-p file-notify--test-desc))
-       ;; After removing the watch, the descriptor must not be valid
-        ;; anymore.
-        (file-notify-rm-watch file-notify--test-desc)
-        (should-not (file-notify-valid-p file-notify--test-desc)))
+       ;; After deleting the file, the descriptor is not valid anymore.
+        (should-not (file-notify-valid-p file-notify--test-desc))
+        (file-notify-rm-watch file-notify--test-desc))
 
     ;; Cleanup.
     (file-notify--test-cleanup))
 
   (unwind-protect
-      ;; The batch-mode operation of w32notify is fragile (there's no
-      ;; input threads to send the message to).
-      ;(unless (and noninteractive (eq file-notify--library 'w32notify))
-      (unless (eq file-notify--library 'w32notify)
-        (let ((temporary-file-directory
+      ;; w32notify does not send a `stopped' event when deleting a
+      ;; directory.  The test does not work, therefore.
+      (unless (string-equal (file-notify--test-library) "w32notify")
+       (let ((temporary-file-directory
               (make-temp-file "file-notify-test-parent" t)))
-          (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)
-                file-notify--test-desc
-                (file-notify-add-watch
-                 file-notify--test-tmpfile
-                 '(change) #'file-notify--test-event-handler))
-          (file-notify--test-with-events '(created changed deleted stopped)
-            (should (file-notify-valid-p file-notify--test-desc))
-            (write-region
-             "any text" nil file-notify--test-tmpfile nil 'no-message)
+         (should
+          (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)
+                file-notify--test-desc
+                (file-notify-add-watch
+                 temporary-file-directory
+                 '(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 are two `deleted' events, for the file and for
+              ;; the directory.  Except for kqueue.
+              ((string-equal (file-notify--test-library) "kqueue")
+               '(created changed deleted stopped))
+              (t '(created changed deleted deleted stopped)))
+           (should (file-notify-valid-p file-notify--test-desc))
+           (read-event nil nil 0.1)
+           (write-region
+            "any text" nil file-notify--test-tmpfile nil 'no-message)
+           (read-event nil nil 0.1)
            (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))))
+         ;; After deleting the parent directory, the descriptor must
+         ;; not be valid anymore.
+         (should-not (file-notify-valid-p file-notify--test-desc))))
 
     ;; Cleanup.
     (file-notify--test-cleanup)))
@@ -570,10 +736,11 @@ Don't wait longer than timeout seconds for the events to be delivered."
         (setq file-notify--test-tmpfile
              (file-name-as-directory (file-notify--test-make-temp-name)))
         (make-directory file-notify--test-tmpfile)
-        (setq file-notify--test-desc
-              (file-notify-add-watch
-               file-notify--test-tmpfile
-               '(change) #'file-notify--test-event-handler))
+       (should
+        (setq file-notify--test-desc
+              (file-notify-add-watch
+               file-notify--test-tmpfile
+               '(change) #'file-notify--test-event-handler)))
         (should (file-notify-valid-p file-notify--test-desc))
         ;; After removing the watch, the descriptor must not be valid
         ;; anymore.
@@ -589,20 +756,22 @@ Don't wait longer than timeout seconds for the events to be delivered."
   (unwind-protect
       ;; The batch-mode operation of w32notify is fragile (there's no
       ;; input threads to send the message to).
-      (unless (and noninteractive (eq file-notify--library 'w32notify))
+      (unless (and noninteractive
+                  (string-equal (file-notify--test-library) "w32notify"))
         (setq file-notify--test-tmpfile
              (file-name-as-directory (file-notify--test-make-temp-name)))
         (make-directory file-notify--test-tmpfile)
-        (setq file-notify--test-desc
-              (file-notify-add-watch
-               file-notify--test-tmpfile
-               '(change) #'file-notify--test-event-handler))
+       (should
+        (setq file-notify--test-desc
+              (file-notify-add-watch
+               file-notify--test-tmpfile
+               '(change) #'file-notify--test-event-handler)))
         (should (file-notify-valid-p file-notify--test-desc))
         ;; After deleting the directory, the descriptor must not be
         ;; valid anymore.
         (delete-directory file-notify--test-tmpfile t)
         (file-notify--wait-for-events
-         (file-notify--test-timeout)
+        (file-notify--test-timeout)
         (not (file-notify-valid-p file-notify--test-desc)))
         (should-not (file-notify-valid-p file-notify--test-desc)))
 
@@ -612,6 +781,61 @@ Don't wait longer than timeout seconds for the events to be delivered."
 (file-notify--deftest-remote file-notify-test05-dir-validity
   "Check `file-notify-valid-p' via file notification for remote directories.")
 
+(ert-deftest file-notify-test06-many-events ()
+  "Check that events are not dropped."
+  (skip-unless (file-notify--test-local-enabled))
+  ;; Under cygwin events arrive in random order.  Impossible to define a test.
+  (skip-unless (not (eq system-type 'cygwin)))
+
+  (setq file-notify--test-tmpfile (file-notify--test-make-temp-name))
+  (make-directory file-notify--test-tmpfile)
+  (should
+   (setq file-notify--test-desc
+        (file-notify-add-watch
+         file-notify--test-tmpfile
+         '(change) 'file-notify--test-event-handler)))
+  (unwind-protect
+      (let ((n 1000)
+            source-file-list target-file-list
+            (default-directory file-notify--test-tmpfile))
+        (dotimes (i n)
+         ;; It matters which direction we rename, at least for
+         ;; kqueue.  This backend parses directories in alphabetic
+         ;; order (x%d before y%d).  So we rename both directions.
+         (if (zerop (mod i 2))
+             (progn
+               (push (expand-file-name (format "x%d" i)) source-file-list)
+               (push (expand-file-name (format "y%d" i)) target-file-list))
+           (push (expand-file-name (format "y%d" i)) source-file-list)
+           (push (expand-file-name (format "x%d" i)) target-file-list)))
+        (file-notify--test-with-events (make-list (+ n n) 'created)
+          (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 0.1)
+              (write-region "" nil (pop source-file-list) nil 'no-message)
+              (read-event nil nil 0.1)
+              (write-region "" nil (pop target-file-list) nil 'no-message))))
+        (file-notify--test-with-events
+           (cond
+            ;; w32notify fires both `deleted' and `renamed' events.
+            ((string-equal (file-notify--test-library) "w32notify")
+             (let (r)
+               (dotimes (_i n r)
+                 (setq r (append '(deleted renamed) 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)
+              (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)
+            (delete-file file))))
+    (file-notify--test-cleanup)))
+
+(file-notify--deftest-remote file-notify-test06-many-events
+   "Check that events are not dropped for remote directories.")
+
 (defun file-notify-test-all (&optional interactive)
   "Run all tests for \\[file-notify]."
   (interactive "p")
@@ -622,7 +846,7 @@ Don't wait longer than timeout seconds for the events to be delivered."
 ;; TODO:
 
 ;; * For w32notify, no stopped events arrive when a directory is removed.
-;; * Try to handle arriving events under cygwin reliably.
+;; * Check, why cygwin recognizes only `deleted' and `stopped' events.
 
 (provide 'file-notify-tests)
 ;;; file-notify-tests.el ends here
diff --git a/test/lisp/htmlfontify-tests.el b/test/lisp/htmlfontify-tests.el
new file mode 100644 (file)
index 0000000..a5a92fa
--- /dev/null
@@ -0,0 +1,34 @@
+;;; htmlfontify-tests.el --- Test suite. -*- lexical-binding: t -*-
+
+;; Copyright (C) 2015 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 'htmlfontify)
+
+(ert-deftest htmlfontify-autoload ()
+  "Tests to see whether reftex-auc has been autoloaded"
+  (should
+   (fboundp 'htmlfontify-load-rgb-file))
+  (should
+   (autoloadp
+    (symbol-function
+     'htmlfontify-load-rgb-file))))
+
+(provide 'htmlfontify-tests)
+;; htmlfontify-tests.el ends here
diff --git a/test/lisp/ibuffer-tests.el b/test/lisp/ibuffer-tests.el
new file mode 100644 (file)
index 0000000..c813e71
--- /dev/null
@@ -0,0 +1,34 @@
+;;; ibuffer-tests.el --- Test suite. -*- lexical-binding: t -*-
+
+;; Copyright (C) 2015 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 'ibuffer)
+
+(ert-deftest ibuffer-autoload ()
+  "Tests to see whether reftex-auc has been autoloaded"
+  (should
+   (fboundp 'ibuffer-mark-unsaved-buffers))
+  (should
+   (autoloadp
+    (symbol-function
+     'ibuffer-mark-unsaved-buffers))))
+
+(provide 'ibuffer-tests)
+;; ibuffer-tests.el ends here
diff --git a/test/lisp/mail/rmail-tests.el b/test/lisp/mail/rmail-tests.el
new file mode 100644 (file)
index 0000000..ed481d0
--- /dev/null
@@ -0,0 +1,35 @@
+;;; rmail-tests.el --- Test suite. -*- lexical-binding: t -*-
+
+;; Copyright (C) 2015 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 'rmail)
+
+
+(ert-deftest rmail-autoload ()
+  "Tests to see whether reftex-auc has been autoloaded"
+  (should
+   (fboundp 'rmail-edit-current-message))
+  (should
+   (autoloadp
+    (symbol-function
+     'rmail-edit-current-message))))
+
+(provide 'rmail-tests)
+;; rmail-tests.el ends here
similarity index 95%
rename from test/automated/elisp-mode-tests.el
rename to test/lisp/progmodes/elisp-mode-tests.el
index f3f15ad3dbd62547e7af2ec72c0f1cebdf58078f..1679af308213b8d74bfe2d61d50349a607288388 100644 (file)
@@ -244,7 +244,7 @@ to (xref-elisp-test-descr-to-target xref)."
     (xref-make "(cl-defstruct (xref-elisp-location (:constructor xref-make-elisp-location)))"
                (xref-make-elisp-location
                 'xref-elisp-location 'define-type
-                (expand-file-name "../../lisp/progmodes/elisp-mode.el" emacs-test-dir)))
+                (expand-file-name "../../../lisp/progmodes/elisp-mode.el" emacs-test-dir)))
     ;; It's not worth adding another special case to `xref-elisp-test-descr-to-target' for this
     "(cl-defstruct (xref-elisp-location")
    ))
@@ -255,11 +255,11 @@ to (xref-elisp-test-descr-to-target xref)."
    (xref-make "(defalias Buffer-menu-sort)"
              (xref-make-elisp-location
               'Buffer-menu-sort 'defalias
-              (expand-file-name "../../lisp/buff-menu.elc" emacs-test-dir)))
+              (expand-file-name "../../../lisp/buff-menu.elc" emacs-test-dir)))
    (xref-make "(defun tabulated-list-sort)"
              (xref-make-elisp-location
               'tabulated-list-sort nil
-              (expand-file-name "../../lisp/emacs-lisp/tabulated-list.el" emacs-test-dir)))
+              (expand-file-name "../../../lisp/emacs-lisp/tabulated-list.el" emacs-test-dir)))
    ))
 
 ;; FIXME: defconst
@@ -406,27 +406,27 @@ to (xref-elisp-test-descr-to-target xref)."
    (xref-make "(cl-defgeneric xref-location-marker)"
              (xref-make-elisp-location
               'xref-location-marker 'cl-defgeneric
-              (expand-file-name "../../lisp/progmodes/xref.el" emacs-test-dir)))
+              (expand-file-name "../../../lisp/progmodes/xref.el" emacs-test-dir)))
    (xref-make "(cl-defmethod xref-location-marker ((l xref-elisp-location)))"
              (xref-make-elisp-location
               '(xref-location-marker xref-elisp-location) 'cl-defmethod
-              (expand-file-name "../../lisp/progmodes/elisp-mode.el" emacs-test-dir)))
+              (expand-file-name "../../../lisp/progmodes/elisp-mode.el" emacs-test-dir)))
    (xref-make "(cl-defmethod xref-location-marker ((l xref-file-location)))"
              (xref-make-elisp-location
               '(xref-location-marker xref-file-location) 'cl-defmethod
-              (expand-file-name "../../lisp/progmodes/xref.el" emacs-test-dir)))
+              (expand-file-name "../../../lisp/progmodes/xref.el" emacs-test-dir)))
    (xref-make "(cl-defmethod xref-location-marker ((l xref-buffer-location)))"
              (xref-make-elisp-location
               '(xref-location-marker xref-buffer-location) 'cl-defmethod
-              (expand-file-name "../../lisp/progmodes/xref.el" emacs-test-dir)))
+              (expand-file-name "../../../lisp/progmodes/xref.el" emacs-test-dir)))
    (xref-make "(cl-defmethod xref-location-marker ((l xref-bogus-location)))"
              (xref-make-elisp-location
               '(xref-location-marker xref-bogus-location) 'cl-defmethod
-              (expand-file-name "../../lisp/progmodes/xref.el" emacs-test-dir)))
+              (expand-file-name "../../../lisp/progmodes/xref.el" emacs-test-dir)))
    (xref-make "(cl-defmethod xref-location-marker ((l xref-etags-location)))"
               (xref-make-elisp-location
                '(xref-location-marker xref-etags-location) 'cl-defmethod
-               (expand-file-name "../../lisp/progmodes/etags.el" emacs-test-dir)))
+               (expand-file-name "../../../lisp/progmodes/etags.el" emacs-test-dir)))
    ))
 
 (xref-elisp-deftest find-defs-defgeneric-eval
@@ -528,7 +528,7 @@ to (xref-elisp-test-descr-to-target xref)."
    (xref-make "(defun xref-find-definitions)"
              (xref-make-elisp-location
               'xref-find-definitions nil
-              (expand-file-name "../../lisp/progmodes/xref.el" emacs-test-dir)))))
+              (expand-file-name "../../../lisp/progmodes/xref.el" emacs-test-dir)))))
 
 (xref-elisp-deftest find-defs-defun-eval
   (elisp--xref-find-definitions (eval '(defun stephe-leake-defun ())))
@@ -561,7 +561,7 @@ to (xref-elisp-test-descr-to-target xref)."
     (xref-make "(defun abbrev-mode)"
                (xref-make-elisp-location
                 'abbrev-mode nil
-                (expand-file-name "../../lisp/abbrev.el" emacs-test-dir)))
+                (expand-file-name "../../../lisp/abbrev.el" emacs-test-dir)))
     "(define-minor-mode abbrev-mode"))
   )
 
@@ -582,7 +582,7 @@ to (xref-elisp-test-descr-to-target xref)."
     (xref-make "(defun compilation-minor-mode)"
                (xref-make-elisp-location
                 'compilation-minor-mode nil
-                (expand-file-name "../../lisp/progmodes/compile.el" emacs-test-dir)))
+                (expand-file-name "../../../lisp/progmodes/compile.el" emacs-test-dir)))
     "(define-minor-mode compilation-minor-mode")
    ))
 
@@ -592,7 +592,7 @@ to (xref-elisp-test-descr-to-target xref)."
    (xref-make "(defvar xref--marker-ring)"
              (xref-make-elisp-location
               'xref--marker-ring 'defvar
-              (expand-file-name "../../lisp/progmodes/xref.el" emacs-test-dir)))
+              (expand-file-name "../../../lisp/progmodes/xref.el" emacs-test-dir)))
     ))
 
 (xref-elisp-deftest find-defs-defvar-c
@@ -615,11 +615,11 @@ to (xref-elisp-test-descr-to-target xref)."
    (xref-make "(defvar font-lock-keyword-face)"
              (xref-make-elisp-location
               'font-lock-keyword-face 'defvar
-              (expand-file-name "../../lisp/font-lock.el" emacs-test-dir)))
+              (expand-file-name "../../../lisp/font-lock.el" emacs-test-dir)))
    (xref-make "(defface font-lock-keyword-face)"
              (xref-make-elisp-location
               'font-lock-keyword-face 'defface
-              (expand-file-name "../../lisp/font-lock.el" emacs-test-dir)))
+              (expand-file-name "../../../lisp/font-lock.el" emacs-test-dir)))
    ))
 
 (xref-elisp-deftest find-defs-face-eval
@@ -633,7 +633,7 @@ to (xref-elisp-test-descr-to-target xref)."
     (xref-make "(feature xref)"
              (xref-make-elisp-location
               'xref 'feature
-              (expand-file-name "../../lisp/progmodes/xref.el" emacs-test-dir)))
+              (expand-file-name "../../../lisp/progmodes/xref.el" emacs-test-dir)))
     ";;; Code:")
    ))
 
similarity index 97%
rename from test/automated/flymake-tests.el
rename to test/lisp/progmodes/flymake-tests.el
index f3b830d36542690d92c7adbd1c10b20698b058ad..386516190bb42461f6ac18e29eca489e223803c5 100644 (file)
@@ -26,7 +26,7 @@
 (require 'flymake)
 
 (defvar flymake-tests-data-directory
-  (expand-file-name "data/flymake" (getenv "EMACS_TEST_DIRECTORY"))
+  (expand-file-name "lisp/progmodes/flymake-resources" (getenv "EMACS_TEST_DIRECTORY"))
   "Directory containing flymake test data.")
 
 \f
diff --git a/test/lisp/ps-print-tests.el b/test/lisp/ps-print-tests.el
new file mode 100644 (file)
index 0000000..67c3fbb
--- /dev/null
@@ -0,0 +1,36 @@
+;;; ps-print-tests.el --- Test suite for ps-print.el  -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Author: Phillip Lord <phillip.lord@russet.org.uk>
+
+;; 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 'ps-print)
+(require 'ert)
+
+;;; Autoload tests
+(ert-deftest ps-mule-autoload ()
+  "Tests to see whether ps-mule has been autoloaded"
+  (should
+   (fboundp 'ps-mule-initialize))
+  (should
+   (autoloadp
+    (symbol-function
+     'ps-mule-initialize))))
similarity index 96%
rename from test/automated/reftex-tests.el
rename to test/lisp/textmodes/reftex-tests.el
index 0f1186d8a825cdc85fd9939bf539b923c57e31f9..12ec7f5a394dbad2da852f39fe8a59221a218fe5 100644 (file)
     (should (string= (reftex-format-citation entry "%l:%A:%y:%t %j %P %a")
                      "Foo13:Jane Roe:2013:Some Article Some Journal 1 Jane Roe, John Doe \\& Jane Taxpayer"))))
 
+
+;;; Autoload tests
+
+;; Test to check whether reftex autoloading mechanisms are working
+;; correctly.
+(ert-deftest reftex-autoload-auc ()
+  "Tests to see whether reftex-auc has been autoloaded"
+  (should
+   (fboundp 'reftex-arg-label))
+  (should
+   (autoloadp
+    (symbol-function
+     'reftex-arg-label))))
+
+
 (provide 'reftex-tests)
 ;;; reftex-tests.el ends here.
diff --git a/test/make-test-deps.emacs-lisp b/test/make-test-deps.emacs-lisp
new file mode 100644 (file)
index 0000000..3af0685
--- /dev/null
@@ -0,0 +1,98 @@
+;; -*- emacs-lisp -*-
+
+;; Copyright (C) 2015 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:
+
+;; This file generates dependencies between test files and the files
+;; that they test.
+
+;; It has an .emacs-lisp extension because it makes the Makefile easier!
+
+(require 'seq)
+
+(defun make-test-deps (src-dir)
+  (let ((src-dir (file-truename src-dir)))
+    (message
+     "%s"
+     (concat
+      (make-test-deps-lisp src-dir)
+      (make-test-deps-src src-dir)))))
+
+(defun make-test-deps-lisp (src-dir)
+  (mapconcat
+   (lambda (file-without-suffix)
+     (format "./%s-tests.log: %s/../%s.el\n"
+             file-without-suffix
+             src-dir
+             file-without-suffix))
+   (make-test-test-files src-dir "lisp") ""))
+
+(defun make-test-deps-src (src-dir)
+  (mapconcat
+   (lambda (file-without-suffix)
+     (format "./%s-tests.log: %s/../%s.c\n"
+             file-without-suffix
+             src-dir
+             file-without-suffix))
+   (make-test-test-files src-dir "src") ""))
+
+(defun make-test-test-files (src-dir sub-src-dir)
+  (make-test-munge-files
+   src-dir
+   (directory-files-recursively
+    (concat src-dir "/"  sub-src-dir)
+    ".*-tests.el$")))
+
+(defun make-test-munge-files (src-dir files)
+  (make-test-sans-suffix
+   (make-test-de-stem
+    src-dir
+    (make-test-no-legacy
+     (make-test-no-test-dir
+      (make-test-no-resources
+       files))))))
+
+(defun make-test-sans-suffix (files)
+  (mapcar
+   (lambda (file)
+     (substring file 0 -9))
+   files))
+
+(defun make-test-de-stem (stem files)
+  (mapcar
+   (lambda (file)
+     (substring
+      file
+      (+ 1 (length stem))))
+   files))
+
+(defun make-test-no-legacy (list)
+  (make-test-remove list "legacy/"))
+
+(defun make-test-no-resources (list)
+  (make-test-remove list "-resources/"))
+
+(defun make-test-no-test-dir (list)
+  (make-test-remove list "-tests/"))
+
+(defun make-test-remove (list match)
+  (seq-remove
+   (lambda (file)
+     (string-match-p match file))
+   list))
similarity index 100%
rename from test/biditest.el
rename to test/manual/biditest.el
similarity index 98%
rename from test/etags/Makefile
rename to test/manual/etags/Makefile
index 00d5b9f52b215be1a30bf268c0e0dd9359e30db1..4d9f358c8ed8c748f8c9fc122f832a37bb81d074 100644 (file)
@@ -32,8 +32,8 @@ SRCS=${ADASRC} ${ASRC} ${CSRC} ${CPSRC} ${ELSRC} ${ERLSRC} ${FSRC}\
      ${RBSRC} ${TEXSRC} ${YSRC}
 NONSRCS=./f-src/entry.strange ./erl-src/lists.erl ./cp-src/clheir.hpp.gz
 
-ETAGS_PROG=../../lib-src/etags
-CTAGS_PROG=../../lib-src/ctags
+ETAGS_PROG=../../../lib-src/etags
+CTAGS_PROG=../../../lib-src/ctags
 
 REGEX=/[ \t]*DEFVAR_[A-Z_ \t\n(]+"\([^"]+\)"/
 xx="this line is here because of a fontlock bug
similarity index 100%
rename from test/indent/js.js
rename to test/manual/indent/js.js
similarity index 100%
rename from test/rmailmm.el
rename to test/manual/rmailmm.el
similarity index 93%
rename from test/automated/finalizer-tests.el
rename to test/src/alloc-tests.el
index 5aa35f4a2ac00fe93b7a9640e593c72d5daef5da..97c6b4f807091c3cb04b96c840a11887400c0c8c 100644 (file)
@@ -1,4 +1,4 @@
-;;; finalizer-tests.el --- Finalizer tests -*- lexical-binding: t -*-
+;;; alloc-tests.el --- alloc tests -*- lexical-binding: t -*-
 
 ;; Copyright (C) 2015-2016 Free Software Foundation, Inc.
 
similarity index 92%
rename from test/automated/zlib-tests.el
rename to test/src/decompress-tests.el
index 7ece58d97c904f2df92814adee0411165bf0c56a..f0264ec548deb7edfe6b2b11b7b046d4cc717f30 100644 (file)
@@ -1,4 +1,4 @@
-;;; zlib-tests.el --- Test suite for zlib.
+;;; decompress-tests.el --- Test suite for decompress.
 
 ;; Copyright (C) 2013-2016 Free Software Foundation, Inc.
 
@@ -40,6 +40,6 @@
               (buffer-string))
             "foo\n"))))
 
-(provide 'zlib-tests)
+(provide 'decompress-tests)
 
-;;; zlib-tests.el ends here.
+;;; decompress-tests.el ends here.