emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 3e0e233 2/2: Merge branch 'master' of git.sv.gnu.or


From: Kenichi Handa
Subject: [Emacs-diffs] master 3e0e233 2/2: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Date: Tue, 01 Sep 2015 11:49:35 +0000

branch: master
commit 3e0e2339cd379eeba8d9bc758f2e8e574144e252
Merge: 524eeb2 ff0a92f
Author: K. Handa <address@hidden>
Commit: K. Handa <address@hidden>

    Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
---
 ChangeLog.2                             |  928 ++++++++++++++++++++++++++++-
 doc/lispintro/emacs-lisp-intro.texi     |  104 ++--
 doc/lispref/control.texi                |    2 +-
 doc/lispref/display.texi                |    4 +-
 doc/lispref/functions.texi              |    4 +-
 doc/lispref/modes.texi                  |   14 +-
 doc/lispref/os.texi                     |    2 +-
 doc/lispref/sequences.texi              |    7 +-
 doc/lispref/strings.texi                |   16 +-
 doc/lispref/text.texi                   |    2 +-
 doc/misc/ede.texi                       |    6 +-
 doc/misc/efaq.texi                      |    2 +-
 doc/misc/eieio.texi                     |    2 +-
 doc/misc/gnus-faq.texi                  |    8 +-
 doc/misc/gnus.texi                      |    6 +-
 doc/misc/mh-e.texi                      |    6 +-
 doc/misc/rcirc.texi                     |    2 +-
 doc/misc/ses.texi                       |    2 +-
 etc/NEWS                                |   20 +-
 lisp/apropos.el                         |    2 +-
 lisp/calc/calc-ext.el                   |    2 +-
 lisp/calc/calc-forms.el                 |   68 +-
 lisp/calc/calc-help.el                  |    2 +-
 lisp/calc/calc-misc.el                  |    7 +-
 lisp/calc/calc-mode.el                  |   12 +-
 lisp/calc/calc-prog.el                  |    4 +-
 lisp/calc/calc.el                       |    6 +-
 lisp/calendar/diary-lib.el              |    6 +-
 lisp/calendar/todo-mode.el              |    6 +-
 lisp/cedet/ede.el                       |    9 +-
 lisp/cedet/ede/auto.el                  |   32 +-
 lisp/cedet/ede/generic.el               |   42 +-
 lisp/cedet/mode-local.el                |   37 +-
 lisp/cedet/semantic/analyze/debug.el    |    9 +-
 lisp/cedet/semantic/bovine/c.el         |    9 +-
 lisp/cedet/semantic/decorate/include.el |   15 +-
 lisp/cedet/semantic/ia.el               |   10 +-
 lisp/cus-start.el                       |    9 -
 lisp/cus-theme.el                       |    2 +-
 lisp/dired.el                           |    2 +-
 lisp/emacs-lisp/bytecomp.el             |    4 +-
 lisp/emacs-lisp/checkdoc.el             |    2 +-
 lisp/emacs-lisp/macroexp.el             |    2 +-
 lisp/emacs-lisp/warnings.el             |    4 +-
 lisp/emulation/edt.el                   |    3 +-
 lisp/emulation/viper-cmd.el             |   13 +-
 lisp/emulation/viper-ex.el              |    4 +-
 lisp/emulation/viper-macs.el            |   12 +-
 lisp/erc/erc-autoaway.el                |    2 +-
 lisp/erc/erc-backend.el                 |    6 +-
 lisp/erc/erc-fill.el                    |    3 +-
 lisp/eshell/em-dirs.el                  |    5 +-
 lisp/eshell/em-glob.el                  |    2 +-
 lisp/eshell/em-hist.el                  |    5 +-
 lisp/eshell/em-unix.el                  |   46 +-
 lisp/eshell/esh-cmd.el                  |    8 +-
 lisp/eshell/esh-proc.el                 |    9 +-
 lisp/gnus/gnus-agent.el                 |    5 +-
 lisp/gnus/gnus-art.el                   |    4 +-
 lisp/gnus/gnus-eform.el                 |    3 +-
 lisp/gnus/gnus-fun.el                   |    2 +-
 lisp/gnus/gnus-group.el                 |    5 +-
 lisp/gnus/gnus-sum.el                   |    1 +
 lisp/gnus/gnus-topic.el                 |    4 +-
 lisp/gnus/mail-source.el                |    2 +-
 lisp/gnus/message.el                    |    6 +-
 lisp/gnus/mm-decode.el                  |    2 +-
 lisp/gnus/mm-uu.el                      |    3 +-
 lisp/gnus/mml-smime.el                  |    4 +-
 lisp/gnus/rfc2231.el                    |    8 +-
 lisp/gnus/spam-report.el                |    2 +-
 lisp/help-fns.el                        |   17 +-
 lisp/hexl.el                            |    2 +-
 lisp/imenu.el                           |   15 +-
 lisp/info.el                            |    2 +-
 lisp/international/ccl.el               |    5 +-
 lisp/international/ja-dic-utl.el        |    5 +-
 lisp/international/mule-cmds.el         |    7 +-
 lisp/international/quail.el             |   27 +-
 lisp/international/titdic-cnv.el        |    8 +-
 lisp/isearch.el                         |    1 +
 lisp/json.el                            |    2 +-
 lisp/ldefs-boot.el                      | 1009 ++++++++++++++++---------------
 lisp/leim/quail/ethiopic.el             |    2 +-
 lisp/mail/emacsbug.el                   |   12 +-
 lisp/mail/feedmail.el                   |    5 +-
 lisp/mail/rmail.el                      |    6 +-
 lisp/mail/rmailout.el                   |    7 +-
 lisp/mh-e/mh-e.el                       |    4 +-
 lisp/net/imap.el                        |   17 +-
 lisp/net/tls.el                         |   10 +-
 lisp/net/tramp-sh.el                    |   18 +-
 lisp/newcomment.el                      |    2 +-
 lisp/novice.el                          |    7 +-
 lisp/org/org-agenda.el                  |   12 +-
 lisp/org/org-capture.el                 |    5 +-
 lisp/org/org-compat.el                  |    4 +
 lisp/org/org-ctags.el                   |    7 +-
 lisp/org/org-src.el                     |    2 +-
 lisp/org/org.el                         |    8 +-
 lisp/progmodes/cc-engine.el             |   11 +-
 lisp/progmodes/cc-langs.el              |    2 +-
 lisp/progmodes/cmacexp.el               |    5 +-
 lisp/progmodes/cpp.el                   |    5 +-
 lisp/progmodes/ebrowse.el               |    2 +-
 lisp/progmodes/elisp-mode.el            |    3 +-
 lisp/progmodes/etags.el                 |   19 +-
 lisp/progmodes/executable.el            |    5 +-
 lisp/progmodes/hideif.el                |    2 +-
 lisp/progmodes/idlwave.el               |    6 +-
 lisp/progmodes/octave.el                |   12 +-
 lisp/progmodes/verilog-mode.el          |    2 +-
 lisp/progmodes/vhdl-mode.el             |   16 +-
 lisp/progmodes/which-func.el            |    8 +-
 lisp/replace.el                         |    2 +-
 lisp/startup.el                         |    3 +-
 lisp/tempo.el                           |    2 +-
 lisp/textmodes/bibtex.el                |   39 +-
 lisp/textmodes/conf-mode.el             |    6 +-
 lisp/textmodes/css-mode.el              |    2 +-
 lisp/textmodes/ispell.el                |    3 +-
 lisp/textmodes/page-ext.el              |   14 +-
 lisp/textmodes/sgml-mode.el             |   10 +-
 lisp/textmodes/texinfmt.el              |   36 +-
 lisp/textmodes/two-column.el            |    5 +-
 lisp/url/url-auth.el                    |   10 +-
 lisp/vc/add-log.el                      |   11 +-
 lisp/vc/diff-mode.el                    |    3 +-
 lisp/vc/ediff-diff.el                   |    2 +-
 lisp/vc/ediff-init.el                   |    3 +
 lisp/vc/ediff-merg.el                   |    4 +-
 lisp/vc/ediff-ptch.el                   |    2 +-
 lisp/vc/ediff-util.el                   |   18 +-
 lisp/vc/ediff.el                        |    6 +-
 lisp/vc/pcvs.el                         |   14 +-
 lisp/vc/vc-cvs.el                       |    2 +-
 lisp/whitespace.el                      |    4 +-
 lisp/woman.el                           |    4 +-
 src/ChangeLog.13                        |    7 +-
 src/fileio.c                            |   22 +-
 src/gtkutil.c                           |    2 -
 src/macfont.h                           |   70 +--
 src/macfont.m                           |  451 +++++++--------
 src/syntax.c                            |    2 +-
 src/w32.c                               |   95 +++-
 src/w32.h                               |    1 +
 src/w32term.c                           |    2 -
 src/xterm.c                             |    2 -
 test/automated/elisp-mode-tests.el      |    4 +-
 test/automated/python-tests.el          |   33 +-
 test/automated/tramp-tests.el           |    7 +-
 test/indent/css-mode.css                |    5 +
 152 files changed, 2448 insertions(+), 1395 deletions(-)

diff --git a/ChangeLog.2 b/ChangeLog.2
index 15cb656..856cb58 100644
--- a/ChangeLog.2
+++ b/ChangeLog.2
@@ -1,3 +1,929 @@
+2015-08-30  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-convert-file-attributes):
+       Revert patch from 2015-08-24.  Tramp shall be have like for local files.
+       * test/automated/tramp-tests.el (tramp-test18-file-attributes):
+       Adapt test.
+
+2015-08-30  Paul Eggert  <address@hidden>
+
+       Text quoting fixes in cedet, emulation, emacs-lisp
+       * lisp/cedet/ede.el (ede-check-project-directory):
+       * lisp/cedet/semantic/analyze/debug.el:
+       (semantic-analyzer-debug-insert-include-summary):
+       * lisp/cedet/semantic/bovine/c.el (semantic-c-describe-environment):
+       * lisp/cedet/semantic/decorate/include.el:
+       (semantic-decoration-unknown-include-describe)
+       (semantic-decoration-all-include-summary):
+       * lisp/cedet/semantic/ia.el (semantic-ia-fast-jump):
+       * lisp/emulation/edt.el (edt-load-keys):
+       * lisp/emulation/viper-cmd.el:
+       (viper-display-current-destructive-command)
+       (viper-query-replace, viper-brac-function):
+       * lisp/emulation/viper-ex.el (viper-get-ex-token, ex-compile):
+       * lisp/emulation/viper-macs.el (viper-unrecord-kbd-macro):
+       Respect text quoting style in doc string or diagnostic.
+       * lisp/cedet/mode-local.el (describe-mode-local-overload):
+       Use format-message to avoid overtranslating quotes.
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-in-sample-code-p):
+       Escape an apostrophe in a docstring.
+       * lisp/emacs-lisp/warnings.el (lwarn): Fix doc string.
+
+2015-08-29  Daniel Colascione  <address@hidden>
+
+       Fix which-func for curly quotes: look for symbol, not message
+       * lisp/progmodes/which-func.el (which-func-ff-hook): Look for new
+       imenu-unavailable error symbol instead of trying to match message
+       exactly.
+       * lisp/imenu.el (imenu-unavailable): New error
+       (imenu-unavailable-error): New function.
+
+2015-08-29  Eli Zaretskii  <address@hidden>
+
+       Fix Python tests on MS-Windows
+       * test/automated/python-tests.el
+       (python-shell-calculate-command-1): Run python-shell-interpreter
+       through shell-quote-argument before comparing with what
+       python-shell-calculate-command returns.
+       (python-shell-calculate-pythonpath-1)
+       (python-shell-calculate-pythonpath-2)
+       (python-shell-calculate-process-environment-2): Use path-separator
+       instead of a literal ':'.
+       (python-shell-calculate-exec-path-2)
+       (python-shell-calculate-exec-path-3)
+       (python-shell-calculate-exec-path-4)
+       (python-shell-with-environment-1)
+       (python-shell-with-environment-2): Run "/env/bin" through
+       expand-file-name before comparing with exec-path.  (Bug#21375)
+
+2015-08-29  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Use Core Text types/functions/variables/enumerators directly
+       * src/macfont.h (FontDescriptorRef, FontRef, FontSymbolicTraits)
+       (CharacterCollection): Remove typedefs.  All uses replaced with
+       definitions.
+       (MAC_FONT_NAME_ATTRIBUTE, MAC_FONT_FAMILY_NAME_ATTRIBUTE)
+       (MAC_FONT_TRAITS_ATTRIBUTE, MAC_FONT_SIZE_ATTRIBUTE)
+       (MAC_FONT_CASCADE_LIST_ATTRIBUTE)
+       (MAC_FONT_CHARACTER_SET_ATTRIBUTE, MAC_FONT_LANGUAGES_ATTRIBUTE)
+       (MAC_FONT_FORMAT_ATTRIBUTE, MAC_FONT_SYMBOLIC_TRAIT)
+       (MAC_FONT_WEIGHT_TRAIT, MAC_FONT_WIDTH_TRAIT)
+       (MAC_FONT_SLANT_TRAIT): Remove macros.  All uses replaced with
+       definitions.
+       (MAC_FONT_TRAIT_ITALIC, MAC_FONT_TRAIT_BOLD)
+       (MAC_FONT_TRAIT_MONO_SPACE, MAC_FONT_TRAIT_COLOR_GLYPHS)
+       (MAC_FONT_FORMAT_BITMAP)
+       (MAC_CHARACTER_COLLECTION_IDENTITY_MAPPING)
+       (MAC_CHARACTER_COLLECTION_ADOBE_JAPAN1): Remove enumerators.  All
+       uses replaced with definitions.
+       (kCTFontTraitItalic, kCTFontTraitBold, kCTFontTraitMonoSpace)
+       (kCTFontTraitColorGlyphs, kCTCharacterCollectionIdentityMapping)
+       (kCTCharacterCollectionAdobeJapan1 kCTFontOrientationDefault): Add
+       compatibility enumerators for older versions.
+       (mac_font_descriptor_create_with_attributes)
+       (mac_font_descriptor_create_matching_font_descriptors)
+       (mac_font_descriptor_create_matching_font_descriptor)
+       (mac_font_descriptor_copy_attribute)
+       (mac_font_descriptor_supports_languages)
+       (mac_font_create_with_name, mac_font_get_size)
+       (mac_font_copy_family_name, mac_font_copy_character_set)
+       (mac_font_get_glyphs_for_characters, mac_font_get_ascent)
+       (mac_font_get_descent, mac_font_get_leading)
+       (mac_font_get_underline_position)
+       (mac_font_get_underline_thickness, mac_font_copy_graphics_font)
+       (mac_font_copy_non_synthetic_table): Remove macros.  All uses
+       replaced with definitions.
+       (mac_font_create_preferred_family_for_attributes)
+       (mac_font_get_advance_width_for_glyph)
+       (mac_font_get_bounding_rect_for_glyph)
+       (mac_font_create_available_families, mac_font_shape): Remove
+       macros for renamed functions.
+       (mac_nsctfont_copy_font_descriptor): Remove unused macro.
+       * src/macterm.m (mac_font_descriptor_supports_languages): Rename
+       from mac_ctfont_descriptor_supports_languages.
+       (mac_font_create_preferred_family_for_attributes): Rename from
+       mac_ctfont_create_preferred_family_for_attributes.
+       (mac_font_get_advance_width_for_glyph): Rename from
+       mac_ctfont_get_advance_width_for_glyph.  Use
+       kCTFontOrientationDefault also for older versions.
+       (mac_font_get_bounding_rect_for_glyph): Rename from
+       mac_ctfont_get_bounding_rect_for_glyph. Use
+       kCTFontOrientationDefault also for older versions.
+       (mac_font_create_available_families): Rename from
+       mac_ctfont_create_available_families.
+       (mac_font_equal_in_postscript_name): Rename from
+       mac_ctfont_equal_in_postscript_name.  All uses changed.
+       (mac_font_create_line_with_string_and_font): Rename from
+       mac_ctfont_create_line_with_string_and_font.  All uses changed.
+       (mac_font_shape): Rename from mac_ctfont_shape.
+       (mac_font_family_compare): Remove unused declaration.
+
+2015-08-29  Paul Eggert  <address@hidden>
+
+       Fix minor text quoting in calc, calendar, vc
+       * lisp/calc/calc-ext.el (calc-shift-Z-prefix-help):
+       * lisp/calc/calc-help.el (calc-j-prefix-help):
+       * lisp/calc/calc-misc.el (calc-help):
+       * lisp/calc/calc.el (calc-algebraic-mode, calc-mode):
+       Escape an apostrophe in a docstring.
+       * lisp/calc/calc-forms.el (calc-hms-notation):
+       * lisp/calc/calc-mode.el (calc-display-raw, calc-algebraic-mode):
+       Escape an apostrophe in a diagnostic.
+       * lisp/calc/calc-misc.el (calc-help):
+       * lisp/calendar/diary-lib.el (diary-include-files):
+       * lisp/calendar/todo-mode.el (todo-prefix, todo-item-mark):
+       * lisp/vc/diff-mode.el (diff-delete-trailing-whitespace):
+       * lisp/vc/ediff-diff.el (ediff-same-contents):
+       * lisp/vc/ediff-merg.el (ediff-re-merge):
+       * lisp/vc/ediff-ptch.el (ediff-patch-file-internal):
+       * lisp/vc/ediff-util.el (ediff-test-save-region)
+       (ediff-status-info):
+       * lisp/vc/ediff.el (ediff-merge-revisions)
+       (ediff-merge-revisions-with-ancestor):
+       * lisp/vc/pcvs.el (cvs-mode-checkout, cvs-vc-command-advice):
+       * lisp/vc/vc-cvs.el (vc-cvs-mode-line-string):
+       Respect text quoting style in doc string or diagnostic.
+       * lisp/calc/calc-prog.el (calc-kbd-push, calc-kbd-pop):
+       * lisp/vc/add-log.el (change-log-goto-source):
+       Avoid double-formatting.
+       * lisp/vc/ediff-init.el (format-message):
+       New backward-compatibility alias.
+
+2015-08-28  Paul Eggert  <address@hidden>
+
+       Fix minor text quoting problems in lisp top level
+       * lisp/apropos.el (apropos-describe-plist):
+       * lisp/cus-theme.el (customize-themes):
+       * lisp/dired.el (dired-log):
+       * lisp/help-fns.el (describe-variable):
+       * lisp/hexl.el (hexl-insert-multibyte-char):
+       * lisp/info.el (Info-finder-find-node):
+       * lisp/json.el (json-read-string):
+       * lisp/novice.el (disabled-command-function)
+       (disabled-command-function):
+       * lisp/startup.el (normal-mouse-startup-screen):
+       * lisp/woman.el (WoMan-log, WoMan-warn):
+       Respect text quoting style in doc string or diagnostic.
+       * lisp/replace.el (replace-character-fold):
+       * src/syntax.c (Fmodify_syntax_entry):
+       Escape an apostrophe in a docstring.
+       * lisp/tempo.el (tempo-define-template):
+       Remove confusing apostrophe from docstring.
+       * lisp/whitespace.el (whitespace-mark-x):
+       Use directed quotes in docstring.
+
+2015-08-28  Simen Heggestøyl  <address@hidden>
+
+       Fix indentation rule in css-mode
+       * lisp/textmodes/css-mode.el (css-smie-rules): Fix indentation of
+       brackets in presence of pseudo-selectors.  (Bug#21328)
+
+2015-08-28  Eli Zaretskii  <address@hidden>
+
+       Fix a bug in recording a macro while flyspell-mode is active
+       * lisp/subr.el (sit-for): Don't call read-event when recording a
+       macro.  (Bug#21329)
+
+2015-08-27  Paul Eggert  <address@hidden>
+
+       Tweak startup screen quoting
+       * lisp/startup.el (normal-splash-screen): Use standard
+       "M-" abbrevation rather than a confusingly-different one.
+       (normal-no-mouse-startup-screen): Follow ‘text-quoting-style’.
+
+2015-08-27  Paul Eggert  <address@hidden>
+
+       Add test case for ‘format’ bug and refactor
+       * src/editfns.c (styled_format): Refactor internally, mostly by
+       moving declarations closer to uses.  This should not affect behavior.
+       * test/automated/textprop-tests.el (textprop-tests-format): New test.
+
+       Fix ‘format’ bug with property offsets
+       * src/editfns.c (styled_format): Fix recently-introduced ‘format’
+       bug in calculating string property offsets (Bug#21351).
+
+       Use straight quotes in lib-src diagnostics
+       These auxiliary programs can’t use Emacs’s text-quoting-style,
+       and it’s too much trouble to redo that mechanism by hand.
+       So just use straight quotes for now.
+       * lib-src/ebrowse.c (main):
+       * lib-src/emacsclient.c (decode_options, main):
+       * lib-src/etags.c (Ada_help, default_C_help, Cplusplus_help)
+       (Forth_help, HTML_help, Lisp_help, Makefile_help, Objc_help)
+       (Perl_help, PHP_help, Python_help, Scheme_help, TeX_help, auto_help)
+       (none_help, print_language_names, print_help, add_regex)
+       (suggest_asking_for_help):
+       * lib-src/make-docfile.c (write_c_args, scan_c_stream):
+       Use straight quotes in diagnostics.
+
+       ‘text-quoting-style’ fixes for admin
+       * admin/admin.el (cusver-scan, cusver-check):
+       * admin/authors.el (authors-canonical-file-name):
+       * admin/bzrmerge.el (bzrmerge-missing):
+       Respect ‘text-quoting-style’ in diagnostics.
+
+2015-08-26  Paul Eggert  <address@hidden>
+
+       Assume GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS
+       This removes the need for GCPRO1 etc.  Suggested by Stefan Monnier in:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00918.html
+       * doc/lispref/internals.texi (Writing Emacs Primitives):
+       * etc/NEWS:
+       Document the change.
+       * src/alloc.c (gcprolist, dump_zombies, MAX_ZOMBIES, zombies)
+       (nzombies, ngcs, avg_zombies, max_live, max_zombies, avg_live)
+       (Fgc_status, check_gcpros, relocatable_string_data_p, gc-precise):
+       * src/bytecode.c (mark_byte_stack) [BYTE_MARK_STACK]:
+       * src/eval.c (gcpro_level) [DEBUG_GCPRO]:
+       * src/lisp.h (struct handler.gcpro, struct gcpro, GC_MARK_STACK)
+       (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
+       (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
+       (BYTE_MARK_STACK, GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6)
+       (GCPRO7, UNGCPRO, RETURN_UNGCPRO):
+       Remove.  All uses removed.  The code now assumes
+       GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.
+       * src/bytecode.c (relocate_byte_stack):
+       Rename from unmark_byte_stack, since it now only relocates.
+       All callers changed.
+       * src/frame.c (make_frame): Add an IF_LINT to pacify GCC 5.2
+       with GCPROs removed.
+       * src/systime.h: Use EMACS_LISP_H as the canary instead of GCPRO1.
+       * test/automated/finalizer-tests.el (finalizer-basic)
+       (finalizer-circular-reference, finalizer-cross-reference)
+       (finalizer-error):
+       * test/automated/generator-tests.el (cps-test-iter-close-finalizer):
+       Remove tests, as they depend on gc-precise.
+
+2015-08-26  Nicolas Petton  <address@hidden>
+
+       Improve seq-concatenate for new sequence types
+       Use the new `seq-into-sequence' in seqs passed to `seq-concatenate' to
+       ensure that concatenation happens on sequences only.  This makes it
+       possible to use `seq-concatenate' for new types of seqs.
+       * lisp/emacs-lisp/seq.el (seq-into-sequence, seq-concatenate): New
+       function used in `seq-concatenate'.
+       * test/automated/seq-tests.el (test-seq-into-sequence): New unit test
+       for seq-into-sequence.
+
+2015-08-26  Stephen Leake  <address@hidden>
+
+       Add mode local overrides to xref-find-definitions
+       * lisp/cedet/mode-local.el (xref-mode-local--override-present,
+       xref-mode-local-overload): New; add mode local overrides to
+       xref-find-definitions.
+       * test/automated/elisp-mode-tests.el: Add mode local override tests.
+       (xref-elisp-test-run): Handle indented defuns.
+       (xref-elisp-generic-*): Improve doc strings.
+       * lisp/progmodes/elisp-mode.el (elisp-xref-find-def-functions): New.
+       (elisp--xref-find-definitions): Use it.
+
+       Add mode local overrides to describe-function
+       * lisp/cedet/mode-local.el (describe-mode-local-overload): New; add mode
+       local overrides to describe-function.
+       * etc/NEWS: Document change.
+
+2015-08-26  Paul Eggert  <address@hidden>
+
+       Prefer straight quoting in some etc text files
+       These files are plain text and might be used by non-Emacs apps.
+       They’re mostly ASCII, so just use straight quotes.
+
+       Fix quoting in ‘message_with_string’
+       * src/nsfont.m (nsfont_open): Use directed quotes in format; they
+       should work now.
+       * src/xdisp.c (message_to_stderr): New function, refactored from
+       part of ‘message3_nolog’.
+       (message3_nolog): Use it.
+       (message_with_string): Use it.  Don’t mishandle NUL bytes when
+       noninteractive.  Prefer AUTO_STRING when it’s most likely faster.
+       Use ‘format-message’, not ‘format’, so that quotes are translated.
+
+2015-08-26  Eli Zaretskii  <address@hidden>
+
+       Mention false positives of file-accessible-directory on w32
+       * src/fileio.c (Ffile_accessible_directory_p): Doc fix.
+       (Bug#21346)
+
+2015-08-26  Paul Eggert  <address@hidden>
+
+       Treat error strings as help
+       * src/print.c (print_error_message): Translate quotes and command
+       keys in errmsg so that users see, e.g., "Symbol’s value as
+       variable is void: foo" when text-quoting-style is curved.
+
+2015-08-26  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-cache.el (top): Use `message' but `format-message'.
+
+2015-08-26  Paul Eggert  <address@hidden>
+
+       Top-level elisp files respect ‘text-quoting-style’
+       In top-level elisp files, use format-message in diagnostic formats,
+       so that they follow user preference as per ‘text-quoting-style’
+       rather than being hard-coded to quote `like this'.
+       * lisp/allout.el (allout-get-configvar-values):
+       * lisp/apropos.el (apropos-symbols-internal):
+       * lisp/dired-aux.el (dired-do-shell-command, dired-create-files)
+       (dired-do-create-files-regexp, dired-create-files-non-directory):
+       * lisp/dired-x.el (dired-do-run-mail):
+       * lisp/dired.el (dired-log, dired-dnd-handle-local-file):
+       * lisp/disp-table.el (standard-display-european):
+       * lisp/find-dired.el (find-dired):
+       * lisp/forms.el (forms-mode):
+       * lisp/ido.el (ido-buffer-internal):
+       * lisp/info.el (Info-index-next):
+       * lisp/outline.el (outline-invent-heading):
+       * lisp/printing.el (pr-ps-outfile-preprint, pr-i-ps-send):
+       * lisp/proced.el (proced-log):
+       * lisp/ps-print.el (ps-print-preprint, ps-get-size):
+       * lisp/recentf.el (recentf-open-files, recentf-save-list):
+       * lisp/savehist.el (savehist-save):
+       * lisp/server.el (server-ensure-safe-dir):
+       * lisp/ses.el (ses-rename-cell):
+       * lisp/simple.el (list-processes--refresh):
+       * lisp/startup.el (command-line):
+       * lisp/strokes.el (strokes-unset-last-stroke)
+       (strokes-execute-stroke):
+       Use format-message so that quotes are restyled.
+       * lisp/cus-edit.el (custom-raised-buttons, customize-browse):
+       Don’t quote ‘raised’.
+       * lisp/descr-text.el (describe-char):
+       * lisp/dirtrack.el (dirtrack-debug-message):
+       * lisp/hexl.el (hexl-insert-multibyte-char):
+       Apply substitute-command-keys to help string.
+       * lisp/wdired.el (wdired-do-renames, wdired-do-symlink-changes)
+       (wdired-do-perm-changes):
+       Let dired-log do the formatting.
+
+2015-08-25  Paul Eggert  <address@hidden>
+
+       Go back to grave quoting in Tramp
+       * lisp/net/tramp-adb.el:
+       * lisp/net/tramp-cache.el:
+       * lisp/net/tramp-compat.el:
+       * lisp/net/tramp-gvfs.el:
+       * lisp/net/tramp-gw.el:
+       * lisp/net/tramp-sh.el:
+       * lisp/net/tramp-smb.el:
+       * lisp/net/tramp.el:
+       Stick with grave quoting in diagnostics strings.  This is more
+       portable to older Emacs, desirable for Tramp.
+       * lisp/net/tramp-cache.el: Use ‘format-message’, not ‘format’,
+       for diagnostic that needs requoting.
+       * lisp/net/tramp-compat.el (format-message):
+       Fall back on simple ‘format’, since that’s good enough now.
+
+       Go back to grave quoting in Gnus
+       * lisp/gnus/auth-source.el (auth-source-netrc-parse-entries):
+       * lisp/gnus/gnus-agent.el (gnus-agent-check-overview-buffer)
+       (gnus-agent-fetch-headers):
+       * lisp/gnus/gnus-int.el (gnus-start-news-server):
+       * lisp/gnus/gnus-registry.el:
+       (gnus-registry--split-fancy-with-parent-internal)
+       (gnus-registry-post-process-groups):
+       * lisp/gnus/gnus-score.el (gnus-summary-increase-score):
+       * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc):
+       * lisp/gnus/gnus-topic.el (gnus-topic-rename):
+       * lisp/gnus/legacy-gnus-agent.el (gnus-agent-unlist-expire-days):
+       * lisp/gnus/spam.el (spam-check-blackholes):
+       Stick with grave quoting in diagnostics strings.  This is more
+       portable to older Emacs, desirable for Gnus.
+
+       Fix customization of text-quoting-style
+       * lisp/cus-edit.el (custom-guess-type, custom-variable-documentation):
+       * lisp/wid-edit.el (widget-docstring):
+       Get raw docstring here since it’s cooked later and should not be
+       cooked twice.
+       * lisp/cus-edit.el (custom-group-value-create):
+       Cook the docstring before inserting it.
+       * lisp/cus-start.el (text-quoting-style): Quote the customization
+       docstrings according to the new rules.  Give curved examples.
+
+       format-message now curves ` and '
+       That way, the caller doesn’t have to use curved quotes to
+       get diagnostics that match the text-quoting-style preferences.
+       Suggested by Dmitry Gutov in:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00893.html
+       This means we no longer need %qs, so remove that format.
+       While we’re at it, fix an unlikely bug and lessen the pressure
+       on the garbage collector by processing the string once rather
+       than twice in the usual case.
+       * doc/lispref/strings.texi (Formatting Strings):
+       * etc/NEWS: Document this.
+       * lisp/subr.el (format-message): Remove; now done in C.
+       * src/callint.c (Fcall_interactively):
+       * src/editfns.c (Fmessage, Fmessage_box):
+       Use Fformat_message instead of Finternal__text_restyle
+       followed by Fformat.
+       * src/doc.c (LSQM, RSQM): Remove; all uses changed to use
+       uLSQM and uRSQM.
+       (Fsubstitute_command_keys): Prefer AUTO_STRING to build_string
+       when pure ASCII now suffices.  Fix unlikely bug when parsing
+       unibyte string containing non-ASCII bytes.  Use inline code
+       rather than memcpy, as it’s a tiny number of bytes.
+       (Finternal__text_restyle): Remove; no longer used.
+       (syms_of_doc): Don’t declare it.
+       * src/editfns.c (Fformat): Rewrite in terms of new function
+       ‘styled_format’.
+       (Fformat_message): New function, moved here from subr.el.
+       (styled_format): New function, with the old guts of Fformat,
+       except it now optionally transliterates quotes, and it transliterates
+       traditional grave accent and apostrophe quoting as well.
+       Remove recently-added q flag; no longer needed or used.
+       (syms_of_editfns): Define format-message.
+       * src/lisp.h (uLSQM0, uLSQM1, uLSQM2, uRSQM0, uRSQM1, uRSQM2):
+       Remove; no longer need to be global symbols.
+       * src/xdisp.c (vadd_to_log): Use Fformat_message, not Fformat,
+       so that callers can use `%s'.
+       * src/image.c (image_size_error, xbm_load_image, xbm_load)
+       (xpm_load, pbm_load, png_load_body, jpeg_load_body, tiff_load)
+       (gif_load, imagemagick_load_image, imagemagick_load, svg_load)
+       (svg_load_image, gs_load, x_kill_gs_process):
+       * src/lread.c (load_warn_old_style_backquotes):
+       * src/xfaces.c (load_pixmap):
+       * src/xselect.c (x_clipboard_manager_error_1):
+       Use `%s' instead of %qs in formats.
+
+2015-08-25  Eli Zaretskii  <address@hidden>
+
+       Minor fixes in doc/emacs/search.texi
+       * doc/emacs/search.texi (Basic Isearch): Fix a typo.
+       (Special Isearch): Use @w{} to generate several consecutive spaces
+       with Texinfo 6.  (Bug#21345)
+
+2015-08-25  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-awk-encode, tramp-awk-decode)
+       (tramp-awk-coding-test): New defconsts.
+       (tramp-remote-coding-commands): Use them.
+       (tramp-find-inline-encoding): Check for Perl only if necessary.
+
+2015-08-25  Xue Fuqiao  <address@hidden>
+
+       * doc/lispintro/emacs-lisp-intro.texi (Run a Program): Add some
+       index entries for the special form `quote'.
+
+2015-08-25  Paul Eggert  <address@hidden>
+
+       Spelling fixes
+
+       Gnus format-message typo fix
+       * lisp/gnus/gnus-util.el (gnus-format-message):
+       Fix typo when running in older Emacs.
+
+       Prefer directed to neutral quotes
+       Prefer directed to neutral quotes in docstings and diagnostics.
+       In docstrings, escape apostrophes that would otherwise be translated
+       to curved quotes using the newer, simpler rules.
+       * admin/unidata/unidata-gen.el (unidata-gen-table):
+       * lisp/align.el (align-region):
+       * lisp/allout.el (allout-mode, allout-solicit-alternate-bullet):
+       * lisp/bookmark.el (bookmark-default-annotation-text):
+       * lisp/calc/calc-aent.el (math-read-if, math-read-factor):
+       * lisp/calc/calc-lang.el (math-read-giac-subscr)
+       (math-read-math-subscr):
+       * lisp/calc/calc-misc.el (report-calc-bug):
+       * lisp/calc/calc-prog.el (calc-fix-token-name)
+       (calc-read-parse-table-part):
+       * lisp/cedet/ede/pmake.el (ede-proj-makefile-insert-dist-rules):
+       * lisp/cedet/semantic/complete.el (semantic-displayor-show-request):
+       * lisp/dabbrev.el (dabbrev-expand):
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
+       * lisp/emacs-lisp/elint.el (elint-get-top-forms):
+       * lisp/emacs-lisp/lisp-mnt.el (lm-verify):
+       * lisp/emulation/viper-cmd.el (viper-toggle-search-style):
+       * lisp/erc/erc-button.el (erc-nick-popup):
+       * lisp/erc/erc.el (erc-cmd-LOAD, erc-handle-login):
+       * lisp/eshell/em-dirs.el (eshell/cd):
+       * lisp/eshell/em-glob.el (eshell-glob-regexp):
+       * lisp/eshell/em-pred.el (eshell-parse-modifiers):
+       * lisp/eshell/esh-arg.el (eshell-parse-arguments):
+       * lisp/eshell/esh-opt.el (eshell-show-usage):
+       * lisp/files-x.el (modify-file-local-variable):
+       * lisp/filesets.el (filesets-add-buffer, filesets-remove-buffer)
+       (filesets-update-pre010505):
+       * lisp/find-cmd.el (find-generic, find-to-string):
+       * lisp/gnus/auth-source.el (auth-source-netrc-parse-entries):
+       * lisp/gnus/gnus-agent.el (gnus-agent-check-overview-buffer)
+       (gnus-agent-fetch-headers):
+       * lisp/gnus/gnus-int.el (gnus-start-news-server):
+       * lisp/gnus/gnus-registry.el:
+       (gnus-registry--split-fancy-with-parent-internal):
+       * lisp/gnus/gnus-score.el (gnus-summary-increase-score):
+       * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc):
+       * lisp/gnus/gnus-topic.el (gnus-topic-rename):
+       * lisp/gnus/legacy-gnus-agent.el (gnus-agent-unlist-expire-days):
+       * lisp/gnus/nnmairix.el (nnmairix-widget-create-query):
+       * lisp/gnus/spam.el (spam-check-blackholes):
+       * lisp/mail/feedmail.el (feedmail-run-the-queue):
+       * lisp/mpc.el (mpc-playlist-rename):
+       * lisp/net/ange-ftp.el (ange-ftp-shell-command):
+       * lisp/net/mairix.el (mairix-widget-create-query):
+       * lisp/net/tramp-cache.el:
+       * lisp/obsolete/otodo-mode.el (todo-more-important-p):
+       * lisp/obsolete/pgg-gpg.el (pgg-gpg-process-region):
+       * lisp/obsolete/pgg-pgp.el (pgg-pgp-process-region):
+       * lisp/obsolete/pgg-pgp5.el (pgg-pgp5-process-region):
+       * lisp/org/ob-core.el (org-babel-goto-named-src-block)
+       (org-babel-goto-named-result):
+       * lisp/org/ob-fortran.el (org-babel-fortran-ensure-main-wrap):
+       * lisp/org/ob-ref.el (org-babel-ref-resolve):
+       * lisp/org/org-agenda.el (org-agenda-prepare):
+       * lisp/org/org-bibtex.el (org-bibtex-fields):
+       * lisp/org/org-clock.el (org-clock-notify-once-if-expired)
+       (org-clock-resolve):
+       * lisp/org/org-feed.el (org-feed-parse-atom-entry):
+       * lisp/org/org-habit.el (org-habit-parse-todo):
+       * lisp/org/org-mouse.el (org-mouse-popup-global-menu)
+       (org-mouse-context-menu):
+       * lisp/org/org-table.el (org-table-edit-formulas):
+       * lisp/org/ox.el (org-export-async-start):
+       * lisp/play/dunnet.el (dun-score, dun-help, dun-endgame-question)
+       (dun-rooms, dun-endgame-questions):
+       * lisp/progmodes/ada-mode.el (ada-goto-matching-start):
+       * lisp/progmodes/ada-xref.el (ada-find-executable):
+       * lisp/progmodes/antlr-mode.el (antlr-options-alists):
+       * lisp/progmodes/flymake.el (flymake-parse-err-lines)
+       (flymake-start-syntax-check-process):
+       * lisp/progmodes/python.el (python-define-auxiliary-skeleton):
+       * lisp/progmodes/sql.el (sql-comint):
+       * lisp/progmodes/verilog-mode.el (verilog-load-file-at-point):
+       * lisp/server.el (server-get-auth-key):
+       * lisp/subr.el (version-to-list):
+       * lisp/textmodes/reftex-ref.el (reftex-label):
+       * lisp/textmodes/reftex-toc.el (reftex-toc-rename-label):
+       * lisp/vc/ediff-diff.el (ediff-same-contents):
+       * lisp/vc/vc-cvs.el (vc-cvs-mode-line-string):
+       * test/automated/tramp-tests.el (tramp-test33-asynchronous-requests):
+       Use directed rather than neutral quotes in diagnostics.
+
+       Treat ' like ’ even when not matching `
+       This is simpler and easier to explain, and should encourage better
+       typography.  Do this in Electric Quote mode and when translating
+       quotes in docstrings.  Inspired by a suggestion by Dmitry Gutov in:
+       https://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00806.html
+       * doc/emacs/text.texi (Quotation Marks):
+       * doc/lispref/help.texi (Keys in Documentation):
+       * etc/NEWS:
+       Document this.
+       * lisp/electric.el (electric-quote-post-self-insert-function):
+       * src/doc.c (Fsubstitute_command_keys):
+       Always treat ' like ’ even when not matched by an open quote.
+
+2015-08-25  Glenn Morris  <address@hidden>
+
+       * doc/emacs/cal-xtra.texi (Holiday Customizing): Fix typo in example.
+       * lisp/calendar/holidays.el (calendar-holidays): Fix doc typo.
+
+2015-08-24  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * src/macfont.m (macfont_create_family_with_symbol): Accept localized 
names.
+
+2015-08-24  Paul Eggert  <address@hidden>
+
+       Tramp diagnostics as per ‘text-quoting-style’
+       * lisp/net/tramp-adb.el (tramp-adb-handle-file-truename)
+       (tramp-adb-get-ls-command, tramp-adb-handle-make-directory)
+       (tramp-adb-handle-delete-directory)
+       (tramp-adb-handle-delete-file)
+       (tramp-adb-handle-file-local-copy)
+       (tramp-adb-handle-write-region, tramp-adb-handle-copy-file)
+       (tramp-adb-send-command-and-check, tramp-adb-wait-for-output)
+       (tramp-adb-maybe-open-connection):
+       * lisp/net/tramp-cache.el:
+       * lisp/net/tramp-compat.el (tramp-compat-temporary-file-directory)
+       (tramp-compat-octal-to-decimal)
+       (tramp-compat-coding-system-change-eol-conversion):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler)
+       (tramp-gvfs-do-copy-or-rename-file)
+       (tramp-gvfs-handle-delete-directory)
+       (tramp-gvfs-handle-delete-file)
+       (tramp-gvfs-handle-expand-file-name)
+       (tramp-gvfs-handle-file-local-copy)
+       (tramp-gvfs-handle-file-notify-add-watch)
+       (tramp-gvfs-handle-make-directory)
+       (tramp-gvfs-handle-write-region, tramp-gvfs-url-file-name):
+       * lisp/net/tramp-gw.el (tramp-gw-gw-proc-sentinel)
+       (tramp-gw-aux-proc-sentinel, tramp-gw-open-connection):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-truename)
+       (tramp-sh-handle-set-visited-file-modtime)
+       (tramp-sh-handle-set-file-modes)
+       (tramp-sh-handle-file-name-all-completions)
+       (tramp-sh-handle-add-name-to-file, tramp-do-copy-or-rename-file)
+       (tramp-do-copy-or-rename-file-directly)
+       (tramp-do-copy-or-rename-file-out-of-band)
+       (tramp-sh-handle-make-directory)
+       (tramp-sh-handle-delete-directory, tramp-sh-handle-delete-file)
+       (tramp-sh-handle-insert-directory, tramp-process-sentinel)
+       (tramp-sh-handle-start-file-process)
+       (tramp-sh-handle-file-local-copy)
+       (tramp-sh-handle-write-region, tramp-sh-handle-vc-registered)
+       (tramp-sh-handle-file-notify-add-watch, tramp-maybe-send-script)
+       (tramp-find-file-exists-command, tramp-open-shell)
+       (tramp-find-shell)
+       (tramp-open-connection-setup-interactive-shell)
+       (tramp-find-inline-encoding, tramp-find-inline-compress)
+       (tramp-compute-multi-hops, tramp-maybe-open-connection)
+       (tramp-wait-for-output, tramp-send-command-and-check)
+       (tramp-send-command-and-read, tramp-get-remote-path)
+       (tramp-get-ls-command, tramp-get-ls-command-with-dired)
+       (tramp-get-ls-command-with-quoting-style)
+       (tramp-get-test-command, tramp-get-remote-ln)
+       (tramp-get-remote-perl, tramp-get-remote-stat)
+       (tramp-get-remote-readlink, tramp-get-remote-trash)
+       (tramp-get-remote-touch, tramp-get-remote-gvfs-monitor-dir)
+       (tramp-get-remote-inotifywait, tramp-get-remote-id)
+       (tramp-get-remote-python):
+       * lisp/net/tramp-smb.el (tramp-smb-errors)
+       (tramp-smb-handle-add-name-to-file, tramp-smb-handle-copy-file)
+       (tramp-smb-handle-delete-directory)
+       (tramp-smb-handle-delete-file)
+       (tramp-smb-handle-file-local-copy)
+       (tramp-smb-handle-make-directory)
+       (tramp-smb-handle-make-directory-internal)
+       (tramp-smb-handle-make-symbolic-link)
+       (tramp-smb-handle-rename-file, tramp-smb-handle-set-file-acl)
+       (tramp-smb-handle-set-file-modes)
+       (tramp-smb-handle-write-region, tramp-smb-get-file-entries):
+       * lisp/net/tramp.el (tramp-debug-message, tramp-error)
+       (tramp-process-actions):
+       Generate diagnostics according to ‘text-quoting-style’, by
+       using curved quotes in format strings and ‘format-message’
+       when appropriate.
+       * lisp/net/tramp-compat.el (format-message):
+       Define a replacement, if it’s an older version of Emacs
+       that doesn’t have it already.
+
+       * etc/NEWS: Clarify text-quoting-style and electric-quote-mode.
+
+2015-08-24  Xue Fuqiao  <address@hidden>
+
+       Fix documentation for `save-excursion'
+       * doc/lispref/positions.texi (Excursions):
+       * doc/lispintro/emacs-lisp-intro.texi (save-excursion)
+       (Template for save-excursion, Point and mark): `save-excursion'
+       does not save&restore the mark any more.
+
+2015-08-24  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-stat-marker, tramp-stat-quoted-marker):
+       New defconsts.
+       (tramp-do-file-attributes-with-stat)
+       (tramp-do-directory-files-and-attributes-with-stat): Use them.
+       (tramp-convert-file-attributes): Remove double slashes in symlinks.
+       * test/automated/tramp-tests.el (tramp-test18-file-attributes):
+       Handle symlinks with "//" in the file name.
+
+       Revert fbb5531fa11d13854b274d28ccd329c9b6652cfc for tramp.el.
+
+2015-08-24  Nicolas Petton  <address@hidden>
+
+       Fix cl-subseq and cl-concatenate
+       * lisp/emacs-lisp/cl-extra.el (cl-subseq, cl-concatenate): Do not use
+       seq functions.
+       * lisp/emacs-lisp/seq.el (seq-concatenate): Call cl-concatenate in
+       seq-concatenate.
+
+2015-08-24  Pip Cet  <address@hidden>  (tiny change)
+
+       Fix full-screen code when there is no window manager (Bug#21317)
+       * src/xterm.h (x_wm_supports): Declare external.
+       * src/xterm.c (wm_suppports): Rename to `x_wm_supports', export.
+       (do_ewmh_fullscreen, x_ewmh_activate_frame): Adjust for rename.
+       (x_check_fullscreen): Call `x_wm_set_size_hint', restore
+       `fullscreen' frame parameter.
+       * gtkutil.c (x_wm_set_size_hint): Set size hints when running
+       without a window manager.
+
+2015-08-24  Glenn Morris  <address@hidden>
+
+       * lisp/version.el (emacs-version): No longer include build host
+       * doc/lispref/intro.texi (Version Info): Update example.
+
+2015-08-24  Paul Eggert  <address@hidden>
+
+       * doc/lispref/elisp.texi: Fix typo in previous change.
+
+       More-conservative ‘format’ quote restyling
+       Instead of restyling curved quotes for every call to ‘format’,
+       create a new function ‘format-message’ that does the restyling,
+       and using the new function instead of ‘format’ only in contexts
+       where this seems appropriate.
+       Problem reported by Dmitry Gutov and Andreas Schwab in:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00826.html
+       http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00827.html
+       * doc/lispref/commands.texi (Using Interactive):
+       * doc/lispref/control.texi (Signaling Errors, Signaling Errors):
+       * doc/lispref/display.texi (Displaying Messages, Progress):
+       * doc/lispref/elisp.texi:
+       * doc/lispref/help.texi (Keys in Documentation):
+       * doc/lispref/minibuf.texi (Minibuffer Misc):
+       * doc/lispref/strings.texi (Formatting Strings):
+       * etc/NEWS:
+       Document the changes.
+       * lisp/abbrev.el (expand-region-abbrevs):
+       * lisp/apropos.el (apropos-library):
+       * lisp/calc/calc-ext.el (calc-record-message)
+       (calc-user-function-list):
+       * lisp/calc/calc-help.el (calc-describe-key, calc-full-help):
+       * lisp/calc/calc-lang.el (math-read-big-balance):
+       * lisp/calc/calc-store.el (calc-edit-variable):
+       * lisp/calc/calc-units.el (math-build-units-table-buffer):
+       * lisp/calc/calc-yank.el (calc-edit-mode):
+       * lisp/calendar/icalendar.el (icalendar-export-region)
+       (icalendar--add-diary-entry):
+       * lisp/cedet/mode-local.el (mode-local-print-binding)
+       (mode-local-describe-bindings-2):
+       * lisp/cedet/semantic/complete.el (semantic-completion-message):
+       * lisp/cedet/semantic/edit.el (semantic-parse-changes-failed):
+       * lisp/cedet/semantic/wisent/comp.el (wisent-log):
+       * lisp/cedet/srecode/insert.el (srecode-insert-show-error-report):
+       * lisp/descr-text.el (describe-text-properties-1, describe-char):
+       * lisp/dframe.el (dframe-message):
+       * lisp/dired-aux.el (dired-query):
+       * lisp/emacs-lisp/byte-opt.el (byte-compile-log-lap-1):
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-log)
+       (byte-compile-log-file, byte-compile-warn, byte-compile-form):
+       * lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use)
+       (cconv-analyze-form):
+       * lisp/emacs-lisp/check-declare.el (check-declare-warn):
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
+       * lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet):
+       * lisp/emacs-lisp/edebug.el (edebug-format):
+       * lisp/emacs-lisp/eieio-core.el (eieio-oref):
+       * lisp/emacs-lisp/eldoc.el (eldoc-minibuffer-message)
+       (eldoc-message):
+       * lisp/emacs-lisp/elint.el (elint-file, elint-log):
+       * lisp/emacs-lisp/find-func.el (find-function-library):
+       * lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning):
+       * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p):
+       * lisp/emacs-lisp/nadvice.el (advice--make-docstring):
+       * lisp/emacs-lisp/package.el (package-compute-transaction)
+       (package-install-button-action, package-delete-button-action)
+       (package-menu--list-to-prompt):
+       * lisp/emacs-lisp/timer.el (timer-event-handler):
+       * lisp/emacs-lisp/warnings.el (lwarn, warn):
+       * lisp/emulation/viper-cmd.el:
+       (viper-toggle-parse-sexp-ignore-comments)
+       (viper-kill-buffer, viper-brac-function):
+       * lisp/emulation/viper-macs.el (viper-record-kbd-macro):
+       * lisp/facemenu.el (facemenu-add-new-face):
+       * lisp/faces.el (face-documentation, read-face-name)
+       (face-read-string, read-face-font, describe-face):
+       * lisp/files.el (find-alternate-file, hack-local-variables)
+       (hack-one-local-variable--obsolete, write-file)
+       (basic-save-buffer, delete-directory):
+       * lisp/format.el (format-write-file, format-find-file)
+       (format-insert-file):
+       * lisp/help-fns.el (help-fns--key-bindings)
+       (help-fns--compiler-macro, help-fns--obsolete)
+       (help-fns--interactive-only, describe-function-1)
+       (describe-variable):
+       * lisp/help.el (describe-mode):
+       * lisp/info-xref.el (info-xref-output):
+       * lisp/info.el (Info-virtual-index-find-node)
+       (Info-virtual-index, info-apropos):
+       * lisp/international/kkc.el (kkc-error):
+       * lisp/international/mule-cmds.el:
+       (select-safe-coding-system-interactively)
+       (select-safe-coding-system, describe-input-method):
+       * lisp/international/mule-conf.el (code-offset):
+       * lisp/international/mule-diag.el (describe-character-set)
+       (list-input-methods-1):
+       * lisp/international/quail.el (quail-error):
+       * lisp/minibuffer.el (minibuffer-message):
+       * lisp/mpc.el (mpc--debug):
+       * lisp/msb.el (msb--choose-menu):
+       * lisp/net/ange-ftp.el (ange-ftp-message):
+       * lisp/net/gnutls.el (gnutls-message-maybe):
+       * lisp/net/newst-backend.el (newsticker--sentinel-work):
+       * lisp/net/newst-treeview.el (newsticker--treeview-load):
+       * lisp/net/nsm.el (nsm-query-user):
+       * lisp/net/rlogin.el (rlogin):
+       * lisp/net/soap-client.el (soap-warning):
+       * lisp/net/tramp.el (tramp-debug-message):
+       * lisp/nxml/nxml-outln.el (nxml-report-outline-error):
+       * lisp/nxml/nxml-parse.el (nxml-parse-error):
+       * lisp/nxml/rng-cmpct.el (rng-c-error):
+       * lisp/nxml/rng-match.el (rng-compile-error):
+       * lisp/nxml/rng-uri.el (rng-uri-error):
+       * lisp/obsolete/iswitchb.el (iswitchb-possible-new-buffer):
+       * lisp/org/org-ctags.el:
+       (org-ctags-ask-rebuild-tags-file-then-find-tag):
+       * lisp/proced.el (proced-log):
+       * lisp/progmodes/ebnf2ps.el (ebnf-log):
+       * lisp/progmodes/flymake.el (flymake-log):
+       * lisp/progmodes/vhdl-mode.el (vhdl-warning-when-idle):
+       * lisp/replace.el (occur-1):
+       * lisp/simple.el (execute-extended-command)
+       (undo-outer-limit-truncate, define-alternatives):
+       * lisp/startup.el (command-line):
+       * lisp/subr.el (error, user-error, add-to-list):
+       * lisp/tutorial.el (tutorial--describe-nonstandard-key)
+       (tutorial--find-changed-keys):
+       * src/callint.c (Fcall_interactively):
+       * src/editfns.c (Fmessage, Fmessage_box):
+       Restyle the quotes of format strings intended for use as a
+       diagnostic, when restyling seems appropriate.
+       * lisp/subr.el (format-message): New function.
+       * src/doc.c (Finternal__text_restyle): New function.
+       (syms_of_doc): Define it.
+
+2015-08-23  Paul Eggert  <address@hidden>
+
+       * etc/NEWS: The new ‘q’ flag is not an incompatible change.
+
+2015-08-23  Fabián Ezequiel Gallina  <address@hidden>
+
+       python.el: Fix python-shell-buffer-substring on indented code
+       (Bug#21086)
+       * lisp/progmodes/python.el (python-shell-buffer-substring):
+       Respect current line indentation when calculating string.
+       * test/automated/python-tests.el
+       (python-shell-buffer-substring-10)
+       (python-shell-buffer-substring-11)
+       (python-shell-buffer-substring-12): New tests.
+
+2015-08-23  Paul Eggert  <address@hidden>
+
+       Fix minor glitches from ‘format’ reversion
+       * doc/lispref/strings.texi (Formatting Strings):
+       After reversion, ‘text-quoting-style’ is documented in ‘Keys in
+       Documentation’, not below.
+       * src/syntax.c (Finternal_describe_syntax_value):
+       Prefer AUTO_STRING to build_string where either will do, as
+       AUTO_STRING is a bit faster.
+
+2015-08-23  Fabián Ezequiel Gallina  <address@hidden>
+
+       python.el: Defer shell setup code until first interactive prompt
+       * lisp/progmodes/python.el
+       (python-shell-comint-watch-for-first-prompt-output-filter): New
+       function.
+       (inferior-python-mode): Use it.
+       (python-shell-first-prompt-hook): New hook.
+       (python-shell-send-setup-code)
+       (python-shell-completion-native-turn-on-maybe-with-msg): Attach to
+       this hook instead of inferior-python-hook.
+
+2015-08-23  Nicolas Petton  <address@hidden>
+
+       Remove the calls to `seq-into` from `seq-concatenate`
+       Since most new types of seq would have to be defined as sequences (cons
+       cells or CL structs, mostly), there is no need to convert the seqs to
+       sequences (which can be a fairly expensive operation).
+       * lisp/emacs-lisp/seq.el (seq-concatenate): Do not ensure that seqs are
+       sequences.
+
+2015-08-23  Fabián Ezequiel Gallina  <address@hidden>
+
+       python.el: Fix completion for pdb interactions
+       * lisp/progmodes/python.el (python-shell-completion-setup-code):
+       Simplify.  Toggle print_mode for native wrapped completer.
+       (python-shell-completion-native-setup): Ensure process buffer.
+       Add print_mode attribute to completer wrapper to toggle returning
+       or printing candidates.
+       (python-shell-completion-native-get-completions): Cleanup.
+       (python-shell-completion-get-completions): Cleanup.
+       (python-shell-completion-at-point): Perform prompt checks.  Force
+       fallback completion in pdb interactions.
+
+2015-08-23  Nicolas Petton  <address@hidden>
+
+       Make seq.el more extensible by using cl-defmethod
+       * lisp/emacs-lisp/seq.el: Define seq.el functions using cl-defmethod to
+       make it easier to extend seq.el with new "seq types".
+       * test/automated/seq-tests.el (test-setf-seq-elt): New test.
+       * lisp/emacs-lisp/cl-extra.el (cl-subseq): Move back the definition of
+       subseq in cl-extra.el, and use it in seq.el.
+
+2015-08-23  Fabián Ezequiel Gallina  <address@hidden>
+
+       python.el: Fix prompt detection with user overridden interpreter
+       * lisp/progmodes/python.el (python-shell-prompt-detect): Honor
+       buffer local python-shell-interpreter and
+       python-shell-interpreter-interactive-arg.
+
+2015-08-23  Eli Zaretskii  <address@hidden>
+
+       Support exec-directory with non-ASCII characters on Windows
+       * src/w32proc.c (sys_spawnve): Make sure exec-directory is encoded
+       in the system's ANSI codepage, when it is used for invoking
+       cmdproxy.
+
+2015-08-23  Andreas Schwab  <address@hidden>
+
+       Revert "Extend ‘format’ to translate curved quotes"
+       This reverts commit 244c801689d2f7a80480d83cd7d092d4762ebe08.
+
+       Revert "Prefer ‘format’ to ‘substitute-command-keys’"
+       This reverts commit 6af5aad26411ffe21c3fe4bc5438347110910111.
+
+2015-08-23  Xue Fuqiao  <address@hidden>
+
+       * doc/lispintro/emacs-lisp-intro.texi (Switching Buffers): Clarify
+       "invisible window".
+
 2015-08-23  Xue Fuqiao  <address@hidden>
 
        * doc/emacs/modes.texi (Choosing Modes): Minor doc fix for
@@ -10469,7 +11395,7 @@
 
 This file records repository revisions from
 commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
-commit a664f6a5d586e1f3fdbf31d0cf2fdaa6429a58fe (inclusive).
+commit cc90c25a50e536669ac327f7e05ec9194d1650d0 (inclusive).
 See ChangeLog.1 for earlier changes.
 
 ;; Local Variables:
diff --git a/doc/lispintro/emacs-lisp-intro.texi 
b/doc/lispintro/emacs-lisp-intro.texi
index 4406958..a27a969 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -3862,10 +3862,10 @@ tiger!} will be printed; otherwise, @code{nil} will be 
returned.
 @group
 (defun type-of-animal (characteristic)
   "Print message in echo area depending on CHARACTERISTIC.
-If the CHARACTERISTIC is the symbol `fierce',
+If the CHARACTERISTIC is the symbol ‘fierce’,
 then warn of a tiger."
   (if (equal characteristic 'fierce)
-      (message "It's a tiger!")))
+      (message "It’s a tiger!")))
 @end group
 @end smallexample
 
@@ -3887,7 +3887,7 @@ can evaluate the following two expressions to see the 
results:
 @c Following sentences rewritten to prevent overfull hbox.
 @noindent
 When you evaluate @code{(type-of-animal 'fierce)}, you will see the
-following message printed in the echo area: @code{"It's a tiger!"}; and
+following message printed in the echo area: @code{"It’s a tiger!"}; and
 when you evaluate @code{(type-of-animal 'zebra)} you will see @code{nil}
 printed in the echo area.
 
@@ -3918,7 +3918,7 @@ The parts of the function that match this template look 
like this:
 @group
 (defun type-of-animal (characteristic)
   "Print message in echo area depending on CHARACTERISTIC.
-If the CHARACTERISTIC is the symbol `fierce',
+If the CHARACTERISTIC is the symbol ‘fierce’,
 then warn of a tiger."
   @var{body: the} @code{if} @var{expression})
 @end group
@@ -3948,7 +3948,7 @@ looks like this:
 @smallexample
 @group
 (if (equal characteristic 'fierce)
-    (message "It's a tiger!")))
+    (message "It’s a tiger!")))
 @end group
 @end smallexample
 
@@ -3971,7 +3971,7 @@ In the first exercise of @code{type-of-animal}, the 
argument
 is equal to @code{fierce}, the expression, @code{(equal characteristic
 'fierce)}, returns a value of true.  When this happens, the @code{if}
 evaluates the second argument or then-part of the @code{if}:
address@hidden(message "It's tiger!")}.
address@hidden(message "It’s a tiger!")}.
 
 On the other hand, in the second exercise of @code{type-of-animal}, the
 argument @code{zebra} is passed to @code{type-of-animal}.  @code{zebra}
@@ -4034,12 +4034,11 @@ arguments to the function.
 @group
 (defun type-of-animal (characteristic)  ; @r{Second version.}
   "Print message in echo area depending on CHARACTERISTIC.
-If the CHARACTERISTIC is the symbol `fierce',
-then warn of a tiger;
-else say it's not fierce."
+If the CHARACTERISTIC is the symbol ‘fierce’,
+then warn of a tiger; else say it’s not fierce."
   (if (equal characteristic 'fierce)
-      (message "It's a tiger!")
-    (message "It's not fierce!")))
+      (message "It’s a tiger!")
+    (message "It’s not fierce!")))
 @end group
 @end smallexample
 @sp 1
@@ -4056,12 +4055,12 @@ else say it's not fierce."
 @c Following sentence rewritten to prevent overfull hbox.
 @noindent
 When you evaluate @code{(type-of-animal 'fierce)}, you will see the
-following message printed in the echo area: @code{"It's a tiger!"}; but
+following message printed in the echo area: @code{"It’s a tiger!"}; but
 when you evaluate @code{(type-of-animal 'zebra)}, you will see
address@hidden"It's not fierce!"}.
address@hidden"It’s not fierce!"}.
 
 (Of course, if the @var{characteristic} were @code{ferocious}, the
-message @code{"It's not fierce!"} would be printed; and it would be
+message @code{"It’s not fierce!"} would be printed; and it would be
 misleading!  When you write code, you need to take into account the
 possibility that some such argument will be tested by the @code{if}
 and write your program accordingly.)
@@ -4938,6 +4937,8 @@ result of this, point is placed at the beginning of the 
buffer and mark
 is set at the end of the buffer.  The whole buffer is, therefore, the
 region.
 
address@hidden FIXME: the definition of append-to-buffer has been changed (in
address@hidden 2010-03-30).
 @node append-to-buffer
 @section The Definition of @code{append-to-buffer}
 @findex append-to-buffer
@@ -6347,7 +6348,7 @@ With arg N, put point N/10 of the way
 from the true beginning.
 @end group
 @group
-Don't use this in Lisp programs!
+Don’t use this in Lisp programs!
 \(goto-char (point-min)) is faster
 and does not set the mark."
   (interactive "P")
@@ -7603,8 +7604,8 @@ Here is the complete text of the version 22 
implementation of the function:
 @smallexample
 @group
 (defun zap-to-char (arg char)
-  "Kill up to and including ARG'th occurrence of CHAR.
-Case is ignored if `case-fold-search' is non-nil in the current buffer.
+  "Kill up to and including ARG’th occurrence of CHAR.
+Case is ignored if ‘case-fold-search’ is non-nil in the current buffer.
 Goes backward if ARG is negative; error if CHAR not found."
   (interactive "p\ncZap to char: ")
   (if (char-table-p translation-table-for-input)
@@ -7862,7 +7863,7 @@ to make one entry in the kill ring.
 
 In Lisp code, optional third arg YANK-HANDLER, if non-nil,
 specifies the yank-handler text property to be set on the killed
-text.  See `insert-for-yank'."
+text.  See ‘insert-for-yank’."
   ;; Pass point first, then mark, because the order matters
   ;; when calling kill-append.
   (interactive (list (point) (mark)))
@@ -8290,9 +8291,9 @@ function:
 @smallexample
 @group
 (defun copy-region-as-kill (beg end)
-  "Save the region as if killed, but don't kill it.
+  "Save the region as if killed, but don’t kill it.
 In Transient Mark mode, deactivate the mark.
-If `interprogram-cut-function' is non-nil, also save the text for a window
+If ‘interprogram-cut-function’ is non-nil, also save the text for a window
 system cut and paste."
   (interactive "r")
 @end group
@@ -8591,9 +8592,9 @@ The @code{kill-new} function looks like this:
 @group
 (defun kill-new (string &optional replace yank-handler)
   "Make STRING the latest kill in the kill ring.
-Set `kill-ring-yank-pointer' to point to it.
+Set ‘kill-ring-yank-pointer’ to point to it.
 
-If `interprogram-cut-function' is non-nil, apply it to STRING.
+If `interprogram-cut-function’ is non-nil, apply it to STRING.
 Optional second argument REPLACE non-nil means that STRING will replace
 the front of the kill ring, rather than being added to the list.
 @dots{}"
@@ -9266,7 +9267,7 @@ documentation string.  For example:
 @smallexample
 @group
 (defvar shell-command-default-error-buffer nil
-  "*Buffer name for `shell-command' @dots{} error output.
+  "*Buffer name for ‘shell-command’ @dots{} error output.
 @dots{} ")
 @end group
 @end smallexample
@@ -10088,10 +10089,10 @@ With argument, rotate that many kills forward (or 
backward, if negative)."
 
 (defun current-kill (n &optional do-not-move)
   "Rotate the yanking point by N places, and then return that kill.
-If N is zero, `interprogram-paste-function' is set, and calling it
+If N is zero, ‘interprogram-paste-function’ is set, and calling it
 returns a string, then that string is added to the front of the
 kill ring and returned as the latest kill.
-If optional arg DO-NOT-MOVE is non-nil, then don't actually move the
+If optional arg DO-NOT-MOVE is non-nil, then don’t actually move the
 yanking point; just return the Nth kill forward."
   (let ((interprogram-paste (and (= n 0)
                                  interprogram-paste-function
@@ -11105,7 +11106,7 @@ up the number of pebbles in a triangle.
 @smallexample
 @group
 (defun triangle-using-dotimes (number-of-rows)
-  "Using dotimes, add up the number of pebbles in a triangle."
+  "Using ‘dotimes’, add up the number of pebbles in a triangle."
 (let ((total 0))  ; otherwise a total is a void variable
   (dotimes (number number-of-rows total)
     (setq total (+ total (1+ number))))))
@@ -11950,7 +11951,7 @@ duo that uses recursion."
 @group
 (defun triangle-recursive-helper (sum counter number)
   "Return SUM, using COUNTER, through NUMBER inclusive.
-This is the `helper' component of a two function duo
+This is the “helper” component of a two function duo
 that uses recursion."
   (if (> counter number)
       sum
@@ -12426,10 +12427,10 @@ Here is the code for @code{forward-sentence}:
 @smallexample
 @group
 (defun forward-sentence (&optional arg)
-  "Move forward to next `sentence-end'.  With argument, repeat.
-With negative argument, move backward repeatedly to `sentence-beginning'.
+  "Move forward to next ‘sentence-end’.  With argument, repeat.
+With negative argument, move backward repeatedly to ‘sentence-beginning’.
 
-The variable `sentence-end' is a regular expression that matches ends of
+The variable ‘sentence-end’ is a regular expression that matches ends of
 sentences.  Also, every paragraph boundary terminates sentences as well."
 @end group
 @group
@@ -12920,6 +12921,7 @@ The next line of the @code{forward-paragraph} function 
begins a
 @code{let*} expression.  This is a different than @code{let}.  The
 symbol is @code{let*} not @code{let}.
 
address@hidden let*
 The @code{let*} special form is like @code{let} except that Emacs sets
 each variable in sequence, one after another, and variables in the
 latter part of the varlist can make use of the values to which Emacs
@@ -13512,8 +13514,8 @@ For example:
 @group
 (let* ((foo 7)
       (bar (* 3 foo)))
-  (message "'bar' is %d." bar))
-     @result{} 'bar' is 21.
+  (message "‘bar’ is %d." bar))
+     @result{} ‘bar’ is 21.
 @end group
 @end smallexample
 
@@ -13755,7 +13757,7 @@ All this leads to the following function definition:
   "Print number of words in the region.
 Words are defined as at least one word-constituent
 character followed by at least one character that
-is not a word-constituent.  The buffer's syntax
+is not a word-constituent.  The buffer’s syntax
 table determines which characters these are."
   (interactive "r")
   (message "Counting words in region ... ")
@@ -13822,7 +13824,7 @@ parenthesis and type @kbd{C-x C-e} to install it.
 (defun @value{COUNT-WORDS} (beginning end)
   "Print number of words in the region.
 Words are defined as at least one word-constituent character followed
-by at least one character that is not a word-constituent.  The buffer's
+by at least one character that is not a word-constituent.  The buffer’s
 syntax table determines which characters these are."
 @end group
 @group
@@ -14984,13 +14986,13 @@ beginning of the file.  The function definition looks 
like this:
 @smallexample
 @group
 (defun lengths-list-file (filename)
-  "Return list of definitions' lengths within FILE.
+  "Return list of definitions’ lengths within FILE.
 The returned list is a list of numbers.
 Each number is the number of words or
 symbols in one function definition."
 @end group
 @group
-  (message "Working on '%s' ... " filename)
+  (message "Working on ‘%s’ ... " filename)
   (save-excursion
     (let ((buffer (find-file-noselect filename))
           (lengths-list))
@@ -15756,7 +15758,7 @@ simpler to write a list manually.  Here it is:
   160 170 180 190 200
   210 220 230 240 250
   260 270 280 290 300)
- "List specifying ranges for `defuns-per-range'.")
+ "List specifying ranges for ‘defuns-per-range’.")
 @end group
 @end smallexample
 
@@ -17519,7 +17521,7 @@ Incidentally, @code{load-library} is an interactive 
interface to the
 @group
 (defun load-library (library)
   "Load the library named LIBRARY.
-This is an interface to the function `load'."
+This is an interface to the function ‘load’."
   (interactive
    (list (completing-read "Load library: "
                           (apply-partially 'locate-file-completion-table
@@ -19003,12 +19005,12 @@ The @code{current-kill} function is used by 
@code{yank} and by
 @group
 (defun current-kill (n &optional do-not-move)
   "Rotate the yanking point by N places, and then return that kill.
-If N is zero, `interprogram-paste-function' is set, and calling it
+If N is zero, ‘interprogram-paste-function’ is set, and calling it
 returns a string, then that string is added to the front of the
 kill ring and returned as the latest kill.
 @end group
 @group
-If optional arg DO-NOT-MOVE is non-nil, then don't actually move the
+If optional arg DO-NOT-MOVE is non-nil, then don’t actually move the
 yanking point; just return the Nth kill forward."
   (let ((interprogram-paste (and (= n 0)
                                  interprogram-paste-function
@@ -19347,8 +19349,8 @@ beginning (and mark at end).  With argument N, reinsert 
the Nth most
 recently killed stretch of killed text.
 
 When this command inserts killed text into the buffer, it honors
-`yank-excluded-properties' and `yank-handler' as described in the
-doc string for `insert-for-yank-1', which see.
+‘yank-excluded-properties’ and ‘yank-handler’ as described in the
+doc string for ‘insert-for-yank-1’, which see.
 
 See also the command \\[yank-pop]."
 @end group
@@ -19922,7 +19924,7 @@ row, and the value of the width of the top line, which 
is calculated
 @group
 (defun Y-axis-element (number full-Y-label-width)
   "Construct a NUMBERed label element.
-A numbered element looks like this '  5 - ',
+A numbered element looks like this ‘  5 - ’,
 and is padded as needed so all line up with
 the element for the largest number."
 @end group
@@ -20023,7 +20025,7 @@ the @code{print-Y-axis} function, which inserts the 
list as a column.
 Height must be the maximum height of the graph.
 Full width is the width of the highest label element."
 ;; Value of height and full-Y-label-width
-;; are passed by 'print-graph'.
+;; are passed by ‘print-graph’.
 @end group
 @group
   (let ((start (point)))
@@ -21148,7 +21150,7 @@ each column."
 @end group
 @group
 ;; Value of symbol-width and full-Y-label-width
-;; are passed by 'print-graph'.
+;; are passed by ‘print-graph’.
   (let* ((leading-spaces
           (make-string full-Y-label-width ? ))
        ;; symbol-width @r{is provided by} graph-body-print
@@ -21248,7 +21250,7 @@ Here are all the graphing definitions in their final 
form:
   110 120 130 140 150
   160 170 180 190 200
   210 220 230 240 250)
- "List specifying ranges for `defuns-per-range'.")
+ "List specifying ranges for ‘defuns-per-range’.")
 @end group
 
 @group
@@ -21309,14 +21311,14 @@ as graph-symbol.")
 @smallexample
 @group
 (defun lengths-list-file (filename)
-  "Return list of definitions' lengths within FILE.
+  "Return list of definitions’ lengths within FILE.
 The returned list is a list of numbers.
 Each number is the number of words or
 symbols in one function definition."
 @end group
 
 @group
-  (message "Working on '%s' ... " filename)
+  (message "Working on ‘%s’ ... " filename)
   (save-excursion
     (let ((buffer (find-file-noselect filename))
           (lengths-list))
@@ -21446,7 +21448,7 @@ The strings are either graph-blank or graph-symbol."
 @group
 (defun Y-axis-element (number full-Y-label-width)
   "Construct a NUMBERed label element.
-A numbered element looks like this '  5 - ',
+A numbered element looks like this ‘  5 - ’,
 and is padded as needed so all line up with
 the element for the largest number."
 @end group
@@ -21476,7 +21478,7 @@ Optionally, print according to VERTICAL-STEP."
 @end group
 @group
 ;; Value of height and full-Y-label-width
-;; are passed by 'print-graph'.
+;; are passed by ‘print-graph’.
   (let ((start (point)))
     (insert-rectangle
      (Y-axis-column height full-Y-label-width vertical-step))
@@ -21641,7 +21643,7 @@ each column."
 @end group
 @group
 ;; Value of symbol-width and full-Y-label-width
-;; are passed by 'print-graph'.
+;; are passed by ‘print-graph’.
   (let* ((leading-spaces
           (make-string full-Y-label-width ? ))
        ;; symbol-width @r{is provided by} graph-body-print
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
index 421f5cc..29d1bd5 100644
--- a/doc/lispref/control.texi
+++ b/doc/lispref/control.texi
@@ -315,7 +315,7 @@ between a few different constant values:
 @example
 (pcase (get-return-code x)
   (`success       (message "Done!"))
-  (`would-block   (message "Sorry, can't do it now"))
+  (`would-block   (message "Sorry, can’t do it now"))
   (`read-only     (message "The shmliblick is read-only"))
   (`access-denied (message "You do not have the needed rights"))
   (code           (message "Unknown return code %S" code)))
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 36404f4..9d82edc 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -632,13 +632,13 @@ for logging the warning.  By default, it is 
@file{*Warnings*}.
 @end defun
 
 @defun lwarn type level message &rest args
-This function reports a warning using the value of @code{(format
+This function reports a warning using the value of @code{(format-message
 @var{message} @var{args}...)} as the message in the @file{*Warnings*}
 buffer.  In other respects it is equivalent to @code{display-warning}.
 @end defun
 
 @defun warn message &rest args
-This function reports a warning using the value of @code{(format
+This function reports a warning using the value of @code{(format-message
 @var{message} @var{args}...)} as the message, @code{(emacs)} as the
 type, and @code{:warning} as the severity level.  It exists for
 compatibility only; we recommend not using it, because you should
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index a853d2f..20eaf5d 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -1561,7 +1561,7 @@ Around advice such as:
 
 @example
 (defadvice foo (around foo-around)
-  "Ignore case in `foo'."
+  "Ignore case in ‘foo’."
   (let ((case-fold-search t))
     ad-do-it))
 (ad-activate 'foo)
@@ -1571,7 +1571,7 @@ could translate into:
 
 @example
 (defun foo--foo-around (orig-fun &rest args)
-  "Ignore case in `foo'."
+  "Ignore case in ‘foo’."
   (let ((case-fold-search t))
     (apply orig-fun args)))
 (advice-add 'foo :around #'foo--foo-around)
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index a8b6bb1..f00e481 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -1155,9 +1155,9 @@ Many other modes, such as `mail-mode', `outline-mode' and
   "Major mode for editing text written for humans to read.
 In this mode, paragraphs are delimited only by blank or white lines.
 You can thus get the full benefit of adaptive filling
- (see the variable `adaptive-fill-mode').
+ (see the variable ‘adaptive-fill-mode’).
 address@hidden@}
-Turning on Text mode runs the normal hook `text-mode-hook'."
+Turning on Text mode runs the normal hook ‘text-mode-hook’."
 @end group
 @group
   (set (make-local-variable 'text-mode-variant) t)
@@ -1252,7 +1252,7 @@ And here is the code to set up the keymap for Lisp mode:
     @dots{}
     map)
   "Keymap for ordinary Lisp mode.
-All commands in `lisp-mode-shared-map' are inherited by this map.")
+All commands in ‘lisp-mode-shared-map’ are inherited by this map.")
 @end group
 @end smallexample
 
@@ -1268,12 +1268,12 @@ Delete converts tabs to spaces as it moves back.
 Blank lines separate paragraphs.  Semicolons start comments.
 
 address@hidden@}
-Note that `run-lisp' may be used either to start an inferior Lisp job
+Note that ‘run-lisp’ may be used either to start an inferior Lisp job
 or to switch back to an existing one.
 @end group
 
 @group
-Entry to this mode calls the value of `lisp-mode-hook'
+Entry to this mode calls the value of ‘lisp-mode-hook’
 if that value is non-nil."
   (lisp-mode-variables nil t)
   (set (make-local-variable 'find-tag-default-function)
@@ -1447,7 +1447,7 @@ will load the library that defines the mode.  For example:
 (defcustom msb-mode nil
   "Toggle msb-mode.
 Setting this variable directly does not take effect;
-use either \\[customize] or the function `msb-mode'."
+use either \\[customize] or the function ‘msb-mode’."
   :set 'custom-set-minor-mode
   :initialize 'custom-initialize-default
   :version "20.4"
@@ -1605,7 +1605,7 @@ for this macro.
 Interactively with no argument, this command toggles the mode.
 A positive prefix argument enables the mode, any other prefix
 argument disables it.  From Lisp, argument omitted or nil enables
-the mode, `toggle' toggles the state.
+the mode, ‘toggle’ toggles the state.
 
 When Hungry mode is enabled, the control delete key
 gobbles all preceding whitespace except the last.
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 4b5a1b4..64ebb45 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -1927,7 +1927,7 @@ idleness.  Here's an example:
 
 @example
 (defvar my-resume-timer nil
-  "Timer for `my-timer-function' to reschedule itself, or nil.")
+  "Timer for ‘my-timer-function’ to reschedule itself, or nil.")
 
 (defun my-timer-function ()
   ;; @r{If the user types a command while @code{my-resume-timer}}
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi
index eb15228..12ed881 100644
--- a/doc/lispref/sequences.texi
+++ b/doc/lispref/sequences.texi
@@ -833,10 +833,9 @@ vector or string (@pxref{Iteration} for more information 
about the
 
 @defmac seq-let arguments sequence address@hidden
 @cindex sequence destructuring
-  This macro binds the variables in defined in the sequence
address@hidden to the elements of the sequence @var{sequence}.
address@hidden can itself include sequences allowing for nested
-destructuring.
+  This macro binds the variables defined in @var{arguments} to the
+elements of the sequence @var{sequence}.  @var{arguments} can itself
+include sequences allowing for nested destructuring.
 
 The @var{arguments} sequence can also include the @code{&rest} marker
 followed by a variable name to be bound to the rest of
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 08e8e87..d882be4 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -969,12 +969,12 @@ is not truncated.
 
 @example
 @group
-(format "The word '%7s' has %d letters in it."
+(format "The word ‘%7s’ has %d letters in it."
         "foo" (length "foo"))
-     @result{} "The word '    foo' has 3 letters in it."
-(format "The word '%7s' has %d letters in it."
+     @result{} "The word ‘    foo’ has 3 letters in it."
+(format "The word ‘%7s’ has %d letters in it."
         "specification" (length "specification"))
-     @result{} "The word 'specification' has 13 letters in it."
+     @result{} "The word ‘specification’ has 13 letters in it."
 @end group
 @end example
 
@@ -1013,12 +1013,12 @@ ignored.
 (format "%06d is padded on the left with zeros" 123)
      @result{} "000123 is padded on the left with zeros"
 
-(format "'%-6d' is padded on the right" 123)
-     @result{} "'123   ' is padded on the right"
+(format "‘%-6d’ is padded on the right" 123)
+     @result{} "‘123   ’ is padded on the right"
 
-(format "The word '%-7s' actually has %d letters in it."
+(format "The word ‘%-7s’ actually has %d letters in it."
         "foo" (length "foo"))
-     @result{} "The word 'foo    ' actually has 3 letters in it."
+     @result{} "The word ‘foo    ’ actually has 3 letters in it."
 @end group
 @end example
 
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index e63e634..245825a 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -1960,7 +1960,7 @@ Called from a program, there are three arguments:
 @group
 REVERSE (non-nil means reverse order),\
  BEG and END (region to sort).
-The variable `sort-fold-case' determines\
+The variable ‘sort-fold-case’ determines\
  whether alphabetic case affects
 the sort order."
 @end group
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index 7a824ac..565abb5 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -867,14 +867,14 @@ It would look like this:
   )
 
 (defun MY-ROOT-FCN ()
-  "Return the root fcn for `default-directory'"
+  "Return the root fcn for ‘default-directory’"
   ;; You might be able to use 'ede-cpp-root-project-root'
   ;; and not write this at all.
   )
 
 (defun MY-LOAD (dir)
-  "Load a project of type `cpp-root' for the directory DIR.
-Return nil if there isn't one."
+  "Load a project of type ‘cpp-root’ for the directory DIR.
+Return nil if there isn’t one."
   ;; Use your preferred construction method here.
   (ede-cpp-root-project "NAME" :file (expand-file-name "FILE" dir)
                                :locate-fcn 'MYFCN)
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 3e9109d..75df1d4 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -4336,7 +4336,7 @@ best fix I've been able to come up with:
 
 @lisp
 (defun rmail-reply-t ()
-  "Reply only to the sender of the current message. (See rmail-reply.)"
+  "Reply only to the sender of the current message. (See ‘rmail-reply’.)"
   (interactive)
   (rmail-reply t))
 
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi
index fb4e147..7cee5c3 100644
--- a/doc/misc/eieio.texi
+++ b/doc/misc/eieio.texi
@@ -1529,7 +1529,7 @@ Currently, the default superclass is defined as follows:
   nil
   "Default parent class for classes with no specified parent class.
 Its slots are automatically adopted by classes with no specified
-parents.  This class is not stored in the `parent' slot of a class vector."
+parents.  This class is not stored in the ‘parent’ slot of a class vector."
   :abstract t)
 @end example
 
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 76d1a52..0b856c7 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -1671,7 +1671,7 @@ instead (works for newer versions as well):
          (setq message-user-fqdn fqdn)
        (gnus-message 1 "Redefining `message-make-fqdn'.")
        (defun message-make-fqdn ()
-         "Return user's fully qualified domain name."
+         "Return user’s fully qualified domain name."
          fqdn))))
 @end example
 @noindent
@@ -1765,9 +1765,9 @@ snippet by Frank Haun <pille3003@@fhaun.de> in
 
 @example
 (defun my-archive-article (&optional n)
-  "Copies one or more article(s) to a corresponding `nnml:' group, e.g.,
-`gnus.ding' goes to `nnml:1.gnus.ding'. And `nnml:List-gnus.ding' goes
-to `nnml:1.List-gnus-ding'.
+  "Copies one or more article(s) to a corresponding ‘nnml:’ group, e.g.,
+‘gnus.ding’ goes to ‘nnml:1.gnus.ding’. And ‘nnml:List-gnus.ding’ goes
+to ‘nnml:1.List-gnus-ding’.
 
 Use process marks or mark a region in the summary buffer to archive
 more then one article."
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 0afc7e4..23a43f4 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -21033,8 +21033,8 @@ function:
 
 @lisp
 (defun gnus-decay-score (score)
-  "Decay SCORE according to `gnus-score-decay-constant'
-and `gnus-score-decay-scale'."
+  "Decay SCORE according to ‘gnus-score-decay-constant’
+and ‘gnus-score-decay-scale’."
   (let ((n (- score
               (* (if (< score 0) -1 1)
                  (min (abs score)
@@ -24080,7 +24080,7 @@ spam.  And here is the nifty function:
 
 @lisp
 (defun my-gnus-raze-spam ()
-  "Submit SPAM to Vipul's Razor, then mark it as expirable."
+  "Submit SPAM to Vipul’s Razor, then mark it as expirable."
   (interactive)
   (gnus-summary-save-in-pipe "razor-report -f -d" t)
   (gnus-summary-mark-as-expirable 1))
diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi
index 8406a80..54f7591 100644
--- a/doc/misc/mh-e.texi
+++ b/doc/misc/mh-e.texi
@@ -3159,13 +3159,13 @@ code to @file{~/.emacs}.
 @smalllisp
 @group
 (defvar my-mh-screen-saved nil
-  "Set to address@hidden when MH-E window configuration shown.")
+  "Set to non-nil when MH-E window configuration shown.")
 (defvar my-normal-screen nil "Normal window configuration.")
 (defvar my-mh-screen nil "MH-E window configuration.")
 
 (defun my-mh-rmail (&optional arg)
   "Toggle between MH-E and normal screen configurations.
-With address@hidden or prefix argument, @i{inc} mailbox as well
+With non-nil or prefix argument, include mailbox as well
 when going into mail."
   (interactive "P")                 ; @r{user callable function, P=prefix arg}
   (setq my-mh-screen-saved          ; @r{save state}
@@ -3474,7 +3474,7 @@ bindings, for example:
 @smalllisp
 @group
 (defvar my-mh-init-done nil
-  "address@hidden when one-time MH-E settings made.")
+  "Non-nil when one-time MH-E settings made.")
 
 (defun my-mh-folder-mode-hook ()
   "Hook to set key bindings in MH-Folder mode."
diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi
index a707ba5..a0d74b4 100644
--- a/doc/misc/rcirc.texi
+++ b/doc/misc/rcirc.texi
@@ -909,7 +909,7 @@ The real answer, therefore, is a @code{/reconnect} command:
      "Reconnect the server process."
      (interactive "i")
      (unless process
-       (error "There's no process for this target"))
+       (error "There’s no process for this target"))
      (let* ((server (car (process-contact process)))
             (port (process-contact process :service))
             (nick (rcirc-nick process))
diff --git a/doc/misc/ses.texi b/doc/misc/ses.texi
index 7017429..2f92e3e 100644
--- a/doc/misc/ses.texi
+++ b/doc/misc/ses.texi
@@ -1046,7 +1046,7 @@ the data area, such as hidden constants you want to refer 
to in your
 formulas.
 
 You can override the variable @code{ses--symbolic-formulas} to be a list of
-symbols (as parenthesized strings) to show as completions for the '
+symbols (as parenthesized strings) to show as completions for the @kbd{'}
 command.  This initial completions list is used instead of the actual
 set of symbols-as-formulas in the spreadsheet.
 
diff --git a/etc/NEWS b/etc/NEWS
index 0f88e0c..3832ffa 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -108,7 +108,7 @@ frames.
 
 ** `isearch' and `query-replace' now perform character folding in matches.
 This is analogous to case-folding, but applies between Unicode
-characters and their ASCII counterparts. This means many characters
+characters and their ASCII counterparts.  This means many characters
 will match entire groups of characters.
 
 For instance, the " will match all variants of unicode double quotes
@@ -116,12 +116,12 @@ For instance, the " will match all variants of unicode 
double quotes
 cousins, even those composed of multiple characters, as well as many
 other symbols like ℀, ℁, ⒜, and ⓐ.
 
-** New function `character-folded-regexp' can be used
-by searching commands to produce a a regexp matching anything that
+** New function `character-fold-to-regexp' can be used
+by searching commands to produce a regexp matching anything that
 character-folds into STRING.
 
 ** New command `checkdoc-package-keywords' checks if the
-current package keywords are recognized. Set the new option
+current package keywords are recognized.  Set the new option
 `checkdoc-package-keywords-flag' to non-nil to make
 `checkdoc-current-buffer' call this function automatically.
 
@@ -326,7 +326,7 @@ is suitable for most programming languages such as C or 
Lisp (but not
 
 ** ERC
 
-*** Hide message types by network or channel. `erc-hide-list' will
+*** Hide message types by network or channel.  `erc-hide-list' will
 hide all messages of the specified type, where `erc-network-hide-list'
 and `erc-channel-hide-list' will only hide the specified message types
 for the respective specified targets.
@@ -361,7 +361,7 @@ always respect that.
 
 *** If a package is available on multiple archives and one has higher
 priority (as per `package-archive-priorities') only that one is
-listed. This can be configured with `package-menu-hide-low-priority'.
+listed.  This can be configured with `package-menu-hide-low-priority'.
 
 *** `package-menu-toggle-hiding' now toggles the hiding of packages.
 This includes the above-mentioned low-priority packages, as well as
@@ -390,7 +390,7 @@ The FORCE argument to `package-delete' overrides this.
 
 *** New custom variable `package-selected-packages' tracks packages
 which were installed by the user (as opposed to installed as
-dependencies). This variable can also be manually customized.
+dependencies).  This variable can also be manually customized.
 
 *** New command `package-install-user-selected-packages' installs all
 packages from `package-selected-packages' which are currently missing.
@@ -543,7 +543,7 @@ appending FUN to `minibuffer-setup-hook'.
 ** seq
 *** New seq library:
 The seq library adds sequence manipulation functions and macros that
-complement basic functions provided by subr.el. All functions are
+complement basic functions provided by subr.el.  All functions are
 prefixed with `seq-' and work on lists, strings and vectors.
 
 ** map
@@ -702,11 +702,11 @@ non-integer inputs.
 interactive macro evaluation and automatic scanning of #defined symbols.
 
 *** New custom variable `hide-ifdef-header-regexp' to define C/C++ header file
-name patterns. Default case-insensitive .h, .hh, .hpp and .hxx.
+name patterns.  Default case-insensitive .h, .hh, .hpp, .hxx, and .h++.
 *** New custom variable `hide-ifdef-expand-reinclusion-protection' to prevent
 reinclusion protected header files from being fully hidden.
 *** New custom variable `hide-ifdef-exclude-define-regexp' to define symbol
-name patterns (e.x. all "FOR_DOXYGEN_ONLY_*") to be excluded.
+name patterns (e.g. all "FOR_DOXYGEN_ONLY_*") to be excluded.
 
 ** TeX mode
 
diff --git a/lisp/apropos.el b/lisp/apropos.el
index 73f86df..ec21296 100644
--- a/lisp/apropos.el
+++ b/lisp/apropos.el
@@ -1205,7 +1205,7 @@ If non-nil, TEXT is a string that will be printed as a 
heading."
     (set-buffer standard-output)
     (princ "Symbol ")
     (prin1 symbol)
-    (princ "'s plist is\n (")
+    (princ (substitute-command-keys "'s plist is\n ("))
     (put-text-property (+ (point-min) 7) (- (point) 14)
                       'face 'apropos-symbol)
     (insert (apropos-format-plist symbol "\n  "))
diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el
index bd33fbe..2442f02 100644
--- a/lisp/calc/calc-ext.el
+++ b/lisp/calc/calc-ext.el
@@ -1988,7 +1988,7 @@ calc-kill calc-kill-region calc-yank))))
      "kbd-macros: [ (if), : (else), | (else-if), ] (end-if)"
      "kbd-macros: < > (repeat), ( ) (for), { } (loop)"
      "kbd-macros: / (break)"
-     "kbd-macros: \\=` (save), ' (restore)")
+     "kbd-macros: \\=` (save), \\=' (restore)")
    "user" ?Z))
 
 
diff --git a/lisp/calc/calc-forms.el b/lisp/calc/calc-forms.el
index c6e1fdb..08fa5ce 100644
--- a/lisp/calc/calc-forms.el
+++ b/lisp/calc/calc-forms.el
@@ -63,7 +63,7 @@
 
 
 (defun calc-hms-notation (fmt)
-  (interactive "sHours-minutes-seconds format (hms, @ ' \", etc.): ")
+  (interactive "sHours-minutes-seconds format (hms, @ \\=' \", etc.): ")
   (calc-wrapper
    (if (string-match "\\`\\([^,; ]+\\)\\([,; ]*\\)\\([^,; ]\\)\\([,; 
]*\\)\\([^,; ]\\)\\'" fmt)
        (progn
@@ -273,7 +273,7 @@
        (m (math-normalize (nth 2 a)))
        (s (let ((calc-internal-prec (max (- calc-internal-prec 4) 3)))
             (math-normalize (nth 3 a)))))
-    (if (or 
+    (if (or
          (math-negp h)
          (and (= h 0) (math-negp m))
          (and (= h 0) (= m 0) (math-negp s)))
@@ -378,15 +378,15 @@
 ;;; A numerical date is the number of days since midnight on
 ;;; the morning of December 31, 1 B.C. (Gregorian) or January 2, 1 A.D. 
(Julian).
 ;;; Emacs's calendar refers to such a date as an absolute date, some Calc 
function
-;;; names also use that terminology.  If the date is a non-integer, it 
represents 
-;;; a specific date and time. 
+;;; names also use that terminology.  If the date is a non-integer, it 
represents
+;;; a specific date and time.
 ;;; A "dt" is a list of the form, (year month day), corresponding to
 ;;; an integer code, or (year month day hour minute second), corresponding
 ;;; to a non-integer code.
 
 (defun math-date-to-gregorian-dt (date)
   "Return the day (YEAR MONTH DAY) in the Gregorian calendar.
-DATE is the number of days since December 31, -1 in the Gregorian calendar." 
+DATE is the number of days since December 31, -1 in the Gregorian calendar."
   (let* ((month 1)
          day
          (year (math-quotient (math-add date (if (Math-lessp date 711859)
@@ -399,7 +399,7 @@ DATE is the number of days since December 31, -1 in the 
Gregorian calendar."
         (setq year (math-add year -1)))
     (if (eq year 0) (setq year -1))
     (setq date (1+ (math-sub date temp)))
-    (setq temp 
+    (setq temp
           (if (math-leap-year-p year)
               [1 32 61 92 122 153 183 214 245 275 306 336 999]
             [1 32 60 91 121 152 182 213 244 274 305 335 999]))
@@ -410,7 +410,7 @@ DATE is the number of days since December 31, -1 in the 
Gregorian calendar."
 
 (defun math-date-to-julian-dt (date)
   "Return the day (YEAR MONTH DAY) in the Julian calendar.
-DATE is the number of days since December 31, -1 in the Gregorian calendar." 
+DATE is the number of days since December 31, -1 in the Gregorian calendar."
   (let* ((month 1)
          day
          (year (math-quotient (math-add date (if (Math-lessp date 711859)
@@ -423,7 +423,7 @@ DATE is the number of days since December 31, -1 in the 
Gregorian calendar."
         (setq year (math-add year -1)))
     (if (eq year 0) (setq year -1))
     (setq date (1+ (math-sub date temp)))
-    (setq temp 
+    (setq temp
           (if (math-leap-year-p year t)
               [1 32 61 92 122 153 183 214 245 275 306 336 999]
             [1 32 60 91 121 152 182 213 244 274 305 335 999]))
@@ -444,7 +444,7 @@ in the Gregorian calendar and the remaining part determines 
the time."
         (date (car parts))
         (time (nth 1 parts))
          (dt (if (and calc-gregorian-switch
-                      (Math-lessp value 
+                      (Math-lessp value
                                   (or
                                    (nth 3 calc-gregorian-switch)
                                    (apply 'math-absolute-from-gregorian-dt 
calc-gregorian-switch))
@@ -453,7 +453,7 @@ in the Gregorian calendar and the remaining part determines 
the time."
                (math-date-to-gregorian-dt date))))
     (if (math-integerp value)
         dt
-      (append dt 
+      (append dt
               (list
                (/ time 3600)
                (% (/ time 60) 60)
@@ -467,13 +467,13 @@ in the Gregorian calendar and the remaining part 
determines the time."
          (year (math-add approx
                          (let ((y approx)
                                (sum 0))
-                           (while (>= (math-compare date 
+                           (while (>= (math-compare date
                                                     (math-absolute-from-iso-dt 
(setq y (math-add y 1)) 1 1)) 0)
                              (setq sum (+ sum 1)))
                            sum))))
-    (list 
+    (list
      year
-     (math-add (car (math-idivmod 
+     (math-add (car (math-idivmod
                      (math-sub date (math-absolute-from-iso-dt year 1 1))
                      7))
                1)
@@ -525,7 +525,7 @@ in the Gregorian calendar and the remaining part determines 
the time."
 (defun math-leap-year-p (year &optional julian)
   "Non-nil if YEAR is a leap year.
 If JULIAN is non-nil, then use the criterion for leap years
-in the Julian calendar, otherwise use the criterion in the 
+in the Julian calendar, otherwise use the criterion in the
 Gregorian calendar."
   (if julian
       (if (math-negp year)
@@ -584,7 +584,7 @@ Recall that DATE is the number of days since December 31, -1
 in the Gregorian calendar."
   (if (eq year 0) (setq year -1))
   (let ((yearm1 (math-sub year 1)))
-    (math-sub 
+    (math-sub
      ;; Add the number of days of the year and the numbers of days
      ;; in the previous years (leap year days to be added separately)
      (math-add (math-day-in-year year month day)
@@ -595,9 +595,9 @@ in the Gregorian calendar."
                            (math-sub 365
                                      (math-quotient (math-sub 3 year)
                                                     4)))))
-     ;; Subtract the number of Julian leap years which are not 
-     ;; Gregorian leap years.  In C=4N+r centuries, there will 
-     ;; be 3N+r of these days.  The following will compute 
+     ;; Subtract the number of Julian leap years which are not
+     ;; Gregorian leap years.  In C=4N+r centuries, there will
+     ;; be 3N+r of these days.  The following will compute
      ;; 3N+r.
      (let* ((correction (math-mul (math-quotient yearm1 100) 3))
             (res (math-idivmod correction 4)))
@@ -612,7 +612,7 @@ Recall that DATE is the number of days since December 31, -1
 in the Gregorian calendar."
   (if (eq year 0) (setq year -1))
   (let ((yearm1 (math-sub year 1)))
-    (math-sub 
+    (math-sub
      ;; Add the number of days of the year and the numbers of days
      ;; in the previous years (leap year days to be added separately)
      (math-add (math-day-in-year year month day)
@@ -731,11 +731,11 @@ as measured in the integer number of days before December 
31, 1 BC (Gregorian)."
        ((eq x 'n)
         (math-format-number (math-floor math-fd-date)))
        ((eq x 'J)
-        (math-format-number 
+        (math-format-number
           (math-add math-fd-date math-julian-date-beginning)))
        ((eq x 'j)
-        (math-format-number (math-add 
-                              (math-floor math-fd-date) 
+        (math-format-number (math-add
+                              (math-floor math-fd-date)
                               math-julian-date-beginning-int)))
        ((eq x 'U)
         (math-format-number (nth 1 (math-date-parts math-fd-date 719164))))
@@ -1082,7 +1082,7 @@ as measured in the integer number of days before December 
31, 1 BC (Gregorian)."
       (throw 'syntax "Day value is out of range"))
   (and hour
        (progn
-        (if (or (< hour 0) 
+        (if (or (< hour 0)
                  (> hour 24)
                  (and (= hour 24)
                       (not (= minute 0))
@@ -1102,7 +1102,7 @@ as measured in the integer number of days before December 
31, 1 BC (Gregorian)."
       (throw 'syntax "Weekday value is out of range"))
   (and hour
        (progn
-        (if (or (< hour 0) 
+        (if (or (< hour 0)
                  (> hour 24)
                  (and (= hour 24)
                       (not (= minute 0))
@@ -1473,7 +1473,7 @@ as measured in the integer number of days before December 
31, 1 BC (Gregorian)."
 ;; From cal-dst
 (defvar calendar-current-time-zone-cache)
 
-(defvar math-calendar-tzinfo 
+(defvar math-calendar-tzinfo
   nil
   "Information about the timezone, retrieved from the calendar.")
 
@@ -1523,7 +1523,7 @@ second, the number of seconds offset for daylight 
savings."
     (if (calc-var-value 'var-TimeZone)
        (calcFunc-tzone (calc-var-value 'var-TimeZone) date)
       (let ((tzinfo (math-get-calendar-tzinfo)))
-        (+ (nth 0 tzinfo) 
+        (+ (nth 0 tzinfo)
            (* (math-cal-daylight-savings-adjust date) (nth 1 tzinfo)))))))
 
 (defvar math-daylight-savings-hook 'math-std-daylight-savings)
@@ -1559,8 +1559,8 @@ second, the number of seconds offset for daylight 
savings."
                  (+ (nth 3 dt) (/ (nth 4 dt) 60.0)))
                 (t
                  0)))
-         (rounded-abs-date 
-          (+ 
+         (rounded-abs-date
+          (+
            (calendar-absolute-from-gregorian
             (list (nth 1 dt) (nth 2 dt) (nth 0 dt)))
            (/ (round (* 60 time)) 60.0 24.0))))
@@ -1700,7 +1700,7 @@ and ends on the last Sunday of October at 2 a.m."
   (let* ((dt (math-date-to-dt date))
          (dim (math-days-in-month (car dt) (nth 1 dt)))
          (julian (if calc-gregorian-switch
-                     (math-date-to-dt (math-sub 
+                     (math-date-to-dt (math-sub
                                        (or (nth 3 calc-gregorian-switch)
                                            (apply 
'math-absolute-from-gregorian-dt calc-gregorian-switch))
                                        1)))))
@@ -1727,14 +1727,14 @@ and ends on the last Sunday of October at 2 a.m."
               (list 'date (math-dt-to-date (list (car dt) (nth 1 dt) (1+ 
day))))
             ;; Otherwise do some computations
             (let ((tm (+ day (- (nth 2 calc-gregorian-switch) (nth 2 
julian)))))
-              (list 'date (math-dt-to-date 
+              (list 'date (math-dt-to-date
                            (list (car dt)
                                  (nth 1 dt)
-                                 ;; 
+                                 ;;
                                  (if (> tm dim) dim tm)))))))
          ((and (eq (car dt) (car julian))
                (= (nth 1 dt) (nth 1 julian)))
-          ;; In this case, the current month is truncated because of the 
switch 
+          ;; In this case, the current month is truncated because of the switch
           ;; to the Gregorian calendar
           (list 'date (math-dt-to-date
                        (list (car dt)
@@ -1742,7 +1742,7 @@ and ends on the last Sunday of October at 2 a.m."
                              (if (>= day (nth 2 julian))
                                  (nth 2 julian)
                                (1+ day))))))
-         (t 
+         (t
           ;; The default
           (list 'date (math-add (math-dt-to-date (list (car dt) (nth 1 dt) 1)) 
day))))
       (list 'date (math-add (math-dt-to-date (list (car dt) (nth 1 dt) 1)) 
day)))))
@@ -1779,7 +1779,7 @@ and ends on the last Sunday of October at 2 a.m."
                   ;; Otherwise, just make sure the date doesn't go past the 
end of the year
                   (list 'date (math-min (math-add (math-dt-to-date (list (car 
dt) 1 1)) (1- day))
                                         (math-dt-to-date (list (car dt) 12 
31))))))
-               (t 
+               (t
                 (list 'date (math-add (math-dt-to-date (list (car dt) 1 1))
                                       (1- day)))))
             (list 'date (math-add (math-dt-to-date (list (car dt) 1 1))
diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el
index 18c3b76..395b12d 100644
--- a/lisp/calc/calc-help.el
+++ b/lisp/calc/calc-help.el
@@ -546,7 +546,7 @@ C-w  Describe how there is no warranty for Calc."
    '("Select, Additional, Once; eVal, Formula; Rewrite"
      "More, Less, 1-9, Next, Previous"
      "Unselect, Clear; Display; Enable; Breakable"
-     "' (replace), \\=` (edit), +, -, *, /, RET (grab), DEL"
+     "\\=' (replace), \\=` (edit), +, -, *, /, RET (grab), DEL"
      "SHIFT + swap: Left, Right; maybe: Select, Once"
      "SHIFT + Commute, Merge, Distrib, jump-Eqn, Isolate"
      "SHIFT + Negate, & (invert); Unpack")
diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el
index 4d84146..e141589 100644
--- a/lisp/calc/calc-misc.el
+++ b/lisp/calc/calc-misc.el
@@ -225,7 +225,7 @@ Calc user interface as before (either C-x * C or C-x * K; 
initially C-x * C).
           "Letter keys: SHIFT + Num-eval; More-recn; eXec-kbd-macro; Keep-args"
           "Other keys: +, -, *, /, ^, \\ (int div), : (frac div)"
           "Other keys: & (1/x), | (concat), % (modulo), ! (factorial)"
-          "Other keys: ' (alg-entry), = (eval), \\=` (edit); M-RET (last-args)"
+          "Other keys: \\=' (alg-entry), = (eval), \\=` (edit); M-RET 
(last-args)"
           "Other keys: SPC/RET (enter/dup), LFD (over); < > (scroll horiz)"
           "Other keys: DEL (drop), M-DEL (drop-above); { } (scroll vert)"
           "Other keys: TAB (swap/roll-dn), M-TAB (roll-up)"
@@ -253,11 +253,12 @@ Calc user interface as before (either C-x * C or C-x * K; 
initially C-x * C).
                   0))
           (let ((msg (nth calc-help-phase msgs)))
             (message "%s" (if msg
-                              (concat msg ":"
+                              (concat (substitute-command-keys msg) ":"
                                       (make-string (- (apply 'max
                                                              (mapcar 'length
                                                                      msgs))
-                                                      (length msg)) 32)
+                                                      (length msg))
+                                                  ?\ )
                                       "  [?=MORE]")
                             ""))))))))
 
diff --git a/lisp/calc/calc-mode.el b/lisp/calc/calc-mode.el
index 605084e..b5eef7f 100644
--- a/lisp/calc/calc-mode.el
+++ b/lisp/calc/calc-mode.el
@@ -258,7 +258,7 @@
    (setq calc-display-raw (if calc-display-raw nil (if arg 0 t)))
    (calc-do-refresh)
    (if calc-display-raw
-       (message "Press d ' again to cancel \"raw\" display mode"))))
+       (message "%s" "Press d ' again to cancel \"raw\" display mode"))))
 
 
 
@@ -446,11 +446,11 @@
      (calc-change-mode '(calc-algebraic-mode calc-incomplete-algebraic-mode)
                       (list (not calc-algebraic-mode) nil)))
    (use-local-map calc-mode-map)
-   (message (if calc-algebraic-mode
-               "Numeric keys and ( and [ begin algebraic entry"
-             (if calc-incomplete-algebraic-mode
-                 "Only ( and [ begin algebraic entry"
-               "No keys except ' and $ begin algebraic entry")))))
+   (message "%s" (if calc-algebraic-mode
+                    "Numeric keys and ( and [ begin algebraic entry"
+                  (if calc-incomplete-algebraic-mode
+                      "Only ( and [ begin algebraic entry"
+                    "No keys except ' and $ begin algebraic entry")))))
 
 (defun calc-symbolic-mode (n)
   (interactive "P")
diff --git a/lisp/calc/calc-prog.el b/lisp/calc/calc-prog.el
index cc1d270..58d2b5c 100644
--- a/lisp/calc/calc-prog.el
+++ b/lisp/calc/calc-prog.el
@@ -1441,7 +1441,7 @@ Redefine the corresponding command."
           (let ((calc-kbd-push-level 0))
             (execute-kbd-macro (substring body 0 -2))))
        (let ((calc-kbd-push-level (1+ calc-kbd-push-level)))
-        (message "Saving modes; type Z' to restore")
+        (message "%s" "Saving modes; type Z' to restore")
         (recursive-edit))))))
 
 (defun calc-kbd-pop ()
@@ -1450,7 +1450,7 @@ Redefine the corresponding command."
       (progn
        (message "Mode settings restored")
        (exit-recursive-edit))
-    (error "Unbalanced Z' in keyboard macro")))
+    (error "%s" "Unbalanced Z' in keyboard macro")))
 
 
 ;; (defun calc-kbd-report (msg)
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
index 8e4df58..ea20986 100644
--- a/lisp/calc/calc.el
+++ b/lisp/calc/calc.el
@@ -736,7 +736,7 @@ If hms, angles are in degrees-minutes-seconds.")
 
 (defcalcmodevar calc-algebraic-mode nil
   "If non-nil, numeric entry accepts whole algebraic expressions.
-If nil, algebraic expressions must be preceded by \"'\".")
+If nil, algebraic expressions must be preceded by \"\\='\".")
 
 (defcalcmodevar calc-incomplete-algebraic-mode nil
   "Like calc-algebraic-mode except only affects ( and [ keys.")
@@ -1311,7 +1311,7 @@ This is an RPN calculator featuring arbitrary-precision 
integer, rational,
 floating-point, complex, matrix, and symbolic arithmetic.
 
 RPN calculation:  2 RET 3 +    produces 5.
-Algebraic style:  ' 2+3 RET    produces 5.
+Algebraic style:  \\=' 2+3 RET    produces 5.
 
 Basic operators are +, -, *, /, ^, & (reciprocal), % (modulo), n (change-sign).
 
@@ -1330,7 +1330,7 @@ Notations:  3.14e6     3.14 * 10^6
             [1 .. 4)   semi-open interval, 1 <= x < 4
             2 +/- 3    (p key) number with mean 2, standard deviation 3
             2 mod 3    (M key) number 2 computed modulo 3
-           <1 jan 91> Date form (enter using ' key)
+           <1 jan 91> Date form (enter using \\=' key)
 
 
 \\{calc-mode-map}
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index ec02900..b21fc68 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -910,10 +910,12 @@ This is recursive; that is, included files may include 
other files."
                                 (diary-list-entries original-date number t)))))
             (display-warning
              :error
-             (format "Can't read included diary file %s\n" diary-file)))
+             (format-message "Can't read included diary file %s\n"
+                            diary-file)))
         (display-warning
          :error
-         (format "Can't find included diary file %s\n" diary-file)))))
+         (format-message "Can't find included diary file %s\n"
+                        diary-file)))))
   (goto-char (point-min)))
 
 (defun diary-include-other-diary-files ()
diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
index 925d008..83f2fed 100644
--- a/lisp/calendar/todo-mode.el
+++ b/lisp/calendar/todo-mode.el
@@ -237,7 +237,8 @@ The final element is \"*\", indicating an unspecified 
month.")
                   (when (string= (widget-value widget) todo-item-mark)
                     (widget-put
                      widget :error
-                     "Invalid value: must be distinct from ‘todo-item-mark’")
+                     (format-message
+                      "Invalid value: must be distinct from ‘todo-item-mark’"))
                     widget)))
   :initialize 'custom-initialize-default
   :set 'todo-reset-prefix
@@ -1694,7 +1695,8 @@ only when no items are marked."
                   (when (string= (widget-value widget) todo-prefix)
                     (widget-put
                      widget :error
-                     "Invalid value: must be distinct from ‘todo-prefix’")
+                     (format-message
+                      "Invalid value: must be distinct from ‘todo-prefix’"))
                     widget)))
   :set (lambda (symbol value)
         (custom-set-default symbol (propertize value 'face 'todo-mark)))
diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el
index 3b06cf7..7d99b17 100644
--- a/lisp/cedet/ede.el
+++ b/lisp/cedet/ede.el
@@ -512,7 +512,7 @@ Sets buffer local variables for EDE."
        (when projdetect
          ;; No project was loaded, but we have a project description
          ;; object.  This means that we try to load it.
-         ;; 
+         ;;
          ;; Before loading, we need to check if it is a safe
          ;; project to load before requesting it to be loaded.
 
@@ -728,9 +728,10 @@ Return nil if DIR should not be in 
`ede-project-directories'."
       (when (listp ede-project-directories)
        (or (member dir ede-project-directories)
            (when (funcall ede-check-project-query-fcn
-                          (format "`%s' is not listed in 
`ede-project-directories'.
+                          (format-message
+                           "`%s' is not listed in `ede-project-directories'.
 Add it to the list of allowed project directories? "
-                                  dir))
+                           dir))
              (push dir ede-project-directories)
              ;; If possible, save `ede-project-directories'.
              (if (or custom-file user-init-file)
@@ -799,7 +800,7 @@ Optional argument NAME is the name to give this project."
                                              "Unknown file name specifier %S"
                                              pf)))
                                :targets nil)
-                
+
                 ))
         (inits (oref obj initializers)))
     ;; Force the name to match for new objects.
diff --git a/lisp/cedet/ede/auto.el b/lisp/cedet/ede/auto.el
index 482632f..51459fa 100644
--- a/lisp/cedet/ede/auto.el
+++ b/lisp/cedet/ede/auto.el
@@ -155,9 +155,9 @@ into memory.")
 Specifying this matcher object will allow EDE to perform a complex
 check without loading the project.
 
-NOTE: If you use dirmatch, you may need to set :root-only to nil.
+NOTE: If you use dirmatch, you may need to set :root-only to `nil'.
 While it may be a root based project, all subdirs will happen to return
-true for the dirmatch, so for scanning purposes, set it to nil.")
+true for the dirmatch, so for scanning purposes, set it to `nil'.")
    (proj-root :initarg :proj-root
              :type function
              :documentation "A function symbol to call for the project root.
@@ -197,23 +197,20 @@ type is required and the load function used.")
 
 (defvar ede-project-class-files
   (list
-   (ede-project-autoload "edeproject-makefile"
-                        :name "Make" :file 'ede/proj
+   (ede-project-autoload :name "Make" :file 'ede/proj
                         :proj-file "Project.ede"
                         :root-only nil
                         :load-type 'ede-proj-load
                         :class-sym 'ede-proj-project
                         :safe-p nil)
-   (ede-project-autoload "edeproject-automake"
-                        :name "Automake" :file 'ede/proj
+   (ede-project-autoload :name "Automake" :file 'ede/proj
                         :proj-file "Project.ede"
                         :root-only nil
                         :initializers '(:makefile-type Makefile.am)
                         :load-type 'ede-proj-load
                         :class-sym 'ede-proj-project
                         :safe-p nil)
-   (ede-project-autoload "automake"
-                        :name "automake" :file 'ede/project-am
+   (ede-project-autoload :name "automake" :file 'ede/project-am
                         :proj-file "Makefile.am"
                         :root-only nil
                         :load-type 'project-am-load
@@ -225,6 +222,19 @@ type is required and the load function used.")
 
 (put 'ede-project-class-files 'risky-local-variable t)
 
+(defun ede-show-supported-projects ()
+  "Display all the project types registered with EDE."
+  (interactive)
+  (let ((b (get-buffer-create "*EDE Autodetect Projects*")))
+    (set-buffer b)
+    (setq buffer-read-only nil)
+    (erase-buffer)
+    (dolist (prj ede-project-class-files)
+      (insert (oref prj name))
+      (newline))
+    (display-buffer b)
+ ))
+
 (defun ede-add-project-autoload (projauto &optional flag)
   "Add PROJAUTO, an EDE autoload definition to `ede-project-class-files'.
 Optional argument FLAG indicates how this autoload should be
@@ -234,8 +244,8 @@ added.  Possible values are:
             front of the list so more generic projects don't get priority."
   ;; First, can we identify PROJAUTO as already in the list?  If so, replace.
   (let ((projlist ede-project-class-files)
-       (projname (eieio-object-name-string projauto)))
-    (while (and projlist (not (string= (eieio-object-name-string (car 
projlist)) projname)))
+       (projname (oref projauto name)))
+    (while (and projlist (not (string= (oref (car projlist) name) projname)))
       (setq projlist (cdr projlist)))
 
     (if projlist
@@ -296,7 +306,7 @@ be loaded.
 
 NOTE: Do not call this - it should only be called from 
`ede-load-project-file'."
   ;; Last line of defense: don't load unsafe projects.
-  (when (not (or (oref this :safe-p)
+  (when (not (or (oref this safe-p)
                 (ede-directory-safe-p dir)))
     (error "Attempt to load an unsafe project (bug elsewhere in EDE)"))
   ;; Things are good - so load the project.
diff --git a/lisp/cedet/ede/generic.el b/lisp/cedet/ede/generic.el
index 9e6fc97..8d01324 100644
--- a/lisp/cedet/ede/generic.el
+++ b/lisp/cedet/ede/generic.el
@@ -74,7 +74,7 @@
 ;; The ede-generic-target-c-cpp has some example methods setting up
 ;; the pre-processor map and system include path.
 ;;
-;; NOTE: It is not necessary to modify ede-generic.el to add any of
+;; NOTE: It is not necessary to modify ede/generic.el to add any of
 ;; the above described support features.
 
 (require 'eieio-opt)
@@ -102,14 +102,14 @@ ROOTPROJ is nil, since there is only one project."
   (let* ((alobj ede-constructing))
     (when (not alobj) (error "Cannot load generic project without the autoload 
instance"))
     ;;;
-    ;; TODO - find the root dir. 
+    ;; TODO - find the root dir.
     (let ((rootdir dir))
       (funcall (oref alobj class-sym)
               (symbol-name (oref alobj class-sym))
               :name (file-name-nondirectory (directory-file-name dir))
               :version "1.0"
               :directory (file-name-as-directory rootdir)
-              :file (expand-file-name (oref alobj :proj-file)
+              :file (expand-file-name (oref alobj proj-file)
                                       rootdir)))
     ))
 
@@ -211,7 +211,7 @@ All directories need at least one target.")
   (let ((match nil))
     (dolist (T targets)
       (when (and (object-of-class-p T class)
-                (string= (oref T :path) dir))
+                (string= (oref T path) dir))
        (setq match T)
       ))
     match))
@@ -241,7 +241,7 @@ If one doesn't exist, create a new one for this directory."
     (when (not ans)
       (setq ans (make-instance
                 cls
-                :name (oref cls shortname)
+                :name (oref-default cls shortname)
                 :path dir
                 :source nil))
       (object-add-to-list proj :targets ans)
@@ -252,18 +252,18 @@ If one doesn't exist, create a new one for this 
directory."
 ;;
 ;; Derived projects need an autoloader so that EDE can find the
 ;; different projects on disk.
-(defun ede-generic-new-autoloader (internal-name external-name
-                                                projectfile class)
+(defun ede-generic-new-autoloader (_internal-name external-name
+                                                  projectfile class)
   "Add a new EDE Autoload instance for identifying a generic project.
-INTERNAL-NAME is a long name that identifies this project type.
-EXTERNAL-NAME is a shorter human readable name to describe the project.
+INTERNAL-NAME is obsolete and ignored.
+EXTERNAL-NAME is a human readable name to describe the project; it
+must be unique among all autoloaded projects.
 PROJECTFILE is a file name that identifies a project of this type to EDE, such 
as
 a Makefile, or SConstruct file.
 CLASS is the EIEIO class that is used to track this project.  It should 
subclass
-the class `ede-generic-project' project."
+`ede-generic-project'."
   (ede-add-project-autoload
-   (ede-project-autoload internal-name
-                        :name external-name
+   (ede-project-autoload :name external-name
                         :file 'ede/generic
                         :proj-file projectfile
                         :root-only nil
@@ -284,29 +284,29 @@ the class `ede-generic-project' project."
 (defun ede-enable-generic-projects ()
   "Enable generic project loaders."
   (interactive)
-  (ede-generic-new-autoloader "generic-makefile" "Make"
+  (ede-generic-new-autoloader "generic-makefile" "Generic Make"
                              "Makefile" 'ede-generic-makefile-project)
-  (ede-generic-new-autoloader "generic-scons" "SCons"
+  (ede-generic-new-autoloader "generic-scons" "Generic SCons"
                              "SConstruct" 'ede-generic-scons-project)
-  (ede-generic-new-autoloader "generic-cmake" "CMake"
+  (ede-generic-new-autoloader "generic-cmake" "Generic CMake"
                              "CMakeLists" 'ede-generic-cmake-project)
 
   ;; Super Generic found via revision control tags.
-  (ede-generic-new-autoloader "generic-git" "Git"
+  (ede-generic-new-autoloader "generic-git" "Generic Git"
                              ".git" 'ede-generic-vc-project)
-  (ede-generic-new-autoloader "generic-bzr" "Bazaar"
+  (ede-generic-new-autoloader "generic-bzr" "Generic Bazaar"
                              ".bzr" 'ede-generic-vc-project)
-  (ede-generic-new-autoloader "generic-hg" "Mercurial"
+  (ede-generic-new-autoloader "generic-hg" "Generic Mercurial"
                              ".hg" 'ede-generic-vc-project)
-  (ede-generic-new-autoloader "generic-svn" "Subversions"
+  (ede-generic-new-autoloader "generic-svn" "Generic Subversions"
                              ".svn" 'ede-generic-vc-project)
-  (ede-generic-new-autoloader "generic-cvs" "CVS"
+  (ede-generic-new-autoloader "generic-cvs" "Generic CVS"
                              "CVS" 'ede-generic-vc-project)
 
   ;; Take advantage of existing 'projectile' based projects.
   ;; @TODO - if projectile supports compile commands etc, can we
   ;; read that out?  Howto if projectile is not part of core emacs.
-  (ede-generic-new-autoloader "generic-projectile" ".projectile"
+  (ede-generic-new-autoloader "generic-projectile" "Generic .projectile"
                              ".projectile" 'ede-generic-vc-project)
 
   )
diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el
index 9ee8750..72512c6 100644
--- a/lisp/cedet/mode-local.el
+++ b/lisp/cedet/mode-local.el
@@ -637,21 +637,30 @@ SYMBOL is a function that can be overridden."
   (when (get symbol 'mode-local-overload)
     (let ((default (or (intern-soft (format "%s-default" (symbol-name symbol)))
                       symbol))
-         (override (and
-                    (boundp 'describe-function-orig-buffer) ;; added in Emacs 
25
-                    describe-function-orig-buffer
-                    (with-current-buffer describe-function-orig-buffer
-                      (fetch-overload symbol)))))
+         (override (with-current-buffer describe-function-orig-buffer
+                      (fetch-overload symbol)))
+          modes)
+
       (insert (overload-docstring-extension symbol) "\n\n")
-      (insert (substitute-command-keys (format "default function: `%s'\n" 
default)))
-      (when (and (boundp 'describe-function-orig-buffer) ;; added in Emacs 25
-                describe-function-orig-buffer)
-       (if override
-           (insert (substitute-command-keys
-                    (format "\noverride in buffer '%s': `%s'\n"
-                            describe-function-orig-buffer override)))
-         (insert (substitute-command-keys (format "\nno override in buffer 
'%s'\n"
-                                                  
describe-function-orig-buffer)))))
+      (insert (format-message "default function: `%s'\n" default))
+      (if override
+         (insert (format-message "\noverride in buffer '%s': `%s'\n"
+                                 describe-function-orig-buffer override))
+       (insert (format-message "\nno override in buffer '%s'\n"
+                               describe-function-orig-buffer)))
+
+      (mapatoms
+       (lambda (sym) (when (get sym 'mode-local-symbol-table) (push sym 
modes)))
+       obarray)
+
+      (dolist (mode modes)
+       (let* ((major-mode mode)
+              (override (fetch-overload symbol)))
+
+         (when override
+           (insert (format-message "\noverride in mode ‘%s’: ’%s’\n"
+                                   major-mode override))
+            )))
       )))
 
 (add-hook 'help-fns-describe-function-functions 'describe-mode-local-overload)
diff --git a/lisp/cedet/semantic/analyze/debug.el 
b/lisp/cedet/semantic/analyze/debug.el
index d0ab7c82..76a6cc2 100644
--- a/lisp/cedet/semantic/analyze/debug.el
+++ b/lisp/cedet/semantic/analyze/debug.el
@@ -405,7 +405,8 @@ or implementing a version specific to ")
 
     (princ "\n\nInclude Path Summary:")
     (when edeobj
-       (princ "\n\nThis file's project include search is handled by the EDE 
object:\n")
+       (princ (substitute-command-keys
+               "\n\nThis file's project include search is handled by the EDE 
object:\n"))
        (princ "  Buffer Target:  ")
        (princ (object-print edeobj))
        (princ "\n")
@@ -463,12 +464,12 @@ or implementing a version specific to ")
 
          (princ "\nYou can fix the include path for ")
          (princ (symbol-name (oref table major-mode)))
-         (princ " by using this function:
+         (princ (substitute-command-keys " by using this function:
 
-M-x semantic-customize-system-include-path RET
+\\[semantic-customize-system-include-path]
 
 which customizes the mode specific variable for the mode-local
-variable `semantic-dependency-system-include-path'.")
+variable `semantic-dependency-system-include-path'."))
          )
 
       (princ "\n No unknown includes.\n"))
diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el
index 6639f17..1c25c7b 100644
--- a/lisp/cedet/semantic/bovine/c.el
+++ b/lisp/cedet/semantic/bovine/c.el
@@ -2176,7 +2176,8 @@ actually in their parent which is not accessible.")
 
       (princ "\n\nInclude Path Summary:\n")
       (when (and (boundp 'ede-object) ede-object)
-       (princ "\n  This file's project include is handled by:\n")
+       (princ (substitute-command-keys
+               "\n  This file's project include is handled by:\n"))
        (let ((objs (if (listp ede-object)
                        ede-object
                      (list ede-object))))
@@ -2194,14 +2195,16 @@ actually in their parent which is not accessible.")
        )
 
       (when semantic-dependency-include-path
-       (princ "\n  This file's generic include path is:\n")
+       (princ (substitute-command-keys
+               "\n  This file's generic include path is:\n"))
        (dolist (dir semantic-dependency-include-path)
          (princ "    ")
          (princ dir)
          (princ "\n")))
 
       (when semantic-dependency-system-include-path
-       (princ "\n  This file's system include path is:\n")
+       (princ (substitute-command-keys
+               "\n  This file's system include path is:\n"))
        (dolist (dir semantic-dependency-system-include-path)
          (princ "    ")
          (princ dir)
diff --git a/lisp/cedet/semantic/decorate/include.el 
b/lisp/cedet/semantic/decorate/include.el
index 7bfca77..962dc49 100644
--- a/lisp/cedet/semantic/decorate/include.el
+++ b/lisp/cedet/semantic/decorate/include.el
@@ -503,7 +503,8 @@ Argument EVENT is the mouse clicked event."
       (princ "Include File: ")
       (princ (semantic-format-tag-name tag nil t))
       (princ "\n\n")
-      (princ "This header file has been marked \"Unknown\".
+      (princ (substitute-command-keys "\
+This header file has been marked \"Unknown\".
 This means that Semantic has not been able to locate this file on disk.
 
 When Semantic cannot find an include file, this means that the
@@ -521,9 +522,9 @@ M-x semantic-add-system-include RET /path/to/includes RET
 
 or, in your .emacs file do:
 
-  (semantic-add-system-include \"/path/to/include\" '")
+  (semantic-add-system-include \"/path/to/include\" \\='"))
       (princ (symbol-name mm))
-      (princ ")
+      (princ (substitute-command-keys ")
 
 to add the path to Semantic's search.
 
@@ -531,7 +532,7 @@ If this is an include file that belongs to your project, 
then you may
 need to update `semanticdb-project-roots' or better yet, use `ede'
 to manage your project.  See the ede manual for projects that will
 wrap existing project code for Semantic's benefit.
-")
+"))
 
       (when (or (eq mm 'c++-mode) (eq mm 'c-mode))
        (princ "
@@ -745,7 +746,8 @@ Argument EVENT describes the event that caused this 
function to be called."
       (when (and (boundp 'ede-object)
                 (boundp 'ede-object-project)
                 ede-object)
-       (princ "  This file's project include search is handled by the EDE 
object:\n")
+       (princ (substitute-command-keys
+               "  This file's project include search is handled by the EDE 
object:\n"))
        (princ "    Buffer Target:  ")
        (princ (object-print ede-object))
        (princ "\n")
@@ -769,7 +771,8 @@ Argument EVENT describes the event that caused this 
function to be called."
              (princ "\n"))
            )))
 
-      (princ "\n  This file's system include path is:\n")
+      (princ (substitute-command-keys
+             "\n  This file's system include path is:\n"))
       (dolist (dir semantic-dependency-system-include-path)
        (princ "    ")
        (princ dir)
diff --git a/lisp/cedet/semantic/ia.el b/lisp/cedet/semantic/ia.el
index 2216fa9..27e6db1 100644
--- a/lisp/cedet/semantic/ia.el
+++ b/lisp/cedet/semantic/ia.el
@@ -364,15 +364,17 @@ origin of the code at point."
       (let ((secondclass (car (reverse (oref ctxt prefixtypes)))))
        (cond
         ((and (semantic-tag-with-position-p secondclass)
-              (y-or-n-p (format "Could not find `%s'.  Jump to %s? "
-                                first (semantic-tag-name secondclass))))
+              (y-or-n-p (format-message
+                         "Could not find `%s'.  Jump to %s? "
+                         first (semantic-tag-name secondclass))))
          (semantic-ia--fast-jump-helper secondclass)
          )
         ;; If we missed out on the class of the second item, then
         ;; just visit SECOND.
         ((and (semantic-tag-p second)
-              (y-or-n-p (format "Could not find `%s'.  Jump to %s? "
-                                first (semantic-tag-name second))))
+              (y-or-n-p (format-message
+                         "Could not find `%s'.  Jump to %s? "
+                         first (semantic-tag-name second))))
          (semantic-ia--fast-jump-helper second)
          ))))
 
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index 2b9cc09..7e25119 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -220,15 +220,6 @@ Leaving \"Default\" unchecked is equivalent with 
specifying a default of
             (visible-bell display boolean)
             (no-redraw-on-reenter display boolean)
 
-            ;; doc.c
-            (text-quoting-style
-              help
-              (choice
-               (const :tag "Quote with curved single quotes \\=‘like this\\=’" 
curve)
-               (const :tag "Quote with straight apostrophes \\='like this\\='" 
straight)
-               (const :tag "Quote with grave accent and apostrophe \\=`like 
this\\='" grave)
-               (const :tag "Use curved quotes if displayable, grave accent and 
apostrophe otherwise" nil))
-              "25.1")
              ;; dosfns.c
             (dos-display-scancodes display boolean)
             (dos-hyper-key keyboard integer)
diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el
index bc221e1..7693c70 100644
--- a/lisp/cus-theme.el
+++ b/lisp/cus-theme.el
@@ -587,7 +587,7 @@ Theme files are named *-theme.el in `"))
                 :follow-link 'mouse-face
                 :action (lambda (_widget &rest _ignore)
                           (describe-variable 'custom-theme-load-path)))
-  (widget-insert "'.\n\n")
+  (widget-insert (substitute-command-keys "'.\n\n"))
 
   ;; If the user has made customizations, display a warning and
   ;; provide buttons to disable or convert them.
diff --git a/lisp/dired.el b/lisp/dired.el
index f47c066..206de37 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -3567,7 +3567,7 @@ Thus, use \\[backward-page] to find the beginning of a 
group of errors."
               (unless (bolp)
                 (insert "\n"))
               (insert (current-time-string)
-                      "\tBuffer `" (buffer-name obuf) "'\n")
+                      (format-message "\tBuffer ‘%s’\n" (buffer-name obuf)))
               (goto-char (point-max))
               (insert "\f\n")))))))
 
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 8b8b667..7182c0b 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2989,7 +2989,9 @@ for symbols generated by the byte compiler itself."
          (byte-compile-warn "‘%s’ is for interactive use only%s"
                             fn
                             (cond ((stringp interactive-only)
-                                   (format "; %s" interactive-only))
+                                   (format "; %s"
+                                           (substitute-command-keys
+                                            interactive-only)))
                                   ((and (symbolp 'interactive-only)
                                         (not (eq interactive-only t)))
                                    (format-message "; use ‘%s’ instead."
diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el
index 8a845f9..b2c8119 100644
--- a/lisp/emacs-lisp/checkdoc.el
+++ b/lisp/emacs-lisp/checkdoc.el
@@ -1954,7 +1954,7 @@ from the comment."
   "Return non-nil if the current point is in a code fragment.
 A code fragment is identified by an open parenthesis followed by a
 symbol which is a valid function or a word in all CAPS, or a parenthesis
-that is quoted with the ' character.  Only the region from START to LIMIT
+that is quoted with the \\=' character.  Only the region from START to LIMIT
 is allowed while searching for the bounding parenthesis."
   (save-match-data
     (save-restriction
diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el
index ff359e6..6189976 100644
--- a/lisp/emacs-lisp/macroexp.el
+++ b/lisp/emacs-lisp/macroexp.el
@@ -149,7 +149,7 @@ and also to avoid outputting the warning during normal 
execution."
     (format-message
      "‘%s’ is an obsolete %s%s%s" fun type
      (if asof (concat " (as of " asof ")") "")
-     (cond ((stringp instead) (concat "; " instead))
+     (cond ((stringp instead) (concat "; " (substitute-command-keys instead)))
            (instead (format-message "; use ‘%s’ instead." instead))
            (t ".")))))
 
diff --git a/lisp/emacs-lisp/warnings.el b/lisp/emacs-lisp/warnings.el
index d729a9a..b88af1d 100644
--- a/lisp/emacs-lisp/warnings.el
+++ b/lisp/emacs-lisp/warnings.el
@@ -314,7 +314,7 @@ See also `warning-series', `warning-prefix-function' and
 ;; Any keymap that is defined will do.
 ;;;###autoload
 (defun lwarn (type level message &rest args)
-  "Display a warning message made from (format MESSAGE ARGS...).
+  "Display a warning message made from (format-message MESSAGE ARGS...).
 \\<special-mode-map>
 Aside from generating the message with `format-message',
 this is equivalent to `display-warning'.
@@ -336,7 +336,7 @@ LEVEL should be either :debug, :warning, :error, or 
:emergency
 
 ;;;###autoload
 (defun warn (message &rest args)
-  "Display a warning message made from (format MESSAGE ARGS...).
+  "Display a warning message made from (format-message MESSAGE ARGS...).
 Aside from generating the message with `format-message',
 this is equivalent to `display-warning', using
 `emacs' as the type and `:warning' as the level."
diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el
index 2c9e579..9bd1627 100644
--- a/lisp/emulation/edt.el
+++ b/lisp/emulation/edt.el
@@ -1984,7 +1984,8 @@ created."
                  (if (edt-y-or-n-p "Do you want to run it now? ")
                      (load-file path)
                    (error "EDT Emulation not configured")))
-             (insert "Nope, I can't seem to find it.  :-(\n\n")
+             (insert (substitute-command-keys
+                     "Nope, I can't seem to find it.  :-(\n\n"))
              (sit-for 20)
              (error "EDT Emulation not configured"))))))
 
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
index 4fe948a..8b3f6b4 100644
--- a/lisp/emulation/viper-cmd.el
+++ b/lisp/emulation/viper-cmd.el
@@ -1751,8 +1751,8 @@ invokes the command before that, etc."
 
     (setq this-command 'viper-display-current-destructive-command)
 
-    (message " `.' runs  %s%s"
-            (concat "`" (viper-array-to-string keys) "'")
+    (message " `.' runs  `%s'%s"
+            (viper-array-to-string keys)
             (viper-abbreviate-string
              (if (featurep 'xemacs)
                  (replace-in-string ; xemacs
@@ -1763,7 +1763,8 @@ invokes the command before that, etc."
                text ; emacs
                )
              max-text-len
-             "  inserting  `" "'" "    ......."))
+             (format-message "  inserting  `") (format-message "'")
+             "    ......."))
     ))
 
 
@@ -4341,7 +4342,7 @@ and regexp replace."
          (query-replace-regexp
           str
           (viper-read-string-with-history
-           (format "Query replace regexp `%s' with: " str)
+           (format-message "Query replace regexp `%s' with: " str)
            nil  ; no initial
            'viper-replace1-history
            (car viper-replace1-history) ; default
@@ -4349,7 +4350,7 @@ and regexp replace."
        (query-replace
         str
         (viper-read-string-with-history
-         (format "Query replace `%s' with: " str)
+         (format-message "Query replace `%s' with: " str)
          nil  ; no initial
          'viper-replace1-history
          (car viper-replace1-history) ; default
@@ -4643,7 +4644,7 @@ One can use \\=`\\=` and \\='\\=' to temporarily jump 1 
step back."
                                     reg (buffer-name buf) line-no))
                     (princ (format "Here is some text around %c:\n\n %s"
                                     reg text)))
-                (princ (format viper-EmptyTextmarker reg))))
+                (princ (format-message viper-EmptyTextmarker reg))))
             ))
          (t (error viper-InvalidTextmarker reg)))))
 
diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el
index e6bcf8f..fb2c179 100644
--- a/lisp/emulation/viper-ex.el
+++ b/lisp/emulation/viper-ex.el
@@ -491,7 +491,7 @@ reversed."
             (forward-char 1)
             (cond ((looking-at "'") (setq ex-token nil))
                   ((looking-at "[a-z]") (setq ex-token (following-char)))
-                  (t (error "Marks are ' and a-z")))
+                  (t (error "%s" "Marks are ' and a-z")))
             (forward-char 1))
            ((looking-at "\n")
             (setq ex-token-type 'end-mark)
@@ -2190,7 +2190,7 @@ Please contact your system administrator. "
 (defun ex-compile ()
   "Reads args from the command line, then runs make with the args.
 If no args are given, then it runs the last compile command.
-Type 'mak ' (including the space) to run make with no args."
+Type `mak ' (including the space) to run make with no args."
   (let (args)
     (with-current-buffer (setq viper-ex-work-buf
                                (get-buffer-create viper-ex-work-buf-name))
diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el
index e856832..4b33b42 100644
--- a/lisp/emulation/viper-macs.el
+++ b/lisp/emulation/viper-macs.el
@@ -529,9 +529,9 @@ mistakes in macro names to be passed to this function is to 
use
     (cond ((and (cdr buf-mapping)
                (or (and (not (cdr mode-mapping)) (not (cdr global-mapping)))
                    (y-or-n-p
-                    (format "Unmap %S for `%s' only? "
-                            (viper-display-macro macro-name)
-                            (buffer-name)))))
+                    (format-message "Unmap %S for `%s' only? "
+                                    (viper-display-macro macro-name)
+                                    (buffer-name)))))
           (setq macro-pair buf-mapping)
           (message "%S is unmapped for %s in `%s'"
                    (viper-display-macro macro-name)
@@ -539,9 +539,9 @@ mistakes in macro names to be passed to this function is to 
use
          ((and (cdr mode-mapping)
                (or (not (cdr global-mapping))
                    (y-or-n-p
-                    (format "Unmap %S for the major mode `%S' only? "
-                            (viper-display-macro macro-name)
-                            major-mode))))
+                    (format-message "Unmap %S for the major mode `%S' only? "
+                                    (viper-display-macro macro-name)
+                                    major-mode))))
           (setq macro-pair mode-mapping)
           (message "%S is unmapped for %s in %S"
                    (viper-display-macro macro-name) state-name major-mode))
diff --git a/lisp/erc/erc-autoaway.el b/lisp/erc/erc-autoaway.el
index 981a213..c01cb3a 100644
--- a/lisp/erc/erc-autoaway.el
+++ b/lisp/erc/erc-autoaway.el
@@ -270,7 +270,7 @@ active server buffer available."
   ;; existing process.
   (when (or notest (erc-autoaway-some-open-server-buffer))
     (setq erc-autoaway-caused-away t)
-    (erc-cmd-GAWAY (format erc-autoaway-message idle-time))))
+    (erc-cmd-GAWAY (format-message erc-autoaway-message idle-time))))
 
 (defun erc-autoaway-reset-indicators (&rest stuff)
   "Reset indicators used by the erc-autoaway module."
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index ee81113..db5f6a6 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -1136,7 +1136,8 @@ Would expand to:
                         aliases))
   (let* ((hook-name (intern (format "erc-server-%s-functions" name)))
          (fn-name (intern (format "erc-server-%s" name)))
-         (hook-doc (format "%sHook called upon receiving a %%s server response.
+         (hook-doc (format-message "\
+%sHook called upon receiving a %%s server response.
 Each function is called with two arguments, the process associated
 with the response and the parsed response.  If the function returns
 non-nil, stop processing the hook.  Otherwise, continue.
@@ -1146,7 +1147,8 @@ See also `%s'."
                                (concat extra-var-doc "\n\n")
                              "")
                            fn-name))
-         (fn-doc (format "%sHandler for a %s server response.
+         (fn-doc (format-message "\
+%sHandler for a %s server response.
 PROC is the server process which returned the response.
 PARSED is the actual response as an `erc-response' struct.
 If you want to add responses don't modify this function, but rather
diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el
index 97c4668..84816f8 100644
--- a/lisp/erc/erc-fill.el
+++ b/lisp/erc/erc-fill.el
@@ -101,7 +101,7 @@ function is called."
 
 (defcustom erc-fill-static-center 27
   "Column around which all statically filled messages will be
-centered.  This column denotes the point where the ' ' character
+centered.  This column denotes the point where the ` ' character
 between <nickname> and the entered text will be put, thus aligning
 nick names right and text left."
   :group 'erc-fill
@@ -195,4 +195,3 @@ You can put this on `erc-insert-modify-hook' and/or 
`erc-send-modify-hook'."
 ;; Local Variables:
 ;; indent-tabs-mode: nil
 ;; End:
-
diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el
index ac1616d..1bd7fbc 100644
--- a/lisp/eshell/em-dirs.el
+++ b/lisp/eshell/em-dirs.el
@@ -243,8 +243,9 @@ Thus, this does not include the current directory.")
                   eshell-ask-to-save-last-dir
                   (or (eq eshell-ask-to-save-last-dir 'always)
                       (y-or-n-p
-                       (format "Save last dir ring for Eshell buffer `%s'? "
-                               (buffer-name buf)))))
+                       (format-message
+                        "Save last dir ring for Eshell buffer `%s'? "
+                        (buffer-name buf)))))
              (eshell-write-last-dir-ring))))))
 
 (defun eshell-lone-directory-p (file)
diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el
index 8abdd00..976882c 100644
--- a/lisp/eshell/em-glob.el
+++ b/lisp/eshell/em-glob.el
@@ -289,7 +289,7 @@ the form:
                   glob (car globs)
                   len (length glob)))))
     (if (and recurse-p (not glob))
-       (error "'**' cannot end a globbing pattern"))
+       (error "‘**’ cannot end a globbing pattern"))
     (let ((index 1))
       (setq incl glob)
       (while (and (eq incl glob)
diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el
index 9f070c3..499eda4 100644
--- a/lisp/eshell/em-hist.el
+++ b/lisp/eshell/em-hist.el
@@ -306,8 +306,9 @@ element, regardless of any text on the command line.  In 
that case,
                   eshell-save-history-on-exit
                   (or (eq eshell-save-history-on-exit t)
                       (y-or-n-p
-                       (format "Save input history for Eshell buffer `%s'? "
-                               (buffer-name buf)))))
+                       (format-message
+                        "Save input history for Eshell buffer `%s'? "
+                        (buffer-name buf)))))
              (eshell-write-history))))))
 
 (defun eshell/history (&rest args)
diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el
index 210e74d..8ae81df 100644
--- a/lisp/eshell/em-unix.el
+++ b/lisp/eshell/em-unix.el
@@ -206,23 +206,23 @@ Otherwise, Emacs will attempt to use rsh to invoke du on 
the remote machine."
               (not (file-symlink-p (car files))))
          (progn
            (if em-verbose
-               (eshell-printn (format "rm: removing directory `%s'"
-                                      (car files))))
+               (eshell-printn (format-message "rm: removing directory `%s'"
+                                              (car files))))
            (unless
                (or em-preview
                    (and em-interactive
                         (not (y-or-n-p
-                              (format "rm: remove directory `%s'? "
-                                      (car files))))))
+                              (format-message "rm: remove directory `%s'? "
+                                              (car files))))))
              (eshell-funcalln 'delete-directory (car files) t t)))
        (if em-verbose
-           (eshell-printn (format "rm: removing file `%s'"
-                                  (car files))))
+           (eshell-printn (format-message "rm: removing file `%s'"
+                                          (car files))))
        (unless (or em-preview
                    (and em-interactive
                         (not (y-or-n-p
-                              (format "rm: remove `%s'? "
-                                      (car files))))))
+                              (format-message "rm: remove `%s'? "
+                                              (car files))))))
          (eshell-funcalln 'delete-file (car files) t))))
     (setq files (cdr files))))
 
@@ -260,28 +260,32 @@ Remove (unlink) the FILE(s).")
        (cond
        ((bufferp entry)
         (if em-verbose
-            (eshell-printn (format "rm: removing buffer `%s'" entry)))
+            (eshell-printn (format-message "rm: removing buffer `%s'" entry)))
         (unless (or em-preview
                     (and em-interactive
-                         (not (y-or-n-p (format "rm: delete buffer `%s'? "
-                                                entry)))))
+                         (not (y-or-n-p (format-message
+                                         "rm: delete buffer `%s'? "
+                                         entry)))))
           (eshell-funcalln 'kill-buffer entry)))
        ((eshell-processp entry)
         (if em-verbose
-            (eshell-printn (format "rm: killing process `%s'" entry)))
+            (eshell-printn (format-message "rm: killing process `%s'" entry)))
         (unless (or em-preview
                     (and em-interactive
-                         (not (y-or-n-p (format "rm: kill process `%s'? "
-                                                entry)))))
+                         (not (y-or-n-p (format-message
+                                         "rm: kill process `%s'? "
+                                         entry)))))
           (eshell-funcalln 'kill-process entry)))
        ((symbolp entry)
         (if em-verbose
-            (eshell-printn (format "rm: uninterning symbol `%s'" entry)))
+            (eshell-printn (format-message
+                            "rm: uninterning symbol `%s'" entry)))
         (unless
             (or em-preview
                 (and em-interactive
-                     (not (y-or-n-p (format "rm: unintern symbol `%s'? "
-                                            entry)))))
+                     (not (y-or-n-p (format-message
+                                     "rm: unintern symbol `%s'? "
+                                     entry)))))
           (eshell-funcalln 'unintern entry)))
        ((stringp entry)
         ;; -f should silently ignore missing files (bug#15373).
@@ -294,8 +298,8 @@ Remove (unlink) the FILE(s).")
                   (if (or em-preview
                           (not em-interactive)
                           (y-or-n-p
-                           (format "rm: descend into directory `%s'? "
-                                   entry)))
+                           (format-message "rm: descend into directory `%s'? "
+                                           entry)))
                     (eshell-remove-entries (list entry) t))
                 (eshell-error (format "rm: %s: is a directory\n" entry)))
             (eshell-remove-entries (list entry) t))))))
@@ -369,8 +373,8 @@ Remove the DIRECTORY(ies), if they are empty.")
             (equal (nth 10 attr-target) (nth 10 attr))
             (nth 11 attr-target) (nth 11 attr)
             (equal (nth 11 attr-target) (nth 11 attr)))
-       (eshell-error (format "%s: `%s' and `%s' are the same file\n"
-                             command (car files) target)))
+       (eshell-error (format-message "%s: `%s' and `%s' are the same file\n"
+                                     command (car files) target)))
        (t
        (let ((source (car files))
              (target (if is-dir
diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el
index efd8582..535e169 100644
--- a/lisp/eshell/esh-cmd.el
+++ b/lisp/eshell/esh-cmd.el
@@ -1016,8 +1016,8 @@ be finished later after the completion of an asynchronous 
subprocess."
     ;; we can modify any `let' forms to evaluate only once.
     (if (macrop (car form))
        (let ((exp (eshell-copy-tree (macroexpand form))))
-         (eshell-manipulate (format "expanding macro `%s'"
-                                    (symbol-name (car form)))
+         (eshell-manipulate (format-message "expanding macro `%s'"
+                                            (symbol-name (car form)))
            (setcar form (car exp))
            (setcdr form (cdr exp)))))
     (let ((args (cdr form)))
@@ -1095,8 +1095,8 @@ be finished later after the completion of an asynchronous 
subprocess."
        (t
        (if (and args (not (memq (car form) '(run-hooks))))
            (eshell-manipulate
-               (format "evaluating arguments to `%s'"
-                       (symbol-name (car form)))
+               (format-message "evaluating arguments to `%s'"
+                               (symbol-name (car form)))
              (while args
                (setcar args (eshell-do-eval (car args) synchronous-p))
                (setq args (cdr args)))))
diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el
index 86559f0..867d3b9 100644
--- a/lisp/eshell/esh-proc.el
+++ b/lisp/eshell/esh-proc.el
@@ -409,7 +409,8 @@ If QUERY is non-nil, query the user with QUERY before 
calling FUNC."
               (or all
                   (not (nth 2 entry)))
               (or (not query)
-                  (y-or-n-p (format query (process-name (car entry))))))
+                  (y-or-n-p (format-message query
+                                            (process-name (car entry))))))
          (setq result (funcall func (car entry))))
       (unless (memq (process-status (car entry))
                    '(run stop open closed))
@@ -480,11 +481,11 @@ See the variable `eshell-kill-processes-on-exit'."
     (save-window-excursion
       (list-processes)
       (if (or (not (eq eshell-kill-processes-on-exit 'ask))
-             (y-or-n-p (format "Kill processes owned by `%s'? "
-                               (buffer-name))))
+             (y-or-n-p (format-message "Kill processes owned by `%s'? "
+                                       (buffer-name))))
          (eshell-round-robin-kill
           (if (eq eshell-kill-processes-on-exit 'every)
-              "Kill Eshell child process `%s'? ")))
+              (format-message "Kill Eshell child process `%s'? "))))
       (let ((buf (get-buffer "*Process List*")))
        (if (and buf (buffer-live-p buf))
            (kill-buffer buf)))
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el
index 7b35de0..fc75586 100644
--- a/lisp/gnus/gnus-agent.el
+++ b/lisp/gnus/gnus-agent.el
@@ -868,8 +868,9 @@ be a select method."
                      (not (eq gnus-agent-synchronize-flags 'ask)))
                 (and (eq gnus-agent-synchronize-flags 'ask)
                      (gnus-y-or-n-p
-                      (format "Synchronize flags on server `%s'? "
-                              (cadr method))))))
+                      (gnus-format-message
+                       "Synchronize flags on server `%s'? "
+                       (cadr method))))))
     (gnus-agent-synchronize-flags-server method)))
 
 ;;;###autoload
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 1a439ec..b4a2f6a 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -2428,7 +2428,7 @@ long lines if and only if arg is positive."
              (unless (setq from (gnus-article-goto-header "from"))
                (insert "From:")
                (setq from (point))
-               (insert " [no `from' set]\n"))
+               (insert " [no 'from' set]\n"))
              (while faces
                (when (setq png (gnus-convert-face-to-png (pop faces)))
                  (setq image
@@ -2770,7 +2770,7 @@ summary buffer."
       (cond ((file-directory-p file)
             (when (or (not (eq how 'file))
                       (gnus-y-or-n-p
-                       (format
+                       (gnus-format-message
                         "Delete temporary HTML file(s) in directory `%s'? "
                         (file-name-as-directory file))))
               (gnus-delete-directory file)))
diff --git a/lisp/gnus/gnus-eform.el b/lisp/gnus/gnus-eform.el
index 0b41b5e..c870385 100644
--- a/lisp/gnus/gnus-eform.el
+++ b/lisp/gnus/gnus-eform.el
@@ -96,7 +96,8 @@ The optional LAYOUT overrides the `edit-form' window layout."
     (while (not (eobp))
       (insert ";;; ")
       (forward-line 1))
-    (insert ";; Type `C-c C-c' after you've finished editing.\n")
+    (insert (substitute-command-keys
+            ";; Type `C-c C-c' after you've finished editing.\n"))
     (insert "\n")
     (let ((p (point)))
       (gnus-pp form)
diff --git a/lisp/gnus/gnus-fun.el b/lisp/gnus/gnus-fun.el
index ca14dd0..2a535cb 100644
--- a/lisp/gnus/gnus-fun.el
+++ b/lisp/gnus/gnus-fun.el
@@ -265,7 +265,7 @@ colors of the displayed X-Faces."
          (article-narrow-to-head)
          (gnus-article-goto-header "from")
          (when (bobp)
-           (insert "From: [no `from' set]\n")
+           (insert "From: [no 'from' set]\n")
            (forward-char -17))
          (gnus-add-image
           'xface
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index c6cc38f..ad49824 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -2950,7 +2950,7 @@ and NEW-NAME will be prompted for."
            (gnus-info-params info))
           (t info))
      ;; The proper documentation.
-     (format
+     (gnus-format-message
       "Editing the %s for `%s'."
       (cond
        ((eq part 'method) "select method")
@@ -3278,7 +3278,8 @@ mail messages or news articles in files that have numeric 
names."
       (error "%s is not an nnimap group" group))
     (unless (setq acl (nnimap-acl-get mailbox (cadr method)))
       (error "Server does not support ACL's"))
-    (gnus-edit-form acl (format "Editing the access control list for `%s'.
+    (gnus-edit-form acl (gnus-format-message "\
+Editing the access control list for `%s'.
 
    An access control list is a list of (identifier . rights) elements.
 
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index e4c144b..447bd5d 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -9489,6 +9489,7 @@ Optional argument BACKWARD means do search for backward.
     ;; Return whether we found the regexp.
     (when (eq found 'found)
       (goto-char point)
+      (sit-for 0) ;; Ensure that the point is visible in the summary window.
       (gnus-summary-show-thread)
       (gnus-summary-goto-subject gnus-current-article)
       (gnus-summary-position-point)
diff --git a/lisp/gnus/gnus-topic.el b/lisp/gnus/gnus-topic.el
index 9474ca0..7c6e109 100644
--- a/lisp/gnus/gnus-topic.el
+++ b/lisp/gnus/gnus-topic.el
@@ -1616,8 +1616,8 @@ If performed on a topic, edit the topic parameters 
instead."
       (let ((topic (gnus-group-topic-name)))
        (gnus-edit-form
         (gnus-topic-parameters topic)
-        (format "Editing the topic parameters for `%s'."
-                (or group topic))
+        (gnus-format-message "Editing the topic parameters for `%s'."
+                             (or group topic))
         `(lambda (form)
            (gnus-topic-set-parameters ,topic form)))))))
 
diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
index cb74228..ad135d4 100644
--- a/lisp/gnus/mail-source.el
+++ b/lisp/gnus/mail-source.el
@@ -612,7 +612,7 @@ If CONFIRM is non-nil, ask for confirmation before removing 
a file."
        (when (and (> (- currday fileday) diff)
                   (if confirm
                       (y-or-n-p
-                       (format "\
+                       (gnus-format-message "\
 Delete old (> %s day(s)) incoming mail file `%s'? " diff bfile))
                     (gnus-message 8 "\
 Deleting old (> %s day(s)) incoming mail file `%s'." diff bfile)
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index d74ce43..0f6f63e 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -2235,7 +2235,7 @@ contains a valid encoded word.  Decode again? "
          (unless cs-coding
            (setq cs-coding
                  (mm-read-coding-system
-                  (format "\
+                  (gnus-format-message "\
 Decoded Subject \"%s\"
 contains an encoded word.  The charset `%s' is unknown or invalid.
 Hit RET to replace non-decodable characters with \"%s\" or enter replacement
@@ -4510,7 +4510,7 @@ This function could be useful in `message-setup-hook'."
          (dolist (bog (message-bogus-recipient-p addr))
            (and bog
                 (not (y-or-n-p
-                      (format
+                      (gnus-format-message
                        "Address `%s'%s might be bogus.  Continue? "
                        bog
                        ;; If the encoded version of the email address
@@ -8484,7 +8484,7 @@ Header and body are separated by `mail-header-separator'."
        (when force
          (sit-for message-send-form-letter-delay))
        (if (or force
-                 (y-or-n-p (format "Send message to `%s'? " to)))
+                 (y-or-n-p (gnus-format-message "Send message to `%s'? " to)))
            (progn
              (setq sent (1+ sent))
              (message-send-and-exit))
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index b0ec16e..3d5a15a 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -855,7 +855,7 @@ external if displayed external."
                                      (concat
                                       "using external program \""
                                       (format method filename) "\"")
-                                   (format
+                                   (gnus-format-message
                                     "by calling `%s' on the contents)" method))
                                  "? "))))))
            (if external
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el
index fa48ee9..8304f6f 100644
--- a/lisp/gnus/mm-uu.el
+++ b/lisp/gnus/mm-uu.el
@@ -523,7 +523,8 @@ apply the face `mm-uu-extract'."
        (when (and mml2015-use (null (mml2015-clear-verify-function)))
          (mm-set-handle-multipart-parameter
           mm-security-handle 'gnus-details
-          (format "Clear verification not supported by `%s'.\n" mml2015-use)))
+          (gnus-format-message
+           "Clear verification not supported by `%s'.\n" mml2015-use)))
        (mml2015-extract-cleartext-signature))
       (list (mm-make-handle buf mm-uu-text-plain-type)))))
 
diff --git a/lisp/gnus/mml-smime.el b/lisp/gnus/mml-smime.el
index 3f0809e..0bcc9c5 100644
--- a/lisp/gnus/mml-smime.el
+++ b/lisp/gnus/mml-smime.el
@@ -202,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))
 
@@ -221,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))
 
diff --git a/lisp/gnus/rfc2231.el b/lisp/gnus/rfc2231.el
index ef7187c..2bc2333 100644
--- a/lisp/gnus/rfc2231.el
+++ b/lisp/gnus/rfc2231.el
@@ -209,10 +209,10 @@ must never cause a Lisp error."
 (defun rfc2231-decode-encoded-string (string)
   "Decode an RFC2231-encoded string.
 These look like:
- \"us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A\",
- \"us-ascii''This%20is%20%2A%2A%2Afun%2A%2A%2A\",
- \"'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A\",
- \"''This%20is%20%2A%2A%2Afun%2A%2A%2A\", or
+ \"us-ascii\\='en-us\\='This%20is%20%2A%2A%2Afun%2A%2A%2A\",
+ \"us-ascii\\='\\='This%20is%20%2A%2A%2Afun%2A%2A%2A\",
+ \"\\='en-us\\='This%20is%20%2A%2A%2Afun%2A%2A%2A\",
+ \"\\='\\='This%20is%20%2A%2A%2Afun%2A%2A%2A\", or
  \"This is ***fun***\"."
   (string-match "\\`\\(?:\\([^']+\\)?'\\([^']+\\)?'\\)?\\(.+\\)" string)
   (let ((coding-system (mm-charset-to-coding-system
diff --git a/lisp/gnus/spam-report.el b/lisp/gnus/spam-report.el
index 96d72de..de68079 100644
--- a/lisp/gnus/spam-report.el
+++ b/lisp/gnus/spam-report.el
@@ -307,7 +307,7 @@ symbol `ask', query before flushing the queue file."
     (if (or (eq keep nil)
            (and (eq keep 'ask)
                 (y-or-n-p
-                 (format
+                 (gnus-format-message
                   "Flush requests from `%s'? " (current-buffer)))))
        (progn
          (gnus-message 7 "Flushing request file `%s'"
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index 5f0dc87..a1d121c 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -746,7 +746,7 @@ it is displayed along with the global value."
                      (princ "Its ")))
                (if valvoid
                    (princ " is void as a variable.")
-                 (princ "'s "))))
+                 (princ (substitute-command-keys "’s ")))))
            (unless valvoid
              (with-current-buffer standard-output
                (setq val-start-pos (point))
@@ -859,11 +859,14 @@ it is displayed along with the global value."
               ((not permanent-local))
               ((bufferp locus)
                (setq extra-line t)
-               (princ "  This variable's buffer-local value is permanent.\n"))
+               (princ
+                (substitute-command-keys
+                 "  This variable's buffer-local value is permanent.\n")))
               (t
                (setq extra-line t)
-                (princ "  This variable's value is permanent \
-if it is given a local binding.\n")))
+                (princ (substitute-command-keys
+                       "  This variable's value is permanent \
+if it is given a local binding.\n"))))
 
              ;; Mention if it's an alias.
               (unless (eq alias variable)
@@ -896,7 +899,8 @@ if it is given a local binding.\n")))
                                       (dir-locals-find-file
                                        (buffer-file-name buffer))))
                           (dir-file t))
-                     (princ "  This variable's value is directory-local")
+                     (princ (substitute-command-keys
+                             "  This variable's value is directory-local"))
                      (if (null file)
                          (princ ".\n")
                        (princ ", set ")
@@ -918,7 +922,8 @@ if it is given a local binding.\n")))
                           file 'type 'help-dir-local-var-def
                           'help-args (list variable file)))
                        (princ (substitute-command-keys "’.\n"))))
-                 (princ "  This variable's value is file-local.\n")))
+                 (princ (substitute-command-keys
+                         "  This variable's value is file-local.\n"))))
 
              (when (memq variable ignored-local-variables)
                (setq extra-line t)
diff --git a/lisp/hexl.el b/lisp/hexl.el
index 3e0ea41..4aa76d2 100644
--- a/lisp/hexl.el
+++ b/lisp/hexl.el
@@ -935,7 +935,7 @@ and their encoded form is inserted byte by byte."
                     (mapconcat (function (lambda (c) (format "%x" c)))
                                internal " "))
               (if (yes-or-no-p
-                   (format
+                   (format-message
                     "Insert char 0x%x's internal representation \"%s\"? "
                     ch internal-hex))
                   (setq encoded internal)
diff --git a/lisp/imenu.el b/lisp/imenu.el
index 158718b..717ac63 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -348,6 +348,12 @@ Don't move point."
 ;;; Lisp
 ;;;
 
+(define-error 'imenu-unavailable "imenu unavailable")
+
+(defun imenu-unavailable-error (format &rest args)
+  (signal 'imenu-unavailable
+          (list (apply #'format-message format args))))
+
 (defun imenu-example--lisp-extract-index-name ()
   ;; Example of a candidate for `imenu-extract-index-name-function'.
   ;; This will generate a flat index of definitions in a lisp file.
@@ -590,7 +596,8 @@ See `imenu--index-alist' for the format of the index alist."
                  (funcall imenu-create-index-function))))
        (imenu--truncate-items imenu--index-alist)))
   (or imenu--index-alist noerror
-      (user-error "No items suitable for an index found in this buffer"))
+      (imenu-unavailable-error
+       "No items suitable for an index found in this buffer"))
   (or imenu--index-alist
       (setq imenu--index-alist (list nil)))
   ;; Add a rescan option to the index.
@@ -704,7 +711,7 @@ The alternate method, which is the one most often used, is 
to call
        ((and imenu-generic-expression)
         (imenu--generic-function imenu-generic-expression))
        (t
-        (user-error "This buffer cannot use 
`imenu-default-create-index-function'"))))
+         (imenu-unavailable-error "This buffer cannot use 
`imenu-default-create-index-function'"))))
 
 ;;;
 ;;; Generic index gathering function.
@@ -956,8 +963,8 @@ See the command `imenu' for more information."
            `(menu-item ,name ,imenu--menubar-keymap))
          (use-local-map newmap)
          (add-hook 'menu-bar-update-hook 'imenu-update-menubar)))
-    (user-error "The mode `%s' does not support Imenu"
-                (format-mode-line mode-name))))
+    (imenu-unavailable-error "The mode `%s' does not support Imenu"
+                             (format-mode-line mode-name))))
 
 ;;;###autoload
 (defun imenu-add-menubar-index ()
diff --git a/lisp/info.el b/lisp/info.el
index 21dbca9..2c92df4 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -3763,7 +3763,7 @@ Build a menu of the possible matches."
     ;; I think nxml is the only exception - maybe it should be just be renamed.
     (let ((str (ignore-errors (lm-commentary (find-library-name nodename)))))
       (if (null str)
-         (insert "Can't find package description.\n\n")
+         (insert "Can’t find package description.\n\n")
        (insert
         (with-temp-buffer
           (insert str)
diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el
index 429c14b..08c18e1 100644
--- a/lisp/international/ccl.el
+++ b/lisp/international/ccl.el
@@ -967,7 +967,8 @@ is a list of CCL-BLOCKs."
   (let ((len (length ccl-code))
        (buffer-mag (aref ccl-code 0)))
     (cond ((= buffer-mag 0)
-          (insert "Don't output anything.\n"))
+          (insert (substitute-command-keys
+                    "Don’t output anything.\n")))
          ((= buffer-mag 1)
           (insert "Out-buffer must be as large as in-buffer.\n"))
          (t
@@ -1127,7 +1128,7 @@ is a list of CCL-BLOCKs."
 
 (defun ccl-dump-call (ignore cc)
   (let ((subroutine (car (ccl-get-next-code))))
-    (insert (format "call subroutine `%s'\n" subroutine))))
+    (insert (format-message "call subroutine `%s'\n" subroutine))))
 
 (defun ccl-dump-write-const-string (rrr cc)
   (if (= rrr 0)
diff --git a/lisp/international/ja-dic-utl.el b/lisp/international/ja-dic-utl.el
index 8400c47..7005ba8 100644
--- a/lisp/international/ja-dic-utl.el
+++ b/lisp/international/ja-dic-utl.el
@@ -109,13 +109,14 @@ without okurigana are placed at the head of the returned 
list."
          (load-library "ja-dic/ja-dic")
        (error (ding)
               (with-output-to-temp-buffer "*Help*"
-                (princ "The library `ja-dic' can't be loaded.
+                (princ (substitute-command-keys "\
+The library `ja-dic' can't be loaded.
 
 The most common case is that you have not yet installed the library
 included in LEIM (Libraries of Emacs Input Method) which is
 distributed separately from Emacs.
 
-LEIM is available from the same ftp directory as Emacs."))
+LEIM is available from the same ftp directory as Emacs.")))
               (signal (car err) (cdr err)))))
 
   (let ((vec (make-vector len 0))
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 4ee3b28..5934919 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -744,7 +744,8 @@ e.g., for sending an email message.\n ")
            (when unsafe
              (insert (if rejected "The other coding systems"
                        "However, each of them")
-                     " encountered characters it couldn't encode:\n")
+                     (substitute-command-keys
+                      " encountered characters it couldn't encode:\n"))
              (dolist (coding unsafe)
                (insert (format "  %s cannot encode these:" (car coding)))
                (let ((i 0)
@@ -1285,9 +1286,9 @@ Emacs loads this file at startup time.")
 ;;    INPUT-METHOD LANGUAGE-NAME ACTIVATE-FUNC
 ;;    TITLE DESCRIPTION
 ;;    ARG ...)
-;; See the function `register-input-method' for the meanings of the arguments.
+;; See the function ‘register-input-method’ for the meanings of the arguments.
 ;;
-;; If this directory is included in `load-path', Emacs automatically
+;; If this directory is included in ‘load-path’, Emacs automatically
 ;; loads this file at startup time.
 
 "
diff --git a/lisp/international/quail.el b/lisp/international/quail.el
index 8c9d145..01676ac 100644
--- a/lisp/international/quail.el
+++ b/lisp/international/quail.el
@@ -252,15 +252,16 @@ This activates input method defined by PACKAGE-NAME by 
running
                (with-output-to-temp-buffer "*Help*"
                  (princ "Quail package \"")
                  (princ package-name)
-                 (princ "\" can't be activated\n  because library \"")
+                 (princ (substitute-command-keys
+                         "\" can't be activated\n  because library \""))
                  (princ (car libraries))
-                 (princ "\" is not in `load-path'.
+                 (princ (substitute-command-keys "\" is not in `load-path'.
 
 The most common case is that you have not yet installed appropriate
 libraries in LEIM (Libraries of Emacs Input Method) which is
 distributed separately from Emacs.
 
-LEIM is available from the same ftp directory as Emacs."))
+LEIM is available from the same ftp directory as Emacs.")))
                (error "Can't use the Quail package `%s'" package-name))
            (setq libraries (cdr libraries))))))
   (quail-select-package package-name)
@@ -625,7 +626,7 @@ While this input method is active, the variable
   "Standard keyboard layout of printable characters Quail assumes.
 See the documentation of `quail-keyboard-layout' for this format.
 This layout is almost the same as that of VT100,
- but the location of key \\ (backslash) is just right of key ' (single-quote),
+ but the location of key \\ (backslash) is just right of key \\=' 
(single-quote),
  not right of RETURN key.")
 
 (defconst quail-keyboard-layout-len 180)
@@ -2533,35 +2534,37 @@ package to describe."
       (let ((done-list nil))
        ;; Show keyboard layout if the current package requests it..
        (when (quail-show-layout)
-         (insert "
+         (insert (substitute-command-keys "
 KEYBOARD LAYOUT
 ---------------
 This input method works by translating individual input characters.
-Assuming that your actual keyboard has the `")
+Assuming that your actual keyboard has the `"))
          (help-insert-xref-button
           quail-keyboard-layout-type
           'quail-keyboard-layout-button
           quail-keyboard-layout-type)
-         (insert "' layout,
+         (insert (substitute-command-keys "' layout,
 translation results in the following \"virtual\" keyboard layout
 \(the labels on the keys indicate what character will be produced
 by each key, with and without holding Shift):
-")
+"))
          (setq done-list
                (quail-insert-kbd-layout quail-keyboard-layout))
-         (insert "If your keyboard has a different layout, rearranged from
-`")
+         (insert (substitute-command-keys "\
+If your keyboard has a different layout, rearranged from
+`"))
          (help-insert-xref-button
           "standard"
           'quail-keyboard-layout-button "standard")
-         (insert "', the \"virtual\" keyboard you get with this input method
+         (insert (substitute-command-keys "\
+', the \"virtual\" keyboard you get with this input method
 will be rearranged in the same way.
 
 You can set the variable `quail-keyboard-layout-type' to specify
 the physical layout of your keyboard; the tables shown in
 documentation of input methods including this one are based on the
 physical keyboard layout as specified with that variable.
-")
+"))
          (help-insert-xref-button
           "[customize keyboard layout]"
           'quail-keyboard-customize-button 'quail-keyboard-layout-type)
diff --git a/lisp/international/titdic-cnv.el b/lisp/international/titdic-cnv.el
index 1186c71..6a15bc4 100644
--- a/lisp/international/titdic-cnv.el
+++ b/lisp/international/titdic-cnv.el
@@ -273,7 +273,8 @@ SPC, 6, 3, 4, or 7 specifying a tone (SPC:$(0?v(N(B, 
6:$(0Dm(N(B, 3:$(0&9Vy
     (princ ";; Quail package `")
     (princ package)
     (princ "\n")
-    (princ ";;   Generated by the command `titdic-convert'\n")
+    (princ (substitute-command-keys
+           ";;   Generated by the command `titdic-convert'\n"))
     (princ ";;\tOriginal TIT dictionary file: ")
     (princ (file-name-nondirectory filename))
     (princ "\n\n")
@@ -1150,8 +1151,9 @@ the generated Quail package is saved."
        (setq coding-system-for-write
              (coding-system-change-eol-conversion coding 'unix))
        (with-temp-file (expand-file-name quailfile dirname)
-         (insert (format ";; Quail package `%s'\n" name))
-         (insert ";;   Generated by the command `miscdic-convert'\n")
+         (insert (format-message ";; Quail package `%s'\n" name))
+         (insert (format-message
+                  ";;   Generated by the command `miscdic-convert'\n"))
          (insert ";;   Source dictionary file: " dicfile "\n")
          (insert ";;   Copyright notice of the source file\n")
          (insert ";;------------------------------------------------------\n")
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 8d4bf24..4fc9b38 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -710,6 +710,7 @@ Type \\[isearch-toggle-invisible] to toggle search in 
invisible text.
 Type \\[isearch-toggle-regexp] to toggle regular-expression mode.
 Type \\[isearch-toggle-word] to toggle word mode.
 Type \\[isearch-toggle-symbol] to toggle symbol mode.
+Type \\[isearch-toggle-character-fold] to toggle character folding.
 
 Type \\[isearch-toggle-lax-whitespace] to toggle whitespace matching.
 In incremental searches, a space or spaces normally matches any whitespace
diff --git a/lisp/json.el b/lisp/json.el
index eaf8596..5392a13 100644
--- a/lisp/json.el
+++ b/lisp/json.el
@@ -286,7 +286,7 @@ representation will be parsed correctly."
 (defun json-read-string ()
   "Read the JSON string at point."
   (unless (char-equal (json-peek) ?\")
-    (signal 'json-string-format (list "doesn't start with '\"'!")))
+    (signal 'json-string-format (list "doesn’t start with ‘\"’!")))
   ;; Skip over the '"'
   (json-advance)
   (let ((characters '())
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el
index c571ca9..14c634f 100644
--- a/lisp/ldefs-boot.el
+++ b/lisp/ldefs-boot.el
@@ -65,8 +65,8 @@ should return a grid vector array that is the new solution.
 
 ;;;***
 
-;;;### (autoloads nil "ada-mode" "progmodes/ada-mode.el" (21814 9129
-;;;;;;  380496 997000))
+;;;### (autoloads nil "ada-mode" "progmodes/ada-mode.el" (21980 16567
+;;;;;;  981544 893000))
 ;;; Generated autoloads from progmodes/ada-mode.el
 
 (autoload 'ada-add-extensions "ada-mode" "\
@@ -96,8 +96,8 @@ Insert a descriptive header at the top of the file.
 
 ;;;***
 
-;;;### (autoloads nil "ada-xref" "progmodes/ada-xref.el" (21855 577
-;;;;;;  357945 168000))
+;;;### (autoloads nil "ada-xref" "progmodes/ada-xref.el" (21980 16567
+;;;;;;  981544 893000))
 ;;; Generated autoloads from progmodes/ada-xref.el
 
 (autoload 'ada-find-file "ada-xref" "\
@@ -108,8 +108,8 @@ Completion is available.
 
 ;;;***
 
-;;;### (autoloads nil "add-log" "vc/add-log.el" (21942 1330 829986
-;;;;;;  820000))
+;;;### (autoloads nil "add-log" "vc/add-log.el" (21985 34484 266705
+;;;;;;  925000))
 ;;; 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.
 
 ;;;***
 
-;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (21895 57521
-;;;;;;  590301 332000))
+;;;### (autoloads nil "advice" "emacs-lisp/advice.el" (21976 19509
+;;;;;;  764430 241000))
 ;;; Generated autoloads from emacs-lisp/advice.el
 
 (defvar ad-redefinition-action 'warn "\
@@ -374,7 +374,7 @@ usage: (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] 
FLAG...)
 
 ;;;***
 
-;;;### (autoloads nil "align" "align.el" (21948 40114 174686 453000))
+;;;### (autoloads nil "align" "align.el" (21980 16567 345544 893000))
 ;;; Generated autoloads from align.el
 
 (autoload 'align "align" "\
@@ -477,7 +477,7 @@ A replacement function for `newline-and-indent', aligning 
as it goes.
 
 ;;;***
 
-;;;### (autoloads nil "allout" "allout.el" (21907 48688 645360 195000))
+;;;### (autoloads nil "allout" "allout.el" (21981 37426 507399 97000))
 ;;; Generated autoloads from allout.el
 (push (purecopy '(allout 2 3)) package--builtin-versions)
 
@@ -670,7 +670,7 @@ M-x outlineify-sticky       Activate outline mode for 
current buffer,
                             buffer with name derived from derived from that
                             of current buffer -- \"*BUFFERNAME exposed*\".
 \\[allout-flatten-exposed-to-buffer] `allout-flatten-exposed-to-buffer'
-                            Like above 'copy-exposed', but convert topic
+                            Like above `copy-exposed', but convert topic
                             prefixes to section.subsection... numeric
                             format.
 \\[customize-variable] allout-auto-activation
@@ -694,7 +694,7 @@ symmetric decryption keys, preventing entry of the correct 
key on
 subsequent decryption attempts until the cache times-out.  That
 can take several minutes.  (Decryption of other entries is not
 affected.)  Upgrade your EasyPG version, if you can, and you can
-deliberately clear your gpg-agent's cache by sending it a '-HUP'
+deliberately clear your gpg-agent's cache by sending it a `-HUP'
 signal.
 
 See `allout-toggle-current-subtree-encryption' function docstring
@@ -837,8 +837,8 @@ for details on preparing Emacs for automatic allout 
activation.
 
 ;;;***
 
-;;;### (autoloads nil "allout-widgets" "allout-widgets.el" (21855
-;;;;;;  576 417950 874000))
+;;;### (autoloads nil "allout-widgets" "allout-widgets.el" (21980
+;;;;;;  16567 353544 893000))
 ;;; 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').
 
 ;;;***
 
-;;;### (autoloads nil "ange-ftp" "net/ange-ftp.el" (21948 40114 314686
-;;;;;;  453000))
+;;;### (autoloads nil "ange-ftp" "net/ange-ftp.el" (21980 16567 805544
+;;;;;;  893000))
 ;;; Generated autoloads from net/ange-ftp.el
 
 (defalias 'ange-ftp-re-read-dir 'ange-ftp-reread-dir)
@@ -951,8 +951,8 @@ the buffer *Birthday-Present-for-Name*.
 
 ;;;***
 
-;;;### (autoloads nil "ansi-color" "ansi-color.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "ansi-color" "ansi-color.el" (21952 37178 110214
+;;;;;;  961000))
 ;;; 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'.
 
 ;;;***
 
-;;;### (autoloads nil "antlr-mode" "progmodes/antlr-mode.el" (21670
-;;;;;;  32331 385639 720000))
+;;;### (autoloads nil "antlr-mode" "progmodes/antlr-mode.el" (21980
+;;;;;;  16567 993544 893000))
 ;;; 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'.
 
 ;;;***
 
-;;;### (autoloads nil "appt" "calendar/appt.el" (21880 42526 275119
-;;;;;;  615000))
+;;;### (autoloads nil "appt" "calendar/appt.el" (21976 19509 728430
+;;;;;;  241000))
 ;;; Generated autoloads from calendar/appt.el
 
 (autoload 'appt-add "appt" "\
@@ -1037,7 +1037,8 @@ ARG is positive, otherwise off.
 
 ;;;***
 
-;;;### (autoloads nil "apropos" "apropos.el" (21905 6960 85493 11000))
+;;;### (autoloads nil "apropos" "apropos.el" (21985 34484 142705
+;;;;;;  925000))
 ;;; Generated autoloads from apropos.el
 
 (autoload 'apropos-read-pattern "apropos" "\
@@ -1479,8 +1480,8 @@ Special commands:
 
 ;;;***
 
-;;;### (autoloads nil "auth-source" "gnus/auth-source.el" (21670
-;;;;;;  32330 885624 725000))
+;;;### (autoloads nil "auth-source" "gnus/auth-source.el" (21981
+;;;;;;  37426 543399 97000))
 ;;; Generated autoloads from gnus/auth-source.el
 
 (defvar auth-source-cache-expiry 7200 "\
@@ -1564,8 +1565,8 @@ Major mode for editing Autoconf configure.ac files.
 
 ;;;***
 
-;;;### (autoloads nil "autoinsert" "autoinsert.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "autoinsert" "autoinsert.el" (21980 16567 365544
+;;;;;;  893000))
 ;;; Generated autoloads from autoinsert.el
 
 (autoload 'auto-insert "autoinsert" "\
@@ -1655,8 +1656,8 @@ should be non-nil).
 
 ;;;***
 
-;;;### (autoloads nil "autorevert" "autorevert.el" (21928 54832 51662
-;;;;;;  924000))
+;;;### (autoloads nil "autorevert" "autorevert.el" (21980 16567 365544
+;;;;;;  893000))
 ;;; Generated autoloads from autorevert.el
 
 (autoload 'auto-revert-mode "autorevert" "\
@@ -1744,7 +1745,7 @@ specifies in the mode line.
 
 ;;;***
 
-;;;### (autoloads nil "avoid" "avoid.el" (21670 32330 885624 725000))
+;;;### (autoloads nil "avoid" "avoid.el" (21955 13362 292569 401000))
 ;;; Generated autoloads from avoid.el
 
 (defvar mouse-avoidance-mode nil "\
@@ -1874,8 +1875,8 @@ For non-interactive use see also `benchmark-run' and
 
 ;;;***
 
-;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (21948 40114
-;;;;;;  506686 453000))
+;;;### (autoloads nil "bibtex" "textmodes/bibtex.el" (21988 10682
+;;;;;;  61624 461000))
 ;;; Generated autoloads from textmodes/bibtex.el
 
 (autoload 'bibtex-initialize "bibtex" "\
@@ -2122,8 +2123,8 @@ a reflection.
 
 ;;;***
 
-;;;### (autoloads nil "bookmark" "bookmark.el" (21798 49947 232670
-;;;;;;  676000))
+;;;### (autoloads nil "bookmark" "bookmark.el" (21980 16567 369544
+;;;;;;  893000))
 ;;; Generated autoloads from bookmark.el
  (define-key ctl-x-r-map "b" 'bookmark-jump)
  (define-key ctl-x-r-map "m" 'bookmark-set)
@@ -2657,7 +2658,7 @@ from `browse-url-elinks-wrapper'.
 
 ;;;***
 
-;;;### (autoloads nil "bs" "bs.el" (21670 32330 885624 725000))
+;;;### (autoloads nil "bs" "bs.el" (21980 16567 373544 893000))
 ;;; Generated autoloads from bs.el
 (push (purecopy '(bs 1 17)) package--builtin-versions)
 
@@ -2698,8 +2699,8 @@ name of buffer configuration.
 
 ;;;***
 
-;;;### (autoloads nil "bubbles" "play/bubbles.el" (21670 32331 385639
-;;;;;;  720000))
+;;;### (autoloads nil "bubbles" "play/bubbles.el" (21980 16567 957544
+;;;;;;  893000))
 ;;; Generated autoloads from play/bubbles.el
 
 (autoload 'bubbles "bubbles" "\
@@ -2721,7 +2722,7 @@ columns on its right towards the left.
 ;;;***
 
 ;;;### (autoloads nil "bug-reference" "progmodes/bug-reference.el"
-;;;;;;  (21670 32331 385639 720000))
+;;;;;;  (21980 16567 993544 893000))
 ;;; 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)))))
@@ -2741,8 +2742,8 @@ Like `bug-reference-mode', but only buttonize in comments 
and strings.
 
 ;;;***
 
-;;;### (autoloads nil "bytecomp" "emacs-lisp/bytecomp.el" (21888
-;;;;;;  49772 464181 796000))
+;;;### (autoloads nil "bytecomp" "emacs-lisp/bytecomp.el" (21988
+;;;;;;  10681 977624 461000))
 ;;; 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)
@@ -2897,7 +2898,7 @@ from the cursor position.
 
 ;;;***
 
-;;;### (autoloads nil "calc" "calc/calc.el" (21855 576 517945 858000))
+;;;### (autoloads nil "calc" "calc/calc.el" (21985 34484 202705 925000))
 ;;; Generated autoloads from calc/calc.el
  (define-key ctl-x-map "*" 'calc-dispatch)
 
@@ -2994,8 +2995,8 @@ See Info node `(calc)Defining Functions'.
 
 ;;;***
 
-;;;### (autoloads nil "calculator" "calculator.el" (21850 35126 597287
-;;;;;;  693000))
+;;;### (autoloads nil "calculator" "calculator.el" (21974 64192 548009
+;;;;;;  993000))
 ;;; Generated autoloads from calculator.el
 
 (autoload 'calculator "calculator" "\
@@ -3006,8 +3007,8 @@ See the documentation for `calculator-mode' for more 
information.
 
 ;;;***
 
-;;;### (autoloads nil "calendar" "calendar/calendar.el" (21887 28943
-;;;;;;  471667 16000))
+;;;### (autoloads nil "calendar" "calendar/calendar.el" (21980 16567
+;;;;;;  413544 893000))
 ;;; Generated autoloads from calendar/calendar.el
 
 (autoload 'calendar "calendar" "\
@@ -3068,8 +3069,8 @@ it fails.
 
 ;;;***
 
-;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (21855
-;;;;;;  577 387944 393000))
+;;;### (autoloads nil "cc-engine" "progmodes/cc-engine.el" (21988
+;;;;;;  10682 33624 461000))
 ;;; Generated autoloads from progmodes/cc-engine.el
 
 (autoload 'c-guess-basic-syntax "cc-engine" "\
@@ -3079,8 +3080,8 @@ Return the syntactic context of the current line.
 
 ;;;***
 
-;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (21855 577
-;;;;;;  397944 786000))
+;;;### (autoloads nil "cc-guess" "progmodes/cc-guess.el" (21976 19510
+;;;;;;  84430 241000))
 ;;; Generated autoloads from progmodes/cc-guess.el
 
 (defvar c-guess-guessed-offsets-alist nil "\
@@ -3178,8 +3179,8 @@ the absolute file name of the file if STYLE-NAME is nil.
 
 ;;;***
 
-;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (21861 39358
-;;;;;;  537945 535000))
+;;;### (autoloads nil "cc-mode" "progmodes/cc-mode.el" (21976 19510
+;;;;;;  104430 241000))
 ;;; Generated autoloads from progmodes/cc-mode.el
 
 (autoload 'c-initialize-cc-mode "cc-mode" "\
@@ -3336,8 +3337,8 @@ Key bindings:
 
 ;;;***
 
-;;;### (autoloads nil "cc-styles" "progmodes/cc-styles.el" (21670
-;;;;;;  32331 385639 720000))
+;;;### (autoloads nil "cc-styles" "progmodes/cc-styles.el" (21976
+;;;;;;  19510 104430 241000))
 ;;; Generated autoloads from progmodes/cc-styles.el
 
 (autoload 'c-set-style "cc-styles" "\
@@ -3388,8 +3389,8 @@ and exists only for compatibility reasons.
 
 ;;;***
 
-;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (21670 32331
-;;;;;;  385639 720000))
+;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (21976 19510
+;;;;;;  104430 241000))
 ;;; Generated autoloads from progmodes/cc-vars.el
 (put 'c-basic-offset 'safe-local-variable 'integerp)
 (put 'c-backslash-column 'safe-local-variable 'integerp)
@@ -3397,8 +3398,8 @@ and exists only for compatibility reasons.
 
 ;;;***
 
-;;;### (autoloads nil "ccl" "international/ccl.el" (21682 23484 726747
-;;;;;;  991000))
+;;;### (autoloads nil "ccl" "international/ccl.el" (21988 10681 977624
+;;;;;;  461000))
 ;;; Generated autoloads from international/ccl.el
 
 (autoload 'ccl-compile "ccl" "\
@@ -3691,8 +3692,8 @@ See the documentation of `define-ccl-program' for the 
detail of CCL program.
 
 ;;;***
 
-;;;### (autoloads nil "cconv" "emacs-lisp/cconv.el" (21716 41663
-;;;;;;  456033 27000))
+;;;### (autoloads nil "cconv" "emacs-lisp/cconv.el" (21978 61237
+;;;;;;  422488 269000))
 ;;; Generated autoloads from emacs-lisp/cconv.el
 
 (autoload 'cconv-closure-convert "cconv" "\
@@ -3718,8 +3719,8 @@ Add the warnings that closure conversion would encounter.
 
 ;;;***
 
-;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (21931 31023
-;;;;;;  757164 572000))
+;;;### (autoloads nil "cfengine" "progmodes/cfengine.el" (21980 16568
+;;;;;;  17544 893000))
 ;;; Generated autoloads from progmodes/cfengine.el
 (push (purecopy '(cfengine 1 4)) package--builtin-versions)
 
@@ -3748,11 +3749,11 @@ Choose `cfengine2-mode' or `cfengine3-mode' by buffer 
contents.
 
 ;;;***
 
-;;;### (autoloads nil "character-fold" "character-fold.el" (21914
-;;;;;;  21937 447876 215000))
+;;;### (autoloads nil "character-fold" "character-fold.el" (21973
+;;;;;;  43315 242113 285000))
 ;;; Generated autoloads from character-fold.el
 
-(defvar character-fold-search t "\
+(defvar character-fold-search nil "\
 Non-nil if searches should fold similar characters.
 This means some characters will match entire groups of characters.
 For instance, \" will match all variants of double quotes, and
@@ -3772,15 +3773,15 @@ match any number of times.
 
 ;;;***
 
-;;;### (autoloads nil "chart" "emacs-lisp/chart.el" (21841 54062
-;;;;;;  162628 940000))
+;;;### (autoloads nil "chart" "emacs-lisp/chart.el" (21976 19509
+;;;;;;  812430 241000))
 ;;; Generated autoloads from emacs-lisp/chart.el
 (push (purecopy '(chart 0 2)) package--builtin-versions)
 
 ;;;***
 
 ;;;### (autoloads nil "check-declare" "emacs-lisp/check-declare.el"
-;;;;;;  (21888 49792 712181 796000))
+;;;;;;  (21978 61237 422488 269000))
 ;;; Generated autoloads from emacs-lisp/check-declare.el
 
 (autoload 'check-declare-file "check-declare" "\
@@ -3797,8 +3798,8 @@ Returns non-nil if any false statements are found.
 
 ;;;***
 
-;;;### (autoloads nil "checkdoc" "emacs-lisp/checkdoc.el" (21948
-;;;;;;  40114 230686 453000))
+;;;### (autoloads nil "checkdoc" "emacs-lisp/checkdoc.el" (21986
+;;;;;;  55346 260512 613000))
 ;;; 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)
@@ -4189,8 +4190,8 @@ a future Emacs interpreter will be able to use it.")
 
 ;;;***
 
-;;;### (autoloads nil "cmacexp" "progmodes/cmacexp.el" (21828 42028
-;;;;;;  650494 471000))
+;;;### (autoloads nil "cmacexp" "progmodes/cmacexp.el" (21988 10682
+;;;;;;  33624 461000))
 ;;; Generated autoloads from progmodes/cmacexp.el
 
 (autoload 'c-macro-expand "cmacexp" "\
@@ -4250,7 +4251,7 @@ If FRAME cannot display COLOR, return nil.
 
 ;;;***
 
-;;;### (autoloads nil "comint" "comint.el" (21810 12071 401207 648000))
+;;;### (autoloads nil "comint" "comint.el" (21980 16567 473544 893000))
 ;;; 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 +4389,8 @@ on third call it again advances points to the next 
difference and so on.
 
 ;;;***
 
-;;;### (autoloads nil "compile" "progmodes/compile.el" (21911 45744
-;;;;;;  555516 371000))
+;;;### (autoloads nil "compile" "progmodes/compile.el" (21980 16568
+;;;;;;  17544 893000))
 ;;; Generated autoloads from progmodes/compile.el
 
 (defvar compilation-mode-hook nil "\
@@ -4593,8 +4594,8 @@ if ARG is omitted or nil.
 
 ;;;***
 
-;;;### (autoloads nil "conf-mode" "textmodes/conf-mode.el" (21670
-;;;;;;  32331 885635 586000))
+;;;### (autoloads nil "conf-mode" "textmodes/conf-mode.el" (21988
+;;;;;;  10682 61624 461000))
 ;;; Generated autoloads from textmodes/conf-mode.el
 
 (autoload 'conf-mode "conf-mode" "\
@@ -4778,8 +4779,8 @@ and subsequent calls on the same file won't go to disk.
 
 ;;;***
 
-;;;### (autoloads nil "copyright" "emacs-lisp/copyright.el" (21670
-;;;;;;  32330 885624 725000))
+;;;### (autoloads nil "copyright" "emacs-lisp/copyright.el" (21976
+;;;;;;  19509 832430 241000))
 ;;; Generated autoloads from emacs-lisp/copyright.el
 (put 'copyright-at-end-flag 'safe-local-variable 'booleanp)
 (put 'copyright-names-regexp 'safe-local-variable 'stringp)
@@ -4817,8 +4818,8 @@ If FIX is non-nil, run `copyright-fix-years' instead.
 
 ;;;***
 
-;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (21862
-;;;;;;  60209 828658 75000))
+;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (21980
+;;;;;;  16568 21544 893000))
 ;;; Generated autoloads from progmodes/cperl-mode.el
 (put 'cperl-indent-level 'safe-local-variable 'integerp)
 (put 'cperl-brace-offset 'safe-local-variable 'integerp)
@@ -5016,8 +5017,8 @@ Run a `perldoc' on the word around point.
 
 ;;;***
 
-;;;### (autoloads nil "cpp" "progmodes/cpp.el" (21948 40114 418686
-;;;;;;  453000))
+;;;### (autoloads nil "cpp" "progmodes/cpp.el" (21988 10682 33624
+;;;;;;  461000))
 ;;; Generated autoloads from progmodes/cpp.el
 
 (autoload 'cpp-highlight-buffer "cpp" "\
@@ -5035,8 +5036,8 @@ Edit display information for cpp conditionals.
 
 ;;;***
 
-;;;### (autoloads nil "crm" "emacs-lisp/crm.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "crm" "emacs-lisp/crm.el" (21980 16567 501544
+;;;;;;  893000))
 ;;; Generated autoloads from emacs-lisp/crm.el
 
 (autoload 'completing-read-multiple "crm" "\
@@ -5062,8 +5063,8 @@ with empty strings removed.
 
 ;;;***
 
-;;;### (autoloads nil "css-mode" "textmodes/css-mode.el" (21811 32939
-;;;;;;  200500 777000))
+;;;### (autoloads nil "css-mode" "textmodes/css-mode.el" (21985 34484
+;;;;;;  258705 925000))
 ;;; Generated autoloads from textmodes/css-mode.el
 
 (autoload 'css-mode "css-mode" "\
@@ -5158,8 +5159,8 @@ entering the area covered by the text-property property 
or leaving it.
 
 ;;;***
 
-;;;### (autoloads nil "cus-edit" "cus-edit.el" (21948 40114 214686
-;;;;;;  453000))
+;;;### (autoloads nil "cus-edit" "cus-edit.el" (21981 37426 511399
+;;;;;;  97000))
 ;;; Generated autoloads from cus-edit.el
 
 (defvar custom-browse-sort-alphabetically nil "\
@@ -5478,8 +5479,8 @@ The format is suitable for use with `easy-menu-define'.
 
 ;;;***
 
-;;;### (autoloads nil "cus-theme" "cus-theme.el" (21891 60465 839679
-;;;;;;  523000))
+;;;### (autoloads nil "cus-theme" "cus-theme.el" (21985 34484 218705
+;;;;;;  925000))
 ;;; Generated autoloads from cus-theme.el
 
 (autoload 'customize-create-theme "cus-theme" "\
@@ -5597,8 +5598,8 @@ If the argument is nil, we return the display table to 
its standard state.
 
 ;;;***
 
-;;;### (autoloads nil "dabbrev" "dabbrev.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "dabbrev" "dabbrev.el" (21980 16567 473544
+;;;;;;  893000))
 ;;; Generated autoloads from dabbrev.el
 (put 'dabbrev-case-fold-search 'risky-local-variable t)
 (put 'dabbrev-case-replace 'risky-local-variable t)
@@ -5644,8 +5645,8 @@ See also `dabbrev-abbrev-char-regexp' and 
\\[dabbrev-completion].
 
 ;;;***
 
-;;;### (autoloads nil "data-debug" "cedet/data-debug.el" (21670 32330
-;;;;;;  885624 725000))
+;;;### (autoloads nil "data-debug" "cedet/data-debug.el" (21974 64192
+;;;;;;  556009 993000))
 ;;; Generated autoloads from cedet/data-debug.el
 
 (autoload 'data-debug-new-buffer "data-debug" "\
@@ -5668,8 +5669,8 @@ If the HANDLER returns a `dbus-error', it is propagated 
as return message.
 
 ;;;***
 
-;;;### (autoloads nil "dcl-mode" "progmodes/dcl-mode.el" (21670 32331
-;;;;;;  385639 720000))
+;;;### (autoloads nil "dcl-mode" "progmodes/dcl-mode.el" (21980 16568
+;;;;;;  21544 893000))
 ;;; Generated autoloads from progmodes/dcl-mode.el
 
 (autoload 'dcl-mode "dcl-mode" "\
@@ -5868,8 +5869,8 @@ The most useful commands are:
 
 ;;;***
 
-;;;### (autoloads nil "delim-col" "delim-col.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "delim-col" "delim-col.el" (21980 16567 477544
+;;;;;;  893000))
 ;;; Generated autoloads from delim-col.el
 (push (purecopy '(delim-col 2 1)) package--builtin-versions)
 
@@ -5894,7 +5895,7 @@ START and END delimits the corners of text rectangle.
 
 ;;;***
 
-;;;### (autoloads nil "delsel" "delsel.el" (21716 41663 456033 27000))
+;;;### (autoloads nil "delsel" "delsel.el" (21973 43315 242113 285000))
 ;;; Generated autoloads from delsel.el
 
 (defalias 'pending-delete-mode 'delete-selection-mode)
@@ -5922,8 +5923,8 @@ point regardless of any selection.
 
 ;;;***
 
-;;;### (autoloads nil "derived" "emacs-lisp/derived.el" (21887 19078
-;;;;;;  977447 760000))
+;;;### (autoloads nil "derived" "emacs-lisp/derived.el" (21978 61237
+;;;;;;  450488 269000))
 ;;; Generated autoloads from emacs-lisp/derived.el
 
 (autoload 'define-derived-mode "derived" "\
@@ -5991,8 +5992,8 @@ the first time the mode is used.
 
 ;;;***
 
-;;;### (autoloads nil "descr-text" "descr-text.el" (21948 40114 214686
-;;;;;;  453000))
+;;;### (autoloads nil "descr-text" "descr-text.el" (21981 37426 511399
+;;;;;;  97000))
 ;;; Generated autoloads from descr-text.el
 
 (autoload 'describe-text-properties "descr-text" "\
@@ -6041,7 +6042,8 @@ This function is meant to be used as a value of
 
 ;;;***
 
-;;;### (autoloads nil "desktop" "desktop.el" (21860 18496 17962 857000))
+;;;### (autoloads nil "desktop" "desktop.el" (21976 19509 748430
+;;;;;;  241000))
 ;;; Generated autoloads from desktop.el
 
 (defvar desktop-save-mode nil "\
@@ -6064,8 +6066,8 @@ one session to another.  In particular, Emacs will save 
the desktop when
 it exits (this may prompt you; see the option `desktop-save').  The next
 time Emacs starts, if this mode is active it will restore the desktop.
 
-To manually save the desktop at any time, use the command `M-x desktop-save'.
-To load it, use `M-x desktop-read'.
+To manually save the desktop at any time, use the command `\\[desktop-save]'.
+To load it, use `\\[desktop-read]'.
 
 Once a desktop file exists, Emacs will auto-save it according to the
 option `desktop-auto-save-timeout'.
@@ -6283,8 +6285,8 @@ Deuglify broken Outlook (Express) articles and redisplay.
 
 ;;;***
 
-;;;### (autoloads nil "diary-lib" "calendar/diary-lib.el" (21880
-;;;;;;  42532 420045 615000))
+;;;### (autoloads nil "diary-lib" "calendar/diary-lib.el" (21985
+;;;;;;  34484 206705 925000))
 ;;; Generated autoloads from calendar/diary-lib.el
 
 (autoload 'diary "diary-lib" "\
@@ -6374,8 +6376,8 @@ This requires the external program `diff' to be in your 
`exec-path'.
 
 ;;;***
 
-;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (21798 20907
-;;;;;;  11218 42000))
+;;;### (autoloads nil "diff-mode" "vc/diff-mode.el" (21985 34484
+;;;;;;  282705 925000))
 ;;; Generated autoloads from vc/diff-mode.el
 
 (autoload 'diff-mode "diff-mode" "\
@@ -6418,7 +6420,7 @@ Optional arguments are passed to `dig-invoke'.
 
 ;;;***
 
-;;;### (autoloads nil "dired" "dired.el" (21914 55048 605882 55000))
+;;;### (autoloads nil "dired" "dired.el" (21985 34484 222705 925000))
 ;;; Generated autoloads from dired.el
 
 (defvar dired-listing-switches (purecopy "-al") "\
@@ -6544,8 +6546,8 @@ Keybindings:
 
 ;;;***
 
-;;;### (autoloads nil "dirtrack" "dirtrack.el" (21855 576 727950
-;;;;;;  398000))
+;;;### (autoloads nil "dirtrack" "dirtrack.el" (21981 37426 531399
+;;;;;;  97000))
 ;;; Generated autoloads from dirtrack.el
 
 (autoload 'dirtrack-mode "dirtrack" "\
@@ -6590,8 +6592,8 @@ redefine OBJECT if it is a symbol.
 
 ;;;***
 
-;;;### (autoloads nil "disp-table" "disp-table.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "disp-table" "disp-table.el" (21981 37426 535399
+;;;;;;  97000))
 ;;; Generated autoloads from disp-table.el
 
 (autoload 'make-display-table "disp-table" "\
@@ -6831,7 +6833,7 @@ Switch to *doctor* buffer and start giving psychotherapy.
 
 ;;;***
 
-;;;### (autoloads nil "double" "double.el" (21670 32330 885624 725000))
+;;;### (autoloads nil "double" "double.el" (21953 58033 239058 929000))
 ;;; Generated autoloads from double.el
 
 (autoload 'double-mode "double" "\
@@ -6847,10 +6849,10 @@ strings when pressed twice.  See `double-map' for 
details.
 
 ;;;***
 
-;;;### (autoloads nil "dunnet" "play/dunnet.el" (21841 54062 172628
-;;;;;;  227000))
+;;;### (autoloads nil "dunnet" "play/dunnet.el" (21980 16567 965544
+;;;;;;  893000))
 ;;; Generated autoloads from play/dunnet.el
-(push (purecopy '(dunnet 2 1)) package--builtin-versions)
+(push (purecopy '(dunnet 2 2)) package--builtin-versions)
 
 (autoload 'dunnet "dunnet" "\
 Switch to *dungeon* buffer and start game.
@@ -7143,8 +7145,8 @@ To implement dynamic menus, either call this from
 
 ;;;***
 
-;;;### (autoloads nil "ebnf2ps" "progmodes/ebnf2ps.el" (21670 32331
-;;;;;;  385639 720000))
+;;;### (autoloads nil "ebnf2ps" "progmodes/ebnf2ps.el" (21978 61237
+;;;;;;  706488 269000))
 ;;; Generated autoloads from progmodes/ebnf2ps.el
 (push (purecopy '(ebnf2ps 4 4)) package--builtin-versions)
 
@@ -7409,8 +7411,8 @@ See `ebnf-style-database' documentation.
 
 ;;;***
 
-;;;### (autoloads nil "ebrowse" "progmodes/ebrowse.el" (21670 32331
-;;;;;;  385639 720000))
+;;;### (autoloads nil "ebrowse" "progmodes/ebrowse.el" (21988 10682
+;;;;;;  37624 461000))
 ;;; Generated autoloads from progmodes/ebrowse.el
 
 (autoload 'ebrowse-tree-mode "ebrowse" "\
@@ -7558,8 +7560,8 @@ Display statistics for a class tree.
 
 ;;;***
 
-;;;### (autoloads nil "ebuff-menu" "ebuff-menu.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "ebuff-menu" "ebuff-menu.el" (21953 58033 239058
+;;;;;;  929000))
 ;;; Generated autoloads from ebuff-menu.el
 
 (autoload 'electric-buffer-list "ebuff-menu" "\
@@ -7614,7 +7616,7 @@ With prefix arg NOCONFIRM, execute current line as-is 
without editing.
 
 ;;;***
 
-;;;### (autoloads nil "ede" "cedet/ede.el" (21947 19252 621252 749000))
+;;;### (autoloads nil "ede" "cedet/ede.el" (21986 55346 252512 613000))
 ;;; Generated autoloads from cedet/ede.el
 (push (purecopy '(ede 1 2)) package--builtin-versions)
 
@@ -7640,8 +7642,8 @@ an EDE controlled project.
 
 ;;;***
 
-;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (21857 42300
-;;;;;;  387957 585000))
+;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (21980 16567
+;;;;;;  505544 893000))
 ;;; Generated autoloads from emacs-lisp/edebug.el
 
 (defvar edebug-all-defs nil "\
@@ -7652,7 +7654,7 @@ This applies to `eval-defun', `eval-region', 
`eval-buffer', and
 
 You can use the command `edebug-all-defs' to toggle the value of this
 variable.  You may wish to make it local to each buffer with
-\(make-local-variable 'edebug-all-defs) in your
+\(make-local-variable \\='edebug-all-defs) in your
 `emacs-lisp-mode-hook'.")
 
 (custom-autoload 'edebug-all-defs "edebug" t)
@@ -7705,7 +7707,7 @@ Toggle edebugging of all forms.
 
 ;;;***
 
-;;;### (autoloads nil "ediff" "vc/ediff.el" (21670 32331 885635 586000))
+;;;### (autoloads nil "ediff" "vc/ediff.el" (21985 34484 298705 925000))
 ;;; Generated autoloads from vc/ediff.el
 (push (purecopy '(ediff 2 81 4)) package--builtin-versions)
 
@@ -8001,8 +8003,8 @@ Display Ediff's registry.
 
 ;;;***
 
-;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (21852 24382
-;;;;;;  97237 703000))
+;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (21985 34484
+;;;;;;  298705 925000))
 ;;; Generated autoloads from vc/ediff-util.el
 
 (autoload 'ediff-toggle-multiframe "ediff-util" "\
@@ -8021,8 +8023,8 @@ To change the default, set the variable 
`ediff-use-toolbar-p', which see.
 
 ;;;***
 
-;;;### (autoloads nil "edmacro" "edmacro.el" (21799 41766 961230
-;;;;;;  875000))
+;;;### (autoloads nil "edmacro" "edmacro.el" (21976 19509 748430
+;;;;;;  241000))
 ;;; Generated autoloads from edmacro.el
 (push (purecopy '(edmacro 2 1)) package--builtin-versions)
 
@@ -8030,7 +8032,7 @@ To change the default, set the variable 
`ediff-use-toolbar-p', which see.
 Edit a keyboard macro.
 At the prompt, type any key sequence which is bound to a keyboard macro.
 Or, type `C-x e' or RET to edit the last keyboard macro, `C-h l' to edit
-the last 300 keystrokes as a keyboard macro, or `M-x' to edit a macro by
+the last 300 keystrokes as a keyboard macro, or `\\[execute-extended-command]' 
to edit a macro by
 its command name.
 With a prefix argument, format the macro in a more concise way.
 
@@ -8071,8 +8073,8 @@ or nil, use a compact 80-column format.
 
 ;;;***
 
-;;;### (autoloads nil "edt" "emulation/edt.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "edt" "emulation/edt.el" (21986 55346 264512
+;;;;;;  613000))
 ;;; Generated autoloads from emulation/edt.el
 
 (autoload 'edt-set-scroll-margins "edt" "\
@@ -8089,7 +8091,7 @@ Turn on EDT Emulation.
 
 ;;;***
 
-;;;### (autoloads nil "ehelp" "ehelp.el" (21670 32330 885624 725000))
+;;;### (autoloads nil "ehelp" "ehelp.el" (21953 58033 247058 929000))
 ;;; Generated autoloads from ehelp.el
 
 (autoload 'with-electric-help "ehelp" "\
@@ -8125,15 +8127,15 @@ BUFFER is put back into its original major mode.
 
 ;;;***
 
-;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (21915 42801
-;;;;;;  52409 735000))
+;;;### (autoloads nil "eieio" "emacs-lisp/eieio.el" (21978 61583
+;;;;;;  178488 269000))
 ;;; Generated autoloads from emacs-lisp/eieio.el
 (push (purecopy '(eieio 1 4)) package--builtin-versions)
 
 ;;;***
 
-;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (21915
-;;;;;;  42801 48409 735000))
+;;;### (autoloads nil "eieio-core" "emacs-lisp/eieio-core.el" (21978
+;;;;;;  61237 458488 269000))
 ;;; Generated autoloads from emacs-lisp/eieio-core.el
 (push (purecopy '(eieio-core 1 4)) package--builtin-versions)
 
@@ -8207,8 +8209,8 @@ This is suitable as an entry on `find-file-hook' or 
appropriate mode hooks.
 
 ;;;***
 
-;;;### (autoloads nil "elint" "emacs-lisp/elint.el" (21853 45243
-;;;;;;  381515 341000))
+;;;### (autoloads nil "elint" "emacs-lisp/elint.el" (21980 16567
+;;;;;;  505544 893000))
 ;;; Generated autoloads from emacs-lisp/elint.el
 
 (autoload 'elint-file "elint" "\
@@ -8306,8 +8308,8 @@ Other values are interpreted as usual.
 
 ;;;***
 
-;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (21814 9129 290493
-;;;;;;  495000))
+;;;### (autoloads nil "emacsbug" "mail/emacsbug.el" (21989 31537
+;;;;;;  887825 721000))
 ;;; Generated autoloads from mail/emacsbug.el
 
 (autoload 'report-emacs-bug "emacsbug" "\
@@ -8320,8 +8322,8 @@ Prompts for bug subject.  Leaves you in a mail buffer.
 
 ;;;***
 
-;;;### (autoloads nil "emerge" "vc/emerge.el" (21607 54478 800121
-;;;;;;  42000))
+;;;### (autoloads nil "emerge" "vc/emerge.el" (21953 58033 507058
+;;;;;;  929000))
 ;;; Generated autoloads from vc/emerge.el
 
 (autoload 'emerge-files "emerge" "\
@@ -8417,7 +8419,7 @@ Commands:
 
 ;;;***
 
-;;;### (autoloads nil "epa" "epa.el" (21948 40114 234686 453000))
+;;;### (autoloads nil "epa" "epa.el" (21980 16567 517544 893000))
 ;;; Generated autoloads from epa.el
 
 (autoload 'epa-list-keys "epa" "\
@@ -8479,10 +8481,10 @@ should consider using the string based counterpart
 
 For example:
 
-\(let ((context (epg-make-context 'OpenPGP)))
+\(let ((context (epg-make-context \\='OpenPGP)))
   (decode-coding-string
     (epg-decrypt-string context (buffer-substring start end))
-    'utf-8))
+    \\='utf-8))
 
 \(fn START END &optional MAKE-BUFFER-FUNCTION)" t nil)
 
@@ -8509,10 +8511,10 @@ should consider using the string based counterpart
 
 For example:
 
-\(let ((context (epg-make-context 'OpenPGP)))
+\(let ((context (epg-make-context \\='OpenPGP)))
   (decode-coding-string
     (epg-verify-string context (buffer-substring start end))
-    'utf-8))
+    \\='utf-8))
 
 \(fn START END)" t nil)
 
@@ -8541,10 +8543,10 @@ based counterpart `epg-sign-file' instead.
 
 For example:
 
-\(let ((context (epg-make-context 'OpenPGP)))
+\(let ((context (epg-make-context \\='OpenPGP)))
   (epg-sign-string
     context
-    (encode-coding-string (buffer-substring start end) 'utf-8)))
+    (encode-coding-string (buffer-substring start end) \\='utf-8)))
 
 \(fn START END SIGNERS MODE)" t nil)
 
@@ -8562,10 +8564,10 @@ file based counterpart `epg-encrypt-file' instead.
 
 For example:
 
-\(let ((context (epg-make-context 'OpenPGP)))
+\(let ((context (epg-make-context \\='OpenPGP)))
   (epg-encrypt-string
     context
-    (encode-coding-string (buffer-substring start end) 'utf-8)
+    (encode-coding-string (buffer-substring start end) \\='utf-8)
     nil))
 
 \(fn START END RECIPIENTS SIGN SIGNERS)" t nil)
@@ -8631,8 +8633,8 @@ Encrypt marked files.
 
 ;;;***
 
-;;;### (autoloads nil "epa-file" "epa-file.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "epa-file" "epa-file.el" (21964 28338 113695
+;;;;;;  749000))
 ;;; Generated autoloads from epa-file.el
 
 (autoload 'epa-file-handler "epa-file" "\
@@ -8730,7 +8732,7 @@ if ARG is omitted or nil.
 
 ;;;***
 
-;;;### (autoloads nil "epg" "epg.el" (21931 31023 725164 572000))
+;;;### (autoloads nil "epg" "epg.el" (21980 16567 517544 893000))
 ;;; Generated autoloads from epg.el
 (push (purecopy '(epg 1 0 0)) package--builtin-versions)
 
@@ -8762,7 +8764,7 @@ Look at CONFIG and try to expand GROUP.
 
 ;;;***
 
-;;;### (autoloads nil "erc" "erc/erc.el" (21907 48688 693360 195000))
+;;;### (autoloads nil "erc" "erc/erc.el" (21980 16567 529544 893000))
 ;;; Generated autoloads from erc/erc.el
 (push (purecopy '(erc 5 3)) package--builtin-versions)
 
@@ -8811,15 +8813,15 @@ Otherwise, connect to HOST:PORT as USER and /join 
CHANNEL.
 
 ;;;***
 
-;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (21670
-;;;;;;  32330 885624 725000))
+;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (21989
+;;;;;;  31537 763825 721000))
 ;;; Generated autoloads from erc/erc-autoaway.el
  (autoload 'erc-autoaway-mode "erc-autoaway")
 
 ;;;***
 
-;;;### (autoloads nil "erc-button" "erc/erc-button.el" (21670 32330
-;;;;;;  885624 725000))
+;;;### (autoloads nil "erc-button" "erc/erc-button.el" (21980 16567
+;;;;;;  517544 893000))
 ;;; Generated autoloads from erc/erc-button.el
  (autoload 'erc-button-mode "erc-button" nil t)
 
@@ -8839,8 +8841,8 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL.
 
 ;;;***
 
-;;;### (autoloads nil "erc-dcc" "erc/erc-dcc.el" (21948 40114 242686
-;;;;;;  453000))
+;;;### (autoloads nil "erc-dcc" "erc/erc-dcc.el" (21980 16567 517544
+;;;;;;  893000))
 ;;; Generated autoloads from erc/erc-dcc.el
  (autoload 'erc-dcc-mode "erc-dcc")
 
@@ -8939,8 +8941,8 @@ Add EZBouncer convenience functions to ERC.
 
 ;;;***
 
-;;;### (autoloads nil "erc-fill" "erc/erc-fill.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "erc-fill" "erc/erc-fill.el" (21989 31537 771825
+;;;;;;  721000))
 ;;; Generated autoloads from erc/erc-fill.el
  (autoload 'erc-fill-mode "erc-fill" nil t)
 
@@ -9029,8 +9031,8 @@ You can save every individual message by putting this 
function on
 
 ;;;***
 
-;;;### (autoloads nil "erc-match" "erc/erc-match.el" (21670 32330
-;;;;;;  885624 725000))
+;;;### (autoloads nil "erc-match" "erc/erc-match.el" (21980 16567
+;;;;;;  517544 893000))
 ;;; Generated autoloads from erc/erc-match.el
  (autoload 'erc-match-mode "erc-match")
 
@@ -9160,8 +9162,8 @@ with args, toggle notify status of people.
 
 ;;;***
 
-;;;### (autoloads nil "erc-services" "erc/erc-services.el" (21670
-;;;;;;  32330 885624 725000))
+;;;### (autoloads nil "erc-services" "erc/erc-services.el" (21980
+;;;;;;  16567 517544 893000))
 ;;; Generated autoloads from erc/erc-services.el
  (autoload 'erc-services-mode "erc-services" nil t)
 
@@ -9185,8 +9187,8 @@ When called interactively, read the password using 
`read-passwd'.
 
 ;;;***
 
-;;;### (autoloads nil "erc-speedbar" "erc/erc-speedbar.el" (21670
-;;;;;;  32330 885624 725000))
+;;;### (autoloads nil "erc-speedbar" "erc/erc-speedbar.el" (21980
+;;;;;;  16567 521544 893000))
 ;;; Generated autoloads from erc/erc-speedbar.el
 
 (autoload 'erc-speedbar-browser "erc-speedbar" "\
@@ -9211,8 +9213,8 @@ This will add a speedbar major display mode.
 
 ;;;***
 
-;;;### (autoloads nil "erc-track" "erc/erc-track.el" (21670 32330
-;;;;;;  885624 725000))
+;;;### (autoloads nil "erc-track" "erc/erc-track.el" (21980 16567
+;;;;;;  521544 893000))
 ;;; Generated autoloads from erc/erc-track.el
 
 (defvar erc-track-minor-mode nil "\
@@ -9269,8 +9271,8 @@ Add a file to `erc-xdcc-files'.
 
 ;;;***
 
-;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (21870 18240 719373
-;;;;;;  247000))
+;;;### (autoloads nil "ert" "emacs-lisp/ert.el" (21976 19509 868430
+;;;;;;  241000))
 ;;; Generated autoloads from emacs-lisp/ert.el
 
 (autoload 'ert-deftest "ert" "\
@@ -9339,8 +9341,8 @@ Display the documentation for TEST-OR-TEST-NAME (a symbol 
or ert-test).
 
 ;;;***
 
-;;;### (autoloads nil "ert-x" "emacs-lisp/ert-x.el" (21670 32330
-;;;;;;  885624 725000))
+;;;### (autoloads nil "ert-x" "emacs-lisp/ert-x.el" (21980 16567
+;;;;;;  505544 893000))
 ;;; Generated autoloads from emacs-lisp/ert-x.el
 
 (put 'ert-with-test-buffer 'lisp-indent-function 1)
@@ -9399,8 +9401,8 @@ corresponding to a successful execution.
 
 ;;;***
 
-;;;### (autoloads nil "etags" "progmodes/etags.el" (21919 39857 637327
-;;;;;;  44000))
+;;;### (autoloads nil "etags" "progmodes/etags.el" (21988 10682 37624
+;;;;;;  461000))
 ;;; Generated autoloads from progmodes/etags.el
 
 (defvar tags-file-name nil "\
@@ -10078,8 +10080,8 @@ Display the bookmarks.
 
 ;;;***
 
-;;;### (autoloads nil "executable" "progmodes/executable.el" (21880
-;;;;;;  39991 389803 616000))
+;;;### (autoloads nil "executable" "progmodes/executable.el" (21988
+;;;;;;  10682 37624 461000))
 ;;; Generated autoloads from progmodes/executable.el
 
 (autoload 'executable-command-find-posix-p "executable" "\
@@ -10391,8 +10393,8 @@ Besides the choice of face, it is the same as 
`buffer-face-mode'.
 
 ;;;***
 
-;;;### (autoloads nil "feedmail" "mail/feedmail.el" (21607 54478
-;;;;;;  300138 641000))
+;;;### (autoloads nil "feedmail" "mail/feedmail.el" (21989 31537
+;;;;;;  891825 721000))
 ;;; Generated autoloads from mail/feedmail.el
 (push (purecopy '(feedmail 11)) package--builtin-versions)
 
@@ -10446,7 +10448,7 @@ you can set `feedmail-queue-reminder-alist' to nil.
 
 ;;;***
 
-;;;### (autoloads nil "ffap" "ffap.el" (21948 40114 250686 453000))
+;;;### (autoloads nil "ffap" "ffap.el" (21960 31281 328212 153000))
 ;;; Generated autoloads from ffap.el
 
 (autoload 'ffap-next "ffap" "\
@@ -10583,7 +10585,8 @@ Otherwise, signal a `file-notify-error'.
 
 ;;;***
 
-;;;### (autoloads nil "files-x" "files-x.el" (21880 40973 57803 616000))
+;;;### (autoloads nil "files-x" "files-x.el" (21980 16567 557544
+;;;;;;  893000))
 ;;; Generated autoloads from files-x.el
 
 (autoload 'add-file-local-variable "files-x" "\
@@ -10648,8 +10651,8 @@ Copy directory-local variables to the -*- line.
 
 ;;;***
 
-;;;### (autoloads nil "filesets" "filesets.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "filesets" "filesets.el" (21980 16567 557544
+;;;;;;  893000))
 ;;; Generated autoloads from filesets.el
 
 (autoload 'filesets-init "filesets" "\
@@ -10660,8 +10663,8 @@ Set up hooks, load the cache file -- if existing -- and 
build the menu.
 
 ;;;***
 
-;;;### (autoloads nil "find-cmd" "find-cmd.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "find-cmd" "find-cmd.el" (21980 16567 573544
+;;;;;;  893000))
 ;;; Generated autoloads from find-cmd.el
 (push (purecopy '(find-cmd 0 6)) package--builtin-versions)
 
@@ -10669,8 +10672,8 @@ Set up hooks, load the cache file -- if existing -- and 
build the menu.
 Initiate the building of a find command.
 For example:
 
-\(find-cmd '(prune (name \".svn\" \".git\" \".CVS\"))
-          '(and (or (name \"*.pl\" \"*.pm\" \"*.t\")
+\(find-cmd \\='(prune (name \".svn\" \".git\" \".CVS\"))
+          \\='(and (or (name \"*.pl\" \"*.pm\" \"*.t\")
                     (mtime \"+1\"))
                 (fstype \"nfs\" \"ufs\"))))
 
@@ -10681,8 +10684,8 @@ result is a string that should be ready for the command 
line.
 
 ;;;***
 
-;;;### (autoloads nil "find-dired" "find-dired.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "find-dired" "find-dired.el" (21981 37426 535399
+;;;;;;  97000))
 ;;; Generated autoloads from find-dired.el
 
 (autoload 'find-dired "find-dired" "\
@@ -10702,7 +10705,7 @@ and run Dired on those files.
 PATTERN is a shell wildcard (not an Emacs regexp) and need not be quoted.
 The default command run (after changing into DIR) is
 
-    find . -name 'PATTERN' -ls
+    find . -name \\='PATTERN\\=' -ls
 
 See `find-name-arg' to customize the arguments.
 
@@ -10813,8 +10816,8 @@ Visit the file you click on in another window.
 
 ;;;***
 
-;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (21895
-;;;;;;  57521 598301 332000))
+;;;### (autoloads nil "find-func" "emacs-lisp/find-func.el" (21978
+;;;;;;  61237 486488 269000))
 ;;; Generated autoloads from emacs-lisp/find-func.el
 
 (autoload 'find-library "find-func" "\
@@ -11005,7 +11008,7 @@ Change the filter on a `find-lisp-find-dired' buffer to 
REGEXP.
 
 ;;;***
 
-;;;### (autoloads nil "finder" "finder.el" (21874 386 410923 336000))
+;;;### (autoloads nil "finder" "finder.el" (21980 16567 573544 893000))
 ;;; Generated autoloads from finder.el
 (push (purecopy '(finder 1 0)) package--builtin-versions)
 
@@ -11065,8 +11068,8 @@ to get the effect of a C-q.
 
 ;;;***
 
-;;;### (autoloads nil "flymake" "progmodes/flymake.el" (21907 48688
-;;;;;;  777360 195000))
+;;;### (autoloads nil "flymake" "progmodes/flymake.el" (21980 16568
+;;;;;;  25544 893000))
 ;;; Generated autoloads from progmodes/flymake.el
 (push (purecopy '(flymake 0 3)) package--builtin-versions)
 
@@ -11096,8 +11099,8 @@ Turn flymake mode off.
 
 ;;;***
 
-;;;### (autoloads nil "flyspell" "textmodes/flyspell.el" (21948 40114
-;;;;;;  506686 453000))
+;;;### (autoloads nil "flyspell" "textmodes/flyspell.el" (21980 16568
+;;;;;;  77544 893000))
 ;;; Generated autoloads from textmodes/flyspell.el
 
 (autoload 'flyspell-prog-mode "flyspell" "\
@@ -11174,7 +11177,7 @@ Flyspell whole buffer.
 
 ;;;***
 
-;;;### (autoloads nil "follow" "follow.el" (21670 32330 885624 725000))
+;;;### (autoloads nil "follow" "follow.el" (21976 19509 932430 241000))
 ;;; Generated autoloads from follow.el
 
 (autoload 'turn-on-follow-mode "follow" "\
@@ -11213,7 +11216,7 @@ and being able to use 144 lines instead of the normal 
72... (your
 mileage may vary).
 
 To split one large window into two side-by-side windows, the commands
-`\\[split-window-right]' or `M-x follow-delete-other-windows-and-split' can be 
used.
+`\\[split-window-right]' or `\\[follow-delete-other-windows-and-split]' can be 
used.
 
 Only windows displayed in the same frame follow each other.
 
@@ -11262,7 +11265,7 @@ play around with the following keys:
 
 ;;;***
 
-;;;### (autoloads nil "forms" "forms.el" (21852 24381 567240 49000))
+;;;### (autoloads nil "forms" "forms.el" (21981 37426 535399 97000))
 ;;; Generated autoloads from forms.el
 
 (autoload 'forms-mode "forms" "\
@@ -11298,8 +11301,8 @@ Visit a file in Forms mode in other window.
 
 ;;;***
 
-;;;### (autoloads nil "fortran" "progmodes/fortran.el" (21914 21937
-;;;;;;  467876 215000))
+;;;### (autoloads nil "fortran" "progmodes/fortran.el" (21953 58033
+;;;;;;  403058 929000))
 ;;; Generated autoloads from progmodes/fortran.el
 
 (autoload 'fortran-mode "fortran" "\
@@ -11619,8 +11622,8 @@ Interactively, reads the register using 
`register-read-with-preview'.
 
 ;;;***
 
-;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (21852 24381
-;;;;;;  917233 10000))
+;;;### (autoloads nil "gdb-mi" "progmodes/gdb-mi.el" (21980 16568
+;;;;;;  25544 893000))
 ;;; Generated autoloads from progmodes/gdb-mi.el
 
 (defvar gdb-enable-debug nil "\
@@ -11848,7 +11851,7 @@ DEFAULT-MAP specifies the default key map for ICON-LIST.
 
 ;;;***
 
-;;;### (autoloads nil "gnus" "gnus/gnus.el" (21670 32330 885624 725000))
+;;;### (autoloads nil "gnus" "gnus/gnus.el" (21980 16567 677544 893000))
 ;;; Generated autoloads from gnus/gnus.el
 (push (purecopy '(gnus 5 13)) package--builtin-versions)
 (when (fboundp 'custom-autoload)
@@ -11898,8 +11901,8 @@ prompt the user for the name of an NNTP server to use.
 
 ;;;***
 
-;;;### (autoloads nil "gnus-agent" "gnus/gnus-agent.el" (21670 32330
-;;;;;;  885624 725000))
+;;;### (autoloads nil "gnus-agent" "gnus/gnus-agent.el" (21989 31537
+;;;;;;  791825 721000))
 ;;; Generated autoloads from gnus/gnus-agent.el
 
 (autoload 'gnus-unplugged "gnus-agent" "\
@@ -11989,8 +11992,8 @@ CLEAN is obsolete and ignored.
 
 ;;;***
 
-;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (21870 54319
-;;;;;;  237944 669000))
+;;;### (autoloads nil "gnus-art" "gnus/gnus-art.el" (21989 31537
+;;;;;;  811825 721000))
 ;;; Generated autoloads from gnus/gnus-art.el
 
 (autoload 'gnus-article-prepare-display "gnus-art" "\
@@ -12140,8 +12143,8 @@ Reminder user if there are unsent drafts.
 
 ;;;***
 
-;;;### (autoloads nil "gnus-fun" "gnus/gnus-fun.el" (21670 32330
-;;;;;;  885624 725000))
+;;;### (autoloads nil "gnus-fun" "gnus/gnus-fun.el" (21989 31537
+;;;;;;  811825 721000))
 ;;; Generated autoloads from gnus/gnus-fun.el
 
 (autoload 'gnus--random-face-with-type "gnus-fun" "\
@@ -12224,8 +12227,8 @@ If gravatars are already displayed, remove them.
 
 ;;;***
 
-;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (21918 18992
-;;;;;;  805579 660000))
+;;;### (autoloads nil "gnus-group" "gnus/gnus-group.el" (21989 31537
+;;;;;;  823825 721000))
 ;;; Generated autoloads from gnus/gnus-group.el
 
 (autoload 'gnus-fetch-group "gnus-group" "\
@@ -12242,8 +12245,8 @@ Pop up a frame and enter GROUP.
 
 ;;;***
 
-;;;### (autoloads nil "gnus-html" "gnus/gnus-html.el" (21670 32330
-;;;;;;  885624 725000))
+;;;### (autoloads nil "gnus-html" "gnus/gnus-html.el" (21972 22452
+;;;;;;  190264 357000))
 ;;; Generated autoloads from gnus/gnus-html.el
 
 (autoload 'gnus-article-html "gnus-html" "\
@@ -12533,8 +12536,8 @@ Add NUM into sorted LIST by side effect.
 
 ;;;***
 
-;;;### (autoloads nil "gnus-registry" "gnus/gnus-registry.el" (21948
-;;;;;;  40114 254686 453000))
+;;;### (autoloads nil "gnus-registry" "gnus/gnus-registry.el" (21981
+;;;;;;  37426 571399 97000))
 ;;; Generated autoloads from gnus/gnus-registry.el
 
 (autoload 'gnus-registry-initialize "gnus-registry" "\
@@ -12549,8 +12552,8 @@ Install the registry hooks.
 
 ;;;***
 
-;;;### (autoloads nil "gnus-sieve" "gnus/gnus-sieve.el" (21670 32330
-;;;;;;  885624 725000))
+;;;### (autoloads nil "gnus-sieve" "gnus/gnus-sieve.el" (21980 16567
+;;;;;;  617544 893000))
 ;;; Generated autoloads from gnus/gnus-sieve.el
 
 (autoload 'gnus-sieve-update "gnus-sieve" "\
@@ -12588,8 +12591,8 @@ Update the format specification near point.
 
 ;;;***
 
-;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (21716 41663
-;;;;;;  456033 27000))
+;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (21981 37426
+;;;;;;  575399 97000))
 ;;; Generated autoloads from gnus/gnus-start.el
 
 (autoload 'gnus-declare-backend "gnus-start" "\
@@ -12599,8 +12602,8 @@ Declare back end NAME with ABILITIES as a Gnus back end.
 
 ;;;***
 
-;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (21855 576 897951
-;;;;;;  62000))
+;;;### (autoloads nil "gnus-sum" "gnus/gnus-sum.el" (21989 31537
+;;;;;;  843825 721000))
 ;;; Generated autoloads from gnus/gnus-sum.el
 
 (autoload 'gnus-summary-bookmark-jump "gnus-sum" "\
@@ -12638,8 +12641,8 @@ Add the window configuration CONF to 
`gnus-buffer-configuration'.
 
 ;;;***
 
-;;;### (autoloads nil "gnutls" "net/gnutls.el" (21670 32331 385639
-;;;;;;  720000))
+;;;### (autoloads nil "gnutls" "net/gnutls.el" (21978 61237 642488
+;;;;;;  269000))
 ;;; Generated autoloads from net/gnutls.el
 
 (defvar gnutls-min-prime-bits 256 "\
@@ -12655,8 +12658,8 @@ A value of nil says to use the default GnuTLS value.")
 
 ;;;***
 
-;;;### (autoloads nil "gomoku" "play/gomoku.el" (21670 32331 385639
-;;;;;;  720000))
+;;;### (autoloads nil "gomoku" "play/gomoku.el" (21980 16567 969544
+;;;;;;  893000))
 ;;; Generated autoloads from play/gomoku.el
 
 (autoload 'gomoku "gomoku" "\
@@ -13015,8 +13018,8 @@ it if ARG is omitted or nil.
 
 ;;;***
 
-;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (21916 4736 835897
-;;;;;;  451000))
+;;;### (autoloads nil "gv" "emacs-lisp/gv.el" (21976 19509 880430
+;;;;;;  241000))
 ;;; Generated autoloads from emacs-lisp/gv.el
 
 (autoload 'gv-get "gv" "\
@@ -13335,8 +13338,8 @@ different regions.  With numeric argument ARG, behaves 
like
 
 ;;;***
 
-;;;### (autoloads nil "help-fns" "help-fns.el" (21915 42801 64409
-;;;;;;  735000))
+;;;### (autoloads nil "help-fns" "help-fns.el" (21985 34484 226705
+;;;;;;  925000))
 ;;; Generated autoloads from help-fns.el
 
 (autoload 'describe-function "help-fns" "\
@@ -13435,8 +13438,8 @@ gives the window that lists the options.")
 
 ;;;***
 
-;;;### (autoloads nil "help-mode" "help-mode.el" (21915 42801 64409
-;;;;;;  735000))
+;;;### (autoloads nil "help-mode" "help-mode.el" (21972 22452 270264
+;;;;;;  357000))
 ;;; Generated autoloads from help-mode.el
 
 (autoload 'help-mode "help-mode" "\
@@ -13448,12 +13451,12 @@ Commands:
 \(fn)" t nil)
 
 (autoload 'help-mode-setup "help-mode" "\
-
+Enter Help Mode in the current buffer.
 
 \(fn)" nil nil)
 
 (autoload 'help-mode-finish "help-mode" "\
-
+Finalize Help Mode setup in current buffer.
 
 \(fn)" nil nil)
 
@@ -13553,7 +13556,7 @@ Provide help for current mode.
 
 ;;;***
 
-;;;### (autoloads nil "hexl" "hexl.el" (21695 35516 595262 313000))
+;;;### (autoloads nil "hexl" "hexl.el" (21985 34484 226705 925000))
 ;;; Generated autoloads from hexl.el
 
 (autoload 'hexl-mode "hexl" "\
@@ -13814,8 +13817,8 @@ be found in variable `hi-lock-interactive-patterns'.
 
 ;;;***
 
-;;;### (autoloads nil "hideif" "progmodes/hideif.el" (21799 41767
-;;;;;;  51222 992000))
+;;;### (autoloads nil "hideif" "progmodes/hideif.el" (21989 31537
+;;;;;;  939825 721000))
 ;;; Generated autoloads from progmodes/hideif.el
 
 (autoload 'hide-ifdef-mode "hideif" "\
@@ -13925,8 +13928,8 @@ Unconditionally turn off `hs-minor-mode'.
 
 ;;;***
 
-;;;### (autoloads nil "hilit-chg" "hilit-chg.el" (21670 32331 385639
-;;;;;;  720000))
+;;;### (autoloads nil "hilit-chg" "hilit-chg.el" (21980 16567 693544
+;;;;;;  893000))
 ;;; Generated autoloads from hilit-chg.el
 
 (autoload 'highlight-changes-mode "hilit-chg" "\
@@ -14140,8 +14143,8 @@ Global-Hl-Line mode uses the functions 
`global-hl-line-unhighlight' and
 
 ;;;***
 
-;;;### (autoloads nil "holidays" "calendar/holidays.el" (21670 32330
-;;;;;;  885624 725000))
+;;;### (autoloads nil "holidays" "calendar/holidays.el" (21980 16567
+;;;;;;  417544 893000))
 ;;; 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 [...]
@@ -14262,8 +14265,8 @@ Convert HTML to plain text in the current buffer.
 
 ;;;***
 
-;;;### (autoloads nil "htmlfontify" "htmlfontify.el" (21794 23865
-;;;;;;  762631 503000))
+;;;### (autoloads nil "htmlfontify" "htmlfontify.el" (21980 16567
+;;;;;;  701544 893000))
 ;;; Generated autoloads from htmlfontify.el
 (push (purecopy '(htmlfontify 0 21)) package--builtin-versions)
 
@@ -14399,7 +14402,8 @@ bound to the current value of the filter.
 
 ;;;***
 
-;;;### (autoloads nil "ibuffer" "ibuffer.el" (21855 577 47945 133000))
+;;;### (autoloads nil "ibuffer" "ibuffer.el" (21980 16640 605544
+;;;;;;  893000))
 ;;; Generated autoloads from ibuffer.el
 
 (autoload 'ibuffer-list-buffers "ibuffer" "\
@@ -14418,7 +14422,7 @@ buffers which are visiting a file.
 
 (autoload 'ibuffer "ibuffer" "\
 Begin using Ibuffer to edit a list of buffers.
-Type 'h' after entering ibuffer for more information.
+Type ‘h’ after entering ibuffer for more information.
 
 All arguments are optional.
 OTHER-WINDOW-P says to use another window.
@@ -14438,8 +14442,8 @@ FORMATS is the value to use for `ibuffer-formats'.
 
 ;;;***
 
-;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (21934
-;;;;;;  7227 609892 708000))
+;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (21980
+;;;;;;  16567 421544 893000))
 ;;; Generated autoloads from calendar/icalendar.el
 (push (purecopy '(icalendar 0 19)) package--builtin-versions)
 
@@ -14492,8 +14496,8 @@ buffer `*icalendar-errors*'.
 
 ;;;***
 
-;;;### (autoloads nil "icomplete" "icomplete.el" (21852 24381 607274
-;;;;;;  219000))
+;;;### (autoloads nil "icomplete" "icomplete.el" (21980 16567 701544
+;;;;;;  893000))
 ;;; Generated autoloads from icomplete.el
 
 (defvar icomplete-mode nil "\
@@ -14573,8 +14577,8 @@ with no args, if that value is non-nil.
 
 ;;;***
 
-;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (21855
-;;;;;;  577 397944 786000))
+;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (21980
+;;;;;;  16568 33544 893000))
 ;;; Generated autoloads from progmodes/idlw-shell.el
 
 (autoload 'idlwave-shell "idlw-shell" "\
@@ -14599,8 +14603,8 @@ See also the variable `idlwave-shell-prompt-pattern'.
 
 ;;;***
 
-;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (21948 40114
-;;;;;;  438686 453000))
+;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (21988 10682
+;;;;;;  41624 461000))
 ;;; Generated autoloads from progmodes/idlwave.el
 (push (purecopy '(idlwave 6 1 22)) package--builtin-versions)
 
@@ -14729,7 +14733,7 @@ The main features of this mode are
 
 ;;;***
 
-;;;### (autoloads nil "ido" "ido.el" (21909 4018 621671 120000))
+;;;### (autoloads nil "ido" "ido.el" (21981 37426 619399 97000))
 ;;; Generated autoloads from ido.el
 
 (defvar ido-mode nil "\
@@ -14991,7 +14995,7 @@ DEF, if non-nil, is the default value.
 
 ;;;***
 
-;;;### (autoloads nil "ielm" "ielm.el" (21855 577 47945 133000))
+;;;### (autoloads nil "ielm" "ielm.el" (21980 16567 705544 893000))
 ;;; Generated autoloads from ielm.el
 
 (autoload 'ielm "ielm" "\
@@ -15019,7 +15023,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG 
is `toggle'.
 
 ;;;***
 
-;;;### (autoloads nil "image" "image.el" (21670 32331 385639 720000))
+;;;### (autoloads nil "image" "image.el" (21974 64192 580009 993000))
 ;;; Generated autoloads from image.el
 
 (autoload 'image-type-from-data "image" "\
@@ -15461,7 +15465,7 @@ on these modes.
 
 ;;;***
 
-;;;### (autoloads nil "imenu" "imenu.el" (21948 40114 294686 453000))
+;;;### (autoloads nil "imenu" "imenu.el" (21986 55346 284512 613000))
 ;;; Generated autoloads from imenu.el
 
 (defvar imenu-sort-function nil "\
@@ -15649,7 +15653,7 @@ of `inferior-lisp-program').  Runs the hooks from
 
 ;;;***
 
-;;;### (autoloads nil "info" "info.el" (21931 31023 745164 572000))
+;;;### (autoloads nil "info" "info.el" (21985 34484 234705 925000))
 ;;; 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 
[...]
@@ -15909,8 +15913,8 @@ Perform completion on file preceding point.
 
 ;;;***
 
-;;;### (autoloads nil "info-xref" "info-xref.el" (21670 32331 385639
-;;;;;;  720000))
+;;;### (autoloads nil "info-xref" "info-xref.el" (21978 61237 550488
+;;;;;;  269000))
 ;;; Generated autoloads from info-xref.el
 (push (purecopy '(info-xref 3)) package--builtin-versions)
 
@@ -16202,8 +16206,8 @@ Add submenus to the File menu, to convert to and from 
various formats.
 
 ;;;***
 
-;;;### (autoloads nil "ispell" "textmodes/ispell.el" (21855 577 527945
-;;;;;;  248000))
+;;;### (autoloads nil "ispell" "textmodes/ispell.el" (21988 10682
+;;;;;;  97624 461000))
 ;;; Generated autoloads from textmodes/ispell.el
 
 (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t 
exclusive))))
@@ -16211,7 +16215,7 @@ Add submenus to the File menu, to convert to and from 
various formats.
 (defvar ispell-personal-dictionary nil "\
 File name of your personal spelling dictionary, or nil.
 If nil, the default personal dictionary, (\"~/.ispell_DICTNAME\" for ispell or
-\"~/.aspell.LANG.pws\" for aspell) is used, where DICTNAME is the name of your
+\"~/.aspell.LANG.pws\" for Aspell) is used, where DICTNAME is the name of your
 default dictionary and LANG the two letter language code.")
 
 (custom-autoload 'ispell-personal-dictionary "ispell" t)
@@ -16358,7 +16362,7 @@ Check the current buffer for spelling errors 
interactively.
 
 (autoload 'ispell-buffer-with-debug "ispell" "\
 `ispell-buffer' with some output sent to `ispell-debug-buffer' buffer.
-Use APPEND to append the info to previous buffer if exists.
+If APPEND is non-n il, append the info to previous buffer if exists.
 
 \(fn &optional APPEND)" t nil)
 
@@ -16368,8 +16372,8 @@ Continue a halted spelling session beginning with the 
current word.
 \(fn)" t nil)
 
 (autoload 'ispell-complete-word "ispell" "\
-Try to complete the word before or under point.
-If optional INTERIOR-FRAG is non-nil then the word may be a character
+Try to complete the word before or at point.
+If optional INTERIOR-FRAG is non-nil, then the word may be a character
 sequence inside of a word.
 
 Standard ispell choices are then available.
@@ -16404,7 +16408,7 @@ typing SPC or RET warns you if the previous word is 
incorrectly
 spelled.
 
 All the buffer-local variables and dictionaries are ignored.  To
-read them into the running ispell process, type \\[ispell-word]
+read them into the running Ispell process, type \\[ispell-word]
 SPC.
 
 For spell-checking \"on the fly\", not just after typing SPC or
@@ -16538,8 +16542,8 @@ by `jka-compr-installed'.
 
 ;;;***
 
-;;;### (autoloads nil "js" "progmodes/js.el" (21931 31023 761164
-;;;;;;  572000))
+;;;### (autoloads nil "js" "progmodes/js.el" (21976 19510 104430
+;;;;;;  241000))
 ;;; Generated autoloads from progmodes/js.el
 (push (purecopy '(js 9)) package--builtin-versions)
 
@@ -16553,7 +16557,7 @@ Major mode for editing JavaScript.
 
 ;;;***
 
-;;;### (autoloads nil "json" "json.el" (21779 56495 106033 935000))
+;;;### (autoloads nil "json" "json.el" (21985 34484 234705 925000))
 ;;; Generated autoloads from json.el
 (push (purecopy '(json 1 4)) package--builtin-versions)
 
@@ -16637,8 +16641,8 @@ the context of text formatting.
 
 ;;;***
 
-;;;### (autoloads nil "kkc" "international/kkc.el" (21670 32331 385639
-;;;;;;  720000))
+;;;### (autoloads nil "kkc" "international/kkc.el" (21978 61237 570488
+;;;;;;  269000))
 ;;; Generated autoloads from international/kkc.el
 
 (defvar kkc-after-update-conversion-functions nil "\
@@ -16660,7 +16664,7 @@ and the return value is the length of the conversion.
 
 ;;;***
 
-;;;### (autoloads nil "kmacro" "kmacro.el" (21670 32331 385639 720000))
+;;;### (autoloads nil "kmacro" "kmacro.el" (21953 58033 303058 929000))
 ;;; Generated autoloads from kmacro.el
  (global-set-key "\C-x(" 'kmacro-start-macro)
  (global-set-key "\C-x)" 'kmacro-end-macro)
@@ -17000,8 +17004,8 @@ See `linum-mode' for more information on Linum mode.
 
 ;;;***
 
-;;;### (autoloads nil "loadhist" "loadhist.el" (21670 32331 385639
-;;;;;;  720000))
+;;;### (autoloads nil "loadhist" "loadhist.el" (21964 28338 113695
+;;;;;;  749000))
 ;;; Generated autoloads from loadhist.el
 
 (autoload 'unload-feature "loadhist" "\
@@ -17408,8 +17412,8 @@ This function normally would be called when the message 
is sent.
 
 ;;;***
 
-;;;### (autoloads nil "mail-utils" "mail/mail-utils.el" (21670 32331
-;;;;;;  385639 720000))
+;;;### (autoloads nil "mail-utils" "mail/mail-utils.el" (21964 28338
+;;;;;;  125695 749000))
 ;;; Generated autoloads from mail/mail-utils.el
 
 (defvar mail-use-rfc822 nil "\
@@ -17850,8 +17854,8 @@ recursion depth in the minibuffer prompt.  This is only 
useful if
 
 ;;;***
 
-;;;### (autoloads nil "message" "gnus/message.el" (21855 576 917950
-;;;;;;  620000))
+;;;### (autoloads nil "message" "gnus/message.el" (21989 31537 871825
+;;;;;;  721000))
 ;;; 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)
@@ -18033,8 +18037,8 @@ Major mode for editing MetaPost sources.
 
 ;;;***
 
-;;;### (autoloads nil "metamail" "mail/metamail.el" (21670 32331
-;;;;;;  385639 720000))
+;;;### (autoloads nil "metamail" "mail/metamail.el" (21980 16567
+;;;;;;  769544 893000))
 ;;; Generated autoloads from mail/metamail.el
 
 (autoload 'metamail-interpret-header "metamail" "\
@@ -18065,7 +18069,7 @@ redisplayed as output is inserted.
 \(fn &optional VIEWMODE BUFFER NODISPLAY)" t nil)
 
 (autoload 'metamail-region "metamail" "\
-Process current region through 'metamail'.
+Process current region through `metamail'.
 Optional argument VIEWMODE specifies the value of the
 EMACS_VIEW_MODE environment variable (defaulted to 1).
 Optional argument BUFFER specifies a buffer to be filled (nil
@@ -18168,7 +18172,7 @@ delete the draft message.
 
 ;;;***
 
-;;;### (autoloads nil "mh-e" "mh-e/mh-e.el" (21670 32331 385639 720000))
+;;;### (autoloads nil "mh-e" "mh-e/mh-e.el" (21989 31537 923825 721000))
 ;;; Generated autoloads from mh-e/mh-e.el
 (push (purecopy '(mh-e 8 6)) package--builtin-versions)
 
@@ -18527,8 +18531,8 @@ Insert file contents of URL using `mm-url-program'.
 
 ;;;***
 
-;;;### (autoloads nil "mm-uu" "gnus/mm-uu.el" (21670 32331 385639
-;;;;;;  720000))
+;;;### (autoloads nil "mm-uu" "gnus/mm-uu.el" (21989 31537 875825
+;;;;;;  721000))
 ;;; Generated autoloads from gnus/mm-uu.el
 
 (autoload 'mm-uu-dissect "mm-uu" "\
@@ -18629,8 +18633,8 @@ body) or \"attachment\" (separate from the body).
 
 ;;;***
 
-;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (21891 60465
-;;;;;;  823679 523000))
+;;;### (autoloads nil "mode-local" "cedet/mode-local.el" (21989 31537
+;;;;;;  763825 721000))
 ;;; Generated autoloads from cedet/mode-local.el
 
 (put 'define-overloadable-function 'doc-string-elt 3)
@@ -18671,8 +18675,8 @@ followed by the first character of the construct.
 
 ;;;***
 
-;;;### (autoloads nil "morse" "play/morse.el" (21670 32331 385639
-;;;;;;  720000))
+;;;### (autoloads nil "morse" "play/morse.el" (21980 16567 969544
+;;;;;;  893000))
 ;;; Generated autoloads from play/morse.el
 
 (autoload 'morse-region "morse" "\
@@ -18745,7 +18749,7 @@ To test this function, evaluate:
 
 ;;;***
 
-;;;### (autoloads nil "mpc" "mpc.el" (21670 32331 385639 720000))
+;;;### (autoloads nil "mpc" "mpc.el" (21980 16567 797544 893000))
 ;;; Generated autoloads from mpc.el
 
 (autoload 'mpc "mpc" "\
@@ -18765,7 +18769,7 @@ Multiplication puzzle with GNU Emacs.
 
 ;;;***
 
-;;;### (autoloads nil "msb" "msb.el" (21670 32331 385639 720000))
+;;;### (autoloads nil "msb" "msb.el" (21978 61237 622488 269000))
 ;;; Generated autoloads from msb.el
 
 (defvar msb-mode nil "\
@@ -18790,8 +18794,8 @@ different buffer menu using the function `msb'.
 
 ;;;***
 
-;;;### (autoloads nil "mule-diag" "international/mule-diag.el" (21862
-;;;;;;  60209 748658 481000))
+;;;### (autoloads nil "mule-diag" "international/mule-diag.el" (21978
+;;;;;;  61237 582488 269000))
 ;;; Generated autoloads from international/mule-diag.el
 
 (autoload 'list-character-sets "mule-diag" "\
@@ -19288,8 +19292,8 @@ asynchronously, if possible.
 
 ;;;***
 
-;;;### (autoloads nil "newst-backend" "net/newst-backend.el" (21670
-;;;;;;  32331 385639 720000))
+;;;### (autoloads nil "newst-backend" "net/newst-backend.el" (21980
+;;;;;;  16567 809544 893000))
 ;;; Generated autoloads from net/newst-backend.el
 
 (autoload 'newsticker-running-p "newst-backend" "\
@@ -19311,7 +19315,7 @@ Run `newsticker-start-hook' if newsticker was not 
running already.
 ;;;***
 
 ;;;### (autoloads nil "newst-plainview" "net/newst-plainview.el"
-;;;;;;  (21670 32331 385639 720000))
+;;;;;;  (21980 16567 809544 893000))
 ;;; Generated autoloads from net/newst-plainview.el
 
 (autoload 'newsticker-plainview "newst-plainview" "\
@@ -19353,8 +19357,8 @@ running already.
 
 ;;;***
 
-;;;### (autoloads nil "newst-treeview" "net/newst-treeview.el" (21888
-;;;;;;  41565 443258 439000))
+;;;### (autoloads nil "newst-treeview" "net/newst-treeview.el" (21978
+;;;;;;  61237 654488 269000))
 ;;; Generated autoloads from net/newst-treeview.el
 
 (autoload 'newsticker-treeview "newst-treeview" "\
@@ -19411,7 +19415,7 @@ Generate NOV databases in all nnml directories.
 
 ;;;***
 
-;;;### (autoloads nil "novice" "novice.el" (21670 32331 385639 720000))
+;;;### (autoloads nil "novice" "novice.el" (21985 34484 234705 925000))
 ;;; Generated autoloads from novice.el
 
 (define-obsolete-variable-alias 'disabled-command-hook 
'disabled-command-function "22.1")
@@ -19551,8 +19555,8 @@ the variable `nxml-enabled-unicode-blocks'.
 
 ;;;***
 
-;;;### (autoloads nil "octave" "progmodes/octave.el" (21888 47234
-;;;;;;  298945 440000))
+;;;### (autoloads nil "octave" "progmodes/octave.el" (21988 10682
+;;;;;;  41624 461000))
 ;;; Generated autoloads from progmodes/octave.el
 
 (autoload 'octave-mode "octave" "\
@@ -19625,7 +19629,7 @@ Coloring:
 
 ;;;***
 
-;;;### (autoloads nil "org" "org/org.el" (21948 40114 382686 453000))
+;;;### (autoloads nil "org" "org/org.el" (21988 10682 25624 461000))
 ;;; Generated autoloads from org/org.el
 
 (autoload 'org-babel-do-load-languages "org" "\
@@ -19846,8 +19850,8 @@ Call the customize function with org as argument.
 
 ;;;***
 
-;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (21862 60209
-;;;;;;  818658 502000))
+;;;### (autoloads nil "org-agenda" "org/org-agenda.el" (21988 10681
+;;;;;;  989624 461000))
 ;;; Generated autoloads from org/org-agenda.el
 
 (autoload 'org-toggle-sticky-agenda "org-agenda" "\
@@ -20120,8 +20124,8 @@ to override `appt-message-warning-time'.
 
 ;;;***
 
-;;;### (autoloads nil "org-capture" "org/org-capture.el" (21855 577
-;;;;;;  287944 835000))
+;;;### (autoloads nil "org-capture" "org/org-capture.el" (21988 10681
+;;;;;;  989624 461000))
 ;;; Generated autoloads from org/org-capture.el
 
 (autoload 'org-capture-string "org-capture" "\
@@ -20227,8 +20231,8 @@ Turn on or update column view in the agenda.
 
 ;;;***
 
-;;;### (autoloads nil "org-compat" "org/org-compat.el" (21852 24381
-;;;;;;  787238 943000))
+;;;### (autoloads nil "org-compat" "org/org-compat.el" (21988 10681
+;;;;;;  989624 461000))
 ;;; Generated autoloads from org/org-compat.el
 
 (autoload 'org-check-version "org-compat" "\
@@ -20267,8 +20271,8 @@ The Git version of org-mode.
 
 ;;;***
 
-;;;### (autoloads nil "outline" "outline.el" (21720 38720 956749
-;;;;;;  443000))
+;;;### (autoloads nil "outline" "outline.el" (21981 37426 663399
+;;;;;;  97000))
 ;;; Generated autoloads from outline.el
 (put 'outline-regexp 'safe-local-variable 'stringp)
 (put 'outline-heading-end-regexp 'safe-local-variable 'stringp)
@@ -20311,8 +20315,8 @@ See the command `outline-mode' for more information on 
this mode.
 
 ;;;***
 
-;;;### (autoloads nil "package" "emacs-lisp/package.el" (21930 10161
-;;;;;;  970828 320000))
+;;;### (autoloads nil "package" "emacs-lisp/package.el" (21978 61237
+;;;;;;  494488 269000))
 ;;; Generated autoloads from emacs-lisp/package.el
 (push (purecopy '(package 1 0 1)) package--builtin-versions)
 
@@ -20464,8 +20468,8 @@ unknown are returned as nil.
 
 ;;;***
 
-;;;### (autoloads nil "pascal" "progmodes/pascal.el" (21670 32331
-;;;;;;  385639 720000))
+;;;### (autoloads nil "pascal" "progmodes/pascal.el" (21974 64192
+;;;;;;  644009 993000))
 ;;; Generated autoloads from progmodes/pascal.el
 
 (autoload 'pascal-mode "pascal" "\
@@ -20536,8 +20540,8 @@ Check if KEY is in the cache.
 
 ;;;***
 
-;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (21888 49775
-;;;;;;  904181 796000))
+;;;### (autoloads nil "pcase" "emacs-lisp/pcase.el" (21980 16567
+;;;;;;  509544 893000))
 ;;; Generated autoloads from emacs-lisp/pcase.el
 
 (autoload 'pcase "pcase" "\
@@ -20549,8 +20553,8 @@ Patterns can take the following forms:
   SYMBOL       matches anything and binds it to SYMBOL.
   (or PAT...)  matches if any of the patterns matches.
   (and PAT...) matches if all the patterns match.
-  'VAL         matches if the object is `equal' to VAL
-  ATOM         is a shorthand for 'ATOM.
+  \\='VAL              matches if the object is `equal' to VAL
+  ATOM         is a shorthand for \\='ATOM.
                   ATOM can be a keyword, an integer, or a string.
   (pred FUN)   matches if FUN applied to the object returns non-nil.
   (guard BOOLEXP)      matches if BOOLEXP evaluates to non-nil.
@@ -20638,8 +20642,8 @@ to this macro.
 
 ;;;***
 
-;;;### (autoloads nil "pcmpl-cvs" "pcmpl-cvs.el" (21857 42300 397266
-;;;;;;  599000))
+;;;### (autoloads nil "pcmpl-cvs" "pcmpl-cvs.el" (21980 16567 953544
+;;;;;;  893000))
 ;;; Generated autoloads from pcmpl-cvs.el
 
 (autoload 'pcomplete/cvs "pcmpl-cvs" "\
@@ -20765,8 +20769,8 @@ Includes files as well as host names followed by a 
colon.
 
 ;;;***
 
-;;;### (autoloads nil "pcmpl-x" "pcmpl-x.el" (21670 32331 385639
-;;;;;;  720000))
+;;;### (autoloads nil "pcmpl-x" "pcmpl-x.el" (21980 16567 953544
+;;;;;;  893000))
 ;;; Generated autoloads from pcmpl-x.el
 
 (autoload 'pcomplete/tlmgr "pcmpl-x" "\
@@ -20776,7 +20780,7 @@ Completion for the `tlmgr' command.
 
 (autoload 'pcomplete/ack "pcmpl-x" "\
 Completion for the `ack' command.
-Start an argument with '-' to complete short options and '--' for
+Start an argument with `-' to complete short options and `--' for
 long options.
 
 \(fn)" nil nil)
@@ -20790,8 +20794,8 @@ Completion for the `ag' command.
 
 ;;;***
 
-;;;### (autoloads nil "pcomplete" "pcomplete.el" (21688 62278 418203
-;;;;;;  119000))
+;;;### (autoloads nil "pcomplete" "pcomplete.el" (21980 16567 953544
+;;;;;;  893000))
 ;;; Generated autoloads from pcomplete.el
 
 (autoload 'pcomplete "pcomplete" "\
@@ -20848,7 +20852,7 @@ Setup `shell-mode' to use pcomplete.
 
 ;;;***
 
-;;;### (autoloads nil "pcvs" "vc/pcvs.el" (21670 32331 885635 586000))
+;;;### (autoloads nil "pcvs" "vc/pcvs.el" (21985 34484 302705 925000))
 ;;; Generated autoloads from vc/pcvs.el
 
 (autoload 'cvs-checkout "pcvs" "\
@@ -21075,8 +21079,8 @@ they are not by default assigned to keys.
 
 ;;;***
 
-;;;### (autoloads nil "pinentry" "net/pinentry.el" (21890 39605 414073
-;;;;;;  663000))
+;;;### (autoloads nil "pinentry" "net/pinentry.el" (21972 22452 338264
+;;;;;;  357000))
 ;;; Generated autoloads from net/pinentry.el
 (push (purecopy '(pinentry 0 1)) package--builtin-versions)
 
@@ -21134,7 +21138,7 @@ pong-mode keybindings:\\<pong-mode-map>
 
 ;;;***
 
-;;;### (autoloads nil "pop3" "gnus/pop3.el" (21670 32331 385639 720000))
+;;;### (autoloads nil "pop3" "gnus/pop3.el" (21974 64192 580009 993000))
 ;;; Generated autoloads from gnus/pop3.el
 
 (autoload 'pop3-movemail "pop3" "\
@@ -21196,8 +21200,8 @@ Ignores leading comment characters.
 
 ;;;***
 
-;;;### (autoloads nil "printing" "printing.el" (21670 32331 385639
-;;;;;;  720000))
+;;;### (autoloads nil "printing" "printing.el" (21981 37426 679399
+;;;;;;  97000))
 ;;; Generated autoloads from printing.el
 (push (purecopy '(printing 6 9 3)) package--builtin-versions)
 
@@ -21785,7 +21789,7 @@ are both set to t.
 
 ;;;***
 
-;;;### (autoloads nil "proced" "proced.el" (21670 32331 385639 720000))
+;;;### (autoloads nil "proced" "proced.el" (21981 37426 683399 97000))
 ;;; Generated autoloads from proced.el
 
 (autoload 'proced "proced" "\
@@ -21832,8 +21836,8 @@ Open profile FILENAME.
 
 ;;;***
 
-;;;### (autoloads nil "project" "progmodes/project.el" (21947 19252
-;;;;;;  629252 749000))
+;;;### (autoloads nil "project" "progmodes/project.el" (21960 31281
+;;;;;;  344212 153000))
 ;;; Generated autoloads from progmodes/project.el
 
 (autoload 'project-current "project" "\
@@ -21843,8 +21847,8 @@ Return the project instance in DIR or 
`default-directory'.
 
 ;;;***
 
-;;;### (autoloads nil "prolog" "progmodes/prolog.el" (21670 32331
-;;;;;;  385639 720000))
+;;;### (autoloads nil "prolog" "progmodes/prolog.el" (21955 13362
+;;;;;;  392569 401000))
 ;;; Generated autoloads from progmodes/prolog.el
 
 (autoload 'prolog-mode "prolog" "\
@@ -21935,8 +21939,8 @@ Typing \\<ps-run-mode-map>\\[ps-run-goto-error] when 
the cursor is at the number
 
 ;;;***
 
-;;;### (autoloads nil "ps-print" "ps-print.el" (21948 40114 490686
-;;;;;;  453000))
+;;;### (autoloads nil "ps-print" "ps-print.el" (21981 37426 699399
+;;;;;;  97000))
 ;;; Generated autoloads from ps-print.el
 (push (purecopy '(ps-print 7 3 5)) package--builtin-versions)
 
@@ -22133,8 +22137,8 @@ If EXTENSION is any other symbol, it is ignored.
 
 ;;;***
 
-;;;### (autoloads nil "pulse" "cedet/pulse.el" (21834 32653 960520
-;;;;;;  248000))
+;;;### (autoloads nil "pulse" "cedet/pulse.el" (21968 25395 287570
+;;;;;;  741000))
 ;;; Generated autoloads from cedet/pulse.el
 (push (purecopy '(pulse 1 0)) package--builtin-versions)
 
@@ -22152,10 +22156,10 @@ Optional argument FACE specifies the face to do the 
highlighting.
 
 ;;;***
 
-;;;### (autoloads nil "python" "progmodes/python.el" (21915 42801
-;;;;;;  68409 735000))
+;;;### (autoloads nil "python" "progmodes/python.el" (21980 16568
+;;;;;;  37544 893000))
 ;;; Generated autoloads from progmodes/python.el
-(push (purecopy '(python 0 24 5)) package--builtin-versions)
+(push (purecopy '(python 0 25 1)) package--builtin-versions)
 
 (add-to-list 'auto-mode-alist (cons (purecopy "\\.py\\'") 'python-mode))
 
@@ -22209,8 +22213,8 @@ them into characters should be done separately.
 
 ;;;***
 
-;;;### (autoloads nil "quail" "international/quail.el" (21829 62890
-;;;;;;  321199 861000))
+;;;### (autoloads nil "quail" "international/quail.el" (21988 10681
+;;;;;;  981624 461000))
 ;;; Generated autoloads from international/quail.el
 
 (autoload 'quail-title "quail" "\
@@ -22440,8 +22444,8 @@ of each directory.
 
 ;;;***
 
-;;;### (autoloads nil "quail/hangul" "leim/quail/hangul.el" (21770
-;;;;;;  41522 196747 399000))
+;;;### (autoloads nil "quail/hangul" "leim/quail/hangul.el" (21953
+;;;;;;  58033 331058 929000))
 ;;; Generated autoloads from leim/quail/hangul.el
 
 (autoload 'hangul-input-method-activate "quail/hangul" "\
@@ -22540,8 +22544,8 @@ Display `quickurl-list' as a formatted list using 
`quickurl-list-mode'.
 
 ;;;***
 
-;;;### (autoloads nil "rcirc" "net/rcirc.el" (21930 10161 986828
-;;;;;;  320000))
+;;;### (autoloads nil "rcirc" "net/rcirc.el" (21980 16567 809544
+;;;;;;  893000))
 ;;; Generated autoloads from net/rcirc.el
 
 (autoload 'rcirc "rcirc" "\
@@ -22579,8 +22583,8 @@ if ARG is omitted or nil.
 
 ;;;***
 
-;;;### (autoloads nil "re-builder" "emacs-lisp/re-builder.el" (21670
-;;;;;;  32330 885624 725000))
+;;;### (autoloads nil "re-builder" "emacs-lisp/re-builder.el" (21976
+;;;;;;  19509 900430 241000))
 ;;; Generated autoloads from emacs-lisp/re-builder.el
 
 (defalias 'regexp-builder 're-builder)
@@ -22598,8 +22602,8 @@ matching parts of the target buffer will be highlighted.
 
 ;;;***
 
-;;;### (autoloads nil "recentf" "recentf.el" (21852 24381 997231
-;;;;;;  450000))
+;;;### (autoloads nil "recentf" "recentf.el" (21981 37426 699399
+;;;;;;  97000))
 ;;; Generated autoloads from recentf.el
 
 (defvar recentf-mode nil "\
@@ -22786,8 +22790,8 @@ For true \"word wrap\" behavior, use `visual-line-mode' 
instead.
 
 ;;;***
 
-;;;### (autoloads nil "reftex" "textmodes/reftex.el" (21833 60086
-;;;;;;  84775 646000))
+;;;### (autoloads nil "reftex" "textmodes/reftex.el" (21980 16640
+;;;;;;  469544 893000))
 ;;; Generated autoloads from textmodes/reftex.el
 (autoload 'reftex-citation "reftex-cite" nil t)
 (autoload 'reftex-all-document-files "reftex-parse")
@@ -23059,8 +23063,8 @@ the mode if ARG is omitted or nil.
 
 ;;;***
 
-;;;### (autoloads nil "ring" "emacs-lisp/ring.el" (21670 32330 885624
-;;;;;;  725000))
+;;;### (autoloads nil "ring" "emacs-lisp/ring.el" (21976 19509 900430
+;;;;;;  241000))
 ;;; Generated autoloads from emacs-lisp/ring.el
 
 (autoload 'ring-p "ring" "\
@@ -23075,8 +23079,8 @@ Make a ring that can contain SIZE elements.
 
 ;;;***
 
-;;;### (autoloads nil "rlogin" "net/rlogin.el" (21852 24381 727234
-;;;;;;  912000))
+;;;### (autoloads nil "rlogin" "net/rlogin.el" (21978 61237 654488
+;;;;;;  269000))
 ;;; Generated autoloads from net/rlogin.el
 
 (autoload 'rlogin "rlogin" "\
@@ -23120,8 +23124,8 @@ variable.
 
 ;;;***
 
-;;;### (autoloads nil "rmail" "mail/rmail.el" (21862 60482 540812
-;;;;;;  493000))
+;;;### (autoloads nil "rmail" "mail/rmail.el" (21989 31537 903825
+;;;;;;  721000))
 ;;; Generated autoloads from mail/rmail.el
 
 (defvar rmail-file-name (purecopy "~/RMAIL") "\
@@ -23318,8 +23322,8 @@ Set PASSWORD to be used for retrieving mail from a POP 
or IMAP server.
 
 ;;;***
 
-;;;### (autoloads nil "rmailout" "mail/rmailout.el" (21670 32331
-;;;;;;  385639 720000))
+;;;### (autoloads nil "rmailout" "mail/rmailout.el" (21989 31537
+;;;;;;  907825 721000))
 ;;; Generated autoloads from mail/rmailout.el
 (put 'rmail-output-file-alist 'risky-local-variable t)
 
@@ -23383,8 +23387,8 @@ than appending to it.  Deletes the message after 
writing if
 
 ;;;***
 
-;;;### (autoloads nil "rng-cmpct" "nxml/rng-cmpct.el" (21670 32331
-;;;;;;  385639 720000))
+;;;### (autoloads nil "rng-cmpct" "nxml/rng-cmpct.el" (21978 61237
+;;;;;;  666488 269000))
 ;;; Generated autoloads from nxml/rng-cmpct.el
 
 (autoload 'rng-c-load-schema "rng-cmpct" "\
@@ -23467,8 +23471,8 @@ must be equal.
 
 ;;;***
 
-;;;### (autoloads nil "robin" "international/robin.el" (21824 5851
-;;;;;;  711914 99000))
+;;;### (autoloads nil "robin" "international/robin.el" (21953 58033
+;;;;;;  303058 929000))
 ;;; Generated autoloads from international/robin.el
 
 (autoload 'robin-define-package "robin" "\
@@ -23537,8 +23541,8 @@ Toggle the use of ROT13 encoding for the current window.
 
 ;;;***
 
-;;;### (autoloads nil "rst" "textmodes/rst.el" (21852 24382 77263
-;;;;;;  112000))
+;;;### (autoloads nil "rst" "textmodes/rst.el" (21955 13362 436569
+;;;;;;  401000))
 ;;; Generated autoloads from textmodes/rst.el
  (add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode)))
 
@@ -23568,8 +23572,8 @@ for modes derived from Text mode, like Mail mode.
 
 ;;;***
 
-;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (21855
-;;;;;;  577 437945 800000))
+;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (21955
+;;;;;;  13362 400569 401000))
 ;;; Generated autoloads from progmodes/ruby-mode.el
 (push (purecopy '(ruby-mode 1 2)) package--builtin-versions)
 
@@ -23605,8 +23609,8 @@ if ARG is omitted or nil.
 
 ;;;***
 
-;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (21807 35879 352666
-;;;;;;  863000))
+;;;### (autoloads nil "rx" "emacs-lisp/rx.el" (21980 16567 509544
+;;;;;;  893000))
 ;;; Generated autoloads from emacs-lisp/rx.el
 
 (autoload 'rx-to-string "rx" "\
@@ -23924,8 +23928,8 @@ enclosed in `(and ...)'.
 
 ;;;***
 
-;;;### (autoloads nil "savehist" "savehist.el" (21670 32331 885635
-;;;;;;  586000))
+;;;### (autoloads nil "savehist" "savehist.el" (21981 37426 703399
+;;;;;;  97000))
 ;;; Generated autoloads from savehist.el
 (push (purecopy '(savehist 24)) package--builtin-versions)
 
@@ -24164,8 +24168,8 @@ Major mode for editing Wisent grammars.
 
 ;;;***
 
-;;;### (autoloads nil "sendmail" "mail/sendmail.el" (21861 39358
-;;;;;;  517945 150000))
+;;;### (autoloads nil "sendmail" "mail/sendmail.el" (21964 28338
+;;;;;;  141695 749000))
 ;;; Generated autoloads from mail/sendmail.el
 
 (defvar mail-from-style 'default "\
@@ -24446,14 +24450,14 @@ Like `mail' command, but display mail buffer in 
another frame.
 
 ;;;***
 
-;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (21909 4018 525671
-;;;;;;  120000))
+;;;### (autoloads nil "seq" "emacs-lisp/seq.el" (21982 58292 436758
+;;;;;;  717000))
 ;;; Generated autoloads from emacs-lisp/seq.el
-(push (purecopy '(seq 1 8)) package--builtin-versions)
+(push (purecopy '(seq 2 0)) package--builtin-versions)
 
 ;;;***
 
-;;;### (autoloads nil "server" "server.el" (21916 4736 887897 451000))
+;;;### (autoloads nil "server" "server.el" (21981 37426 703399 97000))
 ;;; Generated autoloads from server.el
 
 (put 'server-host 'risky-local-variable t)
@@ -24520,7 +24524,7 @@ only these files will be asked to be saved.
 
 ;;;***
 
-;;;### (autoloads nil "ses" "ses.el" (21855 577 487945 652000))
+;;;### (autoloads nil "ses" "ses.el" (21981 37426 711399 97000))
 ;;; Generated autoloads from ses.el
 
 (autoload 'ses-mode "ses" "\
@@ -24564,21 +24568,21 @@ formula:
 
 ;;;***
 
-;;;### (autoloads nil "sgml-mode" "textmodes/sgml-mode.el" (21939
-;;;;;;  25137 195448 264000))
+;;;### (autoloads nil "sgml-mode" "textmodes/sgml-mode.el" (21988
+;;;;;;  10682 97624 461000))
 ;;; Generated autoloads from textmodes/sgml-mode.el
 
 (autoload 'sgml-mode "sgml-mode" "\
 Major mode for editing SGML documents.
 Makes > match <.
-Keys <, &, SPC within <>, \", / and ' can be electric depending on
+Keys <, &, SPC within <>, \", / and \\=' can be electric depending on
 `sgml-quick-keys'.
 
 An argument of N to a tag-inserting command means to wrap it around
 the next N words.  In Transient Mark mode, when the mark is active,
 N defaults to -1, which means to wrap it around the current region.
 
-If you like upcased tags, put (setq sgml-transformation-function 'upcase)
+If you like upcased tags, put (setq sgml-transformation-function \\='upcase)
 in your init file.
 
 Use \\[sgml-validate] to validate your document with an SGML parser.
@@ -24622,7 +24626,7 @@ Images in many formats can be inlined with <img 
src=\"URL\">.
 If you mainly create your own documents, `sgml-specials' might be
 interesting.  But note that some HTML 2 browsers can't handle `&apos;'.
 To work around that, do:
-   (eval-after-load \"sgml-mode\" '(aset sgml-char-names ?' nil))
+   (eval-after-load \"sgml-mode\" '(aset sgml-char-names ?\\=' nil))
 
 \\{html-mode-map}
 
@@ -24630,8 +24634,8 @@ To work around that, do:
 
 ;;;***
 
-;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (21880
-;;;;;;  3758 862057 0))
+;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (21965
+;;;;;;  49202 339586 285000))
 ;;; Generated autoloads from progmodes/sh-script.el
 (push (purecopy '(sh-script 2 0 6)) package--builtin-versions)
 (put 'sh-shell 'safe-local-variable 'symbolp)
@@ -24694,8 +24698,8 @@ with your script for an edit-interpret-debug cycle.
 
 ;;;***
 
-;;;### (autoloads nil "shadow" "emacs-lisp/shadow.el" (21670 32330
-;;;;;;  885624 725000))
+;;;### (autoloads nil "shadow" "emacs-lisp/shadow.el" (21980 16567
+;;;;;;  509544 893000))
 ;;; Generated autoloads from emacs-lisp/shadow.el
 
 (autoload 'list-load-path-shadows "shadow" "\
@@ -24717,7 +24721,7 @@ For example, suppose `load-path' is set to
 
 and that each of these directories contains a file called XXX.el.  Then
 XXX.el in the site-lisp directory is referred to by all of:
-\(require 'XXX), (autoload .... \"XXX\"), (load-library \"XXX\") etc.
+\(require \\='XXX), (autoload .... \"XXX\"), (load-library \"XXX\") etc.
 
 The first XXX.el file prevents Emacs from seeing the second (unless
 the second is loaded explicitly via `load-file').
@@ -24848,8 +24852,8 @@ DOM should be a parse tree as generated by
 
 ;;;***
 
-;;;### (autoloads nil "sieve" "gnus/sieve.el" (21670 32331 385639
-;;;;;;  720000))
+;;;### (autoloads nil "sieve" "gnus/sieve.el" (21972 22452 270264
+;;;;;;  357000))
 ;;; Generated autoloads from gnus/sieve.el
 
 (autoload 'sieve-manage "sieve" "\
@@ -24939,8 +24943,8 @@ with no arguments, if that value is non-nil.
 
 ;;;***
 
-;;;### (autoloads nil "skeleton" "skeleton.el" (21939 25137 183448
-;;;;;;  264000))
+;;;### (autoloads nil "skeleton" "skeleton.el" (21980 16568 61544
+;;;;;;  893000))
 ;;; Generated autoloads from skeleton.el
 
 (defvar skeleton-filter-function 'identity "\
@@ -25442,7 +25446,7 @@ is non-nil, it also prints a message describing the 
number of deletions.
 
 ;;;***
 
-;;;### (autoloads nil "spam" "gnus/spam.el" (21832 3464 481922 546000))
+;;;### (autoloads nil "spam" "gnus/spam.el" (21981 37426 607399 97000))
 ;;; Generated autoloads from gnus/spam.el
 
 (autoload 'spam-initialize "spam" "\
@@ -25456,8 +25460,8 @@ installed through `spam-necessary-extra-headers'.
 
 ;;;***
 
-;;;### (autoloads nil "spam-report" "gnus/spam-report.el" (21670
-;;;;;;  32331 385639 720000))
+;;;### (autoloads nil "spam-report" "gnus/spam-report.el" (21989
+;;;;;;  31537 879825 721000))
 ;;; Generated autoloads from gnus/spam-report.el
 
 (autoload 'spam-report-process-queue "spam-report" "\
@@ -25540,8 +25544,8 @@ Return a vector containing the lines from 
`spook-phrases-file'.
 
 ;;;***
 
-;;;### (autoloads nil "sql" "progmodes/sql.el" (21765 23600 805241
-;;;;;;  145000))
+;;;### (autoloads nil "sql" "progmodes/sql.el" (21980 16568 41544
+;;;;;;  893000))
 ;;; Generated autoloads from progmodes/sql.el
 (push (purecopy '(sql 3 5)) package--builtin-versions)
 
@@ -25590,7 +25594,7 @@ Note that SQL doesn't have an escape character unless 
you specify
 one.  If you specify backslash as escape character in SQL, you
 must tell Emacs.  Here's how to do that in your init file:
 
-\(add-hook 'sql-mode-hook
+\(add-hook \\='sql-mode-hook
           (lambda ()
            (modify-syntax-entry ?\\\\ \".\" sql-mode-syntax-table)))
 
@@ -26015,7 +26019,7 @@ Run vsql as an inferior process.
 ;;;***
 
 ;;;### (autoloads nil "srecode/srt-mode" "cedet/srecode/srt-mode.el"
-;;;;;;  (21891 60465 835679 523000))
+;;;;;;  (21978 61237 382488 269000))
 ;;; Generated autoloads from cedet/srecode/srt-mode.el
 
 (autoload 'srecode-template-mode "srecode/srt-mode" "\
@@ -26051,8 +26055,8 @@ GnuTLS requires a port number.
 
 ;;;***
 
-;;;### (autoloads nil "strokes" "strokes.el" (21670 32331 885635
-;;;;;;  586000))
+;;;### (autoloads nil "strokes" "strokes.el" (21981 37426 735399
+;;;;;;  97000))
 ;;; Generated autoloads from strokes.el
 
 (autoload 'strokes-global-set-stroke "strokes" "\
@@ -26370,8 +26374,8 @@ The variable `tab-width' controls the spacing of tab 
stops.
 
 ;;;***
 
-;;;### (autoloads nil "table" "textmodes/table.el" (21948 40114 526686
-;;;;;;  453000))
+;;;### (autoloads nil "table" "textmodes/table.el" (21974 64192 704009
+;;;;;;  993000))
 ;;; Generated autoloads from textmodes/table.el
 
 (autoload 'table-insert "table" "\
@@ -26684,15 +26688,15 @@ ORIENTATION is a symbol either horizontally or 
vertically.
 
 (autoload 'table-justify "table" "\
 Justify contents of a cell, a row of cells or a column of cells.
-WHAT is a symbol 'cell, 'row or 'column.  JUSTIFY is a symbol 'left,
-'center, 'right, 'top, 'middle, 'bottom or 'none.
+WHAT is a symbol ‘cell’, ‘row’ or ‘column’.  JUSTIFY is a symbol
+‘left’, ‘center’, ‘right’, ‘top’, ‘middle’, ‘bottom’ or ‘none’.
 
 \(fn WHAT JUSTIFY)" t nil)
 
 (autoload 'table-justify-cell "table" "\
 Justify cell contents.
-JUSTIFY is a symbol 'left, 'center or 'right for horizontal, or 'top,
-'middle, 'bottom or 'none for vertical.  When optional PARAGRAPH is
+JUSTIFY is a symbol ‘left’, ‘center’ or ‘right’ for horizontal, or ‘top’,
+‘middle’, ‘bottom’ or ‘none’ for vertical.  When optional PARAGRAPH is
 non-nil the justify operation is limited to the current paragraph,
 otherwise the entire cell contents is justified.
 
@@ -26700,15 +26704,15 @@ otherwise the entire cell contents is justified.
 
 (autoload 'table-justify-row "table" "\
 Justify cells of a row.
-JUSTIFY is a symbol 'left, 'center or 'right for horizontal, or top,
-'middle, 'bottom or 'none for vertical.
+JUSTIFY is a symbol ‘left’, ‘center’ or ‘right’ for horizontal,
+or ‘top’, ‘middle’, ‘bottom’ or ‘none’ for vertical.
 
 \(fn JUSTIFY)" t nil)
 
 (autoload 'table-justify-column "table" "\
 Justify cells of a column.
-JUSTIFY is a symbol 'left, 'center or 'right for horizontal, or top,
-'middle, 'bottom or 'none for vertical.
+JUSTIFY is a symbol ‘left’, ‘center’ or ‘right’ for horizontal,
+or ‘top’, ‘middle’, ‘bottom’ or ‘none’ for vertical.
 
 \(fn JUSTIFY)" t nil)
 
@@ -26781,8 +26785,8 @@ INTERVAL is the number of cells to travel between 
sequence element
 insertion which is normally 1.  When zero or less is given for
 INTERVAL it is interpreted as number of cells per row so that sequence
 is placed straight down vertically as long as the table's cell
-structure is uniform.  JUSTIFY is one of the symbol 'left, 'center or
-'right, that specifies justification of the inserted string.
+structure is uniform.  JUSTIFY is a symbol ‘left’, ‘center’ or
+‘right’ that specifies justification of the inserted string.
 
 Example:
 
@@ -27056,7 +27060,7 @@ Normally input is edited in Emacs and sent a line at a 
time.
 
 ;;;***
 
-;;;### (autoloads nil "term" "term.el" (21798 49947 262665 54000))
+;;;### (autoloads nil "term" "term.el" (21953 58033 491058 929000))
 ;;; Generated autoloads from term.el
 
 (autoload 'make-term "term" "\
@@ -27098,8 +27102,8 @@ use in that buffer.
 
 ;;;***
 
-;;;### (autoloads nil "testcover" "emacs-lisp/testcover.el" (21834
-;;;;;;  29303 521933 754000))
+;;;### (autoloads nil "testcover" "emacs-lisp/testcover.el" (21976
+;;;;;;  19509 908430 241000))
 ;;; Generated autoloads from emacs-lisp/testcover.el
 
 (autoload 'testcover-this-defun "testcover" "\
@@ -27135,8 +27139,8 @@ tetris-mode keybindings:
 
 ;;;***
 
-;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (21862 60209
-;;;;;;  908658 140000))
+;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (21980 16568
+;;;;;;  85544 893000))
 ;;; Generated autoloads from textmodes/tex-mode.el
 
 (defvar tex-shell-file-name nil "\
@@ -27299,7 +27303,7 @@ says which mode to use.
 Major mode for editing files of input for plain TeX.
 Makes $ and } display the characters they match.
 Makes \" insert \\=`\\=` when it seems to be the beginning of a quotation,
-and '' when it appears to be the end; it inserts \" only after a \\.
+and \\='\\=' when it appears to be the end; it inserts \" only after a \\.
 
 Use \\[tex-region] to run TeX on the current region, plus a \"header\"
 copied from the top of the file (containing macro definitions, etc.),
@@ -27342,7 +27346,7 @@ special subshell is initiated, the hook 
`tex-shell-hook' is run.
 Major mode for editing files of input for LaTeX.
 Makes $ and } display the characters they match.
 Makes \" insert \\=`\\=` when it seems to be the beginning of a quotation,
-and '' when it appears to be the end; it inserts \" only after a \\.
+and \\='\\=' when it appears to be the end; it inserts \" only after a \\.
 
 Use \\[tex-region] to run LaTeX on the current region, plus the preamble
 copied from the top of the file (containing \\documentstyle, etc.),
@@ -27385,7 +27389,7 @@ subshell is initiated, `tex-shell-hook' is run.
 Major mode for editing files of input for SliTeX.
 Makes $ and } display the characters they match.
 Makes \" insert \\=`\\=` when it seems to be the beginning of a quotation,
-and '' when it appears to be the end; it inserts \" only after a \\.
+and \\='\\=' when it appears to be the end; it inserts \" only after a \\.
 
 Use \\[tex-region] to run SliTeX on the current region, plus the preamble
 copied from the top of the file (containing \\documentstyle, etc.),
@@ -27437,8 +27441,8 @@ Major mode to edit DocTeX files.
 
 ;;;***
 
-;;;### (autoloads nil "texinfmt" "textmodes/texinfmt.el" (21907 48688
-;;;;;;  825360 195000))
+;;;### (autoloads nil "texinfmt" "textmodes/texinfmt.el" (21988 10682
+;;;;;;  101624 461000))
 ;;; Generated autoloads from textmodes/texinfmt.el
 
 (autoload 'texinfo-format-buffer "texinfmt" "\
@@ -27477,8 +27481,8 @@ if large.  You can use `Info-split' to do this manually.
 
 ;;;***
 
-;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (21862 60209
-;;;;;;  928657 362000))
+;;;### (autoloads nil "texinfo" "textmodes/texinfo.el" (21980 16568
+;;;;;;  89544 893000))
 ;;; Generated autoloads from textmodes/texinfo.el
 
 (defvar texinfo-open-quote (purecopy "``") "\
@@ -27655,7 +27659,7 @@ Return the Lisp list at point, or nil if none is found.
 
 ;;;***
 
-;;;### (autoloads nil "thumbs" "thumbs.el" (21670 32331 885635 586000))
+;;;### (autoloads nil "thumbs" "thumbs.el" (21974 64192 708009 993000))
 ;;; Generated autoloads from thumbs.el
 
 (autoload 'thumbs-find-thumb "thumbs" "\
@@ -27892,8 +27896,8 @@ Return a string giving the duration of the Emacs 
initialization.
 
 ;;;***
 
-;;;### (autoloads nil "time-date" "calendar/time-date.el" (21670
-;;;;;;  32330 885624 725000))
+;;;### (autoloads nil "time-date" "calendar/time-date.el" (21976
+;;;;;;  19509 736430 241000))
 ;;; Generated autoloads from calendar/time-date.el
 
 (autoload 'date-to-time "time-date" "\
@@ -27996,8 +28000,8 @@ Convert the time interval in seconds to a short string.
 
 ;;;***
 
-;;;### (autoloads nil "time-stamp" "time-stamp.el" (21942 1330 821986
-;;;;;;  820000))
+;;;### (autoloads nil "time-stamp" "time-stamp.el" (21980 16568 89544
+;;;;;;  893000))
 ;;; 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)
@@ -28012,7 +28016,7 @@ Convert the time interval in seconds to a short string.
 Update the time stamp string(s) in the buffer.
 A template in a file can be automatically updated with a new time stamp
 every time you save the file.  Add this line to your init file:
-    (add-hook 'before-save-hook 'time-stamp)
+    (add-hook \\='before-save-hook \\='time-stamp)
 or customize `before-save-hook' through Custom.
 Normally the template must appear in the first 8 lines of a file and
 look like one of the following:
@@ -28037,8 +28041,8 @@ With ARG, turn time stamping on if and only if arg is 
positive.
 
 ;;;***
 
-;;;### (autoloads nil "timeclock" "calendar/timeclock.el" (21670
-;;;;;;  32330 885624 725000))
+;;;### (autoloads nil "timeclock" "calendar/timeclock.el" (21980
+;;;;;;  16567 425544 893000))
 ;;; Generated autoloads from calendar/timeclock.el
 (push (purecopy '(timeclock 2 6 1)) package--builtin-versions)
 
@@ -28148,7 +28152,7 @@ relative only to the time worked today, and not to past 
time.
 ;;;***
 
 ;;;### (autoloads nil "titdic-cnv" "international/titdic-cnv.el"
-;;;;;;  (21874 379 470923 336000))
+;;;;;;  (21988 10681 981624 461000))
 ;;; Generated autoloads from international/titdic-cnv.el
 
 (autoload 'titdic-convert "titdic-cnv" "\
@@ -28212,8 +28216,8 @@ Its value should be an event that has a binding in MENU.
 
 ;;;***
 
-;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (21893
-;;;;;;  15793 471985 415000))
+;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (21985
+;;;;;;  34484 214705 925000))
 ;;; Generated autoloads from calendar/todo-mode.el
 
 (autoload 'todo-show "todo-mode" "\
@@ -28411,8 +28415,8 @@ the output buffer or changing the window configuration.
 
 ;;;***
 
-;;;### (autoloads nil "tramp" "net/tramp.el" (21945 63921 461174
-;;;;;;  555000))
+;;;### (autoloads nil "tramp" "net/tramp.el" (21981 37426 655399
+;;;;;;  97000))
 ;;; Generated autoloads from net/tramp.el
 
 (defvar tramp-mode t "\
@@ -28538,8 +28542,8 @@ Discard Tramp from loading remote files.
 
 ;;;***
 
-;;;### (autoloads nil "tutorial" "tutorial.el" (21670 32331 885635
-;;;;;;  586000))
+;;;### (autoloads nil "tutorial" "tutorial.el" (21978 61237 774488
+;;;;;;  269000))
 ;;; Generated autoloads from tutorial.el
 
 (autoload 'help-with-tutorial "tutorial" "\
@@ -28574,8 +28578,8 @@ resumed later.
 
 ;;;***
 
-;;;### (autoloads nil "two-column" "textmodes/two-column.el" (21670
-;;;;;;  32331 885635 586000))
+;;;### (autoloads nil "two-column" "textmodes/two-column.el" (21988
+;;;;;;  10682 101624 461000))
 ;;; Generated autoloads from textmodes/two-column.el
  (autoload '2C-command "two-column" () t 'keymap)
  (global-set-key "\C-x6" '2C-command)
@@ -28622,8 +28626,8 @@ First column's text    sSs  Second column's text
 
 ;;;***
 
-;;;### (autoloads nil "type-break" "type-break.el" (21855 577 527945
-;;;;;;  248000))
+;;;### (autoloads nil "type-break" "type-break.el" (21976 19510 152430
+;;;;;;  241000))
 ;;; Generated autoloads from type-break.el
 
 (defvar type-break-mode nil "\
@@ -28936,8 +28940,8 @@ no further processing).  URL is either a string or a 
parsed URL.
 
 ;;;***
 
-;;;### (autoloads nil "url-auth" "url/url-auth.el" (21670 32331 885635
-;;;;;;  586000))
+;;;### (autoloads nil "url-auth" "url/url-auth.el" (21989 31537 943825
+;;;;;;  721000))
 ;;; Generated autoloads from url/url-auth.el
 
 (autoload 'url-get-authentication "url-auth" "\
@@ -28948,12 +28952,12 @@ URL    is the url you are requesting authorization 
to.  This can be either a
        string representing the URL, or the parsed representation returned by
        `url-generic-parse-url'
 REALM  is the realm at a specific site we are looking for.  This should be a
-       string specifying the exact realm, or nil or the symbol 'any' to
+       string specifying the exact realm, or nil or the symbol `any' to
        specify that the filename portion of the URL should be used as the
        realm
 TYPE   is the type of authentication to be returned.  This is either a string
-       representing the type (basic, digest, etc), or nil or the symbol 'any'
-       to specify that any authentication is acceptable.  If requesting 'any'
+       representing the type (basic, digest, etc), or nil or the symbol `any'
+       to specify that any authentication is acceptable.  If requesting `any'
        the strongest matching authentication will be returned.  If this is
        wrong, it's no big deal, the error from the server will specify exactly
        what type of auth to use
@@ -29543,8 +29547,8 @@ This uses `url-current-object', set locally to the 
buffer.
 
 ;;;***
 
-;;;### (autoloads nil "userlock" "userlock.el" (21670 32331 885635
-;;;;;;  586000))
+;;;### (autoloads nil "userlock" "userlock.el" (21976 19510 152430
+;;;;;;  241000))
 ;;; Generated autoloads from userlock.el
 
 (autoload 'ask-user-about-lock "userlock" "\
@@ -29997,8 +30001,8 @@ Name of the format file in a .bzr directory.")
 
 ;;;***
 
-;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (21826 49707 480493
-;;;;;;  554000))
+;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (21985 34484 302705
+;;;;;;  925000))
 ;;; Generated autoloads from vc/vc-cvs.el
 (defun vc-cvs-registered (f)
   "Return non-nil if file F is registered with CVS."
@@ -30145,8 +30149,8 @@ For a description of possible values, see 
`vc-check-master-templates'.")
 
 ;;;***
 
-;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (21916 4736 891897
-;;;;;;  451000))
+;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (21980 16568 97544
+;;;;;;  893000))
 ;;; Generated autoloads from vc/vc-svn.el
  (defun vc-svn-registered (f)
   (let ((admin-dir (cond ((and (eq system-type 'windows-nt)
@@ -30219,7 +30223,7 @@ Key bindings:
 ;;;***
 
 ;;;### (autoloads nil "verilog-mode" "progmodes/verilog-mode.el"
-;;;;;;  (21862 60209 898658 614000))
+;;;;;;  (21988 10682 49624 461000))
 ;;; Generated autoloads from progmodes/verilog-mode.el
 
 (autoload 'verilog-mode "verilog-mode" "\
@@ -30358,8 +30362,8 @@ Key bindings specific to `verilog-mode-map' are:
 
 ;;;***
 
-;;;### (autoloads nil "vhdl-mode" "progmodes/vhdl-mode.el" (21948
-;;;;;;  40114 482686 453000))
+;;;### (autoloads nil "vhdl-mode" "progmodes/vhdl-mode.el" (21988
+;;;;;;  10682 57624 461000))
 ;;; Generated autoloads from progmodes/vhdl-mode.el
 
 (autoload 'vhdl-mode "vhdl-mode" "\
@@ -30470,7 +30474,7 @@ Usage:
     according to option `vhdl-argument-list-indent'.
 
       If option `vhdl-indent-tabs-mode' is nil, spaces are used instead of
-    tabs.  `M-x tabify' and `M-x untabify' allow to convert spaces to tabs
+    tabs.  `\\[tabify]' and `\\[untabify]' allow to convert spaces to tabs
     and vice versa.
 
       Syntax-based indentation can be very slow in large files.  Option
@@ -30781,7 +30785,7 @@ Usage:
     `vhdl-highlight-translate-off' is non-nil.
 
       For documentation and customization of the used colors see
-    customization group `vhdl-highlight-faces' (`M-x customize-group').  For
+    customization group `vhdl-highlight-faces' (`\\[customize-group]').  For
     highlighting of matching parenthesis, see customization group
     `paren-showing'.  Automatic buffer highlighting is turned on/off by
     option `global-font-lock-mode' (`font-lock-auto-fontify' in XEmacs).
@@ -30841,14 +30845,14 @@ Usage:
     sessions using the \"Save Options\" menu entry.
 
       Options and their detailed descriptions can also be accessed by using
-    the \"Customize\" menu entry or the command `M-x customize-option' (`M-x
-    customize-group' for groups).  Some customizations only take effect
+    the \"Customize\" menu entry or the command `\\[customize-option]'
+    (`\\[customize-group]' for groups).  Some customizations only take effect
     after some action (read the NOTE in the option documentation).
     Customization can also be done globally (i.e. site-wide, read the
     INSTALL file).
 
       Not all options are described in this documentation, so go and see
-    what other useful user options there are (`M-x vhdl-customize' or menu)!
+    what other useful user options there are (`\\[vhdl-customize]' or menu)!
 
 
   FILE EXTENSIONS:
@@ -30877,7 +30881,7 @@ Usage:
 Maintenance:
 ------------
 
-To submit a bug report, enter `M-x vhdl-submit-bug-report' within VHDL Mode.
+To submit a bug report, enter `\\[vhdl-submit-bug-report]' within VHDL Mode.
 Add a description of the problem and include a reproducible test case.
 
 Questions and enhancement requests can be sent to <address@hidden>.
@@ -31232,8 +31236,8 @@ Turn on Viper emulation of Vi in Emacs. See Info node 
`(viper)Top'.
 
 ;;;***
 
-;;;### (autoloads nil "warnings" "emacs-lisp/warnings.el" (21884
-;;;;;;  813 562651 696000))
+;;;### (autoloads nil "warnings" "emacs-lisp/warnings.el" (21986
+;;;;;;  55346 260512 613000))
 ;;; Generated autoloads from emacs-lisp/warnings.el
 
 (defvar warning-prefix-function nil "\
@@ -31292,9 +31296,9 @@ See also `warning-series', `warning-prefix-function' and
 \(fn TYPE MESSAGE &optional LEVEL BUFFER-NAME)" nil nil)
 
 (autoload 'lwarn "warnings" "\
-Display a warning message made from (format MESSAGE ARGS...).
+Display a warning message made from (format-message MESSAGE ARGS...).
 \\<special-mode-map>
-Aside from generating the message with `format',
+Aside from generating the message with `format-message',
 this is equivalent to `display-warning'.
 
 TYPE is the warning type: either a custom group name (a symbol),
@@ -31314,8 +31318,8 @@ LEVEL should be either :debug, :warning, :error, or 
:emergency
 \(fn TYPE LEVEL MESSAGE &rest ARGS)" nil nil)
 
 (autoload 'warn "warnings" "\
-Display a warning message made from (format MESSAGE ARGS...).
-Aside from generating the message with `format',
+Display a warning message made from (format-message MESSAGE ARGS...).
+Aside from generating the message with `format-message',
 this is equivalent to `display-warning', using
 `emacs' as the type and `:warning' as the level.
 
@@ -31323,7 +31327,7 @@ this is equivalent to `display-warning', using
 
 ;;;***
 
-;;;### (autoloads nil "wdired" "wdired.el" (21670 32331 885635 586000))
+;;;### (autoloads nil "wdired" "wdired.el" (21981 37426 739399 97000))
 ;;; Generated autoloads from wdired.el
 (push (purecopy '(wdired 2 0)) package--builtin-versions)
 
@@ -31358,8 +31362,8 @@ Please submit bug reports and other feedback to the 
author, Neil W. Van Dyke
 
 ;;;***
 
-;;;### (autoloads nil "which-func" "progmodes/which-func.el" (21670
-;;;;;;  32331 885635 586000))
+;;;### (autoloads nil "which-func" "progmodes/which-func.el" (21986
+;;;;;;  55346 292512 613000))
 ;;; Generated autoloads from progmodes/which-func.el
  (put 'which-func-format 'risky-local-variable t)
  (put 'which-func-current 'risky-local-variable t)
@@ -31389,8 +31393,8 @@ in certain major modes.
 
 ;;;***
 
-;;;### (autoloads nil "whitespace" "whitespace.el" (21918 18992 845579
-;;;;;;  660000))
+;;;### (autoloads nil "whitespace" "whitespace.el" (21985 34484 306705
+;;;;;;  925000))
 ;;; Generated autoloads from whitespace.el
 (push (purecopy '(whitespace 13 2 2)) package--builtin-versions)
 
@@ -31787,8 +31791,8 @@ if ARG is omitted or nil.
 
 ;;;***
 
-;;;### (autoloads nil "wid-edit" "wid-edit.el" (21891 60465 939679
-;;;;;;  523000))
+;;;### (autoloads nil "wid-edit" "wid-edit.el" (21981 37426 739399
+;;;;;;  97000))
 ;;; Generated autoloads from wid-edit.el
 
 (autoload 'widgetp "wid-edit" "\
@@ -31906,7 +31910,7 @@ the mode if ARG is omitted or nil, and toggle it if ARG 
is `toggle'.
 
 ;;;***
 
-;;;### (autoloads nil "woman" "woman.el" (21855 577 547944 710000))
+;;;### (autoloads nil "woman" "woman.el" (21985 34484 338705 925000))
 ;;; Generated autoloads from woman.el
 (push (purecopy '(woman 0 551)) package--builtin-versions)
 
@@ -31955,7 +31959,7 @@ Default bookmark handler for Woman buffers.
 
 ;;;***
 
-;;;### (autoloads nil "xml" "xml.el" (21670 32331 885635 586000))
+;;;### (autoloads nil "xml" "xml.el" (21974 64192 720009 993000))
 ;;; Generated autoloads from xml.el
 
 (autoload 'xml-parse-file "xml" "\
@@ -31972,8 +31976,8 @@ URIs, and expanded names will be returned as a cons
 If PARSE-NS is an alist, it will be used as the mapping from
 namespace to URIs instead.
 
-If it is the symbol 'symbol-qnames, expanded names will be
-returned as a plain symbol 'namespace:foo instead of a cons.
+If it is the symbol `symbol-qnames', expanded names will be
+returned as a plain symbol `namespace:foo' instead of a cons.
 
 Both features can be combined by providing a cons cell
 
@@ -32000,8 +32004,8 @@ URIs, and expanded names will be returned as a cons
 If PARSE-NS is an alist, it will be used as the mapping from
 namespace to URIs instead.
 
-If it is the symbol 'symbol-qnames, expanded names will be
-returned as a plain symbol 'namespace:foo instead of a cons.
+If it is the symbol `symbol-qnames', expanded names will be
+returned as a plain symbol `namespace:foo' instead of a cons.
 
 Both features can be combined by providing a cons cell
 
@@ -32030,8 +32034,8 @@ If LIMIT is non-nil, then do not consider characters 
beyond LIMIT.
 
 ;;;***
 
-;;;### (autoloads nil "xref" "progmodes/xref.el" (21947 19252 629252
-;;;;;;  749000))
+;;;### (autoloads nil "xref" "progmodes/xref.el" (21963 7479 570964
+;;;;;;  861000))
 ;;; Generated autoloads from progmodes/xref.el
 
 (autoload 'xref-pop-marker-stack "xref" "\
@@ -32049,6 +32053,13 @@ Find the definition of the identifier at point.
 With prefix argument or when there's no identifier at point,
 prompt for it.
 
+If the backend has sufficient information to determine a unique
+definition for IDENTIFIER, it returns only that definition. If
+there are multiple possible definitions, it returns all of them.
+
+If the backend returns one definition, jump to it; otherwise,
+display the list in a buffer.
+
 \(fn IDENTIFIER)" t nil)
 
 (autoload 'xref-find-definitions-other-window "xref" "\
@@ -32357,7 +32368,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") (21948 40114 418686 453000))
+;;;;;;  "x-dnd.el") (21989 31602 291825 721000))
 
 ;;;***
 
diff --git a/lisp/leim/quail/ethiopic.el b/lisp/leim/quail/ethiopic.el
index 7a1cddf..eaf3a03 100644
--- a/lisp/leim/quail/ethiopic.el
+++ b/lisp/leim/quail/ethiopic.el
@@ -60,7 +60,7 @@ S-SPC or `M-x ethio-insert-ethio-space'
   Always insert an Ethiopic word separator `፡'.  With a prefix number,
   insert that many word separators.
 
-C-' or `M-x ethio-gemination'
+C-\\=' or `M-x ethio-gemination'
   Compose the character before the point with the Ethiopic gemination mark.
   If the character is already composed, decompose it and remove the
   gemination mark."
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index f4ba226..f54893f 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -215,7 +215,7 @@ usually do not have translators for other languages.\n\n")))
 
     (insert "Please describe exactly what actions triggered the bug, and\n"
            "the precise symptoms of the bug.  If you can, give a recipe\n"
-           "starting from `emacs -Q':\n\n")
+           "starting from 'emacs -Q':\n\n")
     (let ((txt (delete-and-extract-region
                 (save-excursion (rfc822-goto-eoh) (line-beginning-position 2))
                 (point))))
@@ -225,7 +225,7 @@ usually do not have translators for other languages.\n\n")))
 
     (insert "If Emacs crashed, and you have the Emacs process in the gdb 
debugger,\n"
            "please include the output from the following gdb commands:\n"
-           "    `bt full' and `xbacktrace'.\n")
+           "    'bt full' and 'xbacktrace'.\n")
 
     (let ((debug-file (expand-file-name "DEBUG" data-directory)))
       (if (file-readable-p debug-file)
@@ -240,7 +240,7 @@ usually do not have translators for other languages.\n\n")))
     (if (fboundp 'x-server-vendor)
        (condition-case nil
             ;; This is used not only for X11 but also W32 and others.
-           (insert "Windowing system distributor `" (x-server-vendor)
+           (insert "Windowing system distributor '" (x-server-vendor)
                     "', version "
                    (mapconcat 'number-to-string (x-server-version) ".") "\n")
          (error t)))
@@ -253,7 +253,7 @@ usually do not have translators for other languages.\n\n")))
          (insert "System " lsb "\n")))
     (when (and system-configuration-options
               (not (equal system-configuration-options "")))
-      (insert "Configured using:\n `configure "
+      (insert "Configured using:\n 'configure "
              system-configuration-options "'\n\n")
       (fill-region (line-beginning-position -1) (point)))
     (insert "Configured features:\n" system-configuration-features "\n\n")
@@ -315,7 +315,7 @@ usually do not have translators for other languages.\n\n")))
 
     (insert (format "\nMemory information:\n"))
     (pp (garbage-collect) (current-buffer))
-    
+
     ;; This is so the user has to type something in order to send easily.
     (use-local-map (nconc (make-sparse-keymap) (current-local-map)))
     (define-key (current-local-map) "\C-c\C-i" 'info-emacs-bug)
@@ -417,7 +417,7 @@ and send the mail again%s."
                                         (regexp-quote (system-name)))
                                 from))
               (not (yes-or-no-p
-                    (format "Is `%s' really your email address? " from)))
+                    (format "Is '%s' really your email address? " from)))
               (error "Please edit the From address and try again"))))))
 
 
diff --git a/lisp/mail/feedmail.el b/lisp/mail/feedmail.el
index a94a81c..ccd8926 100644
--- a/lisp/mail/feedmail.el
+++ b/lisp/mail/feedmail.el
@@ -1889,7 +1889,8 @@ with various lower-level mechanisms to provide features 
such as queueing."
 (defun feedmail-message-action-help-blat (d-string)
   (feedmail-say-debug ">in-> feedmail-message-action-help-blat")
   (with-output-to-temp-buffer feedmail-p-h-b-n
-    (princ "You're dispatching a message and feedmail queuing is enabled.
+    (princ (substitute-command-keys "\
+You're dispatching a message and feedmail queuing is enabled.
 Typing ? again will normally scroll this help buffer.
 
 Choices:
@@ -1914,7 +1915,7 @@ Synonyms:
    y  YUP          do the default behavior \(same as \"C-m\"\)
   SPC SCROLL UP    \(same as \">\"\)
 
-The user-configurable default is currently \"")
+The user-configurable default is currently \""))
        (princ d-string)
        (princ "\".  For other possibilities,
 see the variable feedmail-prompt-before-queue-user-alist.
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 90a140b..67b04b5 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -894,7 +894,7 @@ isn't provided."
       (error
        (display-warning
        'rmail
-       (format "Although MIME support is requested
+       (format-message "Although MIME support is requested
 through `rmail-enable-mime' being non-nil, the required feature
 `%s' (the value of `rmail-mime-feature')
 is not available in the current session.
@@ -2662,8 +2662,8 @@ Ask the user whether to add that list name to 
`mail-mailing-lists'."
                                      "\\>\\)"))
                          addr))
                        (y-or-n-p
-                        (format "Add `%s' to `mail-mailing-lists'? "
-                                addr)))
+                        (format-message "Add `%s' to `mail-mailing-lists'? "
+                                        addr)))
               (customize-save-variable 'mail-mailing-lists
                                        (cons addr mail-mailing-lists)))))))))
 
diff --git a/lisp/mail/rmailout.el b/lisp/mail/rmailout.el
index 6b753b3..1e770e6 100644
--- a/lisp/mail/rmailout.el
+++ b/lisp/mail/rmailout.el
@@ -85,8 +85,11 @@ This uses `rmail-output-file-alist'."
                                      (error
                                       (display-warning
                                        :error
-                                       (format "Error evaluating \
-`rmail-output-file-alist' element:\nregexp: %s\naction: %s\nerror: %S\n"
+                                       (format-message "\
+Error evaluating `rmail-output-file-alist' element:
+regexp: %s
+action: %s
+error: %S\n"
                                                (caar tail) (cdar tail) err))
                                       nil))))
                          (setq tail (cdr tail)))
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
index f11511a..22e4cd7 100644
--- a/lisp/mh-e/mh-e.el
+++ b/lisp/mh-e/mh-e.el
@@ -1353,8 +1353,8 @@ show window is toggled off."
 This option is consulted when a prefix argument is used with
 \\[mh-sort-folder]. Normally default arguments to \"sortm\" are
 specified in the MH profile. This option may be used to provide
-an alternate view. For example, \"'(\"-nolimit\" \"-textfield\"
-\"subject\")\" is a useful setting."
+an alternate view. For example, ‘(\"-nolimit\" \"-textfield\"
+\"subject\")’ is a useful setting."
   :type '(repeat string)
   :group 'mh-folder
   :package-version '(MH-E . "8.0"))
diff --git a/lisp/net/imap.el b/lisp/net/imap.el
index 3e59823..cc53e04 100644
--- a/lisp/net/imap.el
+++ b/lisp/net/imap.el
@@ -850,15 +850,16 @@ t if it successfully authenticates, nil otherwise."
       (while (or (not user) (not passwd))
        (setq user (or imap-username
                       (read-from-minibuffer
-                       (concat "imap: username for " imap-server
-                               " (using stream `" (symbol-name imap-stream)
-                               "'): ")
+                       (format-message
+                        "imap: username for %s (using stream ‘%s’): "
+                        imap-server imap-stream)
                        (or user imap-default-user))))
-       (setq passwd (or imap-password
-                        (read-passwd
-                         (concat "imap: password for " user "@"
-                                 imap-server " (using authenticator `"
-                                 (symbol-name imap-auth) "'): "))))
+       (setq passwd
+             (or imap-password
+                 (read-passwd
+                  (format-message
+                   "imap: password for address@hidden (using authenticator 
‘%s’): "
+                   user imap-server imap-auth))))
        (when (and user passwd)
          (if (funcall loginfunc user passwd)
              (progn
diff --git a/lisp/net/tls.el b/lisp/net/tls.el
index 9e02945..46891be 100644
--- a/lisp/net/tls.el
+++ b/lisp/net/tls.el
@@ -174,6 +174,12 @@ Used by `tls-certificate-information'."
   :type 'string
   :group 'tls)
 
+(eval-and-compile
+  (if (fboundp 'format-message)
+      (defalias 'tls-format-message 'format-message)
+    ;; for Emacs < 25, and XEmacs, don't worry about quote translation.
+    (defalias 'tls-format-message 'format)))
+
 (defun tls-certificate-information (der)
   "Parse X.509 certificate in DER format into an assoc list."
   (let ((certificate (concat "-----BEGIN CERTIFICATE-----\n"
@@ -275,8 +281,8 @@ Fourth arg PORT is an integer specifying a port to connect 
to."
                             (message "The certificate presented by `%s' is \
 NOT trusted." host))
                        (not (yes-or-no-p
-                             (format "The certificate presented by `%s' is \
-NOT trusted. Accept anyway? " host)))))
+                             (tls-format-message "\
+The certificate presented by `%s' is NOT trusted. Accept anyway? " host)))))
                  (and tls-hostmismatch
                       (save-excursion
                         (goto-char (point-min))
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index c5ffb26..8cae8dc 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -5114,18 +5114,10 @@ raises an error."
 Convert file mode bits to string and set virtual device number.
 Return ATTR."
   (when attr
-    ;; Convert symlink from `tramp-do-file-attributes-with-stat'.
-    (when (consp (car attr))
-      (if (and (stringp (caar attr))
-               (string-match ".+ -> .\\(.+\\)." (caar attr)))
-          (setcar attr (match-string 1 (caar attr)))
-        (setcar attr nil)))
-    ;; Remove color escape sequences and double slashes from symlink.
+    ;; Remove color escape sequences from symlink.
     (when (stringp (car attr))
       (while (string-match tramp-color-escape-sequence-regexp (car attr))
-       (setcar attr (replace-match "" nil nil (car attr))))
-      (while (string-match "//" (car attr))
-       (setcar attr (replace-match "/" nil nil (car attr)))))
+       (setcar attr (replace-match "" nil nil (car attr)))))
     ;; Convert uid and gid.  Use -1 as indication of unusable value.
     (when (and (numberp (nth 2 attr)) (< (nth 2 attr) 0))
       (setcar (nthcdr 2 attr) -1))
@@ -5166,6 +5158,12 @@ Return ATTR."
     ;; Convert directory indication bit.
     (when (string-match "^d" (nth 8 attr))
       (setcar attr t))
+    ;; Convert symlink from `tramp-do-file-attributes-with-stat'.
+    (when (consp (car attr))
+      (if (and (stringp (caar attr))
+               (string-match ".+ -> .\\(.+\\)." (caar attr)))
+          (setcar attr (match-string 1 (caar attr)))
+        (setcar attr nil)))
     ;; Set file's gid change bit.
     (setcar (nthcdr 9 attr)
             (if (numberp (nth 3 attr))
diff --git a/lisp/newcomment.el b/lisp/newcomment.el
index 037d294..60f35c8 100644
--- a/lisp/newcomment.el
+++ b/lisp/newcomment.el
@@ -1266,7 +1266,7 @@ Else, call `comment-indent'.
 You can configure `comment-style' to change the way regions are commented."
   (interactive "*P")
   (comment-normalize-vars)
-  (if (and mark-active transient-mark-mode)
+  (if (use-region-p)
       (comment-or-uncomment-region (region-beginning) (region-end) arg)
     (if (save-excursion (beginning-of-line) (not (looking-at "\\s-*$")))
        ;; FIXME: If there's no comment to kill on this line and ARG is
diff --git a/lisp/novice.el b/lisp/novice.el
index ce6e16f..18ffa5d 100644
--- a/lisp/novice.el
+++ b/lisp/novice.el
@@ -65,7 +65,8 @@ If nil, the feature is disabled, i.e., all commands work 
normally.")
        (if (stringp (get cmd 'disabled))
            (princ (get cmd 'disabled))
         (princ "It is disabled because new users often find it confusing.\n")
-        (princ "Here's the first part of its description:\n\n")
+        (princ (substitute-command-keys
+                "Here's the first part of its description:\n\n"))
         ;; Keep only the first paragraph of the documentation.
           (with-current-buffer "*Disabled Command*" ;; standard-output
           (goto-char (point-max))
@@ -80,11 +81,11 @@ If nil, the feature is disabled, i.e., all commands work 
normally.")
             (goto-char (point-max))
             (indent-rigidly start (point) 3))))
        (princ "\n\nDo you want to use this command anyway?\n\n")
-       (princ "You can now type
+       (princ (substitute-command-keys "You can now type
 y   to try it and enable it (no questions if you use it again).
 n   to cancel--don't try the command, and it remains disabled.
 SPC to try the command just this once, but leave it disabled.
-!   to try it, and enable all disabled commands for this session only.")
+!   to try it, and enable all disabled commands for this session only."))
         ;; Redundant since with-output-to-temp-buffer will do it anyway.
         ;; (with-current-buffer standard-output
         ;;   (help-mode))
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
index b73e130..a3c8b84 100644
--- a/lisp/org/org-agenda.el
+++ b/lisp/org/org-agenda.el
@@ -433,7 +433,7 @@ This will be spliced into the custom type of
 
 
 (defcustom org-agenda-custom-commands
-  '(("n" "Agenda and all TODO's" ((agenda "") (alltodo ""))))
+  '(("n" "Agenda and all TODOs" ((agenda "") (alltodo ""))))
   "Custom commands for the agenda.
 These commands will be offered on the splash screen displayed by the
 agenda dispatcher \\[org-agenda].  Each entry is a list like this:
@@ -3815,7 +3815,7 @@ FILTER-ALIST is an alist of filters we need to apply when
 (defvar org-depend-tag-blocked)
 
 (defun org-agenda-dim-blocked-tasks (&optional invisible)
-  "Dim currently blocked TODO's in the agenda display.
+  "Dim currently blocked TODOs in the agenda display.
 When INVISIBLE is non-nil, hide currently blocked TODO instead of
 dimming them."
   (interactive "P")
@@ -4647,7 +4647,8 @@ in `org-agenda-text-search-extra-files'."
        (add-text-properties pos (1- (point)) (list 'face 'org-warning))
        (setq pos (point))
        (unless org-agenda-multi
-         (insert "Press `[', `]' to add/sub word, `{', `}' to add/sub regexp, 
`C-u r' to edit\n")
+         (insert (substitute-command-keys
+                  "Press `[', `]' to add/sub word, `{', `}' to add/sub regexp, 
`C-u r' to edit\n"))
          (add-text-properties pos (1- (point))
                               (list 'face 'org-agenda-structure))))
       (org-agenda-mark-header-line (point-min))
@@ -4741,7 +4742,7 @@ for a keyword.  A numeric prefix directly selects the Nth 
keyword in
                 org-select-this-todo-keyword))
        (setq pos (point))
        (unless org-agenda-multi
-         (insert "Available with `N r': (0)[ALL]")
+         (insert (substitute-command-keys "Available with `N r': (0)[ALL]"))
          (let ((n 0) s)
            (mapc (lambda (x)
                    (setq s (format "(%d)%s" (setq n (1+ n)) x))
@@ -4836,7 +4837,8 @@ The prefix arg TODO-ONLY limits the search to TODO 
entries."
        (add-text-properties pos (1- (point)) (list 'face 'org-warning))
        (setq pos (point))
        (unless org-agenda-multi
-         (insert "Press `C-u r' to search again with new search string\n"))
+         (insert (substitute-command-keys
+                  "Press `C-u r' to search again with new search string\n")))
        (add-text-properties pos (1- (point)) (list 'face 
'org-agenda-structure)))
       (org-agenda-mark-header-line (point-min))
       (when rtnall
diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el
index 64e3015..7b4b6ea 100644
--- a/lisp/org/org-capture.el
+++ b/lisp/org/org-capture.el
@@ -434,7 +434,8 @@ Turning on this mode runs the normal hook 
`org-capture-mode-hook'."
   nil " Rem" org-capture-mode-map
   (org-set-local
    'header-line-format
-   "Capture buffer.  Finish `C-c C-c', refile `C-c C-w', abort `C-c C-k'."))
+   (substitute-command-keys
+    "Capture buffer.  Finish `C-c C-c', refile `C-c C-w', abort `C-c C-k'.")))
 (define-key org-capture-mode-map "\C-c\C-c" 'org-capture-finalize)
 (define-key org-capture-mode-map "\C-c\C-k" 'org-capture-kill)
 (define-key org-capture-mode-map "\C-c\C-w" 'org-capture-refile)
@@ -1600,7 +1601,7 @@ The template may still contain \"%?\" for cursor 
positioning."
            (delete-region start end)
            (condition-case error
                (insert-file-contents filename)
-             (error (insert (format "%%![Couldn't insert %s: %s]"
+             (error (insert (format "%%![Could not insert %s: %s]"
                                     filename error)))))))
       ;; %() embedded elisp
       (org-capture-expand-embedded-elisp)
diff --git a/lisp/org/org-compat.el b/lisp/org/org-compat.el
index d3c477e..4c90cda 100644
--- a/lisp/org/org-compat.el
+++ b/lisp/org/org-compat.el
@@ -418,6 +418,10 @@ Pass BUFFER to the XEmacs version of `move-to-column'."
 (unless (fboundp 'user-error)
   (defalias 'user-error 'error))
 
+;; ‘format-message’ is available only from 25 on
+(unless (fboundp 'format-message)
+  (defalias 'format-message 'format))
+
 (defmacro org-no-popups (&rest body)
   "Suppress popup windows.
 Let-bind some variables to nil around BODY to achieve the desired
diff --git a/lisp/org/org-ctags.el b/lisp/org/org-ctags.el
index 911ee2e..75de8c2 100644
--- a/lisp/org/org-ctags.el
+++ b/lisp/org/org-ctags.el
@@ -394,7 +394,8 @@ the new file."
       (org-open-file filename t))
      ((or (eql create t)
           (and (eql create 'ask)
-               (y-or-n-p (format "File `%s.org' not found; create?" name))))
+               (y-or-n-p (format-message
+                         "File `%s.org' not found; create?" name))))
       (org-ctags-open-file filename name))
      (t ;; File does not exist, and we don't want to create it.
       nil))))
@@ -433,8 +434,8 @@ the heading a destination for the tag `NAME'."
   "This function is intended to be used in ORG-OPEN-LINK-FUNCTIONS.
 Wrapper for org-ctags-append-topic, which first asks the user if they want
 to append a new topic."
-  (if (y-or-n-p (format "Topic `%s' not found; append to end of buffer?"
-                        name))
+  (if (y-or-n-p (format-message
+                "Topic `%s' not found; append to end of buffer?" name))
       (org-ctags-append-topic name narrowp)
     nil))
 
diff --git a/lisp/org/org-src.el b/lisp/org/org-src.el
index 4f79986..8a6c77a 100644
--- a/lisp/org/org-src.el
+++ b/lisp/org/org-src.el
@@ -801,7 +801,7 @@ with \",*\", \",#+\", \",,*\" and \",,#+\"."
   "Save parent buffer with current state source-code buffer."
   (interactive)
   (if (string-match "Fixed Width" (buffer-name))
-      (user-error "Use C-c ' to save and exit, C-c C-k to abort editing")
+      (user-error "%s" "Use C-c ' to save and exit, C-c C-k to abort editing")
     (org-src-in-org-buffer (save-buffer))))
 
 (declare-function org-babel-tangle "ob-tangle" (&optional arg target-file 
lang))
diff --git a/lisp/org/org.el b/lisp/org/org.el
index acfc6f0..963da77 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -6629,7 +6629,7 @@ in special contexts.
        ;; Table: enter it or move to the next field.
        ((org-at-table-p 'any)
        (if (org-at-table.el-p)
-           (message "Use C-c ' to edit table.el tables")
+           (message "%s" "Use C-c ' to edit table.el tables")
          (if arg (org-table-edit-field t)
            (org-table-justify-field-maybe)
            (call-interactively 'org-table-next-field))))
@@ -17102,7 +17102,7 @@ days in order to avoid rounding problems."
     (error (error "Bad timestamp `%s'%s\nError was: %s"
                  s (if (not (and buffer pos))
                        ""
-                     (format " at %d in buffer `%s'" pos buffer))
+                     (format-message " at %d in buffer `%s'" pos buffer))
                  (cdr errdata)))))
 
 (defun org-time-string-to-seconds (s)
@@ -17130,7 +17130,7 @@ The variable `date' is bound by the calendar when this 
is called."
         (error (error "Bad timestamp `%s'%s\nError was: %s"
                       s (if (not (and buffer pos))
                             ""
-                          (format " at %d in buffer `%s'" pos buffer))
+                          (format-message " at %d in buffer `%s'" pos buffer))
                       (cdr errdata))))))))
 
 (defun org-days-to-iso-week (days)
@@ -20446,7 +20446,7 @@ This command does many different things, depending on 
context:
           ;; a `table.el' type, just give up.  At a table row or
           ;; cell, maybe recalculate line but always align table.
           (if (eq (org-element-property :type context) 'table.el)
-              (message "Use C-c ' to edit table.el tables")
+              (message "%s" "Use C-c ' to edit table.el tables")
             (let ((org-enable-table-editor t))
               (if (or (eq type 'table)
                       ;; Check if point is at a TBLFM line.
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 1223db3..f26b8ec 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -618,11 +618,12 @@ comment at the start of cc-engine.el for more info."
 (defmacro c-bos-report-error ()
   '(unless noerror
      (setq c-parsing-error
-          (format "No matching `%s' found for `%s' on line %d"
-                  (elt saved-pos 1)
-                  (elt saved-pos 2)
-                  (1+ (count-lines (point-min)
-                                   (c-point 'bol (elt saved-pos 0))))))))
+          (format-message
+           "No matching `%s' found for `%s' on line %d"
+           (elt saved-pos 1)
+           (elt saved-pos 2)
+           (1+ (count-lines (point-min)
+                            (c-point 'bol (elt saved-pos 0))))))))
 
 (defun c-beginning-of-statement-1 (&optional lim ignore-labels
                                             noerror comma-delim)
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index 235ef21..0e904d2 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -327,7 +327,7 @@ the evaluated constant value at compile time."
 
 (defun c-populate-syntax-table (table)
   "Populate the given syntax table as necessary for a C-like language.
-This includes setting ' and \" as string delimiters, and setting up
+This includes setting \\=' and \" as string delimiters, and setting up
 the comment syntax to handle both line style \"//\" and block style
 \"/*\" \"*/\" comments."
 
diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el
index 19d0473..005e71a 100644
--- a/lisp/progmodes/cmacexp.el
+++ b/lisp/progmodes/cmacexp.el
@@ -389,8 +389,9 @@ Optional arg DISPLAY non-nil means show messages in the 
echo area."
                ;; Put the messages inside a comment, so they won't get in
                ;; the way of font-lock, highlighting etc.
                (insert
-                (format "/* Preprocessor terminated with status %s\n\n   
Messages from `%s\':\n\n"
-                        exit-status cppcommand))
+                (format
+                 "/* Preprocessor terminated with status %s\n\n   Messages 
from '%s\':\n\n"
+                 exit-status cppcommand))
                (goto-char (+ (point)
                              (nth 1 (insert-file-contents tempname))))
                (insert "\n\n*/\n")))
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
index 685bb21..3cf17f4 100644
--- a/lisp/progmodes/cpp.el
+++ b/lisp/progmodes/cpp.el
@@ -494,9 +494,10 @@ You can also use the keyboard accelerators indicated like 
this: [K]ey."
     (set-buffer buffer)
     (setq cpp-edit-symbols symbols)
     (erase-buffer)
-    (insert "CPP Display Information for `")
+    (insert (substitute-command-keys "CPP Display Information for `"))
     (cpp-make-button (buffer-name cpp-edit-buffer) 'cpp-edit-home)
-    (insert "'\n\nClick mouse-2 on item you want to change or use\n"
+    (insert (substitute-command-keys
+            "'\n\nClick mouse-2 on item you want to change or use\n")
            "or switch to this buffer and type the keyboard equivalents.\n"
            "Keyboard equivalents are indicated with brackets like [T]his.\n\n")
     (cpp-make-button "[H]ome (display the C file)" 'cpp-edit-home)
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
index 7c785d4..2443d6f 100644
--- a/lisp/progmodes/ebrowse.el
+++ b/lisp/progmodes/ebrowse.el
@@ -3471,7 +3471,7 @@ are not performed."
     (with-output-to-temp-buffer (concat "*Apropos Members*")
       (set-buffer standard-output)
       (erase-buffer)
-      (insert "Members matching `" regexp "'\n\n")
+      (insert (format-message "Members matching ‘%s’\n\n" regexp))
       (cl-loop for s in (ebrowse-list-of-matching-members members regexp) do
                (cl-loop for info in (gethash s members) do
                         (ebrowse-draw-file-member-info info))))))
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index e76728d..bcabf3c 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -653,7 +653,8 @@ non-nil result supercedes the xrefs produced by
 
       ;; FIXME: advised function; list of advice functions
 
-      ;; FIXME: aliased variable
+      ;; Coding system symbols do not appear in ‘load-history’,
+      ;; so we can’t get a location for them.
 
       (when (and (symbolp symbol)
                  (symbol-function symbol)
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index 23f9370..611ba84 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -1459,7 +1459,7 @@ hits the start of file."
         (when (symbolp symbs)
           (if (boundp symbs)
              (setq symbs (symbol-value symbs))
-           (insert "symbol `" (symbol-name symbs) "' has no value\n")
+           (insert (format-message "symbol ‘%s’ has no value\n" symbs))
            (setq symbs nil)))
         (if (vectorp symbs)
            (mapatoms ins-symb symbs)
@@ -1469,13 +1469,13 @@ hits the start of file."
 
 (defun etags-tags-apropos (string) ; Doc string?
   (when tags-apropos-verbose
-    (princ "Tags in file `")
+    (princ (substitute-command-keys "Tags in file `"))
     (tags-with-face 'highlight (princ buffer-file-name))
-    (princ "':\n\n"))
+    (princ (substitute-command-keys "':\n\n")))
   (goto-char (point-min))
   (let ((progress-reporter (make-progress-reporter
-                           (format "Making tags apropos buffer for `%s'..."
-                                   string)
+                           (format-message
+                            "Making tags apropos buffer for `%s'..." string)
                            (point-min) (point-max))))
     (while (re-search-forward string nil t)
       (progress-reporter-update progress-reporter (point))
@@ -1920,9 +1920,9 @@ directory specification."
                                      'tags-complete-tags-table-file
                                      nil t nil)))
   (with-output-to-temp-buffer "*Tags List*"
-    (princ "Tags in file `")
+    (princ (substitute-command-keys "Tags in file `"))
     (tags-with-face 'highlight (princ file))
-    (princ "':\n\n")
+    (princ (substitute-command-keys "':\n\n"))
     (save-excursion
       (let ((first-time t)
            (gotany nil))
@@ -1944,9 +1944,10 @@ directory specification."
   (declare (obsolete xref-find-apropos "25.1"))
   (interactive "sTags apropos (regexp): ")
   (with-output-to-temp-buffer "*Tags List*"
-    (princ "Click mouse-2 to follow tags.\n\nTags matching regexp `")
+    (princ (substitute-command-keys
+           "Click mouse-2 to follow tags.\n\nTags matching regexp `"))
     (tags-with-face 'highlight (princ regexp))
-    (princ "':\n\n")
+    (princ (substitute-command-keys "':\n\n"))
     (save-excursion
       (let ((first-time t))
        (while (visit-tags-table-buffer (not first-time))
diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el
index 50e4da9..b057fa6 100644
--- a/lisp/progmodes/executable.el
+++ b/lisp/progmodes/executable.el
@@ -240,8 +240,9 @@ executable."
                         (save-window-excursion
                           ;; Make buffer visible before question.
                           (switch-to-buffer (current-buffer))
-                          (y-or-n-p (concat "Replace magic number by `"
-                                            executable-prefix argument "'? 
"))))
+                          (y-or-n-p (format-message
+                                     "Replace magic number by `%s%s'? "
+                                     executable-prefix argument))))
                     (progn
                       (replace-match argument t t nil 1)
                       (message "Magic number changed to `%s'"
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el
index a9376ff..e0d25c4 100644
--- a/lisp/progmodes/hideif.el
+++ b/lisp/progmodes/hideif.el
@@ -164,7 +164,7 @@ This behavior is generally undesirable.  If this option is 
non-nil, the outermos
   :version "25.1")
 
 (defcustom hide-ifdef-header-regexp
-  "\\.h\\(h\\|xx\\|pp\\)?\\'"
+  "\\.h\\(h\\|xx\\|pp\\|\\+\\+\\)?\\'"
   "C/C++ header file name patterns to determine if current buffer is a header.
 Effective only if `hide-ifdef-expand-reinclusion-protection' is t."
   :type 'string
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index d759442..18299c7 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -293,7 +293,7 @@ extends to the end of the match for the regular expression."
 (defcustom idlwave-auto-fill-split-string t
   "If non-nil then auto fill will split strings with the IDL `+' operator.
 When the line end falls within a string, string concatenation with the
-'+' operator will be used to distribute a long string over lines.
+`+' operator will be used to distribute a long string over lines.
 If nil and a string is split then a terminal beep and warning are issued.
 
 This variable is ignored when `idlwave-fill-comment-line-only' is
@@ -768,8 +768,8 @@ Also see help for `idlwave-surround'."
   :type 'boolean)
 
 (defcustom idlwave-pad-keyword t
-  "Non-nil means pad '=' in keywords (routine calls or defs) like assignment.
-Whenever `idlwave-surround' is non-nil then this affects how '=' is
+  "Non-nil means pad `=' in keywords (routine calls or defs) like assignment.
+Whenever `idlwave-surround' is non-nil then this affects how `=' is
 padded for keywords and for variables.  If t, pad the same as for
 assignments.  If nil then spaces are removed.  With any other value,
 spaces are left unchanged."
diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el
index 89e0b10..70a2b1a 100644
--- a/lisp/progmodes/octave.el
+++ b/lisp/progmodes/octave.el
@@ -1122,7 +1122,7 @@ See Info node `(octave)Function Files'."
         (let* ((func (buffer-substring name-start name-end))
                (file (file-name-sans-extension
                       (file-name-nondirectory buffer-file-name)))
-               (help-form (format "\
+               (help-form (format-message "\
 a: Use function name `%s'
 b: Use file name `%s'
 q: Don't fix\n" func file))
@@ -1728,12 +1728,12 @@ code line."
                  (dir (file-name-directory
                        (directory-file-name (file-name-directory file)))))
             (replace-match "" nil nil nil 1)
-            (insert "`")
+            (insert (substitute-command-keys "`"))
             ;; Include the parent directory which may be regarded as
             ;; the category for the FN.
             (help-insert-xref-button (file-relative-name file dir)
                                      'octave-help-file fn)
-            (insert "'")))
+            (insert (substitute-command-keys "'"))))
         ;; Make 'See also' clickable.
         (with-syntax-table octave-mode-syntax-table
           (when (re-search-forward "^\\s-*See also:" nil t)
@@ -1816,8 +1816,8 @@ If the environment variable OCTAVE_SRCDIR is set, it is 
searched first."
            (error "File `%s' not found" name))
        file))
     (`"mex"
-     (if (yes-or-no-p (format "File `%s' may be binary; open? "
-                              (file-name-nondirectory name)))
+     (if (yes-or-no-p (format-message "File `%s' may be binary; open? "
+                                     (file-name-nondirectory name)))
          name
        (user-error "Aborted")))
     (_ name)))
@@ -1847,7 +1847,7 @@ if iskeyword('%s') disp('`%s'' is a keyword') else 
which('%s') endif\n"
           (when (string-match "from the file \\(.*\\)$" line)
             (setq file (match-string 1 line))))
         (if (not file)
-            (user-error "%s" (or line (format "`%s' not found" fn)))
+            (user-error "%s" (or line (format-message "`%s' not found" fn)))
           (ring-insert find-tag-marker-ring (point-marker))
           (setq file (funcall octave-find-definition-filename-function file))
           (when file
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
index 107dee5..76d85c6 100644
--- a/lisp/progmodes/verilog-mode.el
+++ b/lisp/progmodes/verilog-mode.el
@@ -1054,7 +1054,7 @@ the MSB or LSB of a signal inside an AUTORESET.
 
 If nil, AUTORESET uses \"0\" as the constant.
 
-If `unbased', AUTORESET used the unbased unsized literal \"'0\"
+If `unbased', AUTORESET used the unbased unsized literal \"\\='0\"
 as the constant. This setting is strongly recommended for
 SystemVerilog designs."
   :type 'boolean
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index 1b270e6..47b15d8 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -164,7 +164,7 @@
 '/' or is empty)."
   (let ((val (widget-value widget)))
     (unless (string-match "^\\(\\|.*/\\)$" val)
-      (widget-put widget :error "Invalid directory entry: must end with '/'")
+      (widget-put widget :error "Invalid directory entry: must end with ‘/’")
       widget)))
 
 ;; help string for user options
@@ -8743,7 +8743,7 @@ is omitted or nil."
              (vhdl-comment-insert)))))
     (self-insert-command count)))
 
-(defun vhdl-electric-open-bracket (count) "'[' --> '(', '([' --> '['"
+(defun vhdl-electric-open-bracket (count) "‘[’ --> ‘(’, ‘([’ --> ‘[’"
   (interactive "p")
   (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
       (if (= (preceding-char) ?\()
@@ -8751,7 +8751,7 @@ is omitted or nil."
        (insert-char ?\( 1))
     (self-insert-command count)))
 
-(defun vhdl-electric-close-bracket (count) "']' --> ')', ')]' --> ']'"
+(defun vhdl-electric-close-bracket (count) "‘]’ --> ‘)’, ‘)]’ --> ‘]’"
   (interactive "p")
   (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
       (progn
@@ -8761,7 +8761,7 @@ is omitted or nil."
        (blink-matching-open))
     (self-insert-command count)))
 
-(defun vhdl-electric-quote (count) "'' --> \""
+(defun vhdl-electric-quote (count) "\\='\\=' --> \""
   (interactive "p")
   (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
       (if (= (preceding-char) vhdl-last-input-event)
@@ -8769,7 +8769,7 @@ is omitted or nil."
        (insert-char ?\' 1))
     (self-insert-command count)))
 
-(defun vhdl-electric-semicolon (count) "';;' --> ' : ', ': ;' --> ' := '"
+(defun vhdl-electric-semicolon (count) "‘;;’ --> ‘ : ’, ‘: ;’ --> ‘ := ’"
   (interactive "p")
   (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
       (cond ((= (preceding-char) vhdl-last-input-event)
@@ -8783,7 +8783,7 @@ is omitted or nil."
            (t (insert-char ?\; 1)))
     (self-insert-command count)))
 
-(defun vhdl-electric-comma (count) "',,' --> ' <= '"
+(defun vhdl-electric-comma (count) "‘,,’ --> ‘ <= ’"
   (interactive "p")
   (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
       (cond ((= (preceding-char) vhdl-last-input-event)
@@ -8793,7 +8793,7 @@ is omitted or nil."
            (t (insert-char ?\, 1)))
     (self-insert-command count)))
 
-(defun vhdl-electric-period (count) "'..' --> ' => '"
+(defun vhdl-electric-period (count) "‘..’ --> ‘ => ’"
   (interactive "p")
   (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
       (cond ((= (preceding-char) vhdl-last-input-event)
@@ -8803,7 +8803,7 @@ is omitted or nil."
            (t (insert-char ?\. 1)))
     (self-insert-command count)))
 
-(defun vhdl-electric-equal (count) "'==' --> ' == '"
+(defun vhdl-electric-equal (count) "‘==’ --> ‘ == ’"
   (interactive "p")
   (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
       (cond ((= (preceding-char) vhdl-last-input-event)
diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el
index 81f3b8f..a8c2813 100644
--- a/lisp/progmodes/which-func.el
+++ b/lisp/progmodes/which-func.el
@@ -209,11 +209,11 @@ It creates the Imenu index for the buffer, if necessary."
                   (< buffer-saved-size which-func-maxout)
                   (= which-func-maxout 0)))
          (setq imenu--index-alist
-               (save-excursion (funcall imenu-create-index-function))))
+                (save-excursion (funcall imenu-create-index-function))))
+    (imenu-unavailable
+     (setq which-func-mode nil))
     (error
-     (unless (equal err
-                    '(user-error "This buffer cannot use 
`imenu-default-create-index-function'"))
-       (message "which-func-ff-hook error: %S" err))
+     (message "which-func-ff-hook error: %S" err)
      (setq which-func-mode nil))))
 
 (defun which-func-update ()
diff --git a/lisp/replace.el b/lisp/replace.el
index 26870a3..be73cab 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -35,7 +35,7 @@
 
 (defcustom replace-character-fold nil
   "Non-nil means `query-replace' should do character folding in matches.
-This means, for instance, that ' will match a large variety of
+This means, for instance, that \\=' will match a large variety of
 unicode quotes."
   :type 'boolean
   :group 'matching
diff --git a/lisp/startup.el b/lisp/startup.el
index 1cb3bb6..8c63ed2 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1935,7 +1935,8 @@ To quit a partially entered command, type Control-g.\n")
   (insert-button "Visit New File"
                 'action (lambda (_button) (call-interactively 'find-file))
                 'follow-link t)
-  (insert "\t\tSpecify a new file's name, to edit the file\n")
+  (insert (substitute-command-keys
+          "\t\tSpecify a new file's name, to edit the file\n"))
   (insert-button "Open Home Directory"
                 'action (lambda (_button) (dired "~"))
                 'follow-link t)
diff --git a/lisp/tempo.el b/lisp/tempo.el
index 92e1ea7..6e2f978 100644
--- a/lisp/tempo.el
+++ b/lisp/tempo.el
@@ -270,7 +270,7 @@ The elements in ELEMENTS can be of several types:
  - nil: It is ignored.
  - Anything else: It is evaluated and the result is treated as an
    element to be inserted.  One additional tag is useful for these
-   cases.  If an expression returns a list '(l foo bar), the elements
+   cases.  If an expression returns a list (l foo bar), the elements
    after `l' will be inserted according to the usual rules.  This makes
    it possible to return several elements from one expression."
   (let* ((template-name (intern (concat "tempo-template-"
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index b1232d4..279f657 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -4232,7 +4232,7 @@ Return t if test was successful, nil otherwise."
                (cond ((not previous))
                      ((member key key-list)
                       (push (cons (bibtex-current-line)
-                                  (format "Duplicate key `%s'" key))
+                                  (format-message "Duplicate key `%s'" key))
                             error-list))
                      ((and bibtex-maintain-sorted-entries
                            (not (bibtex-lessp previous current)))
@@ -4255,8 +4255,9 @@ Return t if test was successful, nil otherwise."
                          (cdr (assoc-string (car key) bibtex-reference-keys)))
                 (bibtex-search-entry (car key))
                 (push (cons (bibtex-current-line)
-                            (format "Duplicate key `%s' in %s" (car key)
-                                    (abbreviate-file-name (buffer-file-name 
buffer))))
+                            (format-message
+                            "Duplicate key `%s' in %s" (car key)
+                            (abbreviate-file-name (buffer-file-name buffer))))
                       error-list))))
 
           (when test-thoroughly
@@ -4306,14 +4307,16 @@ Return t if test was successful, nil otherwise."
                        (if (setq idx (nth 3 field))
                            (bibtex-vec-push alt-expect idx (car field))
                          (push (cons beg-line
-                                     (format "Required field `%s' missing"
-                                             (car field)))
+                                     (format-message
+                                     "Required field `%s' missing"
+                                     (car field)))
                                error-list)))
                      (dotimes (idx num-alt)
                        (unless (aref alt-fields idx)
                          (push (cons beg-line
-                                     (format "Alternative fields `%s' missing"
-                                             (aref alt-expect idx)))
+                                     (format-message
+                                     "Alternative fields `%s' missing"
+                                     (aref alt-expect idx)))
                                error-list))))))))
             (bibtex-progress-message 'done)))))
 
@@ -4327,7 +4330,8 @@ Return t if test was successful, nil otherwise."
             (unless (eq major-mode 'compilation-mode) (compilation-mode))
             (let ((inhibit-read-only t))
               (delete-region (point-min) (point-max))
-              (insert "BibTeX mode command `bibtex-validate'\n"
+              (insert (substitute-command-keys
+                      "BibTeX mode command `bibtex-validate'\n")
                       (if syntax-error
                           "Maybe undetected errors due to syntax errors.  \
 Correct and validate again.\n"
@@ -4362,9 +4366,10 @@ Return t if test was successful, nil otherwise."
               (if (or (and strings (bibtex-string= entry-type "string"))
                       (assoc-string entry-type bibtex-entry-alist t))
                   (if (member key key-list)
-                      (push (format "%s:%d: Duplicate key `%s'\n"
-                                    (buffer-file-name)
-                                    (bibtex-current-line) key)
+                      (push (format-message
+                            "%s:%d: Duplicate key `%s'\n"
+                            (buffer-file-name)
+                            (bibtex-current-line) key)
                             error-list)
                     (push key key-list))))
             (push (cons buffer key-list) buffer-key-list)))))
@@ -4377,9 +4382,10 @@ Return t if test was successful, nil otherwise."
           (dolist (key (cdr (assq buffer buffer-key-list)))
             (when (assoc-string key current-keys)
               (bibtex-search-entry key)
-              (push (format "%s:%d: Duplicate key `%s' in %s\n"
-                            (buffer-file-name) (bibtex-current-line) key
-                            (abbreviate-file-name (buffer-file-name buffer)))
+              (push (format-message
+                    "%s:%d: Duplicate key `%s' in %s\n"
+                    (buffer-file-name) (bibtex-current-line) key
+                    (abbreviate-file-name (buffer-file-name buffer)))
                     error-list))))))
 
     ;; Process error list
@@ -4389,7 +4395,8 @@ Return t if test was successful, nil otherwise."
             (unless (eq major-mode 'compilation-mode) (compilation-mode))
             (let ((inhibit-read-only t))
               (delete-region (point-min) (point-max))
-              (insert "BibTeX mode command `bibtex-validate-globally'\n\n")
+              (insert (substitute-command-keys
+                      "BibTeX mode command `bibtex-validate-globally'\n\n"))
               (dolist (err (sort error-list 'string-lessp)) (insert err))
               (set-buffer-modified-p nil))
             (goto-char (point-min))
@@ -5280,7 +5287,7 @@ where FILE is the BibTeX file of ENTRY."
             (bibtex-display-entries entries)
           (message "No BibTeX entries %smatching `%s'"
                    (if (string= "" field) ""
-                     (format "with field `%s' " field))
+                     (format-message "with field `%s' " field))
                    regexp)))
     entries))
 
diff --git a/lisp/textmodes/conf-mode.el b/lisp/textmodes/conf-mode.el
index b6bea21..267d23f 100644
--- a/lisp/textmodes/conf-mode.el
+++ b/lisp/textmodes/conf-mode.el
@@ -122,7 +122,7 @@ not align (only setting space according to 
`conf-assignment-space')."
     (define-key menu-map [c-s0] '("--"))
     (define-key menu-map [conf-quote-normal]
       '(menu-item "Set quote syntax normal" conf-quote-normal
-                 :help "Set the syntax of \' and \" to punctuation"))
+                 :help "Set the syntax of \\=' and \" to punctuation"))
     (define-key menu-map [conf-align-assignments]
       '(menu-item "Align assignments" conf-align-assignments
                  :help "Align assignments"))
@@ -296,8 +296,8 @@ contents of the region.  Otherwise, operate on the whole 
buffer."
 
 
 (defun conf-quote-normal (arg)
-  "Set the syntax of ' and \" to punctuation.
-With prefix arg, only do it for ' if 1, or only for \" if 2.
+  "Set the syntax of \\=' and \" to punctuation.
+With prefix arg, only do it for \\=' if 1, or only for \" if 2.
 This only affects the current buffer.  Some conf files use quotes
 to delimit strings, while others allow quotes as simple parts of
 the assigned value.  In those files font locking will be wrong,
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index d73780c..639456d 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -344,7 +344,7 @@
     (`(:elem . arg) 0)
     (`(:list-intro . ,(or `";" `"")) t) ;"" stands for BOB (bug#15467).
     (`(:before . "{")
-     (when (smie-rule-hanging-p)
+     (when (or (smie-rule-hanging-p) (smie-rule-bolp))
        (smie-backward-sexp ";")
        (smie-indent-virtual)))
     (`(:before . ,(or "{" "("))
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index dda983b..3fe21c4 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -2297,7 +2297,8 @@ Global `ispell-quit' set to start location to continue 
spell session."
                (insert "\n\t"))
              (insert (car guess) "    ")
              (setq guess (cdr guess)))
-           (insert "\nUse option `i' to accept this spelling and put it in 
your private dictionary.\n")))
+           (insert (substitute-command-keys
+                    "\nUse option `i' to accept this spelling and put it in 
your private dictionary.\n"))))
       (while choices
        (when (> (+ 7 (current-column)
                    (length (car choices))
diff --git a/lisp/textmodes/page-ext.el b/lisp/textmodes/page-ext.el
index d3bd33e..57134e0 100644
--- a/lisp/textmodes/page-ext.el
+++ b/lisp/textmodes/page-ext.el
@@ -395,8 +395,8 @@ Point is left in the body of page."
   "Search for REGEXP, starting from point, and narrow to page it is in."
   (interactive (list
                 (read-string
-                 (format "Search for `%s' (end with RET): "
-                         (or pages-last-search "regexp")))))
+                 (format-message "Search for `%s' (end with RET): "
+                                (or pages-last-search "regexp")))))
   (if (equal regexp "")
       (setq regexp pages-last-search)
     (setq pages-last-search regexp))
@@ -549,16 +549,18 @@ directory for only the accessible portion of the buffer."
           (list nil
                 nil
                 (read-string
-                 (format "Select according to `%s' (end with RET): "
-                         (or pages-directory-previous-regexp "regexp")))))
+                 (format-message
+                 "Select according to `%s' (end with RET): "
+                 (or pages-directory-previous-regexp "regexp")))))
          ((> (prefix-numeric-value current-prefix-arg) 0)
           (list t t nil))
          ((< (prefix-numeric-value current-prefix-arg) 0)
           (list nil
                 t
                 (read-string
-                 (format "Select according to `%s' (end with RET): "
-                         (or pages-directory-previous-regexp "regexp")))))))
+                 (format-message
+                 "Select according to `%s' (end with RET): "
+                 (or pages-directory-previous-regexp "regexp")))))))
 
   (if (equal regexp "")
       (setq regexp pages-directory-previous-regexp)
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
index 6a14b52..1d872f0 100644
--- a/lisp/textmodes/sgml-mode.el
+++ b/lisp/textmodes/sgml-mode.el
@@ -106,10 +106,10 @@ This list is used when first loading the `sgml-mode' 
library.
 The supported characters and potential disadvantages are:
 
   ?\\\"        Makes \" in text start a string.
-  ?'   Makes ' in text start a string.
+  ?\\='        Makes \\=' in text start a string.
   ?-   Makes -- in text start a comment.
 
-When only one of ?\\\" or ?' are included, \"'\" or '\"', as can be found in
+When only one of ?\\\" or ?\\=' are included, \"\\='\" or \\='\"\\=', as can 
be found in
 DTDs, start a string.  To partially avoid this problem this also makes these
 self insert as named entities depending on `sgml-quick-keys'.
 
@@ -482,14 +482,14 @@ This function is designed for use in 
`fill-nobreak-predicate'.
 (define-derived-mode sgml-mode text-mode '(sgml-xml-mode "XML" "SGML")
   "Major mode for editing SGML documents.
 Makes > match <.
-Keys <, &, SPC within <>, \", / and ' can be electric depending on
+Keys <, &, SPC within <>, \", / and \\=' can be electric depending on
 `sgml-quick-keys'.
 
 An argument of N to a tag-inserting command means to wrap it around
 the next N words.  In Transient Mark mode, when the mark is active,
 N defaults to -1, which means to wrap it around the current region.
 
-If you like upcased tags, put (setq sgml-transformation-function 'upcase)
+If you like upcased tags, put (setq sgml-transformation-function \\='upcase)
 in your init file.
 
 Use \\[sgml-validate] to validate your document with an SGML parser.
@@ -2066,7 +2066,7 @@ Images in many formats can be inlined with <img 
src=\"URL\">.
 If you mainly create your own documents, `sgml-specials' might be
 interesting.  But note that some HTML 2 browsers can't handle `&apos;'.
 To work around that, do:
-   (eval-after-load \"sgml-mode\" '(aset sgml-char-names ?' nil))
+   (eval-after-load \"sgml-mode\" '(aset sgml-char-names ?\\=' nil))
 
 \\{html-mode-map}"
   (setq-local sgml-display-text html-display-text)
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el
index d08daea..37f10a8 100644
--- a/lisp/textmodes/texinfmt.el
+++ b/lisp/textmodes/texinfmt.el
@@ -34,7 +34,7 @@
 If optional argument HERE is non-nil, insert info at point."
   (interactive "P")
   (let ((version-string
-         (format "Version of `texinfmt.el': %s" texinfmt-version)))
+         (format-message "Version of `texinfmt.el': %s" texinfmt-version)))
     (if here
         (insert version-string)
       (if (called-interactively-p 'interactive)
@@ -330,25 +330,24 @@ converted to Info is stored in a temporary buffer."
           (let ((arg (texinfo-parse-arg-discard)))
             (insert " "
               texinfo-region-buffer-name
-              " buffer for:  `")
+              (format-message " buffer for:  `"))
             (insert (file-name-nondirectory (expand-file-name arg)))
-            (insert "',        -*-Text-*-\n")))
+            (insert (format-message "',        -*-Text-*-\n"))))
       ;; Else no address@hidden' line
       (insert " "
               texinfo-region-buffer-name
               " buffer                       -*-Text-*-\n"))
-    (insert "produced by `texinfo-format-region'\n"
+    (insert (format-message "produced by `texinfo-format-region'\n")
             "from a region in: "
             (if (buffer-file-name input-buffer)
-                  (concat "`"
-                          (file-name-sans-versions
-                           (file-name-nondirectory
-                            (buffer-file-name input-buffer)))
-                          "'")
-                (concat "buffer `" (buffer-name input-buffer) "'"))
-              "\nusing `texinfmt.el' version "
-              texinfmt-version
-              ".\n\n")
+               (format-message "`%s'"
+                       (file-name-sans-versions
+                        (file-name-nondirectory
+                         (buffer-file-name input-buffer))))
+             (format-message "buffer `%s'" (buffer-name input-buffer)))
+            (format-message "\nusing `texinfmt.el' version ")
+            texinfmt-version
+            ".\n\n")
 
     ;; Now convert for real.
     (goto-char (point-min))
@@ -479,19 +478,18 @@ if large.  You can use `Info-split' to do this manually."
     ;; Insert info about how this file was made.
     (insert "Info file: "
             texinfo-format-filename ",    -*-Text-*-\n"
-            "produced by `texinfo-format-buffer'\n"
+            (format-message "produced by `texinfo-format-buffer'\n")
             ;; Date string removed so that regression testing is easier.
             ;; "on "
             ;; (insert (format-time-string "%e %b %Y")) " "
             "from file"
             (if (buffer-file-name input-buffer)
-                (concat " `"
+                (format-message " `%s'"
                         (file-name-sans-versions
                          (file-name-nondirectory
-                          (buffer-file-name input-buffer)))
-                        "'")
-              (concat "buffer `" (buffer-name input-buffer) "'"))
-            "\nusing `texinfmt.el' version "
+                          (buffer-file-name input-buffer))))
+              (format-message "buffer `%s'" (buffer-name input-buffer)))
+            (format-message "\nusing `texinfmt.el' version ")
             texinfmt-version
             ".\n\n")
     ;; Return data for indices.
diff --git a/lisp/textmodes/two-column.el b/lisp/textmodes/two-column.el
index ea6b525..5e318b5 100644
--- a/lisp/textmodes/two-column.el
+++ b/lisp/textmodes/two-column.el
@@ -373,9 +373,8 @@ First column's text    sSs  Second column's text
 \(See  \\[describe-mode] .)"
   (interactive "*p")
   (and (2C-other)
-       (if (y-or-n-p (concat "Overwrite associated buffer `"
-                            (buffer-name (2C-other))
-                            "'? "))
+       (if (y-or-n-p (format-message "Overwrite associated buffer ‘%s’? "
+                                    (buffer-name (2C-other))))
           (with-current-buffer (2C-other)
             (erase-buffer))
         (signal 'quit nil)))
diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el
index 64f56f0..87f6718 100644
--- a/lisp/url/url-auth.el
+++ b/lisp/url/url-auth.el
@@ -336,11 +336,11 @@ RATING   a rating between 1 and 10 of the strength of the 
authentication.
                  (t rating)))
         (node (assoc type url-registered-auth-schemes)))
     (if (not (fboundp function))
-       (url-warn 'security
-                 (format (concat
-                          "Tried to register `%s' as an auth scheme"
-                          ", but it is not a function!") function)))
-
+       (url-warn
+        'security
+        (format-message
+         "Tried to register `%s' as an auth scheme, but it is not a function!"
+         function)))
     (if node
        (setcdr node (cons function rating))
       (setq url-registered-auth-schemes
diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el
index e24b6cc..d120d05 100644
--- a/lisp/vc/add-log.el
+++ b/lisp/vc/add-log.el
@@ -481,9 +481,9 @@ try to visit the file for the change under `point' instead."
                (apply 'change-log-goto-source-1
                       (append change-log-find-head change-log-find-tail))
              (error
-              (format "Cannot find more matches for tag `%s' in file `%s'"
-                      (car change-log-find-head)
-                      (nth 2 change-log-find-head)))))
+              "Cannot find more matches for tag `%s' in file `%s'"
+              (car change-log-find-head)
+              (nth 2 change-log-find-head))))
     (save-excursion
       (let* ((at (point))
             (tag-at (change-log-search-tag-name))
@@ -515,9 +515,8 @@ try to visit the file for the change under `point' instead."
          (condition-case nil
              (setq change-log-find-tail
                    (apply 'change-log-goto-source-1 change-log-find-head))
-           (error
-            (format "Cannot find matches for tag `%s' in file `%s'"
-                    tag file)))))))))
+           (error "Cannot find matches for tag `%s' in file `%s'"
+                  tag file))))))))
 
 (defun change-log-next-error (&optional argp reset)
   "Move to the Nth (default 1) next match in a ChangeLog buffer.
diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el
index 948a45e..37ed4a5 100644
--- a/lisp/vc/diff-mode.el
+++ b/lisp/vc/diff-mode.el
@@ -2128,7 +2128,8 @@ fixed, visit it in a buffer."
        (goto-char hunk-end))
       (if modified-buffers
          (message "Deleted trailing whitespace from %s."
-                  (mapconcat (lambda (buf) (concat "`" (buffer-name buf) "'"))
+                  (mapconcat (lambda (buf) (format-message
+                                            "`%s'" (buffer-name buf)))
                              modified-buffers ", "))
        (message "No trailing whitespace to delete.")))))
 
diff --git a/lisp/vc/ediff-diff.el b/lisp/vc/ediff-diff.el
index b309394..352892c 100644
--- a/lisp/vc/ediff-diff.el
+++ b/lisp/vc/ediff-diff.el
@@ -1373,7 +1373,7 @@ affects only files whose names match the expression."
   ;; Normalize empty filter RE to nil.
   (unless (> (length filter-re) 0) (setq filter-re nil))
   ;; Indicate progress
-  (message "Comparing ‘%s’ and ‘%s’ modulo ‘%s’" d1 d2 filter-re)
+  (message "Comparing `%s' and `%s' modulo `%s'" d1 d2 filter-re)
   (cond
    ;; D1 & D2 directories => recurse
    ((and (file-directory-p d1)
diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el
index d6b538c..8c935bf 100644
--- a/lisp/vc/ediff-init.el
+++ b/lisp/vc/ediff-init.el
@@ -1719,6 +1719,9 @@ Unless optional argument INPLACE is non-nil, return a new 
string."
            (aset newstr i tochar)))
       newstr)))
 
+(unless (fboundp 'format-message)
+  (defalias 'format-message 'format))
+
 (defun ediff-abbrev-jobname (jobname)
   (cond ((eq jobname 'ediff-directories)
         "Compare two directories")
diff --git a/lisp/vc/ediff-merg.el b/lisp/vc/ediff-merg.el
index 72dfc08..2da3de1 100644
--- a/lisp/vc/ediff-merg.el
+++ b/lisp/vc/ediff-merg.el
@@ -268,8 +268,8 @@ Buffer B."
     (setq ediff-default-variant
          (intern
           (completing-read
-           (format "Current merge default is `%S'.  New default: "
-                   ediff-default-variant)
+           (format-message "Current merge default is `%S'.  New default: "
+                           ediff-default-variant)
            actual-alist nil 'must-match)))
     (ediff-do-merge ediff-current-difference 'remerge)
     (ediff-recenter)
diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el
index 80990fe..b665034 100644
--- a/lisp/vc/ediff-ptch.el
+++ b/lisp/vc/ediff-ptch.el
@@ -723,7 +723,7 @@ optional argument, then use it."
          (with-output-to-temp-buffer ediff-msg-buffer
            (ediff-with-current-buffer standard-output
              (fundamental-mode))
-           (princ (format
+           (princ (format-message
                    "Patch program has failed due to a bad patch file,
 it couldn't apply all hunks, OR
 it couldn't create the backup for the file being patched.
diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el
index 26bba40..bf5bb5c 100644
--- a/lisp/vc/ediff-util.el
+++ b/lisp/vc/ediff-util.el
@@ -2097,7 +2097,7 @@ ARG is a prefix argument.  If nil, copy the current 
difference region."
 
     (if this-buf-n-th-diff-saved
        (if (yes-or-no-p
-            (format
+            (format-message
              "You've previously copied diff region %d to buffer %S.  Confirm? "
              (1+ n) buf-type))
            t
@@ -2858,13 +2858,14 @@ Hit \\[ediff-recenter] to reset the windows afterward."
           (B-line (ediff-with-current-buffer ediff-buffer-B
                     (1+ (count-lines (point-min) (point)))))
           C-line)
-      (princ (format "\Buffer A's point is on line %d\n" A-line))
-      (princ (format "Buffer B's point is on line %d\n" B-line))
+      (princ (format-message "Buffer A's point is on line %d\n" A-line))
+      (princ (format-message "Buffer B's point is on line %d\n" B-line))
       (if ediff-3way-job
          (progn
            (setq C-line (ediff-with-current-buffer ediff-buffer-C
                           (1+ (count-lines (point-min) (point)))))
-           (princ (format "Buffer C's point is on line %d\n" C-line)))))
+           (princ (format-message
+                   "Buffer C's point is on line %d\n" C-line)))))
 
     (princ (format "\nCurrent difference number = %S\n"
                   (cond ((< ediff-current-difference 0) 'start)
@@ -2890,7 +2891,7 @@ Hit \\[ediff-recenter] to reset the windows afterward."
           (princ
            "\nIgnoring regions that match")
           (princ
-           (format
+           (format-message
             "\n\t regexp `%s' in buffer A  %S\n\t regexp `%s' in buffer B\n"
             ediff-regexp-hide-A ediff-hide-regexp-connective
             ediff-regexp-hide-B)))
@@ -2899,15 +2900,16 @@ Hit \\[ediff-recenter] to reset the windows afterward."
           (princ
            "\nFocusing on regions that match")
           (princ
-           (format
+           (format-message
             "\n\t regexp `%s' in buffer A  %S\n\t regexp `%s' in buffer B\n"
             ediff-regexp-focus-A ediff-focus-regexp-connective
             ediff-regexp-focus-B)))
          (t (princ "\nSelective browsing via a user-defined method.\n")))
 
     (princ
-     (format "\nBugs/suggestions: type `%s' while in Ediff Control Panel."
-            (substitute-command-keys "\\[ediff-submit-report]")))
+     (format-message
+      "\nBugs/suggestions: type `%s' while in Ediff Control Panel."
+      (substitute-command-keys "\\[ediff-submit-report]")))
     ) ; with output
   (if (frame-live-p ediff-control-frame)
       (ediff-reset-mouse ediff-control-frame))
diff --git a/lisp/vc/ediff.el b/lisp/vc/ediff.el
index 837940c..65ca0bd 100644
--- a/lisp/vc/ediff.el
+++ b/lisp/vc/ediff.el
@@ -1294,7 +1294,7 @@ buffer."
   (let (rev1 rev2)
     (setq rev1
          (read-string
-          (format
+          (format-message
            "Version 1 to merge (default %s's working version): "
            (if (stringp file)
                (file-name-nondirectory file) "current buffer")))
@@ -1326,7 +1326,7 @@ buffer."
   (let (rev1 rev2 ancestor-rev)
     (setq rev1
          (read-string
-          (format
+          (format-message
            "Version 1 to merge (default %s's working version): "
            (if (stringp file)
                (file-name-nondirectory file) "current buffer")))
@@ -1338,7 +1338,7 @@ buffer."
                (file-name-nondirectory file) "current buffer")))
          ancestor-rev
          (read-string
-          (format
+          (format-message
            "Ancestor version (default %s's base revision): "
            (if (stringp file)
                (file-name-nondirectory file) "current buffer"))))
diff --git a/lisp/vc/pcvs.el b/lisp/vc/pcvs.el
index 6d8e537..f6a9e08 100644
--- a/lisp/vc/pcvs.el
+++ b/lisp/vc/pcvs.el
@@ -968,10 +968,10 @@ With a prefix argument, prompt for cvs FLAGS to use."
 The files are stored to DIR."
   (interactive
    (let* ((branch (cvs-prefix-get 'cvs-branch-prefix))
-         (prompt (format "CVS Checkout Directory for `%s%s': "
-                        (cvs-get-module)
-                        (if branch (format " (branch: %s)" branch)
-                          ""))))
+         (prompt (format-message "CVS Checkout Directory for `%s%s': "
+                                 (cvs-get-module)
+                                 (if branch (format " (branch: %s)" branch)
+                                   ""))))
      (list (read-directory-name prompt nil default-directory nil))))
   (let ((modules (split-string-and-unquote (cvs-get-module)))
        (flags (cvs-add-branch-prefix
@@ -2403,9 +2403,9 @@ The exact behavior is determined also by 
`cvs-dired-use-hook'."
                         (goto-char (point-min))
                         (looking-at ".*to add this file permanently\n\\'"))
                 (dolist (file (if (listp files) files (list files)))
-                  (insert "cvs add: scheduling file `"
-                          (file-name-nondirectory file)
-                          "' for addition\n")))
+                  (insert (format-message
+                          "cvs add: scheduling file `%s' for addition\n"
+                          (file-name-nondirectory file)))))
              ;; VC never (?) does `cvs -n update' so dcd=nil
              ;; should probably always be the right choice.
              (cvs-parse-process nil subdir))))))))
diff --git a/lisp/vc/vc-cvs.el b/lisp/vc/vc-cvs.el
index 298bcef..0aa9c5a 100644
--- a/lisp/vc/vc-cvs.el
+++ b/lisp/vc/vc-cvs.el
@@ -281,7 +281,7 @@ committed and support display of sticky tags."
     (propertize
      (if (zerop (length sticky-tag))
         string
-       (setq help-echo (format-message "%s on the ‘%s’ branch"
+       (setq help-echo (format-message "%s on the `%s' branch"
                                        help-echo sticky-tag))
        (concat string "[" sticky-tag "]"))
      'help-echo help-echo)))
diff --git a/lisp/whitespace.el b/lisp/whitespace.el
index ddc37f1..3191496 100644
--- a/lisp/whitespace.el
+++ b/lisp/whitespace.el
@@ -1931,13 +1931,13 @@ cleaning up these problems."
 
 
 (defun whitespace-mark-x (nchars condition)
-  "Insert the mark ('X' or ' ') after NCHARS depending on CONDITION."
+  "Insert the mark (‘X’ or ‘ ’) after NCHARS depending on CONDITION."
   (forward-char nchars)
   (insert (if condition "X" " ")))
 
 
 (defun whitespace-insert-option-mark (the-list the-value)
-  "Insert the option mark ('X' or ' ') in toggle options buffer."
+  "Insert the option mark (‘X’ or ‘ ’) in toggle options buffer."
   (goto-char (point-min))
   (forward-line 2)
   (dolist (sym  the-list)
diff --git a/lisp/woman.el b/lisp/woman.el
index e903caa..de2cbc1 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -4548,11 +4548,11 @@ Format paragraphs upto TO."
 
 (defun WoMan-log (format &rest args)
   "Log a message out of FORMAT control string and optional ARGS."
-  (WoMan-log-1 (apply 'format format args)))
+  (WoMan-log-1 (apply #'format-message format args)))
 
 (defun WoMan-warn (format &rest args)
   "Log a warning message out of FORMAT control string and optional ARGS."
-  (setq format (apply 'format format args))
+  (setq format (apply #'format-message format args))
   (WoMan-log-1 (concat "**  " format)))
 
 ;; request is not used dynamically by any callees.
diff --git a/src/ChangeLog.13 b/src/ChangeLog.13
index 196bd8e..ac21628 100644
--- a/src/ChangeLog.13
+++ b/src/ChangeLog.13
@@ -5245,8 +5245,7 @@
        (xg_set_toolkit_horizontal_scroll_bar_thumb)
        (xg_get_default_scrollbar_height)
        (xg_clear_under_internal_border): Extern.
-       * gtkutil.c (xg_frame_resized): Don't call
-       do_pending_window_change.
+       * gtkutil.c (xg_frame_resized): Call do_pending_window_change.
        (xg_frame_set_char_size): Use adjust_frame_size.
        (style_changed_cb): Call update_theme_scrollbar_height and
        x_set_scroll_bar_default_height.
@@ -5367,7 +5366,7 @@
        build without toolkit.  Always clear under internal border.
        (x_set_window_size): Don't check frame size or recompute
        fringes.  Reset fullscreen status before applying sizes.
-       Always resize as requested by pixelwise argument.  Don't call
+       Always resize as requested by pixelwise argument.  Call
        do_pending_window_change.
        (x_wm_set_size_hint): Add call for FRAME_SCROLL_BAR_AREA_HEIGHT.
        (w32_initialize_display_info): Initialize dpyinfo's
@@ -5519,7 +5518,7 @@
        Call x_net_wm_state.
        (x_set_window_size_1, x_wm_set_size_hint): Don't call
        check_frame_size.
-       (x_set_window_size): Don't call check_frame_size and
+       (x_set_window_size): Don't call check_frame_size.  Call
        do_pending_window_change.
        (x_term_init): Init horizontal_scroll_bar_cursor display info.
        (x_create_terminal): Add set_horizontal_scroll_bar_hook.
diff --git a/src/fileio.c b/src/fileio.c
index debd1f3..a36dfbc 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -2655,11 +2655,7 @@ and the directory must allow you to open files in it.  
In order to use a
 directory as a buffer's current directory, this predicate must return true.
 A directory name spec may be given instead; then the value is t
 if the directory so specified exists and really is a readable and
-searchable directory.
-
-The result might be a false positive on MS-Windows in some rare cases,
-i.e., this function could return t for a directory that is not
-accessible by the current user.  */)
+searchable directory.  */)
   (Lisp_Object filename)
 {
   Lisp_Object absname;
@@ -2689,10 +2685,18 @@ bool
 file_accessible_directory_p (Lisp_Object file)
 {
 #ifdef DOS_NT
-  /* There's no need to test whether FILE is searchable, as the
-     searchable/executable bit is invented on DOS_NT platforms.  */
+# ifdef WINDOWSNT
+  /* We need a special-purpose test because (a) NTFS security data is
+     not reflected in Posix-style mode bits, and (b) the trick with
+     accessing "DIR/.", used below on Posix hosts, doesn't work on
+     Windows, because "DIR/." is normalized to just "DIR" before
+     hitting the disk.  */
+  return (SBYTES (file) == 0
+         || w32_accessible_directory_p (SSDATA (file), SBYTES (file)));
+# else /* MSDOS */
   return file_directory_p (SSDATA (file));
-#else
+# endif         /* MSDOS */
+#else   /* !DOS_NT */
   /* On POSIXish platforms, use just one system call; this avoids a
      race and is typically faster.  */
   const char *data = SSDATA (file);
@@ -2725,7 +2729,7 @@ file_accessible_directory_p (Lisp_Object file)
   SAFE_FREE ();
   errno = saved_errno;
   return ok;
-#endif
+#endif /* !DOS_NT */
 }
 
 DEFUN ("file-regular-p", Ffile_regular_p, Sfile_regular_p, 1, 1, 0,
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 89647ee..725e330 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -920,8 +920,6 @@ xg_frame_resized (struct frame *f, int pixelwidth, int 
pixelheight)
       change_frame_size (f, width, height, 0, 1, 0, 1);
       SET_FRAME_GARBAGED (f);
       cancel_mouse_face (f);
-
-      do_pending_window_change (0);
     }
 }
 
diff --git a/src/macfont.h b/src/macfont.h
index 403be94..cab5737 100644
--- a/src/macfont.h
+++ b/src/macfont.h
@@ -45,82 +45,32 @@ struct mac_glyph_layout
   CGGlyph glyph_id;
 };
 
-typedef CTFontDescriptorRef FontDescriptorRef;
-typedef CTFontRef FontRef;
-typedef CTFontSymbolicTraits FontSymbolicTraits;
-typedef NSCharacterCollection CharacterCollection;
-
-#define MAC_FONT_NAME_ATTRIBUTE kCTFontNameAttribute
-#define MAC_FONT_FAMILY_NAME_ATTRIBUTE kCTFontFamilyNameAttribute
-#define MAC_FONT_TRAITS_ATTRIBUTE kCTFontTraitsAttribute
-#define MAC_FONT_SIZE_ATTRIBUTE kCTFontSizeAttribute
-#define MAC_FONT_CASCADE_LIST_ATTRIBUTE kCTFontCascadeListAttribute
-#define MAC_FONT_CHARACTER_SET_ATTRIBUTE kCTFontCharacterSetAttribute
-#define MAC_FONT_LANGUAGES_ATTRIBUTE kCTFontLanguagesAttribute
-#define MAC_FONT_FORMAT_ATTRIBUTE kCTFontFormatAttribute
-#define MAC_FONT_SYMBOLIC_TRAIT kCTFontSymbolicTrait
-#define MAC_FONT_WEIGHT_TRAIT kCTFontWeightTrait
-#define MAC_FONT_WIDTH_TRAIT kCTFontWidthTrait
-#define MAC_FONT_SLANT_TRAIT kCTFontSlantTrait
-
+#if MAC_OS_X_VERSION_MAX_ALLOWED < 1080
 enum {
-  MAC_FONT_TRAIT_ITALIC = kCTFontItalicTrait,
-  MAC_FONT_TRAIT_BOLD = kCTFontBoldTrait,
-  MAC_FONT_TRAIT_MONO_SPACE = kCTFontMonoSpaceTrait,
+  kCTFontTraitItalic = kCTFontItalicTrait,
+  kCTFontTraitBold = kCTFontBoldTrait,
+  kCTFontTraitMonoSpace = kCTFontMonoSpaceTrait,
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
-  MAC_FONT_TRAIT_COLOR_GLYPHS = kCTFontColorGlyphsTrait
+  kCTFontTraitColorGlyphs = kCTFontColorGlyphsTrait
 #else
-  MAC_FONT_TRAIT_COLOR_GLYPHS = (1 << 13)
+  kCTFontTraitColorGlyphs = (1 << 13)
 #endif
 };
 
 enum {
-  MAC_FONT_FORMAT_BITMAP = kCTFontFormatBitmap
+  kCTCharacterCollectionIdentityMapping = 
kCTIdentityMappingCharacterCollection,
+  kCTCharacterCollectionAdobeJapan1 = kCTAdobeJapan1CharacterCollection
 };
 
 enum {
-  MAC_CHARACTER_COLLECTION_IDENTITY_MAPPING = 
NSIdentityMappingCharacterCollection,
-  MAC_CHARACTER_COLLECTION_ADOBE_JAPAN1 = NSAdobeJapan1CharacterCollection
+  kCTFontOrientationDefault = kCTFontDefaultOrientation
 };
+#endif
 
-#define mac_font_descriptor_create_with_attributes \
-  CTFontDescriptorCreateWithAttributes
-#define mac_font_descriptor_create_matching_font_descriptors \
-  CTFontDescriptorCreateMatchingFontDescriptors
-#define mac_font_descriptor_create_matching_font_descriptor \
-  CTFontDescriptorCreateMatchingFontDescriptor
-#define mac_font_descriptor_copy_attribute CTFontDescriptorCopyAttribute
-#define mac_font_descriptor_supports_languages \
-  mac_ctfont_descriptor_supports_languages
-#define mac_font_create_with_name(name, size) \
-  CTFontCreateWithName (name, size, NULL)
-#define mac_font_get_size CTFontGetSize
-#define mac_font_copy_family_name CTFontCopyFamilyName
-#define mac_font_copy_character_set CTFontCopyCharacterSet
-#define mac_font_get_glyphs_for_characters CTFontGetGlyphsForCharacters
-#define mac_font_get_ascent CTFontGetAscent
-#define mac_font_get_descent CTFontGetDescent
-#define mac_font_get_leading CTFontGetLeading
-#define mac_font_get_underline_position CTFontGetUnderlinePosition
-#define mac_font_get_underline_thickness CTFontGetUnderlineThickness
-#define mac_font_copy_graphics_font(font) CTFontCopyGraphicsFont (font, NULL)
-#define mac_font_copy_non_synthetic_table(font, table) \
-  CTFontCopyTable (font, table, kCTFontTableOptionNoOptions)
-
-#define mac_font_create_preferred_family_for_attributes \
-  mac_ctfont_create_preferred_family_for_attributes
-#define mac_font_get_advance_width_for_glyph \
-  mac_ctfont_get_advance_width_for_glyph
-#define mac_font_get_bounding_rect_for_glyph \
-  mac_ctfont_get_bounding_rect_for_glyph
-#define mac_font_create_available_families mac_ctfont_create_available_families
-#define mac_font_shape mac_ctfont_shape
 #if USE_CT_GLYPH_INFO
 #define mac_font_get_glyph_for_cid mac_ctfont_get_glyph_for_cid
 #endif
 
-#define mac_nsctfont_copy_font_descriptor CTFontCopyFontDescriptor
-
 #ifndef kCTVersionNumber10_9
 #define kCTVersionNumber10_9 0x00060000
 #endif
diff --git a/src/macfont.m b/src/macfont.m
index d0d7252..23d272c 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -40,29 +40,21 @@ Original author: YAMAMOTO Mitsuharu
 
 static struct font_driver macfont_driver;
 
-static double mac_ctfont_get_advance_width_for_glyph (CTFontRef, CGGlyph);
-static CGRect mac_ctfont_get_bounding_rect_for_glyph (CTFontRef, CGGlyph);
-static CFArrayRef mac_ctfont_create_available_families (void);
-static Boolean mac_ctfont_equal_in_postscript_name (CTFontRef, CTFontRef);
-static CTLineRef mac_ctfont_create_line_with_string_and_font (CFStringRef,
-                                                              CTFontRef);
-static CFComparisonResult mac_font_family_compare (const void *,
-                                                   const void *, void *);
-static Boolean mac_ctfont_descriptor_supports_languages (CTFontDescriptorRef,
-                                                         CFArrayRef);
-static CFStringRef mac_ctfont_create_preferred_family_for_attributes 
(CFDictionaryRef);
-static CFIndex mac_ctfont_shape (CTFontRef, CFStringRef,
-                                 struct mac_glyph_layout *, CFIndex);
-static CFArrayRef
-mac_font_copy_default_descriptors_for_language (CFStringRef language);
-
-static CFStringRef
-mac_font_copy_default_name_for_charset_and_languages (CFCharacterSetRef 
charset,
-                                                      CFArrayRef languages);
-
+static double mac_font_get_advance_width_for_glyph (CTFontRef, CGGlyph);
+static CGRect mac_font_get_bounding_rect_for_glyph (CTFontRef, CGGlyph);
+static CFArrayRef mac_font_create_available_families (void);
+static Boolean mac_font_equal_in_postscript_name (CTFontRef, CTFontRef);
+static CTLineRef mac_font_create_line_with_string_and_font (CFStringRef,
+                                                           CTFontRef);
+static Boolean mac_font_descriptor_supports_languages (CTFontDescriptorRef,
+                                                      CFArrayRef);
+static CFStringRef mac_font_create_preferred_family_for_attributes 
(CFDictionaryRef);
+static CFIndex mac_font_shape (CTFontRef, CFStringRef,
+                              struct mac_glyph_layout *, CFIndex);
+static CFArrayRef mac_font_copy_default_descriptors_for_language (CFStringRef);
+static CFStringRef mac_font_copy_default_name_for_charset_and_languages 
(CFCharacterSetRef, CFArrayRef);
 #if USE_CT_GLYPH_INFO
-static CGGlyph mac_ctfont_get_glyph_for_cid (CTFontRef,
-                                             CTCharacterCollection,
+static CGGlyph mac_ctfont_get_glyph_for_cid (CTFontRef, CTCharacterCollection,
                                              CGFontIndex);
 #endif
 
@@ -73,7 +65,7 @@ struct macfont_metrics;
 struct macfont_info
 {
   struct font font;
-  FontRef macfont;
+  CTFontRef macfont;
   CGFontRef cgfont;
   ScreenFontRef screen_font;
   struct macfont_cache *cache;
@@ -112,23 +104,22 @@ static const CGAffineTransform synthetic_italic_atfm = 
{1, 0, 0.25, 1, 0, 0};
 static const CGFloat synthetic_bold_factor = 0.024;
 
 static Boolean cfnumber_get_font_symbolic_traits_value (CFNumberRef,
-                                                        FontSymbolicTraits *);
-static void macfont_store_descriptor_attributes (FontDescriptorRef,
+                                                        CTFontSymbolicTraits 
*);
+static void macfont_store_descriptor_attributes (CTFontDescriptorRef,
                                                  Lisp_Object);
-static Lisp_Object macfont_descriptor_entity (FontDescriptorRef,
-                                              Lisp_Object,
-                                              FontSymbolicTraits);
+static Lisp_Object macfont_descriptor_entity (CTFontDescriptorRef, Lisp_Object,
+                                              CTFontSymbolicTraits);
 static CFStringRef macfont_create_family_with_symbol (Lisp_Object);
 static int macfont_glyph_extents (struct font *, CGGlyph,
                                   struct font_metrics *, CGFloat *, int);
 static CFMutableDictionaryRef macfont_create_attributes_with_spec 
(Lisp_Object);
-static Boolean macfont_supports_charset_and_languages_p (FontDescriptorRef,
+static Boolean macfont_supports_charset_and_languages_p (CTFontDescriptorRef,
                                                          CFCharacterSetRef,
                                                          Lisp_Object,
                                                          CFArrayRef);
-static Boolean macfont_closest_traits_index_p (CFArrayRef, FontSymbolicTraits,
+static Boolean macfont_closest_traits_index_p (CFArrayRef, 
CTFontSymbolicTraits,
                                                CFIndex);
-static CFDataRef mac_font_copy_uvs_table (FontRef);
+static CFDataRef mac_font_copy_uvs_table (CTFontRef);
 static void mac_font_get_glyphs_for_variants (CFDataRef, UTF32Char,
                                               const UTF32Char [],
                                               CGGlyph [], CFIndex);
@@ -208,7 +199,7 @@ mac_screen_font_get_advance_width_for_glyph (ScreenFontRef 
font, CGGlyph glyph)
 }
 
 static CGGlyph
-mac_font_get_glyph_for_cid (FontRef font, CharacterCollection collection,
+mac_font_get_glyph_for_cid (CTFontRef font, CTCharacterCollection collection,
                             CGFontIndex cid)
 {
 #if USE_CT_GLYPH_INFO
@@ -755,7 +746,7 @@ macfont_store_utf32char_to_unichars (UTF32Char c, UniChar 
*unichars)
 
 static Boolean
 cfnumber_get_font_symbolic_traits_value (CFNumberRef number,
-                                         FontSymbolicTraits *sym_traits)
+                                         CTFontSymbolicTraits *sym_traits)
 {
   SInt64 sint64_value;
 
@@ -763,7 +754,7 @@ cfnumber_get_font_symbolic_traits_value (CFNumberRef number,
      OS X 10.6 when the value is greater than or equal to 1 << 31.  */
   if (CFNumberGetValue (number, kCFNumberSInt64Type, &sint64_value))
     {
-      *sym_traits = (FontSymbolicTraits) sint64_value;
+      *sym_traits = (CTFontSymbolicTraits) sint64_value;
 
       return true;
     }
@@ -772,7 +763,7 @@ cfnumber_get_font_symbolic_traits_value (CFNumberRef number,
 }
 
 static void
-macfont_store_descriptor_attributes (FontDescriptorRef desc,
+macfont_store_descriptor_attributes (CTFontDescriptorRef desc,
                                      Lisp_Object spec_or_entity)
 {
   CFStringRef str;
@@ -780,15 +771,14 @@ macfont_store_descriptor_attributes (FontDescriptorRef 
desc,
   CFNumberRef num;
   CGFloat floatval;
 
-  str = mac_font_descriptor_copy_attribute (desc,
-                                            MAC_FONT_FAMILY_NAME_ATTRIBUTE);
+  str = CTFontDescriptorCopyAttribute (desc, kCTFontFamilyNameAttribute);
   if (str)
     {
       ASET (spec_or_entity, FONT_FAMILY_INDEX,
             macfont_intern_prop_cfstring (str));
       CFRelease (str);
     }
-  dict = mac_font_descriptor_copy_attribute (desc, MAC_FONT_TRAITS_ATTRIBUTE);
+  dict = CTFontDescriptorCopyAttribute (desc, kCTFontTraitsAttribute);
   if (dict)
     {
       struct {
@@ -796,16 +786,16 @@ macfont_store_descriptor_attributes (FontDescriptorRef 
desc,
         CFStringRef trait;
         CGPoint points[6];
       } numeric_traits[] =
-          {{FONT_WEIGHT_INDEX, MAC_FONT_WEIGHT_TRAIT,
+          {{FONT_WEIGHT_INDEX, kCTFontWeightTrait,
             {{-0.4, 50},       /* light */
              {-0.24, 87.5},    /* (semi-light + normal) / 2 */
              {0, 100},         /* normal */
              {0.24, 140},      /* (semi-bold + normal) / 2 */
              {0.4, 200},       /* bold */
              {CGFLOAT_MAX, CGFLOAT_MAX}}},
-           {FONT_SLANT_INDEX, MAC_FONT_SLANT_TRAIT,
+           {FONT_SLANT_INDEX, kCTFontSlantTrait,
             {{0, 100}, {0.1, 200}, {CGFLOAT_MAX, CGFLOAT_MAX}}},
-           {FONT_WIDTH_INDEX, MAC_FONT_WIDTH_TRAIT,
+           {FONT_WIDTH_INDEX, kCTFontWidthTrait,
             {{0, 100}, {1, 200}, {CGFLOAT_MAX, CGFLOAT_MAX}}}};
       int i;
 
@@ -830,21 +820,21 @@ macfont_store_descriptor_attributes (FontDescriptorRef 
desc,
             }
         }
 
-      num = CFDictionaryGetValue (dict, MAC_FONT_SYMBOLIC_TRAIT);
+      num = CFDictionaryGetValue (dict, kCTFontSymbolicTrait);
       if (num)
         {
-          FontSymbolicTraits sym_traits;
+          CTFontSymbolicTraits sym_traits;
           int spacing;
 
           cfnumber_get_font_symbolic_traits_value (num, &sym_traits);
-          spacing = (sym_traits & MAC_FONT_TRAIT_MONO_SPACE
+          spacing = (sym_traits & kCTFontTraitMonoSpace
                      ? FONT_SPACING_MONO : FONT_SPACING_PROPORTIONAL);
           ASET (spec_or_entity, FONT_SPACING_INDEX, make_number (spacing));
         }
 
       CFRelease (dict);
     }
-  num = mac_font_descriptor_copy_attribute (desc, MAC_FONT_SIZE_ATTRIBUTE);
+  num = CTFontDescriptorCopyAttribute (desc, kCTFontSizeAttribute);
   if (num && CFNumberGetValue (num, kCFNumberCGFloatType, &floatval))
     ASET (spec_or_entity, FONT_SIZE_INDEX, make_number (floatval));
   else
@@ -854,12 +844,12 @@ macfont_store_descriptor_attributes (FontDescriptorRef 
desc,
 }
 
 static Lisp_Object
-macfont_descriptor_entity (FontDescriptorRef desc, Lisp_Object extra,
-                           FontSymbolicTraits synth_sym_traits)
+macfont_descriptor_entity (CTFontDescriptorRef desc, Lisp_Object extra,
+                           CTFontSymbolicTraits synth_sym_traits)
 {
   Lisp_Object entity;
   CFDictionaryRef dict;
-  FontSymbolicTraits sym_traits = 0;
+  CTFontSymbolicTraits sym_traits = 0;
   CFStringRef name;
 
   entity = font_make_entity ();
@@ -869,10 +859,10 @@ macfont_descriptor_entity (FontDescriptorRef desc, 
Lisp_Object extra,
 
   macfont_store_descriptor_attributes (desc, entity);
 
-  dict = mac_font_descriptor_copy_attribute (desc, MAC_FONT_TRAITS_ATTRIBUTE);
+  dict = CTFontDescriptorCopyAttribute (desc, kCTFontTraitsAttribute);
   if (dict)
     {
-      CFNumberRef num = CFDictionaryGetValue (dict, MAC_FONT_SYMBOLIC_TRAIT);
+      CFNumberRef num = CFDictionaryGetValue (dict, kCTFontSymbolicTrait);
 
       if (num)
         cfnumber_get_font_symbolic_traits_value (num, &sym_traits);
@@ -881,16 +871,16 @@ macfont_descriptor_entity (FontDescriptorRef desc, 
Lisp_Object extra,
   if (EQ (AREF (entity, FONT_SIZE_INDEX), make_number (0)))
     ASET (entity, FONT_AVGWIDTH_INDEX, make_number (0));
   ASET (entity, FONT_EXTRA_INDEX, Fcopy_sequence (extra));
-  name = mac_font_descriptor_copy_attribute (desc, MAC_FONT_NAME_ATTRIBUTE);
+  name = CTFontDescriptorCopyAttribute (desc, kCTFontNameAttribute);
   font_put_extra (entity, QCfont_entity,
                   make_save_ptr_int ((void *) name, sym_traits));
-  if (synth_sym_traits & MAC_FONT_TRAIT_ITALIC)
+  if (synth_sym_traits & kCTFontTraitItalic)
     FONT_SET_STYLE (entity, FONT_SLANT_INDEX,
                     make_number (FONT_SLANT_SYNTHETIC_ITALIC));
-  if (synth_sym_traits & MAC_FONT_TRAIT_BOLD)
+  if (synth_sym_traits & kCTFontTraitBold)
     FONT_SET_STYLE (entity, FONT_WEIGHT_INDEX,
                     make_number (FONT_WEIGHT_SYNTHETIC_BOLD));
-  if (synth_sym_traits & MAC_FONT_TRAIT_MONO_SPACE)
+  if (synth_sym_traits & kCTFontTraitMonoSpace)
     ASET (entity, FONT_SPACING_INDEX,
           make_number (FONT_SPACING_SYNTHETIC_MONO));
 
@@ -1039,7 +1029,7 @@ macfont_create_family_with_symbol (Lisp_Object symbol)
 {
   CFStringRef result = NULL, family_name;
   CFDictionaryRef attributes = NULL;
-  FontDescriptorRef pat_desc = NULL;
+  CTFontDescriptorRef pat_desc = NULL;
 
   if (macfont_get_family_cache_if_present (symbol, &result))
     return result ? CFRetain (result) : NULL;
@@ -1049,7 +1039,7 @@ macfont_create_family_with_symbol (Lisp_Object symbol)
     {
       attributes =
        CFDictionaryCreate (NULL,
-                           (const void **) &MAC_FONT_FAMILY_NAME_ATTRIBUTE,
+                           (const void **) &kCTFontFamilyNameAttribute,
                            (const void **) &family_name, 1,
                            &kCFTypeDictionaryKeyCallBacks,
                            &kCFTypeDictionaryValueCallBacks);
@@ -1057,19 +1047,18 @@ macfont_create_family_with_symbol (Lisp_Object symbol)
     }
   if (attributes)
     {
-      pat_desc = mac_font_descriptor_create_with_attributes (attributes);
+      pat_desc = CTFontDescriptorCreateWithAttributes (attributes);
       CFRelease (attributes);
     }
   if (pat_desc)
     {
-      FontDescriptorRef desc =
-       mac_font_descriptor_create_matching_font_descriptor (pat_desc, NULL);
+      CTFontDescriptorRef desc =
+       CTFontDescriptorCreateMatchingFontDescriptor (pat_desc, NULL);
 
       if (desc)
        {
          result =
-           mac_font_descriptor_copy_attribute (desc,
-                                               MAC_FONT_FAMILY_NAME_ATTRIBUTE);
+           CTFontDescriptorCopyAttribute (desc, kCTFontFamilyNameAttribute);
          CFRelease (desc);
        }
       macfont_set_family_cache (symbol, result);
@@ -1126,7 +1115,7 @@ macfont_glyph_extents (struct font *font, CGGlyph glyph,
                        int force_integral_p)
 {
   struct macfont_info *macfont_info = (struct macfont_info *) font;
-  FontRef macfont = macfont_info->macfont;
+  CTFontRef macfont = macfont_info->macfont;
   int row, col;
   struct macfont_metrics *cache;
   int width;
@@ -1196,10 +1185,9 @@ macfont_glyph_extents (struct font *font, CGGlyph glyph,
             }
           if (macfont_info->synthetic_bold_p && ! force_integral_p)
             {
-              CGFloat d =
-                - synthetic_bold_factor * mac_font_get_size (macfont) / 2;
+              CGFloat d = - synthetic_bold_factor * CTFontGetSize (macfont) / 
2;
 
-                bounds = CGRectInset (bounds, d, d);
+             bounds = CGRectInset (bounds, d, d);
             }
           switch (macfont_info->spacing)
             {
@@ -1302,8 +1290,8 @@ struct macfont_cache
     /* Character collection specifying the destination of the mapping
        provided by `table' above.  If `table' is obtained from the UVS
        subtable in the font cmap table, then the value of this member
-       should be MAC_CHARACTER_COLLECTION_IDENTITY_MAPPING.  */
-    CharacterCollection collection;
+       should be kCTCharacterCollectionIdentityMapping.  */
+    CTCharacterCollection collection;
   } uvs;
 };
 
@@ -1314,8 +1302,8 @@ static CFCharacterSetRef macfont_get_cf_charset (struct 
font *);
 static CFCharacterSetRef macfont_get_cf_charset_for_name (CFStringRef);
 static CGGlyph macfont_get_glyph_for_character (struct font *, UTF32Char);
 static CGGlyph macfont_get_glyph_for_cid (struct font *font,
-                                          CharacterCollection, CGFontIndex);
-static CFDataRef macfont_get_uvs_table (struct font *, CharacterCollection *);
+                                          CTCharacterCollection, CGFontIndex);
+static CFDataRef macfont_get_uvs_table (struct font *, CTCharacterCollection 
*);
 
 static struct macfont_cache *
 macfont_lookup_cache (CFStringRef key)
@@ -1335,7 +1323,7 @@ macfont_lookup_cache (CFStringRef key)
 
   if (cache == NULL)
     {
-      FontRef macfont = mac_font_create_with_name (key, 0);
+      CTFontRef macfont = CTFontCreateWithName (key, 0, NULL);
 
       if (macfont)
         {
@@ -1353,7 +1341,7 @@ macfont_lookup_cache (CFStringRef key)
                 CFCharacterSetCreateWithCharactersInRange (NULL, range);
             }
           if (cache->cf_charset == NULL)
-            cache->cf_charset = mac_font_copy_character_set (macfont);
+            cache->cf_charset = CTFontCopyCharacterSet (macfont);
           CFDictionaryAddValue (macfont_cache_dictionary, key,
                                 (const void *) cache);
           CFRelease (macfont);
@@ -1410,7 +1398,7 @@ static CGGlyph
 macfont_get_glyph_for_character (struct font *font, UTF32Char c)
 {
   struct macfont_info *macfont_info = (struct macfont_info *) font;
-  FontRef macfont = macfont_info->macfont;
+  CTFontRef macfont = macfont_info->macfont;
   struct macfont_cache *cache = macfont_info->cache;
 
   if (c < 0xD800 || (c > 0xDFFF && c < 0x10000))
@@ -1449,8 +1437,7 @@ macfont_get_glyph_for_character (struct font *font, 
UTF32Char c)
               if (nkeys_or_perm + 1 != ROW_PERM_OFFSET)
                 {
                   ch = c;
-                  if (!mac_font_get_glyphs_for_characters (macfont, &ch,
-                                                           &glyph, 1)
+                  if (!CTFontGetGlyphsForCharacters (macfont, &ch, &glyph, 1)
                       || glyph == 0)
                     glyph = kCGFontIndexInvalid;
 
@@ -1493,8 +1480,7 @@ macfont_get_glyph_for_character (struct font *font, 
UTF32Char c)
           glyphs = xmalloc (sizeof (CGGlyph) * 256);
           if (len > 0)
             {
-              mac_font_get_glyphs_for_characters (macfont, unichars,
-                                                  glyphs, len);
+              CTFontGetGlyphsForCharacters (macfont, unichars, glyphs, len);
               while (i > len)
                 {
                   int next = unichars[len - 1] % 256;
@@ -1550,8 +1536,7 @@ macfont_get_glyph_for_character (struct font *font, 
UTF32Char c)
           CGGlyph glyphs[2];
           CFIndex count = macfont_store_utf32char_to_unichars (c, unichars);
 
-          if (mac_font_get_glyphs_for_characters (macfont, unichars, glyphs,
-                                                  count))
+          if (CTFontGetGlyphsForCharacters (macfont, unichars, glyphs, count))
             glyph = glyphs[0];
           if (glyph == 0)
             glyph = kCGFontIndexInvalid;
@@ -1566,33 +1551,33 @@ macfont_get_glyph_for_character (struct font *font, 
UTF32Char c)
 }
 
 static CGGlyph
-macfont_get_glyph_for_cid (struct font *font, CharacterCollection collection,
+macfont_get_glyph_for_cid (struct font *font, CTCharacterCollection collection,
                            CGFontIndex cid)
 {
   struct macfont_info *macfont_info = (struct macfont_info *) font;
-  FontRef macfont = macfont_info->macfont;
+  CTFontRef macfont = macfont_info->macfont;
 
   /* Cache it? */
   return mac_font_get_glyph_for_cid (macfont, collection, cid);
 }
 
 static CFDataRef
-macfont_get_uvs_table (struct font *font, CharacterCollection *collection)
+macfont_get_uvs_table (struct font *font, CTCharacterCollection *collection)
 {
   struct macfont_info *macfont_info = (struct macfont_info *) font;
-  FontRef macfont = macfont_info->macfont;
+  CTFontRef macfont = macfont_info->macfont;
   struct macfont_cache *cache = macfont_info->cache;
   CFDataRef result = NULL;
 
   if (cache->uvs.table == NULL)
     {
       CFDataRef uvs_table = mac_font_copy_uvs_table (macfont);
-      CharacterCollection uvs_collection =
-        MAC_CHARACTER_COLLECTION_IDENTITY_MAPPING;
+      CTCharacterCollection uvs_collection =
+        kCTCharacterCollectionIdentityMapping;
 
       if (uvs_table == NULL
           && mac_font_get_glyph_for_cid (macfont,
-                                         MAC_CHARACTER_COLLECTION_ADOBE_JAPAN1,
+                                         kCTCharacterCollectionAdobeJapan1,
                                          6480) != kCGFontIndexInvalid)
         {
           /* If the glyph for U+4E55 is accessible via its CID 6480,
@@ -1609,7 +1594,7 @@ macfont_get_uvs_table (struct font *font, 
CharacterCollection *collection)
           if (mac_uvs_table_adobe_japan1)
             {
               uvs_table = CFRetain (mac_uvs_table_adobe_japan1);
-              uvs_collection = MAC_CHARACTER_COLLECTION_ADOBE_JAPAN1;
+              uvs_collection = kCTCharacterCollectionAdobeJapan1;
             }
         }
       if (uvs_table == NULL)
@@ -1852,16 +1837,16 @@ macfont_create_attributes_with_spec (Lisp_Object spec)
     CFStringRef trait;
     CGPoint points[6];
   } numeric_traits[] =
-      {{FONT_WEIGHT_INDEX, MAC_FONT_WEIGHT_TRAIT,
+      {{FONT_WEIGHT_INDEX, kCTFontWeightTrait,
         {{-0.4, 50},           /* light */
          {-0.24, 87.5},                /* (semi-light + normal) / 2 */
          {0, 100},             /* normal */
          {0.24, 140},          /* (semi-bold + normal) / 2 */
          {0.4, 200},           /* bold */
          {CGFLOAT_MAX, CGFLOAT_MAX}}},
-       {FONT_SLANT_INDEX, MAC_FONT_SLANT_TRAIT,
+       {FONT_SLANT_INDEX, kCTFontSlantTrait,
         {{0, 100}, {0.1, 200}, {CGFLOAT_MAX, CGFLOAT_MAX}}},
-       {FONT_WIDTH_INDEX, MAC_FONT_WIDTH_TRAIT,
+       {FONT_WIDTH_INDEX, kCTFontWidthTrait,
         {{0, 100}, {1, 200}, {CGFLOAT_MAX, CGFLOAT_MAX}}}};
 
   registry = AREF (spec, FONT_REGISTRY_INDEX);
@@ -1977,7 +1962,7 @@ macfont_create_attributes_with_spec (Lisp_Object spec)
 
       if (! family)
         goto err;
-      CFDictionaryAddValue (attributes, MAC_FONT_FAMILY_NAME_ATTRIBUTE,
+      CFDictionaryAddValue (attributes, kCTFontFamilyNameAttribute,
                             family);
       CFRelease (family);
     }
@@ -2018,16 +2003,16 @@ macfont_create_attributes_with_spec (Lisp_Object spec)
         }
     }
   if (CFDictionaryGetCount (traits))
-    CFDictionaryAddValue (attributes, MAC_FONT_TRAITS_ATTRIBUTE, traits);
+    CFDictionaryAddValue (attributes, kCTFontTraitsAttribute, traits);
 
   if (charset)
-    CFDictionaryAddValue (attributes, MAC_FONT_CHARACTER_SET_ATTRIBUTE,
+    CFDictionaryAddValue (attributes, kCTFontCharacterSetAttribute,
                           charset);
   if (charset_string)
     CFDictionaryAddValue (attributes, MAC_FONT_CHARACTER_SET_STRING_ATTRIBUTE,
                           charset_string);
   if (langarray)
-    CFDictionaryAddValue (attributes, MAC_FONT_LANGUAGES_ATTRIBUTE, langarray);
+    CFDictionaryAddValue (attributes, kCTFontLanguagesAttribute, langarray);
 
   goto finish;
 
@@ -2056,7 +2041,7 @@ macfont_create_attributes_with_spec (Lisp_Object spec)
 }
 
 static Boolean
-macfont_supports_charset_and_languages_p (FontDescriptorRef desc,
+macfont_supports_charset_and_languages_p (CTFontDescriptorRef desc,
                                           CFCharacterSetRef charset,
                                           Lisp_Object chars,
                                           CFArrayRef languages)
@@ -2066,8 +2051,7 @@ macfont_supports_charset_and_languages_p 
(FontDescriptorRef desc,
   if (charset || VECTORP (chars))
     {
       CFCharacterSetRef desc_charset =
-        mac_font_descriptor_copy_attribute (desc,
-                                            MAC_FONT_CHARACTER_SET_ATTRIBUTE);
+        CTFontDescriptorCopyAttribute (desc, kCTFontCharacterSetAttribute);
 
       if (desc_charset == NULL)
         result = false;
@@ -2097,20 +2081,20 @@ macfont_supports_charset_and_languages_p 
(FontDescriptorRef desc,
 }
 
 static int
-macfont_traits_distance (FontSymbolicTraits sym_traits1,
-                         FontSymbolicTraits sym_traits2)
+macfont_traits_distance (CTFontSymbolicTraits sym_traits1,
+                         CTFontSymbolicTraits sym_traits2)
 {
-  FontSymbolicTraits diff = (sym_traits1 ^ sym_traits2);
+  CTFontSymbolicTraits diff = (sym_traits1 ^ sym_traits2);
   int distance = 0;
 
   /* We prefer synthetic bold of italic to synthetic italic of bold
      when both bold and italic are available but bold-italic is not
      available.  */
-  if (diff & MAC_FONT_TRAIT_BOLD)
+  if (diff & kCTFontTraitBold)
     distance |= (1 << 0);
-  if (diff & MAC_FONT_TRAIT_ITALIC)
+  if (diff & kCTFontTraitItalic)
     distance |= (1 << 1);
-  if (diff & MAC_FONT_TRAIT_MONO_SPACE)
+  if (diff & kCTFontTraitMonoSpace)
     distance |= (1 << 2);
 
   return distance;
@@ -2118,21 +2102,21 @@ macfont_traits_distance (FontSymbolicTraits sym_traits1,
 
 static Boolean
 macfont_closest_traits_index_p (CFArrayRef traits_array,
-                                FontSymbolicTraits target,
+                                CTFontSymbolicTraits target,
                                 CFIndex index)
 {
   CFIndex i, count = CFArrayGetCount (traits_array);
-  FontSymbolicTraits traits;
+  CTFontSymbolicTraits traits;
   int my_distance;
 
-  traits = ((FontSymbolicTraits) (uintptr_t)
+  traits = ((CTFontSymbolicTraits) (uintptr_t)
             CFArrayGetValueAtIndex (traits_array, index));
   my_distance = macfont_traits_distance (target, traits);
 
   for (i = 0; i < count; i++)
     if (i != index)
       {
-        traits = ((FontSymbolicTraits) (uintptr_t)
+        traits = ((CTFontSymbolicTraits) (uintptr_t)
                   CFArrayGetValueAtIndex (traits_array, i));
         if (macfont_traits_distance (target, traits) < my_distance)
           return false;
@@ -2150,7 +2134,7 @@ macfont_list (struct frame *f, Lisp_Object spec)
   CFMutableDictionaryRef attributes = NULL, traits;
   Lisp_Object chars = Qnil;
   int spacing = -1;
-  FontSymbolicTraits synth_sym_traits = 0;
+  CTFontSymbolicTraits synth_sym_traits = 0;
   CFArrayRef families;
   CFIndex families_count;
   CFCharacterSetRef charset = NULL;
@@ -2170,28 +2154,28 @@ macfont_list (struct frame *f, Lisp_Object spec)
   if (! attributes)
     goto finish;
 
-  languages = CFDictionaryGetValue (attributes, MAC_FONT_LANGUAGES_ATTRIBUTE);
+  languages = CFDictionaryGetValue (attributes, kCTFontLanguagesAttribute);
 
   if (INTEGERP (AREF (spec, FONT_SPACING_INDEX)))
     spacing = XINT (AREF (spec, FONT_SPACING_INDEX));
 
   traits = ((CFMutableDictionaryRef)
-            CFDictionaryGetValue (attributes, MAC_FONT_TRAITS_ATTRIBUTE));
+            CFDictionaryGetValue (attributes, kCTFontTraitsAttribute));
 
   n = FONT_SLANT_NUMERIC (spec);
   if (n < 0 || n == FONT_SLANT_SYNTHETIC_ITALIC)
     {
-      synth_sym_traits |= MAC_FONT_TRAIT_ITALIC;
+      synth_sym_traits |= kCTFontTraitItalic;
       if (traits)
-        CFDictionaryRemoveValue (traits, MAC_FONT_SLANT_TRAIT);
+        CFDictionaryRemoveValue (traits, kCTFontSlantTrait);
     }
 
   n = FONT_WEIGHT_NUMERIC (spec);
   if (n < 0 || n == FONT_WEIGHT_SYNTHETIC_BOLD)
     {
-      synth_sym_traits |= MAC_FONT_TRAIT_BOLD;
+      synth_sym_traits |= kCTFontTraitBold;
       if (traits)
-        CFDictionaryRemoveValue (traits, MAC_FONT_WEIGHT_TRAIT);
+        CFDictionaryRemoveValue (traits, kCTFontWeightTrait);
     }
 
   if (languages
@@ -2202,7 +2186,7 @@ macfont_list (struct frame *f, Lisp_Object spec)
       if (CFStringHasPrefix (language, CFSTR ("ja"))
           || CFStringHasPrefix (language, CFSTR ("ko"))
           || CFStringHasPrefix (language, CFSTR ("zh")))
-        synth_sym_traits |= MAC_FONT_TRAIT_MONO_SPACE;
+        synth_sym_traits |= kCTFontTraitMonoSpace;
     }
 
   /* Create array of families.  */
@@ -2254,12 +2238,11 @@ macfont_list (struct frame *f, Lisp_Object spec)
         }
     }
 
-  charset = CFDictionaryGetValue (attributes,
-                                  MAC_FONT_CHARACTER_SET_ATTRIBUTE);
+  charset = CFDictionaryGetValue (attributes, kCTFontCharacterSetAttribute);
   if (charset)
     {
       CFRetain (charset);
-      CFDictionaryRemoveValue (attributes, MAC_FONT_CHARACTER_SET_ATTRIBUTE);
+      CFDictionaryRemoveValue (attributes, kCTFontCharacterSetAttribute);
     }
   else
     {
@@ -2276,7 +2259,7 @@ macfont_list (struct frame *f, Lisp_Object spec)
   if (languages)
     {
       CFRetain (languages);
-      CFDictionaryRemoveValue (attributes, MAC_FONT_LANGUAGES_ATTRIBUTE);
+      CFDictionaryRemoveValue (attributes, kCTFontLanguagesAttribute);
     }
 
   val = Qnil;
@@ -2285,16 +2268,16 @@ macfont_list (struct frame *f, Lisp_Object spec)
   for (i = 0; i < families_count; i++)
     {
       CFStringRef family_name = CFArrayGetValueAtIndex (families, i);
-      FontDescriptorRef pat_desc;
+      CTFontDescriptorRef pat_desc;
       CFArrayRef descs;
       CFIndex descs_count;
       CFMutableArrayRef filtered_descs, traits_array;
       Lisp_Object entity;
       int j;
 
-      CFDictionarySetValue (attributes, MAC_FONT_FAMILY_NAME_ATTRIBUTE,
+      CFDictionarySetValue (attributes, kCTFontFamilyNameAttribute,
                             family_name);
-      pat_desc = mac_font_descriptor_create_with_attributes (attributes);
+      pat_desc = CTFontDescriptorCreateWithAttributes (attributes);
       if (! pat_desc)
         goto err;
 
@@ -2303,13 +2286,11 @@ macfont_list (struct frame *f, Lisp_Object spec)
          So we use CTFontDescriptorCreateMatchingFontDescriptor (no
          trailing "s") for such a font.  */
       if (!CFEqual (family_name, CFSTR ("LastResort")))
-        descs = mac_font_descriptor_create_matching_font_descriptors (pat_desc,
-                                                                      NULL);
+        descs = CTFontDescriptorCreateMatchingFontDescriptors (pat_desc, NULL);
       else
         {
-          FontDescriptorRef lr_desc =
-            mac_font_descriptor_create_matching_font_descriptor (pat_desc,
-                                                                 NULL);
+          CTFontDescriptorRef lr_desc =
+            CTFontDescriptorCreateMatchingFontDescriptor (pat_desc, NULL);
           if (lr_desc)
             {
               descs = CFArrayCreate (NULL, (const void **) &lr_desc, 1,
@@ -2338,31 +2319,30 @@ macfont_list (struct frame *f, Lisp_Object spec)
       traits_array = CFArrayCreateMutable (NULL, descs_count, NULL);
       for (j = 0; j < descs_count; j++)
         {
-          FontDescriptorRef desc = CFArrayGetValueAtIndex (descs, j);
+          CTFontDescriptorRef desc = CFArrayGetValueAtIndex (descs, j);
           CFDictionaryRef dict;
           CFNumberRef num;
-          FontSymbolicTraits sym_traits;
+          CTFontSymbolicTraits sym_traits;
 
-          dict = mac_font_descriptor_copy_attribute (desc,
-                                                     
MAC_FONT_TRAITS_ATTRIBUTE);
+          dict = CTFontDescriptorCopyAttribute (desc, kCTFontTraitsAttribute);
           if (dict == NULL)
             continue;
 
-          num = CFDictionaryGetValue (dict, MAC_FONT_SYMBOLIC_TRAIT);
+          num = CFDictionaryGetValue (dict, kCTFontSymbolicTrait);
           CFRelease (dict);
           if (num == NULL
               || !cfnumber_get_font_symbolic_traits_value (num, &sym_traits))
             continue;
 
           if (spacing >= 0
-              && !(synth_sym_traits & MAC_FONT_TRAIT_MONO_SPACE)
-              && (((sym_traits & MAC_FONT_TRAIT_MONO_SPACE) != 0)
+              && !(synth_sym_traits & kCTFontTraitMonoSpace)
+              && (((sym_traits & kCTFontTraitMonoSpace) != 0)
                   != (spacing >= FONT_SPACING_MONO)))
             continue;
 
           /* Don't use a color bitmap font unless its family is
              explicitly specified.  */
-          if ((sym_traits & MAC_FONT_TRAIT_COLOR_GLYPHS) && NILP (family))
+          if ((sym_traits & kCTFontTraitColorGlyphs) && NILP (family))
             continue;
 
           if (j > 0
@@ -2381,27 +2361,26 @@ macfont_list (struct frame *f, Lisp_Object spec)
 
       for (j = 0; j < descs_count; j++)
         {
-          FontDescriptorRef desc = CFArrayGetValueAtIndex (descs, j);
-          FontSymbolicTraits sym_traits =
-            ((FontSymbolicTraits) (uintptr_t)
+          CTFontDescriptorRef desc = CFArrayGetValueAtIndex (descs, j);
+          CTFontSymbolicTraits sym_traits =
+            ((CTFontSymbolicTraits) (uintptr_t)
              CFArrayGetValueAtIndex (traits_array, j));
-          FontSymbolicTraits mask_min, mask_max, imask, bmask, mmask;
+          CTFontSymbolicTraits mask_min, mask_max, imask, bmask, mmask;
 
           mask_min = ((synth_sym_traits ^ sym_traits)
-                      & (MAC_FONT_TRAIT_ITALIC | MAC_FONT_TRAIT_BOLD));
+                      & (kCTFontTraitItalic | kCTFontTraitBold));
           if (FONT_SLANT_NUMERIC (spec) < 0)
-            mask_min &= ~MAC_FONT_TRAIT_ITALIC;
+            mask_min &= ~kCTFontTraitItalic;
           if (FONT_WEIGHT_NUMERIC (spec) < 0)
-            mask_min &= ~MAC_FONT_TRAIT_BOLD;
+            mask_min &= ~kCTFontTraitBold;
 
           mask_max = (synth_sym_traits & ~sym_traits);
           /* Synthetic bold does not work for bitmap-only fonts on Mac
              OS X 10.6.  */
-          if ((mask_min ^ mask_max) & MAC_FONT_TRAIT_BOLD)
+          if ((mask_min ^ mask_max) & kCTFontTraitBold)
             {
               CFNumberRef format =
-                mac_font_descriptor_copy_attribute (desc,
-                                                    MAC_FONT_FORMAT_ATTRIBUTE);
+                CTFontDescriptorCopyAttribute (desc, kCTFontFormatAttribute);
 
               if (format)
                 {
@@ -2409,24 +2388,24 @@ macfont_list (struct frame *f, Lisp_Object spec)
 
                   if (CFNumberGetValue (format, kCFNumberSInt32Type,
                                         &format_val)
-                      && format_val == MAC_FONT_FORMAT_BITMAP)
-                    mask_max &= ~MAC_FONT_TRAIT_BOLD;
+                      && format_val == kCTFontFormatBitmap)
+                    mask_max &= ~kCTFontTraitBold;
                 }
             }
           if (spacing >= 0)
-            mask_min |= (mask_max & MAC_FONT_TRAIT_MONO_SPACE);
-
-          for (mmask = (mask_min & MAC_FONT_TRAIT_MONO_SPACE);
-               mmask <= (mask_max & MAC_FONT_TRAIT_MONO_SPACE);
-               mmask += MAC_FONT_TRAIT_MONO_SPACE)
-            for (bmask = (mask_min & MAC_FONT_TRAIT_BOLD);
-                 bmask <= (mask_max & MAC_FONT_TRAIT_BOLD);
-                 bmask += MAC_FONT_TRAIT_BOLD)
-              for (imask = (mask_min & MAC_FONT_TRAIT_ITALIC);
-                   imask <= (mask_max & MAC_FONT_TRAIT_ITALIC);
-                   imask += MAC_FONT_TRAIT_ITALIC)
+            mask_min |= (mask_max & kCTFontTraitMonoSpace);
+
+          for (mmask = (mask_min & kCTFontTraitMonoSpace);
+               mmask <= (mask_max & kCTFontTraitMonoSpace);
+               mmask += kCTFontTraitMonoSpace)
+            for (bmask = (mask_min & kCTFontTraitBold);
+                 bmask <= (mask_max & kCTFontTraitBold);
+                 bmask += kCTFontTraitBold)
+              for (imask = (mask_min & kCTFontTraitItalic);
+                   imask <= (mask_max & kCTFontTraitItalic);
+                   imask += kCTFontTraitItalic)
                 {
-                  FontSymbolicTraits synth = (imask | bmask | mmask);
+                  CTFontSymbolicTraits synth = (imask | bmask | mmask);
 
                   if (synth == 0
                       || macfont_closest_traits_index_p (traits_array,
@@ -2467,20 +2446,19 @@ macfont_match (struct frame * frame, Lisp_Object spec)
 {
   Lisp_Object entity = Qnil;
   CFMutableDictionaryRef attributes;
-  FontDescriptorRef pat_desc = NULL, desc = NULL;
+  CTFontDescriptorRef pat_desc = NULL, desc = NULL;
 
   block_input ();
 
   attributes = macfont_create_attributes_with_spec (spec);
   if (attributes)
     {
-      pat_desc = mac_font_descriptor_create_with_attributes (attributes);
+      pat_desc = CTFontDescriptorCreateWithAttributes (attributes);
       CFRelease (attributes);
     }
   if (pat_desc)
     {
-      desc = mac_font_descriptor_create_matching_font_descriptor (pat_desc,
-                                                                  NULL);
+      desc = CTFontDescriptorCreateMatchingFontDescriptor (pat_desc, NULL);
       CFRelease (pat_desc);
     }
   if (desc)
@@ -2538,8 +2516,8 @@ macfont_open (struct frame * f, Lisp_Object entity, int 
pixel_size)
   struct macfont_info *macfont_info = NULL;
   struct font *font;
   int size;
-  FontRef macfont;
-  FontSymbolicTraits sym_traits;
+  CTFontRef macfont;
+  CTFontSymbolicTraits sym_traits;
   char name[256];
   int len, i, total_width;
   CGGlyph glyph;
@@ -2558,7 +2536,7 @@ macfont_open (struct frame * f, Lisp_Object entity, int 
pixel_size)
     size = pixel_size;
 
   block_input ();
-  macfont = mac_font_create_with_name (font_name, size);
+  macfont = CTFontCreateWithName (font_name, size, NULL);
   if (macfont)
     {
       int fontsize = (int) [((NSFont *) macfont) pointSize];
@@ -2579,7 +2557,7 @@ macfont_open (struct frame * f, Lisp_Object entity, int 
pixel_size)
 
   macfont_info = (struct macfont_info *) font;
   macfont_info->macfont = macfont;
-  macfont_info->cgfont = mac_font_copy_graphics_font (macfont);
+  macfont_info->cgfont = CTFontCopyGraphicsFont (macfont, NULL);
 
   val = assq_no_quit (QCdestination, AREF (entity, FONT_EXTRA_INDEX));
   if (CONSP (val) && EQ (XCDR (val), make_number (1)))
@@ -2595,13 +2573,13 @@ macfont_open (struct frame * f, Lisp_Object entity, int 
pixel_size)
   macfont_info->synthetic_bold_p = 0;
   macfont_info->spacing = MACFONT_SPACING_PROPORTIONAL;
   macfont_info->antialias = MACFONT_ANTIALIAS_DEFAULT;
-  if (!(sym_traits & MAC_FONT_TRAIT_ITALIC)
+  if (!(sym_traits & kCTFontTraitItalic)
       && FONT_SLANT_NUMERIC (entity) == FONT_SLANT_SYNTHETIC_ITALIC)
     macfont_info->synthetic_italic_p = 1;
-  if (!(sym_traits & MAC_FONT_TRAIT_BOLD)
+  if (!(sym_traits & kCTFontTraitBold)
       && FONT_WEIGHT_NUMERIC (entity) == FONT_WEIGHT_SYNTHETIC_BOLD)
     macfont_info->synthetic_bold_p = 1;
-  if (sym_traits & MAC_FONT_TRAIT_MONO_SPACE)
+  if (sym_traits & kCTFontTraitMonoSpace)
     macfont_info->spacing = MACFONT_SPACING_MONO;
   else if (INTEGERP (AREF (entity, FONT_SPACING_INDEX))
            && (XINT (AREF (entity, FONT_SPACING_INDEX))
@@ -2617,7 +2595,7 @@ macfont_open (struct frame * f, Lisp_Object entity, int 
pixel_size)
           NILP (XCDR (val)) ? MACFONT_ANTIALIAS_OFF : MACFONT_ANTIALIAS_ON;
     }
   macfont_info->color_bitmap_p = 0;
-  if (sym_traits & MAC_FONT_TRAIT_COLOR_GLYPHS)
+  if (sym_traits & kCTFontTraitColorGlyphs)
     macfont_info->color_bitmap_p = 1;
 
   glyph = macfont_get_glyph_for_character (font, ' ');
@@ -2646,12 +2624,12 @@ macfont_open (struct frame * f, Lisp_Object entity, int 
pixel_size)
     {
       CFStringRef family_name;
 
-      ascent = mac_font_get_ascent (macfont);
-      descent = mac_font_get_descent (macfont);
-      leading = mac_font_get_leading (macfont);
+      ascent = CTFontGetAscent (macfont);
+      descent = CTFontGetDescent (macfont);
+      leading = CTFontGetLeading (macfont);
       /* AppKit and WebKit do some adjustment to the heights of
          Courier, Helvetica, and Times.  */
-      family_name = mac_font_copy_family_name (macfont);
+      family_name = CTFontCopyFamilyName (macfont);
       if (family_name)
         {
           if (CFEqual (family_name, CFSTR ("Courier"))
@@ -2674,8 +2652,8 @@ macfont_open (struct frame * f, Lisp_Object entity, int 
pixel_size)
     font->descent = descent + leading + 0.5f;
   font->height = font->ascent + font->descent;
 
-  font->underline_position = - mac_font_get_underline_position (macfont) + 
0.5f;
-  font->underline_thickness = mac_font_get_underline_thickness (macfont) + 
0.5f;
+  font->underline_position = - CTFontGetUnderlinePosition (macfont) + 0.5f;
+  font->underline_thickness = CTFontGetUnderlineThickness (macfont) + 0.5f;
 
   unblock_input ();
 
@@ -2798,7 +2776,7 @@ macfont_draw (struct glyph_string *s, int from, int to, 
int x, int y,
   CGPoint text_position;
   CGGlyph *glyphs;
   CGPoint *positions;
-  CGFloat font_size = mac_font_get_size (macfont_info->macfont);
+  CGFloat font_size = CTFontGetSize (macfont_info->macfont);
   bool no_antialias_p =
     (NILP (ns_antialias_text)
      || macfont_info->antialias == MACFONT_ANTIALIAS_OFF
@@ -2913,7 +2891,7 @@ macfont_shape (Lisp_Object lgstring)
 {
   struct font *font = CHECK_FONT_GET_OBJECT (LGSTRING_FONT (lgstring));
   struct macfont_info *macfont_info = (struct macfont_info *) font;
-  FontRef macfont = macfont_info->macfont;
+  CTFontRef macfont = macfont_info->macfont;
   ptrdiff_t glyph_len, len, i, j;
   CFIndex nonbmp_len;
   UniChar *unichars;
@@ -3110,11 +3088,12 @@ struct non_default_uvs_table
    found or ill-formatted, then return NULL.  */
 
 static CFDataRef
-mac_font_copy_uvs_table (FontRef font)
+mac_font_copy_uvs_table (CTFontRef font)
 {
   CFDataRef cmap_table, uvs_table = NULL;
 
-  cmap_table = mac_font_copy_non_synthetic_table (font, cmapFontTableTag);
+  cmap_table = CTFontCopyTable (font, cmapFontTableTag,
+                               kCTFontTableOptionNoOptions);
   if (cmap_table)
     {
       sfntCMapHeader *cmap = (sfntCMapHeader *) CFDataGetBytePtr (cmap_table);
@@ -3337,7 +3316,7 @@ static int
 macfont_variation_glyphs (struct font *font, int c, unsigned variations[256])
 {
   CFDataRef uvs_table;
-  CharacterCollection uvs_collection;
+  CTCharacterCollection uvs_collection;
   int i, n = 0;
 
   block_input ();
@@ -3357,7 +3336,7 @@ macfont_variation_glyphs (struct font *font, int c, 
unsigned variations[256])
         {
           CGGlyph glyph = glyphs[i];
 
-          if (uvs_collection != MAC_CHARACTER_COLLECTION_IDENTITY_MAPPING
+          if (uvs_collection != kCTCharacterCollectionIdentityMapping
               && glyph != kCGFontIndexInvalid)
             glyph = macfont_get_glyph_for_cid (font, uvs_collection, glyph);
           if (glyph == kCGFontIndexInvalid)
@@ -3395,8 +3374,8 @@ macfont_filter_properties (Lisp_Object font, Lisp_Object 
alist)
 }
 
 static Boolean
-mac_ctfont_descriptor_supports_languages (CTFontDescriptorRef descriptor,
-                                          CFArrayRef languages)
+mac_font_descriptor_supports_languages (CTFontDescriptorRef descriptor,
+                                       CFArrayRef languages)
 {
   Boolean result = true;
   CFArrayRef desc_languages =
@@ -3425,7 +3404,7 @@ mac_ctfont_descriptor_supports_languages 
(CTFontDescriptorRef descriptor,
 }
 
 static CFStringRef
-mac_ctfont_create_preferred_family_for_attributes (CFDictionaryRef attributes)
+mac_font_create_preferred_family_for_attributes (CFDictionaryRef attributes)
 {
   CFStringRef result = NULL;
   CFStringRef charset_string =
@@ -3443,7 +3422,7 @@ mac_ctfont_create_preferred_family_for_attributes 
(CFDictionaryRef attributes)
       CFTypeRef values[] = {NULL};
       CFIndex num_values = 0;
       CFArrayRef languages
-        = CFDictionaryGetValue (attributes, MAC_FONT_LANGUAGES_ATTRIBUTE);
+        = CFDictionaryGetValue (attributes, kCTFontLanguagesAttribute);
 
       if (languages && CFArrayGetCount (languages) > 0)
         {
@@ -3452,8 +3431,7 @@ mac_ctfont_create_preferred_family_for_attributes 
(CFDictionaryRef attributes)
           else
             {
               CFCharacterSetRef charset =
-                CFDictionaryGetValue (attributes,
-                                      MAC_FONT_CHARACTER_SET_ATTRIBUTE);
+                CFDictionaryGetValue (attributes, 
kCTFontCharacterSetAttribute);
 
               result = mac_font_copy_default_name_for_charset_and_languages 
(charset, languages);
             }
@@ -3499,8 +3477,8 @@ mac_ctfont_create_preferred_family_for_attributes 
(CFDictionaryRef attributes)
                     break;
                   if (i == 0)
                     font = font_in_run;
-                  else if (!mac_ctfont_equal_in_postscript_name (font,
-                                                                 font_in_run))
+                  else if (!mac_font_equal_in_postscript_name (font,
+                                                              font_in_run))
                     break;
                 }
               if (nruns > 0 && i == nruns)
@@ -3514,63 +3492,50 @@ mac_ctfont_create_preferred_family_for_attributes 
(CFDictionaryRef attributes)
 }
 
 static inline double
-mac_ctfont_get_advance_width_for_glyph (CTFontRef font, CGGlyph glyph)
+mac_font_get_advance_width_for_glyph (CTFontRef font, CGGlyph glyph)
 {
-  return CTFontGetAdvancesForGlyphs (font,
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
-                                    kCTFontOrientationDefault,
-#else
-                                    kCTFontDefaultOrientation,
-#endif
+  return CTFontGetAdvancesForGlyphs (font, kCTFontOrientationDefault,
                                     &glyph, NULL, 1);
 }
 
 static inline CGRect
-mac_ctfont_get_bounding_rect_for_glyph (CTFontRef font, CGGlyph glyph)
+mac_font_get_bounding_rect_for_glyph (CTFontRef font, CGGlyph glyph)
 {
-  return CTFontGetBoundingRectsForGlyphs (font,
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
-                                         kCTFontOrientationDefault,
-#else
-                                         kCTFontDefaultOrientation,
-#endif
+  return CTFontGetBoundingRectsForGlyphs (font, kCTFontOrientationDefault,
                                          &glyph, NULL, 1);
 }
 
 static CFArrayRef
-mac_ctfont_create_available_families (void)
+mac_font_create_available_families (void)
 {
   CFMutableArrayRef families = NULL;
+  CFArrayRef orig_families = CTFontManagerCopyAvailableFontFamilyNames ();
 
+  if (orig_families)
     {
-      CFArrayRef orig_families = CTFontManagerCopyAvailableFontFamilyNames ();
-
-      if (orig_families)
-        {
-          CFIndex i, count = CFArrayGetCount (orig_families);
+      CFIndex i, count = CFArrayGetCount (orig_families);
 
-          families = CFArrayCreateMutable (NULL, count, 
&kCFTypeArrayCallBacks);
-          if (families)
-            for (i = 0; i < count; i++)
-              {
-                CFStringRef family = CFArrayGetValueAtIndex (orig_families, i);
-
-                if (!CFStringHasPrefix (family, CFSTR ("."))
-                    && (CTFontManagerCompareFontFamilyNames (family,
-                                                             CFSTR 
("LastResort"),
-                                                             NULL)
-                        != kCFCompareEqualTo))
-                  CFArrayAppendValue (families, family);
-              }
-          CFRelease (orig_families);
-        }
+      families = CFArrayCreateMutable (NULL, count, &kCFTypeArrayCallBacks);
+      if (families)
+       for (i = 0; i < count; i++)
+         {
+           CFStringRef family = CFArrayGetValueAtIndex (orig_families, i);
+
+           if (!CFStringHasPrefix (family, CFSTR ("."))
+               && (CTFontManagerCompareFontFamilyNames (family,
+                                                        CFSTR ("LastResort"),
+                                                        NULL)
+                   != kCFCompareEqualTo))
+             CFArrayAppendValue (families, family);
+         }
+      CFRelease (orig_families);
     }
 
-    return families;
+  return families;
 }
 
 static Boolean
-mac_ctfont_equal_in_postscript_name (CTFontRef font1, CTFontRef font2)
+mac_font_equal_in_postscript_name (CTFontRef font1, CTFontRef font2)
 {
   Boolean result;
   CFStringRef name1, name2;
@@ -3595,8 +3560,8 @@ mac_ctfont_equal_in_postscript_name (CTFontRef font1, 
CTFontRef font2)
 }
 
 static CTLineRef
-mac_ctfont_create_line_with_string_and_font (CFStringRef string,
-                                             CTFontRef macfont)
+mac_font_create_line_with_string_and_font (CFStringRef string,
+                                          CTFontRef macfont)
 {
   CFStringRef keys[] = {kCTFontAttributeName, kCTKernAttributeName};
   CFTypeRef values[] = {NULL, NULL};
@@ -3645,7 +3610,7 @@ mac_ctfont_create_line_with_string_and_font (CFStringRef 
string,
             CFDictionaryGetValue (attributes, kCTFontAttributeName);
           if (font_in_run == NULL)
             break;
-          if (!mac_ctfont_equal_in_postscript_name (macfont, font_in_run))
+          if (!mac_font_equal_in_postscript_name (macfont, font_in_run))
             break;
         }
       if (i < nruns)
@@ -3659,11 +3624,11 @@ mac_ctfont_create_line_with_string_and_font 
(CFStringRef string,
 }
 
 static CFIndex
-mac_ctfont_shape (CTFontRef font, CFStringRef string,
-                  struct mac_glyph_layout *glyph_layouts, CFIndex glyph_len)
+mac_font_shape (CTFontRef font, CFStringRef string,
+               struct mac_glyph_layout *glyph_layouts, CFIndex glyph_len)
 {
   CFIndex used, result = 0;
-  CTLineRef ctline = mac_ctfont_create_line_with_string_and_font (string, 
font);
+  CTLineRef ctline = mac_font_create_line_with_string_and_font (string, font);
 
   if (ctline == NULL)
     return 0;
@@ -3870,7 +3835,7 @@ mac_ctfont_get_glyph_for_cid (CTFontRef font, 
CTCharacterCollection collection,
                 CFDictionaryGetValue (attributes, kCTFontAttributeName);
 
               if (font_in_run
-                  && mac_ctfont_equal_in_postscript_name (font_in_run, font))
+                  && mac_font_equal_in_postscript_name (font_in_run, font))
                 {
                   CTRunGetGlyphs (run, CFRangeMake (0, 1), &result);
                   if (result >= CTFontGetGlyphCount (font))
@@ -3940,7 +3905,7 @@ mac_font_copy_default_descriptors_for_language 
(CFStringRef language)
                       CFDictionaryRef attributes =
                         CFDictionaryCreate (NULL,
                                             ((const void **)
-                                             &MAC_FONT_NAME_ATTRIBUTE),
+                                             &kCTFontNameAttribute),
                                             ((const void **)
                                              
&macfont_language_default_font_names[i].font_names[j]),
                                             1, &kCFTypeDictionaryKeyCallBacks,
@@ -3948,13 +3913,13 @@ mac_font_copy_default_descriptors_for_language 
(CFStringRef language)
 
                       if (attributes)
                         {
-                          FontDescriptorRef pat_desc =
-                            mac_font_descriptor_create_with_attributes 
(attributes);
+                          CTFontDescriptorRef pat_desc =
+                            CTFontDescriptorCreateWithAttributes (attributes);
 
                           if (pat_desc)
                             {
-                              FontDescriptorRef descriptor =
-                                
mac_font_descriptor_create_matching_font_descriptor (pat_desc, NULL);
+                              CTFontDescriptorRef descriptor =
+                                CTFontDescriptorCreateMatchingFontDescriptor 
(pat_desc, NULL);
 
                               if (descriptor)
                                 {
@@ -3992,15 +3957,15 @@ mac_font_copy_default_name_for_charset_and_languages 
(CFCharacterSetRef charset,
 
       for (i = 0; i < count; i++)
         {
-          FontDescriptorRef descriptor =
+          CTFontDescriptorRef descriptor =
             CFArrayGetValueAtIndex (descriptors, i);
 
           if (macfont_supports_charset_and_languages_p (descriptor, charset,
                                                         Qnil, languages))
             {
               CFStringRef family =
-                mac_font_descriptor_copy_attribute (descriptor,
-                                                    
MAC_FONT_FAMILY_NAME_ATTRIBUTE);
+                CTFontDescriptorCopyAttribute (descriptor,
+                                              kCTFontFamilyNameAttribute);
               if (family)
                 {
                   if (!CFStringHasPrefix (family, CFSTR ("."))
@@ -4024,7 +3989,7 @@ void *
 macfont_get_nsctfont (struct font *font)
 {
   struct macfont_info *macfont_info = (struct macfont_info *) font;
-  FontRef macfont = macfont_info->macfont;
+  CTFontRef macfont = macfont_info->macfont;
 
   return (void *) macfont;
 }
diff --git a/src/syntax.c b/src/syntax.c
index 30560af..dc82210 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -1129,7 +1129,7 @@ The first character of NEWENTRY should be one of the 
following:
   _           symbol constituent.   .   punctuation.
   (           open-parenthesis.     )   close-parenthesis.
   "           string quote.         \\   escape.
-  $           paired delimiter.     '   expression quote or prefix operator.
+  $           paired delimiter.     \\='   expression quote or prefix operator.
   <           comment starter.      >   comment ender.
   /           character-quote.      @   inherit from parent table.
   |           generic string fence. !   generic comment fence.
diff --git a/src/w32.c b/src/w32.c
index b421667..cc55507 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -3399,30 +3399,41 @@ sys_readdir (DIR *dirp)
   /* If we aren't dir_finding, do a find-first, otherwise do a find-next. */
   else if (dir_find_handle == INVALID_HANDLE_VALUE)
     {
-      char filename[MAX_UTF8_PATH + 2];
+      char filename[MAX_UTF8_PATH];
       int ln;
+      bool last_slash = true;
 
+      /* Note: We don't need to worry about dir_pathname being longer
+        than MAX_UTF8_PATH, as sys_opendir already took care of that
+        when it called map_w32_filename: that function will put a "?"
+        in its return value in that case, thus failing all the calls
+        below.  */
       strcpy (filename, dir_pathname);
       ln = strlen (filename);
       if (!IS_DIRECTORY_SEP (filename[ln - 1]))
-       filename[ln++] = '\\';
-      strcpy (filename + ln, "*");
+       last_slash = false;
 
       /* Note: No need to resolve symlinks in FILENAME, because
         FindFirst opens the directory that is the target of a
         symlink.  */
       if (w32_unicode_filenames)
        {
-         wchar_t fnw[MAX_PATH];
+         wchar_t fnw[MAX_PATH + 2];
 
          filename_to_utf16 (filename, fnw);
+         if (!last_slash)
+           wcscat (fnw, L"\\");
+         wcscat (fnw, L"*");
          dir_find_handle = FindFirstFileW (fnw, &dir_find_data_w);
        }
       else
        {
-         char fna[MAX_PATH];
+         char fna[MAX_PATH + 2];
 
          filename_to_ansi (filename, fna);
+         if (!last_slash)
+           strcat (fna, "\\");
+         strcat (fna, "*");
          /* If FILENAME is not representable by the current ANSI
             codepage, we don't want FindFirstFileA to interpret the
             '?' characters as a wildcard.  */
@@ -3815,7 +3826,7 @@ faccessat (int dirfd, const char * path, int mode, int 
flags)
                  errno = EACCES;
                  return -1;
                }
-             break;
+             goto check_attrs;
            }
          /* FALLTHROUGH */
        case ERROR_FILE_NOT_FOUND:
@@ -3828,6 +3839,8 @@ faccessat (int dirfd, const char * path, int mode, int 
flags)
        }
       return -1;
     }
+
+ check_attrs:
   if ((mode & X_OK) != 0
       && !(is_exec (path) || (attributes & FILE_ATTRIBUTE_DIRECTORY) != 0))
     {
@@ -3847,6 +3860,76 @@ faccessat (int dirfd, const char * path, int mode, int 
flags)
   return 0;
 }
 
+/* A special test for DIRNAME being a directory accessible by the
+   current user.  This is needed because the security permissions in
+   directory's ACLs are not visible in the Posix-style mode bits
+   returned by 'stat' and in attributes returned by GetFileAttributes.
+   So a directory would seem like it's readable by the current user,
+   but will in fact error out with EACCES when they actually try.  */
+int
+w32_accessible_directory_p (const char *dirname, ptrdiff_t dirlen)
+{
+  char pattern[MAX_UTF8_PATH];
+  bool last_slash = dirlen > 0 && IS_DIRECTORY_SEP (dirname[dirlen - 1]);
+  HANDLE dh;
+
+  /* Network volumes need a different reading method.  */
+  if (is_unc_volume (dirname))
+    {
+      void *read_result = NULL;
+      wchar_t fnw[MAX_PATH];
+      char fna[MAX_PATH];
+
+      dh = open_unc_volume (dirname);
+      if (dh != INVALID_HANDLE_VALUE)
+       {
+         read_result = read_unc_volume (dh, fnw, fna, MAX_PATH);
+         close_unc_volume (dh);
+       }
+      /* Treat empty volumes as accessible.  */
+      return read_result != NULL || GetLastError () == ERROR_NO_MORE_ITEMS;
+    }
+
+  /* Note: map_w32_filename makes sure DIRNAME is not longer than
+     MAX_UTF8_PATH.  */
+  strcpy (pattern, map_w32_filename (dirname, NULL));
+
+  /* Note: No need to resolve symlinks in FILENAME, because FindFirst
+     opens the directory that is the target of a symlink.  */
+  if (w32_unicode_filenames)
+    {
+      wchar_t pat_w[MAX_PATH + 2];
+      WIN32_FIND_DATAW dfd_w;
+
+      filename_to_utf16 (pattern, pat_w);
+      if (!last_slash)
+       wcscat (pat_w, L"\\");
+      wcscat (pat_w, L"*");
+      dh = FindFirstFileW (pat_w, &dfd_w);
+    }
+  else
+    {
+      char pat_a[MAX_PATH + 2];
+      WIN32_FIND_DATAA dfd_a;
+
+      filename_to_ansi (pattern, pat_a);
+      if (!last_slash)
+       strcpy (pat_a, "\\");
+      strcat (pat_a, "*");
+      /* In case DIRNAME cannot be expressed in characters from the
+        current ANSI codepage.  */
+      if (_mbspbrk (pat_a, "?"))
+       dh = INVALID_HANDLE_VALUE;
+      else
+       dh = FindFirstFileA (pat_a, &dfd_a);
+    }
+
+  if (dh == INVALID_HANDLE_VALUE)
+    return 0;
+  FindClose (dh);
+  return 1;
+}
+
 /* A version of 'access' to be used locally with file names in
    locale-specific encoding.  Does not resolve symlinks and does not
    support file names on FAT12 and FAT16 volumes, but that's OK, since
diff --git a/src/w32.h b/src/w32.h
index 338cb06..2c71150 100644
--- a/src/w32.h
+++ b/src/w32.h
@@ -195,6 +195,7 @@ extern int  filename_to_utf16 (const char *, wchar_t *);
 extern int  codepage_for_filenames (CPINFO *);
 extern Lisp_Object ansi_encode_filename (Lisp_Object);
 extern int  w32_copy_file (const char *, const char *, int, int, int);
+extern int  w32_accessible_directory_p (const char *, ptrdiff_t);
 
 extern BOOL init_winsock (int load_now);
 extern void srandom (int);
diff --git a/src/w32term.c b/src/w32term.c
index fbd31b1..82b05bf 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -6202,8 +6202,6 @@ x_set_window_size (struct frame *f, bool change_gravity,
     }
 
   unblock_input ();
-
-  do_pending_window_change (0);
 }
 
 /* Mouse warping.  */
diff --git a/src/xterm.c b/src/xterm.c
index 4eb777f..9ee76e9 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -10515,8 +10515,6 @@ x_set_window_size (struct frame *f, bool change_gravity,
   cancel_mouse_face (f);
 
   unblock_input ();
-
-  do_pending_window_change (false);
 }
 
 /* Move the mouse to position pixel PIX_X, PIX_Y relative to frame F.  */
diff --git a/test/automated/elisp-mode-tests.el 
b/test/automated/elisp-mode-tests.el
index ec01477..7886b55 100644
--- a/test/automated/elisp-mode-tests.el
+++ b/test/automated/elisp-mode-tests.el
@@ -125,7 +125,7 @@
     (cl-case type
       (defalias
        ;; summary: "(defalias xref)"
-       ;; target : "(defalias 'xref)"
+       ;; target : "(defalias 'xref"
        (concat "(defalias '" (substring (xref-item-summary xref) 10 -1)))
 
       (defun
@@ -211,7 +211,7 @@ to (xref-elisp-test-descr-to-target xref)."
 
 ;; alphabetical by test name
 
-;; FIXME: autoload
+;; Autoloads require no special support; they are handled as functions.
 
 ;; FIXME: defalias-defun-c cmpl-prefix-entry-head
 ;; FIXME: defalias-defvar-el allout-mode-map
diff --git a/test/automated/python-tests.el b/test/automated/python-tests.el
index 30b1b48..219f99e 100644
--- a/test/automated/python-tests.el
+++ b/test/automated/python-tests.el
@@ -2436,7 +2436,7 @@ Using `python-shell-interpreter' and
         (python-shell-interpreter-args "-B"))
     (should (string=
              (format "%s %s"
-                     python-shell-interpreter
+                     (shell-quote-argument python-shell-interpreter)
                      python-shell-interpreter-args)
              (python-shell-calculate-command)))))
 
@@ -2445,14 +2445,17 @@ Using `python-shell-interpreter' and
   (let ((process-environment '("PYTHONPATH=/path0"))
         (python-shell-extra-pythonpaths '("/path1" "/path2")))
     (should (string= (python-shell-calculate-pythonpath)
-                     "/path1:/path2:/path0"))))
+                     (concat "/path1" path-separator
+                             "/path2" path-separator "/path0")))))
 
 (ert-deftest python-shell-calculate-pythonpath-2 ()
   "Test existing paths are moved to front."
-  (let ((process-environment '("PYTHONPATH=/path0:/path1"))
+  (let ((process-environment
+         (list (concat "PYTHONPATH=/path0" path-separator "/path1")))
         (python-shell-extra-pythonpaths '("/path1" "/path2")))
     (should (string= (python-shell-calculate-pythonpath)
-                     "/path1:/path2:/path0"))))
+                     (concat "/path1" path-separator
+                             "/path2" path-separator "/path0")))))
 
 (ert-deftest python-shell-calculate-process-environment-1 ()
   "Test `python-shell-process-environment' modification."
@@ -2468,7 +2471,9 @@ Using `python-shell-interpreter' and
          (original-pythonpath (setenv "PYTHONPATH" "/path0"))
          (python-shell-extra-pythonpaths '("/path1" "/path2"))
          (process-environment (python-shell-calculate-process-environment)))
-    (should (equal (getenv "PYTHONPATH") "/path1:/path2:/path0"))))
+    (should (equal (getenv "PYTHONPATH")
+                   (concat "/path1" path-separator
+                           "/path2" path-separator "/path0")))))
 
 (ert-deftest python-shell-calculate-process-environment-3 ()
   "Test `python-shell-virtualenv-root' modification."
@@ -2545,7 +2550,8 @@ Using `python-shell-interpreter' and
   (let* ((exec-path '("/path0"))
          (python-shell-virtualenv-root "/env")
          (new-exec-path (python-shell-calculate-exec-path)))
-    (should (equal new-exec-path '("/env/bin" "/path0")))))
+    (should (equal new-exec-path
+                   (list (expand-file-name "/env/bin") "/path0")))))
 
 (ert-deftest python-shell-calculate-exec-path-3 ()
   "Test complete `python-shell-virtualenv-root' modification."
@@ -2553,7 +2559,9 @@ Using `python-shell-interpreter' and
          (python-shell-exec-path '("/path1" "/path2"))
          (python-shell-virtualenv-root "/env")
          (new-exec-path (python-shell-calculate-exec-path)))
-    (should (equal new-exec-path '("/env/bin" "/path1" "/path2" "/path0")))))
+    (should (equal new-exec-path
+                   (list (expand-file-name "/env/bin")
+                         "/path1" "/path2" "/path0")))))
 
 (ert-deftest python-shell-calculate-exec-path-4 ()
   "Test complete `python-shell-virtualenv-root' with remote."
@@ -2562,7 +2570,9 @@ Using `python-shell-interpreter' and
          (python-shell-exec-path '("/path1" "/path2"))
          (python-shell-virtualenv-root "/env")
          (new-exec-path (python-shell-calculate-exec-path)))
-    (should (equal new-exec-path '("/env/bin" "/path1" "/path2" "/path0")))))
+    (should (equal new-exec-path
+                   (list (expand-file-name "/env/bin")
+                         "/path1" "/path2" "/path0")))))
 
 (ert-deftest python-shell-calculate-exec-path-5 ()
   "Test no side-effects on `exec-path'."
@@ -2590,7 +2600,9 @@ Using `python-shell-interpreter' and
          (original-exec-path exec-path)
          (python-shell-virtualenv-root "/env"))
     (python-shell-with-environment
-      (should (equal exec-path '("/env/bin" "/path1" "/path2" "/path0")))
+     (should (equal exec-path
+                    (list (expand-file-name "/env/bin")
+                          "/path1" "/path2" "/path0")))
       (should (not (getenv "PYTHONHOME")))
       (should (string= (getenv "VIRTUAL_ENV") "/env")))
     (should (equal exec-path original-exec-path))))
@@ -2605,7 +2617,8 @@ Using `python-shell-interpreter' and
          (python-shell-virtualenv-root "/env"))
     (python-shell-with-environment
       (should (equal (python-shell-calculate-exec-path)
-                     '("/env/bin" "/path1" "/path2" "/remote1" "/remote2")))
+                     (list (expand-file-name "/env/bin")
+                           "/path1" "/path2" "/remote1" "/remote2")))
       (let ((process-environment (python-shell-calculate-process-environment)))
         (should (not (getenv "PYTHONHOME")))
         (should (string= (getenv "VIRTUAL_ENV") "/env"))
diff --git a/test/automated/tramp-tests.el b/test/automated/tramp-tests.el
index 498a0cf..c5cab7d 100644
--- a/test/automated/tramp-tests.el
+++ b/test/automated/tramp-tests.el
@@ -1118,9 +1118,10 @@ This tests also `file-readable-p' and `file-regular-p'."
               t)))
          (when (file-symlink-p tmp-name2)
            (setq attr (file-attributes tmp-name2))
-           (should (string-equal
-                    (car attr)
-                    (file-remote-p (file-truename tmp-name3) 'localname)))
+           (should
+            (string-equal
+             (car attr)
+             (tramp-file-name-localname (tramp-dissect-file-name tmp-name3))))
            (delete-file tmp-name2))
 
          (delete-file tmp-name1)
diff --git a/test/indent/css-mode.css b/test/indent/css-mode.css
index 67a6b1e..2f04e96 100644
--- a/test/indent/css-mode.css
+++ b/test/indent/css-mode.css
@@ -36,3 +36,8 @@ a.b:c,d.e:f,g[h]:i,j[k]:l,.m.n:o,.p.q:r,.s[t]:u,.v[w]:x { /* 
bug:20282 */
 div.x3
 {
 }
+
+article:hover
+{
+    color: black;
+}



reply via email to

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