* Re: master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
[not found] ` <E1Zj6JL-0006Qd-Ij@vcs.savannah.gnu.org>
@ 2015-10-06 9:18 ` Artur Malabarba
2015-10-06 14:09 ` Kaushal Modi
2015-10-06 16:20 ` [Emacs-diffs] " Stefan Monnier
0 siblings, 2 replies; 11+ messages in thread
From: Artur Malabarba @ 2015-10-06 9:18 UTC (permalink / raw)
To: emacs-devel, K. Handa; +Cc: emacs-diffs
Quick question. Could someone explain to me what the subject of this
email means?
> master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Is that what you get when you merge the remote's master onto your local master?
2015-10-05 15:00 GMT+01:00 Kenichi Handa <handa@gnu.org>:
> branch: master
> commit 94ed5167557112fb00eeca05e62589db744206de
> Merge: 33f2e00 10e7f7d
> Author: K. Handa <handa@gnu.org>
> Commit: K. Handa <handa@gnu.org>
>
> Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
> ---
> ChangeLog.2 | 634 +++++++++++++++++++++++++++++-
> admin/unidata/unidata-gen.el | 2 +-
> doc/emacs/building.texi | 2 +-
> doc/emacs/custom.texi | 2 +-
> doc/emacs/emacs.texi | 20 +-
> doc/emacs/files.texi | 2 +-
> doc/emacs/help.texi | 2 +-
> doc/emacs/package.texi | 2 +-
> doc/emacs/picture-xtra.texi | 2 +-
> doc/emacs/programs.texi | 1 -
> doc/emacs/search.texi | 4 +-
> doc/emacs/text.texi | 4 +-
> doc/emacs/trouble.texi | 8 +-
> doc/lispintro/emacs-lisp-intro.texi | 38 +-
> doc/lispref/anti.texi | 4 +-
> doc/lispref/buffers.texi | 2 +-
> doc/lispref/control.texi | 2 +-
> doc/lispref/display.texi | 8 +-
> doc/lispref/elisp.texi | 14 +-
> doc/lispref/eval.texi | 2 +-
> doc/lispref/files.texi | 4 +-
> doc/lispref/frames.texi | 2 +-
> doc/lispref/functions.texi | 4 +-
> doc/lispref/help.texi | 8 +-
> doc/lispref/loading.texi | 2 +-
> doc/lispref/markers.texi | 4 +-
> doc/lispref/modes.texi | 14 +-
> doc/lispref/os.texi | 29 +--
> doc/lispref/package.texi | 6 +-
> doc/lispref/processes.texi | 4 +-
> doc/lispref/sequences.texi | 25 +-
> doc/lispref/strings.texi | 30 +-
> doc/lispref/text.texi | 4 +-
> doc/lispref/tips.texi | 8 +-
> doc/lispref/variables.texi | 2 +-
> doc/misc/ede.texi | 6 +-
> doc/misc/efaq.texi | 2 +-
> doc/misc/eieio.texi | 2 +-
> doc/misc/ert.texi | 2 +-
> doc/misc/gnus-faq.texi | 24 +-
> doc/misc/gnus.texi | 11 +-
> doc/misc/rcirc.texi | 2 +-
> doc/misc/tramp.texi | 18 +
> doc/misc/viper.texi | 2 +-
> etc/NEWS | 32 +-
> lisp/abbrev.el | 2 +-
> lisp/align.el | 2 +-
> lisp/allout-widgets.el | 10 +-
> lisp/allout.el | 24 +-
> lisp/apropos.el | 2 +-
> lisp/bookmark.el | 4 +-
> lisp/bs.el | 2 +-
> lisp/button.el | 6 +-
> lisp/calc/calc-aent.el | 10 +-
> lisp/calc/calc-embed.el | 2 +-
> lisp/calc/calc-ext.el | 2 +-
> lisp/calc/calc-graph.el | 2 +-
> lisp/calc/calc-help.el | 16 +-
> lisp/calc/calc-lang.el | 42 +-
> lisp/calc/calc-misc.el | 4 +-
> lisp/calc/calc-mode.el | 12 +-
> lisp/calc/calc-prog.el | 14 +-
> lisp/calc/calc-store.el | 2 +-
> lisp/calc/calc-units.el | 6 +-
> lisp/calc/calc-vec.el | 4 +-
> lisp/calc/calc-yank.el | 4 +-
> lisp/calc/calc.el | 12 +-
> lisp/calculator.el | 2 +-
> lisp/calendar/appt.el | 2 +-
> lisp/calendar/cal-bahai.el | 74 ++--
> lisp/calendar/cal-hebrew.el | 2 +-
> lisp/calendar/cal-menu.el | 4 +-
> lisp/calendar/cal-tex.el | 2 +-
> lisp/calendar/calendar.el | 22 +-
> lisp/calendar/diary-lib.el | 18 +-
> lisp/calendar/holidays.el | 18 +-
> lisp/calendar/icalendar.el | 14 +-
> lisp/calendar/time-date.el | 4 +-
> lisp/calendar/timeclock.el | 10 +-
> lisp/calendar/todo-mode.el | 22 +-
> lisp/cedet/cedet-global.el | 2 +-
> lisp/cedet/ede.el | 2 +-
> lisp/cedet/ede/auto.el | 6 +-
> lisp/cedet/ede/pmake.el | 2 +-
> lisp/cedet/inversion.el | 4 +-
> lisp/cedet/mode-local.el | 12 +-
> lisp/cedet/semantic/analyze.el | 6 +-
> lisp/cedet/semantic/analyze/complete.el | 6 +-
> lisp/cedet/semantic/bovine/gcc.el | 6 +-
> lisp/cedet/semantic/complete.el | 4 +-
> lisp/cedet/semantic/db-find.el | 2 +-
> lisp/cedet/semantic/decorate/include.el | 2 +-
> lisp/cedet/semantic/fw.el | 8 +-
> lisp/cedet/semantic/java.el | 2 +-
> lisp/cedet/semantic/tag-ls.el | 10 +-
> lisp/cedet/semantic/wisent/javascript.el | 12 +-
> lisp/cedet/srecode/insert.el | 6 +-
> lisp/cedet/srecode/srt-mode.el | 4 +-
> lisp/comint.el | 2 +-
> lisp/cus-edit.el | 2 +-
> lisp/cus-start.el | 2 +-
> lisp/cus-theme.el | 4 +-
> lisp/custom.el | 12 +-
> lisp/descr-text.el | 32 +-
> lisp/dired-x.el | 8 +-
> lisp/dired.el | 6 +-
> lisp/electric.el | 12 +-
> lisp/emacs-lisp/advice.el | 42 +-
> lisp/emacs-lisp/byte-opt.el | 24 +-
> lisp/emacs-lisp/byte-run.el | 4 +-
> lisp/emacs-lisp/bytecomp.el | 88 +++--
> lisp/emacs-lisp/cconv.el | 6 +-
> lisp/emacs-lisp/chart.el | 2 +-
> lisp/emacs-lisp/check-declare.el | 10 +-
> lisp/emacs-lisp/checkdoc.el | 29 +-
> lisp/emacs-lisp/cl-extra.el | 22 +-
> lisp/emacs-lisp/cl-generic.el | 10 +-
> lisp/emacs-lisp/cl-macs.el | 36 +-
> lisp/emacs-lisp/cl.el | 8 +-
> lisp/emacs-lisp/copyright.el | 4 +-
> lisp/emacs-lisp/disass.el | 63 ++--
> lisp/emacs-lisp/edebug.el | 2 +-
> lisp/emacs-lisp/eieio-base.el | 2 +-
> lisp/emacs-lisp/eieio-core.el | 19 +-
> lisp/emacs-lisp/eieio-opt.el | 4 +-
> lisp/emacs-lisp/eieio-speedbar.el | 4 +-
> lisp/emacs-lisp/eieio.el | 17 +-
> lisp/emacs-lisp/elint.el | 16 +-
> lisp/emacs-lisp/ert.el | 23 +-
> lisp/emacs-lisp/find-func.el | 6 +-
> lisp/emacs-lisp/generator.el | 2 +-
> lisp/emacs-lisp/gv.el | 2 +-
> lisp/emacs-lisp/lisp-mnt.el | 14 +-
> lisp/emacs-lisp/macroexp.el | 4 +-
> lisp/emacs-lisp/map-ynp.el | 6 +-
> lisp/emacs-lisp/map.el | 13 +-
> lisp/emacs-lisp/nadvice.el | 6 +-
> lisp/emacs-lisp/package-x.el | 2 +-
> lisp/emacs-lisp/package.el | 186 +++++----
> lisp/emacs-lisp/pcase.el | 10 +-
> lisp/emacs-lisp/re-builder.el | 2 +-
> lisp/emacs-lisp/regexp-opt.el | 2 +-
> lisp/emacs-lisp/ring.el | 4 +-
> lisp/emacs-lisp/rx.el | 38 +-
> lisp/emacs-lisp/seq.el | 32 +-
> lisp/emacs-lisp/smie.el | 6 +-
> lisp/emacs-lisp/subr-x.el | 2 +-
> lisp/emacs-lisp/tabulated-list.el | 2 +-
> lisp/emacs-lisp/testcover.el | 2 +-
> lisp/emacs-lisp/timer.el | 2 +-
> lisp/emulation/viper-cmd.el | 10 +-
> lisp/emulation/viper-init.el | 2 +-
> lisp/emulation/viper-keym.el | 2 +-
> lisp/emulation/viper-macs.el | 8 +-
> lisp/env.el | 4 +-
> lisp/erc/erc-backend.el | 14 +-
> lisp/erc/erc-button.el | 2 +-
> lisp/erc/erc-dcc.el | 2 +-
> lisp/erc/erc.el | 18 +-
> lisp/eshell/em-dirs.el | 4 +-
> lisp/eshell/em-glob.el | 6 +-
> lisp/eshell/em-pred.el | 22 +-
> lisp/eshell/em-script.el | 4 +-
> lisp/eshell/esh-opt.el | 2 +-
> lisp/eshell/esh-util.el | 2 +-
> lisp/eshell/esh-var.el | 2 +-
> lisp/facemenu.el | 10 +-
> lisp/faces.el | 32 +-
> lisp/ffap.el | 6 +-
> lisp/filenotify.el | 114 +++---
> lisp/files-x.el | 2 +-
> lisp/files.el | 38 +-
> lisp/filesets.el | 34 +-
> lisp/find-cmd.el | 4 +-
> lisp/finder.el | 2 +-
> lisp/font-lock.el | 9 +-
> lisp/format.el | 6 +-
> lisp/frame.el | 4 +-
> lisp/fringe.el | 2 +-
> lisp/gnus/gmm-utils.el | 2 +-
> lisp/gnus/gnus-art.el | 22 +-
> lisp/gnus/gnus-registry.el | 6 +-
> lisp/gnus/gnus-start.el | 3 +-
> lisp/gnus/gnus-sum.el | 2 +-
> lisp/gnus/gnus-uu.el | 2 +-
> lisp/gnus/gnus.el | 4 +-
> lisp/gnus/mail-source.el | 11 +-
> lisp/gnus/message.el | 2 +-
> lisp/gnus/nnimap.el | 6 +-
> lisp/gnus/nnir.el | 20 +-
> lisp/gnus/nnmail.el | 4 +-
> lisp/gnus/nnmairix.el | 4 +-
> lisp/gnus/nntp.el | 2 +-
> lisp/help-fns.el | 72 ++--
> lisp/help.el | 10 +-
> lisp/hi-lock.el | 2 +-
> lisp/htmlfontify.el | 10 +-
> lisp/ibuffer.el | 2 +-
> lisp/ido.el | 4 +-
> lisp/image.el | 4 +-
> lisp/info.el | 6 +-
> lisp/international/ccl.el | 3 +-
> lisp/international/fontset.el | 2 +-
> lisp/international/mule-cmds.el | 30 +-
> lisp/international/mule-conf.el | 8 +-
> lisp/international/mule-diag.el | 14 +-
> lisp/international/ogonek.el | 26 +-
> lisp/json.el | 2 +-
> lisp/kermit.el | 2 +-
> lisp/leim/quail/cyrillic.el | 6 +-
> lisp/leim/quail/hebrew.el | 16 +-
> lisp/leim/quail/latin-ltx.el | 8 +-
> lisp/leim/quail/thai.el | 6 +-
> lisp/leim/quail/tibetan.el | 12 +-
> lisp/ls-lisp.el | 2 +-
> lisp/mail/feedmail.el | 16 +-
> lisp/mail/mailalias.el | 6 +-
> lisp/mail/rfc2368.el | 8 +-
> lisp/mail/sendmail.el | 28 +-
> lisp/man.el | 2 +-
> lisp/mh-e/mh-comp.el | 2 +-
> lisp/mh-e/mh-compat.el | 2 +-
> lisp/mh-e/mh-e.el | 6 +-
> lisp/mh-e/mh-seq.el | 4 +-
> lisp/mh-e/mh-utils.el | 10 +-
> lisp/mouse-copy.el | 2 +-
> lisp/mouse-drag.el | 4 +-
> lisp/mouse.el | 2 +-
> lisp/mpc.el | 12 +-
> lisp/msb.el | 2 +-
> lisp/net/ange-ftp.el | 4 +-
> lisp/net/browse-url.el | 2 +-
> lisp/net/imap.el | 4 +-
> lisp/net/mairix.el | 4 +-
> lisp/net/newst-backend.el | 4 +-
> lisp/net/newst-treeview.el | 4 +-
> lisp/net/ntlm.el | 159 ++++++--
> lisp/net/rcirc.el | 2 +-
> lisp/net/rlogin.el | 2 +-
> lisp/net/soap-client.el | 2 +-
> lisp/net/tls.el | 2 +-
> lisp/net/tramp.el | 6 +-
> lisp/obsolete/fast-lock.el | 4 +-
> lisp/obsolete/iswitchb.el | 2 +-
> lisp/obsolete/landmark.el | 2 +-
> lisp/obsolete/lazy-lock.el | 2 +-
> lisp/obsolete/otodo-mode.el | 2 +-
> lisp/obsolete/pgg-gpg.el | 2 +-
> lisp/obsolete/pgg-pgp.el | 2 +-
> lisp/obsolete/pgg-pgp5.el | 2 +-
> lisp/obsolete/sym-comp.el | 6 +-
> lisp/obsolete/tpu-edt.el | 4 +-
> lisp/obsolete/vi.el | 2 +-
> lisp/org/ob-core.el | 6 +-
> lisp/org/ob-fortran.el | 2 +-
> lisp/org/ob-python.el | 2 +-
> lisp/org/ob-ref.el | 2 +-
> lisp/org/ob-scheme.el | 2 +-
> lisp/org/org-agenda.el | 18 +-
> lisp/org/org-bibtex.el | 8 +-
> lisp/org/org-capture.el | 4 +-
> lisp/org/org-clock.el | 4 +-
> lisp/org/org-ctags.el | 2 +-
> lisp/org/org-feed.el | 2 +-
> lisp/org/org-habit.el | 2 +-
> lisp/org/org-irc.el | 2 +-
> lisp/org/org-mouse.el | 8 +-
> lisp/org/org-plot.el | 2 +-
> lisp/org/org-protocol.el | 18 +-
> lisp/org/org-src.el | 6 +-
> lisp/org/org-table.el | 6 +-
> lisp/org/org.el | 20 +-
> lisp/org/ox.el | 12 +-
> lisp/pcmpl-cvs.el | 4 +-
> lisp/play/bubbles.el | 10 +-
> lisp/play/gomoku.el | 2 +-
> lisp/proced.el | 2 +-
> lisp/progmodes/ada-mode.el | 28 +-
> lisp/progmodes/ada-prj.el | 6 +-
> lisp/progmodes/ada-xref.el | 2 +-
> lisp/progmodes/cc-engine.el | 18 +-
> lisp/progmodes/cc-langs.el | 12 +-
> lisp/progmodes/cc-vars.el | 2 +-
> lisp/progmodes/cperl-mode.el | 2 +-
> lisp/progmodes/ebrowse.el | 2 +-
> lisp/progmodes/elisp-mode.el | 2 +-
> lisp/progmodes/etags.el | 4 +-
> lisp/progmodes/f90.el | 2 +-
> lisp/progmodes/flymake.el | 6 +-
> lisp/progmodes/fortran.el | 8 +-
> lisp/progmodes/gdb-mi.el | 18 +-
> lisp/progmodes/idlw-shell.el | 22 +-
> lisp/progmodes/idlwave.el | 22 +-
> lisp/progmodes/make-mode.el | 2 +-
> lisp/progmodes/prolog.el | 12 +-
> lisp/progmodes/python.el | 6 +-
> lisp/progmodes/sql.el | 2 +-
> lisp/progmodes/verilog-mode.el | 22 +-
> lisp/progmodes/vhdl-mode.el | 20 +-
> lisp/progmodes/xref.el | 4 +-
> lisp/recentf.el | 2 +-
> lisp/replace.el | 8 +-
> lisp/scroll-bar.el | 2 +-
> lisp/server.el | 2 +-
> lisp/simple.el | 36 +-
> lisp/speedbar.el | 8 +-
> lisp/startup.el | 58 ++--
> lisp/subr.el | 14 +-
> lisp/term/common-win.el | 6 +-
> lisp/term/x-win.el | 4 +-
> lisp/textmodes/ispell.el | 4 +-
> lisp/textmodes/reftex-ref.el | 2 +-
> lisp/textmodes/reftex-toc.el | 2 +-
> lisp/textmodes/reftex-vars.el | 6 +-
> lisp/textmodes/reftex.el | 4 +-
> lisp/textmodes/rst.el | 6 +-
> lisp/textmodes/sgml-mode.el | 2 +-
> lisp/textmodes/table.el | 24 +-
> lisp/textmodes/tex-mode.el | 2 +
> lisp/textmodes/texnfo-upd.el | 2 +-
> lisp/textmodes/tildify.el | 2 +-
> lisp/textmodes/two-column.el | 2 +-
> lisp/thingatpt.el | 4 +-
> lisp/thumbs.el | 2 +-
> lisp/tree-widget.el | 6 +-
> lisp/tutorial.el | 10 +-
> lisp/type-break.el | 2 +-
> lisp/url/url-util.el | 2 +-
> lisp/url/url-vars.el | 6 +-
> lisp/vc/ediff-mult.el | 5 +-
> lisp/vc/ediff-ptch.el | 2 +-
> lisp/vc/vc-git.el | 4 +-
> lisp/vc/vc-hooks.el | 28 +-
> lisp/wdired.el | 8 +-
> lisp/whitespace.el | 8 +-
> lisp/widget.el | 2 +-
> lisp/window.el | 2 +-
> lisp/woman.el | 12 +-
> src/dispextern.h | 1 +
> src/doc.c | 14 +-
> src/editfns.c | 4 +-
> src/keyboard.c | 46 ++-
> src/keyboard.h | 5 +-
> src/process.c | 12 +-
> src/w32.c | 33 ++-
> src/xdisp.c | 22 +-
> src/xfaces.c | 2 +
> test/automated/Makefile.in | 8 +-
> test/automated/flymake-tests.el | 1 +
> test/automated/map-tests.el | 44 +--
> test/automated/python-tests.el | 21 +-
> test/automated/seq-tests.el | 21 +-
> test/automated/textprop-tests.el | 2 +-
> test/automated/tildify-tests.el | 3 +
> 354 files changed, 2575 insertions(+), 1704 deletions(-)
>
> diff --git a/ChangeLog.2 b/ChangeLog.2
> index 856cb58..c4912f7 100644
> --- a/ChangeLog.2
> +++ b/ChangeLog.2
> @@ -1,3 +1,635 @@
> +2015-09-05 Paul Eggert <eggert@cs.ucla.edu>
> +
> + Spelling fix (Bug#21420)
> +
> +2015-09-05 Nicolas Petton <nicolas@petton.fr>
> +
> + Improve the semantic of map-some
> + Update map-some to return the returned by the predicate, similar to
> + seq-some.
> + * lisp/emacs-lisp/map.el (map-some): Update the function to return the
> + return value of the predicate.
> + * test/automated/map-tests.el (test-map-some): Update the test to check
> + for non-nil values only.
> +
> + Rename map-contains-key-p and map-some-p
> + Remove the "-p" suffix from both function names.
> + * lisp/emacs-lisp/map.el (map-contains-key, map-some): Rename the functions.
> + * test/automated/map-tests.el (test-map-contains-key, test-map-some):
> + Update both test functions.
> +
> + Improve the semantic of seq-some
> + Update seq-some to return non-nil if the predicate returns non-nil for
> + any element of the seq, in which case the returned value is the one
> + returned by the predicate.
> + * lisp/emacs-lisp/seq.el (seq-some): Update the function and its
> + docstring.
> + * test/automated/seq-tests.el (test-seq-some): Add a regression test.
> + * doc/lispref/sequences.texi (Sequence Functions): Update the
> + documentation for seq-some.
> +
> + Rename seq-some-p to seq-some and seq-contains-p to seq-contains
> + * lisp/emacs-lisp/seq.el (seq-some, seq-contains): Rename the functions
> + without the "-p" prefix.
> + * test/automated/seq-tests.el (test-seq-some, test-seq-contains): Update
> + the tests accordingly.
> + * doc/lispref/sequences.texi (Sequence Functions): Update the
> + documentation for seq.el.
> +
> +2015-09-05 Paul Eggert <eggert@Penguin.CS.UCLA.EDU>
> +
> + text-quoting-style for usage of fn names with ‘’
> + * lisp/help.el (help--docstring-quote): Don’t assume
> + text-quoting-style is ‘curve’ when generating usage strings for
> + functions whose names contain curved quotes.
> +
> +2015-09-05 Paul Eggert <eggert@cs.ucla.edu>
> +
> + Fix fix for describe-function keybinding confusion
> + This fixes a bug introduced by the previous patch.
> + * lisp/help-fns.el (help-fns--signature):
> + Last arg of help-fns--signature is now a buffer, or nil if a
> + raw signature is wanted. All callers changed.
> + (describe-function-1): Use this to do the right thing with signatures.
> +
> +2015-09-05 Johan Bockgård <bojohan@gnu.org>
> +
> + * doc/lispref/frames.texi (Mouse Tracking): Fix typo.
> +
> + Use PAT rather than UPAT in pcase macros
> + * lisp/emacs-lisp/cl-macs.el (cl-struct) <pcase-defmacro>:
> + * lisp/emacs-lisp/eieio.el (eieio) <pcase-defmacro>: Use PAT rather
> + than UPAT.
> +
> +2015-09-05 Paul Eggert <eggert@cs.ucla.edu>
> +
> + Fix describe-function keybinding confusion
> + * lisp/help-fns.el (describe-function-1): Compute signature
> + in the original buffer, not in standard-output, so that
> + substitute-command-keys uses the proper keybindings.
> + This fixes Bug#21412, introduced in commit
> + 2015-06-11T10:23:46-0700!eggert@cs.ucla.edu.
> +
> +2015-09-05 Xue Fuqiao <xfq.free@gmail.com>
> +
> + * doc/emacs/programs.texi (Program Modes): Remove an index entry.
> +
> +2015-09-05 Robert Pluim <rpluim@gmail.com> (tiny change)
> +
> + Avoid read error messages from 'inotify'
> + * src/process.c (wait_reading_process_output): Add a
> + 'tls_available' set and manipulate it instead of 'Available' when
> + checking TLS inputs. Assign the value to 'Available' only if we
> + find any TLS data waiting to be read. This avoids error messages
> + from 'inotify' that tries to read data it shouldn't. (Bug#21337)
> +
> +2015-09-05 Eli Zaretskii <eliz@gnu.org>
> +
> + Avoid errors in thing-at-point with 2nd argument non-nil
> + * lisp/thingatpt.el (thing-at-point): Only call 'length' on
> + sequences. (Bug#21391)
> +
> +2015-09-05 Philip <pipcet@gmail.com> (tiny change)
> +
> + Fix segfaults due to using a stale face ID
> + * src/xdisp.c (forget_escape_and_glyphless_faces): New function.
> + (display_echo_area_1, redisplay_internal): Call it to avoid
> + reusing stale face IDs for 'escape-glyph' and 'glyphless-char'
> + faces, which could case a segfault if the frame's face cache was
> + freed since the last redisplay. (Bug#21394)
> + * src/xfaces.c (free_realized_faces): Call forget_escape_and_glyphless_faces.
> + * src/dispextern.h (forget_escape_and_glyphless_faces): Add prototype.
> +
> +2015-09-04 Paul Eggert <eggert@cs.ucla.edu>
> +
> + Fix minor problems with " in manual
> +
> +2015-09-04 Michael Albinus <michael.albinus@gmx.de>
> +
> + * doc/misc/tramp.texi (Frequently Asked Questions): New item for ad-hoc
> + multi-hop files.
> +
> +2015-09-04 Paul Eggert <eggert@cs.ucla.edu>
> +
> + Support automated ‘make check’ in non-C locale
> + This lets the builder optionally test Emacs behavior in other locales.
> + The C locale is still the default for tests.
> + * test/automated/Makefile.in (TEST_LOCALE): New macro.
> + (emacs): Use it.
> + * test/automated/flymake-tests.el (flymake-tests--current-face):
> + Use C locale for subprocesses so that tests behave as expected.
> + * test/automated/python-tests.el:
> + (python-shell-prompt-validate-regexps-1)
> + (python-shell-prompt-validate-regexps-2)
> + (python-shell-prompt-validate-regexps-3)
> + (python-shell-prompt-validate-regexps-4)
> + (python-shell-prompt-validate-regexps-5)
> + (python-shell-prompt-validate-regexps-6)
> + (python-shell-prompt-set-calculated-regexps-1):
> + Adjust expected output to match locale.
> + * test/automated/tildify-tests.el (tildify-test--test)
> + (tildify-space-test--test, tildify-space-undo-test--test):
> + This test assumes UTF-8 encoding.
> +
> +2015-09-03 Paul Eggert <eggert@cs.ucla.edu>
> +
> + Fix some more docstring etc. quoting problems
> + Mostly these fixes prevent the transliteration of apostrophes
> + that should stay apostrophes. Also, prefer curved quotes in
> + Bahá’í proper names, as that’s the preferred Bahá’í style and
> + these names are chock-full of non-ASCII characters anyway.
> + * lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload)
> + (eieio-defclass-internal):
> + * lisp/emacs-lisp/eieio.el (defclass):
> + * lisp/hi-lock.el (hi-lock-mode):
> + Don’t transliterate Lisp apostrophes when generating a
> + doc string or diagnostic.
> + * lisp/international/mule-diag.el (list-coding-systems-1):
> + * lisp/international/ogonek.el (ogonek-jak, ogonek-how):
> + * lisp/mail/sendmail.el (sendmail-query-user-about-smtp):
> + * lisp/vc/ediff-mult.el (ediff-redraw-registry-buffer):
> + * lisp/vc/ediff-ptch.el (ediff-fixup-patch-map):
> + Substitute quotes before putting them in the help buffer.
> +
> +2015-09-03 Stefan Monnier <monnier@iro.umontreal.ca>
> +
> + Re-add the notion of echo_prompt lost in the translation
> + * src/keyboard.h (struct kboard): Replace echo_after_prompt with new
> + echo_prompt which contains the actual string. Update all uses.
> + * src/keyboard.c (kset_echo_prompt): New function.
> + (echo_update): Add echo_prompt at the very beginning.
> + (read_char): Remove workaround for bug#19875, not needed any more.
> + (read_key_sequence): Set echo_prompt rather than echo_string (bug#21403).
> + (mark_kboards): Mark echo_prompt.
> +
> + Fix disassembly of non-compiled lexical functions (bug#21377)
> + * lisp/emacs-lisp/bytecomp.el (byte-compile): Handle `closure' arg.
> + * lisp/emacs-lisp/disass.el: Use lexical-binding.
> + (disassemble): Recognize `closure's as well.
> + (disassemble-internal): Use indirect-function and
> + help-function-arglist, and accept `closure's.
> + (disassemble-internal): Use interactive-form.
> + (disassemble-1): Use functionp.
> +
> + (tex--prettify-symbols-compose-p): Don't compose in verbatim blocks!
> + * lisp/textmodes/tex-mode.el (tex--prettify-symbols-compose-p):
> + Don't compose inside verbatim blocks!
> +
> +2015-09-03 Mark Oteiza <mvoteiza@udel.edu>
> +
> + * lisp/thingatpt.el (thing-at-point-uri-schemes): Add "man:"
> + (bug#19441)
> +
> + * lisp/mpc.el (mpc--proc-connect): Handle unix sockets (bug#19394)
> +
> +2015-09-03 Dmitry Gutov <dgutov@yandex.ru>
> +
> + vc-git-mode-line-string: Explicitly re-apply the face
> + * lisp/vc/vc-git.el (vc-git-mode-line-string): Explicitly re-apply
> + the face (bug#21404).
> +
> +2015-09-02 Paul Eggert <eggert@cs.ucla.edu>
> +
> + Treat initial-scratch-message as a doc string
> + * doc/emacs/building.texi (Lisp Interaction):
> + * doc/lispref/os.texi (Startup Summary):
> + * etc/NEWS: Document this.
> + * lisp/startup.el (initial-scratch-message):
> + Look up find-file’s key rather than hardcoding it.
> + (command-line-1): Substitute the doc string.
> + This also substitutes the quotes, which will help test display
> + quoting at startup.
> +
> + Fix describe-char bug with glyphs on terminals
> + * lisp/descr-text.el (describe-char): Terminals can have glyphs in
> + buffers too, so don’t treat them differently from graphic displays.
> + Without this fix, describe-char would throw an error on a terminal
> + if given a glyph with a non-default face.
> +
> + Follow text-quoting-style in display table init
> + This attempts to fix a problem reported by Alan Mackenzie in:
> + http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00112.html
> + * doc/lispref/display.texi (Active Display Table):
> + Mention how text-quoting-style affects it.
> + * doc/lispref/help.texi (Keys in Documentation):
> + Say how to set text-quoting-style in ~/.emacs.
> + * etc/NEWS: Document the change.
> + * lisp/startup.el (startup--setup-quote-display):
> + Follow user preference if text-quoting-style is set.
> + (command-line): Setup quote display again if user expresses
> + a preference in .emacs.
> +
> +2015-09-02 K. Handa <handa@gnu.org>
> +
> + Fix typo
> + * ftfont.c (ftfont_drive_otf): otf_positioning_type_components_mask -> OTF_positioning_type_components_mask.
> +
> + fix previous change
> + * ftfont.c (ftfont_drive_otf): Remember some bits of
> + OTF_Glyph->positioning_type in MFLTGlyphFT->libotf_positioning_type.
> +
> +2015-09-01 David Caldwell <david@porkrind.org> (tiny change)
> +
> + * lisp/vc/vc-hooks.el (vc-refresh-state): New command
> + (vc-refresh-state): Rename from vc-find-file-hook and make interactive.
> + (vc-find-file-hook): Redefine as obsolete alias.
> +
> +2015-09-01 Paul Eggert <eggert@cs.ucla.edu>
> +
> + Escape ` and ' in doc
> + Escape apostrophes and grave accents in docstrings if they are
> + are supposed to stand for themselves and are not quotes. Remove
> + apostrophes from docstring examples like ‘'(calendar-nth-named-day
> + -1 0 10 year)’ that confuse source code with data. Do some other
> + minor docstring fixups as well, e.g., insert a missing close
> + quote.
> +
> +2015-09-01 Stefan Monnier <monnier@iro.umontreal.ca>
> +
> + Generalize the prefix-command machinery of C-u
> + * lisp/simple.el (prefix-command-echo-keystrokes-functions)
> + (prefix-command-preserve-state-hook): New hooks.
> + (internal-echo-keystrokes-prefix): New function.
> + (prefix-command--needs-update, prefix-command--last-echo): New vars.
> + (prefix-command-update, prefix-command-preserve): New functions.
> + (reset-this-command-lengths): New compatibility definition.
> + (universal-argument--mode): Call prefix-command-update.
> + (universal-argument, universal-argument-more, negative-argument)
> + (digit-argument): Call prefix-command-preserve-state.
> + * src/keyboard.c: Call internal-echo-keystrokes-prefix to build
> + the "prefix argument" to echo.
> + (this_command_key_count_reset, before_command_key_count)
> + (before_command_echo_length): Delete variables.
> + (echo_add_key): Always add a space.
> + (echo_char): Remove.
> + (echo_dash): Don't give up when this_command_key_count is 0, since that
> + is now the case after a prefix command.
> + (echo_update): New function, extracted from echo_now.
> + (echo_now): Use it.
> + (add_command_key, read_char, record_menu_key): Remove old disabled code.
> + (command_loop_1): Don't refrain from pushing an undo boundary when
> + prefix-arg is set. Remove other prefix-arg special case, now handled
> + directly in the prefix commands instead. But call echo_now if there's
> + a prefix state to echo.
> + (read_char, record_menu_key): Use echo_update instead of echo_char.
> + (read_key_sequence): Use echo_now rather than echo_dash/echo_char.
> + (Freset_this_command_lengths): Delete function.
> + (syms_of_keyboard): Define Qinternal_echo_keystrokes_prefix.
> + (syms_of_keyboard): Don't defsubr Sreset_this_command_lengths.
> + * lisp/simple.el: Use those new hooks for C-u.
> + (universal-argument--description): New function.
> + (prefix-command-echo-keystrokes-functions): Use it.
> + (universal-argument--preserve): New function.
> + (prefix-command-preserve-state-hook): Use it.
> + (command-execute): Call prefix-command-update if needed.
> + * lisp/kmacro.el (kmacro-step-edit-prefix-commands)
> + (kmacro-step-edit-prefix-index): Delete variables.
> + (kmacro-step-edit-query, kmacro-step-edit-insert): Remove ad-hoc
> + support for prefix arg commands.
> + (kmacro-step-edit-macro): Don't bind kmacro-step-edit-prefix-index.
> + * lisp/emulation/cua-base.el (cua--prefix-override-replay)
> + (cua--shift-control-prefix): Use prefix-command-preserve-state.
> + Remove now unused arg `arg'.
> + (cua--prefix-override-handler, cua--prefix-repeat-handler)
> + (cua--shift-control-c-prefix, cua--shift-control-x-prefix):
> + Update accordingly.
> + (cua--prefix-override-timeout): Don't call reset-this-command-lengths
> + any more.
> + (cua--keep-active, cua-exchange-point-and-mark): Don't set mark-active
> + if the mark is not set.
> +
> +2015-09-01 Paul Eggert <eggert@cs.ucla.edu>
> +
> + Rework quoting in tutorial
> + * doc/lispintro/emacs-lisp-intro.texi (Sample let Expression)
> + (if in more detail, type-of-animal in detail, else): Rework the
> + early example to use " rather than ' so that we don’t burden
> + complete novices with the low-priority detail of text quoting style.
> + (Complete zap-to-char, kill-region, Complete copy-region-as-kill)
> + (kill-new function, kill-ring-yank-pointer)
> + (Complete forward-sentence, Loading Files)
> + (Code for current-kill, Code for current-kill, yank):
> + Resurrect the Emacs 22 versions of the code, which uses grave
> + quoting style in doc strings.
> + (Complete zap-to-char): Mention how quoting works in doc strings.
> +
> + Setup quote display only if interactive
> + * lisp/startup.el (command-line):
> + Skip call to startup--setup-quote-display if noninteractive.
> + Without this change, python-shell-prompt-validate-regexps-1
> + fails in test/automated/python-tests.el when run in an
> + en_US.utf8 locale on Fedora.
> +
> +2015-09-01 Katsumi Yamaoka <yamaoka@jpl.org>
> +
> + Use defalias at the top level
> + * lisp/gnus/gnus-util.el (gnus-format-message):
> + * lisp/net/tls.el (tls-format-message): Use defalias at the top level
> + so as to make eval-and-compile unnecessary. Thanks to Stefan Monnier.
> +
> +2015-09-01 Paul Eggert <eggert@cs.ucla.edu>
> +
> + terminal-init-w32console mimicks command-line
> + Problem reported by Eli Zaretskii.
> + * lisp/startup.el (startup--setup-quote-display):
> + New function, refactored from a part of ‘command-line’.
> + (command-line): Use it.
> + * lisp/term/w32console.el (terminal-init-w32console):
> + Use it, so that this function stays consistent with ‘command-line’.
> +
> + Display replacement quotes with shadow glyphs
> + * lisp/startup.el (command-line): When displaying ASCII
> + replacements for curved quotes, use a shadow glyph instead of a
> + regular one, to avoid ambiguity.
> +
> +2015-09-01 Michael Albinus <michael.albinus@gmx.de>
> +
> + * lisp/net/tramp-sh.el (tramp-methods) <sudo>: Mask "Password:".
> +
> +2015-09-01 Paul Eggert <eggert@cs.ucla.edu>
> +
> + Docstring fixes re quotes in C code
> + Fix some docstring quoting problems, mostly by escaping apostrophe.
> +
> +2015-09-01 Michael Albinus <michael.albinus@gmx.de>
> +
> + Some Tramp password fixes
> + * lisp/net/tramp.el (tramp-clear-passwd): Clear also the passwords
> + of the hops.
> + * lisp/net/tramp-sh.el (tramp-methods) <sudo>: Move "-p" "Password:"
> + at the beginning of the command. Otherwise, it could be
> + interpreted as password prompt if the remote host echoes the
> + command.
> + (tramp-remote-coding-commands): Add "openssl enc -base64".
> +
> +2015-09-01 Dmitry Gutov <dgutov@yandex.ru>
> +
> + Make vc-git-working-revision always return the commit hash
> + * lisp/vc/vc-git.el (vc-git-working-revision):
> + Return the commit hash (bug#21383).
> + (vc-git--symbolic-ref): New function, extracted from above.
> + (vc-git-mode-line-string): Use it.
> +
> +2015-09-01 K. Handa <handa@gnu.org>
> +
> + Use the new type MFLTGlyphFT for MFLTGlyphString.glyphs.
> + * ftfont.c (MFLTGlyphFT): New type.
> + (ftfont_get_glyph_id, ftfont_get_metrics, ftfont_drive_otf)
> + (ftfont_shape_by_flt): Make MFLTGlyphFT the actual type of
> + elements in the array MFLTGlyphString.glyphs.
> +
> +2015-09-01 Stephen Leake <stephen_leake@stephe-leake.org>
> +
> + Improve comments in elisp-mode.el, elisp-mode-tests.el
> + * lisp/progmodes/elisp-mode.el: Clean up FIXMEs, comments.
> +
> + Delete Emacs 25 test in mode-local.el
> + * lisp/cedet/mode-local.el (describe-mode-local-overload): Fix missed an
> + edit in previous commit.
> +
> + Show all known mode-local overrides in *Help*
> + * lisp/cedet/mode-local.el (describe-mode-local-overload): Assume Emacs
> + 25. Add all known mode-local overrides.
> +
> +2015-09-01 Katsumi Yamaoka <yamaoka@jpl.org>
> +
> + * lisp/gnus/gnus-sum.el (gnus-summary-search-article):
> + Ensure that the article where the search word is found is displayed
> + and pointed to in the summary buffer.
> +
> +2015-08-31 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
> +
> + * lisp/newcomment.el (comment-dwim): Use `use-region-p'
> + When the region is active, but is empty (length 0), act as though
> + the region was not active; that is, put a comment at the end of
> + the line. (Bug#21119)
> +
> +2015-08-31 Katsumi Yamaoka <yamaoka@jpl.org>
> +
> + Port tls.el to older Emacs
> + * lisp/net/tls.el (tls-format-message):
> + Alias to format-message, or format if not available.
> + (open-tls-stream): Use it.
> +
> +2015-08-31 Rüdiger Sonderfeld <ruediger@c-plusplus.net>
> +
> + hideif.el: Recognize .h++ as C++ header.
> + * lisp/progmodes/hideif.el (hide-ifdef-header-regexp): Add .h++.
> +
> + isearch: Document character folding mode.
> + * isearch.el (isearch-forward): Mention `isearch-toggle-character-fold'
> + in docstring.
> +
> +2015-08-31 Paul Eggert <eggert@cs.ucla.edu>
> +
> + Quoting fixes in ERC and Eshell
> + * lisp/erc/erc-autoaway.el (erc-autoaway-set-away):
> + * lisp/erc/erc-backend.el (define-erc-response-handler):
> + * lisp/erc/erc-fill.el (erc-fill-static-center):
> + * lisp/eshell/em-dirs.el (eshell-save-some-last-dir):
> + * lisp/eshell/em-glob.el (eshell-glob-entries):
> + * lisp/eshell/em-hist.el (eshell-save-some-history):
> + * lisp/eshell/em-unix.el (eshell-remove-entries, eshell/rm)
> + (eshell-shuffle-files):
> + * lisp/eshell/esh-cmd.el (eshell-do-eval):
> + * lisp/eshell/esh-proc.el (eshell-process-interact)
> + (eshell-query-kill-processes):
> + Respect ‘text-quoting-style’ in diagnostics and doc strings.
> +
> + Quoting fixes in Gnus
> + * lisp/gnus/gnus-agent.el:
> + (gnus-agent-possibly-synchronize-flags-server):
> + * lisp/gnus/gnus-art.el (gnus-article-browse-delete-temp-files):
> + * lisp/gnus/gnus-eform.el (gnus-edit-form):
> + * lisp/gnus/gnus-group.el (gnus-group-edit-group)
> + (gnus-group-nnimap-edit-acl):
> + * lisp/gnus/gnus-topic.el (gnus-topic-edit-parameters):
> + * lisp/gnus/mail-source.el (mail-source-delete-old-incoming):
> + * lisp/gnus/message.el (message-strip-subject-encoded-words)
> + (message-check-recipients, message-send-form-letter):
> + * lisp/gnus/mm-decode.el (mm-display-part):
> + * lisp/gnus/mm-uu.el (mm-uu-pgp-signed-extract-1):
> + * lisp/gnus/mml-smime.el (mml-smime-get-dns-cert)
> + (mml-smime-get-ldap-cert):
> + * lisp/gnus/spam-report.el (spam-report-process-queue):
> + Respect ‘text-quoting-style’ in diagnostics.
> + * lisp/gnus/gnus-art.el (article-display-face)
> + * lisp/gnus/gnus-fun.el (gnus-display-x-face-in-from):
> + Use straight quoting in email.
> + * lisp/gnus/rfc2231.el (rfc2231-decode-encoded-string):
> + Escape apostrophes in doc strings.
> +
> + Quoting fixes in lisp mail, mh-e, net, url
> + * lisp/mail/emacsbug.el (report-emacs-bug)
> + (report-emacs-bug-hook): Use straight quotes in outgoing email,
> + * lisp/mail/feedmail.el (feedmail-message-action-help-blat):
> + * lisp/mail/rmail.el (rmail-unknown-mail-followup-to):
> + * lisp/mail/rmailout.el (rmail-output-read-file-name):
> + * lisp/net/imap.el (imap-interactive-login):
> + * lisp/net/tls.el (open-tls-stream):
> + * lisp/url/url-auth.el (url-register-auth-scheme):
> + Respect ‘text-quoting-style’ in diagnostics.
> + * lisp/mh-e/mh-e.el (mh-sortm-args):
> + Quote docstring example using text quotes, not as a Lisp quote.
> +
> +2015-08-31 Stephen Leake <stephen_leake@stephe-leake.org>
> +
> + Fix some byte-compiler warnings in EDE
> + This fixes a bug that caused ede-generic-new-autoloader to overwrite the
> + existing autoloader list, rather than add to it.
> + * lisp/cedet/ede/auto.el (ede-project-class-files): Delete obsolete name
> + argument to eieio class constructor.
> + (ede-show-supported-projects): New.
> + (ede-add-project-autoload): Replace obsolete `eieio-object-name-string'
> + with (oref ... name).
> + (ede-auto-load-project): Use slot name, not initarg key.
> + * lisp/cedet/ede/generic.el (ede-generic-load,
> + ede-generic-find-matching-target): Use slot name, not initarg key.
> + (ede-find-target): Use oref-default on class name.
> + (ede-generic-new-autoloader): Delete obsolete name argument to eieio
> + class constructor.
> + (ede-enable-generic-projects): Make project type names unique.
> +
> +2015-08-31 Eli Zaretskii <eliz@gnu.org>
> +
> + Fix directory accessibility tests for w32 network volumes
> + * src/w32.c (faccessat): Don't fail with network volumes without a
> + share.
> + (w32_accessible_directory_p): Handle network volumes without a
> + share.
> +
> + Fix handling long file names in readdir on MS-Windows
> + * src/w32.c (sys_readdir): Append "\*" to the directory after
> + converting it to UTF-16/ANSI, not before, to avoid overflowing the
> + 260-character limit on file names in filename_to_utf16/ansi.
> +
> + Make file-accessible-directory-p reliable on MS-Windows
> + * src/w32.c (w32_accessible_directory_p): New function.
> + * src/w32.h (w32_accessible_directory_p): Add prototype.
> + * src/fileio.c (file_accessible_directory_p) [WINDOWSNT]: Call
> + w32_accessible_directory_p to test a directory for accessibility
> + by the current user. (Bug#21346)
> + (Ffile_accessible_directory_p): Remove the w32 specific caveat
> + from the doc string.
> +
> +2015-08-31 Martin Rudalics <rudalics@gmx.at>
> +
> + Don't call do_pending_window_change in signal handlers (Bug#21380)
> + * src/gtkutil.c (xg_frame_resized):
> + * src/xterm.c (x_set_window_size):
> + * src/w32term.c (x_set_window_size): Don't call
> + do_pending_window_change.
> +
> +2015-08-31 Paul Eggert <eggert@cs.ucla.edu>
> +
> + Quoting fixes in lisp/org
> + * lisp/org/org-agenda.el (org-search-view, org-todo-list)
> + (org-tags-view):
> + * lisp/org/org-capture.el (org-capture-mode)
> + * lisp/org/org-ctags.el (org-ctags-visit-buffer-or-file)
> + (org-ctags-ask-append-topic):
> + * lisp/org/org.el (org-time-string-to-time)
> + (org-time-string-to-absolute):
> + * lisp/org/org-ctags.el (org-ctags-visit-buffer-or-file)
> + (org-ctags-ask-append-topic):
> + * lisp/org/org.el (org-time-string-to-time)
> + (org-time-string-to-absolute):
> + Respect ‘text-quoting-style’ in diagnostics.
> + * lisp/org/org-agenda.el (org-agenda-custom-commands)
> + (org-agenda-dim-blocked-tasks): Plural of TODO is TODOs, not TODO’s.
> + * lisp/org/org-capture.el (org-capture-fill-template):
> + Avoid contraction in output file that might be ASCII.
> + * lisp/org/org-compat.el (format-message):
> + Define if not already defined, for backward compatibility.
> + * lisp/org/org-src.el (org-edit-src-save):
> + * lisp/org/org.el (org-cycle, org-ctrl-c-ctrl-c):
> + Escape apostrophes in diagnostics.
> +
> + Treat “instead” strings as docstrings
> + * lisp/emacs-lisp/bytecomp.el (byte-compile-form):
> + * lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning):
> + Substitute quotes in instead strings.
> +
> +2015-08-31 Nicolas Petton <nicolas@petton.fr>
> +
> + Better documentation of seq-let
> + * doc/lispref/sequences.texi (Sequence Functions): Rephrase the
> + documentation of seq-let.
> +
> +2015-08-31 Paul Eggert <eggert@cs.ucla.edu>
> +
> + * lisp/international/ccl.el: Fix quoting.
> +
> + Quoting fixes in lisp/international and lisp/leim
> + * lisp/international/ccl.el (ccl-dump, ccl-dump-call):
> + * lisp/international/ja-dic-utl.el (skkdic-lookup-key):
> + * lisp/international/mule-cmds.el:
> + (select-safe-coding-system-interactively, leim-list-file-name):
> + * lisp/international/quail.el (quail-use-package, quail-help):
> + * lisp/international/titdic-cnv.el (tit-process-header)
> + (miscdic-convert):
> + Respect text quoting style in doc strings and diagnostics.
> + * lisp/international/quail.el (lisp/international/quail.el):
> + * lisp/leim/quail/ethiopic.el ("ethiopic"):
> + Escape apostrophes in doc strings.
> +
> + Make ‘text-quoting-style’ a plain defvar
> + It doesn’t need customization, as it’s likely useful only by experts.
> + Suggested by Stefan Monnier in:
> + http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg01020.html
> + * lisp/cus-start.el: Remove doc.c section for builtin customized vars.
> +
> + Quoting fixes in lisp/textmodes
> + * lisp/textmodes/bibtex.el (bibtex-validate)
> + (bibtex-validate-globally, bibtex-search-entries):
> + * lisp/textmodes/ispell.el (ispell-command-loop):
> + * lisp/textmodes/page-ext.el (search-pages, pages-directory):
> + * lisp/textmodes/texinfmt.el (texinfmt-version)
> + (texinfo-format-region, texinfo-format-buffer-1):
> + * lisp/textmodes/two-column.el (2C-split):
> + Respect text quoting style in doc strings and diagnostics.
> + * lisp/textmodes/conf-mode.el (conf-mode-map, conf-quote-normal):
> + * lisp/textmodes/sgml-mode.el (sgml-specials, sgml-mode):
> + Escape apostrophes in doc strings.
> +
> + Documentation fixes re quotes
> + Prefer curved quotes in examples if users will typically see
> + curved quotes when the examples run.
> + Mention format-message when appropriate.
> + Don’t use @code in examples.
> + Quote an apostrophe with @kbd.
> +
> + Quoting fixes in lisp/progmodes
> + * lisp/progmodes/cc-engine.el (c-bos-report-error):
> + * lisp/progmodes/cpp.el (cpp-edit-reset):
> + * lisp/progmodes/ebrowse.el (ebrowse-tags-apropos):
> + * lisp/progmodes/etags.el (etags-tags-apropos-additional)
> + (etags-tags-apropos, list-tags, tags-apropos):
> + * lisp/progmodes/executable.el (executable-set-magic):
> + * lisp/progmodes/octave.el (octave-sync-function-file-names)
> + (octave-help, octave-find-definition-default-filename)
> + (octave-find-definition):
> + Respect text quoting style in doc strings and diagnostics.
> + * lisp/progmodes/cc-langs.el (c-populate-syntax-table):
> + * lisp/progmodes/verilog-mode.el (verilog-auto-reset-widths):
> + * lisp/progmodes/vhdl-mode.el (vhdl-electric-quote):
> + Escape apostrophes in doc strings.
> + * lisp/progmodes/cmacexp.el (c-macro-expansion):
> + Use straight quoting in ASCII comment.
> + * lisp/progmodes/idlwave.el (idlwave-auto-fill-split-string)
> + (idlwave-pad-keyword):
> + * lisp/progmodes/vhdl-mode.el (vhdl-widget-directory-validate)
> + (vhdl-electric-open-bracket, vhdl-electric-close-bracket):
> + (vhdl-electric-semicolon, vhdl-electric-comma)
> + (vhdl-electric-period, vhdl-electric-equal):
> + Use directed quotes in diagnostics and doc strings.
> +
> +2015-08-30 Xue Fuqiao <xfq.free@gmail.com>
> +
> + Minor documentation and NEWS tweak
> + * doc/lispintro/emacs-lisp-intro.texi (fwd-para let): Add an index
> + entry.
> +
> 2015-08-30 Michael Albinus <michael.albinus@gmx.de>
>
> * lisp/net/tramp-sh.el (tramp-convert-file-attributes):
> @@ -11395,7 +12027,7 @@
>
> This file records repository revisions from
> commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
> -commit cc90c25a50e536669ac327f7e05ec9194d1650d0 (inclusive).
> +commit 88b9a8000da6cf2d4aede86e9eae4f00016d0d6b (inclusive).
> See ChangeLog.1 for earlier changes.
>
> ;; Local Variables:
> diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el
> index 8d3f5b7..9e39fd0 100644
> --- a/admin/unidata/unidata-gen.el
> +++ b/admin/unidata/unidata-gen.el
> @@ -445,7 +445,7 @@ Property value is a symbol `o' (Open), `c' (Close), or `n' (None)."
> ;; (4) possibly update the switch cases in
> ;; bidi.c:bidi_get_type and bidi.c:bidi_get_category.
> (bidi-warning "\
> -** Found new bidi-class ‘%s’, please update bidi.c and dispextern.h")
> +** Found new bidi-class `%s', please update bidi.c and dispextern.h")
> tail elt range val val-code idx slot
> prev-range-data)
> (setq val-list (cons nil (copy-sequence val-list)))
> diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
> index b4a99a1..1d40a2d 100644
> --- a/doc/emacs/building.texi
> +++ b/doc/emacs/building.texi
> @@ -1549,7 +1549,7 @@ mode are the same as in Emacs Lisp mode.
> At startup, the @file{*scratch*} buffer contains a short message, in
> the form of a Lisp comment, that explains what it is for. This
> message is controlled by the variable @code{initial-scratch-message},
> -which should be either a string, or @code{nil} (which means to
> +which should be either a documentation string, or @code{nil} (which means to
> suppress the message).
>
> @findex ielm
> diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
> index a2bea24..43c61d7 100644
> --- a/doc/emacs/custom.texi
> +++ b/doc/emacs/custom.texi
> @@ -28,7 +28,7 @@ Reference Manual}.
> to decide what to do; by setting variables,
> you can control their functioning.
> * Key Bindings:: The keymaps say what command each key runs.
> - By changing them, you can "redefine keys".
> + By changing them, you can ``redefine keys''.
> * Init File:: How to write common customizations in the
> initialization file.
> @end menu
> diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
> index 5f53f9b..ec82a07 100644
> --- a/doc/emacs/emacs.texi
> +++ b/doc/emacs/emacs.texi
> @@ -160,7 +160,7 @@ Fundamental Editing Commands
> * Help:: Commands for asking Emacs about its commands.
>
> Important Text-Changing Commands
> -* Mark:: The mark: how to delimit a "region" of text.
> +* Mark:: The mark: how to delimit a ``region'' of text.
> * Killing:: Killing (cutting) and yanking (copying) text.
> * Registers:: Saving a text string or a location in the buffer.
> * Display:: Controlling what text is displayed.
> @@ -172,7 +172,7 @@ Major Structures of Emacs
> * Files:: All about handling files.
> * Buffers:: Multiple buffers; editing several files at once.
> * Windows:: Viewing multiple pieces of text in one frame.
> -* Frames:: Using multiple "windows" on your display.
> +* Frames:: Using multiple ``windows'' on your display.
> * International:: Using non-@acronym{ASCII} character sets.
>
> Advanced Features
> @@ -200,7 +200,7 @@ Advanced Features
> @end ifnottex
> * Editing Binary Files:: Editing binary files with Hexl mode.
> * Saving Emacs Sessions:: Saving Emacs state from one session to the next.
> -* Recursive Edit:: Performing edits while "within another command".
> +* Recursive Edit:: Performing edits while ``within another command''.
> * Hyperlinking:: Following links in buffers.
> * Amusements:: Various games and hacks.
> * Packages:: Installing additional features.
> @@ -301,7 +301,7 @@ Help
> * Language Help:: Help relating to international language support.
> * Misc Help:: Other help commands.
> * Help Files:: Commands to display auxiliary help files.
> -* Help Echo:: Help on active text and tooltips ("balloon help").
> +* Help Echo:: Help on active text and tooltips (``balloon help'').
>
> The Mark and the Region
>
> @@ -337,7 +337,7 @@ Yanking
> * Earlier Kills:: Yanking something killed some time ago.
> * Appending Kills:: Several kills in a row all yank together.
>
> -"Cut and Paste" Operations on Graphical Displays
> +``Cut and Paste'' Operations on Graphical Displays
>
> * Clipboard:: How Emacs uses the system clipboard.
> * Primary Selection:: The temporarily selected text selection.
> @@ -464,7 +464,7 @@ Saving Files
> * Customize Save:: Customizing the saving of files.
> * Interlocking:: How Emacs protects against simultaneous editing
> of one file by two users.
> -* File Shadowing:: Copying files to "shadows" automatically.
> +* File Shadowing:: Copying files to ``shadows'' automatically.
> * Time Stamps:: Emacs can update time stamps on saved files.
>
> Backup Files
> @@ -597,7 +597,7 @@ Commands for Human Languages
> * TeX Mode:: Editing TeX and LaTeX files.
> * HTML Mode:: Editing HTML and SGML files.
> * Nroff Mode:: Editing input to the nroff formatter.
> -* Enriched Text:: Editing text "enriched" with fonts, colors, etc.
> +* Enriched Text:: Editing text ``enriched'' with fonts, colors, etc.
> * Text Based Tables:: Commands for editing text-based tables.
> * Two-Column:: Splitting text columns into separate windows.
>
> @@ -638,7 +638,7 @@ Enriched Text
> * Enriched Indentation:: Changing the left and right margins.
> * Enriched Justification:: Centering, setting text flush with the
> left or right margin, etc.
> -* Enriched Properties:: The "special" text properties submenu.
> +* Enriched Properties:: The ``special'' text properties submenu.
>
> @c The automatic texinfo menu update inserts some duplicate items here
> @c (faces, colors, indentation, justification, properties), because
> @@ -895,7 +895,7 @@ Editing Pictures
>
> * Basic Picture:: Basic concepts and simple commands of Picture Mode.
> * Insert in Picture:: Controlling direction of cursor motion
> - after "self-inserting" characters.
> + after ``self-inserting'' characters.
> * Tabs in Picture:: Various features for tab stops and indentation.
> * Rectangles in Picture:: Clearing and superimposing rectangles.
> @end ifnottex
> @@ -1092,7 +1092,7 @@ Customization
> to decide what to do; by setting variables,
> you can control their functioning.
> * Key Bindings:: The keymaps say what command each key runs.
> - By changing them, you can "redefine" keys.
> + By changing them, you can ``redefine'' keys.
> * Init File:: How to write common customizations in the
> initialization file.
>
> diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
> index 6ff59b4..5985d8b 100644
> --- a/doc/emacs/files.texi
> +++ b/doc/emacs/files.texi
> @@ -340,7 +340,7 @@ that was visited in the buffer.
> * Customize Save:: Customizing the saving of files.
> * Interlocking:: How Emacs protects against simultaneous editing
> of one file by two users.
> -* Shadowing: File Shadowing. Copying files to "shadows" automatically.
> +* Shadowing: File Shadowing. Copying files to ``shadows'' automatically.
> * Time Stamps:: Emacs can update time stamps on saved files.
> @end menu
>
> diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
> index 5129c1c..6984250 100644
> --- a/doc/emacs/help.texi
> +++ b/doc/emacs/help.texi
> @@ -72,7 +72,7 @@ inputs, but they all support @key{F1}.)
> * Language Help:: Help relating to international language support.
> * Misc Help:: Other help commands.
> * Help Files:: Commands to display auxiliary help files.
> -* Help Echo:: Help on active text and tooltips ("balloon help").
> +* Help Echo:: Help on active text and tooltips (``balloon help'').
> @end menu
>
> @iftex
> diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi
> index 68913d8..19d861a 100644
> --- a/doc/emacs/package.texi
> +++ b/doc/emacs/package.texi
> @@ -232,7 +232,7 @@ in your init file depends on a package). In that case, your init file
> should call the function @code{package-initialize}. It is up to you
> to ensure that relevant user options, such as @code{package-load-list}
> (see below), are set up prior to the @code{package-initialize} call.
> -You should also set @code{package-enable-at-startup} to @code{nil}, to
> +This will automatically set @code{package-enable-at-startup} to @code{nil}, to
> avoid loading the packages again after processing the init file.
> Alternatively, you may choose to completely inhibit package loading at
> startup, and invoke the command @kbd{M-x package-initialize} to load
> diff --git a/doc/emacs/picture-xtra.texi b/doc/emacs/picture-xtra.texi
> index 6be84bd..a9ad2d5 100644
> --- a/doc/emacs/picture-xtra.texi
> +++ b/doc/emacs/picture-xtra.texi
> @@ -53,7 +53,7 @@ Additional extensions to Picture mode can be found in
> @menu
> * Basic Picture:: Basic concepts and simple commands of Picture Mode.
> * Insert in Picture:: Controlling direction of cursor motion
> - after "self-inserting" characters.
> + after ``self-inserting'' characters.
> * Tabs in Picture:: Various features for tab stops and indentation.
> * Rectangles in Picture:: Clearing and superimposing rectangles.
> @end menu
> diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
> index 8f78a1a..ea8f82f 100644
> --- a/doc/emacs/programs.texi
> +++ b/doc/emacs/programs.texi
> @@ -97,7 +97,6 @@ your favorite language, the mode might be implemented in a package not
> distributed with Emacs (@pxref{Packages}); or you can contribute one.
>
> @kindex DEL @r{(programming modes)}
> -@findex c-electric-backspace
> @findex backward-delete-char-untabify
> In most programming languages, indentation should vary from line to
> line to illustrate the structure of the program. Therefore, in most
> diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
> index 34d4e8f..a0dfe22 100644
> --- a/doc/emacs/search.texi
> +++ b/doc/emacs/search.texi
> @@ -1342,13 +1342,13 @@ to replace all remaining occurrences without asking again.
> to replace all remaining occurrences in all remaining buffers in
> multi-buffer replacements (like the Dired @key{Q} command that performs
> query replace on selected files). It answers this question and all
> -subsequent questions in the series with "yes", without further
> +subsequent questions in the series with ``yes'', without further
> user interaction.
>
> @item N @r{(Upper-case)}
> to skip to the next buffer in multi-buffer replacements without
> replacing remaining occurrences in the current buffer. It answers
> -this question "no", gives up on the questions for the current buffer,
> +this question ``no'', gives up on the questions for the current buffer,
> and continues to the next buffer in the sequence.
>
> @item ^
> diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
> index 31760b7..389ef5e 100644
> --- a/doc/emacs/text.texi
> +++ b/doc/emacs/text.texi
> @@ -78,7 +78,7 @@ for editing such pictures.
> * TeX Mode:: Editing TeX and LaTeX files.
> * HTML Mode:: Editing HTML and SGML files.
> * Nroff Mode:: Editing input to the nroff formatter.
> -* Enriched Text:: Editing text "enriched" with fonts, colors, etc.
> +* Enriched Text:: Editing text ``enriched'' with fonts, colors, etc.
> * Text Based Tables:: Commands for editing text-based tables.
> * Two-Column:: Splitting text columns into separate windows.
> @end menu
> @@ -2072,7 +2072,7 @@ serves as an example of the features of Enriched mode.
> * Enriched Indentation:: Changing the left and right margins.
> * Enriched Justification:: Centering, setting text flush with the
> left or right margin, etc.
> -* Enriched Properties:: The "special" text properties submenu.
> +* Enriched Properties:: The ``special'' text properties submenu.
> @end menu
>
> @node Enriched Mode
> diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
> index fc01a97..2233376 100644
> --- a/doc/emacs/trouble.texi
> +++ b/doc/emacs/trouble.texi
> @@ -1345,16 +1345,16 @@ Emacs has additional style and coding conventions:
> @item
> @ifset WWW_GNU_ORG
> @ifhtml
> -the "Tips" Appendix in the Emacs Lisp Reference
> +the ``Tips'' Appendix in the Emacs Lisp Reference
> @url{http://www.gnu.org/software/emacs/manual/html_node/elisp/Tips.html}.
> @end ifhtml
> @ifnothtml
> -@xref{Tips, "Tips" Appendix in the Emacs Lisp Reference, Tips
> +@xref{Tips, ``Tips'' Appendix in the Emacs Lisp Reference, Tips
> Appendix, elisp, Emacs Lisp Reference}.
> @end ifnothtml
> @end ifset
> @ifclear WWW_GNU_ORG
> -@xref{Tips, "Tips" Appendix in the Emacs Lisp Reference, Tips
> +@xref{Tips, ``Tips'' Appendix in the Emacs Lisp Reference, Tips
> Appendix, elisp, Emacs Lisp Reference}.
> @end ifclear
>
> @@ -1398,7 +1398,7 @@ See gnu-misc-discuss instead.)
>
> A copyright disclaimer is also a possibility, but we prefer an assignment.
> Note that the disclaimer, like an assignment, involves you sending
> -signed paperwork to the FSF (simply saying "this is in the public domain"
> +signed paperwork to the FSF (simply saying ``this is in the public domain''
> is not enough). Also, a disclaimer cannot be applied to future work, it
> has to be repeated each time you want to send something new.
>
> diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
> index 3ac2418..d353241 100644
> --- a/doc/lispintro/emacs-lisp-intro.texi
> +++ b/doc/lispintro/emacs-lisp-intro.texi
> @@ -9268,7 +9268,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
> @@ -11107,7 +11107,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))))))
> @@ -13514,8 +13514,8 @@ For example:
> @smallexample
> @group
> (let* ((foo 7)
> - (bar (* 3 foo)))
> - (message "‘bar’ is %d." bar))
> + (bar (* 3 foo)))
> + (message "`bar' is %d." bar))
> @result{} ‘bar’ is 21.
> @end group
> @end smallexample
> @@ -13758,7 +13758,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 ... ")
> @@ -13825,7 +13825,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
> @@ -13947,7 +13947,7 @@ What happens is this: the search is limited to the region, and fails
> as you expect because there are no word-constituent characters in the
> region. Since it fails, we receive an error message. But we do not
> want to receive an error message in this case; we want to receive the
> -message that "The region does NOT have any words."
> +message ``The region does NOT have any words.''
>
> The solution to this problem is to provide @code{re-search-forward}
> with a third argument of @code{t}, which causes the function to return
> @@ -14987,13 +14987,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))
> @@ -15759,7 +15759,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
>
> @@ -19943,7 +19943,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
> @@ -20044,7 +20044,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)))
> @@ -21169,7 +21169,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
> @@ -21269,7 +21269,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
> @@ -21330,14 +21330,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))
> @@ -21467,7 +21467,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
> @@ -21497,7 +21497,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))
> @@ -21662,7 +21662,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/anti.texi b/doc/lispref/anti.texi
> index c1773aa..2784fd9 100644
> --- a/doc/lispref/anti.texi
> +++ b/doc/lispref/anti.texi
> @@ -56,8 +56,8 @@ there is no need to worry about the insertion of right-to-left text
> messing up how lines and paragraphs are displayed, the function
> @code{bidi-string-mark-left-to-right} has been removed; so have many
> other functions and variables related to bidirectional display.
> -Unicode directionality characters like @code{U+200E} ("left-to-right
> -mark") have no special effect on display.
> +Unicode directionality characters like @code{U+200E} LEFT-TO-RIGHT
> +MARK have no special effect on display.
>
> @item
> Emacs windows now have most of their internal state hidden from Lisp.
> diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
> index 49bfe82..71261e0 100644
> --- a/doc/lispref/buffers.texi
> +++ b/doc/lispref/buffers.texi
> @@ -23,7 +23,7 @@ not be displayed in any windows.
> * Buffer File Name:: The buffer file name indicates which file is visited.
> * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved.
> * Modification Time:: Determining whether the visited file was changed
> - "behind Emacs's back".
> + ``behind Emacs's back''.
> * Read Only Buffers:: Modifying text is not allowed in a read-only buffer.
> * Buffer List:: How to look at all the existing buffers.
> * Creating Buffers:: Functions that create buffers.
> diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
> index 29d1bd5..421f5cc 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 9d82edc..14e2cd3 100644
> --- a/doc/lispref/display.texi
> +++ b/doc/lispref/display.texi
> @@ -6531,8 +6531,12 @@ no buffer display table.
> The value of this variable is the standard display table, which is
> used when Emacs is displaying a buffer in a window with neither a
> window display table nor a buffer display table defined, or when Emacs
> -is outputting text to the standard output or error streams. Its
> -default is @code{nil}.
> +is outputting text to the standard output or error streams. Although its
> +default is typically @code{nil}, in an interactive session if the
> +locale cannot display curved quotes, or if the initial value of
> +@code{text-quoting-style} specifies a preference for ASCII, its
> +default maps curved quotes to ASCII approximations. @xref{Keys in
> +Documentation}.
> @end defvar
>
> The @file{disp-table} library defines several functions for changing
> diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
> index 9044fba..7b2b68a 100644
> --- a/doc/lispref/elisp.texi
> +++ b/doc/lispref/elisp.texi
> @@ -453,7 +453,7 @@ Kinds of Forms
> we find the real function via the symbol.
> * Function Forms:: Forms that call functions.
> * Macro Forms:: Forms that call macros.
> -* Special Forms:: "Special forms" are idiosyncratic primitives,
> +* Special Forms:: ``Special forms'' are idiosyncratic primitives,
> most of them extremely important.
> * Autoloading:: Functions set up to load files
> containing their real definitions.
> @@ -485,7 +485,7 @@ Errors
> Variables
>
> * Global Variables:: Variable values that exist permanently, everywhere.
> -* Constant Variables:: Certain "variables" have values that never change.
> +* Constant Variables:: Certain ``variables'' have values that never change.
> * Local Variables:: Variable values that exist only temporarily.
> * Void Variables:: Symbols that lack values.
> * Defining Variables:: A definition says a symbol is used as a variable.
> @@ -599,7 +599,7 @@ Loading
> * Repeated Loading:: Precautions about loading a file twice.
> * Named Features:: Loading a library if it isn't already loaded.
> * Where Defined:: Finding which file defined a certain symbol.
> -* Unloading:: How to "unload" a library that was loaded.
> +* Unloading:: How to ``unload'' a library that was loaded.
> * Hooks for Loading:: Providing code to be run when
> particular libraries are loaded.
>
> @@ -990,7 +990,7 @@ Buffers
> is visited.
> * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved.
> * Modification Time:: Determining whether the visited file was changed
> - "behind Emacs's back".
> + ``behind Emacs's back''.
> * Read Only Buffers:: Modifying text is not allowed in a
> read-only buffer.
> * Buffer List:: How to look at all the existing buffers.
> @@ -1117,8 +1117,8 @@ Markers
> * Marker Insertion Types:: Two ways a marker can relocate when you
> insert where it points.
> * Moving Markers:: Moving the marker to a new buffer or position.
> -* The Mark:: How "the mark" is implemented with a marker.
> -* The Region:: How to access "the region".
> +* The Mark:: How ``the mark'' is implemented with a marker.
> +* The Region:: How to access ``the region''.
>
> Text
>
> @@ -1152,7 +1152,7 @@ Text
> * Base 64:: Conversion to or from base 64 encoding.
> * Checksum/Hash:: Computing cryptographic hashes.
> * Parsing HTML/XML:: Parsing HTML and XML.
> -* Atomic Changes:: Installing several buffer changes "atomically".
> +* Atomic Changes:: Installing several buffer changes ``atomically''.
> * Change Hooks:: Supplying functions to be run when text is changed.
>
> The Kill Ring
> diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi
> index a185da7..f253e70 100644
> --- a/doc/lispref/eval.texi
> +++ b/doc/lispref/eval.texi
> @@ -116,7 +116,7 @@ with the ``all other types'' which are self-evaluating forms.
> we find the real function via the symbol.
> * Function Forms:: Forms that call functions.
> * Macro Forms:: Forms that call macros.
> -* Special Forms:: "Special forms" are idiosyncratic primitives,
> +* Special Forms:: ``Special forms'' are idiosyncratic primitives,
> most of them extremely important.
> * Autoloading:: Functions set up to load files
> containing their real definitions.
> diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
> index f4c9abd..91b0c96 100644
> --- a/doc/lispref/files.texi
> +++ b/doc/lispref/files.texi
> @@ -1291,10 +1291,10 @@ has only one name (the name @file{files.texi} in the current default
> directory).
>
> @item "lh"
> -is owned by the user with name "lh".
> +is owned by the user with name @samp{lh}.
>
> @item "users"
> -is in the group with name "users".
> +is in the group with name @samp{users}.
>
> @item (20614 64019 50040 152000)
> was last accessed on October 23, 2012, at 20:12:03.050040152 UTC.
> diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
> index 65eeec6..16fc495 100644
> --- a/doc/lispref/frames.texi
> +++ b/doc/lispref/frames.texi
> @@ -2256,7 +2256,7 @@ indicates the release of the button, or whatever kind of event means
> it is time to stop tracking.
>
> The @code{track-mouse} form causes Emacs to generate mouse motion
> -events by binding the variable @code{mouse-tracking} to a
> +events by binding the variable @code{track-mouse} to a
> non-@code{nil} value. If that variable has the special value
> @code{dragging}, it additionally instructs the display engine to
> refrain from changing the shape of the mouse pointer. This is
> diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
> index 20eaf5d..a853d2f 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/help.texi b/doc/lispref/help.texi
> index 44c09a2..b3042d7 100644
> --- a/doc/lispref/help.texi
> +++ b/doc/lispref/help.texi
> @@ -345,7 +345,9 @@ quotes. If the variable's value is @code{curve}, the style is
> apostrophes. If the value is @code{grave}, the style is @t{`like
> this'} with grave accent and apostrophe. The default value @code{nil}
> acts like @code{curve} if curved single quotes are displayable, and
> -like @code{grave} otherwise.
> +like @code{grave} otherwise. To use the traditional @code{grave}
> +style, put the line @code{(setq text-quoting-style 'grave)} into your
> +@file{~/.emacs} file.
> @end defvar
>
> @defun substitute-command-keys string
> @@ -375,7 +377,7 @@ specifies a key binding that the command does not actually have.
> @smallexample
> @group
> (substitute-command-keys
> - "To abort recursive edit, type ‘\\[abort-recursive-edit]’.")
> + "To abort recursive edit, type `\\[abort-recursive-edit]'.")
> @result{} "To abort recursive edit, type ‘C-]’."
> @end group
>
> @@ -396,7 +398,7 @@ C-g abort-recursive-edit
>
> @group
> (substitute-command-keys
> - "To abort a recursive edit from the minibuffer, type\
> + "To abort a recursive edit from the minibuffer, type \
> `\\<minibuffer-local-must-match-map>\\[abort-recursive-edit]'.")
> @result{} "To abort a recursive edit from the minibuffer, type ‘C-g’."
> @end group
> diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi
> index fc1def6..91dc9a9 100644
> --- a/doc/lispref/loading.texi
> +++ b/doc/lispref/loading.texi
> @@ -40,7 +40,7 @@ For on-demand loading of external libraries, @pxref{Dynamic Libraries}.
> * Repeated Loading:: Precautions about loading a file twice.
> * Named Features:: Loading a library if it isn't already loaded.
> * Where Defined:: Finding which file defined a certain symbol.
> -* Unloading:: How to "unload" a library that was loaded.
> +* Unloading:: How to ``unload'' a library that was loaded.
> * Hooks for Loading:: Providing code to be run when
> particular libraries are loaded.
> @end menu
> diff --git a/doc/lispref/markers.texi b/doc/lispref/markers.texi
> index 109e935..4f25b91 100644
> --- a/doc/lispref/markers.texi
> +++ b/doc/lispref/markers.texi
> @@ -20,8 +20,8 @@ deleted, so that it stays with the two characters on either side of it.
> * Marker Insertion Types:: Two ways a marker can relocate when you
> insert where it points.
> * Moving Markers:: Moving the marker to a new buffer or position.
> -* The Mark:: How "the mark" is implemented with a marker.
> -* The Region:: How to access "the region".
> +* The Mark:: How ``the mark'' is implemented with a marker.
> +* The Region:: How to access ``the region''.
> @end menu
>
> @node Overview of Markers
> diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
> index f00e481..a8b6bb1 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').
> \\@{text-mode-map@}
> -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.
>
> \\@{lisp-mode-map@}
> -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 64ebb45..6ef87df 100644
> --- a/doc/lispref/os.texi
> +++ b/doc/lispref/os.texi
> @@ -195,7 +195,7 @@ It now exits if the option @code{--batch} was specified.
>
> @item
> If the @file{*scratch*} buffer exists and is empty, it inserts
> -@code{initial-scratch-message} into that buffer.
> +@code{(substitute-command-keys initial-scratch-message)} into that buffer.
>
> @item
> If @code{initial-buffer-choice} is a string, it visits the file (or
> @@ -314,6 +314,7 @@ file will not inhibit the message for someone else.
>
> @defopt initial-scratch-message
> This variable, if non-@code{nil}, should be a string, which is
> +treated as documentation to be
> inserted into the @file{*scratch*} buffer when Emacs starts up. If it
> is @code{nil}, the @file{*scratch*} buffer is empty.
> @end defopt
> @@ -1927,7 +1928,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}}
> @@ -2479,7 +2480,7 @@ argument of another @code{notifications-notify} call. For example:
> @end group
>
> @group
> -A message window opens on the desktop. Press "I agree"
> +A message window opens on the desktop. Press ``I agree''.
> @result{} Message 22, key "Confirm" pressed
> Message 22, closed due to "dismissed"
> @end group
> @@ -2674,32 +2675,14 @@ being reported. For example:
> @end example
>
> Whether the action @code{renamed} is returned, depends on the used
> -watch library. It can be expected, when a directory is watched, and
> -both @var{file} and @var{file1} belong to this directory. Otherwise,
> -the actions @code{deleted} and @code{created} could be returned in a
> -random order.
> +watch library. Otherwise, the actions @code{deleted} and
> +@code{created} could be returned in a random order.
>
> @example
> @group
> (rename-file "/tmp/foo" "/tmp/bla")
> @result{} Event (35025468 renamed "/tmp/foo" "/tmp/bla")
> @end group
> -
> -@group
> -(file-notify-add-watch
> - "/var/tmp" '(change attribute-change) 'my-notify-callback)
> - @result{} 35025504
> -@end group
> -
> -@group
> -(rename-file "/tmp/bla" "/var/tmp/bla")
> - @result{} ;; gfilenotify
> - Event (35025468 renamed "/tmp/bla" "/var/tmp/bla")
> -
> - @result{} ;; inotify
> - Event (35025504 created "/var/tmp/bla")
> - Event (35025468 deleted "/tmp/bla")
> -@end group
> @end example
> @end defun
>
> diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi
> index f8eba2a..7136286 100644
> --- a/doc/lispref/package.texi
> +++ b/doc/lispref/package.texi
> @@ -113,8 +113,10 @@ package loading is disabled if the user option
> This function initializes Emacs' internal record of which packages are
> installed, and loads them. The user option @code{package-load-list}
> specifies which packages to load; by default, all installed packages
> -are loaded. @xref{Package Installation,,, emacs, The GNU Emacs
> -Manual}.
> +are loaded. If called during startup, this function also sets
> +@code{package-enable-at-startup} to @code{nil}, to avoid accidentally
> +loading the packages twice. @xref{Package Installation,,, emacs, The
> +GNU Emacs Manual}.
>
> The optional argument @var{no-activate}, if non-@code{nil}, causes
> Emacs to update its record of installed packages without actually
> diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
> index 98b3dfb..c9509b0 100644
> --- a/doc/lispref/processes.texi
> +++ b/doc/lispref/processes.texi
> @@ -1720,13 +1720,13 @@ sentinel, the eventual call to the sentinel will use the new one.
> @group
> (defun msg-me (process event)
> (princ
> - (format "Process: %s had the event ‘%s’" process event)))
> + (format "Process: %s had the event '%s'" process event)))
> (set-process-sentinel (get-process "shell") 'msg-me)
> @result{} msg-me
> @end group
> @group
> (kill-process (get-process "shell"))
> - @print{} Process: #<process shell> had the event ‘killed’
> + @print{} Process: #<process shell> had the event 'killed'
> @result{} #<process shell>
> @end group
> @end smallexample
> diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi
> index 12ed881..f73779b 100644
> --- a/doc/lispref/sequences.texi
> +++ b/doc/lispref/sequences.texi
> @@ -557,19 +557,24 @@ calling @var{function}.
> @end example
> @end defun
>
> -@defun seq-some-p predicate sequence
> - This function returns the first member of sequence for which @var{predicate}
> -returns non-@code{nil}.
> +@defun seq-some predicate sequence
> + This function returns non-@code{nil} if @var{predicate} returns
> +non-@code{nil} for any element of @var{sequence}. If so, the returned
> +value is the value returned by @var{predicate}.
>
> @example
> @group
> -(seq-some-p #'numberp ["abc" 1 nil])
> -@result{} 1
> +(seq-some #'numberp ["abc" 1 nil])
> +@result{} t
> @end group
> @group
> -(seq-some-p #'numberp ["abc" "def"])
> +(seq-some #'numberp ["abc" "def"])
> @result{} nil
> @end group
> +@group
> +(seq-some #'null ["abc" 1 nil])
> +@result{} t
> +@end group
> @end example
> @end defun
>
> @@ -583,7 +588,7 @@ to every element of @var{sequence} returns non-@code{nil}.
> @result{} t
> @end group
> @group
> -(seq-some-p #'numberp [2 4 "6"])
> +(seq-some #'numberp [2 4 "6"])
> @result{} nil
> @end group
> @end example
> @@ -621,18 +626,18 @@ according to @var{function}, a function of two arguments that returns
> non-@code{nil} if the first argument should sort before the second.
> @end defun
>
> -@defun seq-contains-p sequence elt &optional function
> +@defun seq-contains sequence elt &optional function
> This function returns the first element in @var{sequence} that is equal to
> @var{elt}. If the optional argument @var{function} is non-@code{nil},
> it is a function of two arguments to use instead of the default @code{equal}.
>
> @example
> @group
> -(seq-contains-p '(symbol1 symbol2) 'symbol1)
> +(seq-contains '(symbol1 symbol2) 'symbol1)
> @result{} symbol1
> @end group
> @group
> -(seq-contains-p '(symbol1 symbol2) 'symbol3)
> +(seq-contains '(symbol1 symbol2) 'symbol3)
> @result{} nil
> @end group
> @end example
> diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
> index d882be4..f422507 100644
> --- a/doc/lispref/strings.texi
> +++ b/doc/lispref/strings.texi
> @@ -486,8 +486,8 @@ accent Unicode characters:
>
> The optional argument @var{locale}, a string, overrides the setting of
> your current locale identifier for collation. The value is system
> -dependent; a @var{locale} "en_US.UTF-8" is applicable on POSIX
> -systems, while it would be, e.g., "enu_USA.1252" on MS-Windows
> +dependent; a @var{locale} @code{"en_US.UTF-8"} is applicable on POSIX
> +systems, while it would be, e.g., @code{"enu_USA.1252"} on MS-Windows
> systems.
>
> If @var{ignore-case} is non-@code{nil}, characters are converted to lower-case
> @@ -495,7 +495,7 @@ before comparing them.
>
> To emulate Unicode-compliant collation on MS-Windows systems,
> bind @code{w32-collate-ignore-punctuation} to a non-@code{nil} value, since
> -the codeset part of the locale cannot be "UTF-8" on MS-Windows.
> +the codeset part of the locale cannot be @code{"UTF-8"} on MS-Windows.
>
> If your system does not support a locale environment, this function
> behaves like @code{string-equal}.
> @@ -596,9 +596,9 @@ less significant for @ref{Sorting,,sorting}.
>
> The optional argument @var{locale}, a string, overrides the setting of
> your current locale identifier for collation. The value is system
> -dependent; a @var{locale} "en_US.UTF-8" is applicable on POSIX
> -systems, while it would be, e.g., "enu_USA.1252" on MS-Windows
> -systems. The @var{locale} "POSIX" lets @code{string-collate-lessp}
> +dependent; a @var{locale} @code{"en_US.UTF-8"} is applicable on POSIX
> +systems, while it would be, e.g., @code{"enu_USA.1252"} on MS-Windows
> +systems. The @var{locale} @code{"POSIX"} lets @code{string-collate-lessp}
> behave like @code{string-lessp}:
>
> @example
> @@ -614,7 +614,7 @@ before comparing them.
>
> To emulate Unicode-compliant collation on MS-Windows systems,
> bind @code{w32-collate-ignore-punctuation} to a non-@code{nil} value, since
> -the codeset part of the locale cannot be "UTF-8" on MS-Windows.
> +the codeset part of the locale cannot be @code{"UTF-8"} on MS-Windows.
>
> If your system does not support a locale environment, this function
> behaves like @code{string-lessp}.
> @@ -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 245825a..55e550a 100644
> --- a/doc/lispref/text.texi
> +++ b/doc/lispref/text.texi
> @@ -58,7 +58,7 @@ the character after point.
> * Base 64:: Conversion to or from base 64 encoding.
> * Checksum/Hash:: Computing cryptographic hashes.
> * Parsing HTML/XML:: Parsing HTML and XML.
> -* Atomic Changes:: Installing several buffer changes "atomically".
> +* Atomic Changes:: Installing several buffer changes ``atomically''.
> * Change Hooks:: Supplying functions to be run when text is changed.
> @end menu
>
> @@ -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/lispref/tips.texi b/doc/lispref/tips.texi
> index 7107bb4..3bde0a8 100644
> --- a/doc/lispref/tips.texi
> +++ b/doc/lispref/tips.texi
> @@ -689,7 +689,7 @@ immediately before the symbol name. (Case makes no difference in
> recognizing these indicator words.) For example, if you write
>
> @example
> -This function sets the variable ‘buffer-file-name’.
> +This function sets the variable `buffer-file-name'.
> @end example
>
> @noindent
> @@ -702,7 +702,7 @@ you can write the words @samp{symbol} or @samp{program} before the
> symbol name to prevent making any hyperlink. For example,
>
> @example
> -If the argument KIND-OF-RESULT is the symbol ‘list’,
> +If the argument KIND-OF-RESULT is the symbol `list',
> this function returns a list of all the objects
> that satisfy the criterion.
> @end example
> @@ -727,7 +727,7 @@ name of the Info node (or anchor), preceded by
> anchor}. The Info file name defaults to @samp{emacs}. For example,
>
> @smallexample
> -See Info node ‘Font Lock’ and Info node ‘(elisp)Font Lock Basics’.
> +See Info node `Font Lock' and Info node `(elisp)Font Lock Basics'.
> @end smallexample
>
> Finally, to create a hyperlink to URLs, write the single-quoted URL,
> @@ -735,7 +735,7 @@ preceded by @samp{URL}. For example,
>
> @smallexample
> The home page for the GNU project has more information (see URL
> -‘http://www.gnu.org/’).
> +`http://www.gnu.org/').
> @end smallexample
>
> @item
> diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
> index 15491e5..369e8dd 100644
> --- a/doc/lispref/variables.texi
> +++ b/doc/lispref/variables.texi
> @@ -25,7 +25,7 @@ representing the variable.
>
> @menu
> * Global Variables:: Variable values that exist permanently, everywhere.
> -* Constant Variables:: Certain "variables" have values that never change.
> +* Constant Variables:: Certain ``variables'' have values that never change.
> * Local Variables:: Variable values that exist only temporarily.
> * Void Variables:: Symbols that lack values.
> * Defining Variables:: A definition says a symbol is used as a variable.
> diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
> index 565abb5..7a824ac 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 75df1d4..3e9109d 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 7cee5c3..fb4e147 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/ert.texi b/doc/misc/ert.texi
> index 3192e4b..35d315c 100644
> --- a/doc/misc/ert.texi
> +++ b/doc/misc/ert.texi
> @@ -861,7 +861,7 @@ The most common use of this is to run just the tests for one
> particular module. Since symbol prefixes are the usual way of
> separating module namespaces in Emacs Lisp, test selectors already
> solve this by allowing regexp matching on test names; e.g., the
> -selector "^ert-" selects ERT's self-tests.
> +selector @code{"^ert-"} selects ERT's self-tests.
>
> Other uses include grouping tests by their expected execution time,
> e.g., to run quick tests during interactive development and slow tests less
> diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
> index 0b856c7..19c78bf 100644
> --- a/doc/misc/gnus-faq.texi
> +++ b/doc/misc/gnus-faq.texi
> @@ -892,11 +892,11 @@ more readable?
>
> @subsubheading Answer
>
> -Gnus offers you several functions to "wash" incoming mail, you can
> +Gnus offers you several functions to ``wash'' incoming mail, you can
> find them if you browse through the menu, item
> -Article->Washing. The most interesting ones are probably "Wrap
> -long lines" (@samp{W w}), "Decode ROT13"
> -(@samp{W r}) and "Outlook Deuglify" which repairs
> +Article->Washing. The most interesting ones are probably ``Wrap
> +long lines'' (@samp{W w}), ``Decode ROT13''
> +(@samp{W r}) and ``Outlook Deuglify'' which repairs
> the dumb quoting used by many users of Microsoft products
> (@samp{W Y f} gives you full deuglify.
> See @samp{W Y C-h} or have a look at the menus for
> @@ -1016,8 +1016,8 @@ mail groups. Is this a bug?
>
> No, that's a matter of design of Gnus, fixing this would
> mean reimplementation of major parts of Gnus'
> -back ends. Gnus thinks "highest-article-number @minus{}
> -lowest-article-number = total-number-of-articles". This
> +back ends. Gnus thinks ``highest-article-number @minus{}
> +lowest-article-number = total-number-of-articles''. This
> works OK for Usenet groups, but if you delete and move
> many messages in mail groups, this fails. To cure the
> symptom, enter the group via @samp{C-u RET}
> @@ -1085,8 +1085,8 @@ You've got to play around with the variable
> gnus-summary-line-format. Its value is a string of
> symbols which stand for things like author, date, subject
> etc. A list of the available specifiers can be found in the
> -manual node "Summary Buffer Lines" and the often forgotten
> -node "Formatting Variables" and its sub-nodes. There
> +manual node ``Summary Buffer Lines'' and the often forgotten
> +node ``Formatting Variables'' and its sub-nodes. There
> you'll find useful things like positioning the cursor and
> tabulators which allow you a summary in table form, but
> sadly hard tabulators are broken in 5.8.8.
> @@ -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 23a43f4..9093fa2 100644
> --- a/doc/misc/gnus.texi
> +++ b/doc/misc/gnus.texi
> @@ -12565,7 +12565,7 @@ Gnus provides a few different methods for storing the mail and news you
> send. The default method is to use the @dfn{archive virtual server} to
> store the messages. If you want to disable this completely, the
> @code{gnus-message-archive-group} variable should be @code{nil}. The
> -default is "sent.%Y-%m", which gives you one archive group per month.
> +default is @code{"sent.%Y-%m"}, which gives you one archive group per month.
>
> For archiving interesting messages in a group you read, see the
> @kbd{B c} (@code{gnus-summary-copy-article}) command (@pxref{Mail
> @@ -15018,7 +15018,8 @@ corresponding keywords.
>
> @item :mailbox
> The name of the mailbox to get mail from. The default is @samp{INBOX}
> -which normally is the mailbox which receives incoming mail.
> +which normally is the mailbox which receives incoming mail. Instead of
> +a single mailbox, this can be a list of mailboxes to fetch mail from.
>
> @item :predicate
> The predicate used to find articles to fetch. The default, @samp{UNSEEN
> @@ -21033,8 +21034,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 +24081,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/rcirc.texi b/doc/misc/rcirc.texi
> index a0d74b4..a707ba5 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/tramp.texi b/doc/misc/tramp.texi
> index 012c586..87c7c80 100644
> --- a/doc/misc/tramp.texi
> +++ b/doc/misc/tramp.texi
> @@ -3691,6 +3691,24 @@ I would like to thank all @value{tramp} users who have contributed to
> the different recipes!
>
>
> +@item I have saved @value{tramp} file names as indicated. But it
> +doesn't work in a new @value{emacsname} session!
> +
> +If you have saved an ad-hoc multi-hop @value{tramp} file name
> +(@pxref{Ad-hoc multi-hops}) via bookmarks, recent files,
> +@ifset emacs
> +filecache, bbdb,
> +@end ifset
> +or another package, you must use the full ad-hoc file name including
> +all hops, like @file{@trampfn{ssh, bird,
> +bastion|ssh@value{postfixhop}news.my.domain, /opt/news/etc}}.
> +
> +Alternatively, if you save only the abbreviated multi-hop file name
> +@file{@trampfn{ssh, news, news.my.domain, /opt/news/etc}}, the
> +customer option @code{tramp-save-ad-hoc-proxies} must be set to a to a
> +non-@code{nil} value.
> +
> +
> @ifset emacs
> @item
> How can I use @value{tramp} to connect to a remote @value{emacsname}
> diff --git a/doc/misc/viper.texi b/doc/misc/viper.texi
> index f449e3b..8f57e8c 100644
> --- a/doc/misc/viper.texi
> +++ b/doc/misc/viper.texi
> @@ -1961,7 +1961,7 @@ can include a line like this in your Viper customization file:
>
> Viper lets you define hot keys, i.e., you can associate keyboard keys
> such as F1, Help, PgDn, etc., with Emacs Lisp functions (that may already
> -exist or that you will write). Each key has a "preferred form" in
> +exist or that you will write). Each key has a ``preferred form'' in
> Emacs. For instance, the Up key's preferred form is [up], the Help key's
> preferred form is [help], and the Undo key has the preferred form [f14].
> You can find out the preferred form of a key by typing @kbd{M-x
> diff --git a/etc/NEWS b/etc/NEWS
> index c664e02..8a08a06 100644
> --- a/etc/NEWS
> +++ b/etc/NEWS
> @@ -91,6 +91,10 @@ so if you want to use it, you can always take a copy from an older Emacs.
> and *Buffer List*. This makes Emacs convenient to use from the
> command line when `initial-buffer-choice' is non-nil.
>
> ++++
> +** The value of ‘initial-scratch-message’ is now treated as a doc string
> +and can contain escape sequences for command keys, quotes, and the like.
> +
>
> * Changes in Emacs 25.1
>
> @@ -828,14 +832,6 @@ notifications, if Emacs is compiled with file notification support.
>
> *** landmark.el (moved to elpa.gnu.org)
>
> -+++
> -** The character classes [:graph:] and [:print:] in regular expressions
> -no longer match every multibyte character. Instead, Emacs now
> -consults the Unicode character properties to determine which
> -characters are graphic or printable. In particular, surrogates and
> -unassigned codepoints are now rejected. If you want the old behavior,
> -use [:multibyte:] instead.
> -
>
> * New Modes and Packages in Emacs 25.1
>
> @@ -860,6 +856,13 @@ a typographically-correct documents.
>
> * Incompatible Lisp Changes in Emacs 25.1
>
> ++++
> +** `package-initialize' now sets `package-enable-at-startup' to nil if
> +called during startup. Users who call this function in their init
> +file and still expect it to be run after startup should set
> +`package-enable-at-startup' to t after the call to
> +`package-initialize'.
> +
> ** `:global' minor mode use `setq-default' rather than `setq'.
> This means that you can't use `make-local-variable' and expect them to
> "magically" become buffer-local.
> @@ -951,6 +954,14 @@ If you want the old behavior where they matched any character with
> word syntax, use `\sw' instead.
>
> +++
> +** The character classes [:graph:] and [:print:] in regular expressions
> +no longer match every multibyte character. Instead, Emacs now
> +consults the Unicode character properties to determine which
> +characters are graphic or printable. In particular, surrogates and
> +unassigned codepoints are now rejected. If you want the old behavior,
> +use [:multibyte:] instead.
> +
> ++++
> ** The `diff' command uses the unified format now. To restore the old
> behavior, set `diff-switches' to `-c'.
>
> @@ -1113,8 +1124,9 @@ integers.
> ** New function `set-binary-mode' allows to switch a standard stream
> of the Emacs process to binary I/O mode.
>
> -** In locales that cannot display curved quotes, ASCII approximations
> -are installed in standard-display-table.
> +** ASCII approximations to curved quotes are put in standard-display-table
> +if the locale cannot display curved quotes, or if text-quoting-style
> +initially specifies a preference for ASCII.
>
> ** Standard output and error streams now transliterate characters via
> standard-display-table, and encode output using locale-coding-system.
> diff --git a/lisp/abbrev.el b/lisp/abbrev.el
> index 0ba21da..f372a28 100644
> --- a/lisp/abbrev.el
> +++ b/lisp/abbrev.el
> @@ -399,7 +399,7 @@ A prefix argument means don't query; expand all abbrevs."
> (buffer-substring-no-properties
> (save-excursion (forward-word -1) (point))
> pnt)))
> - (if (or noquery (y-or-n-p (format-message "Expand ‘%s’? " string)))
> + (if (or noquery (y-or-n-p (format-message "Expand `%s'? " string)))
> (expand-abbrev)))))))
>
> ;;; Abbrev properties.
> diff --git a/lisp/align.el b/lisp/align.el
> index 3020b6a..9eb04ef 100644
> --- a/lisp/align.el
> +++ b/lisp/align.el
> @@ -1348,7 +1348,7 @@ aligner would have dealt with are."
> (if real-beg
> (goto-char beg)
> (if (or (not thissep) (eq thissep 'entire))
> - (error "Cannot determine alignment region for ‘%s’"
> + (error "Cannot determine alignment region for `%s'"
> (symbol-name (cdr (assq 'title rule)))))
> (beginning-of-line)
> (while (and (not (eobp))
> diff --git a/lisp/allout-widgets.el b/lisp/allout-widgets.el
> index f0a1cab..f31c3d8 100644
> --- a/lisp/allout-widgets.el
> +++ b/lisp/allout-widgets.el
> @@ -384,9 +384,9 @@ The structure includes the guides lines, bullet, and bullet cue.")
>
> Entries on the list are lists whose first element is a symbol indicating
> the change type and subsequent elements are data specific to that change
> -type. Specifically:
> +type. For example:
>
> - 'exposure `allout-exposure-from' `allout-exposure-to' `allout-exposure-flag'
> + (exposure ALLOUT-EXPOSURE-FROM ALLOUT-EXPOSURE-TO ALLOUT-EXPOSURE-FLAG)
>
> The changes are recorded in reverse order, with new values pushed
> onto the front.")
> @@ -481,9 +481,9 @@ text in allout item bodies.")
>
> \(That space is used to convey selected cues indicating body qualities,
> including things like:
> - - encryption ‘~’
> - - numbering ‘#’
> - - indirect reference ‘@’
> + - encryption `~'
> + - numbering `#'
> + - indirect reference `@'
> - distinctive bullets - see `allout-distinctive-bullets-string'.)")
> ;;;_ = allout-span-to-category
> (defvar allout-span-to-category
> diff --git a/lisp/allout.el b/lisp/allout.el
> index 3ba440f..f705573 100644
> --- a/lisp/allout.el
> +++ b/lisp/allout.el
> @@ -229,7 +229,7 @@ See `allout-unprefixed-keybindings' for the list of keybindings
> that are not prefixed.
>
> Use vector format for the keys:
> - - put literal keys after a ‘?’ question mark, eg: ‘?a’, ‘?.’
> + - put literal keys after a `?' question mark, eg: `?a', `?.'
> - enclose control, shift, or meta-modified keys as sequences within
> parentheses, with the literal key, as above, preceded by the name(s)
> of the modifiers, eg: [(control ?a)]
> @@ -257,7 +257,7 @@ This is in contrast to the majority of allout-mode bindings on
> preceding command key.
>
> Use vector format for the keys:
> - - put literal keys after a ‘?’ question mark, eg: ‘?a’, ‘?.’
> + - put literal keys after a `?' question mark, eg: `?a', `?.'
> - enclose control, shift, or meta-modified keys as sequences within
> parentheses, with the literal key, as above, preceded by the name(s)
> of the modifiers, eg: [(control ?a)]
> @@ -1012,9 +1012,9 @@ determination of aberrance is according to the mistaken item
> being followed by a legitimate item of excessively greater depth.
>
> The classic example of a mistaken item, for a standard allout
> -outline configuration, is a body line that begins with an ‘...’
> +outline configuration, is a body line that begins with an `...'
> ellipsis. This happens to contain a legitimate depth-2 header
> -prefix, constituted by two ‘..’ dots at the beginning of the
> +prefix, constituted by two `..' dots at the beginning of the
> line. The only thing that can distinguish it *in principle* from
> a legitimate one is if the following real header is at a depth
> that is discontinuous from the depth of 2 implied by the
> @@ -2081,20 +2081,20 @@ OPEN: A TOPIC that is not CLOSED, though its OFFSPRING or BODY may be."
> (and (not (string= allout-auto-activation "activate"))
> (if (string= allout-auto-activation "ask")
> (if (y-or-n-p (format-message
> - "Expose %s with layout ‘%s’? "
> + "Expose %s with layout `%s'? "
> (buffer-name) use-layout))
> t
> (message "Skipped %s layout." (buffer-name))
> nil)
> t)))
> (save-excursion
> - (message "Adjusting ‘%s’ exposure..." (buffer-name))
> + (message "Adjusting `%s' exposure..." (buffer-name))
> (goto-char 0)
> (allout-this-or-next-heading)
> (condition-case err
> (progn
> (apply 'allout-expose-topic (list use-layout))
> - (message "Adjusting ‘%s’ exposure... done."
> + (message "Adjusting `%s' exposure... done."
> (buffer-name)))
> ;; Problem applying exposure -- notify user, but don't
> ;; interrupt, eg, file visit:
> @@ -3484,7 +3484,7 @@ Offer one suitable for current depth DEPTH as default."
> (goto-char (allout-current-bullet-pos))
> (setq choice (solicit-char-in-string
> (format-message
> - "Select bullet: %s (‘%s’ default): "
> + "Select bullet: %s (`%s' default): "
> sans-escapes
> (allout-substring-no-properties default-bullet))
> sans-escapes
> @@ -5879,7 +5879,7 @@ With repeat count, copy the exposed portions of entire buffer."
> (defun allout-toggle-current-subtree-encryption (&optional keymode-cue)
> "Encrypt clear or decrypt encoded topic text.
>
> -Allout uses Emacs ‘epg’ library to perform encryption. Symmetric
> +Allout uses Emacs `epg' library to perform encryption. Symmetric
> and keypair encryption are supported. All encryption is ascii
> armored.
>
> @@ -5941,7 +5941,7 @@ associated with it. This can be used to dissociate any
> recipients with the file, by selecting no recipients in the
> dialog.
>
> -Encryption and decryption uses the Emacs ‘epg’ library.
> +Encryption and decryption uses the Emacs `epg' library.
>
> Encrypted text will be ascii-armored.
>
> @@ -6381,7 +6381,7 @@ for details on preparing Emacs for automatic allout activation."
> (allout-open-topic 2)
> (insert (substitute-command-keys
> (concat "Dummy outline topic header -- see"
> - " ‘allout-mode’ docstring: ‘\\[describe-mode]’.")))
> + " `allout-mode' docstring: `\\[describe-mode]'.")))
> (allout-adjust-file-variable
> "allout-layout" (or allout-layout '(-1 : 0))))))
> ;;;_ > allout-file-vars-section-data ()
> @@ -6546,7 +6546,7 @@ Optional arg DO-DEFAULTING indicates to accept empty input (CR)."
> (defun regexp-sans-escapes (regexp &optional successive-backslashes)
> "Return a copy of REGEXP with all character escapes stripped out.
>
> -Representations of actual backslashes -- ‘\\\\\\\\’ -- are left as a
> +Representations of actual backslashes -- `\\\\\\\\' -- are left as a
> single backslash.
>
> Optional arg SUCCESSIVE-BACKSLASHES is used internally for recursion."
> diff --git a/lisp/apropos.el b/lisp/apropos.el
> index ec21296..6d7dc8a 100644
> --- a/lisp/apropos.el
> +++ b/lisp/apropos.el
> @@ -682,7 +682,7 @@ the output includes key-bindings of commands."
> symbols apropos-do-all
> (concat
> (format-message
> - "Library ‘%s’ provides: %s\nand requires: %s"
> + "Library `%s' provides: %s\nand requires: %s"
> file
> (mapconcat 'apropos-library-button
> (or provides '(nil)) " and ")
> diff --git a/lisp/bookmark.el b/lisp/bookmark.el
> index 308d1ca..0351481 100644
> --- a/lisp/bookmark.el
> +++ b/lisp/bookmark.el
> @@ -843,10 +843,10 @@ whose annotation is being edited.")
> The default annotation text is simply some text explaining how to use
> annotations."
> (concat (format-message
> - "# Type the annotation for bookmark ‘%s’ here.\n"
> + "# Type the annotation for bookmark `%s' here.\n"
> bookmark-name)
> (format-message
> - "# All lines which start with a ‘#’ will be deleted.\n")
> + "# All lines which start with a `#' will be deleted.\n")
> "# Type C-c C-c when done.\n#\n"
> "# Author: " (user-full-name) " <" (user-login-name) "@"
> (system-name) ">\n"
> diff --git a/lisp/bs.el b/lisp/bs.el
> index 6314bbb..1735c17 100644
> --- a/lisp/bs.el
> +++ b/lisp/bs.el
> @@ -1314,7 +1314,7 @@ ALL-BUFFERS is the list of buffers appearing in Buffer Selection Menu."
> (format-mode-line mode-name nil nil start-buffer))
>
> (defun bs--get-file-name (_start-buffer _all-buffers)
> - "Return string for column ‘File’ in Buffer Selection Menu.
> + "Return string for column `File' in Buffer Selection Menu.
> This is the variable `buffer-file-name' of current buffer.
> If not visiting a file, `list-buffers-directory' is returned instead.
> START-BUFFER is the buffer where we started buffer selection.
> diff --git a/lisp/button.el b/lisp/button.el
> index 5fe5bf0..e7602dd 100644
> --- a/lisp/button.el
> +++ b/lisp/button.el
> @@ -114,7 +114,7 @@ Mode-specific keymaps may want to use this as their parent keymap.")
> "Return the symbol used by button-type TYPE to store properties.
> Buttons inherit them by setting their `category' property to that symbol."
> (or (get type 'button-category-symbol)
> - (error "Unknown button type ‘%s’" type)))
> + (error "Unknown button type `%s'" type)))
>
> (defun define-button-type (name &rest properties)
> "Define a `button type' called NAME (a symbol).
> @@ -208,7 +208,7 @@ changes to a supertype are not reflected in its subtypes)."
> (setq val (button-category-symbol val)))
> ((eq prop 'category)
> ;; Disallow updating the `category' property directly.
> - (error "Button ‘category’ property may not be set directly")))
> + (error "Button `category' property may not be set directly")))
> ;; Add the property.
> (cond ((overlayp button)
> (overlay-put button prop val))
> @@ -333,7 +333,7 @@ Also see `insert-text-button'."
> (setq object beg beg 0 end (length object)))
> ;; Disallow setting the `category' property directly.
> (when (plist-get properties 'category)
> - (error "Button ‘category’ property may not be set directly"))
> + (error "Button `category' property may not be set directly"))
> (if (null type-entry)
> ;; The user didn't specify a `type' property, use the default.
> (setq properties (cons 'category (cons 'default-button properties)))
> diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el
> index 2c588c1..2319c48 100644
> --- a/lisp/calc/calc-aent.el
> +++ b/lisp/calc/calc-aent.el
> @@ -1034,7 +1034,7 @@ in Calc algebraic input.")
>
> (defun math-restore-placeholders (x)
> "Replace placeholders by the proper characters in the symbol x.
> -This includes ‘#’ for ‘_’ and ‘'’ for ‘%’.
> +This includes `#' for `_' and `'' for `%'.
> If the current Calc language does not use placeholders, return nil."
> (if (or (memq calc-language calc-lang-allow-underscores)
> (memq calc-language calc-lang-allow-percentsigns))
> @@ -1057,7 +1057,7 @@ If the current Calc language does not use placeholders, return nil."
> (defun math-read-if (cond op)
> (let ((then (math-read-expr-level 0)))
> (or (equal math-expr-data ":")
> - (throw 'syntax "Expected ‘:’"))
> + (throw 'syntax "Expected `:'"))
> (math-read-token)
> (list 'calcFunc-if cond then (math-read-expr-level (nth 3 op)))))
>
> @@ -1121,7 +1121,7 @@ If the current Calc language does not use placeholders, return nil."
> (math-read-expr-list))))
> (if (not (or (equal math-expr-data calc-function-close)
> (eq math-exp-token 'end)))
> - (throw 'syntax "Expected ‘)’"))
> + (throw 'syntax "Expected `)'"))
> (math-read-token)
> (if (and (memq calc-language
> calc-lang-parens-are-subscripts)
> @@ -1177,7 +1177,7 @@ If the current Calc language does not use placeholders, return nil."
> (setq el (cdr el))))
> (if (equal math-expr-data "]")
> (math-read-token)
> - (throw 'syntax "Expected ‘]’")))
> + (throw 'syntax "Expected `]'")))
> val)))))
> ((eq math-exp-token 'dollar)
> (let ((abs (if (> math-expr-data 0) math-expr-data (- math-expr-data))))
> @@ -1246,7 +1246,7 @@ If the current Calc language does not use placeholders, return nil."
> (if (not (or (equal math-expr-data ")")
> (and (equal math-expr-data "]") (eq (car-safe exp) 'intv))
> (eq math-exp-token 'end)))
> - (throw 'syntax "Expected ‘)’"))
> + (throw 'syntax "Expected `)'"))
> (math-read-token)
> exp))
> ((eq math-exp-token 'string)
> diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el
> index 3f6e83e..d0efe53 100644
> --- a/lisp/calc/calc-embed.el
> +++ b/lisp/calc/calc-embed.el
> @@ -333,7 +333,7 @@
> (message (concat
> "Embedded Calc mode enabled; "
> (if calc-embedded-quiet
> - "Type ‘C-x * x’"
> + "Type `C-x * x'"
> "Give this command again")
> " to return to normal")))))
> (scroll-down 0)) ; fix a bug which occurs when truncate-lines is changed.
> diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el
> index 2442f02..cb6ab6f 100644
> --- a/lisp/calc/calc-ext.el
> +++ b/lisp/calc/calc-ext.el
> @@ -1957,7 +1957,7 @@ calc-kill calc-kill-region calc-yank))))
> (desc
> (if (symbolp func)
> (if (= (logand kind 3) 0)
> - (format-message "‘%c’ = %s" key name)
> + (format-message "`%c' = %s" key name)
> (if pos
> (format "%s%c%s"
> (downcase (substring name 0 pos))
> diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el
> index 8378b23..20b0249 100644
> --- a/lisp/calc/calc-graph.el
> +++ b/lisp/calc/calc-graph.el
> @@ -958,7 +958,7 @@ This \"dumb\" driver will be present in Gnuplot 3.0."
> (define-key calc-dumb-map "\C-c\C-c" 'exit-recursive-edit)))
> (use-local-map calc-dumb-map)
> (setq truncate-lines t)
> - (message "Type ‘q’ or ‘C-c C-c’ to return to Calc")
> + (message "Type `q' or `C-c C-c' to return to Calc")
> (recursive-edit)
> (bury-buffer "*Gnuplot Trail*")))
>
> diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el
> index 395b12d..444bb5e 100644
> --- a/lisp/calc/calc-help.el
> +++ b/lisp/calc/calc-help.el
> @@ -240,7 +240,7 @@ C-w Describe how there is no warranty for Calc."
> (if (string-match "\\` +" prompts)
> (setq prompts (substring prompts (match-end 0))))
> (setq msg (format-message
> - "%s: %s%s‘%s’%s%s %s%s"
> + "%s: %s%s`%s'%s%s %s%s"
> (if (string-match
> "\\`\\(calc-[-a-zA-Z0-9]+\\) *\\(.*\\)\\'"
> cmd)
> @@ -345,7 +345,7 @@ C-w Describe how there is no warranty for Calc."
> (calc-describe-thing var "Variable Index"))
>
> (defun calc-describe-thing (thing where &optional target not-quoted)
> - (message "Looking for ‘%s’ in %s..." thing where)
> + (message "Looking for `%s' in %s..." thing where)
> (let ((savewin (current-window-configuration)))
> (calc-info-goto-node where)
> (or (let ((case-fold-search nil))
> @@ -361,7 +361,7 @@ C-w Describe how there is no warranty for Calc."
> (if Info-history
> (Info-last))
> (set-window-configuration savewin)
> - (error "Can't find ‘%s’ in %s" thing where)))
> + (error "Can't find `%s' in %s" thing where)))
> (let (Info-history)
> (Info-goto-node (buffer-substring (match-beginning 1) (match-end 1))))
> (let* ((string-target (or target thing))
> @@ -380,7 +380,7 @@ C-w Describe how there is no warranty for Calc."
> (re-search-forward quoted nil t)
> (search-forward string-target nil t)))))
> (beginning-of-line)
> - (message "Found ‘%s’ in %s" thing where)))
> + (message "Found `%s' in %s" thing where)))
>
> (defun calc-view-news ()
> (interactive)
> @@ -400,9 +400,9 @@ C-w Describe how there is no warranty for Calc."
> (princ "GNU Emacs Calculator.\n")
> (princ " By Dave Gillespie.\n")
> (princ (format " %s\n\n" emacs-copyright))
> - (princ (format-message "Type ‘h s’ for a more detailed summary.\n"))
> + (princ (format-message "Type `h s' for a more detailed summary.\n"))
> (princ (format-message
> - "Or type ‘h i’ to read the full Calc manual on-line.\n\n"))
> + "Or type `h i' to read the full Calc manual on-line.\n\n"))
> (princ "Basic keys:\n")
> (let* ((calc-full-help-flag t))
> (mapc (function (lambda (x) (princ (format
> @@ -417,10 +417,10 @@ C-w Describe how there is no warranty for Calc."
> (princ
> (if (eq (nth 2 msgs) ?v)
> (format-message
> - "\n‘v’ or ‘V’ prefix (vector/matrix) keys: \n")
> + "\n`v' or `V' prefix (vector/matrix) keys: \n")
> (if (nth 2 msgs)
> (format-message
> - "\n‘%c’ prefix (%s) keys:\n"
> + "\n`%c' prefix (%s) keys:\n"
> (nth 2 msgs)
> (or (cdr (assq (nth 2 msgs)
> calc-help-long-names))
> diff --git a/lisp/calc/calc-lang.el b/lisp/calc/calc-lang.el
> index 70a9ff8..6b3b949 100644
> --- a/lisp/calc/calc-lang.el
> +++ b/lisp/calc/calc-lang.el
> @@ -94,7 +94,7 @@
> (interactive)
> (calc-wrapper
> (calc-set-language 'c)
> - (message "‘C’ language mode")))
> + (message "C language mode")))
>
> (put 'c 'math-oper-table
> '( ( "u!" calcFunc-lnot -1 1000 )
> @@ -387,7 +387,7 @@
> math-exp-token 'end
> math-expr-data "\000")
> x)
> - (throw 'syntax "Unmatched closing ‘/’")))
> + (throw 'syntax "Unmatched closing `/'")))
>
> (defun math-parse-fortran-subscr (sym args)
> (setq sym (math-build-var-name sym))
> @@ -695,7 +695,7 @@
>
> (defun math-parse-tex-sum (f val)
> (let (low high save)
> - (or (equal math-expr-data "_") (throw 'syntax "Expected ‘_’"))
> + (or (equal math-expr-data "_") (throw 'syntax "Expected `_'"))
> (math-read-token)
> (setq save math-exp-old-pos)
> (setq low (math-read-factor))
> @@ -703,7 +703,7 @@
> (progn
> (setq math-exp-old-pos (1+ save))
> (throw 'syntax "Expected equation")))
> - (or (equal math-expr-data "^") (throw 'syntax "Expected ‘^’"))
> + (or (equal math-expr-data "^") (throw 'syntax "Expected `^'"))
> (math-read-token)
> (setq high (math-read-factor))
> (list (nth 2 f) (math-read-factor) (nth 1 low) (nth 2 low) high)))
> @@ -1165,14 +1165,14 @@
> (while (assoc math-expr-data '(("ccol") ("lcol") ("rcol")))
> (math-read-token)
> (or (equal math-expr-data calc-function-open)
> - (throw 'syntax "Expected ‘{’"))
> + (throw 'syntax "Expected `{'"))
> (math-read-token)
> (setq vec (cons (cons 'vec (math-read-expr-list)) vec))
> (or (equal math-expr-data calc-function-close)
> - (throw 'syntax "Expected ‘}’"))
> + (throw 'syntax "Expected `}'"))
> (math-read-token))
> (or (equal math-expr-data calc-function-close)
> - (throw 'syntax "Expected ‘}’"))
> + (throw 'syntax "Expected `}'"))
> (math-read-token)
> (math-transpose (cons 'vec (nreverse vec)))))
>
> @@ -1187,7 +1187,7 @@
> (math-read-expr-list))))
> (if (not (or (equal math-expr-data calc-function-close)
> (eq math-exp-token 'end)))
> - (throw 'syntax "Expected ‘)’"))
> + (throw 'syntax "Expected `)'"))
> (math-read-token)
> (cons (intern (format "calcFunc-%s'" (nth 1 x))) args)))
> (list 'var
> @@ -1211,7 +1211,7 @@
> (interactive)
> (calc-wrapper
> (calc-set-language 'yacas)
> - (message "‘Yacas’ language mode")))
> + (message "Yacas language mode")))
>
> (put 'yacas 'math-vector-brackets "{}")
>
> @@ -1427,7 +1427,7 @@
> (interactive)
> (calc-wrapper
> (calc-set-language 'maxima)
> - (message "‘Maxima’ language mode")))
> + (message "Maxima language mode")))
>
> (put 'maxima 'math-oper-table
> '(("+" + 100 100)
> @@ -1625,7 +1625,7 @@
> (interactive)
> (calc-wrapper
> (calc-set-language 'giac)
> - (message "‘Giac’ language mode")))
> + (message "Giac language mode")))
>
> (put 'giac 'math-oper-table
> '( ( "[" (math-read-giac-subscr) 250 -1 )
> @@ -1817,7 +1817,7 @@ order to Calc's."
> (defun math-read-giac-subscr (x op)
> (let ((idx (math-read-expr-level 0)))
> (or (equal math-expr-data "]")
> - (throw 'syntax "Expected ‘]’"))
> + (throw 'syntax "Expected `]'"))
> (math-read-token)
> (list 'calcFunc-subscr x (calc-normalize (list '+ idx 1)))))
>
> @@ -1954,7 +1954,7 @@ order to Calc's."
> (progn
> (math-read-token)
> (equal math-expr-data "]")))
> - (throw 'syntax "Expected ‘]]’"))
> + (throw 'syntax "Expected `]]'"))
> (math-read-token)
> (list 'calcFunc-subscr x idx)))
>
> @@ -2237,7 +2237,7 @@ order to Calc's."
> (if (= sep ?\.)
> (setq h (1+ h)))
> (if (= sep ?\])
> - (math-read-big-error (1- h) v "Expected ‘)’"))
> + (math-read-big-error (1- h) v "Expected `)'"))
> (if (= sep ?\))
> (setq p (math-read-big-rec
> (1+ math-rb-h1) math-rb-v1 (1- h) math-rb-v2 v))
> @@ -2252,7 +2252,7 @@ order to Calc's."
> 0 1)
> p))))
> ((= (math-read-big-char (1- h) v) ?\])
> - (math-read-big-error (1- h) v "Expected ‘)’"))
> + (math-read-big-error (1- h) v "Expected `)'"))
> ((= sep ?\,)
> (or (and (math-realp (car p)) (math-realp (nth 1 p)))
> (math-read-big-error
> @@ -2280,7 +2280,7 @@ order to Calc's."
> (setq h (math-read-big-balance (1+ hleft) v "["))
> (if hright
> (or (= h hright)
> - (math-read-big-error hright v "Expected ‘]’"))
> + (math-read-big-error hright v "Expected `]'"))
> (setq hright h))
> (setq p (cons (math-read-big-rec
> hleft v h (1+ v)) p))
> @@ -2293,7 +2293,7 @@ order to Calc's."
> (setq h (1+ h)))
> (and (= (math-read-big-char h v) ?\])
> (setq h (1+ h))))
> - (math-read-big-error (1- h) v "Expected ‘]’"))
> + (math-read-big-error (1- h) v "Expected `]'"))
> (if (= (math-read-big-char h vtop) ?\,)
> (setq h (1+ h)))
> (math-read-big-emptyp math-rb-h1 (1+ v) (1- h) math-rb-v2 nil t)
> @@ -2317,7 +2317,7 @@ order to Calc's."
> (setq widest (math-read-big-char (1- h) v))
> (if (or (memq widest '(?\; ?\)))
> (and (eq widest ?\.) (cdr p)))
> - (math-read-big-error (1- h) v "Expected ‘]’"))
> + (math-read-big-error (1- h) v "Expected `]'"))
> (if (= widest ?\.)
> (setq h (1+ h)
> widest (math-read-big-balance h v "[")
> @@ -2369,7 +2369,7 @@ order to Calc's."
> h widest)
> (= (math-read-big-char (1- h) v) ?\,)))
> (or (= (math-read-big-char (1- h) v) ?\))
> - (math-read-big-error (1- h) v "Expected ‘)’"))
> + (math-read-big-error (1- h) v "Expected `)'"))
> (setq p (cons line (nreverse p))))
> (setq p (list 'var
> (intern (math-remove-dashes p))
> @@ -2433,7 +2433,7 @@ order to Calc's."
> math-rb-v2 baseline nil t)))
> (or (= (math-read-big-char math-read-big-h2 baseline) ?\:)
> (math-read-big-error math-read-big-h2 baseline
> - "Expected ‘:’"))
> + "Expected `:'"))
> (setq p (list (nth 1 widest) p y
> (math-read-big-rec
> (1+ math-read-big-h2) math-rb-v1 math-rb-h2 math-rb-v2
> @@ -2509,7 +2509,7 @@ order to Calc's."
> (if (>= h len)
> (if what
> (math-read-big-error nil v (format-message
> - "Unmatched ‘%s’" what))
> + "Unmatched `%s'" what))
> (setq count 0))
> (if (memq (aref line h) '(?\( ?\[))
> (setq count (1+ count))
> diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el
> index e141589..aa0ccb7 100644
> --- a/lisp/calc/calc-misc.el
> +++ b/lisp/calc/calc-misc.el
> @@ -217,7 +217,7 @@ Calc user interface as before (either C-x * C or C-x * K; initially C-x * C).
> (defun calc-help ()
> (interactive)
> (let ((msgs
> - '("Press ‘h’ for complete help; press ‘?’ repeatedly for a summary"
> + '("Press `h' for complete help; press `?' repeatedly for a summary"
> "Letter keys: Negate; Precision; Yank; Why; Xtended cmd; Quit"
> "Letter keys: SHIFT + Undo, reDo; Inverse, Hyperbolic, Option"
> "Letter keys: SHIFT + sQrt; Sin, Cos, Tan; Exp, Ln, logB"
> @@ -953,7 +953,7 @@ Prompts for bug subject. Leaves you in a mail buffer."
> nil nil nil
> "Please describe exactly what actions triggered the bug and the
> precise symptoms of the bug. If possible, include a backtrace by
> -doing ‘\\[toggle-debug-on-error]’, then reproducing the bug.
> +doing `\\[toggle-debug-on-error]', then reproducing the bug.
> " )))
> ;;;###autoload
> (defalias 'calc-report-bug 'report-calc-bug)
> diff --git a/lisp/calc/calc-mode.el b/lisp/calc/calc-mode.el
> index b5eef7f..3ed9612 100644
> --- a/lisp/calc/calc-mode.el
> +++ b/lisp/calc/calc-mode.el
> @@ -110,11 +110,11 @@
> (setq n (and (not (eq calc-auto-why t)) (if calc-auto-why t 1))))
> (calc-change-mode 'calc-auto-why n nil)
> (cond ((null n)
> - (message "User must press ‘w’ to explain unsimplified results"))
> + (message "User must press `w' to explain unsimplified results"))
> ((eq n t)
> - (message "Automatically doing ‘w’ to explain unsimplified results"))
> + (message "Automatically doing `w' to explain unsimplified results"))
> (t
> - (message "Automatically doing ‘w’ only for unusual messages")))))
> + (message "Automatically doing `w' only for unusual messages")))))
>
> (defun calc-group-digits (n)
> (interactive "P")
> @@ -272,7 +272,7 @@
> (vals (mapcar (function (lambda (v) (symbol-value (car v))))
> calc-mode-var-list)))
> (unless calc-settings-file
> - (error "No ‘calc-settings-file’ specified"))
> + (error "No `calc-settings-file' specified"))
> (set-buffer (find-file-noselect (substitute-in-file-name
> calc-settings-file)))
> (goto-char (point-min))
> @@ -572,8 +572,8 @@
> (calc-change-mode 'calc-auto-recompute arg nil t)
> (calc-refresh-evaltos)
> (message (if calc-auto-recompute
> - "Automatically recomputing ‘=>’ forms when necessary"
> - "Not recomputing ‘=>’ forms automatically"))))
> + "Automatically recomputing `=>' forms when necessary"
> + "Not recomputing `=>' forms automatically"))))
>
> (defun calc-working (n)
> (interactive "P")
> diff --git a/lisp/calc/calc-prog.el b/lisp/calc/calc-prog.el
> index 58d2b5c..57af0d2 100644
> --- a/lisp/calc/calc-prog.el
> +++ b/lisp/calc/calc-prog.el
> @@ -597,9 +597,9 @@
> ",")
> ((equal name "#")
> (search-backward "#")
> - (error "Token ‘#’ is reserved"))
> + (error "Token `#' is reserved"))
> ((and unquoted (string-match "#" name))
> - (error "Tokens containing ‘#’ must be quoted"))
> + (error "Tokens containing `#' must be quoted"))
> ((not (string-match "[^ ]" name))
> (search-backward "\"" nil t)
> (error "Blank tokens are not allowed"))
> @@ -610,7 +610,7 @@
> (quoted nil))
> (while (progn
> (skip-chars-forward "\n\t ")
> - (if (eobp) (error "Expected ‘%s’" eterm))
> + (if (eobp) (error "Expected `%s'" eterm))
> (not (looking-at term)))
> (cond ((looking-at "%%")
> (end-of-line))
> @@ -618,7 +618,7 @@
> (forward-char 2)
> (let ((p (calc-read-parse-table-part "}" "}")))
> (or (looking-at "[+*?]")
> - (error "Expected ‘+’, ‘*’, or ‘?’"))
> + (error "Expected `+', `*', or `?'"))
> (let ((sym (intern (buffer-substring (point) (1+ (point))))))
> (forward-char 1)
> (looking-at "[^\n\t ]*")
> @@ -650,7 +650,7 @@
> (match-end 1)))))))
> (goto-char (match-end 0)))
> ((looking-at ":=[\n\t ]")
> - (error "Misplaced ‘:=’"))
> + (error "Misplaced `:='"))
> (t
> (looking-at "[^\n\t ]*")
> (let ((end (match-end 0)))
> @@ -673,7 +673,7 @@
> (or last-kbd-macro
> (error "No keyboard macro defined"))
> (setq calc-invocation-macro last-kbd-macro)
> - (message "Use ‘C-x * Z’ to invoke this macro"))
> + (message "Use `C-x * Z' to invoke this macro"))
>
> (defun calc-user-define-edit ()
> (interactive) ; but no calc-wrapper!
> @@ -1899,7 +1899,7 @@ Redefine the corresponding command."
> `((and
> (,chk ,var)
> (math-reject-arg ,var ',qual)))))
> - (error "Unknown qualifier ‘%s’" qual-name))))))))
> + (error "Unknown qualifier `%s'" qual-name))))))))
>
> (defun math-do-arg-list-check (args is-opt is-rest)
> (cond ((null args) nil)
> diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el
> index 4cf5b8c..3d8c865 100644
> --- a/lisp/calc/calc-store.el
> +++ b/lisp/calc/calc-store.el
> @@ -443,7 +443,7 @@
> (calc-edit-mode (list 'calc-finish-stack-edit (list 'quote var))
> t
> (format-message
> - "Editing variable ‘%s’" (calc-var-name var)))
> + "Editing variable `%s'" (calc-var-name var)))
> (and value
> (insert (math-format-nice-expr value (frame-width)) "\n")))))
> (calc-show-edit-buffer))
> diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el
> index d56c0b2..4373e52 100644
> --- a/lisp/calc/calc-units.el
> +++ b/lisp/calc/calc-units.el
> @@ -1625,10 +1625,10 @@ If COMP or STD is non-nil, put that in the units table instead."
> (format-message
> (concat
> "(**) When in TeX or LaTeX display mode, the TeX specific unit\n"
> - "names will not use the ‘tex’ prefix; the unit name for a\n"
> - "TeX point will be ‘pt’ instead of ‘texpt’, for example.\n"
> + "names will not use the `tex' prefix; the unit name for a\n"
> + "TeX point will be `pt' instead of `texpt', for example.\n"
> "To avoid conflicts, the unit names for pint and parsec will\n"
> - "be ‘pint’ and ‘parsec’ instead of ‘pt’ and ‘pc’."))))
> + "be `pint' and `parsec' instead of `pt' and `pc'."))))
> (view-mode)
> (message "Formatting units table...done"))
> (setq math-units-table-buffer-valid t)
> diff --git a/lisp/calc/calc-vec.el b/lisp/calc/calc-vec.el
> index c7a3e716..cd15770 100644
> --- a/lisp/calc/calc-vec.el
> +++ b/lisp/calc/calc-vec.el
> @@ -1618,13 +1618,13 @@ of two matrices is a matrix."
> (if (not (or (equal math-expr-data math-rb-close)
> (equal math-expr-data ")")
> (eq math-exp-token 'end)))
> - (throw 'syntax "Expected ‘]’")))
> + (throw 'syntax "Expected `]'")))
> (if (equal math-expr-data ";")
> (let ((math-exp-keep-spaces space-sep))
> (setq vals (cons 'vec (math-read-matrix (list vals))))))
> (if (not (or (equal math-expr-data math-rb-close)
> (eq math-exp-token 'end)))
> - (throw 'syntax "Expected ‘]’")))
> + (throw 'syntax "Expected `]'")))
> (or (eq math-exp-token 'end)
> (math-read-token))
> vals)))
> diff --git a/lisp/calc/calc-yank.el b/lisp/calc/calc-yank.el
> index cce0470..5694a4e 100644
> --- a/lisp/calc/calc-yank.el
> +++ b/lisp/calc/calc-yank.el
> @@ -603,9 +603,9 @@ To cancel the edit, simply kill the *Calc Edit* buffer."
> (insert (propertize
> (concat
> (or title title "Calc Edit Mode. ")
> - (format-message "Press ‘C-c C-c’")
> + (format-message "Press `C-c C-c'")
> (if allow-ret "" " or RET")
> - (format-message " to finish, ‘C-x k RET’ to cancel.\n\n"))
> + (format-message " to finish, `C-x k RET' to cancel.\n\n"))
> 'font-lock-face 'italic 'read-only t 'rear-nonsticky t 'front-sticky t))
> (make-local-variable 'calc-edit-top)
> (setq calc-edit-top (point))))
> diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
> index ea20986..b4b0ad8 100644
> --- a/lisp/calc/calc.el
> +++ b/lisp/calc/calc.el
> @@ -989,11 +989,11 @@ Used by `calc-user-invocation'.")
> (defvar calc-last-kill nil
> "The last number killed in calc-mode.")
> (defvar calc-dollar-values nil
> - "Values to be used for ‘$’.")
> + "Values to be used for `$'.")
> (defvar calc-dollar-used nil
> - "The highest order of ‘$’ that occurred.")
> + "The highest order of `$' that occurred.")
> (defvar calc-hashes-used nil
> - "The highest order of ‘#’ that occurred.")
> + "The highest order of `#' that occurred.")
> (defvar calc-quick-prev-results nil
> "Previous results from Quick Calc.")
> (defvar calc-said-hello nil
> @@ -1474,7 +1474,7 @@ commands given here will actually operate on the *Calculator* stack."
> (and calc-display-trail
> (= (window-width) (frame-width))
> (calc-trail-display 1 t)))
> - (message "Welcome to the GNU Emacs Calculator! Press ‘?’ or ‘h’ for help, ‘q’ to quit")
> + (message "Welcome to the GNU Emacs Calculator! Press `?' or `h' for help, `q' to quit")
> (run-hooks 'calc-start-hook)
> (and (windowp full-display)
> (window-point full-display)
> @@ -1622,7 +1622,7 @@ See calc-keypad for details."
> (stringp (nth 1 err))
> (string-match "max-specpdl-size\\|max-lisp-eval-depth"
> (nth 1 err)))
> - (error "Computation got stuck or ran too long. Type ‘M’ to increase the limit")
> + (error "Computation got stuck or ran too long. Type `M' to increase the limit")
> (setq calc-aborted-prefix nil)
> (signal (car err) (cdr err)))))
> (when calc-aborted-prefix
> @@ -3856,7 +3856,7 @@ Also looks for the equivalent TeX words, \\gets and \\evalto."
> (defun calc-user-invocation ()
> (interactive)
> (unless calc-invocation-macro
> - (error "Use ‘Z I’ inside Calc to define a ‘C-x * Z’ keyboard macro"))
> + (error "Use `Z I' inside Calc to define a `C-x * Z' keyboard macro"))
> (execute-kbd-macro calc-invocation-macro nil))
>
> ;;; User-programmability.
> diff --git a/lisp/calculator.el b/lisp/calculator.el
> index 49d47a0..80b7c07 100644
> --- a/lisp/calculator.el
> +++ b/lisp/calculator.el
> @@ -1551,7 +1551,7 @@ Used by `calculator-paste' and `get-register'."
> + - * / \\(div) %(rem) _(-X,postfix) ;(1/X,postfix) ^(exp) L(og)
> Q(sqrt) !(fact) S(in) C(os) T(an) |(or) #(xor) &(and) ~(not)
> * >/< repeats last binary operation with its 2nd (1st) arg as postfix op
> -* I inverses next trig function * '/\"/{} - display/display args
> +* I inverses next trig function * \\='/\"/{} - display/display args
> * D - switch to all-decimal, or toggle deg/rad mode
> * B/O/H/X - binary/octal/hex mode for i/o (X is a shortcut for H)
> * i/o - prefix for d/b/o/x - set only input/output modes
> diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
> index 426bb28..d5d8a40 100644
> --- a/lisp/calendar/appt.el
> +++ b/lisp/calendar/appt.el
> @@ -239,7 +239,7 @@ also calls `beep' for an audible reminder."
> (wrong-type-argument
> (if (not (listp mins))
> (signal (car err) (cdr err))
> - (message "Argtype error in ‘appt-disp-window-function’ - \
> + (message "Argtype error in `appt-disp-window-function' - \
> update it for multiple appts?")
> ;; Fallback to just displaying the first appt, as we used to.
> (funcall appt-disp-window-function
> diff --git a/lisp/calendar/cal-bahai.el b/lisp/calendar/cal-bahai.el
> index b68ba8a..998dc6c 100644
> --- a/lisp/calendar/cal-bahai.el
> +++ b/lisp/calendar/cal-bahai.el
> @@ -1,10 +1,10 @@
> -;;; cal-bahai.el --- calendar functions for the Bahá'í calendar.
> +;;; cal-bahai.el --- calendar functions for the Bahá’í calendar.
>
> ;; Copyright (C) 2001-2015 Free Software Foundation, Inc.
>
> ;; Author: John Wiegley <johnw@gnu.org>
> ;; Keywords: calendar
> -;; Human-Keywords: Bahá'í calendar, Bahá'í, Baha'i, Bahai, calendar, diary
> +;; Human-Keywords: Bahá’í calendar, Bahá’í, Baha'i, Bahai, calendar, diary
> ;; Package: calendar
>
> ;; This file is part of GNU Emacs.
> @@ -25,9 +25,9 @@
> ;;; Commentary:
>
> ;; This collection of functions implements the features of calendar.el
> -;; and diary-lib.el that deal with the Bahá'í calendar.
> +;; and diary-lib.el that deal with the Bahá’í calendar.
>
> -;; The Bahá'í (http://www.bahai.org) calendar system is based on a
> +;; The Bahá’í (http://www.bahai.org) calendar system is based on a
> ;; solar cycle of 19 months with 19 days each. The four remaining
> ;; "intercalary" days are called the Ayyám-i-Há (days of Há), and are
> ;; placed between the 18th and 19th months. They are meant as a time
> @@ -59,13 +59,13 @@
> ["Bahá" "Jalál" "Jamál" "‘Aẓamat" "Núr" "Raḥmat" "Kalimát" "Kamál"
> "Asmá’" "‘Izzat" "Mashíyyat" "‘Ilm" "Qudrat" "Qawl" "Masá’il"
> "Sharaf" "Sulṭán" "Mulk" "‘Alá’"]
> - "Array of the month names in the Bahá'í calendar.")
> + "Array of the month names in the Bahá’í calendar.")
>
> (defconst calendar-bahai-epoch (calendar-absolute-from-gregorian '(3 21 1844))
> - "Absolute date of start of Bahá'í calendar = March 21, 1844 AD.")
> + "Absolute date of start of Bahá’í calendar = March 21, 1844 AD.")
>
> (defun calendar-bahai-leap-year-p (year)
> - "True if Bahá'í YEAR is a leap year in the Bahá'í calendar."
> + "True if Bahá’í YEAR is a leap year in the Bahá’í calendar."
> (calendar-leap-year-p (+ year 1844)))
>
> (defconst calendar-bahai-leap-base
> @@ -74,7 +74,7 @@
> Used by `calendar-bahai-to-absolute'.")
>
> (defun calendar-bahai-to-absolute (date)
> - "Compute absolute date from Bahá'í date DATE.
> + "Compute absolute date from Bahá’í date DATE.
> The absolute date is the number of days elapsed since the (imaginary)
> Gregorian date Sunday, December 31, 1 BC."
> (let* ((month (calendar-extract-month date))
> @@ -95,9 +95,9 @@ Gregorian date Sunday, December 31, 1 BC."
> day))) ; days so far this month
>
> (defun calendar-bahai-from-absolute (date)
> - "Bahá'í date (month day year) corresponding to the absolute DATE."
> + "Bahá’í date (month day year) corresponding to the absolute DATE."
> (if (< date calendar-bahai-epoch)
> - (list 0 0 0) ; pre-Bahá'í date
> + (list 0 0 0) ; pre-Bahá’í date
> (let* ((greg (calendar-gregorian-from-absolute date))
> (gmonth (calendar-extract-month greg))
> (year (+ (- (calendar-extract-year greg) 1844)
> @@ -116,7 +116,7 @@ Gregorian date Sunday, December 31, 1 BC."
>
> ;;;###cal-autoload
> (defun calendar-bahai-date-string (&optional date)
> - "String of Bahá'í date of Gregorian DATE.
> + "String of Bahá’í date of Gregorian DATE.
> Defaults to today's date if DATE is not given."
> (let* ((bahai-date (calendar-bahai-from-absolute
> (calendar-absolute-from-gregorian
> @@ -142,19 +142,19 @@ Defaults to today's date if DATE is not given."
>
> ;;;###cal-autoload
> (defun calendar-bahai-print-date ()
> - "Show the Bahá'í calendar equivalent of the selected date."
> + "Show the Bahá’í calendar equivalent of the selected date."
> (interactive)
> (let ((s (calendar-bahai-date-string (calendar-cursor-to-date t))))
> (if (string-equal s "")
> - (message "Date is pre-Bahá'í")
> - (message "Bahá'í date: %s" s))))
> + (message "Date is pre-Bahá’í")
> + (message "Bahá’í date: %s" s))))
>
> (defun calendar-bahai-read-date ()
> - "Interactively read the arguments for a Bahá'í date command.
> + "Interactively read the arguments for a Bahá’í date command.
> Reads a year, month and day."
> (let* ((today (calendar-current-date))
> (year (calendar-read
> - "Bahá'í calendar year (not 0): "
> + "Bahá’í calendar year (not 0): "
> (lambda (x) (not (zerop x)))
> (number-to-string
> (calendar-extract-year
> @@ -163,19 +163,19 @@ Reads a year, month and day."
> (completion-ignore-case t)
> (month (cdr (assoc
> (completing-read
> - "Bahá'í calendar month name: "
> + "Bahá’í calendar month name: "
> (mapcar 'list
> (append calendar-bahai-month-name-array nil))
> nil t)
> (calendar-make-alist calendar-bahai-month-name-array
> 1))))
> - (day (calendar-read "Bahá'í calendar day (1-19): "
> + (day (calendar-read "Bahá’í calendar day (1-19): "
> (lambda (x) (and (< 0 x) (<= x 19))))))
> (list (list month day year))))
>
> ;;;###cal-autoload
> (defun calendar-bahai-goto-date (date &optional noecho)
> - "Move cursor to Bahá'í date DATE; echo Bahá'í date unless NOECHO is non-nil."
> + "Move cursor to Bahá’í date DATE; echo Bahá’í date unless NOECHO is non-nil."
> (interactive (calendar-bahai-read-date))
> (calendar-goto-date (calendar-gregorian-from-absolute
> (calendar-bahai-to-absolute date)))
> @@ -186,8 +186,8 @@ Reads a year, month and day."
>
> ;;;###holiday-autoload
> (defun holiday-bahai (month day string)
> - "Holiday on MONTH, DAY (Bahá'í) called STRING.
> -If MONTH, DAY (Bahá'í) is visible in the current calendar window,
> + "Holiday on MONTH, DAY (Bahá’í) called STRING.
> +If MONTH, DAY (Bahá’í) is visible in the current calendar window,
> returns the corresponding Gregorian date in the form of the
> list (((month day year) STRING)). Otherwise, returns nil."
> ;; Since the calendar window shows 3 months at a time, there are
> @@ -199,7 +199,7 @@ list (((month day year) STRING)). Otherwise, returns nil."
> (m (calendar-extract-month bahai-date))
> (y (calendar-extract-year bahai-date))
> date)
> - (unless (< m 1) ; Bahá'í calendar doesn't apply
> + (unless (< m 1) ; Bahá’í calendar doesn't apply
> ;; Cf holiday-fixed, holiday-islamic.
> ;; With a +- 3 month calendar window, and 19 months per year,
> ;; month 16 is special. When m16 is central is when the
> @@ -209,7 +209,7 @@ list (((month day year) STRING)). Otherwise, returns nil."
> ;; To see if other months are visible we can shift the range
> ;; accordingly.
> (calendar-increment-month m y (- 16 month) 19)
> - (and (> m 12) ; Bahá'í date might be visible
> + (and (> m 12) ; Bahá’í date might be visible
> (calendar-date-is-visible-p
> (setq date (calendar-gregorian-from-absolute
> (calendar-bahai-to-absolute (list month day y)))))
> @@ -219,9 +219,9 @@ list (((month day year) STRING)). Otherwise, returns nil."
>
> ;;;###holiday-autoload
> (defun holiday-bahai-new-year ()
> - "Holiday entry for the Bahá'í New Year, if visible in the calendar window."
> + "Holiday entry for the Bahá’í New Year, if visible in the calendar window."
> (holiday-fixed 3 21
> - (format "Bahá'í New Year (Naw-Ruz) %d"
> + (format "Bahá’í New Year (Naw-Ruz) %d"
> (- displayed-year (1- 1844)))))
>
> ;;;###holiday-autoload
> @@ -246,12 +246,12 @@ Only considers the first, ninth, and twelfth days, unless ALL or
>
> ;;;###diary-autoload
> (defun diary-bahai-list-entries ()
> - "Add any Bahá'í date entries from the diary file to `diary-entries-list'.
> -Bahá'í date diary entries must be prefaced by `diary-bahai-entry-symbol'
> + "Add any Bahá’í date entries from the diary file to `diary-entries-list'.
> +Bahá’í date diary entries must be prefaced by `diary-bahai-entry-symbol'
> \(normally a `B'). The same diary date forms govern the style of the
> -Bahá'í calendar entries, except that the Bahá'í month names cannot be
> -abbreviated. The Bahá'í months are numbered from 1 to 19 with Bahá being
> -1 and 19 being `Alá. If a Bahá'í date diary entry begins with
> +Bahá’í calendar entries, except that the Bahá’í month names cannot be
> +abbreviated. The Bahá’í months are numbered from 1 to 19 with Bahá being
> +1 and 19 being `Alá. If a Bahá’í date diary entry begins with
> `diary-nonmarking-symbol', the entry will appear in the diary listing, but
> will not be marked in the calendar. This function is provided for use with
> `diary-nongregorian-listing-hook'."
> @@ -263,7 +263,7 @@ will not be marked in the calendar. This function is provided for use with
>
> ;;;###diary-autoload
> (defun calendar-bahai-mark-date-pattern (month day year &optional color)
> - "Mark dates in calendar window that conform to Bahá'í date MONTH/DAY/YEAR.
> + "Mark dates in calendar window that conform to Bahá’í date MONTH/DAY/YEAR.
> A value of 0 in any position is a wildcard. Optional argument COLOR is
> passed to `calendar-mark-visible-date' as MARK."
> (calendar-mark-1 month day year 'calendar-bahai-from-absolute
> @@ -273,7 +273,7 @@ passed to `calendar-mark-visible-date' as MARK."
>
> ;;;###diary-autoload
> (defun diary-bahai-mark-entries ()
> - "Mark days in the calendar window that have Bahá'í date diary entries.
> + "Mark days in the calendar window that have Bahá’í date diary entries.
> Marks each entry in `diary-file' (or included files) visible in the calendar
> window. See `diary-bahai-list-entries' for more information."
> (diary-mark-entries-1 'calendar-bahai-mark-date-pattern
> @@ -286,7 +286,7 @@ window. See `diary-bahai-list-entries' for more information."
> ;;;###cal-autoload
> (defun diary-bahai-insert-entry (arg)
> "Insert a diary entry.
> -For the Bahá'í date corresponding to the date indicated by point.
> +For the Bahá’í date corresponding to the date indicated by point.
> Prefix argument ARG makes the entry nonmarking."
> (interactive "P")
> (diary-insert-entry-1 nil arg calendar-bahai-month-name-array
> @@ -296,7 +296,7 @@ Prefix argument ARG makes the entry nonmarking."
> ;;;###cal-autoload
> (defun diary-bahai-insert-monthly-entry (arg)
> "Insert a monthly diary entry.
> -For the day of the Bahá'í month corresponding to the date indicated by point.
> +For the day of the Bahá’í month corresponding to the date indicated by point.
> Prefix argument ARG makes the entry nonmarking."
> (interactive "P")
> (diary-insert-entry-1 'monthly arg calendar-bahai-month-name-array
> @@ -306,7 +306,7 @@ Prefix argument ARG makes the entry nonmarking."
> ;;;###cal-autoload
> (defun diary-bahai-insert-yearly-entry (arg)
> "Insert an annual diary entry.
> -For the day of the Bahá'í year corresponding to the date indicated by point.
> +For the day of the Bahá’í year corresponding to the date indicated by point.
> Prefix argument ARG will make the entry nonmarking."
> (interactive "P")
> (diary-insert-entry-1 'yearly arg calendar-bahai-month-name-array
> @@ -318,8 +318,8 @@ Prefix argument ARG will make the entry nonmarking."
> ;; To be called from diary-list-sexp-entries, where DATE is bound.
> ;;;###diary-autoload
> (defun diary-bahai-date ()
> - "Bahá'í calendar equivalent of date diary entry."
> - (format "Bahá'í date: %s" (calendar-bahai-date-string date)))
> + "Bahá’í calendar equivalent of date diary entry."
> + (format "Bahá’í date: %s" (calendar-bahai-date-string date)))
>
>
> (provide 'cal-bahai)
> diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el
> index 8a975d8..8bb1b88 100644
> --- a/lisp/calendar/cal-hebrew.el
> +++ b/lisp/calendar/cal-hebrew.el
> @@ -611,7 +611,7 @@ is provided for use with `diary-nongregorian-listing-hook'."
> "Mark dates in calendar window that conform to Hebrew date MONTH/DAY/YEAR.
> A value of 0 in any position is a wildcard. Optional argument COLOR is
> passed to `calendar-mark-visible-date' as MARK."
> - ;; FIXME not the same as the Bahai and Islamic cases, so can't use
> + ;; FIXME not the same as the Bahá’í and Islamic cases, so can't use
> ;; calendar-mark-1.
> (with-current-buffer calendar-buffer
> (if (and (not (zerop month)) (not (zerop day)))
> diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el
> index 7462df8..251d811 100644
> --- a/lisp/calendar/cal-menu.el
> +++ b/lisp/calendar/cal-menu.el
> @@ -52,7 +52,7 @@
> ["Insert Anniversary" diary-insert-anniversary-entry]
> ["Insert Block" diary-insert-block-entry]
> ["Insert Cyclic" diary-insert-cyclic-entry]
> - ("Insert Bahá'í"
> + ("Insert Bahá’í"
> ["One time" diary-bahai-insert-entry]
> ["Monthly" diary-bahai-insert-monthly-entry]
> ["Yearly" diary-bahai-insert-yearly-entry])
> @@ -132,7 +132,7 @@
> ["Astronomical Date" calendar-astro-goto-day-number]
> ["Hebrew Date" calendar-hebrew-goto-date]
> ["Persian Date" calendar-persian-goto-date]
> - ["Bahá'í Date" calendar-bahai-goto-date]
> + ["Bahá’í Date" calendar-bahai-goto-date]
> ["Islamic Date" calendar-islamic-goto-date]
> ["Julian Date" calendar-julian-goto-date]
> ["Chinese Date" calendar-chinese-goto-date]
> diff --git a/lisp/calendar/cal-tex.el b/lisp/calendar/cal-tex.el
> index e2e9182..e512fae 100644
> --- a/lisp/calendar/cal-tex.el
> +++ b/lisp/calendar/cal-tex.el
> @@ -1602,7 +1602,7 @@ informative header, and run HOOK."
> (goto-char (point-min))
> (when (search-forward "documentclass" nil t)
> (forward-line 1)
> - ;; Eg for some Bahai holidays.
> + ;; E.g., for some Bahá’í holidays.
> ;; FIXME latin1 might not always be right.
> (insert "\\usepackage[latin1]{inputenc}\n"))))
> (latex-mode)
> diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
> index 07977af..86e5477 100644
> --- a/lisp/calendar/calendar.el
> +++ b/lisp/calendar/calendar.el
> @@ -42,7 +42,7 @@
> ;; can be translated from the (usual) Gregorian calendar to the day of
> ;; the year/days remaining in year, to the ISO commercial calendar, to
> ;; the Julian (old style) calendar, to the Hebrew calendar, to the
> -;; Islamic calendar, to the Bahá'í calendar, to the French
> +;; Islamic calendar, to the Bahá’í calendar, to the French
> ;; Revolutionary calendar, to the Mayan calendar, to the Chinese
> ;; calendar, to the Coptic calendar, to the Ethiopic calendar, and to
> ;; the astronomical (Julian) day number. Times of sunrise/sunset can
> @@ -53,7 +53,7 @@
> ;; The following files are part of the calendar/diary code:
>
> ;; appt.el Appointment notification
> -;; cal-bahai.el Bahá'í calendar
> +;; cal-bahai.el Bahá’í calendar
> ;; cal-china.el Chinese calendar
> ;; cal-coptic.el Coptic/Ethiopic calendars
> ;; cal-dst.el Daylight saving time rules
> @@ -375,7 +375,7 @@ When this expression is evaluated, DAY, MONTH, and YEAR are
> integers appropriate to the relevant date. For example, to
> display the ISO date:
>
> - (setq calendar-date-echo-text '(format \"ISO date: %s\"
> + (setq calendar-date-echo-text \\='(format \"ISO date: %s\"
> (calendar-iso-date-string
> (list month day year))))
> Changing this variable without using customize has no effect on
> @@ -655,7 +655,7 @@ causes the diary entry \"Vacation\" to appear from November 1 through
> November 10, 1990. See the documentation for the function
> `diary-list-sexp-entries' for more details.
>
> -Diary entries based on the Hebrew, the Islamic and/or the Bahá'í
> +Diary entries based on the Hebrew, the Islamic and/or the Bahá’í
> calendar are also possible, but because these are somewhat slow, they
> are ignored unless you set the `diary-nongregorian-listing-hook' and
> the `diary-nongregorian-marking-hook' appropriately. See the
> @@ -690,7 +690,7 @@ details, see the documentation for the variable `diary-list-entries-hook'."
> :group 'diary)
>
> (defcustom diary-bahai-entry-symbol "B"
> - "Symbol indicating a diary entry according to the Bahá'í calendar."
> + "Symbol indicating a diary entry according to the Bahá’í calendar."
> :type 'string
> :group 'diary)
>
> @@ -1013,9 +1013,9 @@ calendar."
> :group 'holidays)
>
> (defcustom calendar-bahai-all-holidays-flag nil
> - "If nil, show only major holidays from the Bahá'í calendar.
> + "If nil, show only major holidays from the Bahá’í calendar.
> These are the days on which work and school must be suspended.
> -Otherwise, show all the holidays that would appear in a complete Bahá'í
> +Otherwise, show all the holidays that would appear in a complete Bahá’í
> calendar."
> :type 'boolean
> :group 'holidays)
> @@ -1708,13 +1708,13 @@ remaining in the year, and the ISO week/year numbers:
>
> (list
> \"\"
> - '(calendar-hebrew-date-string date)
> - '(let* ((year (calendar-extract-year date))
> + \\='(calendar-hebrew-date-string date)
> + \\='(let* ((year (calendar-extract-year date))
> (d (calendar-day-number date))
> (days-remaining
> (- (calendar-day-number (list 12 31 year)) d)))
> (format \"%d/%d\" d days-remaining))
> - '(let* ((d (calendar-absolute-from-gregorian date))
> + \\='(let* ((d (calendar-absolute-from-gregorian date))
> (iso-date (calendar-iso-from-absolute d)))
> (format \"ISO week %d of %d\"
> (calendar-extract-month iso-date)
> @@ -2571,7 +2571,7 @@ DATE is (month day year). Calendars that do not apply are omitted."
> (unless (string-equal
> (setq odate (calendar-bahai-date-string date))
> "")
> - (format "Bahá'í date: %s" odate))
> + (format "Bahá’í date: %s" odate))
> (format "Chinese date: %s"
> (calendar-chinese-date-string date))
> (unless (string-equal
> diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
> index b21fc68..a1370bb 100644
> --- a/lisp/calendar/diary-lib.el
> +++ b/lisp/calendar/diary-lib.el
> @@ -300,7 +300,7 @@ expressions that can involve the keywords `days' (a number), `date'
>
> (defcustom diary-abbreviated-year-flag t
> "Interpret a two-digit year DD in a diary entry as either 19DD or 20DD.
> -This applies to the Gregorian, Hebrew, Islamic, and Bahá'í calendars.
> +This applies to the Gregorian, Hebrew, Islamic, and Bahá’í calendars.
> When the current century is added to a two-digit year, if the result
> is more than 50 years in the future, the previous century is assumed.
> If the result is more than 50 years in the past, the next century is assumed.
> @@ -484,8 +484,8 @@ If so, return the expanded file name, otherwise signal an error."
> (if (and diary-file (file-exists-p diary-file))
> (if (file-readable-p diary-file)
> diary-file
> - (error "Diary file ‘%s’ is not readable" diary-file))
> - (error "Diary file ‘%s’ does not exist" diary-file)))
> + (error "Diary file `%s' is not readable" diary-file))
> + (error "Diary file `%s' does not exist" diary-file)))
>
> ;;;###autoload
> (defun diary (&optional arg)
> @@ -1199,7 +1199,7 @@ ensure that all relevant variables are set.
> "
> (interactive "P")
> (if (string-equal diary-mail-addr "")
> - (user-error "You must set ‘diary-mail-addr’ to use this command")
> + (user-error "You must set `diary-mail-addr' to use this command")
> (let ((diary-display-function 'diary-fancy-display))
> (diary-list-entries (calendar-current-date) (or ndays diary-mail-days)))
> (compose-mail diary-mail-addr
> @@ -1531,7 +1531,7 @@ passed to `calendar-mark-visible-date' as MARK."
> (calendar-mark-month m y month day year color)
> (calendar-increment-month m y 1)))))
>
> -;; Bahai, Hebrew, Islamic.
> +;; Bahá’í, Hebrew, Islamic.
> (defun calendar-mark-complex (month day year fromabs &optional color)
> "Mark dates in the calendar conforming to MONTH DAY YEAR of some system.
> The function FROMABS converts absolute dates to the appropriate date system.
> @@ -1561,7 +1561,7 @@ Optional argument COLOR is passed to `calendar-mark-visible-date' as MARK."
> (calendar-mark-visible-date
> (calendar-gregorian-from-absolute date) color)))))
>
> -;; Bahai, Islamic.
> +;; Bahá’í, Islamic.
> (defun calendar-mark-1 (month day year fromabs toabs &optional color)
> "Mark dates in the calendar conforming to MONTH DAY YEAR of some system.
> The function FROMABS converts absolute dates to the appropriate date system.
> @@ -1659,8 +1659,8 @@ on a weekend:
> &%%(let ((dayname (calendar-day-of-week date))
> (day (calendar-extract-day date)))
> (or
> - (and (= day 21) (memq dayname '(1 2 3 4 5)))
> - (and (memq day '(19 20)) (= dayname 5)))
> + (and (= day 21) (memq dayname \\='(1 2 3 4 5)))
> + (and (memq day \\='(19 20)) (= dayname 5)))
> ) UIUC pay checks deposited
>
> A number of built-in functions are available for this type of
> @@ -2529,7 +2529,7 @@ entry is found the user is asked to confirm its addition."
> #'diary-from-outlook-rmail)
> ((memq major-mode '(gnus-summary-mode gnus-article-mode))
> #'diary-from-outlook-gnus)
> - (t (error "Don't know how to snarf in ‘%s’" major-mode)))))
> + (t (error "Don't know how to snarf in `%s'" major-mode)))))
> (funcall func noconfirm)))
>
> (provide 'diary-lib)
> diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el
> index d282d74..bd3a558 100644
> --- a/lisp/calendar/holidays.el
> +++ b/lisp/calendar/holidays.el
> @@ -173,15 +173,15 @@ See the documentation for `calendar-holidays' for details."
> '((holiday-bahai-new-year)
> (holiday-bahai-ridvan) ; respects calendar-bahai-all-holidays-flag
> (holiday-fixed 5 23 "Declaration of the Báb")
> - (holiday-fixed 5 29 "Ascension of Bahá'u'lláh")
> + (holiday-fixed 5 29 "Ascension of Bahá’u’lláh")
> (holiday-fixed 7 9 "Martyrdom of the Báb")
> (holiday-fixed 10 20 "Birth of the Báb")
> - (holiday-fixed 11 12 "Birth of Bahá'u'lláh")
> + (holiday-fixed 11 12 "Birth of Bahá’u’lláh")
> (if calendar-bahai-all-holidays-flag
> (append
> (holiday-fixed 11 26 "Day of the Covenant")
> - (holiday-fixed 11 28 "Ascension of `Abdu'l-Bahá")))))
> - "Bahá'í holidays.
> + (holiday-fixed 11 28 "Ascension of `Abdu’l-Bahá")))))
> + "Bahá’í holidays.
> See the documentation for `calendar-holidays' for details."
> :type 'sexp
> :group 'holidays)
> @@ -254,7 +254,7 @@ Several basic functions are provided for this purpose:
> K>0, and MONTH's last day otherwise.
> (holiday-hebrew MONTH DAY STRING) a fixed date on the Hebrew calendar
> (holiday-islamic MONTH DAY STRING) a fixed date on the Islamic calendar
> - (holiday-bahai MONTH DAY STRING) a fixed date on the Bahá'í calendar
> + (holiday-bahai MONTH DAY STRING) a fixed date on the Bahá’í calendar
> (holiday-julian MONTH DAY STRING) a fixed date on the Julian calendar
> (holiday-sexp SEXP STRING) SEXP is a Gregorian-date-valued expression
> in the variable `year'; if it evaluates to
> @@ -282,11 +282,11 @@ To add the Islamic feast celebrating Mohammed's birthday, use
> (holiday-islamic 3 12 \"Mohammed's Birthday\")
>
> since the Islamic months are numbered from 1 starting with Muharram.
> -To add an entry for the Bahá'í festival of Ridvan, use
> +To add an entry for the Bahá’í festival of Ridvan, use
>
> (holiday-bahai 2 13 \"Festival of Ridvan\")
>
> -since the Bahá'í months are numbered from 1 starting with Bahá.
> +since the Bahá’í months are numbered from 1 starting with Bahá.
> To add Thomas Jefferson's birthday, April 2, 1743 (Julian), use
>
> (holiday-julian 4 2 \"Jefferson's Birthday\")
> @@ -296,7 +296,7 @@ example, to include American presidential elections, which occur on the first
> Tuesday after the first Monday in November of years divisible by 4, add
>
> (holiday-sexp
> - '(if (zerop (% year 4))
> + \\='(if (zerop (% year 4))
> (calendar-gregorian-from-absolute
> (1+ (calendar-dayname-on-or-before
> 1 (+ 6 (calendar-absolute-from-gregorian
> @@ -460,7 +460,7 @@ The optional LABEL is used to label the buffer created."
> (if holiday-islamic-holidays
> (cons "Islamic" holiday-islamic-holidays))
> (if holiday-bahai-holidays
> - (cons "Bahá'í" holiday-bahai-holidays))
> + (cons "Bahá’í" holiday-bahai-holidays))
> (if holiday-oriental-holidays
> (cons "Oriental" holiday-oriental-holidays))
> (if holiday-solar-holidays
> diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
> index b75e442..4b71530 100644
> --- a/lisp/calendar/icalendar.el
> +++ b/lisp/calendar/icalendar.el
> @@ -482,7 +482,7 @@ children."
> result))
>
> (defun icalendar--split-value (value-string)
> - "Split VALUE-STRING at ‘;=’."
> + "Split VALUE-STRING at `;='."
> (let ((result '())
> param-name param-value)
> (when value-string
> @@ -1118,7 +1118,7 @@ FExport diary data into iCalendar file: ")
> (setq found-error t)
> (save-current-buffer
> (set-buffer (get-buffer-create "*icalendar-errors*"))
> - (insert (format-message "Error in line %d -- %s: ‘%s’\n"
> + (insert (format-message "Error in line %d -- %s: `%s'\n"
> (count-lines (point-min) (point))
> error-val
> entry-main))))))
> @@ -1741,7 +1741,7 @@ entries. ENTRY-MAIN is the first line of the diary entry."
> (when day
> (progn
> (icalendar--dmsg "diary-float %s" entry-main)
> - (error "Don't know if or how to implement day in ‘diary-float’")))
> + (error "Don't know if or how to implement day in `diary-float'")))
>
> (cons (concat
> ;;Start today (yes this is an arbitrary choice):
> @@ -1788,7 +1788,7 @@ entries. ENTRY-MAIN is the first line of the diary entry."
> entry-main)
> (progn
> (icalendar--dmsg "diary-date %s" entry-main)
> - (error "‘diary-date’ is not supported yet"))
> + (error "`diary-date' is not supported yet"))
> ;; no match
> nil))
>
> @@ -2104,7 +2104,7 @@ written into the buffer `*icalendar-errors*'."
> (rrule (icalendar--get-event-property e 'RRULE))
> (rdate (icalendar--get-event-property e 'RDATE))
> (duration (icalendar--get-event-property e 'DURATION)))
> - (icalendar--dmsg "%s: ‘%s’" start-d summary)
> + (icalendar--dmsg "%s: `%s'" start-d summary)
> ;; check whether start-time is missing
> (if (and dtstart
> (string=
> @@ -2282,7 +2282,7 @@ END-T is the event's end time in diary format."
> interval))))
> )
> (t
> - (message "Cannot handle COUNT attribute for ‘%s’ events."
> + (message "Cannot handle COUNT attribute for `%s' events."
> frequency)))
> (setq until-conv (icalendar--datetime-to-diary-date until))
> (setq until-1-conv (icalendar--datetime-to-diary-date until-1))
> @@ -2473,7 +2473,7 @@ SUMMARY is not nil it must be a string that gives the summary of the
> entry. In this case the user will be asked whether he wants to insert
> the entry."
> (when (or (not summary)
> - (y-or-n-p (format-message "Add appointment for ‘%s’ to diary? "
> + (y-or-n-p (format-message "Add appointment for `%s' to diary? "
> summary)))
> (when summary
> (setq non-marking
> diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el
> index c13ef97..bb7e97e 100644
> --- a/lisp/calendar/time-date.el
> +++ b/lisp/calendar/time-date.el
> @@ -377,9 +377,9 @@ This function does not work for SECONDS greater than `most-positive-fixnum'."
> spec (match-string 1 string))
> (unless (string-equal spec "%")
> (or (setq match (assoc (downcase spec) units))
> - (error "Bad format specifier: ‘%s’" spec))
> + (error "Bad format specifier: `%s'" spec))
> (if (assoc (downcase spec) usedunits)
> - (error "Multiple instances of specifier: ‘%s’" spec))
> + (error "Multiple instances of specifier: `%s'" spec))
> (if (string-equal (car match) "z")
> (setq zeroflag t)
> (unless larger
> diff --git a/lisp/calendar/timeclock.el b/lisp/calendar/timeclock.el
> index 797f217..67fc4c5 100644
> --- a/lisp/calendar/timeclock.el
> +++ b/lisp/calendar/timeclock.el
> @@ -305,8 +305,8 @@ display (non-nil means on)."
> ;; on calling this function.
> (if display-time-mode
> (timeclock-update-mode-line)
> - (message "Activate ‘display-time-mode’ or turn off \
> -‘timeclock-use-display-time’ to see timeclock information"))
> + (message "Activate `display-time-mode' or turn off \
> +`timeclock-use-display-time' to see timeclock information"))
> (add-hook 'display-time-hook 'timeclock-update-mode-line))
> (setq timeclock-update-timer
> (run-at-time nil 60 'timeclock-update-mode-line))))
> @@ -575,7 +575,7 @@ relative only to the time worked today, and not to past time."
> OLD-DEFAULT hours are set for every day that has no number indicated."
> (interactive "P")
> (if old-default (setq old-default (prefix-numeric-value old-default))
> - (error "‘timelog-make-hours-explicit’ requires an explicit argument"))
> + (error "`timelog-make-hours-explicit' requires an explicit argument"))
> (let ((extant-timelog (find-buffer-visiting timeclock-file))
> current-date)
> (with-current-buffer (find-file-noselect timeclock-file t)
> @@ -589,7 +589,7 @@ OLD-DEFAULT hours are set for every day that has no number indicated."
> (unless (looking-at
> (concat "^\\([bhioO]\\) \\([0-9]+/[0-9]+/[0-9]+\\) "
> "\\([0-9]+:[0-9]+:[0-9]+\\)"))
> - (error "Can't parse ‘%s’" timeclock-file))
> + (error "Can't parse `%s'" timeclock-file))
> (let ((this-date (match-string 2)))
> (unless (or (and current-date
> (string= this-date current-date))
> @@ -919,7 +919,7 @@ following format:
> (DEBT ENTRIES-BY-DAY ENTRIES-BY-PROJECT)
>
> DEBT is a floating point number representing the number of seconds
> -“owed” before any work was done. For a new file (one without a ‘b’
> +“owed” before any work was done. For a new file (one without a `b'
> entry), this is always zero.
>
> The two entries lists have similar formats. They are both alists,
> diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
> index 83f2fed..a04bf82 100644
> --- a/lisp/calendar/todo-mode.el
> +++ b/lisp/calendar/todo-mode.el
> @@ -238,7 +238,7 @@ The final element is \"*\", indicating an unspecified month.")
> (widget-put
> widget :error
> (format-message
> - "Invalid value: must be distinct from ‘todo-item-mark’"))
> + "Invalid value: must be distinct from `todo-item-mark'"))
> widget)))
> :initialize 'custom-initialize-default
> :set 'todo-reset-prefix
> @@ -1343,12 +1343,13 @@ todo or done items."
> "deleting it will also delete the file.\n"
> "Do you want to proceed? ")))
> ((> archived 0)
> - (todo-y-or-n-p (concat "This category has archived items; "
> + (todo-y-or-n-p (format-message
> + (concat "This category has archived items; "
> "the archived category will remain\n"
> "after deleting the todo category. "
> "Do you still want to delete it\n"
> - "(see ‘todo-skip-archived-categories’ "
> - "for another option)? ")))
> + "(see `todo-skip-archived-categories' "
> + "for another option)? "))))
> (t
> (todo-y-or-n-p (concat "Permanently remove category \"" cat
> "\"" (and arg " and all its entries")
> @@ -1696,7 +1697,7 @@ only when no items are marked."
> (widget-put
> widget :error
> (format-message
> - "Invalid value: must be distinct from ‘todo-prefix’"))
> + "Invalid value: must be distinct from `todo-prefix'"))
> widget)))
> :set (lambda (symbol value)
> (custom-set-default symbol (propertize value 'face 'todo-mark)))
> @@ -5036,7 +5037,7 @@ but the categories sexp differs from the current value of
> ;; Warn user if categories sexp has changed.
> (unless (string= ssexp cats)
> (message (concat "The sexp at the beginning of the file differs "
> - "from the value of ‘todo-categories’.\n"
> + "from the value of `todo-categories'.\n"
> "If the sexp is wrong, you can fix it with "
> "M-x todo-repair-categories-sexp,\n"
> "but note this reverts any changes you have "
> @@ -5533,7 +5534,7 @@ already entered and those still available."
> (todo-insert-item--this-key)
> todo-insert-item--argsleft)))))))))
> (setq todo-insert-item--argsleft todo-insert-item--newargsleft))
> - (when prompt (message "Press a key (so far ‘%s’): %s"
> + (when prompt (message "Press a key (so far `%s'): %s"
> todo-insert-item--keys-so-far prompt))
> (set-transient-map map)
> (setq todo-insert-item--argsleft argsleft)))
> @@ -5576,7 +5577,8 @@ already entered and those still available."
> '(add/edit delete))
> " comment"))))
> params " "))
> - (this-key (let ((key (read-key (concat todo-edit-item--prompt p->k))))
> + (key-prompt (substitute-command-keys todo-edit-item--prompt))
> + (this-key (let ((key (read-key (concat key-prompt p->k))))
> (and (characterp key) (char-to-string key))))
> (this-param (car (rassoc this-key params))))
> (pcase this-param
> @@ -5587,7 +5589,7 @@ already entered and those still available."
> (`delete (todo-edit-item--text 'comment-delete))
> (`diary (todo-edit-item--diary-inclusion))
> (`nonmarking (todo-edit-item--diary-inclusion 'nonmarking))
> - (`date (let ((todo-edit-item--prompt "Press a key (so far ‘e d’): "))
> + (`date (let ((todo-edit-item--prompt "Press a key (so far `e d'): "))
> (todo-edit-item--next-key
> todo-edit-item--date-param-key-alist arg)))
> (`full (progn (todo-edit-item--header 'date)
> @@ -6602,7 +6604,7 @@ Added to `window-configuration-change-hook' in Todo mode."
> (if (called-interactively-p 'any)
> (message "%s"
> (substitute-command-keys
> - "Type ‘\\[todo-show]’ to enter Todo mode"))
> + "Type `\\[todo-show]' to enter Todo mode"))
> (todo-modes-set-1)
> (todo-modes-set-2)
> (todo-modes-set-3)
> diff --git a/lisp/cedet/cedet-global.el b/lisp/cedet/cedet-global.el
> index 9e31177..3773ba0 100644
> --- a/lisp/cedet/cedet-global.el
> +++ b/lisp/cedet/cedet-global.el
> @@ -36,7 +36,7 @@
>
> (defcustom cedet-global-gtags-command "gtags"
> "Command name for the GNU Global gtags executable.
> -GTAGS is used to create the tags table queried by the ‘global’ command."
> +GTAGS is used to create the tags table queried by the `global' command."
> :type 'string
> :group 'cedet)
>
> diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el
> index 7d99b17..27d7abe 100644
> --- a/lisp/cedet/ede.el
> +++ b/lisp/cedet/ede.el
> @@ -764,7 +764,7 @@ Optional argument NAME is the name to give this project."
> (if cs
> (error "No valid interactive sub project types for %s"
> cs)
> - (error "EDE error: Can't fin project types to create")))
> + (error "EDE error: Can't find project types to create")))
> r)
> )
> nil t)))
> diff --git a/lisp/cedet/ede/auto.el b/lisp/cedet/ede/auto.el
> index 51459fa..b4fea42 100644
> --- a/lisp/cedet/ede/auto.el
> +++ b/lisp/cedet/ede/auto.el
> @@ -239,9 +239,9 @@ type is required and the load function used.")
> "Add PROJAUTO, an EDE autoload definition to `ede-project-class-files'.
> Optional argument FLAG indicates how this autoload should be
> added. Possible values are:
> - 'generic - A generic project type. Keep this at the very end.
> - 'unique - A unique project type for a specific project. Keep at the very
> - front of the list so more generic projects don't get priority."
> + `generic' - A generic project type. Keep this at the very end.
> + `unique' - A unique project type for a specific project. Keep at the very
> + 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 (oref projauto name)))
> diff --git a/lisp/cedet/ede/pmake.el b/lisp/cedet/ede/pmake.el
> index 1318fde..b494e27 100644
> --- a/lisp/cedet/ede/pmake.el
> +++ b/lisp/cedet/ede/pmake.el
> @@ -599,7 +599,7 @@ Argument THIS is the target that should insert stuff."
> "It needs to be regenerated by EDE.\n"
> "\t@echo If you have not modified Project.ede, you can"
> (format-message
> - " use ‘touch’ to update the Makefile time stamp.\n")
> + " use `touch' to update the Makefile time stamp.\n")
> "\t@false\n\n"
> "\n\n# End of Makefile\n")))
>
> diff --git a/lisp/cedet/inversion.el b/lisp/cedet/inversion.el
> index 8409b73..9d07b67 100644
> --- a/lisp/cedet/inversion.el
> +++ b/lisp/cedet/inversion.el
> @@ -230,8 +230,8 @@ string. INCOMPATIBLE-VERSION can be nil.
> RESERVED arguments are kept for a later use.
> Return:
> - nil if everything is ok.
> -- 'outdated if VERSION is less than MINIMUM.
> -- 'incompatible if VERSION is not backward compatible with MINIMUM.
> +- `outdated' if VERSION is less than MINIMUM.
> +- `incompatible' if VERSION is not backward compatible with MINIMUM.
> - t if the check failed."
> (let ((code (if (stringp version)
> (inversion-decode-version version)
> diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el
> index 72512c6..64c1f08 100644
> --- a/lisp/cedet/mode-local.el
> +++ b/lisp/cedet/mode-local.el
> @@ -50,7 +50,7 @@
>
> (require 'find-func)
> ;; For find-function-regexp-alist. It is tempting to replace this
> -;; ‘require‘ by (defvar find-function-regexp-alist) and
> +;; ‘require’ by (defvar find-function-regexp-alist) and
> ;; with-eval-after-load, but model-local.el is typically loaded when a
> ;; semantic autoload is invoked, and something in semantic loads
> ;; find-func.el before mode-local.el, so the eval-after-load is lost.
> @@ -658,7 +658,7 @@ SYMBOL is a function that can be overridden."
> (override (fetch-overload symbol)))
>
> (when override
> - (insert (format-message "\noverride in mode ‘%s’: ’%s’\n"
> + (insert (format-message "\noverride in mode `%s': `%s'\n"
> major-mode override))
> )))
> )))
> @@ -760,9 +760,9 @@ META-NAME is a cons (OVERLOADABLE-SYMBOL . MAJOR-MODE)."
> (defun mode-local-print-binding (symbol)
> "Print the SYMBOL binding."
> (let ((value (symbol-value symbol)))
> - (princ (format-message "\n ‘%s’ value is\n " symbol))
> + (princ (format-message "\n `%s' value is\n " symbol))
> (if (and value (symbolp value))
> - (princ (format-message "‘%s’" value))
> + (princ (format-message "`%s'" value))
> (let ((pt (point)))
> (pp value)
> (save-excursion
> @@ -820,7 +820,7 @@ META-NAME is a cons (OVERLOADABLE-SYMBOL . MAJOR-MODE)."
> )
> ((symbolp buffer-or-mode)
> (setq mode buffer-or-mode)
> - (princ (format-message "‘%s’\n" buffer-or-mode))
> + (princ (format-message "`%s'\n" buffer-or-mode))
> )
> ((signal 'wrong-type-argument
> (list 'buffer-or-mode buffer-or-mode))))
> @@ -830,7 +830,7 @@ META-NAME is a cons (OVERLOADABLE-SYMBOL . MAJOR-MODE)."
> (while mode
> (setq table (get mode 'mode-local-symbol-table))
> (when table
> - (princ (format-message "\n- From ‘%s’\n" mode))
> + (princ (format-message "\n- From `%s'\n" mode))
> (mode-local-print-bindings table))
> (setq mode (get-mode-local-parent mode)))))
>
> diff --git a/lisp/cedet/semantic/analyze.el b/lisp/cedet/semantic/analyze.el
> index 7ff6977..fe888f5 100644
> --- a/lisp/cedet/semantic/analyze.el
> +++ b/lisp/cedet/semantic/analyze.el
> @@ -251,7 +251,7 @@ are found in SEQUENCE.
> Optional argument THROWSYM specifies a symbol the throw on non-recoverable error.
> Remaining arguments FLAGS are additional flags to apply when searching.
> This function knows of flags:
> - 'mustbeclassvariable"
> + `mustbeclassvariable'"
> (let ((s sequence) ; copy of the sequence
> (tmp nil) ; tmp find variable
> (tag nil) ; tag return list
> @@ -263,7 +263,7 @@ This function knows of flags:
> )
> ;; First order check. Is this wholly contained in the typecache?
> (setq tmp (semanticdb-typecache-find sequence))
> -
> +
> (when tmp
> (if (or (not tagclass) (semantic-tag-of-class-p tmp tagclass))
> ;; We are effectively done...
> @@ -709,7 +709,7 @@ Returns nil if no alias was found."
> (when (eq (semantic-tag-get-attribute (car taglist) :kind) 'alias)
> (let ((tagname
> (semantic-analyze-split-name
> - (semantic-tag-name
> + (semantic-tag-name
> (car (semantic-tag-get-attribute (car taglist) :members))))))
> (append (if (listp tagname)
> tagname
> diff --git a/lisp/cedet/semantic/analyze/complete.el b/lisp/cedet/semantic/analyze/complete.el
> index c47b573..680a0ae 100644
> --- a/lisp/cedet/semantic/analyze/complete.el
> +++ b/lisp/cedet/semantic/analyze/complete.el
> @@ -112,9 +112,9 @@ in a buffer."
> Argument CONTEXT is an object specifying the locally derived context.
> The optional argument FLAGS changes which return options are returned.
> FLAGS can be any number of:
> - 'no-tc - do not apply data-type constraint.
> - 'no-longprefix - ignore long multi-symbol prefixes.
> - 'no-unique - do not apply unique by name filtering."
> + `no-tc' - do not apply data-type constraint.
> + `no-longprefix' - ignore long multi-symbol prefixes.
> + `no-unique' - do not apply unique by name filtering."
> (let* ((a context)
> (desired-type (semantic-analyze-type-constraint a))
> (desired-class (oref a prefixclass))
> diff --git a/lisp/cedet/semantic/bovine/gcc.el b/lisp/cedet/semantic/bovine/gcc.el
> index fe7a144..1d3f773 100644
> --- a/lisp/cedet/semantic/bovine/gcc.el
> +++ b/lisp/cedet/semantic/bovine/gcc.el
> @@ -137,9 +137,9 @@ to give to the program."
> "The GCC setup data.
> This is setup by `semantic-gcc-setup'.
> This is an alist, and should include keys of:
> - 'version - the version of gcc
> - '--host - the host symbol (used in include directories)
> - '--prefix - where GCC was installed.
> + `version' - the version of gcc
> + `--host' - the host symbol (used in include directories)
> + `--prefix' - where GCC was installed.
> It should also include other symbols GCC was compiled with.")
>
> ;;;###autoload
> diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el
> index 9c32388..d32b2c4 100644
> --- a/lisp/cedet/semantic/complete.el
> +++ b/lisp/cedet/semantic/complete.el
> @@ -1665,7 +1665,7 @@ Display mechanism using tooltip for a list of possible completions.")
> (when (>= (oref obj typing-count) 5)
> (oset obj mode 'standard)
> (setq mode 'standard)
> - (message "Resetting inline-mode to ‘standard’."))
> + (message "Resetting inline-mode to `standard'."))
> (when (and (> numcompl max-tags)
> (< (oref obj typing-count) 2))
> ;; Discretely hint at completion availability.
> @@ -1684,7 +1684,7 @@ Display mechanism using tooltip for a list of possible completions.")
> (setq msg-tail (concat "\n[<TAB> " (number-to-string (- numcompl max-tags)) " more]"))
> (setq msg-tail (concat "\n[<n/a> " (number-to-string (- numcompl max-tags)) " more]"))
> (when (>= (oref obj typing-count) 2)
> - (message "Refine search to display results beyond the ‘%s’ limit"
> + (message "Refine search to display results beyond the `%s' limit"
> (symbol-name 'semantic-complete-inline-max-tags-extended)))))
> ((= numcompl 1)
> ;; two possible cases
> diff --git a/lisp/cedet/semantic/db-find.el b/lisp/cedet/semantic/db-find.el
> index ff3431a..293f535 100644
> --- a/lisp/cedet/semantic/db-find.el
> +++ b/lisp/cedet/semantic/db-find.el
> @@ -297,7 +297,7 @@ refreshed when things change. See `semanticdb-ref-test'.
> Note for overloading: If you opt to overload this function for your
> major mode, and your routine takes a long time, be sure to call
>
> - (semantic-throw-on-input 'your-symbol-here)
> + (semantic-throw-on-input \\='your-symbol-here)
>
> so that it can be called from the idle work handler."
> )
> diff --git a/lisp/cedet/semantic/decorate/include.el b/lisp/cedet/semantic/decorate/include.el
> index 962dc49..1974e0a 100644
> --- a/lisp/cedet/semantic/decorate/include.el
> +++ b/lisp/cedet/semantic/decorate/include.el
> @@ -540,7 +540,7 @@ For C/C++ includes located within a project, you can use a special
> EDE project that will wrap an existing build system. You can do that
> like this in your .emacs file:
>
> - (ede-cpp-root-project \"NAME\" :file \"FILENAME\" :locate-fcn 'MYFCN)
> + (ede-cpp-root-project \"NAME\" :file \"FILENAME\" :locate-fcn \\='MYFCN)
>
> See the CEDET manual, the EDE manual, or the commentary in
> ede/cpp-root.el for more.
> diff --git a/lisp/cedet/semantic/fw.el b/lisp/cedet/semantic/fw.el
> index 0e81b2c..d8ba6f2 100644
> --- a/lisp/cedet/semantic/fw.el
> +++ b/lisp/cedet/semantic/fw.el
> @@ -173,10 +173,10 @@ recover the cached data with `semantic-get-cache-data'.
> LIFESPAN indicates how long the data cache will be remembered.
> The default LIFESPAN is 'end-of-command.
> Possible Lifespans are:
> - 'end-of-command - Remove the cache at the end of the currently
> - executing command.
> - 'exit-cache-zone - Remove when point leaves the overlay at the
> - end of the currently executing command."
> + `end-of-command' - Remove the cache at the end of the currently
> + executing command.
> + `exit-cache-zone' - Remove when point leaves the overlay at the
> + end of the currently executing command."
> ;; Check if LIFESPAN is valid before to create any overlay
> (or lifespan (setq lifespan 'end-of-command))
> (or (memq lifespan '(end-of-command exit-cache-zone))
> diff --git a/lisp/cedet/semantic/java.el b/lisp/cedet/semantic/java.el
> index fc02d03..829eafa 100644
> --- a/lisp/cedet/semantic/java.el
> +++ b/lisp/cedet/semantic/java.el
> @@ -369,7 +369,7 @@ That is @NAME."
>
> (defsubst semantic-java-doc-tag-name (tag)
> "Return name of the doc TAG symbol.
> -That is TAG `symbol-name' without the leading ‘@’."
> +That is TAG `symbol-name' without the leading `@'."
> (substring (symbol-name tag) 1))
>
> (defun semantic-java-doc-keyword-before-p (k1 k2)
> diff --git a/lisp/cedet/semantic/tag-ls.el b/lisp/cedet/semantic/tag-ls.el
> index 40eafd9..fe4440b 100644
> --- a/lisp/cedet/semantic/tag-ls.el
> +++ b/lisp/cedet/semantic/tag-ls.el
> @@ -271,11 +271,11 @@ search locally, then semanticdb for that tag (when enabled.)")
> (define-overloadable-function semantic-tag-protection (tag &optional parent)
> "Return protection information about TAG with optional PARENT.
> This function returns on of the following symbols:
> - nil - No special protection. Language dependent.
> - 'public - Anyone can access this TAG.
> - 'private - Only methods in the local scope can access TAG.
> - 'protected - Like private for outside scopes, like public for child
> - classes.
> + nil - No special protection. Language dependent.
> + `public' - Anyone can access this TAG.
> + `private' - Only methods in the local scope can access TAG.
> + `protected' - Like private for outside scopes, like public for child
> + classes.
> Some languages may choose to provide additional return symbols specific
> to themselves. Use of this function should allow for this.
>
> diff --git a/lisp/cedet/semantic/wisent/javascript.el b/lisp/cedet/semantic/wisent/javascript.el
> index b2a18fb..a676a8b 100644
> --- a/lisp/cedet/semantic/wisent/javascript.el
> +++ b/lisp/cedet/semantic/wisent/javascript.el
> @@ -73,11 +73,11 @@ This function overrides `get-local-variables'."
> (define-mode-local-override semantic-tag-protection javascript-mode (tag &optional parent)
> "Return protection information about TAG with optional PARENT.
> This function returns on of the following symbols:
> - nil - No special protection. Language dependent.
> - 'public - Anyone can access this TAG.
> - 'private - Only methods in the local scope can access TAG.
> - 'protected - Like private for outside scopes, like public for child
> - classes.
> + nil - No special protection. Language dependent.
> + `public' - Anyone can access this TAG.
> + `private' - Only methods in the local scope can access TAG.
> + `protected' - Like private for outside scopes, like public for child
> + classes.
> Some languages may choose to provide additional return symbols specific
> to themselves. Use of this function should allow for this.
>
> @@ -114,7 +114,7 @@ This is currently needed for the mozrepl omniscient database."
> (setq symlist (list (match-string 1 tmp)
> (substring tmp (1+ (match-end 1)) (length tmp))))
> (setq symlist (list tmp))))))))
> -
> +
> ;;; Setup Function
> ;;
> ;; Since javascript-mode is an alias for js-mode, let it inherit all
> diff --git a/lisp/cedet/srecode/insert.el b/lisp/cedet/srecode/insert.el
> index d1b0015..2ff3060 100644
> --- a/lisp/cedet/srecode/insert.el
> +++ b/lisp/cedet/srecode/insert.el
> @@ -45,9 +45,9 @@
> Only the ASK style inserter will query the user for a value.
> Dictionary value references that ask begin with the ? character.
> Possible values are:
> - 'ask - Prompt in the minibuffer as the value is inserted.
> - 'field - Use the dictionary macro name as the inserted value,
> - and place a field there. Matched fields change together.
> + `ask' - Prompt in the minibuffer as the value is inserted.
> + `field' - Use the dictionary macro name as the inserted value,
> + and place a field there. Matched fields change together.
>
> NOTE: The field feature does not yet work with XEmacs."
> :group 'srecode
> diff --git a/lisp/cedet/srecode/srt-mode.el b/lisp/cedet/srecode/srt-mode.el
> index 48f0555..7fc3541 100644
> --- a/lisp/cedet/srecode/srt-mode.el
> +++ b/lisp/cedet/srecode/srt-mode.el
> @@ -258,9 +258,9 @@ we can tell font lock about them.")
> (when (class-abstract-p C)
> (throw 'skip nil))
>
> - (princ (substitute-command-keys "‘"))
> + (princ (substitute-command-keys "`"))
> (princ name)
> - (princ (substitute-command-keys "’"))
> + (princ (substitute-command-keys "'"))
> (when (slot-exists-p C 'key)
> (when key
> (princ " - Character Key: ")
> diff --git a/lisp/comint.el b/lisp/comint.el
> index b840a22..ead2757 100644
> --- a/lisp/comint.el
> +++ b/lisp/comint.el
> @@ -2850,7 +2850,7 @@ then the filename reader will only accept a file that exists.
>
> A typical use:
> (interactive (comint-get-source \"Compile file: \" prev-lisp-dir/file
> - '(lisp-mode) t))"
> + \\='(lisp-mode) t))"
> (let* ((def (comint-source-default prev-dir/file source-modes))
> (stringfile (comint-extract-string))
> (sfile-p (and stringfile
> diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
> index 08c1acd..aa26ac3 100644
> --- a/lisp/cus-edit.el
> +++ b/lisp/cus-edit.el
> @@ -477,7 +477,7 @@
> (defun custom-split-regexp-maybe (regexp)
> "If REGEXP is a string, split it to a list at `\\|'.
> You can get the original back from the result with:
> - (mapconcat 'identity result \"\\|\")
> + (mapconcat \\='identity result \"\\|\")
>
> IF REGEXP is not a string, return it unchanged."
> (if (stringp regexp)
> diff --git a/lisp/cus-start.el b/lisp/cus-start.el
> index 7e25119..dc40ca9 100644
> --- a/lisp/cus-start.el
> +++ b/lisp/cus-start.el
> @@ -626,7 +626,7 @@ since it could result in memory overflow and make Emacs crash."
> (if (not (boundp symbol))
> ;; If variables are removed from C code, give an error here!
> (and native-p
> - (message "Note, built-in variable ‘%S’ not bound" symbol))
> + (message "Note, built-in variable `%S' not bound" symbol))
> ;; Save the standard value, unless we already did.
> (or (get symbol 'standard-value)
> (put symbol 'standard-value (list standard)))
> diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el
> index 7693c70..3ec0811 100644
> --- a/lisp/cus-theme.el
> +++ b/lisp/cus-theme.el
> @@ -492,10 +492,10 @@ It includes all faces in list FACES."
> '("" "c")))
> doc)
> (when fn
> - (princ (substitute-command-keys " in ‘"))
> + (princ (substitute-command-keys " in `"))
> (help-insert-xref-button (file-name-nondirectory fn)
> 'help-theme-def fn)
> - (princ (substitute-command-keys "’")))
> + (princ (substitute-command-keys "'")))
> (princ ".\n")
> (if (custom-theme-p theme)
> (progn
> diff --git a/lisp/custom.el b/lisp/custom.el
> index f2b5d52..ea5ab7a 100644
> --- a/lisp/custom.el
> +++ b/lisp/custom.el
> @@ -548,13 +548,13 @@ VALUE should be a list of symbols. For each symbol in that list,
> this specifies that SYMBOL should be set after the specified symbol,
> if both appear in constructs like `custom-set-variables'."
> (unless (listp value)
> - (error "Invalid custom dependency ‘%s’" value))
> + (error "Invalid custom dependency `%s'" value))
> (let* ((deps (get symbol 'custom-dependencies))
> (new-deps deps))
> (while value
> (let ((dep (car value)))
> (unless (symbolp dep)
> - (error "Invalid custom dependency ‘%s’" dep))
> + (error "Invalid custom dependency `%s'" dep))
> (unless (memq dep new-deps)
> (setq new-deps (cons dep new-deps)))
> (setq value (cdr value))))
> @@ -830,7 +830,7 @@ to the front of this list.")
> (defsubst custom-check-theme (theme)
> "Check whether THEME is valid, and signal an error if it is not."
> (unless (custom-theme-p theme)
> - (error "Unknown theme ‘%s’" theme)))
> + (error "Unknown theme `%s'" theme)))
>
> (defun custom-push-theme (prop symbol theme mode &optional value)
> "Record VALUE for face or variable SYMBOL in custom theme THEME.
> @@ -1043,7 +1043,7 @@ list, in which A occurs before B if B was defined with a
> (when elt
> (cond
> ((eq (car elt) 'dependant)
> - (error "Circular custom dependency on ‘%s’" sym))
> + (error "Circular custom dependency on `%s'" sym))
> ((car elt)
> (setcar elt 'dependant)
> (dolist (dep (get sym 'custom-dependencies))
> @@ -1201,7 +1201,7 @@ Return t if THEME was successfully loaded, nil otherwise."
> (custom-available-themes))))
> nil nil))
> (unless (custom-theme-name-valid-p theme)
> - (error "Invalid theme name ‘%s’" theme))
> + (error "Invalid theme name `%s'" theme))
> ;; If THEME is already enabled, re-enable it after loading, even if
> ;; NO-ENABLE is t.
> (if no-enable
> @@ -1217,7 +1217,7 @@ Return t if THEME was successfully loaded, nil otherwise."
> '("" "c")))
> hash)
> (unless fn
> - (error "Unable to find theme file for ‘%s’" theme))
> + (error "Unable to find theme file for `%s'" theme))
> (with-temp-buffer
> (insert-file-contents fn)
> (setq hash (secure-hash 'sha256 (current-buffer)))
> diff --git a/lisp/descr-text.el b/lisp/descr-text.el
> index 237cc00..be69a0b 100644
> --- a/lisp/descr-text.el
> +++ b/lisp/descr-text.el
> @@ -161,7 +161,7 @@ otherwise."
> ;; Buttons
> (when (and button (not (widgetp wid-button)))
> (newline)
> - (insert (format-message "Here is a ‘%S’ button labeled ‘%s’.\n\n"
> + (insert (format-message "Here is a `%S' button labeled `%s'.\n\n"
> button-type button-label)))
> ;; Overlays
> (when overlays
> @@ -724,25 +724,17 @@ relevant to POS."
> (when disp-vector
> (insert
> "\nThe display table entry is displayed by ")
> - (if (display-graphic-p (selected-frame))
> - (progn
> - (insert "these fonts (glyph codes):\n")
> - (dotimes (i (length disp-vector))
> - (insert (glyph-char (car (aref disp-vector i))) ?:
> - (propertize " " 'display '(space :align-to 5))
> - (or (cdr (aref disp-vector i)) "-- no font --")
> - "\n")
> - (let ((face (glyph-face (car (aref disp-vector i)))))
> - (when face
> - (insert (propertize " " 'display '(space :align-to 5))
> - "face: ")
> - (insert (format-message "‘%s’\n" face))))))
> - (insert "these terminal codes:\n")
> - (dotimes (i (length disp-vector))
> - (insert (car (aref disp-vector i))
> - (propertize " " 'display '(space :align-to 5))
> - (or (cdr (aref disp-vector i)) "-- not encodable --")
> - "\n"))))
> + (insert "these fonts (glyph codes):\n")
> + (dotimes (i (length disp-vector))
> + (insert (glyph-char (car (aref disp-vector i))) ?:
> + (propertize " " 'display '(space :align-to 5))
> + (or (cdr (aref disp-vector i)) "-- no font --")
> + "\n")
> + (let ((face (glyph-face (car (aref disp-vector i)))))
> + (when face
> + (insert (propertize " " 'display '(space :align-to 5))
> + "face: ")
> + (insert (format-message "`%s'\n" face))))))
>
> (when composition
> (insert "\nComposed")
> diff --git a/lisp/dired-x.el b/lisp/dired-x.el
> index 4903b15..1b69091 100644
> --- a/lisp/dired-x.el
> +++ b/lisp/dired-x.el
> @@ -687,8 +687,8 @@ to put saved Dired buffers automatically into Virtual Dired mode.
>
> Also useful for `auto-mode-alist' like this:
>
> - (add-to-list 'auto-mode-alist
> - '(\"[^/]\\\\.dired\\\\'\" . dired-virtual-mode))"
> + (add-to-list \\='auto-mode-alist
> + \\='(\"[^/]\\\\.dired\\\\\\='\" . dired-virtual-mode))"
> (interactive)
> (dired-virtual (dired-virtual-guess-dir)))
>
> @@ -1354,11 +1354,11 @@ otherwise."
> (let ((file (dired-get-filename t)))
> (if dired-bind-vm
> (if (y-or-n-p (format-message
> - "Visit ‘%s’ as a mail folder with VM?" file))
> + "Visit `%s' as a mail folder with VM?" file))
> (dired-vm))
> ;; Read mail folder using rmail.
> (if (y-or-n-p (format-message
> - "Visit ‘%s’ as a mailbox with RMAIL?" file))
> + "Visit `%s' as a mailbox with RMAIL?" file))
> (dired-rmail)))))
>
>
> diff --git a/lisp/dired.el b/lisp/dired.el
> index 206de37..b78b632 100644
> --- a/lisp/dired.el
> +++ b/lisp/dired.el
> @@ -91,7 +91,7 @@ spaces. You might want to install ls from GNU Coreutils, which does
> support this option. Alternatively, you might want to use Emacs's
> own emulation of \"ls\", by using:
> (setq ls-lisp-use-insert-directory-program nil)
> - (require 'ls-lisp)
> + (require \\='ls-lisp)
> This is used by default on MS Windows, which does not have an \"ls\" program.
> Note that `ls-lisp' does not support as many options as GNU ls, though.
> For more details, see Info node `(emacs)ls in Lisp'."
> @@ -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)
> - (format-message "\tBuffer ‘%s’\n" (buffer-name obuf)))
> + (format-message "\tBuffer `%s'\n" (buffer-name obuf)))
> (goto-char (point-max))
> (insert "\f\n")))))))
>
> @@ -4399,7 +4399,7 @@ instead.
>
> ;;;***
>
> -;;;### (autoloads nil "dired-x" "dired-x.el" "c1a6289ba8504b605595321436a9c04d")
> +;;;### (autoloads nil "dired-x" "dired-x.el" "63be23901985afd2a9aadc64f2aacf37")
> ;;; Generated autoloads from dired-x.el
>
> (autoload 'dired-jump "dired-x" "\
> diff --git a/lisp/electric.el b/lisp/electric.el
> index bef5bb9..47cb020 100644
> --- a/lisp/electric.el
> +++ b/lisp/electric.el
> @@ -434,12 +434,12 @@ The variable `electric-layout-rules' says when and how to insert newlines."
> nil string))))
>
> (defun electric-quote-post-self-insert-function ()
> - "Function that ‘electric-quote-mode’ adds to ‘post-self-insert-hook’.
> + "Function that `electric-quote-mode' adds to `post-self-insert-hook'.
> This requotes when a quoting key is typed."
> (when (and electric-quote-mode
> (memq last-command-event '(?\' ?\`)))
> (let ((start
> - (if comment-start
> + (if (and comment-start comment-use-syntax)
> (when (or electric-quote-comment electric-quote-string)
> (let ((syntax (syntax-ppss)))
> (and (or (and electric-quote-comment (nth 4 syntax))
> @@ -486,11 +486,11 @@ enable the mode if ARG is omitted or nil.
> When enabled, as you type this replaces \\=` with \\=‘, \\=' with \\=’,
> \\=`\\=` with “, and \\='\\=' with ”. This occurs only in comments, strings,
> and text paragraphs, and these are selectively controlled with
> -‘electric-quote-comment’, ‘electric-quote-string’, and
> -‘electric-quote-paragraph’.
> +`electric-quote-comment', `electric-quote-string', and
> +`electric-quote-paragraph'.
>
> This is a global minor mode. To toggle the mode in a single buffer,
> -use ‘electric-quote-local-mode’."
> +use `electric-quote-local-mode'."
> :global t :group 'electricity
> :initialize 'custom-initialize-delay
> :init-value nil
> @@ -507,7 +507,7 @@ use ‘electric-quote-local-mode’."
>
> ;;;###autoload
> (define-minor-mode electric-quote-local-mode
> - "Toggle ‘electric-quote-mode’ only in this buffer."
> + "Toggle `electric-quote-mode' only in this buffer."
> :variable (buffer-local-value 'electric-quote-mode (current-buffer))
> (cond
> ((eq electric-quote-mode (default-value 'electric-quote-mode))
> diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el
> index bbff34d..62330fc 100644
> --- a/lisp/emacs-lisp/advice.el
> +++ b/lisp/emacs-lisp/advice.el
> @@ -1870,7 +1870,7 @@ function at point for which PREDICATE returns non-nil)."
> (if (equal function "")
> (if (ad-is-advised default)
> default
> - (error "ad-read-advised-function: ‘%s’ is not advised" default))
> + (error "ad-read-advised-function: `%s' is not advised" default))
> (intern function))))
>
> (defvar ad-advice-class-completion-table
> @@ -1887,7 +1887,7 @@ class of FUNCTION)."
> (cl-dolist (class ad-advice-classes)
> (if (ad-get-advice-info-field function class)
> (cl-return class)))
> - (error "ad-read-advice-class: ‘%s’ has no advices" function)))
> + (error "ad-read-advice-class: `%s' has no advices" function)))
> (let ((class (completing-read
> (format "%s (default %s): " (or prompt "Class") default)
> ad-advice-class-completion-table nil t)))
> @@ -1904,7 +1904,7 @@ An optional PROMPT is used to prompt for the name."
> (ad-get-advice-info-field function class)))
> (default
> (if (null name-completion-table)
> - (error "ad-read-advice-name: ‘%s’ has no %s advice"
> + (error "ad-read-advice-name: `%s' has no %s advice"
> function class)
> (car (car name-completion-table))))
> (prompt (format "%s (default %s): " (or prompt "Name") default))
> @@ -1995,9 +1995,9 @@ FUNCTION was not advised)."
> (interactive (ad-read-advice-specification "Enable advice of"))
> (if (ad-is-advised function)
> (if (eq (ad-enable-advice-internal function class name t) 0)
> - (error "ad-enable-advice: ‘%s’ has no %s advice matching ‘%s’"
> + (error "ad-enable-advice: `%s' has no %s advice matching `%s'"
> function class name))
> - (error "ad-enable-advice: ‘%s’ is not advised" function)))
> + (error "ad-enable-advice: `%s' is not advised" function)))
>
> ;;;###autoload
> (defun ad-disable-advice (function class name)
> @@ -2005,9 +2005,9 @@ FUNCTION was not advised)."
> (interactive (ad-read-advice-specification "Disable advice of"))
> (if (ad-is-advised function)
> (if (eq (ad-enable-advice-internal function class name nil) 0)
> - (error "ad-disable-advice: ‘%s’ has no %s advice matching ‘%s’"
> + (error "ad-disable-advice: `%s' has no %s advice matching `%s'"
> function class name))
> - (error "ad-disable-advice: ‘%s’ is not advised" function)))
> + (error "ad-disable-advice: `%s' is not advised" function)))
>
> (defun ad-enable-regexp-internal (regexp class flag)
> "Set enable FLAGs of all CLASS advices whose name contains a REGEXP match.
> @@ -2053,9 +2053,9 @@ in that CLASS."
> (ad-set-advice-info-field
> function class
> (delq advice-to-remove (ad-get-advice-info-field function class)))
> - (error "ad-remove-advice: ‘%s’ has no %s advice ‘%s’"
> + (error "ad-remove-advice: `%s' has no %s advice `%s'"
> function class name)))
> - (error "ad-remove-advice: ‘%s’ is not advised" function)))
> + (error "ad-remove-advice: `%s' is not advised" function)))
>
> ;;;###autoload
> (defun ad-add-advice (function advice class position)
> @@ -2319,7 +2319,7 @@ INDEX counts from zero."
> ,value-form))
> (argument-access
> `(setq ,argument-access ,value-form))
> - (t (error "ad-set-argument: No argument at position %d of ‘%s’"
> + (t (error "ad-set-argument: No argument at position %d of `%s'"
> index arglist)))))
>
> (defun ad-get-arguments (arglist index)
> @@ -2361,7 +2361,7 @@ The assignment starts at position INDEX."
> (setq index (1+ index))
> (setq values-index (1+ values-index)))
> (if (null set-forms)
> - (error "ad-set-arguments: No argument at position %d of ‘%s’"
> + (error "ad-set-arguments: No argument at position %d of `%s'"
> index arglist)
> (if (= (length set-forms) 1)
> ;; For exactly one set-form we can use values-form directly,...
> @@ -2412,14 +2412,14 @@ The assignment starts at position INDEX."
> ;; The mapping should work for any two argument lists.
>
> (defun ad-map-arglists (source-arglist target-arglist)
> - "Make ‘funcall/apply’ form to map SOURCE-ARGLIST to TARGET-ARGLIST.
> + "Make `funcall/apply' form to map SOURCE-ARGLIST to TARGET-ARGLIST.
> The arguments supplied to TARGET-ARGLIST will be taken from SOURCE-ARGLIST just
> as if they had been supplied to a function with TARGET-ARGLIST directly.
> Excess source arguments will be neglected, missing source arguments will be
> -supplied as nil. Returns a ‘funcall’ or ‘apply’ form with the second element
> -being ‘function’ which has to be replaced by an actual function argument.
> -Example: ‘(ad-map-arglists '(a &rest args) '(w x y z))’ will return
> - ‘(funcall ad--addoit-function a (car args) (car (cdr args)) (nth 2 args))’."
> +supplied as nil. Returns a `funcall' or `apply' form with the second element
> +being `function' which has to be replaced by an actual function argument.
> +Example: (ad-map-arglists '(a &rest args) '(w x y z)) will return
> + (funcall ad--addoit-function a (car args) (car (cdr args)) (nth 2 args))."
> (let* ((parsed-source-arglist (ad-parse-arglist source-arglist))
> (source-reqopt-args (append (nth 0 parsed-source-arglist)
> (nth 1 parsed-source-arglist)))
> @@ -2911,14 +2911,14 @@ the value of `ad-redefinition-action' and de/activate again."
> (if (not (eq current-definition original-definition))
> ;; We have a redefinition:
> (if (not (memq ad-redefinition-action '(accept discard warn)))
> - (error "ad-redefinition-action: ‘%s’ %s"
> + (error "ad-redefinition-action: `%s' %s"
> function "invalidly redefined")
> (if (eq ad-redefinition-action 'discard)
> nil ;; Just drop it!
> (funcall (or fsetfun #'fset) function newdef)
> (ad-activate-internal function)
> (if (eq ad-redefinition-action 'warn)
> - (message "ad-handle-definition: ‘%s’ got redefined"
> + (message "ad-handle-definition: `%s' got redefined"
> function))))
> ;; either advised def or correct original is in place:
> nil)
> @@ -2953,7 +2953,7 @@ definition will always be cached for later usage."
> current-prefix-arg))
> (cond
> ((not (ad-is-advised function))
> - (error "ad-activate: ‘%s’ is not advised" function))
> + (error "ad-activate: `%s' is not advised" function))
> ;; Just return for forward advised and not yet defined functions:
> ((not (ad-get-orig-definition function)) nil)
> ((not (ad-has-any-advice function)) (ad-unadvise function))
> @@ -2977,10 +2977,10 @@ a call to `ad-activate'."
> (interactive
> (list (ad-read-advised-function "Deactivate advice of" 'ad-is-active)))
> (if (not (ad-is-advised function))
> - (error "ad-deactivate: ‘%s’ is not advised" function)
> + (error "ad-deactivate: `%s' is not advised" function)
> (cond ((ad-is-active function)
> (if (not (ad-get-orig-definition function))
> - (error "ad-deactivate: ‘%s’ has no original definition"
> + (error "ad-deactivate: `%s' has no original definition"
> function)
> (ad-clear-advicefunname-definition function)
> (ad-set-advice-info-field function 'active nil)
> diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
> index 716e1c6..c3c61d6 100644
> --- a/lisp/emacs-lisp/byte-opt.el
> +++ b/lisp/emacs-lisp/byte-opt.el
> @@ -255,11 +255,11 @@
> (cdr (assq name byte-compile-function-environment)))))
> (pcase fn
> (`nil
> - (byte-compile-warn "attempt to inline ‘%s’ before it was defined"
> + (byte-compile-warn "attempt to inline `%s' before it was defined"
> name)
> form)
> (`(autoload . ,_)
> - (error "File ‘%s’ didn't define ‘%s’" (nth 1 fn) name))
> + (error "File `%s' didn't define `%s'" (nth 1 fn) name))
> ((and (pred symbolp) (guard (not (eq fn t)))) ;A function alias.
> (byte-compile-inline-expand (cons fn (cdr form))))
> ((pred byte-code-function-p)
> @@ -336,7 +336,7 @@
> bindings)
> values nil))
> ((and (not optionalp) (null values))
> - (byte-compile-warn "attempt to open-code ‘%s’ with too few arguments" name)
> + (byte-compile-warn "attempt to open-code `%s' with too few arguments" name)
> (setq arglist nil values 'too-few))
> (t
> (setq bindings (cons (list (car arglist) (car values))
> @@ -347,7 +347,7 @@
> (progn
> (or (eq values 'too-few)
> (byte-compile-warn
> - "attempt to open-code ‘%s’ with too many arguments" name))
> + "attempt to open-code `%s' with too many arguments" name))
> form)
>
> ;; The following leads to infinite recursion when loading a
> @@ -383,7 +383,7 @@
> form))
> ((eq fn 'quote)
> (if (cdr (cdr form))
> - (byte-compile-warn "malformed quote form: ‘%s’"
> + (byte-compile-warn "malformed quote form: `%s'"
> (prin1-to-string form)))
> ;; map (quote nil) to nil to simplify optimizer logic.
> ;; map quoted constants to nil if for-effect (just because).
> @@ -407,7 +407,7 @@
> (if (symbolp binding)
> binding
> (if (cdr (cdr binding))
> - (byte-compile-warn "malformed let binding: ‘%s’"
> + (byte-compile-warn "malformed let binding: `%s'"
> (prin1-to-string binding)))
> (list (car binding)
> (byte-optimize-form (nth 1 binding) nil))))
> @@ -420,7 +420,7 @@
> (cons
> (byte-optimize-form (car clause) nil)
> (byte-optimize-body (cdr clause) for-effect))
> - (byte-compile-warn "malformed cond form: ‘%s’"
> + (byte-compile-warn "malformed cond form: `%s'"
> (prin1-to-string clause))
> clause))
> (cdr form))))
> @@ -457,7 +457,7 @@
>
> ((eq fn 'if)
> (when (< (length form) 3)
> - (byte-compile-warn "too few arguments for ‘if’"))
> + (byte-compile-warn "too few arguments for `if'"))
> (cons fn
> (cons (byte-optimize-form (nth 1 form) nil)
> (cons
> @@ -485,7 +485,7 @@
> (cons fn (mapcar 'byte-optimize-form (cdr form)))))
>
> ((eq fn 'interactive)
> - (byte-compile-warn "misplaced interactive spec: ‘%s’"
> + (byte-compile-warn "misplaced interactive spec: `%s'"
> (prin1-to-string form))
> nil)
>
> @@ -539,7 +539,7 @@
> (cons fn (mapcar #'byte-optimize-form (cdr form))))
>
> ((not (symbolp fn))
> - (byte-compile-warn "‘%s’ is a malformed function"
> + (byte-compile-warn "`%s' is a malformed function"
> (prin1-to-string fn))
> form)
>
> @@ -1054,7 +1054,7 @@
>
> (defun byte-optimize-while (form)
> (when (< (length form) 2)
> - (byte-compile-warn "too few arguments for ‘while’"))
> + (byte-compile-warn "too few arguments for `while'"))
> (if (nth 1 form)
> form))
>
> @@ -1090,7 +1090,7 @@
> (nconc (list 'funcall fn) butlast
> (mapcar (lambda (x) (list 'quote x)) (nth 1 last))))
> (byte-compile-warn
> - "last arg to apply can't be a literal atom: ‘%s’"
> + "last arg to apply can't be a literal atom: `%s'"
> (prin1-to-string last))
> nil))
> form)))
> diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el
> index 3c561db..73c2977 100644
> --- a/lisp/emacs-lisp/byte-run.el
> +++ b/lisp/emacs-lisp/byte-run.el
> @@ -267,7 +267,7 @@ The return value is undefined.
> (cdr body)
> body)))
> nil)
> - (t (message "Warning: Unknown defun property ‘%S’ in %S"
> + (t (message "Warning: Unknown defun property `%S' in %S"
> (car x) name)))))
> decls))
> (def (list 'defalias
> @@ -317,7 +317,7 @@ The return value is undefined.
> (declare (debug defun) (doc-string 3))
> (or (memq (get name 'byte-optimizer)
> '(nil byte-compile-inline-expand))
> - (error "‘%s’ is a primitive" name))
> + (error "`%s' is a primitive" name))
> `(prog1
> (defun ,name ,arglist ,@body)
> (eval-and-compile
> diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
> index 7182c0b..279ffa3 100644
> --- a/lisp/emacs-lisp/bytecomp.el
> +++ b/lisp/emacs-lisp/bytecomp.el
> @@ -814,7 +814,7 @@ CONST2 may be evaluated multiple times."
> off (cdr lap-entry))
> (cond
> ((not (symbolp op))
> - (error "Non-symbolic opcode ‘%s’" op))
> + (error "Non-symbolic opcode `%s'" op))
> ((eq op 'TAG)
> (setcar off pc))
> (t
> @@ -1120,7 +1120,7 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
> pt)
> (when dir
> (unless was-same
> - (insert (format-message "Leaving directory ‘%s’\n"
> + (insert (format-message "Leaving directory `%s'\n"
> default-directory))))
> (unless (bolp)
> (insert "\n"))
> @@ -1136,7 +1136,7 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
> (when dir
> (setq default-directory dir)
> (unless was-same
> - (insert (format-message "Entering directory ‘%s’\n"
> + (insert (format-message "Entering directory `%s'\n"
> default-directory))))
> (setq byte-compile-last-logged-file byte-compile-current-file
> byte-compile-last-warned-form nil)
> @@ -1339,7 +1339,7 @@ extra args."
> (nargs (- (length form) 2)))
> (unless (= nargs nfields)
> (byte-compile-warn
> - "‘%s’ called with %d args to fill %d format field(s)" (car form)
> + "`%s' called with %d args to fill %d format field(s)" (car form)
> nargs nfields)))))
>
> (dolist (elt '(format message error))
> @@ -1359,7 +1359,7 @@ extra args."
> (plist-get keyword-args :group)
> (not (and (consp name) (eq (car name) 'quote)))
> (byte-compile-warn
> - "%s for ‘%s’ fails to specify containing group"
> + "%s for `%s' fails to specify containing group"
> (cdr (assq (car form)
> '((custom-declare-group . defgroup)
> (custom-declare-face . defface)
> @@ -1378,7 +1378,7 @@ extra args."
> (let ((calls (assq name byte-compile-unresolved-functions))
> nums sig min max)
> (when (and calls macrop)
> - (byte-compile-warn "macro ‘%s’ defined too late" name))
> + (byte-compile-warn "macro `%s' defined too late" name))
> (setq byte-compile-unresolved-functions
> (delq calls byte-compile-unresolved-functions))
> (setq calls (delq t calls)) ;Ignore higher-order uses of the function.
> @@ -1386,7 +1386,7 @@ extra args."
> (when (and (symbolp name)
> (eq (function-get name 'byte-optimizer)
> 'byte-compile-inline-expand))
> - (byte-compile-warn "defsubst ‘%s’ was used before it was defined"
> + (byte-compile-warn "defsubst `%s' was used before it was defined"
> name))
> (setq sig (byte-compile-arglist-signature arglist)
> nums (sort (copy-sequence (cdr calls)) (function <))
> @@ -1465,7 +1465,7 @@ extra args."
> ;; so don't warn about them.
> macroexpand
> cl--compiling-file))))
> - (byte-compile-warn "function ‘%s’ from cl package called at runtime"
> + (byte-compile-warn "function `%s' from cl package called at runtime"
> func)))
> form)
>
> @@ -1507,12 +1507,12 @@ extra args."
> (if (fboundp f) (push f noruntime) (push f unresolved)))
> ;; Complain about the no-run-time functions
> (byte-compile-print-syms
> - "the function ‘%s’ might not be defined at runtime."
> + "the function `%s' might not be defined at runtime."
> "the following functions might not be defined at runtime:"
> noruntime)
> ;; Complain about the unresolved functions
> (byte-compile-print-syms
> - "the function ‘%s’ is not known to be defined."
> + "the function `%s' is not known to be defined."
> "the following functions are not known to be defined:"
> unresolved)))
> nil)
> @@ -1818,7 +1818,7 @@ The value is non-nil if there were no errors, nil if errors."
> ;; (byte-compile-abbreviate-file filename)
> ;; (with-current-buffer input-buffer no-byte-compile))
> (when (file-exists-p target-file)
> - (message "%s deleted because of ‘no-byte-compile: %s’"
> + (message "%s deleted because of `no-byte-compile: %s'"
> (byte-compile-abbreviate-file target-file)
> (buffer-local-value 'no-byte-compile input-buffer))
> (condition-case nil (delete-file target-file) (error nil)))
> @@ -2301,12 +2301,12 @@ list that represents a doc string reference.
> (when (and (symbolp sym)
> (not (string-match "[-*/:$]" (symbol-name sym)))
> (byte-compile-warning-enabled-p 'lexical))
> - (byte-compile-warn "global/dynamic var ‘%s’ lacks a prefix"
> + (byte-compile-warn "global/dynamic var `%s' lacks a prefix"
> sym))
> (when (memq sym byte-compile-lexical-variables)
> (setq byte-compile-lexical-variables
> (delq sym byte-compile-lexical-variables))
> - (byte-compile-warn "Variable ‘%S’ declared after its first use" sym))
> + (byte-compile-warn "Variable `%S' declared after its first use" sym))
> (push sym byte-compile-bound-variables))
>
> (defun byte-compile-file-form-defvar (form)
> @@ -2423,7 +2423,7 @@ not to take responsibility for the actual compilation of the code."
> ;; Don't warn when compiling the stubs in byte-run...
> (not (assq name byte-compile-initial-macro-environment)))
> (byte-compile-warn
> - "‘%s’ defined multiple times, as both function and macro"
> + "`%s' defined multiple times, as both function and macro"
> name))
> (setcdr that-one nil))
> (this-one
> @@ -2431,13 +2431,13 @@ not to take responsibility for the actual compilation of the code."
> ;; Hack: Don't warn when compiling the magic internal
> ;; byte-compiler macros in byte-run.el...
> (not (assq name byte-compile-initial-macro-environment)))
> - (byte-compile-warn "%s ‘%s’ defined multiple times in this file"
> + (byte-compile-warn "%s `%s' defined multiple times in this file"
> (if macro "macro" "function")
> name)))
> ((eq (car-safe (symbol-function name))
> (if macro 'lambda 'macro))
> (when (byte-compile-warning-enabled-p 'redefine)
> - (byte-compile-warn "%s ‘%s’ being redefined as a %s"
> + (byte-compile-warn "%s `%s' being redefined as a %s"
> (if macro "function" "macro")
> name
> (if macro "macro" "function")))
> @@ -2454,7 +2454,7 @@ not to take responsibility for the actual compilation of the code."
> (stringp (car-safe (cdr-safe (cdr-safe body)))))
> ;; FIXME: We've done that already just above, so this looks wrong!
> ;;(byte-compile-set-symbol-position name)
> - (byte-compile-warn "probable ‘\"’ without ‘\\’ in doc string of %s"
> + (byte-compile-warn "probable `\"' without `\\' in doc string of %s"
> name))
>
> (if (not (listp body))
> @@ -2585,7 +2585,9 @@ If FORM is a lambda or a macro, byte-compile it as a function."
> (if (symbolp form) form "provided"))
> fun)
> (t
> - (when (symbolp form)
> + (when (or (symbolp form) (eq (car-safe fun) 'closure))
> + ;; `fun' is a function *value*, so try to recover its corresponding
> + ;; source code.
> (setq lexical-binding (eq (car fun) 'closure))
> (setq fun (byte-compile--reify-function fun)))
> ;; Expand macros.
> @@ -2980,13 +2982,13 @@ for symbols generated by the byte compiler itself."
> (`(',var . ,_)
> (when (assq var byte-compile-lexical-variables)
> (byte-compile-log-warning
> - (format-message "%s cannot use lexical var ‘%s’" fn var)
> + (format-message "%s cannot use lexical var `%s'" fn var)
> nil :error)))))
> (when (macroexp--const-symbol-p fn)
> - (byte-compile-warn "‘%s’ called as a function" fn))
> + (byte-compile-warn "`%s' called as a function" fn))
> (when (and (byte-compile-warning-enabled-p 'interactive-only)
> interactive-only)
> - (byte-compile-warn "‘%s’ is for interactive use only%s"
> + (byte-compile-warn "`%s' is for interactive use only%s"
> fn
> (cond ((stringp interactive-only)
> (format "; %s"
> @@ -2994,7 +2996,7 @@ for symbols generated by the byte compiler itself."
> interactive-only)))
> ((and (symbolp 'interactive-only)
> (not (eq interactive-only t)))
> - (format-message "; use ‘%s’ instead."
> + (format-message "; use `%s' instead."
> interactive-only))
> (t "."))))
> (if (eq (car-safe (symbol-function (car form))) 'macro)
> @@ -3039,7 +3041,7 @@ for symbols generated by the byte compiler itself."
> (byte-compile-warning-enabled-p 'mapcar))
> (byte-compile-set-symbol-position 'mapcar)
> (byte-compile-warn
> - "‘mapcar’ called for effect; use ‘mapc’ or ‘dolist’ instead"))
> + "`mapcar' called for effect; use `mapc' or `dolist' instead"))
> (byte-compile-push-constant (car form))
> (mapc 'byte-compile-form (cdr form)) ; wasteful, but faster.
> (byte-compile-out 'byte-call (length (cdr form))))
> @@ -3127,8 +3129,8 @@ for symbols generated by the byte compiler itself."
> (cond ((or (not (symbolp var)) (macroexp--const-symbol-p var))
> (when (byte-compile-warning-enabled-p 'constants)
> (byte-compile-warn (if (eq access-type 'let-bind)
> - "attempt to let-bind %s ‘%s’"
> - "variable reference to %s ‘%s’")
> + "attempt to let-bind %s `%s'"
> + "variable reference to %s `%s'")
> (if (symbolp var) "constant" "nonvariable")
> (prin1-to-string var))))
> ((let ((od (get var 'byte-obsolete-variable)))
> @@ -3166,7 +3168,7 @@ for symbols generated by the byte compiler itself."
> (boundp var)
> (memq var byte-compile-bound-variables)
> (memq var byte-compile-free-references))
> - (byte-compile-warn "reference to free variable ‘%S’" var)
> + (byte-compile-warn "reference to free variable `%S'" var)
> (push var byte-compile-free-references))
> (byte-compile-dynamic-variable-op 'byte-varref var))))
>
> @@ -3182,7 +3184,7 @@ for symbols generated by the byte compiler itself."
> (boundp var)
> (memq var byte-compile-bound-variables)
> (memq var byte-compile-free-assignments))
> - (byte-compile-warn "assignment to free variable ‘%s’" var)
> + (byte-compile-warn "assignment to free variable `%s'" var)
> (push var byte-compile-free-assignments))
> (byte-compile-dynamic-variable-op 'byte-varset var))))
>
> @@ -3363,7 +3365,7 @@ If it is nil, then the handler is \"byte-compile-SYMBOL.\""
>
> (defun byte-compile-subr-wrong-args (form n)
> (byte-compile-set-symbol-position (car form))
> - (byte-compile-warn "‘%s’ called with %d arg%s, but requires %s"
> + (byte-compile-warn "`%s' called with %d arg%s, but requires %s"
> (car form) (length (cdr form))
> (if (= 1 (length (cdr form))) "" "s") n)
> ;; Get run-time wrong-number-of-args error.
> @@ -3731,7 +3733,7 @@ discarding."
> (macroexp--const-symbol-p var t))
> (byte-compile-warning-enabled-p 'constants)
> (byte-compile-warn
> - "variable assignment to %s ‘%s’"
> + "variable assignment to %s `%s'"
> (if (symbolp var) "constant" "nonvariable")
> (prin1-to-string var)))
> (byte-compile-normal-call `(set-default ',var ,@(cdr form)))))))
> @@ -4105,7 +4107,7 @@ binding slots have been popped."
> (list 'not
> (cons (or (get (car form) 'byte-compile-negated-op)
> (error
> - "Compiler error: ‘%s’ has no ‘byte-compile-negated-op’ property"
> + "Compiler error: `%s' has no `byte-compile-negated-op' property"
> (car form)))
> (cdr form))))
>
> @@ -4168,7 +4170,7 @@ binding slots have been popped."
> (byte-compile-set-symbol-position 'condition-case)
> (unless (symbolp var)
> (byte-compile-warn
> - "‘%s’ is not a variable-name or nil (in condition-case)" var))
> + "`%s' is not a variable-name or nil (in condition-case)" var))
> (if fun-bodies (setq var (make-symbol "err")))
> (byte-compile-push-constant var)
> (if fun-bodies
> @@ -4187,7 +4189,7 @@ binding slots have been popped."
> (setq ok nil)))
> ok))))
> (byte-compile-warn
> - "‘%S’ is not a condition name or list of such (in condition-case)"
> + "`%S' is not a condition name or list of such (in condition-case)"
> condition))
> ;; (not (or (eq condition 't)
> ;; (and (stringp (get condition 'error-message))
> @@ -4220,7 +4222,7 @@ binding slots have been popped."
> (byte-compile-set-symbol-position 'condition-case)
> (unless (symbolp var)
> (byte-compile-warn
> - "‘%s’ is not a variable-name or nil (in condition-case)" var))
> + "`%s' is not a variable-name or nil (in condition-case)" var))
>
> (dolist (clause (reverse clauses))
> (let ((condition (nth 1 clause)))
> @@ -4228,7 +4230,7 @@ binding slots have been popped."
> (dolist (c condition)
> (unless (and c (symbolp c))
> (byte-compile-warn
> - "‘%S’ is not a condition name (in condition-case)" c))
> + "`%S' is not a condition name (in condition-case)" c))
> ;; In reality, the `error-conditions' property is only required
> ;; for the argument to `signal', not to `condition-case'.
> ;;(unless (consp (get c 'error-conditions))
> @@ -4270,7 +4272,7 @@ binding slots have been popped."
> (if (and (eq 'set-buffer (car-safe (car-safe (cdr form))))
> (byte-compile-warning-enabled-p 'suspicious))
> (byte-compile-warn
> - "Use ‘with-current-buffer’ rather than save-excursion+set-buffer"))
> + "Use `with-current-buffer' rather than save-excursion+set-buffer"))
> (byte-compile-out 'byte-save-excursion 0)
> (byte-compile-body-do-effect (cdr form))
> (byte-compile-out 'byte-unbind 1))
> @@ -4310,7 +4312,7 @@ binding slots have been popped."
> (when (and (symbolp (nth 1 form))
> (not (string-match "[-*/:$]" (symbol-name (nth 1 form))))
> (byte-compile-warning-enabled-p 'lexical))
> - (byte-compile-warn "global/dynamic var ‘%s’ lacks a prefix"
> + (byte-compile-warn "global/dynamic var `%s' lacks a prefix"
> (nth 1 form)))
> (let ((fun (nth 0 form))
> (var (nth 1 form))
> @@ -4321,7 +4323,7 @@ binding slots have been popped."
> (and (eq fun 'defconst) (null (cddr form))))
> (let ((ncall (length (cdr form))))
> (byte-compile-warn
> - "‘%s’ called with %d argument%s, but %s %s"
> + "`%s' called with %d argument%s, but %s %s"
> fun ncall
> (if (= 1 ncall) "" "s")
> (if (< ncall 2) "requires" "accepts only")
> @@ -4330,7 +4332,7 @@ binding slots have been popped."
> (if (eq fun 'defconst)
> (push var byte-compile-const-variables))
> (when (and string (not (stringp string)))
> - (byte-compile-warn "third arg to ‘%s %s’ is not a string: %s"
> + (byte-compile-warn "third arg to `%s %s' is not a string: %s"
> fun var string))
> (byte-compile-form-do-effect
> (if (cddr form) ; `value' provided
> @@ -4353,7 +4355,7 @@ binding slots have been popped."
> (not (fboundp (eval (nth 1 form))))
> (byte-compile-warn
> "The compiler ignores `autoload' except at top level. You should
> - probably put the autoload of the macro ‘%s’ at top-level."
> + probably put the autoload of the macro `%s' at top-level."
> (eval (nth 1 form))))
> (byte-compile-normal-call form))
>
> @@ -4361,7 +4363,7 @@ binding slots have been popped."
> ;; The ones that remain are errors.
> (defun byte-compile-lambda-form (_form)
> (byte-compile-set-symbol-position 'lambda)
> - (error "‘lambda’ used as function name is invalid"))
> + (error "`lambda' used as function name is invalid"))
>
> ;; Compile normally, but deal with warnings for the function being defined.
> (put 'defalias 'byte-hunk-handler 'byte-compile-file-form-defalias)
> @@ -4433,7 +4435,7 @@ binding slots have been popped."
> (if (and (eq (car-safe (car-safe (cdr-safe form))) 'quote)
> (byte-compile-warning-enabled-p 'make-local))
> (byte-compile-warn
> - "‘make-variable-buffer-local’ not called at toplevel"))
> + "`make-variable-buffer-local' not called at toplevel"))
> (byte-compile-normal-call form))
> (put 'make-variable-buffer-local
> 'byte-hunk-handler 'byte-compile-form-make-variable-buffer-local)
> @@ -4565,7 +4567,7 @@ invoked interactively."
> (length (nth 2 y))))))
> (`name
> (lambda (x y) (string< (car x) (car y))))
> - (_ (error "‘byte-compile-call-tree-sort’: ‘%s’ - unknown sort mode"
> + (_ (error "`byte-compile-call-tree-sort': `%s' - unknown sort mode"
> byte-compile-call-tree-sort))))))
> (message "Generating call tree...")
> (let ((rest byte-compile-call-tree)
> @@ -4678,7 +4680,7 @@ already up-to-date."
> ;; startup.el.
> (defvar command-line-args-left) ;Avoid 'free variable' warning
> (if (not noninteractive)
> - (error "‘batch-byte-compile’ is to be used only with -batch"))
> + (error "`batch-byte-compile' is to be used only with -batch"))
> (let ((error nil))
> (while command-line-args-left
> (if (file-directory-p (expand-file-name (car command-line-args-left)))
> diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el
> index a20e201..205ae6d 100644
> --- a/lisp/emacs-lisp/cconv.el
> +++ b/lisp/emacs-lisp/cconv.el
> @@ -300,7 +300,7 @@ places where they originally did not directly appear."
> (prog1 binder (setq binder (list binder)))
> (when (cddr binder)
> (byte-compile-log-warning
> - (format-message "Malformed ‘%S’ binding: %S"
> + (format-message "Malformed `%S' binding: %S"
> letsym binder)))
> (setq value (cadr binder))
> (car binder)))
> @@ -546,7 +546,7 @@ FORM is the parent form that binds this var."
> (`((,(and var (guard (eq ?_ (aref (symbol-name var) 0)))) . ,_)
> ,_ ,_ ,_ ,_)
> (byte-compile-log-warning
> - (format-message "%s ‘%S’ not left unused" varkind var))))
> + (format-message "%s `%S' not left unused" varkind var))))
> (pcase vardata
> (`((,var . ,_) nil ,_ ,_ nil)
> ;; FIXME: This gives warnings in the wrong order, with imprecise line
> @@ -558,7 +558,7 @@ FORM is the parent form that binds this var."
> (eq ?_ (aref (symbol-name var) 0))
> ;; As a special exception, ignore "ignore".
> (eq var 'ignored))
> - (byte-compile-log-warning (format-message "Unused lexical %s ‘%S’"
> + (byte-compile-log-warning (format-message "Unused lexical %s `%S'"
> varkind var))))
> ;; If it's unused, there's no point converting it into a cons-cell, even if
> ;; it's captured and mutated.
> diff --git a/lisp/emacs-lisp/chart.el b/lisp/emacs-lisp/chart.el
> index d972879..0660125 100644
> --- a/lisp/emacs-lisp/chart.el
> +++ b/lisp/emacs-lisp/chart.el
> @@ -652,7 +652,7 @@ SORT-PRED if desired."
> (set-buffer b)
> (erase-buffer)
> (insert "cd " d ";du -sk * \n")
> - (message "Running ‘cd %s;du -sk *’..." d)
> + (message "Running `cd %s;du -sk *'..." d)
> (call-process-region (point-min) (point-max) shell-file-name t
> (current-buffer) nil)
> (goto-char (point-min))
> diff --git a/lisp/emacs-lisp/check-declare.el b/lisp/emacs-lisp/check-declare.el
> index bdcb4ec..3b69e95 100644
> --- a/lisp/emacs-lisp/check-declare.el
> +++ b/lisp/emacs-lisp/check-declare.el
> @@ -106,7 +106,7 @@ don't know how to recognize (e.g. some macros)."
> (symbolp (setq fileonly (nth 4 form))))
> (setq alist (cons (list fnfile fn arglist fileonly) alist))
> ;; FIXME make this more noticeable.
> - (if form (message "Malformed declaration for ‘%s’" (cadr form))))))
> + (if form (message "Malformed declaration for `%s'" (cadr form))))))
> (message "%sdone" m)
> alist))
>
> @@ -279,7 +279,7 @@ TYPE is a string giving the nature of the error. Warning is displayed in
> entry))
> (warning-fill-prefix " "))
> (display-warning 'check-declare
> - (format-message "said ‘%s’ was defined in %s: %s"
> + (format-message "said `%s' was defined in %s: %s"
> fn (file-name-nondirectory fnfile) type)
> nil check-declare-warning-buffer)))
>
> @@ -318,7 +318,7 @@ Return a list of any errors found."
> See `check-declare-directory' for more information."
> (interactive "fFile to check: ")
> (or (file-exists-p file)
> - (error "File ‘%s’ not found" file))
> + (error "File `%s' not found" file))
> (let ((m (format "Checking %s..." file))
> errlist)
> (message "%s" m)
> @@ -332,8 +332,8 @@ See `check-declare-directory' for more information."
> Returns non-nil if any false statements are found."
> (interactive "DDirectory to check: ")
> (or (file-directory-p (setq root (expand-file-name root)))
> - (error "Directory ‘%s’ not found" root))
> - (let ((m "Checking ‘declare-function’ statements...")
> + (error "Directory `%s' not found" root))
> + (let ((m "Checking `declare-function' statements...")
> (m2 "Finding files with declarations...")
> errlist files)
> (message "%s" m)
> diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el
> index b2c8119..4a9e16a 100644
> --- a/lisp/emacs-lisp/checkdoc.el
> +++ b/lisp/emacs-lisp/checkdoc.el
> @@ -1419,7 +1419,7 @@ regexp short cuts work. FP is the function defun information."
> (when (re-search-forward "^(" e t)
> (if (checkdoc-autofix-ask-replace (match-beginning 0)
> (match-end 0)
> - "Escape this ‘(’? "
> + (format-message "Escape this `('? ")
> "\\(")
> nil
> (checkdoc-create-error
> @@ -1715,7 +1715,7 @@ function,command,variable,option or symbol." ms1))))))
> (if (checkdoc-autofix-ask-replace
> (match-beginning 1) (match-end 1)
> (format-message
> - "If this is the argument ‘%s’, it should appear as %s. Fix? "
> + "If this is the argument `%s', it should appear as %s. Fix? "
> (car args) (upcase (car args)))
> (upcase (car args)) t)
> (setq found (match-beginning 1))))))
> @@ -1741,7 +1741,7 @@ function,command,variable,option or symbol." ms1))))))
> nil)
> (checkdoc-create-error
> (format-message
> - "Argument ‘%s’ should appear (as %s) in the doc string"
> + "Argument `%s' should appear (as %s) in the doc string"
> (car args) (upcase (car args)))
> s (marker-position e)))
> (if (or (and order (eq order 'yes))
> @@ -1825,15 +1825,15 @@ Replace with \"%s\"? " original replace)
> (or (boundp found) (fboundp found)))
> (progn
> (setq msg (format-message
> - "Add quotes around Lisp symbol ‘%s’? " ms))
> + "Add quotes around Lisp symbol `%s'? " ms))
> (if (checkdoc-autofix-ask-replace
> (match-beginning 1) (+ (match-beginning 1)
> (length ms))
> - msg (concat "‘" ms "’") t)
> + msg (format-message "`%s'" ms) t)
> (setq msg nil)
> (setq msg
> (format-message
> - "Lisp symbol ‘%s’ should appear in quotes" ms))))))
> + "Lisp symbol `%s' should appear in quotes" ms))))))
> (if msg
> (checkdoc-create-error msg (match-beginning 1)
> (+ (match-beginning 1)
> @@ -1849,7 +1849,7 @@ Replace with \"%s\"? " original replace)
> (match-string 2) t)
> nil
> (checkdoc-create-error
> - "Symbols t and nil should not appear in ‘...’ quotes"
> + "Symbols t and nil should not appear in single quotes"
> (match-beginning 1) (match-end 1)))))
> ;; Here is some basic sentence formatting
> (checkdoc-sentencespace-region-engine (point) e)
> @@ -2487,22 +2487,24 @@ Argument TYPE specifies the type of question, such as `error' or `y-or-n-p'."
> ;; If we see a ?, then replace with "? ".
> (if (checkdoc-autofix-ask-replace
> (match-beginning 0) (match-end 0)
> - "‘y-or-n-p’ argument should end with \"? \". Fix? "
> + (format-message
> + "`y-or-n-p' argument should end with \"? \". Fix? ")
> "? " t)
> nil
> (checkdoc-create-error
> - "‘y-or-n-p’ argument should end with \"? \""
> + "`y-or-n-p' argument should end with \"? \""
> (match-beginning 0) (match-end 0)))
> (if (save-excursion (forward-sexp 1)
> (forward-char -2)
> (looking-at " "))
> (if (checkdoc-autofix-ask-replace
> (match-beginning 0) (match-end 0)
> - "‘y-or-n-p’ argument should end with \"? \". Fix? "
> + (format-message
> + "`y-or-n-p' argument should end with \"? \". Fix? ")
> "? " t)
> nil
> (checkdoc-create-error
> - "‘y-or-n-p’ argument should end with \"? \""
> + "`y-or-n-p' argument should end with \"? \""
> (match-beginning 0) (match-end 0)))
> (if (and ;; if this isn't true, we have a problem.
> (save-excursion (forward-sexp 1)
> @@ -2510,11 +2512,12 @@ Argument TYPE specifies the type of question, such as `error' or `y-or-n-p'."
> (looking-at "\""))
> (checkdoc-autofix-ask-replace
> (match-beginning 0) (match-end 0)
> - "‘y-or-n-p’ argument should end with \"? \". Fix? "
> + (format-message
> + "`y-or-n-p' argument should end with \"? \". Fix? ")
> "? \"" t))
> nil
> (checkdoc-create-error
> - "‘y-or-n-p’ argument should end with \"? \""
> + "`y-or-n-p' argument should end with \"? \""
> (match-beginning 0) (match-end 0)))))))
> ;; Now, let's just run the spell checker on this guy.
> (checkdoc-ispell-docstring-engine (save-excursion (forward-sexp 1)
> diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
> index 7a7712a..dddfca7 100644
> --- a/lisp/emacs-lisp/cl-extra.el
> +++ b/lisp/emacs-lisp/cl-extra.el
> @@ -415,7 +415,7 @@ as an integer unless JUNK-ALLOWED is non-nil."
> (cond ((and junk-allowed (null sum)) sum)
> (junk-allowed (* sign sum))
> ((or (/= start end) (null sum))
> - (error "Not an integer string: ‘%s’" string))
> + (error "Not an integer string: `%s'" string))
> (t (* sign sum)))))))
>
>
> @@ -774,16 +774,16 @@ including `cl-block' and `cl-eval-when'."
> ;; FIXME: Add a `cl-class-of' or `cl-typeof' or somesuch.
> (metatype (cl--class-name (symbol-value (aref class 0)))))
> (insert (symbol-name type)
> - (substitute-command-keys " is a type (of kind ‘"))
> + (substitute-command-keys " is a type (of kind `"))
> (help-insert-xref-button (symbol-name metatype)
> 'cl-help-type metatype)
> - (insert (substitute-command-keys "’)"))
> + (insert (substitute-command-keys "')"))
> (when location
> - (insert (substitute-command-keys " in ‘"))
> + (insert (substitute-command-keys " in `"))
> (help-insert-xref-button
> (help-fns-short-filename location)
> 'cl-type-definition type location 'define-type)
> - (insert (substitute-command-keys "’")))
> + (insert (substitute-command-keys "'")))
> (insert ".\n")
>
> ;; Parents.
> @@ -793,10 +793,10 @@ including `cl-block' and `cl-eval-when'."
> (insert " Inherits from ")
> (while (setq cur (pop pl))
> (setq cur (cl--class-name cur))
> - (insert (substitute-command-keys "‘"))
> + (insert (substitute-command-keys "`"))
> (help-insert-xref-button (symbol-name cur)
> 'cl-help-type cur)
> - (insert (substitute-command-keys (if pl "’, " "’"))))
> + (insert (substitute-command-keys (if pl "', " "'"))))
> (insert ".\n")))
>
> ;; Children, if available. ¡For EIEIO!
> @@ -807,10 +807,10 @@ including `cl-block' and `cl-eval-when'."
> (when ch
> (insert " Children ")
> (while (setq cur (pop ch))
> - (insert (substitute-command-keys "‘"))
> + (insert (substitute-command-keys "`"))
> (help-insert-xref-button (symbol-name cur)
> 'cl-help-type cur)
> - (insert (substitute-command-keys (if ch "’, " "’"))))
> + (insert (substitute-command-keys (if ch "', " "'"))))
> (insert ".\n")))
>
> ;; Type's documentation.
> @@ -826,10 +826,10 @@ including `cl-block' and `cl-eval-when'."
> (when generics
> (insert (propertize "Specialized Methods:\n\n" 'face 'bold))
> (dolist (generic generics)
> - (insert (substitute-command-keys "‘"))
> + (insert (substitute-command-keys "`"))
> (help-insert-xref-button (symbol-name generic)
> 'help-function generic)
> - (insert (substitute-command-keys "’"))
> + (insert (substitute-command-keys "'"))
> (pcase-dolist (`(,qualifiers ,args ,doc)
> (cl--generic-method-documentation generic type))
> (insert (format " %s%S\n" qualifiers args)
> diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
> index 5d52761..c012a30 100644
> --- a/lisp/emacs-lisp/cl-generic.el
> +++ b/lisp/emacs-lisp/cl-generic.el
> @@ -192,7 +192,7 @@ BODY, if present, is used as the body of a default method.
> (when doc (error "Multiple doc strings for %S" name))
> (setq doc (cadr (pop options-and-methods))))
> (`declare
> - (when declarations (error "Multiple ‘declare’ for %S" name))
> + (when declarations (error "Multiple `declare' for %S" name))
> (setq declarations (pop options-and-methods)))
> (`:method (push (cdr (pop options-and-methods)) methods))
> (_ (push (pop options-and-methods) options))))
> @@ -208,7 +208,7 @@ BODY, if present, is used as the body of a default method.
> defun-declarations-alist))))
> (cond
> (f (apply (car f) name args (cdr declaration)))
> - (t (message "Warning: Unknown defun property ‘%S’ in %S"
> + (t (message "Warning: Unknown defun property `%S' in %S"
> (car declaration) name)
> nil))))
> (cdr declarations))
> @@ -864,11 +864,11 @@ MET-NAME is a cons (SYMBOL . SPECIALIZERS)."
> (cl--generic-method-specializers method)))
> (file (find-lisp-object-file-name met-name 'cl-defmethod)))
> (when file
> - (insert (substitute-command-keys " in ‘"))
> + (insert (substitute-command-keys " in `"))
> (help-insert-xref-button (help-fns-short-filename file)
> 'help-function-def met-name file
> 'cl-defmethod)
> - (insert (substitute-command-keys "’.\n"))))
> + (insert (substitute-command-keys "'.\n"))))
> (insert "\n" (or (nth 2 info) "Undocumented") "\n\n")))))))
>
> (defun cl--generic-specializers-apply-to-type-p (specializers type)
> @@ -1070,7 +1070,7 @@ The value returned is a list of elements of the form
> (and (assq type cl--generic-typeof-types)
> (progn
> (if (memq type '(vector array sequence))
> - (message "‘%S’ also matches CL structs and EIEIO classes" type))
> + (message "`%S' also matches CL structs and EIEIO classes" type))
> (list cl--generic-typeof-generalizer)))
> (cl-call-next-method)))
>
> diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
> index 06e75b3..d5d8ef0 100644
> --- a/lisp/emacs-lisp/cl-macs.el
> +++ b/lisp/emacs-lisp/cl-macs.el
> @@ -1132,7 +1132,7 @@ For more details, see Info node `(cl)Loop Facility'.
> (cond
>
> ((null cl--loop-args)
> - (error "Malformed ‘cl-loop’ macro"))
> + (error "Malformed `cl-loop' macro"))
>
> ((eq word 'named)
> (setq cl--loop-name (pop cl--loop-args)))
> @@ -1140,7 +1140,7 @@ For more details, see Info node `(cl)Loop Facility'.
> ((eq word 'initially)
> (if (memq (car cl--loop-args) '(do doing)) (pop cl--loop-args))
> (or (consp (car cl--loop-args))
> - (error "Syntax error on ‘initially’ clause"))
> + (error "Syntax error on `initially' clause"))
> (while (consp (car cl--loop-args))
> (push (pop cl--loop-args) cl--loop-initially)))
>
> @@ -1150,7 +1150,7 @@ For more details, see Info node `(cl)Loop Facility'.
> (or (cl--pop2 cl--loop-args) '(quote nil)))
> (if (memq (car cl--loop-args) '(do doing)) (pop cl--loop-args))
> (or (consp (car cl--loop-args))
> - (error "Syntax error on ‘finally’ clause"))
> + (error "Syntax error on `finally' clause"))
> (if (and (eq (caar cl--loop-args) 'return) (null cl--loop-name))
> (setq cl--loop-result-explicit
> (or (nth 1 (pop cl--loop-args)) '(quote nil)))
> @@ -1177,7 +1177,7 @@ For more details, see Info node `(cl)Loop Facility'.
> above below by))
> (push word cl--loop-args)
> (if (memq (car cl--loop-args) '(downto above))
> - (error "Must specify ‘from’ value for downward cl-loop"))
> + (error "Must specify `from' value for downward cl-loop"))
> (let* ((down (or (eq (car cl--loop-args) 'downfrom)
> (memq (nth 2 cl--loop-args)
> '(downto above))))
> @@ -1197,7 +1197,7 @@ For more details, see Info node `(cl)Loop Facility'.
> (step-var (and (not (macroexp-const-p step))
> (make-symbol "--cl-var--"))))
> (and step (numberp step) (<= step 0)
> - (error "Loop ‘by’ value is not positive: %s" step))
> + (error "Loop `by' value is not positive: %s" step))
> (push (list var (or start 0)) loop-for-bindings)
> (if end-var (push (list end-var end) loop-for-bindings))
> (if step-var (push (list step-var step)
> @@ -1276,7 +1276,7 @@ For more details, see Info node `(cl)Loop Facility'.
> ((memq word '(element elements))
> (let ((ref (or (memq (car cl--loop-args) '(in-ref of-ref))
> (and (not (memq (car cl--loop-args) '(in of)))
> - (error "Expected ‘of’"))))
> + (error "Expected `of'"))))
> (seq (cl--pop2 cl--loop-args))
> (temp-seq (make-symbol "--cl-seq--"))
> (temp-idx
> @@ -1284,7 +1284,7 @@ For more details, see Info node `(cl)Loop Facility'.
> (if (and (= (length (cadr cl--loop-args)) 2)
> (eq (cl-caadr cl--loop-args) 'index))
> (cadr (cl--pop2 cl--loop-args))
> - (error "Bad ‘using’ clause"))
> + (error "Bad `using' clause"))
> (make-symbol "--cl-idx--"))))
> (push (list temp-seq seq) loop-for-bindings)
> (push (list temp-idx 0) loop-for-bindings)
> @@ -1309,7 +1309,7 @@ For more details, see Info node `(cl)Loop Facility'.
>
> ((memq word hash-types)
> (or (memq (car cl--loop-args) '(in of))
> - (error "Expected ‘of’"))
> + (error "Expected `of'"))
> (let* ((table (cl--pop2 cl--loop-args))
> (other
> (if (eq (car cl--loop-args) 'using)
> @@ -1317,7 +1317,7 @@ For more details, see Info node `(cl)Loop Facility'.
> (memq (cl-caadr cl--loop-args) hash-types)
> (not (eq (cl-caadr cl--loop-args) word)))
> (cadr (cl--pop2 cl--loop-args))
> - (error "Bad ‘using’ clause"))
> + (error "Bad `using' clause"))
> (make-symbol "--cl-var--"))))
> (if (memq word '(hash-value hash-values))
> (setq var (prog1 other (setq other var))))
> @@ -1372,7 +1372,7 @@ For more details, see Info node `(cl)Loop Facility'.
>
> ((memq word key-types)
> (or (memq (car cl--loop-args) '(in of))
> - (error "Expected ‘of’"))
> + (error "Expected `of'"))
> (let ((cl-map (cl--pop2 cl--loop-args))
> (other
> (if (eq (car cl--loop-args) 'using)
> @@ -1380,7 +1380,7 @@ For more details, see Info node `(cl)Loop Facility'.
> (memq (cl-caadr cl--loop-args) key-types)
> (not (eq (cl-caadr cl--loop-args) word)))
> (cadr (cl--pop2 cl--loop-args))
> - (error "Bad ‘using’ clause"))
> + (error "Bad `using' clause"))
> (make-symbol "--cl-var--"))))
> (if (memq word '(key-binding key-bindings))
> (setq var (prog1 other (setq other var))))
> @@ -1430,7 +1430,7 @@ For more details, see Info node `(cl)Loop Facility'.
> (get word 'cl-loop-for-handler))))
> (if handler
> (funcall handler var)
> - (error "Expected a ‘for’ preposition, found %s" word)))))
> + (error "Expected a `for' preposition, found %s" word)))))
> (eq (car cl--loop-args) 'and))
> (setq ands t)
> (pop cl--loop-args))
> @@ -1569,7 +1569,7 @@ For more details, see Info node `(cl)Loop Facility'.
>
> ((memq word '(do doing))
> (let ((body nil))
> - (or (consp (car cl--loop-args)) (error "Syntax error on ‘do’ clause"))
> + (or (consp (car cl--loop-args)) (error "Syntax error on `do' clause"))
> (while (consp (car cl--loop-args)) (push (pop cl--loop-args) body))
> (push (cons 'progn (nreverse (cons t body))) cl--loop-body)))
>
> @@ -1802,7 +1802,7 @@ Labels have lexical scope and dynamic extent."
> `((go . ,(lambda (label)
> (let ((catch-tag (cdr (assq label cl--tagbody-alist))))
> (unless catch-tag
> - (error "Unknown cl-tagbody go label ‘%S’" label))
> + (error "Unknown cl-tagbody go label `%S'" label))
> `(throw ',catch-tag ',label))))
> ,@macroexpand-all-environment)))))
>
> @@ -2101,7 +2101,7 @@ by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...).
> macroexpand-all-environment))))
> (if (or (null (cdar bindings)) (cl-cddar bindings))
> (macroexp--warn-and-return
> - (format-message "Malformed ‘cl-symbol-macrolet’ binding: %S"
> + (format-message "Malformed `cl-symbol-macrolet' binding: %S"
> (car bindings))
> expansion)
> expansion)))
> @@ -2777,10 +2777,10 @@ non-nil value, that slot cannot be set via `setf'.
> ;;;###autoload
> (pcase-defmacro cl-struct (type &rest fields)
> "Pcase patterns to match cl-structs.
> -Elements of FIELDS can be of the form (NAME UPAT) in which case the contents of
> -field NAME is matched against UPAT, or they can be of the form NAME which
> +Elements of FIELDS can be of the form (NAME PAT) in which case the contents of
> +field NAME is matched against PAT, or they can be of the form NAME which
> is a shorthand for (NAME NAME)."
> - (declare (debug (sexp &rest [&or (sexp pcase-UPAT) sexp])))
> + (declare (debug (sexp &rest [&or (sexp pcase-PAT) sexp])))
> `(and (pred (pcase--flip cl-typep ',type))
> ,@(mapcar
> (lambda (field)
> diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el
> index ba50680..46472cc 100644
> --- a/lisp/emacs-lisp/cl.el
> +++ b/lisp/emacs-lisp/cl.el
> @@ -86,7 +86,7 @@
>
> (defun cl-unload-function ()
> "Stop unloading of the Common Lisp extensions."
> - (message "Cannot unload the feature ‘cl’")
> + (message "Cannot unload the feature `cl'")
> ;; Stop standard unloading!
> t)
>
> @@ -459,15 +459,15 @@ definitions, or lack thereof).
> (if (or (and (fboundp (car x))
> (eq (car-safe (symbol-function (car x))) 'macro))
> (cdr (assq (car x) macroexpand-all-environment)))
> - (error "Use ‘labels’, not ‘flet’, to rebind macro names"))
> + (error "Use `labels', not `flet', to rebind macro names"))
> (let ((func `(cl-function
> (lambda ,(cadr x)
> (cl-block ,(car x) ,@(cddr x))))))
> (when (cl--compiling-file)
> ;; Bug#411. It would be nice to fix this.
> (and (get (car x) 'byte-compile)
> - (error "Byte-compiling a redefinition of ‘%s’ \
> -will not work - use ‘labels’ instead" (symbol-name (car x))))
> + (error "Byte-compiling a redefinition of `%s' \
> +will not work - use `labels' instead" (symbol-name (car x))))
> ;; FIXME This affects the rest of the file, when it
> ;; should be restricted to the flet body.
> (and (boundp 'byte-compile-function-environment)
> diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el
> index ece6883..1317d69 100644
> --- a/lisp/emacs-lisp/copyright.el
> +++ b/lisp/emacs-lisp/copyright.el
> @@ -350,7 +350,7 @@ independently replaces consecutive years with a range."
> (or (getenv "ORGANIZATION")
> str)
> '(if (copyright-offset-too-large-p)
> - (message "Copyright extends beyond ‘copyright-limit’ and won't be updated automatically."))
> + (message "Copyright extends beyond `copyright-limit' and won't be updated automatically."))
> comment-end \n)
>
> ;; TODO: recurse, exclude COPYING etc.
> @@ -361,7 +361,7 @@ If FIX is non-nil, run `copyright-fix-years' instead."
> (interactive "DDirectory: \nMFilenames matching (regexp): ")
> (dolist (file (directory-files directory t match nil))
> (unless (file-directory-p file)
> - (message "Updating file ‘%s’" file)
> + (message "Updating file `%s'" file)
> ;; FIXME we should not use find-file+save+kill.
> (let ((enable-local-variables :safe)
> (enable-local-eval nil))
> diff --git a/lisp/emacs-lisp/disass.el b/lisp/emacs-lisp/disass.el
> index 15489fc..12cf605 100644
> --- a/lisp/emacs-lisp/disass.el
> +++ b/lisp/emacs-lisp/disass.el
> @@ -1,4 +1,4 @@
> -;;; disass.el --- disassembler for compiled Emacs Lisp code
> +;;; disass.el --- disassembler for compiled Emacs Lisp code -*- lexical-binding:t -*-
>
> ;; Copyright (C) 1986, 1991, 2002-2015 Free Software Foundation, Inc.
>
> @@ -37,9 +37,9 @@
>
> (require 'macroexp)
>
> -;;; The variable byte-code-vector is defined by the new bytecomp.el.
> -;;; The function byte-decompile-lapcode is defined in byte-opt.el.
> -;;; Since we don't use byte-decompile-lapcode, let's try not loading byte-opt.
> +;; The variable byte-code-vector is defined by the new bytecomp.el.
> +;; The function byte-decompile-lapcode is defined in byte-opt.el.
> +;; Since we don't use byte-decompile-lapcode, let's try not loading byte-opt.
> (require 'byte-compile "bytecomp")
>
> (defvar disassemble-column-1-indent 8 "*")
> @@ -57,8 +57,8 @@ redefine OBJECT if it is a symbol."
> (interactive (list (intern (completing-read "Disassemble function: "
> obarray 'fboundp t))
> nil 0 t))
> - (if (and (consp object) (not (eq (car object) 'lambda)))
> - (setq object (list 'lambda () object)))
> + (if (and (consp object) (not (functionp object)))
> + (setq object `(lambda () ,object)))
> (or indent (setq indent 0)) ;Default indent to zero
> (save-excursion
> (if (or interactive-p (null buffer))
> @@ -72,37 +72,34 @@ redefine OBJECT if it is a symbol."
>
> (defun disassemble-internal (obj indent interactive-p)
> (let ((macro 'nil)
> - (name 'nil)
> - (doc 'nil)
> + (name (when (symbolp obj)
> + (prog1 obj
> + (setq obj (indirect-function obj)))))
> args)
> - (while (symbolp obj)
> - (setq name obj
> - obj (symbol-function obj)))
> + (setq obj (autoload-do-load obj name))
> (if (subrp obj)
> (error "Can't disassemble #<subr %s>" name))
> - (setq obj (autoload-do-load obj name))
> (if (eq (car-safe obj) 'macro) ;Handle macros.
> (setq macro t
> obj (cdr obj)))
> - (if (and (listp obj) (eq (car obj) 'byte-code))
> - (setq obj (list 'lambda nil obj)))
> - (if (and (listp obj) (not (eq (car obj) 'lambda)))
> - (error "not a function"))
> - (if (consp obj)
> - (if (assq 'byte-code obj)
> - nil
> - (if interactive-p (message (if name
> - "Compiling %s's definition..."
> - "Compiling definition...")
> - name))
> - (setq obj (byte-compile obj))
> - (if interactive-p (message "Done compiling. Disassembling..."))))
> + (if (eq (car-safe obj) 'byte-code)
> + (setq obj `(lambda () ,obj)))
> + (when (consp obj)
> + (unless (functionp obj) (error "not a function"))
> + (if (assq 'byte-code obj)
> + nil
> + (if interactive-p (message (if name
> + "Compiling %s's definition..."
> + "Compiling definition...")
> + name))
> + (setq obj (byte-compile obj))
> + (if interactive-p (message "Done compiling. Disassembling..."))))
> (cond ((consp obj)
> + (setq args (help-function-arglist obj)) ;save arg list
> (setq obj (cdr obj)) ;throw lambda away
> - (setq args (car obj)) ;save arg list
> (setq obj (cdr obj)))
> ((byte-code-function-p obj)
> - (setq args (aref obj 0)))
> + (setq args (help-function-arglist obj)))
> (t (error "Compilation failed")))
> (if (zerop indent) ; not a nested function
> (progn
> @@ -127,10 +124,7 @@ redefine OBJECT if it is a symbol."
> (insert " args: ")
> (prin1 args (current-buffer))
> (insert "\n")
> - (let ((interactive (cond ((consp obj)
> - (assq 'interactive obj))
> - ((> (length obj) 5)
> - (list 'interactive (aref obj 5))))))
> + (let ((interactive (interactive-form obj)))
> (if interactive
> (progn
> (setq interactive (nth 1 interactive))
> @@ -226,15 +220,16 @@ OBJ should be a call to BYTE-CODE generated by the byte compiler."
> ;; but if the value of the constant is compiled code, then
> ;; recursively disassemble it.
> (cond ((or (byte-code-function-p arg)
> - (and (eq (car-safe arg) 'lambda)
> + (and (consp arg) (functionp arg)
> (assq 'byte-code arg))
> (and (eq (car-safe arg) 'macro)
> (or (byte-code-function-p (cdr arg))
> - (and (eq (car-safe (cdr arg)) 'lambda)
> + (and (consp (cdr arg))
> + (functionp (cdr arg))
> (assq 'byte-code (cdr arg))))))
> (cond ((byte-code-function-p arg)
> (insert "<compiled-function>\n"))
> - ((eq (car-safe arg) 'lambda)
> + ((functionp arg)
> (insert "<compiled lambda>"))
> (t (insert "<compiled macro>\n")))
> (disassemble-internal
> diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
> index 3ad496a..0162a9a 100644
> --- a/lisp/emacs-lisp/edebug.el
> +++ b/lisp/emacs-lisp/edebug.el
> @@ -880,7 +880,7 @@ Maybe clear the markers and delete the symbol's edebug property?"
> (setq dotted-form (edebug-read-storing-offsets stream))
> elements (nconc elements dotted-form)
> (if (not (eq (edebug-next-token-class) 'rparen))
> - (edebug-syntax-error "Expected ‘)’"))
> + (edebug-syntax-error "Expected `)'"))
> (setq edebug-read-dotted-list (listp dotted-form))
> ))
> elements)
> diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el
> index e1051b2..400bdb9 100644
> --- a/lisp/emacs-lisp/eieio-base.el
> +++ b/lisp/emacs-lisp/eieio-base.el
> @@ -218,7 +218,7 @@ for CLASS. Optional ALLOW-SUBCLASS says that it is ok for
> `eieio-persistent-read' to load in subclasses of class instead of
> being pedantic."
> (unless class
> - (message "Unsafe call to ‘eieio-persistent-read’."))
> + (message "Unsafe call to `eieio-persistent-read'."))
> (when class (cl-check-type class class))
> (let ((ret nil)
> (buffstr nil))
> diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el
> index 3b07c5d..a2f5f8a 100644
> --- a/lisp/emacs-lisp/eieio-core.el
> +++ b/lisp/emacs-lisp/eieio-core.el
> @@ -219,7 +219,8 @@ It creates an autoload function for CNAME's constructor."
> ;; turn this into a usable self-pointing symbol
> (when eieio-backward-compatibility
> (set cname cname)
> - (make-obsolete-variable cname (format "use '%s instead" cname) "25.1"))
> + (make-obsolete-variable cname (format "use \\='%s instead" cname)
> + "25.1"))
>
> ;; Store the new class vector definition into the symbol. We need to
> ;; do this first so that we can call defmethod for the accessor.
> @@ -338,7 +339,8 @@ See `defclass' for more information."
> ;; turn this into a usable self-pointing symbol; FIXME: Why?
> (when eieio-backward-compatibility
> (set cname cname)
> - (make-obsolete-variable cname (format "use '%s instead" cname) "25.1"))
> + (make-obsolete-variable cname (format "use \\='%s instead" cname)
> + "25.1"))
>
> ;; Create a handy list of the class test too
> (when eieio-backward-compatibility
> @@ -357,8 +359,9 @@ See `defclass' for more information."
> (object-of-class-p (car obj) ,cname)))
> (setq obj (cdr obj)))
> ans))))
> - (make-obsolete csym (format "use (cl-typep ... '(list-of %s)) instead"
> - cname)
> + (make-obsolete csym (format
> + "use (cl-typep ... \\='(list-of %s)) instead"
> + cname)
> "25.1")))
>
> ;; Before adding new slots, let's add all the methods and classes
> @@ -407,7 +410,7 @@ See `defclass' for more information."
> (progn
> (set initarg initarg)
> (make-obsolete-variable
> - initarg (format "use '%s instead" initarg) "25.1"))))
> + initarg (format "use \\='%s instead" initarg) "25.1"))))
>
> ;; The customgroup should be a list of symbols.
> (cond ((and (null customg) custom)
> @@ -544,7 +547,7 @@ If SKIPNIL is non-nil, then if default value is nil return t instead."
> (if (not (eq type t))
> (if (not (equal type tp))
> (error
> - "Child slot type ‘%s’ does not match inherited type ‘%s’ for ‘%s’"
> + "Child slot type `%s' does not match inherited type `%s' for `%s'"
> type tp a))
> (setf (cl--slot-descriptor-type new) tp))
> ;; If we have a repeat, only update the initarg...
> @@ -564,7 +567,7 @@ If SKIPNIL is non-nil, then if default value is nil return t instead."
> (let ((super-prot (alist-get :protection oprops))
> (prot (alist-get :protection nprops)))
> (if (not (eq prot super-prot))
> - (error "Child slot protection ‘%s’ does not match inherited protection ‘%s’ for ‘%s’"
> + (error "Child slot protection `%s' does not match inherited protection `%s' for `%s'"
> prot super-prot a)))
> ;; End original PLN
>
> @@ -733,7 +736,7 @@ Argument FN is the function calling this verifier."
> ((and (or `',name (and name (pred keywordp)))
> (guard (not (memq name eieio--known-slot-names))))
> (macroexp--warn-and-return
> - (format-message "Unknown slot ‘%S’" name) exp 'compile-only))
> + (format-message "Unknown slot `%S'" name) exp 'compile-only))
> (_ exp)))))
> (cl-check-type slot symbol)
> (cl-check-type obj (or eieio-object class))
> diff --git a/lisp/emacs-lisp/eieio-opt.el b/lisp/emacs-lisp/eieio-opt.el
> index 0b00336..a5d8b6f 100644
> --- a/lisp/emacs-lisp/eieio-opt.el
> +++ b/lisp/emacs-lisp/eieio-opt.el
> @@ -141,11 +141,11 @@ are not abstract."
> (setq location
> (find-lisp-object-file-name ctr def)))
> (when location
> - (insert (substitute-command-keys " in ‘"))
> + (insert (substitute-command-keys " in `"))
> (help-insert-xref-button
> (help-fns-short-filename location)
> 'cl-type-definition ctr location 'define-type)
> - (insert (substitute-command-keys "’")))
> + (insert (substitute-command-keys "'")))
> (insert ".\nCreates an object of class " (symbol-name ctr) ".")
> (goto-char (point-max))
> (if (autoloadp def)
> diff --git a/lisp/emacs-lisp/eieio-speedbar.el b/lisp/emacs-lisp/eieio-speedbar.el
> index ac8124a..a1eabcf 100644
> --- a/lisp/emacs-lisp/eieio-speedbar.el
> +++ b/lisp/emacs-lisp/eieio-speedbar.el
> @@ -323,7 +323,7 @@ Argument DEPTH is the depth at which the tag line is inserted."
>
> (cl-defmethod eieio-speedbar-child-make-tag-lines ((object eieio-speedbar) _depth)
> "Base method for creating tag lines for non-object children."
> - (error "You must implement ‘eieio-speedbar-child-make-tag-lines’ for %s"
> + (error "You must implement `eieio-speedbar-child-make-tag-lines' for %s"
> (eieio-object-name object)))
>
> (cl-defmethod eieio-speedbar-expand ((object eieio-speedbar) depth)
> @@ -364,7 +364,7 @@ TOKEN is the object. INDENT is the current indentation level."
>
> (cl-defmethod eieio-speedbar-child-description ((obj eieio-speedbar))
> "Return a description for a child of OBJ which is not an object."
> - (error "You must implement ‘eieio-speedbar-child-description’ for %s"
> + (error "You must implement `eieio-speedbar-child-description' for %s"
> (eieio-object-name obj)))
>
> (defun eieio-speedbar-item-info ()
> diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
> index ad178c3..790e8bc 100644
> --- a/lisp/emacs-lisp/eieio.el
> +++ b/lisp/emacs-lisp/eieio.el
> @@ -114,10 +114,10 @@ and reference them using the function `class-option'."
>
> (cond ((and (stringp (car options-and-doc))
> (/= 1 (% (length options-and-doc) 2)))
> - (error "Too many arguments to ‘defclass’"))
> + (error "Too many arguments to `defclass'"))
> ((and (symbolp (car options-and-doc))
> (/= 0 (% (length options-and-doc) 2)))
> - (error "Too many arguments to ‘defclass’")))
> + (error "Too many arguments to `defclass'")))
>
> (if (stringp (car options-and-doc))
> (setq options-and-doc
> @@ -235,7 +235,8 @@ This method is obsolete."
> (let ((f (intern (format "%s-child-p" name))))
> `((defalias ',f ',testsym2)
> (make-obsolete
> - ',f ,(format "use (cl-typep ... '%s) instead" name) "25.1"))))
> + ',f ,(format "use (cl-typep ... \\='%s) instead" name)
> + "25.1"))))
>
> ;; When using typep, (typep OBJ 'myclass) returns t for objects which
> ;; are subclasses of myclass. For our predicates, however, it is
> @@ -348,10 +349,10 @@ variable name of the same name as the slot."
>
> (pcase-defmacro eieio (&rest fields)
> "Pcase patterns to match EIEIO objects.
> -Elements of FIELDS can be of the form (NAME UPAT) in which case the contents of
> -field NAME is matched against UPAT, or they can be of the form NAME which
> +Elements of FIELDS can be of the form (NAME PAT) in which case the contents of
> +field NAME is matched against PAT, or they can be of the form NAME which
> is a shorthand for (NAME NAME)."
> - (declare (debug (&rest [&or (sexp pcase-UPAT) sexp])))
> + (declare (debug (&rest [&or (sexp pcase-PAT) sexp])))
> (let ((is (make-symbol "table")))
> ;; FIXME: This generates a horrendous mess of redundant let bindings.
> ;; `pcase' needs to be improved somehow to introduce let-bindings more
> @@ -941,7 +942,7 @@ this object."
> "Change the class of OBJ to type CLASS.
> This may create or delete slots, but does not affect the return value
> of `eq'."
> - (error "EIEIO: ‘change-class’ is unimplemented"))
> + (error "EIEIO: `change-class' is unimplemented"))
>
> ;; Hook ourselves into help system for describing classes and methods.
> ;; FIXME: This is not actually needed any more since we can click on the
> @@ -983,7 +984,7 @@ Optional argument GROUP is the sub-group of slots to display.
>
> ;;;***
>
> -;;;### (autoloads nil "eieio-opt" "eieio-opt.el" "694d44fcd869546592d35f3321f62667")
> +;;;### (autoloads nil "eieio-opt" "eieio-opt.el" "d00419c898056fadf2f8e491f864aa1e")
> ;;; Generated autoloads from eieio-opt.el
>
> (autoload 'eieio-browse "eieio-opt" "\
> diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el
> index 15eeb49..86ac33c 100644
> --- a/lisp/emacs-lisp/elint.el
> +++ b/lisp/emacs-lisp/elint.el
> @@ -249,9 +249,9 @@ This environment can be passed to `macroexpand'."
> (elint-set-mode-line t)
> (with-current-buffer elint-log-buffer
> (unless (string-equal default-directory dir)
> - (elint-log-message (format-message " \nLeaving directory ‘%s’"
> + (elint-log-message (format-message " \nLeaving directory `%s'"
> default-directory) t)
> - (elint-log-message (format-message "Entering directory ‘%s’" dir) t)
> + (elint-log-message (format-message "Entering directory `%s'" dir) t)
> (setq default-directory dir))))
> (let ((str (format "Linting file %s" file)))
> (message "%s..." str)
> @@ -374,7 +374,7 @@ Returns the forms."
> ;; quoted check cannot be elsewhere, since quotes skipped.
> (if (looking-back "'" (1- (point)))
> ;; Eg cust-print.el uses ' as a comment syntax.
> - (elint-warning "Skipping quoted form ‘'%.20s...’"
> + (elint-warning "Skipping quoted form `%c%.20s...'" ?\'
> (read (current-buffer)))
> (condition-case nil
> (setq tops (cons
> @@ -383,7 +383,7 @@ Returns the forms."
> tops))
> (end-of-file
> (goto-char elint-current-pos)
> - (error "Missing ‘)’ in top form: %s"
> + (error "Missing `)' in top form: %s"
> (buffer-substring elint-current-pos
> (line-end-position))))))))
> (nreverse tops))))
> @@ -401,7 +401,7 @@ Return nil if there are no more forms, t otherwise."
> (cond
> ;; Eg nnmaildir seems to use [] as a form of comment syntax.
> ((not (listp form))
> - (elint-warning "Skipping non-list form ‘%s’" form))
> + (elint-warning "Skipping non-list form `%s'" form))
> ;; Add defined variable
> ((memq (car form) '(defvar defconst defcustom))
> (setq elint-env (elint-env-add-var elint-env (cadr form))))
> @@ -432,7 +432,7 @@ Return nil if there are no more forms, t otherwise."
> (if (or (< (length form) 4)
> (eq (nth 3 form) t)
> (unless (stringp (nth 2 form))
> - (elint-error "Malformed declaration for ‘%s’"
> + (elint-error "Malformed declaration for `%s'"
> (cadr form))
> t))
> 'unknown
> @@ -758,7 +758,7 @@ CODE can be a lambda expression, a macro, or byte-compiled code."
> (and (eq (car-safe alias) 'quote)
> (eq (car-safe target) 'quote)
> (eq (elint-get-args (cadr target) env) 'undefined)
> - (elint-warning "Alias ‘%s’ has unknown target ‘%s’"
> + (elint-warning "Alias `%s' has unknown target `%s'"
> (cadr alias) (cadr target))))
> (elint-form form env t))
>
> @@ -796,7 +796,7 @@ CODE can be a lambda expression, a macro, or byte-compiled code."
> (setq newenv
> (elint-env-add-var newenv (car s))))
> (t (elint-error
> - "Malformed ‘let’ declaration: %s" s))))
> + "Malformed `let' declaration: %s" s))))
> varlist)
>
> ;; Lint the body forms
> diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el
> index 91fc157..d47e5d9 100644
> --- a/lisp/emacs-lisp/ert.el
> +++ b/lisp/emacs-lisp/ert.el
> @@ -121,7 +121,7 @@ Emacs bug 6581 at URL `http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6581'."
>
> (defun ert-get-test (symbol)
> "If SYMBOL names a test, return that. Signal an error otherwise."
> - (unless (ert-test-boundp symbol) (error "No test named ‘%S’" symbol))
> + (unless (ert-test-boundp symbol) (error "No test named `%S'" symbol))
> (get symbol 'ert--test))
>
> (defun ert-set-test (symbol definition)
> @@ -2065,7 +2065,7 @@ and how to display message."
> "--"
> ["Show backtrace" ert-results-pop-to-backtrace-for-test-at-point]
> ["Show messages" ert-results-pop-to-messages-for-test-at-point]
> - ["Show ‘should’ forms" ert-results-pop-to-should-forms-for-test-at-point]
> + ["Show `should' forms" ert-results-pop-to-should-forms-for-test-at-point]
> ["Describe test" ert-results-describe-test-at-point]
> "--"
> ["Delete test" ert-delete-test]
> @@ -2377,9 +2377,9 @@ To be used in the ERT results buffer."
> (ert--print-backtrace backtrace)
> (debugger-make-xrefs)
> (goto-char (point-min))
> - (insert "Backtrace for test ‘")
> + (insert (substitute-command-keys "Backtrace for test `"))
> (ert-insert-test-name-button (ert-test-name test))
> - (insert "’:\n")))))))
> + (insert (substitute-command-keys "':\n"))))))))
>
> (defun ert-results-pop-to-messages-for-test-at-point ()
> "Display the part of the *Messages* buffer generated during the test at point.
> @@ -2398,9 +2398,9 @@ To be used in the ERT results buffer."
> (ert-simple-view-mode)
> (insert (ert-test-result-messages result))
> (goto-char (point-min))
> - (insert "Messages for test ‘")
> + (insert (substitute-command-keys "Messages for test `"))
> (ert-insert-test-name-button (ert-test-name test))
> - (insert "’:\n")))))
> + (insert (substitute-command-keys "':\n"))))))
>
> (defun ert-results-pop-to-should-forms-for-test-at-point ()
> "Display the list of `should' forms executed during the test at point.
> @@ -2428,9 +2428,10 @@ To be used in the ERT results buffer."
> (ert--pp-with-indentation-and-newline form-description)
> (ert--make-xrefs-region begin (point)))))
> (goto-char (point-min))
> - (insert "‘should’ forms executed during test ‘")
> + (insert (substitute-command-keys
> + "`should' forms executed during test `"))
> (ert-insert-test-name-button (ert-test-name test))
> - (insert "’:\n")
> + (insert (substitute-command-keys "':\n"))
> (insert "\n")
> (insert (concat "(Values are shallow copies and may have "
> "looked different during the test if they\n"
> @@ -2507,9 +2508,11 @@ To be used in the ERT results buffer."
> (let ((file-name (and test-name
> (symbol-file test-name 'ert-deftest))))
> (when file-name
> - (insert " defined in ‘" (file-name-nondirectory file-name) "’")
> + (insert (format-message " defined in `%s'"
> + (file-name-nondirectory file-name)))
> (save-excursion
> - (re-search-backward "‘\\([^‘’]+\\)’" nil t)
> + (re-search-backward (substitute-command-keys "`\\([^`']+\\)'")
> + nil t)
> (help-xref-button 1 'help-function-def test-name file-name)))
> (insert ".")
> (fill-region-as-paragraph (point-min) (point))
> diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
> index 86a1f28..026a4a7 100644
> --- a/lisp/emacs-lisp/find-func.el
> +++ b/lisp/emacs-lisp/find-func.el
> @@ -296,7 +296,7 @@ Otherwise, TYPE specifies the kind of definition,
> and it is interpreted via `find-function-regexp-alist'.
> The search is done in the source for library LIBRARY."
> (if (null library)
> - (error "Don't know where ‘%s’ is defined" symbol))
> + (error "Don't know where `%s' is defined" symbol))
> ;; Some functions are defined as part of the construct
> ;; that defines something else.
> (while (and (symbolp symbol) (get symbol 'definition-name))
> @@ -368,9 +368,9 @@ message about the whole chain of aliases."
> (setq aliases (if aliases
> (concat aliases
> (format-message
> - ", which is an alias for ‘%s’"
> + ", which is an alias for `%s'"
> (symbol-name def)))
> - (format-message "‘%s’ is an alias for ‘%s’"
> + (format-message "`%s' is an alias for `%s'"
> function (symbol-name def)))))
> (setq function (find-function-advised-original function)
> def (find-function-advised-original function)))
> diff --git a/lisp/emacs-lisp/generator.el b/lisp/emacs-lisp/generator.el
> index 79e760d..123f64b 100644
> --- a/lisp/emacs-lisp/generator.el
> +++ b/lisp/emacs-lisp/generator.el
> @@ -661,7 +661,7 @@ The caller of `iter-next' receives VALUE, and the next call to
> `iter-next' resumes execution at the previous
> `iter-yield' point."
> (identity value)
> - (error "‘iter-yield’ used outside a generator"))
> + (error "`iter-yield' used outside a generator"))
>
> (defmacro iter-yield-from (value)
> "When used inside a generator function, delegate to a sub-iterator.
> diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el
> index 6760982..bbe6b36 100644
> --- a/lisp/emacs-lisp/gv.el
> +++ b/lisp/emacs-lisp/gv.el
> @@ -239,7 +239,7 @@ instead the assignment is turned into something equivalent to
> so as to preserve the semantics of `setf'."
> (declare (debug (sexp (&or symbolp lambda-expr) &optional sexp)))
> (when (eq 'lambda (car-safe setter))
> - (message "Use ‘gv-define-setter’ or name %s's setter function" name))
> + (message "Use `gv-define-setter' or name %s's setter function" name))
> `(gv-define-setter ,name (val &rest args)
> ,(if fix-return
> `(macroexp-let2 nil v val
> diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el
> index 6fdd348..393f0dd 100644
> --- a/lisp/emacs-lisp/lisp-mnt.el
> +++ b/lisp/emacs-lisp/lisp-mnt.el
> @@ -542,21 +542,21 @@ copyright notice is allowed."
> ((null name)
> "Can't find package name")
> ((not (lm-authors))
> - "‘Author:’ tag missing")
> + "`Author:' tag missing")
> ((not (lm-maintainer))
> - "‘Maintainer:’ tag missing")
> + "`Maintainer:' tag missing")
> ((not (lm-summary))
> "Can't find the one-line summary description")
> ((not (lm-keywords))
> - "‘Keywords:’ tag missing")
> + "`Keywords:' tag missing")
> ((not (lm-keywords-finder-p))
> - "‘Keywords:’ has no valid finder keywords (see ‘finder-known-keywords’)")
> + "`Keywords:' has no valid finder keywords (see `finder-known-keywords')")
> ((not (lm-commentary-mark))
> - "Can't find a ‘Commentary’ section marker")
> + "Can't find a `Commentary' section marker")
> ((not (lm-history-mark))
> - "Can't find a ‘History’ section marker")
> + "Can't find a `History' section marker")
> ((not (lm-code-mark))
> - "Can't find a ‘Code’ section marker")
> + "Can't find a `Code' section marker")
> ((progn
> (goto-char (point-max))
> (not
> diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el
> index 6189976..2c33d39 100644
> --- a/lisp/emacs-lisp/macroexp.el
> +++ b/lisp/emacs-lisp/macroexp.el
> @@ -147,10 +147,10 @@ and also to avoid outputting the warning during normal execution."
> (let ((instead (car obsolescence-data))
> (asof (nth 2 obsolescence-data)))
> (format-message
> - "‘%s’ is an obsolete %s%s%s" fun type
> + "`%s' is an obsolete %s%s%s" fun type
> (if asof (concat " (as of " asof ")") "")
> (cond ((stringp instead) (concat "; " (substitute-command-keys instead)))
> - (instead (format-message "; use ‘%s’ instead." instead))
> + (instead (format-message "; use `%s' instead." instead))
> (t ".")))))
>
> (defun macroexpand-1 (form &optional environment)
> diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el
> index 3ac7094..43fd4ef57a 100644
> --- a/lisp/emacs-lisp/map-ynp.el
> +++ b/lisp/emacs-lisp/map-ynp.el
> @@ -199,9 +199,9 @@ Returns the number of actions taken."
> (action (if help (nth 2 help) "act on")))
> (concat
> (format-message "\
> -Type SPC or ‘y’ to %s the current %s;
> -DEL or ‘n’ to skip the current %s;
> -RET or ‘q’ to give up on the %s (skip all remaining %s);
> +Type SPC or `y' to %s the current %s;
> +DEL or `n' to skip the current %s;
> +RET or `q' to give up on the %s (skip all remaining %s);
> C-g to quit (cancel the whole command);
> ! to %s all remaining %s;\n"
> action object object action objects action
> diff --git a/lisp/emacs-lisp/map.el b/lisp/emacs-lisp/map.el
> index 5014571..ea56efe 100644
> --- a/lisp/emacs-lisp/map.el
> +++ b/lisp/emacs-lisp/map.el
> @@ -249,21 +249,22 @@ MAP can be a list, hash-table or array."
> :array (seq-empty-p map)
> :hash-table (zerop (hash-table-count map))))
>
> -(defun map-contains-key-p (map key &optional testfn)
> +(defun map-contains-key (map key &optional testfn)
> "Return non-nil if MAP contain the key KEY, nil otherwise.
> Equality is defined by TESTFN if non-nil or by `equal' if nil.
>
> MAP can be a list, hash-table or array."
> - (seq-contains-p (map-keys map) key testfn))
> + (seq-contains (map-keys map) key testfn))
>
> -(defun map-some-p (pred map)
> - "Return a key/value pair for which (PRED key val) is non-nil in MAP.
> +(defun map-some (pred map)
> + "Return a non-nil if (PRED key val) is non-nil for any key/value pair in MAP.
>
> MAP can be a list, hash-table or array."
> (catch 'map--break
> (map-apply (lambda (key value)
> - (when (funcall pred key value)
> - (throw 'map--break (cons key value))))
> + (let ((result (funcall pred key value)))
> + (when result
> + (throw 'map--break result))))
> map)
> nil))
>
> diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el
> index 7eebb5e..2cd34e1 100644
> --- a/lisp/emacs-lisp/nadvice.el
> +++ b/lisp/emacs-lisp/nadvice.el
> @@ -95,7 +95,7 @@ Each element has the form (WHERE BYTECODE STACK) where:
> (propertize (format "%s advice: " where)
> 'face 'warning)
> (let ((fun (advice--car flist)))
> - (if (symbolp fun) (format-message "‘%S’" fun)
> + (if (symbolp fun) (format-message "`%S'" fun)
> (let* ((name (cdr (assq 'name (advice--props flist))))
> (doc (documentation fun t))
> (usage (help-split-fundoc doc function)))
> @@ -176,7 +176,7 @@ WHERE is a symbol to select an entry in `advice--where-alist'."
> (advice--make-1 (aref main 1) (aref main 3)
> (advice--car main) rest (advice--props main)))
> (let ((desc (assq where advice--where-alist)))
> - (unless desc (error "Unknown add-function location ‘%S’" where))
> + (unless desc (error "Unknown add-function location `%S'" where))
> (advice--make-1 (nth 1 desc) (nth 2 desc)
> function main props)))))
>
> @@ -461,7 +461,7 @@ otherwise it is named `SYMBOL@NAME'.
> (advice (cond ((null name) `(lambda ,lambda-list ,@body))
> ((or (stringp name) (symbolp name))
> (intern (format "%s@%s" symbol name)))
> - (t (error "Unrecognized name spec ‘%S’" name)))))
> + (t (error "Unrecognized name spec `%S'" name)))))
> `(prog1 ,@(and (symbolp advice) `((defun ,advice ,lambda-list ,@body)))
> (advice-add ',symbol ,where #',advice ,@(and props `(',props))))))
>
> diff --git a/lisp/emacs-lisp/package-x.el b/lisp/emacs-lisp/package-x.el
> index 608bf73..81d0b83 100644
> --- a/lisp/emacs-lisp/package-x.el
> +++ b/lisp/emacs-lisp/package-x.el
> @@ -296,7 +296,7 @@ destination, prompt for one."
> ((string-match "\\.tar\\'" file)
> (tar-mode) (package-tar-file-info))
> ((string-match "\\.el\\'" file) (package-buffer-info))
> - (t (error "Unrecognized extension ‘%s’"
> + (t (error "Unrecognized extension `%s'"
> (file-name-extension file))))))
> (package-upload-buffer-internal pkg-desc (file-name-extension file)))))
>
> diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
> index 7c4f21f..b0d2ff9 100644
> --- a/lisp/emacs-lisp/package.el
> +++ b/lisp/emacs-lisp/package.el
> @@ -234,7 +234,7 @@ of it available such that:
>
> This variable has three possible values:
> nil: no packages are hidden;
> - archive: only criteria (a) is used;
> + `archive': only criteria (a) is used;
> t: both criteria are used.
>
> This variable has no effect if `package-menu--hide-packages' is
> @@ -456,13 +456,13 @@ This is, approximately, the inverse of `version-to-list'.
> (push (int-to-string num) str-list)
> (push "." str-list))
> ((< num -4)
> - (error "Invalid version list ‘%s’" vlist))
> + (error "Invalid version list `%s'" vlist))
> (t
> ;; pre, or beta, or alpha
> (cond ((equal "." (car str-list))
> (pop str-list))
> ((not (string-match "[0-9]+" (car str-list)))
> - (error "Invalid version list ‘%s’" vlist)))
> + (error "Invalid version list `%s'" vlist)))
> (push (cond ((= num -1) "pre")
> ((= num -2) "beta")
> ((= num -3) "alpha")
> @@ -623,7 +623,7 @@ Return the max version (as a string) if the package is held at a lower version."
> ((stringp force) ; held
> (unless (version-list-= version (version-to-list force))
> force))
> - (t (error "Invalid element in ‘package-load-list’")))))
> + (t (error "Invalid element in `package-load-list'")))))
>
> (defun package-built-in-p (package &optional min-version)
> "Return true if PACKAGE is built-in to Emacs.
> @@ -639,6 +639,28 @@ specifying the minimum acceptable version."
> (require 'finder-inf nil t) ; For `package--builtins'.
> (assq package package--builtins))))))
>
> +(defun package--autoloads-file-name (pkg-desc)
> + "Return the absolute name of the autoloads file, sans extension.
> +PKG-DESC is a `package-desc' object."
> + (expand-file-name
> + (format "%s-autoloads" (package-desc-name pkg-desc))
> + (package-desc-dir pkg-desc)))
> +
> +(defun package--activate-autoloads-and-load-path (pkg-desc)
> + "Load the autoloads file and add package dir to `load-path'.
> +PKG-DESC is a `package-desc' object."
> + (let* ((old-lp load-path)
> + (pkg-dir (package-desc-dir pkg-desc))
> + (pkg-dir-dir (file-name-as-directory pkg-dir)))
> + (with-demoted-errors "Error loading autoloads: %s"
> + (load (package--autoloads-file-name pkg-desc) nil t))
> + (when (and (eq old-lp load-path)
> + (not (or (member pkg-dir load-path)
> + (member pkg-dir-dir load-path))))
> + ;; Old packages don't add themselves to the `load-path', so we have to
> + ;; do it ourselves.
> + (push pkg-dir load-path))))
> +
> (defvar Info-directory-list)
> (declare-function info-initialize "info" ())
>
> @@ -648,24 +670,14 @@ If RELOAD is non-nil, also `load' any files inside the package which
> correspond to previously loaded files (those returned by
> `package--list-loaded-files')."
> (let* ((name (package-desc-name pkg-desc))
> - (pkg-dir (package-desc-dir pkg-desc))
> - (pkg-dir-dir (file-name-as-directory pkg-dir)))
> + (pkg-dir (package-desc-dir pkg-desc)))
> (unless pkg-dir
> - (error "Internal error: unable to find directory for ‘%s’"
> + (error "Internal error: unable to find directory for `%s'"
> (package-desc-full-name pkg-desc)))
> - ;; Add to load path, add autoloads, and activate the package.
> - (let* ((old-lp load-path)
> - (autoloads-file (expand-file-name
> - (format "%s-autoloads" name) pkg-dir))
> - (loaded-files-list (and reload (package--list-loaded-files pkg-dir))))
> - (with-demoted-errors "Error in package-activate-1: %s"
> - (load autoloads-file nil t))
> - (when (and (eq old-lp load-path)
> - (not (or (member pkg-dir load-path)
> - (member pkg-dir-dir load-path))))
> - ;; Old packages don't add themselves to the `load-path', so we have to
> - ;; do it ourselves.
> - (push pkg-dir load-path))
> + (let* ((loaded-files-list (when reload
> + (package--list-loaded-files pkg-dir))))
> + ;; Add to load path, add autoloads, and activate the package.
> + (package--activate-autoloads-and-load-path pkg-desc)
> ;; Call `load' on all files in `pkg-dir' already present in
> ;; `load-history'. This is done so that macros in these files are updated
> ;; to their new definitions. If another package is being installed which
> @@ -674,7 +686,8 @@ correspond to previously loaded files (those returned by
> (with-demoted-errors "Error in package-activate-1: %s"
> (mapc (lambda (feature) (load feature nil t))
> ;; Skip autoloads file since we already evaluated it above.
> - (remove (file-truename autoloads-file) loaded-files-list))))
> + (remove (file-truename (package--autoloads-file-name pkg-desc))
> + loaded-files-list))))
> ;; Add info node.
> (when (file-exists-p (expand-file-name "dir" pkg-dir))
> ;; FIXME: not the friendliest, but simple.
> @@ -754,8 +767,8 @@ Newer versions are always activated, regardless of FORCE."
> (unless (package-activate (car req))
> (throw 'dep-failure req))))))
> (if fail
> - (warn "Unable to activate package ‘%s’.
> -Required package ‘%s-%s’ is unavailable"
> + (warn "Unable to activate package `%s'.
> +Required package `%s-%s' is unavailable"
> package (car fail) (package-version-join (cadr fail)))
> ;; If all goes well, activate the package itself.
> (package-activate-1 pkg-vec force)))))))
> @@ -919,8 +932,9 @@ untar into a directory named DIR; otherwise, signal an error."
> (defun package--compile (pkg-desc)
> "Byte-compile installed package PKG-DESC."
> (let ((warning-minimum-level :error)
> - (save-silently inhibit-message))
> - (package-activate-1 pkg-desc)
> + (save-silently inhibit-message)
> + (load-path load-path))
> + (package--activate-autoloads-and-load-path pkg-desc)
> (byte-recompile-directory (package-desc-dir pkg-desc) 0 t)))
>
> ;;;; Inferring package from current buffer
> @@ -1372,13 +1386,18 @@ If successful, set `package-archive-contents'."
> The variable `package-load-list' controls which packages to load.
> If optional arg NO-ACTIVATE is non-nil, don't activate packages.
> If `user-init-file' does not mention `(package-initialize)', add
> -it to the file."
> +it to the file.
> +If called as part of loading `user-init-file', set
> +`package-enable-at-startup' to nil, to prevent accidentally
> +loading packages twice."
> (interactive)
> (setq package-alist nil)
> (if (equal user-init-file load-file-name)
> ;; If `package-initialize' is being called as part of loading
> ;; the init file, it's obvious we don't need to ensure-init.
> - (setq package--init-file-ensured t)
> + (setq package--init-file-ensured t
> + ;; And likely we don't need to run it again after init.
> + package-enable-at-startup nil)
> (package--ensure-init-file))
> (package-load-all-descriptors)
> (package-read-all-archive-contents)
> @@ -1465,7 +1484,7 @@ similar to an entry in `package-alist'. Save the cached copy to
> ;; Even if the sig fails, this download is done, so
> ;; remove it from the in-progress list.
> (package--update-downloads-in-progress archive)
> - (error "Unsigned archive ‘%s’" name))
> + (error "Unsigned archive `%s'" name))
> ;; Write out the archives file.
> (write-region content nil local-file nil 'silent)
> ;; Write out good signatures into archive-contents.signed file.
> @@ -1495,7 +1514,7 @@ perform the downloads asynchronously."
> (when async
> ;; The t at the end means to propagate connection errors.
> (lambda () (package--update-downloads-in-progress archive) t)))
> - (error (message "Failed to download ‘%s’ archive."
> + (error (message "Failed to download `%s' archive."
> (car archive))))))
>
> ;;;###autoload
> @@ -1564,7 +1583,7 @@ SEEN is used internally to detect infinite recursion."
> (package-desc-full-name already))
> (setq packages (delq already packages))
> (setq already nil))
> - (error "Need package ‘%s-%s’, but only %s is being installed"
> + (error "Need package `%s-%s', but only %s is being installed"
> next-pkg (package-version-join next-version)
> (package-version-join (package-desc-version already)))))
> (cond
> @@ -1593,20 +1612,20 @@ SEEN is used internally to detect infinite recursion."
> (setq problem
> (if (stringp disabled)
> (format-message
> - "Package ‘%s’ held at version %s, but version %s required"
> + "Package `%s' held at version %s, but version %s required"
> next-pkg disabled
> (package-version-join next-version))
> - (format-message "Required package ‘%s’ is disabled"
> + (format-message "Required package `%s' is disabled"
> next-pkg)))))
> (t (setq found pkg-desc)))))
> (unless found
> (cond
> (problem (error "%s" problem))
> (found-something
> - (error "Need package ‘%s-%s’, but only %s is available"
> + (error "Need package `%s-%s', but only %s is available"
> next-pkg (package-version-join next-version)
> found-something))
> - (t (error "Package ‘%s-%s’ is unavailable"
> + (t (error "Package `%s-%s' is unavailable"
> next-pkg (package-version-join next-version)))))
> (setq packages
> (package-compute-transaction (cons found packages)
> @@ -1766,7 +1785,7 @@ if all the in-between dependencies are also in PACKAGE-LIST."
> (unless (or good-sigs (eq package-check-signature 'allow-unsigned))
> ;; Even if the sig fails, this download is done, so
> ;; remove it from the in-progress list.
> - (error "Unsigned package: ‘%s’"
> + (error "Unsigned package: `%s'"
> (package-desc-name pkg-desc)))
> ;; Signature checked, unpack now.
> (with-temp-buffer (insert content)
> @@ -1907,7 +1926,7 @@ to install it but still mark it as selected."
> (package-desc-reqs pkg)))
> (package-compute-transaction () (list (list pkg))))))
> (package-download-transaction transaction)
> - (message "‘%s’ is already installed" (package-desc-full-name pkg))))
> + (message "`%s' is already installed" (package-desc-full-name pkg))))
>
> (defun package-strip-rcs-id (str)
> "Strip RCS version ID from the version string STR.
> @@ -1982,7 +2001,7 @@ If some packages are not installed propose to install them."
> ;; using here, because the outcome is the same either way (nothing
> ;; gets installed).
> (if (not package-selected-packages)
> - (message "‘package-selected-packages’ is empty, nothing to install")
> + (message "`package-selected-packages' is empty, nothing to install")
> (cl-loop for p in package-selected-packages
> unless (package-installed-p p)
> collect p into lst
> @@ -2047,13 +2066,13 @@ If NOSAVE is non-nil, the package is not removed from
> (expand-file-name package-user-dir))
> (expand-file-name dir)))
> ;; Don't delete "system" packages.
> - (error "Package ‘%s’ is a system package, not deleting"
> + (error "Package `%s' is a system package, not deleting"
> (package-desc-full-name pkg-desc)))
> ((and (null force)
> (setq pkg-used-elsewhere-by
> (package--used-elsewhere-p pkg-desc)))
> ;; Don't delete packages used as dependency elsewhere.
> - (error "Package ‘%s’ is used by ‘%s’ as dependency, not deleting"
> + (error "Package `%s' is used by `%s' as dependency, not deleting"
> (package-desc-full-name pkg-desc)
> (package-desc-name pkg-used-elsewhere-by)))
> (t
> @@ -2068,7 +2087,7 @@ If NOSAVE is non-nil, the package is not removed from
> (delete pkg-desc pkgs)
> (unless (cdr pkgs)
> (setq package-alist (delq pkgs package-alist))))
> - (message "Package ‘%s’ deleted." (package-desc-full-name pkg-desc))))))
> + (message "Package `%s' deleted." (package-desc-full-name pkg-desc))))))
>
> ;;;###autoload
> (defun package-reinstall (pkg)
> @@ -2097,7 +2116,8 @@ will be deleted."
> ;; do absolutely nothing.
> (when (or package-selected-packages
> (yes-or-no-p
> - "‘package-selected-packages’ is empty! Really remove ALL packages? "))
> + (format-message
> + "`package-selected-packages' is empty! Really remove ALL packages? ")))
> (let ((removable (package--removable-packages)))
> (if removable
> (when (y-or-n-p
> @@ -2144,7 +2164,7 @@ will be deleted."
> (with-current-buffer standard-output
> (describe-package-1 package)))))
>
> -(defface package-help-section-name-face
> +(defface package-help-section-name
> '((t :inherit (bold font-lock-function-name-face)))
> "Face used on section names in package description buffers."
> :version "25.1")
> @@ -2155,7 +2175,7 @@ If more STRINGS are provided, insert them followed by a newline.
> Otherwise no newline is inserted."
> (declare (indent 1))
> (insert (make-string (max 0 (- 11 (string-width name))) ?\s)
> - (propertize (concat name ": ") 'font-lock-face 'package-help-section-name-face))
> + (propertize (concat name ": ") 'font-lock-face 'package-help-section-name))
> (when strings
> (apply #'insert strings)
> (insert "\n")))
> @@ -2205,7 +2225,7 @@ Otherwise no newline is inserted."
> "Installed"
> (capitalize status))
> 'font-lock-face 'package-status-builtin-face))
> - (insert (substitute-command-keys " in ‘"))
> + (insert (substitute-command-keys " in `"))
> (let ((dir (abbreviate-file-name
> (file-name-as-directory
> (if (file-in-directory-p pkg-dir package-user-dir)
> @@ -2215,10 +2235,10 @@ Otherwise no newline is inserted."
> (if (and (package-built-in-p name)
> (not (package-built-in-p name version)))
> (insert (substitute-command-keys
> - "’,\n shadowing a ")
> + "',\n shadowing a ")
> (propertize "built-in package"
> 'font-lock-face 'package-status-builtin-face))
> - (insert (substitute-command-keys "’")))
> + (insert (substitute-command-keys "'")))
> (if signed
> (insert ".")
> (insert " (unsigned)."))
> @@ -2366,7 +2386,7 @@ Otherwise no newline is inserted."
>
> (defun package-install-button-action (button)
> (let ((pkg-desc (button-get button 'package-desc)))
> - (when (y-or-n-p (format-message "Install package ‘%s’? "
> + (when (y-or-n-p (format-message "Install package `%s'? "
> (package-desc-full-name pkg-desc)))
> (package-install pkg-desc nil)
> (revert-buffer nil t)
> @@ -2374,7 +2394,7 @@ Otherwise no newline is inserted."
>
> (defun package-delete-button-action (button)
> (let ((pkg-desc (button-get button 'package-desc)))
> - (when (y-or-n-p (format-message "Delete package ‘%s’? "
> + (when (y-or-n-p (format-message "Delete package `%s'? "
> (package-desc-full-name pkg-desc)))
> (package-delete pkg-desc)
> (revert-buffer nil t)
> @@ -2759,68 +2779,68 @@ Return (PKG-DESC [NAME VERSION STATUS DOC])."
>
>
> ;;; Package menu faces
> -(defface package-name-face
> +(defface package-name
> '((t :inherit link))
> "Face used on package names in the package menu."
> :version "25.1")
>
> -(defface package-description-face
> +(defface package-description
> '((t :inherit default))
> "Face used on package description summaries in the package menu."
> :version "25.1")
>
> -(defface package-status-built-in-face
> +(defface package-status-built-in
> '((t :inherit font-lock-builtin-face))
> "Face used on the status and version of built-in packages."
> :version "25.1")
>
> -(defface package-status-external-face
> +(defface package-status-external
> '((t :inherit package-status-builtin-face))
> "Face used on the status and version of external packages."
> :version "25.1")
>
> -(defface package-status-available-face
> +(defface package-status-available
> '((t :inherit default))
> "Face used on the status and version of available packages."
> :version "25.1")
>
> -(defface package-status-new-face
> - '((t :inherit (bold package-status-available-face)))
> +(defface package-status-new
> + '((t :inherit (bold package-status-available)))
> "Face used on the status and version of new packages."
> :version "25.1")
>
> -(defface package-status-held-face
> +(defface package-status-held
> '((t :inherit font-lock-constant-face))
> "Face used on the status and version of held packages."
> :version "25.1")
>
> -(defface package-status-disabled-face
> +(defface package-status-disabled
> '((t :inherit font-lock-warning-face))
> "Face used on the status and version of disabled packages."
> :version "25.1")
>
> -(defface package-status-installed-face
> +(defface package-status-installed
> '((t :inherit font-lock-comment-face))
> "Face used on the status and version of installed packages."
> :version "25.1")
>
> -(defface package-status-dependency-face
> - '((t :inherit package-status-installed-face))
> +(defface package-status-dependency
> + '((t :inherit package-status-installed))
> "Face used on the status and version of dependency packages."
> :version "25.1")
>
> -(defface package-status-unsigned-face
> +(defface package-status-unsigned
> '((t :inherit font-lock-warning-face))
> "Face used on the status and version of unsigned packages."
> :version "25.1")
>
> -(defface package-status-incompat-face
> +(defface package-status-incompat
> '((t :inherit font-lock-comment-face))
> "Face used on the status and version of incompat packages."
> :version "25.1")
>
> -(defface package-status-avail-obso-face
> - '((t :inherit package-status-incompat-face))
> +(defface package-status-avail-obso
> + '((t :inherit package-status-incompat))
> "Face used on the status and version of avail-obso packages."
> :version "25.1")
>
> @@ -2832,22 +2852,22 @@ PKG is a package-desc object.
> Return (PKG-DESC [NAME VERSION STATUS DOC])."
> (let* ((status (package-desc-status pkg))
> (face (pcase status
> - (`"built-in" 'package-status-built-in-face)
> - (`"external" 'package-status-external-face)
> - (`"available" 'package-status-available-face)
> - (`"avail-obso" 'package-status-avail-obso-face)
> - (`"new" 'package-status-new-face)
> - (`"held" 'package-status-held-face)
> - (`"disabled" 'package-status-disabled-face)
> - (`"installed" 'package-status-installed-face)
> - (`"dependency" 'package-status-dependency-face)
> - (`"unsigned" 'package-status-unsigned-face)
> - (`"incompat" 'package-status-incompat-face)
> + (`"built-in" 'package-status-built-in)
> + (`"external" 'package-status-external)
> + (`"available" 'package-status-available)
> + (`"avail-obso" 'package-status-avail-obso)
> + (`"new" 'package-status-new)
> + (`"held" 'package-status-held)
> + (`"disabled" 'package-status-disabled)
> + (`"installed" 'package-status-installed)
> + (`"dependency" 'package-status-dependency)
> + (`"unsigned" 'package-status-unsigned)
> + (`"incompat" 'package-status-incompat)
> (_ 'font-lock-warning-face)))) ; obsolete.
> (list pkg
> `[(,(symbol-name (package-desc-name pkg))
> - face package-name-face
> - font-lock-face package-name-face
> + face package-name
> + font-lock-face package-name
> follow-link t
> package-desc ,pkg
> action package-menu-describe-package)
> @@ -2859,7 +2879,7 @@ Return (PKG-DESC [NAME VERSION STATUS DOC])."
> (list (propertize (or (package-desc-archive pkg) "")
> 'font-lock-face face)))
> ,(propertize (package-desc-summary pkg)
> - 'font-lock-face 'package-description-face)])))
> + 'font-lock-face 'package-description)])))
>
> (defvar package-menu--old-archive-contents nil
> "`package-archive-contents' before the latest refresh.")
> @@ -2893,8 +2913,8 @@ If optional arg BUTTON is non-nil, describe its associated package."
> (cl-remove-if-not (lambda (e) (string-match re (symbol-name (car e))))
> package-archive-contents)))
> (message (substitute-command-keys
> - (concat "Hiding %s packages, type ‘\\[package-menu-toggle-hiding]’"
> - " to toggle or ‘\\[customize-variable] RET package-hidden-regexps’"
> + (concat "Hiding %s packages, type `\\[package-menu-toggle-hiding]'"
> + " to toggle or `\\[customize-variable] RET package-hidden-regexps'"
> " to customize it"))
> (length hidden)))))
>
> @@ -3078,7 +3098,7 @@ prompt (see `package-menu--prompt-transaction-p')."
> (length packages)
> (mapconcat #'package-desc-full-name packages ", ")))
> ;; Exactly 1
> - (t (format-message "package ‘%s’"
> + (t (format-message "package `%s'"
> (package-desc-full-name (car packages))))))
>
> (defun package-menu--prompt-transaction-p (delete install upgrade)
> @@ -3134,7 +3154,7 @@ objects removed."
> (condition-case-unless-debug err
> (let ((inhibit-message package-menu-async))
> (package-delete elt nil 'nosave))
> - (error (message "Error trying to delete ‘%s’: %S"
> + (error (message "Error trying to delete `%s': %S"
> (package-desc-full-name elt)
> err))))))
>
> @@ -3265,7 +3285,7 @@ Store this list in `package-menu--new-package-list'."
> (defun package-menu--find-and-notify-upgrades ()
> "Notify the user of upgradable packages."
> (when-let ((upgrades (package-menu--find-upgrades)))
> - (message "%d package%s can be upgraded; type ‘%s’ to mark %s for upgrading."
> + (message "%d package%s can be upgraded; type `%s' to mark %s for upgrading."
> (length upgrades)
> (if (= (length upgrades) 1) "" "s")
> (substitute-command-keys "\\[package-menu-mark-upgrades]")
> diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
> index 5fe36bb..ea4f38a 100644
> --- a/lisp/emacs-lisp/pcase.el
> +++ b/lisp/emacs-lisp/pcase.el
> @@ -164,7 +164,7 @@ Currently, the following patterns are provided this way:"
> expansion))))
>
> (declare-function help-fns--signature "help-fns"
> - (function doc real-def real-function raw))
> + (function doc real-def real-function buffer))
>
> ;; FIXME: Obviously, this will collide with nadvice's use of
> ;; function-documentation if we happen to advise `pcase'.
> @@ -184,7 +184,7 @@ Currently, the following patterns are provided this way:"
> (insert "\n\n-- ")
> (let* ((doc (documentation me 'raw)))
> (setq doc (help-fns--signature symbol doc me
> - (indirect-function me) t))
> + (indirect-function me) nil))
> (insert "\n" (or doc "Not documented.")))))))
> (let ((combined-doc (buffer-string)))
> (if ud (help-add-fundoc-usage combined-doc (car ud)) combined-doc)))))
> @@ -197,7 +197,7 @@ Currently, the following patterns are provided this way:"
> (pcase--dontwarn-upats (cons x pcase--dontwarn-upats)))
> (pcase--expand
> ;; FIXME: Could we add the FILE:LINE data in the error message?
> - exp (append cases `((,x (error "No clause matching ‘%S’" ,x)))))))
> + exp (append cases `((,x (error "No clause matching `%S'" ,x)))))))
>
> ;;;###autoload
> (defmacro pcase-lambda (lambda-list &rest body)
> @@ -775,7 +775,7 @@ Otherwise, it defers to REST which is a list of branches of the form
> (let ((code (pcase--u1 matches code vars rest)))
> (if (eq upat '_) code
> (macroexp--warn-and-return
> - "Pattern t is deprecated. Use ‘_’ instead"
> + "Pattern t is deprecated. Use `_' instead"
> code))))
> ((eq upat 'pcase--dontcare) :pcase--dontcare)
> ((memq (car-safe upat) '(guard pred))
> @@ -860,7 +860,7 @@ Otherwise, it defers to REST which is a list of branches of the form
> (pcase--u rest))
> vars
> (list `((and . ,matches) ,code . ,vars))))
> - (t (error "Unknown pattern ‘%S’" upat)))))
> + (t (error "Unknown pattern `%S'" upat)))))
> (t (error "Incorrect MATCH %S" (car matches)))))
>
> (def-edebug-spec
> diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el
> index de1f6d1..a499b03 100644
> --- a/lisp/emacs-lisp/re-builder.el
> +++ b/lisp/emacs-lisp/re-builder.el
> @@ -458,7 +458,7 @@ matching parts of the target buffer will be highlighted."
> (setq reb-subexp-mode t)
> (reb-update-modestring)
> (use-local-map reb-subexp-mode-map)
> - (message "‘0’-‘9’ to display subexpressions ‘q’ to quit subexp mode"))
> + (message "`0'-`9' to display subexpressions `q' to quit subexp mode"))
>
> (defun reb-show-subexp (subexp &optional pause)
> "Visually show limit of subexpression SUBEXP of recent search.
> diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el
> index b0fb23d..9888e92 100644
> --- a/lisp/emacs-lisp/regexp-opt.el
> +++ b/lisp/emacs-lisp/regexp-opt.el
> @@ -92,7 +92,7 @@ is enclosed by at least one regexp grouping construct.
> The returned regexp is typically more efficient than the equivalent regexp:
>
> (let ((open (if PAREN \"\\\\(\" \"\")) (close (if PAREN \"\\\\)\" \"\")))
> - (concat open (mapconcat 'regexp-quote STRINGS \"\\\\|\") close))
> + (concat open (mapconcat \\='regexp-quote STRINGS \"\\\\|\") close))
>
> If PAREN is `words', then the resulting regexp is additionally surrounded
> by \\=\\< and \\>.
> diff --git a/lisp/emacs-lisp/ring.el b/lisp/emacs-lisp/ring.el
> index 8badac3..2447dfa 100644
> --- a/lisp/emacs-lisp/ring.el
> +++ b/lisp/emacs-lisp/ring.el
> @@ -175,14 +175,14 @@ Comparison is done via `equal'. The index is 0-based."
> "Return the next item in the RING, after ITEM.
> Raise error if ITEM is not in the RING."
> (let ((curr-index (ring-member ring item)))
> - (unless curr-index (error "Item is not in the ring: ‘%s’" item))
> + (unless curr-index (error "Item is not in the ring: `%s'" item))
> (ring-ref ring (ring-plus1 curr-index (ring-length ring)))))
>
> (defun ring-previous (ring item)
> "Return the previous item in the RING, before ITEM.
> Raise error if ITEM is not in the RING."
> (let ((curr-index (ring-member ring item)))
> - (unless curr-index (error "Item is not in the ring: ‘%s’" item))
> + (unless curr-index (error "Item is not in the ring: `%s'" item))
> (ring-ref ring (ring-minus1 curr-index (ring-length ring)))))
>
> (defun ring-extend (ring x)
> diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el
> index 7b0de6e..a21ac7a 100644
> --- a/lisp/emacs-lisp/rx.el
> +++ b/lisp/emacs-lisp/rx.el
> @@ -324,7 +324,7 @@ a standalone symbol."
> (defun rx-check (form)
> "Check FORM according to its car's parsing info."
> (unless (listp form)
> - (error "rx ‘%s’ needs argument(s)" form))
> + (error "rx `%s' needs argument(s)" form))
> (let* ((rx (rx-info (car form) 'head))
> (nargs (1- (length form)))
> (min-args (nth 1 rx))
> @@ -332,16 +332,16 @@ a standalone symbol."
> (type-pred (nth 3 rx)))
> (when (and (not (null min-args))
> (< nargs min-args))
> - (error "rx form ‘%s’ requires at least %d args"
> + (error "rx form `%s' requires at least %d args"
> (car form) min-args))
> (when (and (not (null max-args))
> (> nargs max-args))
> - (error "rx form ‘%s’ accepts at most %d args"
> + (error "rx form `%s' accepts at most %d args"
> (car form) max-args))
> (when (not (null type-pred))
> (dolist (sub-form (cdr form))
> (unless (funcall type-pred sub-form)
> - (error "rx form ‘%s’ requires args satisfying ‘%s’"
> + (error "rx form `%s' requires args satisfying `%s'"
> (car form) type-pred))))))
>
>
> @@ -395,7 +395,7 @@ FORM is of the form `(and FORM1 ...)'."
> (defun rx-anything (form)
> "Match any character."
> (if (consp form)
> - (error "rx ‘anything’ syntax error: %s" form))
> + (error "rx `anything' syntax error: %s" form))
> (rx-or (list 'or 'not-newline ?\n)))
>
>
> @@ -452,7 +452,7 @@ Only both edges of each range is checked."
> (let ((i 0)
> c1 c2 l)
> (if (= 0 (length str))
> - (error "String arg for Rx ‘any’ must not be empty"))
> + (error "String arg for Rx `any' must not be empty"))
> (while (string-match ".-." str i)
> ;; string before range: convert it to characters
> (if (< i (match-beginning 0))
> @@ -482,13 +482,13 @@ Only both edges of each range is checked."
> (error nil))))
> (if (or (null translation)
> (null (string-match "\\`\\[\\[:[-a-z]+:\\]\\]\\'" translation)))
> - (error "Invalid char class ‘%s’ in Rx ‘any’" arg))
> + (error "Invalid char class `%s' in Rx `any'" arg))
> (list (substring translation 1 -1)))) ; strip outer brackets
> ((and (integerp (car-safe arg)) (integerp (cdr-safe arg)))
> (list arg))
> ((stringp arg) (rx-check-any-string arg))
> ((error
> - "rx ‘any’ requires string, character, char pair or char class args"))))
> + "rx `any' requires string, character, char pair or char class args"))))
>
>
> (defun rx-any (form)
> @@ -581,7 +581,7 @@ ARG is optional."
> (eq arg 'word-boundary)
> (and (consp arg)
> (memq (car arg) '(not any in syntax category))))
> - (error "rx ‘not’ syntax error: %s" arg))
> + (error "rx `not' syntax error: %s" arg))
> t)
>
>
> @@ -640,7 +640,7 @@ If SKIP is non-nil, allow that number of items after the head, i.e.
> (setq form (rx-trans-forms form 1))
> (unless (and (integerp (nth 1 form))
> (> (nth 1 form) 0))
> - (error "rx ‘=’ requires positive integer first arg"))
> + (error "rx `=' requires positive integer first arg"))
> (format "%s\\{%d\\}" (rx-form (nth 2 form) '*) (nth 1 form)))
>
>
> @@ -650,7 +650,7 @@ If SKIP is non-nil, allow that number of items after the head, i.e.
> (setq form (rx-trans-forms form 1))
> (unless (and (integerp (nth 1 form))
> (> (nth 1 form) 0))
> - (error "rx ‘>=’ requires positive integer first arg"))
> + (error "rx `>=' requires positive integer first arg"))
> (format "%s\\{%d,\\}" (rx-form (nth 2 form) '*) (nth 1 form)))
>
>
> @@ -671,14 +671,14 @@ FORM is either `(repeat N FORM1)' or `(repeat N M FORMS...)'."
> (cond ((= (length form) 3)
> (unless (and (integerp (nth 1 form))
> (> (nth 1 form) 0))
> - (error "rx ‘repeat’ requires positive integer first arg"))
> + (error "rx `repeat' requires positive integer first arg"))
> (format "%s\\{%d\\}" (rx-form (nth 2 form) '*) (nth 1 form)))
> ((or (not (integerp (nth 2 form)))
> (< (nth 2 form) 0)
> (not (integerp (nth 1 form)))
> (< (nth 1 form) 0)
> (< (nth 2 form) (nth 1 form)))
> - (error "rx ‘repeat’ range error"))
> + (error "rx `repeat' range error"))
> (t
> (format "%s\\{%d,%d\\}" (rx-form (nth 3 form) '*)
> (nth 1 form) (nth 2 form)))))
> @@ -713,7 +713,7 @@ FORM is either `(repeat N FORM1)' or `(repeat N M FORMS...)'."
> (defun rx-check-backref (arg)
> "Check arg ARG for Rx `backref'."
> (or (and (integerp arg) (>= arg 1) (<= arg 9))
> - (error "rx ‘backref’ requires numeric 1<=arg<=9: %s" arg)))
> + (error "rx `backref' requires numeric 1<=arg<=9: %s" arg)))
>
> (defun rx-kleene (form)
> "Parse and produce code from FORM.
> @@ -786,7 +786,7 @@ of all atomic regexps."
> (if (= 1 (length name))
> (setq syntax (aref name 0))))))
> (unless syntax
> - (error "Unknown rx syntax ‘%s’" sym)))
> + (error "Unknown rx syntax `%s'" sym)))
> (format "\\s%c" syntax)))
>
>
> @@ -794,7 +794,7 @@ of all atomic regexps."
> "Check the argument FORM of a `(category FORM)'."
> (unless (or (integerp form)
> (cdr (assq form rx-categories)))
> - (error "Unknown category ‘%s’" form))
> + (error "Unknown category `%s'" form))
> t)
>
>
> @@ -846,16 +846,16 @@ shy groups around the result and some more in other functions."
> (cond ((stringp info)
> info)
> ((null info)
> - (error "Unknown rx form ‘%s’" form))
> + (error "Unknown rx form `%s'" form))
> (t
> (funcall (nth 0 info) form)))))
> ((consp form)
> (let ((info (rx-info (car form) 'head)))
> (unless (consp info)
> - (error "Unknown rx form ‘%s’" (car form)))
> + (error "Unknown rx form `%s'" (car form)))
> (funcall (nth 0 info) form)))
> (t
> - (error "rx syntax error at ‘%s’" form))))
> + (error "rx syntax error at `%s'" form))))
>
>
> ;;;###autoload
> diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el
> index a17b0a8..8dc9147 100644
> --- a/lisp/emacs-lisp/seq.el
> +++ b/lisp/emacs-lisp/seq.el
> @@ -252,14 +252,6 @@ If SEQ is empty, return INITIAL-VALUE and FUNCTION is not called."
> (setq acc (funcall function acc elt)))
> acc)))
>
> -(cl-defgeneric seq-some-p (pred seq)
> - "Return any element for which (PRED element) is non-nil in SEQ, nil otherwise."
> - (catch 'seq--break
> - (seq-doseq (elt seq)
> - (when (funcall pred elt)
> - (throw 'seq--break elt)))
> - nil))
> -
> (cl-defgeneric seq-every-p (pred seq)
> "Return non-nil if (PRED element) is non-nil for all elements of the sequence SEQ."
> (catch 'seq--break
> @@ -268,6 +260,16 @@ If SEQ is empty, return INITIAL-VALUE and FUNCTION is not called."
> (throw 'seq--break nil)))
> t))
>
> +(cl-defgeneric seq-some (pred seq)
> + "Return non-nil if (PRED element) is non-nil for any element in SEQ, nil otherwise.
> +If so, return the non-nil value returned by PRED."
> + (catch 'seq--break
> + (seq-doseq (elt seq)
> + (let ((result (funcall pred elt)))
> + (when result
> + (throw 'seq--break result))))
> + nil))
> +
> (cl-defgeneric seq-count (pred seq)
> "Return the number of elements for which (PRED element) is non-nil in SEQ."
> (let ((count 0))
> @@ -276,19 +278,19 @@ If SEQ is empty, return INITIAL-VALUE and FUNCTION is not called."
> (setq count (+ 1 count))))
> count))
>
> -(cl-defgeneric seq-contains-p (seq elt &optional testfn)
> +(cl-defgeneric seq-contains (seq elt &optional testfn)
> "Return the first element in SEQ that equals to ELT.
> Equality is defined by TESTFN if non-nil or by `equal' if nil."
> - (seq-some-p (lambda (e)
> - (funcall (or testfn #'equal) elt e))
> - seq))
> + (seq-some (lambda (e)
> + (funcall (or testfn #'equal) elt e))
> + seq))
>
> (cl-defgeneric seq-uniq (seq &optional testfn)
> "Return a list of the elements of SEQ with duplicates removed.
> TESTFN is used to compare elements, or `equal' if TESTFN is nil."
> (let ((result '()))
> (seq-doseq (elt seq)
> - (unless (seq-contains-p result elt testfn)
> + (unless (seq-contains result elt testfn)
> (setq result (cons elt result))))
> (nreverse result)))
>
> @@ -313,7 +315,7 @@ negative integer or 0, nil is returned."
> "Return a list of the elements that appear in both SEQ1 and SEQ2.
> Equality is defined by TESTFN if non-nil or by `equal' if nil."
> (seq-reduce (lambda (acc elt)
> - (if (seq-contains-p seq2 elt testfn)
> + (if (seq-contains seq2 elt testfn)
> (cons elt acc)
> acc))
> (seq-reverse seq1)
> @@ -323,7 +325,7 @@ Equality is defined by TESTFN if non-nil or by `equal' if nil."
> "Return a list of the elements that appear in SEQ1 but not in SEQ2.
> Equality is defined by TESTFN if non-nil or by `equal' if nil."
> (seq-reduce (lambda (acc elt)
> - (if (not (seq-contains-p seq2 elt testfn))
> + (if (not (seq-contains seq2 elt testfn))
> (cons elt acc)
> acc))
> (seq-reverse seq1)
> diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el
> index 9678cfa..0c24f79 100644
> --- a/lisp/emacs-lisp/smie.el
> +++ b/lisp/emacs-lisp/smie.el
> @@ -2213,13 +2213,13 @@ One way to generate local rules is the command `smie-config-guess'."
> (let* ((existing (assq major-mode smie-config))
> (config
> (cond ((null existing)
> - (message "Local rules saved in ‘smie-config’")
> + (message "Local rules saved in `smie-config'")
> smie-config--buffer-local)
> ((y-or-n-p "Replace the existing mode's config? ")
> - (message "Mode rules replaced in ‘smie-config’")
> + (message "Mode rules replaced in `smie-config'")
> smie-config--buffer-local)
> ((y-or-n-p "Merge with existing mode's config? ")
> - (message "Mode rules adjusted in ‘smie-config’")
> + (message "Mode rules adjusted in `smie-config'")
> (append smie-config--buffer-local (cdr existing)))
> (t (error "Abort")))))
> (if existing
> diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el
> index 9637e42..e6d451a 100644
> --- a/lisp/emacs-lisp/subr-x.el
> +++ b/lisp/emacs-lisp/subr-x.el
> @@ -90,7 +90,7 @@ threading."
> (when (> (length binding) 2)
> (signal
> 'error
> - (cons "‘let’ bindings can have only one value-form" binding)))
> + (cons "`let' bindings can have only one value-form" binding)))
> binding)
>
> (defsubst internal--build-binding-value-form (binding prev-var)
> diff --git a/lisp/emacs-lisp/tabulated-list.el b/lisp/emacs-lisp/tabulated-list.el
> index 404dbd1..cd61eb9 100644
> --- a/lisp/emacs-lisp/tabulated-list.el
> +++ b/lisp/emacs-lisp/tabulated-list.el
> @@ -129,7 +129,7 @@ no entry at POS. POS, if omitted or nil, defaults to point."
> TAG should be a string, with length <= `tabulated-list-padding'.
> If ADVANCE is non-nil, move forward by one line afterwards."
> (unless (stringp tag)
> - (error "Invalid argument to ‘tabulated-list-put-tag’"))
> + (error "Invalid argument to `tabulated-list-put-tag'"))
> (unless (> tabulated-list-padding 0)
> (error "Unable to tag the current line"))
> (save-excursion
> diff --git a/lisp/emacs-lisp/testcover.el b/lisp/emacs-lisp/testcover.el
> index 3e6039e..110c63f 100644
> --- a/lisp/emacs-lisp/testcover.el
> +++ b/lisp/emacs-lisp/testcover.el
> @@ -475,7 +475,7 @@ same value during coverage testing."
> (aset testcover-vector idx (cons '1value val)))
> ((not (and (eq (car-safe (aref testcover-vector idx)) '1value)
> (equal (cdr (aref testcover-vector idx)) val)))
> - (error "Value of form marked with ‘1value’ does vary: %s" val)))
> + (error "Value of form marked with `1value' does vary: %s" val)))
> val)
>
>
> diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el
> index 0a0296f..dca459f 100644
> --- a/lisp/emacs-lisp/timer.el
> +++ b/lisp/emacs-lisp/timer.el
> @@ -324,7 +324,7 @@ This function is called, by name, directly by the C code."
> (apply (timer--function timer) (timer--args timer)))
> (error (message "Error running timer%s: %S"
> (if (symbolp (timer--function timer))
> - (format-message " ‘%s’" (timer--function timer))
> + (format-message " `%s'" (timer--function timer))
> "")
> err)))
> (when (and retrigger
> diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
> index 8b3f6b4..93fcec8 100644
> --- a/lisp/emulation/viper-cmd.el
> +++ b/lisp/emulation/viper-cmd.el
> @@ -3449,7 +3449,7 @@ controlled by the sign of prefix numeric value."
> (setq viper-parse-sexp-ignore-comments
> (not viper-parse-sexp-ignore-comments))
> (princ (format-message
> - "From now on, ‘%%’ will %signore parentheses inside comment fields"
> + "From now on, `%%' will %signore parentheses inside comment fields"
> (if viper-parse-sexp-ignore-comments "" "NOT "))))
>
>
> @@ -3641,7 +3641,7 @@ the Emacs binding of `/'."
> (cond ((or (eq arg 1)
> (and (null arg)
> (y-or-n-p (format-message
> - "Search style: ‘%s’. Want ‘%s’? "
> + "Search style: `%s'. Want `%s'? "
> (if viper-case-fold-search
> "case-insensitive" "case-sensitive")
> (if viper-case-fold-search
> @@ -3654,7 +3654,7 @@ the Emacs binding of `/'."
> ((or (eq arg 2)
> (and (null arg)
> (y-or-n-p (format-message
> - "Search style: ‘%s’. Want ‘%s’? "
> + "Search style: `%s'. Want `%s'? "
> (if viper-re-search
> "regexp-search" "vanilla-search")
> (if viper-re-search
> @@ -3990,7 +3990,7 @@ Null string will repeat previous search."
> (if (or (not (buffer-modified-p buffer))
> (y-or-n-p
> (format-message
> - "Buffer ‘%s’ is modified, are you sure you want to kill it? "
> + "Buffer `%s' is modified, are you sure you want to kill it? "
> buffer-name)))
> (kill-buffer buffer)
> (error "Buffer not killed"))))
> @@ -4640,7 +4640,7 @@ One can use \\=`\\=` and \\='\\=' to temporarily jump 1 step back."
> reg (substring text (- pos s)))))
> (princ
> (format-message
> - "Textmarker ‘%c’ is in buffer ‘%s’ at line %d.\n"
> + "Textmarker `%c' is in buffer `%s' at line %d.\n"
> reg (buffer-name buf) line-no))
> (princ (format "Here is some text around %c:\n\n %s"
> reg text)))
> diff --git a/lisp/emulation/viper-init.el b/lisp/emulation/viper-init.el
> index e28c67a..092de55 100644
> --- a/lisp/emulation/viper-init.el
> +++ b/lisp/emulation/viper-init.el
> @@ -583,7 +583,7 @@ the Insert state."
>
> (defcustom viper-keep-point-on-repeat t
> "If t, don't move point when repeating previous command.
> -This is useful for doing repeated changes with the ‘.’ key.
> +This is useful for doing repeated changes with the `.' key.
> The user can change this to nil, if she likes when the cursor moves
> to a new place after repeating previous Vi command."
> :type 'boolean
> diff --git a/lisp/emulation/viper-keym.el b/lisp/emulation/viper-keym.el
> index 250c292..272556d 100644
> --- a/lisp/emulation/viper-keym.el
> +++ b/lisp/emulation/viper-keym.el
> @@ -502,7 +502,7 @@ ALIST is of the form ((key . func) (key . func) ...)
> Normally, this would be called from a hook to a major mode or
> on a per buffer basis.
> Usage:
> - (viper-add-local-keys state '((key-str . func) (key-str . func)...)) "
> + (viper-add-local-keys state \\='((key-str . func) (key-str . func)...)) "
>
> (let (map)
> (cond ((eq state 'vi-state)
> diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el
> index 4b33b42..4fa0779 100644
> --- a/lisp/emulation/viper-macs.el
> +++ b/lisp/emulation/viper-macs.el
> @@ -370,11 +370,11 @@ If SCOPE is nil, the user is asked to specify the scope."
> (cond
> ((y-or-n-p
> (format-message
> - "Map this macro for buffer ‘%s’ only? "
> + "Map this macro for buffer `%s' only? "
> (buffer-name)))
> (setq msg
> (format-message
> - "%S is mapped to %s for %s in ‘%s’"
> + "%S is mapped to %s for %s in `%s'"
> (viper-display-macro macro-name)
> (viper-abbreviate-string
> (format
> @@ -386,11 +386,11 @@ If SCOPE is nil, the user is asked to specify the scope."
> (buffer-name))
> ((y-or-n-p
> (format-message
> - "Map this macro for the major mode ‘%S’ only? "
> + "Map this macro for the major mode `%S' only? "
> major-mode))
> (setq msg
> (format-message
> - "%S is mapped to %s for %s in ‘%S’"
> + "%S is mapped to %s for %s in `%S'"
> (viper-display-macro macro-name)
> (viper-abbreviate-string
> (format
> diff --git a/lisp/env.el b/lisp/env.el
> index f50ed12..3966ab1 100644
> --- a/lisp/env.el
> +++ b/lisp/env.el
> @@ -175,7 +175,7 @@ a side-effect."
> (let ((codings (find-coding-systems-string (concat variable value))))
> (unless (or (eq 'undecided (car codings))
> (memq (coding-system-base locale-coding-system) codings))
> - (error "Can't encode ‘%s=%s’ with ‘locale-coding-system’"
> + (error "Can't encode `%s=%s' with `locale-coding-system'"
> variable (or value "")))))
> (and value
> substitute-env-vars
> @@ -185,7 +185,7 @@ a side-effect."
> (if (and value (multibyte-string-p value))
> (setq value (encode-coding-string value locale-coding-system)))
> (if (string-match "=" variable)
> - (error "Environment variable name ‘%s’ contains ‘=’" variable))
> + (error "Environment variable name `%s' contains `='" variable))
> (if (string-equal "TZ" variable)
> (set-time-zone-rule value))
> (setq process-environment (setenv-internal process-environment
> diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
> index eec6925..958c5ef 100644
> --- a/lisp/erc/erc-backend.el
> +++ b/lisp/erc/erc-backend.el
> @@ -1100,12 +1100,12 @@ Would expand to:
> add things to `erc-server-311-functions' instead.\"
> (do-stuff-with-whois proc parsed))
>
> - (puthash \"311\" 'erc-server-311-functions erc-server-responses)
> - (puthash \"WHOIS\" 'erc-server-WHOIS-functions erc-server-responses)
> - (puthash \"WI\" 'erc-server-WI-functions erc-server-responses)
> + (puthash \"311\" \\='erc-server-311-functions erc-server-responses)
> + (puthash \"WHOIS\" \\='erc-server-WHOIS-functions erc-server-responses)
> + (puthash \"WI\" \\='erc-server-WI-functions erc-server-responses)
>
> - (defalias 'erc-server-WHOIS 'erc-server-311)
> - (defvar erc-server-WHOIS-functions 'erc-server-311
> + (defalias \\='erc-server-WHOIS \\='erc-server-311)
> + (defvar erc-server-WHOIS-functions \\='erc-server-311
> \"Some non-generic variable documentation.
>
> Hook called upon receiving a WHOIS server response.
> @@ -1116,8 +1116,8 @@ Would expand to:
>
> See also `erc-server-311'.\")
>
> - (defalias 'erc-server-WI 'erc-server-311)
> - (defvar erc-server-WI-functions 'erc-server-311
> + (defalias \\='erc-server-WI \\='erc-server-311)
> + (defvar erc-server-WI-functions \\='erc-server-311
> \"Some non-generic variable documentation.
>
> Hook called upon receiving a WI server response.
> diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el
> index 6139e93..0e4c709 100644
> --- a/lisp/erc/erc-button.el
> +++ b/lisp/erc/erc-button.el
> @@ -512,7 +512,7 @@ Examples:
> (defun erc-nick-popup (nick)
> (let* ((completion-ignore-case t)
> (action (completing-read (format-message
> - "What action to take on ‘%s’? " nick)
> + "What action to take on `%s'? " nick)
> erc-nick-popup-alist))
> (code (cdr (assoc action erc-nick-popup-alist))))
> (when code
> diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el
> index bb6e311..0a9932d 100644
> --- a/lisp/erc/erc-dcc.el
> +++ b/lisp/erc/erc-dcc.el
> @@ -166,7 +166,7 @@ All values of the list must be uppercase strings.")
> "Return the first matching entry in `erc-dcc-list' which satisfies the
> constraints given as a plist in ARGS. Returns nil on no match.
>
> -The property :nick is treated specially, if it contains a ‘!’ character,
> +The property :nick is treated specially, if it contains a `!' character,
> it is treated as a nick!user@host string, and compared with the :nick property
> value of the individual elements using string-equal. Otherwise it is
> compared with `erc-nick-equal-p' which is IRC case-insensitive."
> diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
> index 726e9ed..62be63e 100644
> --- a/lisp/erc/erc.el
> +++ b/lisp/erc/erc.el
> @@ -230,7 +230,7 @@ prompt you for it.")
> (defcustom erc-hide-prompt nil
> "If non-nil, do not display the prompt for commands.
>
> -\(A command is any input starting with a ‘/’).
> +\(A command is any input starting with a `/').
>
> See also the variables `erc-prompt' and `erc-command-indicator'."
> :group 'erc-display
> @@ -667,7 +667,7 @@ See also the variable `erc-prompt'."
> "Indicator used by ERC for showing commands.
>
> If non-nil, this will be used in the ERC buffer to indicate
> -commands (i.e., input starting with a ‘/’).
> +commands (i.e., input starting with a `/').
>
> If nil, the prompt will be constructed from the variable `erc-prompt'."
> :group 'erc-display
> @@ -2789,7 +2789,7 @@ this function from interpreting the line as a command."
> (defun erc-cmd-SAY (line)
> "Send LINE to the current query or channel as a message, not a command.
>
> -Use this when you want to send a message with a leading ‘/’. Note
> +Use this when you want to send a message with a leading `/'. Note
> that since multi-line messages are never a command, you don't
> need this when pasting multiple lines of text."
> (if (string-match "^\\s-*$" line)
> @@ -3119,9 +3119,9 @@ a script after exceeding the flood threshold."
> (erc-display-message nil 'error (current-buffer)
> 'cannot-read-file ?f file))
> (t
> - (message "Loading ‘%s’..." file)
> + (message "Loading `%s'..." file)
> (erc-load-script file)
> - (message "Loading ‘%s’...done" file))))
> + (message "Loading `%s'...done" file))))
> t)
> (t nil)))
>
> @@ -3259,7 +3259,7 @@ The lines are shown in a buffer named `*Occur*'.
> It serves as a menu to find any of the occurrences in this buffer.
> \\[describe-mode] in that buffer will explain how.
>
> -If LINE contains upper case characters (excluding those preceded by ‘\\’),
> +If LINE contains upper case characters (excluding those preceded by `\\'),
> the matching is case-sensitive."
> (occur line)
> t)
> @@ -4466,7 +4466,7 @@ See also: `erc-echo-notice-in-user-buffers',
> "Handle the logging in process of connection."
> (unless erc-logged-in
> (setq erc-logged-in t)
> - (message "Logging in as ‘%s’... done" (erc-current-nick))
> + (message "Logging in as `%s'... done" (erc-current-nick))
> ;; execute a startup script
> (let ((f (erc-select-startup-file)))
> (when f
> @@ -5203,7 +5203,7 @@ So far the following TYPE/L pairs are supported:
>
> Event TYPE L
>
> - nickname change 'nick (NEW-NICK)"
> + nickname change `nick' (NEW-NICK)"
> (erc-log (format "user-change: type: %S nlh: %S l: %S" type nlh l))
> (cond
> ;; nickname change
> @@ -6512,7 +6512,7 @@ All windows are opened in the current frame."
> . "\n\nConnection failed! Not re-establishing connection.\n")
> (finished . "\n\n*** ERC finished ***\n")
> (terminated . "\n\n*** ERC terminated: %e\n")
> - (login . "Logging in as ‘%n’...")
> + (login . "Logging in as `%n'...")
> (nick-in-use . "%n is in use. Choose new nickname: ")
> (nick-too-long
> . "WARNING: Nick length (%i) exceeds max NICKLEN(%l) defined by server")
> diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el
> index 1bd7fbc..3960cd7 100644
> --- a/lisp/eshell/em-dirs.el
> +++ b/lisp/eshell/em-dirs.el
> @@ -301,7 +301,7 @@ Thus, this does not include the current directory.")
> eshell-user-names)))))))
>
> (defun eshell/pwd (&rest args)
> - "Change output from ‘pwd’ to be cleaner."
> + "Change output from `pwd' to be cleaner."
> (let* ((path default-directory)
> (len (length path)))
> (if (and (> len 1)
> @@ -365,7 +365,7 @@ in the minibuffer:
> (let ((curdir (eshell/pwd)))
> (if (string-match path curdir)
> (setq path (replace-match subpath nil nil curdir))
> - (error "Path substring ‘%s’ not found" path))))
> + (error "Path substring `%s' not found" path))))
> ((and path (string-match "^-\\([0-9]*\\)$" path))
> (let ((index (match-string 1 path)))
> (setq path
> diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el
> index 976882c..f2e67cc 100644
> --- a/lisp/eshell/em-glob.el
> +++ b/lisp/eshell/em-glob.el
> @@ -193,7 +193,7 @@ The basic syntax is:
> * .* matches any group of characters (or none)
> # * matches zero or more occurrences of preceding
> ## + matches one or more occurrences of preceding
> - (x) \(x\) makes ‘x’ a regular expression group
> + (x) \(x\) makes `x' a regular expression group
> | \| boolean OR within an expression group
> [a-b] [a-b] matches a character or range
> [^a] [^a] excludes a character or range
> @@ -220,7 +220,7 @@ resulting regular expression."
> matched-in-pattern (1+ op-begin))
> (let ((xlat (assq op-char eshell-glob-translate-alist)))
> (if (not xlat)
> - (error "Unrecognized globbing character ‘%c’" op-char)
> + (error "Unrecognized globbing character `%c'" op-char)
> (if (stringp (cdr xlat))
> (setq regexp (concat regexp (cdr xlat))
> matched-in-pattern (1+ op-begin))
> @@ -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-pred.el b/lisp/eshell/em-pred.el
> index 539080f..102795f 100644
> --- a/lisp/eshell/em-pred.el
> +++ b/lisp/eshell/em-pred.el
> @@ -172,18 +172,18 @@ PERMISSION BITS (for owner/group/world):
>
> OWNERSHIP:
> U owned by effective uid
> - u(UID|'user') owned by UID/user
> - g(GID|'group') owned by GID/group
> + u(UID|\\='user\\=') owned by UID/user
> + g(GID|\\='group\\=') owned by GID/group
>
> FILE ATTRIBUTES:
> l[+-]N +/-/= N links
> - a[Mwhms][+-](N|'FILE') access time +/-/= N months/weeks/hours/mins/secs
> + a[Mwhms][+-](N|\\='FILE\\=') access time +/-/= N months/weeks/hours/mins/secs
> (days if unspecified) if FILE specified,
> - use as comparison basis; so a+'file.c'
> + use as comparison basis; so a+\\='file.c\\='
> shows files accessed before file.c was
> last accessed
> - m[Mwhms][+-](N|'FILE') modification time...
> - c[Mwhms][+-](N|'FILE') change time...
> + m[Mwhms][+-](N|\\='FILE\\=') modification time...
> + c[Mwhms][+-](N|\\='FILE\\=') change time...
> L[kmp][+-]N file size +/-/= N Kb/Mb/blocks
>
> EXAMPLES:
> @@ -193,7 +193,7 @@ EXAMPLES:
> ***/*~f*(-/) recursively (though not traversing symlinks),
> find all directories (or symlinks referring to
> directories) whose names do not begin with f.
> - e*(*Lk+50) executables 50k or larger beginning with ‘e’")
> + e*(*Lk+50) executables 50k or larger beginning with `e'")
>
> (defvar eshell-modifier-help-string
> "Eshell modifier quick reference:
> @@ -318,7 +318,7 @@ resultant list of strings."
> (if (and func (functionp func))
> (setq preds (eshell-add-pred-func func preds
> negate follow))
> - (error "Invalid function predicate ‘%s’"
> + (error "Invalid function predicate `%s'"
> (eshell-stringify func))))
> (error "Invalid function predicate")))
> ((eq char ?^)
> @@ -336,20 +336,20 @@ resultant list of strings."
> (cons `(lambda (lst)
> (mapcar (function ,func) lst))
> mods))
> - (error "Invalid function modifier ‘%s’"
> + (error "Invalid function modifier `%s'"
> (eshell-stringify func))))
> (error "Invalid function modifier")))
> ((eq char ?:)
> (forward-char)
> (let ((mod (assq (char-after) eshell-modifier-alist)))
> (if (not mod)
> - (error "Unknown modifier character ‘%c’" (char-after))
> + (error "Unknown modifier character `%c'" (char-after))
> (forward-char)
> (setq mods (cons (eval (cdr mod)) mods)))))
> (t
> (let ((pred (assq char eshell-predicate-alist)))
> (if (not pred)
> - (error "Unknown predicate character ‘%c’" char)
> + (error "Unknown predicate character `%c'" char)
> (forward-char)
> (setq preds
> (eshell-add-pred-func (eval (cdr pred)) preds
> diff --git a/lisp/eshell/em-script.el b/lisp/eshell/em-script.el
> index 8e65e44..1a16e5e 100644
> --- a/lisp/eshell/em-script.el
> +++ b/lisp/eshell/em-script.el
> @@ -45,7 +45,7 @@ commands, as a script file."
> (defcustom eshell-login-script (expand-file-name "login" eshell-directory-name)
> "If non-nil, a file to invoke when starting up Eshell interactively.
> This file should be a file containing Eshell commands, where comment
> -lines begin with ‘#’."
> +lines begin with `#'."
> :type 'file
> :group 'eshell-script)
>
> @@ -89,7 +89,7 @@ This includes when running `eshell-command'."
>
> (defun eshell-source-file (file &optional args subcommand-p)
> "Execute a series of Eshell commands in FILE, passing ARGS.
> -Comments begin with ‘#’."
> +Comments begin with `#'."
> (interactive "f")
> (let ((orig (point))
> (here (point-max))
> diff --git a/lisp/eshell/esh-opt.el b/lisp/eshell/esh-opt.el
> index 4d28208..96d485b 100644
> --- a/lisp/eshell/esh-opt.el
> +++ b/lisp/eshell/esh-opt.el
> @@ -180,7 +180,7 @@ This code doesn't really need to be macro expanded everywhere."
> (concat usage
> (format-message "
> This command is implemented in Lisp. If an unrecognized option is
> -passed to this command, the external version ‘%s’
> +passed to this command, the external version `%s'
> will be called instead." extcmd)))))
> (throw 'eshell-usage usage)))
>
> diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el
> index 170779f..2565842 100644
> --- a/lisp/eshell/esh-util.el
> +++ b/lisp/eshell/esh-util.el
> @@ -88,7 +88,7 @@ specification of filenames (for example, in calling `find-file', or
> some other Lisp function that deals with files, not numbers), add the
> following in your init file:
>
> - (put 'find-file 'eshell-no-numeric-conversions t)
> + (put \\='find-file \\='eshell-no-numeric-conversions t)
>
> Any function with the property `eshell-no-numeric-conversions' set to
> a non-nil value, will be passed strings, not numbers, even when an
> diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el
> index f5110c3..0d94186 100644
> --- a/lisp/eshell/esh-var.el
> +++ b/lisp/eshell/esh-var.el
> @@ -116,7 +116,7 @@
> (require 'ring)
>
> (defgroup eshell-var nil
> - "Variable interpolation is introduced whenever the ‘$’ character
> + "Variable interpolation is introduced whenever the `$' character
> appears unquoted in any argument (except when that argument is
> surrounded by single quotes). It may be used to interpolate a
> variable value, a subcommand, or even the result of a Lisp form."
> diff --git a/lisp/facemenu.el b/lisp/facemenu.el
> index a90794f..3d58943 100644
> --- a/lisp/facemenu.el
> +++ b/lisp/facemenu.el
> @@ -797,10 +797,10 @@ This is called whenever you create a new face, and at other times."
> symbol (intern name)))
> (setq menu 'facemenu-face-menu)
> (setq docstring
> - (purecopy (format-message "Select face ‘%s’ for subsequent insertion.
> + (purecopy (format "Select face `%s' for subsequent insertion.
> If the mark is active and there is no prefix argument,
> -apply face ‘%s’ to the region instead.
> -This command was defined by ‘facemenu-add-new-face’."
> +apply face `%s' to the region instead.
> +This command was defined by `facemenu-add-new-face'."
> name name)))
> (cond ((facemenu-iterate ; check if equivalent face is already in the menu
> (lambda (m) (and (listp m)
> @@ -846,12 +846,12 @@ Return the event type (a symbol) of the added menu entry.
> This is called whenever you use a new color."
> (let (symbol)
> (unless (color-defined-p color)
> - (error "Color ‘%s’ undefined" color))
> + (error "Color `%s' undefined" color))
> (cond ((eq menu 'facemenu-foreground-menu)
> (setq symbol (intern (concat "fg:" color))))
> ((eq menu 'facemenu-background-menu)
> (setq symbol (intern (concat "bg:" color))))
> - (t (error "MENU should be ‘facemenu-foreground-menu’ or ‘facemenu-background-menu’")))
> + (t (error "MENU should be `facemenu-foreground-menu' or `facemenu-background-menu'")))
> (unless (facemenu-iterate ; Check if color is already in the menu.
> (lambda (m) (and (listp m)
> (eq (car m) symbol)))
> diff --git a/lisp/faces.el b/lisp/faces.el
> index 9e879c1..5485d80 100644
> --- a/lisp/faces.el
> +++ b/lisp/faces.el
> @@ -574,7 +574,7 @@ If FACE is a face-alias, get the documentation for the target face."
> (let ((alias (get face 'face-alias)))
> (if alias
> (let ((doc (get alias 'face-documentation)))
> - (format-message "%s is an alias for the face ‘%s’.%s" face alias
> + (format "%s is an alias for the face `%s'.%s" face alias
> (if doc (format "\n%s" doc)
> "")))
> (get face 'face-documentation))))
> @@ -1005,7 +1005,7 @@ a single face name."
> (setq default (car (split-string default crm-separator t))))
>
> (let ((prompt (if default
> - (format-message "%s (default ‘%s’): " prompt default)
> + (format-message "%s (default `%s'): " prompt default)
> (format "%s: " prompt)))
> aliasfaces nonaliasfaces faces)
> ;; Build up the completion tables.
> @@ -1137,8 +1137,8 @@ Value is the new attribute value."
> (let* ((completion-ignore-case t)
> (value (completing-read
> (format-message (if default
> - "%s for face ‘%s’ (default %s): "
> - "%s for face ‘%s’: ")
> + "%s for face `%s' (default %s): "
> + "%s for face `%s': ")
> name face default)
> completion-alist nil nil nil nil default)))
> (if (equal value "") default value)))
> @@ -1225,7 +1225,7 @@ of a global face. Value is the new attribute value."
> If optional argument FRAME is nil or omitted, use the selected frame."
> (let ((completion-ignore-case t))
> (completing-read (format-message
> - "Set font attributes of face ‘%s’ from font: " face)
> + "Set font attributes of face `%s' from font: " face)
> (append (fontset-list) (x-list-fonts "*" nil frame)))))
>
>
> @@ -1437,11 +1437,11 @@ If FRAME is omitted or nil, use the selected frame."
> (setq face alias)
> (insert
> (format-message
> - "\n %s is an alias for the face ‘%s’.\n%s"
> + "\n %s is an alias for the face `%s'.\n%s"
> f alias
> (if (setq obsolete (get f 'obsolete-face))
> (format-message
> - " This face is obsolete%s; use ‘%s’ instead.\n"
> + " This face is obsolete%s; use `%s' instead.\n"
> (if (stringp obsolete)
> (format " since %s" obsolete)
> "")
> @@ -1459,13 +1459,13 @@ If FRAME is omitted or nil, use the selected frame."
> (help-xref-button 1 'help-customize-face f)))
> (setq file-name (find-lisp-object-file-name f 'defface))
> (when file-name
> - (princ (substitute-command-keys "Defined in ‘"))
> + (princ (substitute-command-keys "Defined in `"))
> (princ (file-name-nondirectory file-name))
> - (princ (substitute-command-keys "’"))
> + (princ (substitute-command-keys "'"))
> ;; Make a hyperlink to the library.
> (save-excursion
> (re-search-backward
> - (substitute-command-keys "‘\\([^‘’]+\\)’") nil t)
> + (substitute-command-keys "`\\([^`']+\\)'") nil t)
> (help-xref-button 1 'help-face-def f file-name))
> (princ ".")
> (terpri)
> @@ -1552,7 +1552,7 @@ If FRAME is nil, the current FRAME is used."
> options))
> ((eq req 'supports)
> (display-supports-face-attributes-p options frame))
> - (t (error "Unknown req ‘%S’ with options ‘%S’"
> + (t (error "Unknown req `%S' with options `%S'"
> req options)))))
> match))
>
> @@ -1925,7 +1925,7 @@ resulting color name in the echo area."
> (logand 65535 (nth 0 components))
> (logand 65535 (nth 1 components))
> (logand 65535 (nth 2 components))))))))
> - (when msg (message "Color: ‘%s’" color))
> + (when msg (message "Color: `%s'" color))
> color))
>
> (defun face-at-point (&optional thing multiple)
> @@ -2778,13 +2778,13 @@ also the same size as FACE on FRAME, or fail."
> (if (string-match-p "\\*" pattern)
> (if (null (face-font face))
> (error "No matching fonts are the same height as the frame default font")
> - (error "No matching fonts are the same height as face ‘%s’" face))
> + (error "No matching fonts are the same height as face `%s'" face))
> (if (null (face-font face))
> - (error "Height of font ‘%s’ doesn't match the frame default font"
> + (error "Height of font `%s' doesn't match the frame default font"
> pattern)
> - (error "Height of font ‘%s’ doesn't match face ‘%s’"
> + (error "Height of font `%s' doesn't match face `%s'"
> pattern face)))
> - (error "No fonts match ‘%s’" pattern)))
> + (error "No fonts match `%s'" pattern)))
> (car fonts))
> (cdr (assq 'font (frame-parameters (selected-frame))))))
>
> diff --git a/lisp/ffap.el b/lisp/ffap.el
> index 975f726..8d3f8bf 100644
> --- a/lisp/ffap.el
> +++ b/lisp/ffap.el
> @@ -412,9 +412,9 @@ Optional SERVICE specifies the port used (default \"discard\").
> Optional QUIET flag suppresses the \"Pinging...\" message.
> Optional STRATEGY overrides the three variables above.
> Returned values:
> - t means that HOST answered.
> -'accept means the relevant variable told us to accept.
> -\"mesg\" means HOST exists, but does not respond for some reason."
> + t means that HOST answered.
> +`accept' means the relevant variable told us to accept.
> +\"mesg\" means HOST exists, but does not respond for some reason."
> ;; Try some (Emory local):
> ;; (ffap-machine-p "ftp" nil nil 'ping)
> ;; (ffap-machine-p "nonesuch" nil nil 'ping)
> diff --git a/lisp/filenotify.el b/lisp/filenotify.el
> index c94f631..5822cf0 100644
> --- a/lisp/filenotify.el
> +++ b/lisp/filenotify.el
> @@ -54,7 +54,7 @@ different files from the same directory are watched.")
> "Handle file system monitoring event.
> If EVENT is a filewatch event, call its callback. It has the format
>
> - \(file-notify (DESCRIPTOR ACTIONS FILE COOKIE) CALLBACK)
> + \(file-notify (DESCRIPTOR ACTIONS FILE [FILE1-OR-COOKIE]) CALLBACK)
>
> Otherwise, signal a `file-notify-error'."
> (interactive "e")
> @@ -64,10 +64,10 @@ Otherwise, signal a `file-notify-error'."
> (signal 'file-notify-error
> (cons "Not a valid file-notify event" event))))
>
> -(defvar file-notify--pending-events nil
> - "List of pending file notification events for a future `renamed' action.
> -The entries are a list (DESCRIPTOR ACTION FILE COOKIE). ACTION
> -is either `moved-from' or `renamed-from'.")
> +;; Needed for `inotify' and `w32notify'. In the latter case, COOKIE is nil.
> +(defvar file-notify--pending-event nil
> + "A pending file notification events for a future `renamed' action.
> +It is a form ((DESCRIPTOR ACTION FILE [FILE1-OR-COOKIE]) CALLBACK).")
>
> (defun file-notify--event-file-name (event)
> "Return file name of file notification event, or nil."
> @@ -92,26 +92,26 @@ This is available in case a file has been moved."
> ;; `inotify' returns the same descriptor when the file (directory)
> ;; uses the same inode. We want to distinguish, and apply a virtual
> ;; descriptor which make the difference.
> -(defun file-notify--descriptor (descriptor file)
> +(defun file-notify--descriptor (descriptor)
> "Return the descriptor to be used in `file-notify-*-watch'.
> For `gfilenotify' and `w32notify' it is the same descriptor as
> used in the low-level file notification package."
> (if (and (natnump descriptor) (eq file-notify--library 'inotify))
> - (cons descriptor file)
> + (cons descriptor
> + (car (cadr (gethash descriptor file-notify-descriptors))))
> descriptor))
>
> ;; The callback function used to map between specific flags of the
> ;; respective file notifications, and the ones we return.
> (defun file-notify-callback (event)
> "Handle an EVENT returned from file notification.
> -EVENT is the cdr of the event in `file-notify-handle-event'
> -\(DESCRIPTOR ACTIONS FILE COOKIE)."
> +EVENT is the cadr of the event in `file-notify-handle-event'
> +\(DESCRIPTOR ACTIONS FILE [FILE1-OR-COOKIE])."
> (let* ((desc (car event))
> (registered (gethash desc file-notify-descriptors))
> - (pending-event (assoc desc file-notify--pending-events))
> (actions (nth 1 event))
> (file (file-notify--event-file-name event))
> - file1 callback)
> + file1 callback pending-event)
>
> ;; Make actions a list.
> (unless (consp actions) (setq actions (cons actions nil)))
> @@ -129,22 +129,23 @@ EVENT is the cdr of the event in `file-notify-handle-event'
> (dolist (action actions)
>
> ;; Send pending event, if it doesn't match.
> - (when (and pending-event
> + (when (and file-notify--pending-event
> ;; The cookie doesn't match.
> - (not (eq (file-notify--event-cookie pending-event)
> + (not (eq (file-notify--event-cookie
> + (car file-notify--pending-event))
> (file-notify--event-cookie event)))
> (or
> ;; inotify.
> - (and (eq (nth 1 pending-event) 'moved-from)
> + (and (eq (nth 1 (car file-notify--pending-event))
> + 'moved-from)
> (not (eq action 'moved-to)))
> ;; w32notify.
> - (and (eq (nth 1 pending-event) 'renamed-from)
> + (and (eq (nth 1 (car file-notify--pending-event))
> + 'renamed-from)
> (not (eq action 'renamed-to)))))
> - (funcall callback
> - (list desc 'deleted
> - (file-notify--event-file-name pending-event)))
> - (setq file-notify--pending-events
> - (delete pending-event file-notify--pending-events)))
> + (setq pending-event file-notify--pending-event
> + file-notify--pending-event nil)
> + (setcar (cdar pending-event) 'deleted))
>
> ;; Map action. We ignore all events which cannot be mapped.
> (setq action
> @@ -156,46 +157,42 @@ EVENT is the cdr of the event in `file-notify-handle-event'
> (setq file1 (file-notify--event-file1-name event))
> 'renamed)
>
> - ;; inotify.
> + ;; inotify, w32notify.
> ((eq action 'attrib) 'attribute-changed)
> - ((eq action 'create) 'created)
> - ((eq action 'modify) 'changed)
> - ((memq action '(delete 'delete-self move-self)) 'deleted)
> + ((memq action '(create added)) 'created)
> + ((memq action '(modify modified)) 'changed)
> + ((memq action '(delete 'delete-self move-self removed)) 'deleted)
> ;; Make the event pending.
> - ((eq action 'moved-from)
> - (add-to-list 'file-notify--pending-events
> - (list desc action file
> - (file-notify--event-cookie event)))
> + ((memq action '(moved-from renamed-from))
> + (setq file-notify--pending-event
> + `((,desc ,action ,file ,(file-notify--event-cookie event))
> + ,callback))
> nil)
> ;; Look for pending event.
> - ((eq action 'moved-to)
> - (if (null pending-event)
> + ((memq action '(moved-to renamed-to))
> + (if (null file-notify--pending-event)
> 'created
> (setq file1 file
> - file (file-notify--event-file-name pending-event)
> - file-notify--pending-events
> - (delete pending-event file-notify--pending-events))
> - 'renamed))
> -
> - ;; w32notify.
> - ((eq action 'added) 'created)
> - ((eq action 'modified) 'changed)
> - ((eq action 'removed) 'deleted)
> - ;; Make the event pending.
> - ((eq action 'renamed-from)
> - (add-to-list 'file-notify--pending-events
> - (list desc action file
> - (file-notify--event-cookie event)))
> - nil)
> - ;; Look for pending event.
> - ((eq action 'renamed-to)
> - (if (null pending-event)
> - 'created
> - (setq file1 file
> - file (file-notify--event-file-name pending-event)
> - file-notify--pending-events
> - (delete pending-event file-notify--pending-events))
> - 'renamed))))
> + file (file-notify--event-file-name
> + (car file-notify--pending-event)))
> + ;; If the source is handled by another watch, we
> + ;; must fire the rename event there as well.
> + (when (not (eq (file-notify--descriptor desc)
> + (file-notify--descriptor
> + (caar file-notify--pending-event))))
> + (setq pending-event
> + `((,(caar file-notify--pending-event)
> + renamed ,file ,file1)
> + ,(cadr file-notify--pending-event))))
> + (setq file-notify--pending-event nil)
> + 'renamed))))
> +
> + ;; Apply pending callback.
> + (when pending-event
> + (setcar
> + (car pending-event) (file-notify--descriptor (caar pending-event)))
> + (funcall (cadr pending-event) (car pending-event))
> + (setq pending-event nil))
>
> ;; Apply callback.
> (when (and action
> @@ -213,12 +210,10 @@ EVENT is the cdr of the event in `file-notify-handle-event'
> (if file1
> (funcall
> callback
> - `(,(file-notify--descriptor desc (nth 0 entry))
> - ,action ,file ,file1))
> + `(,(file-notify--descriptor desc) ,action ,file ,file1))
> (funcall
> callback
> - `(,(file-notify--descriptor desc (nth 0 entry))
> - ,action ,file))))))))
> + `(,(file-notify--descriptor desc) ,action ,file))))))))
>
> ;; `gfilenotify' and `w32notify' return a unique descriptor for every
> ;; `file-notify-add-watch', while `inotify' returns a unique
> @@ -325,8 +320,7 @@ FILE is the name of the file whose event is being reported."
> file-notify-descriptors)
>
> ;; Return descriptor.
> - (file-notify--descriptor
> - desc (unless (file-directory-p file) (file-name-nondirectory file)))))
> + (file-notify--descriptor desc)))
>
> (defun file-notify-rm-watch (descriptor)
> "Remove an existing watch specified by its DESCRIPTOR.
> diff --git a/lisp/files-x.el b/lisp/files-x.el
> index 524ad49..a130ffc 100644
> --- a/lisp/files-x.el
> +++ b/lisp/files-x.el
> @@ -189,7 +189,7 @@ from the Local Variables list ignoring the input argument VALUE."
> (unless (let ((case-fold-search t))
> (goto-char beg)
> (search-forward "Local Variables:" nil t))
> - (throw 'exit (message "Can’t add file-local variables"))))
> + (throw 'exit (message "Can't add file-local variables"))))
>
> ;; prefix is what comes before "local variables:" in its line.
> ;; suffix is what comes after "local variables:" in its line.
> diff --git a/lisp/files.el b/lisp/files.el
> index f96ac09..c309f86 100644
> --- a/lisp/files.el
> +++ b/lisp/files.el
> @@ -995,10 +995,10 @@ directory if it does not exist."
> (put 'user-emacs-directory-warning 'this-session t)
> (display-warning 'initialization
> (format "\
> -Unable to %s ‘user-emacs-directory’ (%s).
> +Unable to %s `user-emacs-directory' (%s).
> Any data that would normally be written there may be lost!
> If you never want to see this message again,
> -customize the variable ‘user-emacs-directory-warning’."
> +customize the variable `user-emacs-directory-warning'."
> errtype user-emacs-directory)))))
> bestname))))
>
> @@ -1641,7 +1641,7 @@ killed."
> (user-error "Aborted"))
> (and (buffer-modified-p) buffer-file-name
> (not (yes-or-no-p
> - (format-message "Kill and replace buffer ‘%s’ without saving it? "
> + (format-message "Kill and replace buffer `%s' without saving it? "
> (buffer-name))))
> (user-error "Aborted"))
> (let ((obuf (current-buffer))
> @@ -2789,7 +2789,7 @@ we don't actually set it to the same mode the buffer already has."
> (catch 'nop
> (dolist (mode (nreverse modes))
> (if (not (functionp mode))
> - (message "Ignoring unknown mode ‘%s’" mode)
> + (message "Ignoring unknown mode `%s'" mode)
> (setq done t)
> (or (set-auto-mode-0 mode keep-mode-if-same)
> ;; continuing would call minor modes again, toggling them off
> @@ -2803,7 +2803,7 @@ we don't actually set it to the same mode the buffer already has."
> (setq mode (hack-local-variables t))
> (not (memq mode modes)) ; already tried and failed
> (if (not (functionp mode))
> - (message "Ignoring unknown mode ‘%s’" mode)
> + (message "Ignoring unknown mode `%s'" mode)
> (setq done t)
> (set-auto-mode-0 mode keep-mode-if-same)))
> ;; If we didn't, look for an interpreter specified in the first line.
> @@ -3420,7 +3420,7 @@ local variables, but directory-local variables may still be applied."
> (display-warning
> :warning
> (format-message
> - "%s: ‘lexical-binding’ at end of file unreliable"
> + "%s: `lexical-binding' at end of file unreliable"
> (file-name-nondirectory
> (or buffer-file-name ""))))))
> (t
> @@ -3557,7 +3557,7 @@ It is dangerous if either of these conditions are met:
> var (if since (format " (since %s)" since))
> (if (stringp instead)
> (substitute-command-keys instead)
> - (format-message "use ‘%s’ instead" instead)))))))
> + (format-message "use `%s' instead" instead)))))))
>
> (defun hack-one-local-variable (var val)
> "Set local variable VAR with value VAL.
> @@ -3674,7 +3674,7 @@ variables from CLASS are applied to the buffer. The variables
> for a class are defined using `dir-locals-set-class-variables'."
> (setq directory (file-name-as-directory (expand-file-name directory)))
> (unless (assq class dir-locals-class-alist)
> - (error "No such class ‘%s’" (symbol-name class)))
> + (error "No such class `%s'" (symbol-name class)))
> (push (list directory class mtime) dir-locals-directory-cache))
>
> (defun dir-locals-set-class-variables (class variables)
> @@ -4030,7 +4030,7 @@ Interactively, confirmation is required unless you supply a prefix argument."
> (listp last-nonmenu-event)
> use-dialog-box))
> (or (y-or-n-p (format-message
> - "File ‘%s’ exists; overwrite? " filename))
> + "File `%s' exists; overwrite? " filename))
> (user-error "Canceled")))
> (set-visited-file-name filename (not confirm))))
> (set-buffer-modified-p t)
> @@ -4736,7 +4736,7 @@ Before and after saving the buffer, this function runs
> ;; existing directory.
> (error "%s is a directory" filename)
> (unless (y-or-n-p (format-message
> - "File ‘%s’ exists; overwrite? "
> + "File `%s' exists; overwrite? "
> filename))
> (error "Canceled"))))
> (set-visited-file-name filename)))
> @@ -4778,7 +4778,7 @@ Before and after saving the buffer, this function runs
> (unless (file-exists-p dir)
> (if (y-or-n-p
> (format-message
> - "Directory ‘%s’ does not exist; create? " dir))
> + "Directory `%s' does not exist; create? " dir))
> (make-directory dir t)
> (error "Canceled")))
> (setq setmodes (basic-save-buffer-1))))
> @@ -5221,7 +5221,7 @@ given. With a prefix argument, TRASH is nil."
> (list dir
> (if (directory-files dir nil directory-files-no-dot-files-regexp)
> (y-or-n-p
> - (format-message "Directory ‘%s’ is not empty, really %s? "
> + (format-message "Directory `%s' is not empty, really %s? "
> dir (if trashing "trash" "delete")))
> nil)
> (null current-prefix-arg))))
> @@ -5327,7 +5327,7 @@ directly into NEWNAME instead."
> default-directory default-directory nil nil)
> current-prefix-arg t nil)))
> (when (file-in-directory-p newname directory)
> - (error "Cannot copy ‘%s’ into its subdirectory ‘%s’"
> + (error "Cannot copy `%s' into its subdirectory `%s'"
> directory newname))
> ;; If default-directory is a remote directory, make sure we find its
> ;; copy-directory handler.
> @@ -5699,7 +5699,7 @@ To choose one, move point to the proper line and then type C-c C-c.
> Then you'll be asked about a number of files to recover."
> (interactive)
> (if (null auto-save-list-file-prefix)
> - (error "You set ‘auto-save-list-file-prefix’ to disable making session files"))
> + (error "You set `auto-save-list-file-prefix' to disable making session files"))
> (let ((dir (file-name-directory auto-save-list-file-prefix))
> (nd (file-name-nondirectory auto-save-list-file-prefix)))
> (unless (file-directory-p dir)
> @@ -5793,7 +5793,7 @@ This command is used in the special Dired buffer created by
> (condition-case nil
> (save-excursion (recover-file file))
> (error
> - "Failed to recover ‘%s’" file)))
> + "Failed to recover `%s'" file)))
> files
> '("file" "files" "recover"))
> (message "No files can be recovered from this session now")))
> @@ -6478,7 +6478,7 @@ normally equivalent short `-D' option is just passed on to
> file result)
> ;; Unix. Access the file to get a suitable error.
> (access-file file "Reading directory")
> - (error "Listing directory failed but ‘access-file’ worked")))
> + (error "Listing directory failed but `access-file' worked")))
>
> (when (if (stringp switches)
> (string-match "--dired\\>" switches)
> @@ -6771,7 +6771,7 @@ for the specified category of users."
> ((= char ?g) #o2070)
> ((= char ?o) #o1007)
> ((= char ?a) #o7777)
> - (t (error "%c: bad ‘who’ character" char))))
> + (t (error "%c: bad `who' character" char))))
>
> (defun file-modes-char-to-right (char &optional from)
> "Convert CHAR to a numeric value of mode bits.
> @@ -6843,7 +6843,7 @@ as in \"og+rX-w\"."
> (file-modes-rights-to-number (substring modes (match-end 1))
> num-who num-modes)
> modes (substring modes (match-end 3))))
> - (error "Parse error in modes near ‘%s’" (substring modes 0))))
> + (error "Parse error in modes near `%s'" (substring modes 0))))
> num-modes)))
>
> (defun read-file-modes (&optional prompt orig-file)
> @@ -6912,7 +6912,7 @@ Otherwise, trash FILENAME using the freedesktop.org conventions,
> trash-dir)))
> ;; We can't trash a parent directory of trash-directory.
> (if (string-prefix-p fn trash-dir)
> - (error "Trash directory ‘%s’ is a subdirectory of ‘%s’"
> + (error "Trash directory `%s' is a subdirectory of `%s'"
> trash-dir filename))
> (unless (file-directory-p trash-dir)
> (make-directory trash-dir t))
> diff --git a/lisp/filesets.el b/lisp/filesets.el
> index c098879..464c7c3 100644
> --- a/lisp/filesets.el
> +++ b/lisp/filesets.el
> @@ -679,14 +679,14 @@ variables my-ps-viewer, my-pdf-viewer, my-dvi-viewer, my-pic-viewer.
> In order to view pdf or rtf files in an Emacs buffer, you could use these:
>
>
> - \(\"^.+\\\\.pdf\\\\'\" \"pdftotext\"
> + \(\"^.+\\\\.pdf\\\\\\='\" \"pdftotext\"
> \((:capture-output t)
> \(:args (\"%S - | fmt -w \" window-width))
> \(:ignore-on-read-text t)
> \(:constraintp (lambda ()
> \(and \(filesets-which-command-p \"pdftotext\")
> \(filesets-which-command-p \"fmt\"))))))
> - \(\"^.+\\\\.rtf\\\\'\" \"rtf2htm\"
> + \(\"^.+\\\\.rtf\\\\\\='\" \"rtf2htm\"
> \((:capture-output t)
> \(:args (\"%S 2> /dev/null | w3m -dump -T text/html\"))
> \(:ignore-on-read-text t)
> @@ -1799,7 +1799,7 @@ User will be queried, if no fileset name is provided."
> (current-buffer)))
> (name (or name
> (completing-read
> - (format-message "Add ‘%s’ to fileset: " buffer)
> + (format-message "Add `%s' to fileset: " buffer)
> filesets-data nil)))
> (entry (or (assoc name filesets-data)
> (when (y-or-n-p
> @@ -1819,13 +1819,13 @@ User will be queried, if no fileset name is provided."
> :test 'filesets-files-equalp)))
> (cond
> (inlist
> - (message "Filesets: ‘%s’ is already in ‘%s’" this name))
> + (message "Filesets: `%s' is already in `%s'" this name))
> ((and (equal (filesets-entry-mode entry) ':files)
> this)
> (filesets-entry-set-files entry (cons this files) t)
> (filesets-set-config name 'filesets-data filesets-data))
> (t
> - (message "Filesets: Can't add ‘%s’ to fileset ‘%s’" this name)))))))
> + (message "Filesets: Can't add `%s' to fileset `%s'" this name)))))))
>
> (defun filesets-remove-buffer (&optional name buffer)
> "Remove BUFFER (or current buffer) to fileset NAME.
> @@ -1835,7 +1835,7 @@ User will be queried, if no fileset name is provided."
> (current-buffer)))
> (name (or name
> (completing-read
> - (format-message "Remove ‘%s’ from fileset: " buffer)
> + (format-message "Remove `%s' from fileset: " buffer)
> filesets-data nil t)))
> (entry (assoc name filesets-data)))
> (if entry
> @@ -1848,7 +1848,7 @@ User will be queried, if no fileset name is provided."
> (let ((new (list (cons ':files (delete (car inlist) files)))))
> (setcdr entry new)
> (filesets-set-config name 'filesets-data filesets-data))
> - (message "Filesets: Can't remove ‘%s’ from fileset ‘%s’"
> + (message "Filesets: Can't remove `%s' from fileset `%s'"
> this
> name))))))
>
> @@ -2441,30 +2441,30 @@ fileset thinks this is necessary or not."
> "Filesets: manual editing of user data required!
>
> Filesets has detected that you were using an older version before,
> -which requires some manual updating. Type ‘y’ for editing the startup
> +which requires some manual updating. Type `y' for editing the startup
> file now.
>
> -The layout of ‘filesets-data’ has changed. Please delete your cache file
> +The layout of `filesets-data' has changed. Please delete your cache file
> and edit your startup file as shown below:
>
> -1. ‘filesets-data’: Edit all :pattern filesets in your startup file and
> +1. `filesets-data': Edit all :pattern filesets in your startup file and
> transform all entries as shown in this example:
>
> \(\"Test\" (:pattern \"~/dir/^pattern$\"))
> --> \(\"Test\" (:pattern \"~/dir/\" \"^pattern$\"))
>
> -2. ‘filesets-data’: Change all occurrences of \":document\" to \":ingroup\":
> +2. `filesets-data': Change all occurrences of \":document\" to \":ingroup\":
>
> \(\(\"Test\" \(:document \"~/dir/file\"))
> --> \(\(\"Test\" \(:ingroup \"~/dir/file\"))
>
> -3. ‘filesets-subdocument-patterns’: If you already modified the variable
> -previously called ‘filesets-subdocument-patterns’, change its name to
> -‘filesets-ingroup-patterns’.
> +3. `filesets-subdocument-patterns': If you already modified the variable
> +previously called `filesets-subdocument-patterns', change its name to
> +`filesets-ingroup-patterns'.
>
> -4. ‘filesets-menu-cache-contents’: If you already modified this
> -variable, change the entry ‘filesets-subdocument--cache’ to
> -‘filesets-ingroup-cache’.
> +4. `filesets-menu-cache-contents': If you already modified this
> +variable, change the entry `filesets-subdocument--cache' to
> +`filesets-ingroup-cache'.
>
> 5. Type M-x filesets-update-cleanup and restart Emacs.
>
> diff --git a/lisp/find-cmd.el b/lisp/find-cmd.el
> index 8e41906..d78a0b3 100644
> --- a/lisp/find-cmd.el
> +++ b/lisp/find-cmd.el
> @@ -209,7 +209,7 @@ args that OPTION can receive and ARGS are the arguments for OPTION.
> If DONT-QUOTE is non-nil, arguments are quoted for passing them to
> the shell."
> (when (and (numberp argcount) (< (length args) argcount))
> - (error "‘%s’ needs at least %d arguments" option argcount))
> + (error "`%s' needs at least %d arguments" option argcount))
> (let ((oper (or oper 'find-or)))
> (if (and args (length args))
> (funcall oper (mapcar (lambda (x)
> @@ -247,7 +247,7 @@ them into valid switches. The result is -and(ed) together."
> (find-to-string
> (find-generic option oper argcnt (cdr form) dont-quote))))
> (t
> - (error "Sorry I don't know how to handle ‘%s’" (car form))))))))
> + (error "Sorry I don't know how to handle `%s'" (car form))))))))
>
> (provide 'find-cmd)
>
> diff --git a/lisp/finder.el b/lisp/finder.el
> index 51226ae..715dd94 100644
> --- a/lisp/finder.el
> +++ b/lisp/finder.el
> @@ -393,7 +393,7 @@ FILE should be in a form suitable for passing to `locate-library'."
> (if (locate-library (match-string 1))
> (make-text-button (match-beginning 1) (match-end 1)
> 'xref (match-string-no-properties 1)
> - 'help-echo "Read this file’s commentary"
> + 'help-echo "Read this file's commentary"
> :type 'finder-xref)))
> (goto-char (point-min))
> (setq buffer-read-only t)
> diff --git a/lisp/font-lock.el b/lisp/font-lock.el
> index b74b603..cec95bf 100644
> --- a/lisp/font-lock.el
> +++ b/lisp/font-lock.el
> @@ -538,12 +538,13 @@ and what they do:
> dollar-sign character. Hash characters in other contexts will still
> follow whatever the syntax table says about the hash character.
>
> - (\"\\\\('\\\\).\\\\('\\\\)\"
> + (\"\\\\(\\='\\\\).\\\\(\\='\\\\)\"
> (1 \"\\\"\")
> (2 \"\\\"\"))
>
> - gives a pair single-quotes, which surround a single character, a SYNTAX of
> - \"\\\"\" (meaning string quote syntax). Single-quote characters in other
> + gives a pair of apostrophes, which surround a single character, a
> + SYNTAX of \"\\\"\" (meaning string quote syntax). Apostrophes in other
> +
> contexts will not be affected.
>
> This is normally set via `font-lock-defaults'.")
> @@ -1051,7 +1052,7 @@ The region it returns may start or end in the middle of a line.")
> ;; Of course, this function doesn't do all of the above in all situations
> ;; (e.g. depending on whether jit-lock is in use) and it can't guess what
> ;; the caller wants.
> - (interactive-only "use ‘font-lock-ensure’ or ‘font-lock-flush’ instead."))
> + (interactive-only "use `font-lock-ensure' or `font-lock-flush' instead."))
> (interactive "p")
> (font-lock-set-defaults)
> (let ((font-lock-verbose (or font-lock-verbose interactively)))
> diff --git a/lisp/format.el b/lisp/format.el
> index 7ab68c8..dbc814e 100644
> --- a/lisp/format.el
> +++ b/lisp/format.el
> @@ -395,7 +395,7 @@ unless you supply a prefix argument."
> (cdr (assq 'default-directory
> (buffer-local-variables)))
> nil nil (buffer-name))))
> - (fmt (format-read (format-message "Write file ‘%s’ in format: "
> + (fmt (format-read (format-message "Write file `%s' in format: "
> (file-name-nondirectory file)))))
> (list file fmt (not current-prefix-arg))))
> (let ((old-formats buffer-file-format)
> @@ -416,7 +416,7 @@ If FORMAT is nil then do not do any format conversion."
> (interactive
> ;; Same interactive spec as write-file, plus format question.
> (let* ((file (read-file-name "Find file: "))
> - (fmt (format-read (format-message "Read file ‘%s’ in format: "
> + (fmt (format-read (format-message "Read file `%s' in format: "
> (file-name-nondirectory file)))))
> (list file fmt)))
> (let ((format-alist nil))
> @@ -435,7 +435,7 @@ a list (ABSOLUTE-FILE-NAME SIZE)."
> (interactive
> ;; Same interactive spec as write-file, plus format question.
> (let* ((file (read-file-name "Find file: "))
> - (fmt (format-read (format-message "Read file ‘%s’ in format: "
> + (fmt (format-read (format-message "Read file `%s' in format: "
> (file-name-nondirectory file)))))
> (list file fmt)))
> (let (value size old-undo)
> diff --git a/lisp/frame.el b/lisp/frame.el
> index 3abb72c..bbf0a63 100644
> --- a/lisp/frame.el
> +++ b/lisp/frame.el
> @@ -743,7 +743,7 @@ the name of an X display device (HOST.SERVER.SCREEN) or a tty device file."
> (frame-terminal f)))
> ((terminal-live-p device) device)
> (t
> - (error "Invalid argument %s in ‘get-device-terminal’" device))))
> + (error "Invalid argument %s in `get-device-terminal'" device))))
>
> (defun frames-on-display-list (&optional device)
> "Return a list of all frames on DEVICE.
> @@ -894,7 +894,7 @@ If there is no frame by that name, signal an error."
> (frame (cdr (assoc name frame-names-alist))))
> (if frame
> (select-frame-set-input-focus frame)
> - (error "There is no frame named ‘%s’" name))))
> + (error "There is no frame named `%s'" name))))
>
>
> ;;;; Background mode.
> diff --git a/lisp/fringe.el b/lisp/fringe.el
> index f982b35..8f40c46 100644
> --- a/lisp/fringe.el
> +++ b/lisp/fringe.el
> @@ -122,7 +122,7 @@ See `fringe-mode' for possible values and their effect."
> (and (consp style)
> (or (null (car style)) (integerp (car style)))
> (or (null (cdr style)) (integerp (cdr style))))
> - (error "Invalid fringe style ‘%s’" style)))
> + (error "Invalid fringe style `%s'" style)))
>
> ;; For initialization of fringe-mode, take account of changes
> ;; made explicitly to default-frame-alist.
> diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el
> index 3256231..ab22ab8 100644
> --- a/lisp/gnus/gmm-utils.el
> +++ b/lisp/gnus/gmm-utils.el
> @@ -328,7 +328,7 @@ compatibility with versions of Emacs that lack the variable
>
> (let* ((load-path (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\"))
> (image-load-path (cons (car load-path)
> - (when (boundp 'image-load-path)
> + (when (boundp \\='image-load-path)
> image-load-path))))
> (mh-tool-bar-folder-buttons-init))"
> (unless library (error "No library specified"))
> diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
> index 01eb6c5..8ad81c9 100644
> --- a/lisp/gnus/gnus-art.el
> +++ b/lisp/gnus/gnus-art.el
> @@ -195,16 +195,16 @@ this list."
> "Headers that are only to be displayed if they have interesting data.
> Possible values in this list are:
>
> - 'empty Headers with no content.
> - 'newsgroups Newsgroup identical to Gnus group.
> - 'to-address To identical to To-address.
> - 'to-list To identical to To-list.
> - 'cc-list CC identical to To-list.
> - 'followup-to Followup-to identical to Newsgroups.
> - 'reply-to Reply-to identical to From.
> - 'date Date less than four days old.
> - 'long-to To and/or Cc longer than 1024 characters.
> - 'many-to Multiple To and/or Cc."
> + `empty' Headers with no content.
> + `newsgroups' Newsgroup identical to Gnus group.
> + `to-address' To identical to To-address.
> + `to-list' To identical to To-list.
> + `cc-list' CC identical to To-list.
> + `followup-to' Followup-to identical to Newsgroups.
> + `reply-to' Reply-to identical to From.
> + `date' Date less than four days old.
> + `long-to' To and/or Cc longer than 1024 characters.
> + `many-to' Multiple To and/or Cc."
> :type '(set (const :tag "Headers with no content." empty)
> (const :tag "Newsgroups identical to Gnus group." newsgroups)
> (const :tag "To identical to To-address." to-address)
> @@ -661,7 +661,7 @@ For instance, if you would like to save articles related to Gnus in
> the file \"gnus-stuff\", and articles related to VM in \"vm-stuff\",
> you could set this variable to something like:
>
> - '((\"^Subject:.*gnus\\|^Newsgroups:.*gnus\" \"gnus-stuff\")
> + ((\"^Subject:.*gnus\\|^Newsgroups:.*gnus\" \"gnus-stuff\")
> (\"^Subject:.*vm\\|^Xref:.*vm\" \"vm-stuff\"))
>
> This variable is an alist where the key is the match and the
> diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
> index b233ad7..23c79cb 100644
> --- a/lisp/gnus/gnus-registry.el
> +++ b/lisp/gnus/gnus-registry.el
> @@ -194,17 +194,17 @@ are tracked this way by default."
> "The splitting strategy applied to the keys in `gnus-registry-track-extra'.
>
> Given a set of unique found groups G and counts for each element
> -of G, and a key K (typically 'sender or 'subject):
> +of G, and a key K (typically `sender' or `subject'):
>
> When nil, if G has only one element, use it. Otherwise give up.
> This is the fastest but also least useful strategy.
>
> -When 'majority, use the majority by count. So if there is a
> +When `majority', use the majority by count. So if there is a
> group with the most articles counted by K, use that. Ties are
> resolved in no particular order, simply the first one found wins.
> This is the slowest strategy but also the most accurate one.
>
> -When 'first, the first element of G wins. This is fast and
> +When `first', the first element of G wins. This is fast and
> should be OK if your senders and subjects don't \"bleed\" across
> groups."
> :group 'gnus-registry
> diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
> index 82a2c98..e267b6a 100644
> --- a/lisp/gnus/gnus-start.el
> +++ b/lisp/gnus/gnus-start.el
> @@ -122,9 +122,10 @@ This variable can be a list of select methods which Gnus will query with
> the `ask-server' method in addition to the primary, secondary, and archive
> servers.
>
> +
> E.g.:
> (setq gnus-check-new-newsgroups
> - '((nntp \"some.server\") (nntp \"other.server\")))
> + \\='((nntp \"some.server\") (nntp \"other.server\")))
>
> If this variable is nil, then you have to tell Gnus explicitly to
> check for new newsgroups with \\<gnus-group-mode-map>\\[gnus-find-new-newsgroups]."
> diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
> index 6b90204..d4ca655 100644
> --- a/lisp/gnus/gnus-sum.el
> +++ b/lisp/gnus/gnus-sum.el
> @@ -997,7 +997,7 @@ following hook:
> (mail-header-set-subject
> header
> (gnus-simplify-subject
> - (mail-header-subject header) 're-only)))
> + (mail-header-subject header) \\='re-only)))
> gnus-newsgroup-headers)))"
> :group 'gnus-group-select
> :type 'hook)
> diff --git a/lisp/gnus/gnus-uu.el b/lisp/gnus/gnus-uu.el
> index 881ff4e..f216466 100644
> --- a/lisp/gnus/gnus-uu.el
> +++ b/lisp/gnus/gnus-uu.el
> @@ -143,7 +143,7 @@ details."
> To use, for instance, `untar' to unpack tar files and `zip -x' to
> unpack zip files, say the following:
> (setq gnus-uu-user-archive-rules
> - '((\"\\\\.tar$\" \"untar\")
> + \\='((\"\\\\.tar$\" \"untar\")
> (\"\\\\.zip$\" \"zip -x\")))"
> :group 'gnus-extract-archive
> :type '(repeat (group regexp (string :tag "Command"))))
> diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
> index 6362d9a..ea26216 100644
> --- a/lisp/gnus/gnus.el
> +++ b/lisp/gnus/gnus.el
> @@ -1362,7 +1362,7 @@ If you want to save your mail in one group and the news articles you
> write in another group, you could say something like:
>
> \(setq gnus-message-archive-group
> - '((if (message-news-p)
> + \\='((if (message-news-p)
> \"misc-news\"
> \"misc-mail\")))
>
> @@ -2396,7 +2396,7 @@ less space and be faster as a result.
> This variable can also be a list of visual elements to switch on. For
> instance, to switch off all visual things except menus, you can say:
>
> - (setq gnus-visual '(menu))
> + (setq gnus-visual \\='(menu))
>
> Valid elements include `summary-highlight', `group-highlight',
> `article-highlight', `mouse-face', `summary-menu', `group-menu',
> diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
> index ad135d4..cf18fbe 100644
> --- a/lisp/gnus/mail-source.el
> +++ b/lisp/gnus/mail-source.el
> @@ -1090,10 +1090,13 @@ This only works when `display-time' is enabled."
> (if (and (imap-open server port stream authentication buf)
> (imap-authenticate
> user (or (cdr (assoc from mail-source-password-cache))
> - password) buf)
> - (imap-mailbox-select mailbox nil buf))
> + password) buf))
> + (let ((mailbox-list (if (listp mailbox) mailbox (list mailbox))))
> + (dolist (mailbox mailbox-list)
> + (when (imap-mailbox-select mailbox nil buf)
> (let ((coding-system-for-write mail-source-imap-file-coding-system)
> str)
> + (message "Fetching from %s..." mailbox)
> (with-temp-file mail-source-crash-box
> ;; Avoid converting 8-bit chars from inserted strings to
> ;; multibyte.
> @@ -1128,8 +1131,8 @@ This only works when `display-time' is enabled."
> fetchflag nil buf))
> (if dontexpunge
> (imap-mailbox-unselect buf)
> - (imap-mailbox-close nil buf))
> - (imap-close buf))
> + (imap-mailbox-close nil buf)))))
> + (imap-close buf))
> (imap-close buf)
> ;; We nix out the password in case the error
> ;; was because of a wrong password being given.
> diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
> index 0f6f63e..5ede15b 100644
> --- a/lisp/gnus/message.el
> +++ b/lisp/gnus/message.el
> @@ -1131,7 +1131,7 @@ Presets to impersonate popular mail agents are found in the
> message-cite-style-* variables. This variable is intended for
> use in `gnus-posting-styles', such as:
>
> - ((posting-from-work-p) (eval (set (make-local-variable 'message-cite-style) message-cite-style-outlook)))"
> + ((posting-from-work-p) (eval (set (make-local-variable \\='message-cite-style) message-cite-style-outlook)))"
> :version "24.1"
> :group 'message-insertion
> :type '(choice (const :tag "Do not override variables" :value nil)
> diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
> index 20ba0a3..ac228f9 100644
> --- a/lisp/gnus/nnimap.el
> +++ b/lisp/gnus/nnimap.el
> @@ -807,6 +807,7 @@ textual parts.")
> nil
> group)
> server))
> + (info (when info (list info)))
> active)
> (with-current-buffer nntp-server-buffer
> (when result
> @@ -814,10 +815,11 @@ textual parts.")
> (not (setq active
> (nth 2 (assoc group nnimap-current-infos)))))
> (let ((sequences (nnimap-retrieve-group-data-early
> - server (list info))))
> - (nnimap-finish-retrieve-group-infos server (list info) sequences
> + server info)))
> + (nnimap-finish-retrieve-group-infos server info sequences
> t)
> (setq active (nth 2 (assoc group nnimap-current-infos)))))
> + (setq active (or active '(0 . 1)))
> (erase-buffer)
> (insert (format "211 %d %d %d %S\n"
> (- (cdr active) (car active))
> diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
> index 15ccc47..9784f1b 100644
> --- a/lisp/gnus/nnir.el
> +++ b/lisp/gnus/nnir.el
> @@ -350,10 +350,10 @@ result, `gnus-retrieve-headers' will be called instead."
> (defcustom nnir-swish++-additional-switches '()
> "*A list of strings, to be given as additional arguments to swish++.
>
> -Note that this should be a list. Ie, do NOT use the following:
> +Note that this should be a list. I.e., do NOT use the following:
> (setq nnir-swish++-additional-switches \"-i -w\") ; wrong
> Instead, use this:
> - (setq nnir-swish++-additional-switches '(\"-i\" \"-w\"))"
> + (setq nnir-swish++-additional-switches \\='(\"-i\" \"-w\"))"
> :type '(repeat (string))
> :group 'nnir)
>
> @@ -399,10 +399,10 @@ This cannot be a server parameter."
> (defcustom nnir-swish-e-additional-switches '()
> "*A list of strings, to be given as additional arguments to swish-e.
>
> -Note that this should be a list. Ie, do NOT use the following:
> +Note that this should be a list. I.e., do NOT use the following:
> (setq nnir-swish-e-additional-switches \"-i -w\") ; wrong
> Instead, use this:
> - (setq nnir-swish-e-additional-switches '(\"-i\" \"-w\"))
> + (setq nnir-swish-e-additional-switches \\='(\"-i\" \"-w\"))
>
> This could be a server parameter."
> :type '(repeat (string))
> @@ -429,10 +429,10 @@ This could be a server parameter."
>
> (defcustom nnir-hyrex-additional-switches '()
> "*A list of strings, to be given as additional arguments for nnir-search.
> -Note that this should be a list. Ie, do NOT use the following:
> +Note that this should be a list. I.e., do NOT use the following:
> (setq nnir-hyrex-additional-switches \"-ddl ddl.xml -c nnir\") ; wrong !
> Instead, use this:
> - (setq nnir-hyrex-additional-switches '(\"-ddl\" \"ddl.xml\" \"-c\" \"nnir\"))"
> + (setq nnir-hyrex-additional-switches \\='(\"-ddl\" \"ddl.xml\" \"-c\" \"nnir\"))"
> :type '(repeat (string))
> :group 'nnir)
>
> @@ -471,10 +471,10 @@ arrive at the correct group name, \"mail.misc\"."
> The switches `-q', `-a', and `-s' are always used, very few other switches
> make any sense in this context.
>
> -Note that this should be a list. Ie, do NOT use the following:
> +Note that this should be a list. I.e., do NOT use the following:
> (setq nnir-namazu-additional-switches \"-i -w\") ; wrong
> Instead, use this:
> - (setq nnir-namazu-additional-switches '(\"-i\" \"-w\"))"
> + (setq nnir-namazu-additional-switches \\='(\"-i\" \"-w\"))"
> :type '(repeat (string))
> :group 'nnir)
>
> @@ -500,10 +500,10 @@ arrive at the correct group name, \"mail.misc\"."
> (defcustom nnir-notmuch-additional-switches '()
> "*A list of strings, to be given as additional arguments to notmuch.
>
> -Note that this should be a list. Ie, do NOT use the following:
> +Note that this should be a list. I.e., do NOT use the following:
> (setq nnir-notmuch-additional-switches \"-i -w\") ; wrong
> Instead, use this:
> - (setq nnir-notmuch-additional-switches '(\"-i\" \"-w\"))"
> + (setq nnir-notmuch-additional-switches \\='(\"-i\" \"-w\"))"
> :version "24.1"
> :type '(repeat (string))
> :group 'nnir)
> diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
> index 6811160..7efb154 100644
> --- a/lisp/gnus/nnmail.el
> +++ b/lisp/gnus/nnmail.el
> @@ -83,7 +83,7 @@ If you'd like, for instance, one mail group for mail from the
> else, you could do something like this:
>
> (setq nnmail-split-methods
> - '((\"mail.4ad\" \"From:.*4ad\")
> + \\='((\"mail.4ad\" \"From:.*4ad\")
> (\"mail.junk\" \"From:.*Lars\\\\|Subject:.*buy\")
> (\"mail.misc\" \"\")))
>
> @@ -180,7 +180,7 @@ E.g.:
> (lambda (newsgroup)
> (cond ((string-match \"private\" newsgroup) 31)
> ((string-match \"junk\" newsgroup) 1)
> - ((string-match \"important\" newsgroup) 'never)
> + ((string-match \"important\" newsgroup) \\='never)
> (t 7))))"
> :group 'nnmail-expire
> :type '(choice (const :tag "nnmail-expiry-wait" nil)
> diff --git a/lisp/gnus/nnmairix.el b/lisp/gnus/nnmairix.el
> index e34b708..ccfc599 100644
> --- a/lisp/gnus/nnmairix.el
> +++ b/lisp/gnus/nnmairix.el
> @@ -1943,7 +1943,9 @@ Fill in VALUES if based on an article."
> (kill-all-local-variables)
> (erase-buffer)
> (widget-insert "Specify your query for Mairix (check boxes for activating fields):\n\n")
> - (widget-insert "(Whitespaces will be converted to ‘,’ (i.e. AND). Use ‘/’ for OR.)\n\n")
> + (widget-insert
> + (substitute-command-keys
> + "(Whitespaces will be converted to `,' (i.e. AND). Use `/' for OR.)\n\n"))
> ; (make-local-variable 'nnmairix-widgets)
> (setq nnmairix-widgets (nnmairix-widget-build-editable-fields values))
> (when (member 'flags nnmairix-widget-other)
> diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
> index 8d09781..6c97cec 100644
> --- a/lisp/gnus/nntp.el
> +++ b/lisp/gnus/nntp.el
> @@ -72,7 +72,7 @@ For instance, if you want Gnus to beep every time you connect
> to innd, you could say something like:
>
> \(setq nntp-server-action-alist
> - '((\"innd\" (ding))))
> + \\='((\"innd\" (ding))))
>
> You probably don't want to do that, though.")
>
> diff --git a/lisp/help-fns.el b/lisp/help-fns.el
> index a1d121c..77ef21d 100644
> --- a/lisp/help-fns.el
> +++ b/lisp/help-fns.el
> @@ -319,7 +319,7 @@ suitable file is found, return nil."
> (when remapped
> (princ "Its keys are remapped to ")
> (princ (if (symbolp remapped)
> - (format-message "‘%s’" remapped)
> + (format-message "`%s'" remapped)
> "an anonymous command"))
> (princ ".\n"))
>
> @@ -353,22 +353,22 @@ suitable file is found, return nil."
> (insert "\nThis function has a compiler macro")
> (if (symbolp handler)
> (progn
> - (insert (format-message " ‘%s’" handler))
> + (insert (format-message " `%s'" handler))
> (save-excursion
> - (re-search-backward (substitute-command-keys "‘\\([^‘’]+\\)’")
> + (re-search-backward (substitute-command-keys "`\\([^`']+\\)'")
> nil t)
> (help-xref-button 1 'help-function handler)))
> ;; FIXME: Obsolete since 24.4.
> (let ((lib (get function 'compiler-macro-file)))
> (when (stringp lib)
> - (insert (format-message " in ‘%s’" lib))
> + (insert (format-message " in `%s'" lib))
> (save-excursion
> - (re-search-backward (substitute-command-keys "‘\\([^‘’]+\\)’")
> + (re-search-backward (substitute-command-keys "`\\([^`']+\\)'")
> nil t)
> (help-xref-button 1 'help-function-cmacro function lib)))))
> (insert ".\n"))))
>
> -(defun help-fns--signature (function doc real-def real-function raw)
> +(defun help-fns--signature (function doc real-def real-function buffer)
> "Insert usage at point and return docstring. With highlighting."
> (if (keymapp function)
> doc ; If definition is a keymap, skip arglist note.
> @@ -402,10 +402,13 @@ suitable file is found, return nil."
> (use1 (replace-regexp-in-string
> "\\`(\\\\=\\\\\\\\=` \\([^\n ]*\\))\\'"
> "\\\\=`\\1" use t))
> - (high (if raw
> - (cons use1 doc)
> - (help-highlight-arguments (substitute-command-keys use1)
> - (substitute-command-keys doc)))))
> + (high (if buffer
> + (let (subst-use1 subst-doc)
> + (with-current-buffer buffer
> + (setq subst-use1 (substitute-command-keys use1))
> + (setq subst-doc (substitute-command-keys doc)))
> + (help-highlight-arguments subst-use1 subst-doc))
> + (cons use1 doc))))
> (let ((fill-begin (point))
> (high-usage (car high))
> (high-doc (cdr high)))
> @@ -419,13 +422,13 @@ suitable file is found, return nil."
> (get function
> 'derived-mode-parent))))
> (when parent-mode
> - (insert (substitute-command-keys "\nParent mode: ‘"))
> + (insert (substitute-command-keys "\nParent mode: `"))
> (let ((beg (point)))
> (insert (format "%s" parent-mode))
> (make-text-button beg (point)
> 'type 'help-function
> 'help-args (list parent-mode)))
> - (insert (substitute-command-keys "’.\n")))))
> + (insert (substitute-command-keys "'.\n")))))
>
> (defun help-fns--obsolete (function)
> ;; Ignore lambda constructs, keyboard macros, etc.
> @@ -441,7 +444,7 @@ suitable file is found, return nil."
> (when (nth 2 obsolete)
> (insert (format " since %s" (nth 2 obsolete))))
> (insert (cond ((stringp use) (concat ";\n" use))
> - (use (format-message ";\nuse ‘%s’ instead." use))
> + (use (format-message ";\nuse `%s' instead." use))
> (t "."))
> "\n"))))
>
> @@ -477,7 +480,7 @@ FILE is the file where FUNCTION was probably defined."
> (format ";\nin Lisp code %s" interactive-only))
> ((and (symbolp 'interactive-only)
> (not (eq interactive-only t)))
> - (format-message ";\nin Lisp code use ‘%s’ instead."
> + (format-message ";\nin Lisp code use `%s' instead."
> interactive-only))
> (t "."))
> "\n")))))
> @@ -546,7 +549,7 @@ FILE is the file where FUNCTION was probably defined."
> ;; Aliases are Lisp functions, so we need to check
> ;; aliases before functions.
> (aliased
> - (format-message "an alias for ‘%s’" real-def))
> + (format-message "an alias for `%s'" real-def))
> ((autoloadp def)
> (format "%s autoloaded %s"
> (if (commandp def) "an interactive" "an")
> @@ -581,21 +584,21 @@ FILE is the file where FUNCTION was probably defined."
> (save-excursion
> (save-match-data
> (when (re-search-backward (substitute-command-keys
> - "alias for ‘\\([^‘’]+\\)’")
> + "alias for `\\([^`']+\\)'")
> nil t)
> (help-xref-button 1 'help-function real-def)))))
>
> (when file-name
> ;; We used to add .el to the file name,
> ;; but that's completely wrong when the user used load-file.
> - (princ (format-message " in ‘%s’"
> + (princ (format-message " in `%s'"
> (if (eq file-name 'C-source)
> "C source code"
> (help-fns-short-filename file-name))))
> ;; Make a hyperlink to the library.
> (with-current-buffer standard-output
> (save-excursion
> - (re-search-backward (substitute-command-keys "‘\\([^‘’]+\\)’")
> + (re-search-backward (substitute-command-keys "`\\([^`']+\\)'")
> nil t)
> (help-xref-button 1 'help-function-def function file-name))))
> (princ ".")
> @@ -604,7 +607,8 @@ FILE is the file where FUNCTION was probably defined."
> (point)))
> (terpri)(terpri)
>
> - (let ((doc-raw (documentation function t)))
> + (let ((doc-raw (documentation function t))
> + (key-bindings-buffer (current-buffer)))
>
> ;; If the function is autoloaded, and its docstring has
> ;; key substitution constructs, load the library.
> @@ -615,11 +619,11 @@ FILE is the file where FUNCTION was probably defined."
>
> (help-fns--key-bindings function)
> (with-current-buffer standard-output
> - (let ((doc (help-fns--signature function doc-raw sig-key
> - real-function nil)))
> - (run-hook-with-args 'help-fns-describe-function-functions function)
> - (insert "\n"
> - (or doc "Not documented."))))))))
> + (let ((doc (help-fns--signature function doc-raw sig-key
> + real-function key-bindings-buffer)))
> + (run-hook-with-args 'help-fns-describe-function-functions function)
> + (insert "\n"
> + (or doc "Not documented."))))))))
>
> ;; Add defaults to `help-fns-describe-function-functions'.
> (add-hook 'help-fns-describe-function-functions #'help-fns--obsolete)
> @@ -730,14 +734,14 @@ it is displayed along with the global value."
> (if file-name
> (progn
> (princ (format-message
> - " is a variable defined in ‘%s’.\n"
> + " is a variable defined in `%s'.\n"
> (if (eq file-name 'C-source)
> "C source code"
> (file-name-nondirectory file-name))))
> (with-current-buffer standard-output
> (save-excursion
> (re-search-backward (substitute-command-keys
> - "‘\\([^‘’]+\\)’")
> + "`\\([^`']+\\)'")
> nil t)
> (help-xref-button 1 'help-variable-def
> variable file-name)))
> @@ -746,7 +750,7 @@ it is displayed along with the global value."
> (princ "Its ")))
> (if valvoid
> (princ " is void as a variable.")
> - (princ (substitute-command-keys "’s ")))))
> + (princ (substitute-command-keys "'s ")))))
> (unless valvoid
> (with-current-buffer standard-output
> (setq val-start-pos (point))
> @@ -872,7 +876,7 @@ if it is given a local binding.\n"))))
> (unless (eq alias variable)
> (setq extra-line t)
> (princ (format-message
> - " This variable is an alias for ‘%s’.\n"
> + " This variable is an alias for `%s'.\n"
> alias)))
>
> (when obsolete
> @@ -881,7 +885,7 @@ if it is given a local binding.\n"))))
> (if (nth 2 obsolete)
> (princ (format " since %s" (nth 2 obsolete))))
> (princ (cond ((stringp use) (concat ";\n " use))
> - (use (format-message ";\n use ‘%s’ instead."
> + (use (format-message ";\n use `%s' instead."
> (car obsolete)))
> (t ".")))
> (terpri))
> @@ -915,13 +919,13 @@ if it is given a local binding.\n"))))
> dir-file nil)))
> (princ (substitute-command-keys
> (if dir-file
> - "by the file\n ‘"
> - "for the directory\n ‘")))
> + "by the file\n `"
> + "for the directory\n `")))
> (with-current-buffer standard-output
> (insert-text-button
> file 'type 'help-dir-local-var-def
> 'help-args (list variable file)))
> - (princ (substitute-command-keys "’.\n"))))
> + (princ (substitute-command-keys "'.\n"))))
> (princ (substitute-command-keys
> " This variable's value is file-local.\n"))))
>
> @@ -938,7 +942,7 @@ file-local variable.\n")
> (when (assq variable safe-local-variable-values)
> (princ (substitute-command-keys
> " However, you have added it to \
> -‘safe-local-variable-values’.\n"))))
> +`safe-local-variable-values'.\n"))))
>
> (when safe-var
> (setq extra-line t)
> @@ -946,7 +950,7 @@ file-local variable.\n")
> (princ "if its value\n satisfies the predicate ")
> (princ (if (byte-code-function-p safe-var)
> "which is a byte-compiled expression.\n"
> - (format-message "‘%s’.\n" safe-var))))
> + (format-message "`%s'.\n" safe-var))))
>
> (if extra-line (terpri))
> (princ "Documentation:\n")
> diff --git a/lisp/help.el b/lisp/help.el
> index 2fcb52e..66df6b0 100644
> --- a/lisp/help.el
> +++ b/lisp/help.el
> @@ -964,12 +964,12 @@ documentation for the major and minor modes of that buffer."
> (let* ((mode major-mode)
> (file-name (find-lisp-object-file-name mode nil)))
> (when file-name
> - (princ (format-message " defined in ‘%s’"
> + (princ (format-message " defined in `%s'"
> (file-name-nondirectory file-name)))
> ;; Make a hyperlink to the library.
> (with-current-buffer standard-output
> (save-excursion
> - (re-search-backward (substitute-command-keys "‘\\([^‘’]+\\)’")
> + (re-search-backward (substitute-command-keys "`\\([^`']+\\)'")
> nil t)
> (help-xref-button 1 'help-function-def mode file-name)))))
> (princ ":\n")
> @@ -1041,7 +1041,7 @@ is currently activated with completion."
> (let ((minor-mode (lookup-minor-mode-from-indicator indicator)))
> (if minor-mode
> (describe-minor-mode-from-symbol minor-mode)
> - (error "Cannot find minor mode for ‘%s’" indicator))))
> + (error "Cannot find minor mode for `%s'" indicator))))
>
> (defun lookup-minor-mode-from-indicator (indicator)
> "Return a minor mode symbol from its indicator on the mode line."
> @@ -1352,8 +1352,8 @@ the help window if the current value of the user option
>
> (defun help--docstring-quote (string)
> "Return a doc string that represents STRING.
> -The result, when formatted by ‘substitute-command-keys’, should equal STRING."
> - (replace-regexp-in-string "['\\`]" "\\\\=\\&" string))
> +The result, when formatted by `substitute-command-keys', should equal STRING."
> + (replace-regexp-in-string "['\\`‘’]" "\\\\=\\&" string))
>
> ;; The following functions used to be in help-fns.el, which is not preloaded.
> ;; But for various reasons, they are more widely needed, so they were
> diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el
> index 0255585..89b1204 100644
> --- a/lisp/hi-lock.el
> +++ b/lisp/hi-lock.el
> @@ -362,7 +362,7 @@ Hi-lock: end is found. A mode is excluded if it's in the list
> (setq hi-lock-archaic-interface-message-used t)
> (if hi-lock-archaic-interface-deduce
> (global-hi-lock-mode hi-lock-mode)
> - (warn
> + (warn "%s"
> "Possible archaic use of (hi-lock-mode).
> Use (global-hi-lock-mode 1) in .emacs to enable hi-lock for all buffers,
> use (hi-lock-mode 1) for individual buffers. For compatibility with Emacs
> diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el
> index 310a074..74cdfe1 100644
> --- a/lisp/htmlfontify.el
> +++ b/lisp/htmlfontify.el
> @@ -133,10 +133,10 @@ main-content <=MAIN_CONTENT;\\n\" rtfm-section file style rtfm-section file))
> \(defun rtfm-build-source-docs (section srcdir destdir)
> (interactive
> \"s section[eg- emacs / p4-blame]:\\nD source-dir: \\nD output-dir: \")
> - (require 'htmlfontify)
> + (require \\='htmlfontify)
> (hfy-load-tags-cache srcdir)
> - (let ((hfy-page-header 'rtfm-build-page-header)
> - (hfy-page-footer 'rtfm-build-page-footer)
> + (let ((hfy-page-header \\='rtfm-build-page-header)
> + (hfy-page-footer \\='rtfm-build-page-footer)
> (rtfm-section section)
> (hfy-index-file \"index\"))
> (htmlfontify-run-etags srcdir)
> @@ -187,13 +187,13 @@ It takes only one argument, the filename."
> :type '(string))
>
> (defcustom hfy-src-doc-link-style "text-decoration: underline;"
> - "String to add to the ‘<style> a’ variant of an htmlfontify CSS class."
> + "String to add to the `<style> a' variant of an htmlfontify CSS class."
> :group 'htmlfontify
> :tag "src-doc-link-style"
> :type '(string))
>
> (defcustom hfy-src-doc-link-unstyle " text-decoration: none;"
> - "Regex to remove from the ‘<style> a’ variant of an htmlfontify CSS class."
> + "Regex to remove from the `<style> a' variant of an htmlfontify CSS class."
> :group 'htmlfontify
> :tag "src-doc-link-unstyle"
> :type '(string))
> diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
> index 3e97343..718471b 100644
> --- a/lisp/ibuffer.el
> +++ b/lisp/ibuffer.el
> @@ -2303,7 +2303,7 @@ buffers which are visiting a file."
> (defun ibuffer (&optional other-window-p name qualifiers noselect
> shrink filter-groups formats)
> "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.
> diff --git a/lisp/ido.el b/lisp/ido.el
> index 95be656..13b6d52 100644
> --- a/lisp/ido.el
> +++ b/lisp/ido.el
> @@ -378,7 +378,7 @@ use either \\[customize] or the function `ido-mode'."
> '("\\` ")
> "List of regexps or functions matching buffer names to ignore.
> For example, traditional behavior is not to list buffers whose names begin
> -with a space, for which the regexp is ‘\\\\=` ’. See the source file for
> +with a space, for which the regexp is `\\\\=` '. See the source file for
> example functions that filter buffer names."
> :type '(repeat (choice regexp function))
> :group 'ido)
> @@ -387,7 +387,7 @@ example functions that filter buffer names."
> '("\\`CVS/" "\\`#" "\\`.#" "\\`\\.\\./" "\\`\\./")
> "List of regexps or functions matching file names to ignore.
> For example, traditional behavior is not to list files whose names begin
> -with a #, for which the regexp is ‘\\\\=`#’. See the source file for
> +with a #, for which the regexp is `\\\\=`#'. See the source file for
> example functions that filter filenames."
> :type '(repeat (choice regexp function))
> :group 'ido)
> diff --git a/lisp/image.el b/lisp/image.el
> index 99a65e3..0c62088 100644
> --- a/lisp/image.el
> +++ b/lisp/image.el
> @@ -343,7 +343,7 @@ of image data. If that doesn't work, and SOURCE is a file name,
> use its file extension as image type.
> Optional DATA-P non-nil means SOURCE is a string containing image data."
> (when (and (not data-p) (not (stringp source)))
> - (error "Invalid image file name ‘%s’" source))
> + (error "Invalid image file name `%s'" source))
> (unless type
> (setq type (if data-p
> (image-type-from-data source)
> @@ -351,7 +351,7 @@ Optional DATA-P non-nil means SOURCE is a string containing image data."
> (image-type-from-file-name source))))
> (or type (error "Cannot determine image type")))
> (or (memq type (and (boundp 'image-types) image-types))
> - (error "Invalid image type ‘%s’" type))
> + (error "Invalid image type `%s'" type))
> type)
>
>
> diff --git a/lisp/info.el b/lisp/info.el
> index 2c92df4..a5a2c55 100644
> --- a/lisp/info.el
> +++ b/lisp/info.el
> @@ -3460,7 +3460,7 @@ MATCHES is a list of index matches found by `Info-index'.")
> (when (equal (car (nth 0 nodeinfo)) (or filename Info-current-file))
> (insert
> (format "* %-20s %s.\n"
> - (format-message "*Index for ‘%s’*::" (cdr (nth 0 nodeinfo)))
> + (format "*Index for ‘%s’*::" (cdr (nth 0 nodeinfo)))
> (cdr (nth 0 nodeinfo)))))))))
>
> (defun Info-virtual-index (topic)
> @@ -3496,7 +3496,7 @@ search results."
> (Info-goto-node orignode)
> (message "")))
> (Info-find-node Info-current-file
> - (format-message "*Index for ‘%s’*" topic))))
> + (format "*Index for ‘%s’*" topic))))
>
> (add-to-list 'Info-virtual-files
> '("\\`\\*Apropos\\*\\'"
> @@ -3635,7 +3635,7 @@ Build a menu of the possible matches."
> (setq nodes (cdr nodes)))
> (if nodes
> (Info-find-node Info-apropos-file (car (car nodes)))
> - (setq nodename (format-message "Index for ‘%s’" string))
> + (setq nodename (format "Index for ‘%s’" string))
> (push (list nodename string (Info-apropos-matches string))
> Info-apropos-nodes)
> (Info-find-node Info-apropos-file nodename)))))
> diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el
> index 08c18e1..daba2b6 100644
> --- a/lisp/international/ccl.el
> +++ b/lisp/international/ccl.el
> @@ -967,8 +967,7 @@ is a list of CCL-BLOCKs."
> (let ((len (length ccl-code))
> (buffer-mag (aref ccl-code 0)))
> (cond ((= buffer-mag 0)
> - (insert (substitute-command-keys
> - "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
> diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
> index 4667a00..cdbaade 100644
> --- a/lisp/international/fontset.el
> +++ b/lisp/international/fontset.el
> @@ -1070,7 +1070,7 @@ Value is name of that font."
> (condition-case nil
> (setq ascii-font (x-resolve-font-name pattern))
> (error
> - (message "Warning: no fonts matching ‘%s’ available" pattern)
> + (message "Warning: no fonts matching `%s' available" pattern)
> (aset xlfd-fields index "*")
> (setq index (1+ index))))))
> (unless ascii-font
> diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
> index 5934919..4fd4b90 100644
> --- a/lisp/international/mule-cmds.el
> +++ b/lisp/international/mule-cmds.el
> @@ -400,9 +400,9 @@ To prefer, for instance, utf-8, say the following:
> \(prefer-coding-system \\='utf-8)"
> (interactive "zPrefer coding system: ")
> (if (not (and coding-system (coding-system-p coding-system)))
> - (error "Invalid coding system ‘%s’" coding-system))
> + (error "Invalid coding system `%s'" coding-system))
> (if (memq (coding-system-type coding-system) '(raw-text undecided))
> - (error "Can't prefer the coding system ‘%s’" coding-system))
> + (error "Can't prefer the coding system `%s'" coding-system))
> (let ((base (coding-system-base coding-system))
> (eol-type (coding-system-eol-type coding-system)))
> (set-coding-system-priority base)
> @@ -417,7 +417,7 @@ To prefer, for instance, utf-8, say the following:
> (set-default-coding-systems base)
> (if (called-interactively-p 'interactive)
> (or (eq base default-file-name-coding-system)
> - (message "The default value of ‘file-name-coding-system’ was not changed because the specified coding system is not suitable for file names.")))))
> + (message "The default value of `file-name-coding-system' was not changed because the specified coding system is not suitable for file names.")))))
>
> (defvar sort-coding-systems-predicate nil
> "If non-nil, a predicate function to sort coding systems.
> @@ -719,14 +719,14 @@ DEFAULT is the coding system to use by default in the query."
> (insert "No default coding systems to try for "
> (if (stringp from)
> (format "string \"%s\"." from)
> - (format-message "buffer ‘%s’." bufname)))
> + (format-message "buffer `%s'." bufname)))
> (insert
> "These default coding systems were tried to encode"
> (if (stringp from)
> (concat " \"" (if (> (length from) 10)
> (concat (substring from 0 10) "...\"")
> (concat from "\"")))
> - (format-message " text\nin the buffer ‘%s’" bufname))
> + (format-message " text\nin the buffer `%s'" bufname))
> ":\n")
> (let ((pos (point))
> (fill-prefix " "))
> @@ -876,13 +876,13 @@ and TO is ignored."
> (setq auto-cs (car auto-cs))
> (display-warning
> 'mule
> - (format "\
> -Invalid coding system ‘%s’ is specified
> + (format-message "\
> +Invalid coding system `%s' is specified
> for the current buffer/file by the %s.
> It is highly recommended to fix it before writing to a file."
> (car auto-cs)
> (if (eq (cdr auto-cs) :coding) ":coding tag"
> - (format-message "variable ‘%s’" (cdr auto-cs))))
> + (format-message "variable `%s'" (cdr auto-cs))))
> :warning)
> (or (yes-or-no-p "Really proceed with writing? ")
> (error "Save aborted"))
> @@ -1452,7 +1452,7 @@ If INPUT-METHOD is nil, deactivate any current input method."
> (unless (or current-input-method (null input-method))
> (let ((slot (assoc input-method input-method-alist)))
> (if (null slot)
> - (error "Can't activate input method ‘%s’" input-method))
> + (error "Can't activate input method `%s'" input-method))
> (setq current-input-method-title nil)
> (let ((func (nth 2 slot)))
> (if (functionp func)
> @@ -1461,7 +1461,7 @@ If INPUT-METHOD is nil, deactivate any current input method."
> (progn
> (require (cdr func))
> (apply (car func) input-method (nthcdr 5 slot)))
> - (error "Can't activate input method ‘%s’" input-method))))
> + (error "Can't activate input method `%s'" input-method))))
> (setq current-input-method input-method)
> (or (stringp current-input-method-title)
> (setq current-input-method-title (nth 3 slot)))
> @@ -1539,7 +1539,7 @@ which marks the variable `default-input-method' as set for Custom buffers."
>
> (interactive "P\np")
> (if toggle-input-method-active
> - (error "Recursive use of ‘toggle-input-method’"))
> + (error "Recursive use of `toggle-input-method'"))
> (if (and current-input-method (not arg))
> (deactivate-input-method)
> (let ((toggle-input-method-active t)
> @@ -1589,7 +1589,7 @@ which marks the variable `default-input-method' as set for Custom buffers."
> (with-output-to-temp-buffer (help-buffer)
> (let ((elt (assoc input-method input-method-alist)))
> (princ (format-message
> - "Input method: %s (‘%s’ in mode line) for %s\n %s\n"
> + "Input method: %s (`%s' in mode line) for %s\n %s\n"
> input-method (nth 3 elt) (nth 1 elt) (nth 4 elt))))))))))
>
> (defun describe-current-input-method ()
> @@ -1599,7 +1599,7 @@ This is a subroutine for `describe-input-method'."
> (if (and (symbolp describe-current-input-method-function)
> (fboundp describe-current-input-method-function))
> (funcall describe-current-input-method-function)
> - (message "No way to describe the current input method ‘%s’"
> + (message "No way to describe the current input method `%s'"
> current-input-method)
> (ding))
> (error "No input method is activated now")))
> @@ -2174,9 +2174,9 @@ See `set-language-info-alist' for use in programs."
> (search-backward (symbol-name (car l)))
> (help-xref-button 0 'help-coding-system (car l))
> (goto-char (point-max))
> - (insert " (‘"
> + (insert (substitute-command-keys " (`")
> (coding-system-mnemonic (car l))
> - "’ in mode line):\n\t"
> + (substitute-command-keys "' in mode line):\n\t")
> (substitute-command-keys
> (coding-system-doc-string (car l)))
> "\n")
> diff --git a/lisp/international/mule-conf.el b/lisp/international/mule-conf.el
> index 063b873..ecbc4f4 100644
> --- a/lisp/international/mule-conf.el
> +++ b/lisp/international/mule-conf.el
> @@ -904,8 +904,8 @@
> (dolist (script '(devanagari sanskrit bengali tamil telugu assamese
> oriya kannada malayalam gujarati punjabi))
> (define-charset (intern (format "%s-cdac" script))
> - (format-message
> - "Glyphs of %s script for CDAC font. Subset of ‘indian-glyph’."
> + (format
> + "Glyphs of %s script for CDAC font. Subset of `indian-glyph'."
> (capitalize (symbol-name script)))
> :short-name (format "CDAC %s glyphs" (capitalize (symbol-name script)))
> :supplementary-p t
> @@ -916,8 +916,8 @@
> (dolist (script '(devanagari bengali punjabi gujarati
> oriya tamil telugu kannada malayalam))
> (define-charset (intern (format "%s-akruti" script))
> - (format-message
> - "Glyphs of %s script for AKRUTI font. Subset of ‘indian-glyph’."
> + (format
> + "Glyphs of %s script for AKRUTI font. Subset of `indian-glyph'."
> (capitalize (symbol-name script)))
> :short-name (format "AKRUTI %s glyphs" (capitalize (symbol-name script)))
> :supplementary-p t
> diff --git a/lisp/international/mule-diag.el b/lisp/international/mule-diag.el
> index 57b6d62..fa5a7eb 100644
> --- a/lisp/international/mule-diag.el
> +++ b/lisp/international/mule-diag.el
> @@ -332,7 +332,7 @@ meanings of these arguments."
> (let ((char (charset-iso-final-char charset)))
> (when (> char 0)
> (insert "Final char of ISO2022 designation sequence: ")
> - (insert (format-message "‘%c’\n" char))))
> + (insert (format-message "`%c'\n" char))))
> (let (aliases)
> (dolist (c charset-list)
> (if (and (not (eq c charset))
> @@ -770,7 +770,7 @@ but still contains full information about each coding system."
> # MNEMONIC-LETTER -- CODING-SYSTEM-NAME
> # DOC-STRING
> ")
> - (princ "\
> + (princ (substitute-command-keys "\
> #########################
> ## LIST OF CODING SYSTEMS
> ## Each line corresponds to one coding system
> @@ -794,7 +794,7 @@ but still contains full information about each coding system."
> ## 0
> ## POST-READ-CONVERSION, PRE-WRITE-CONVERSION = function name to be called
> ##
> -"))
> +")))
> (dolist (coding-system (sort-coding-systems (coding-system-list 'base-only)))
> (if (null arg)
> (print-coding-system-briefly coding-system 'tightly)
> @@ -1038,7 +1038,8 @@ see the function `describe-fontset' for the format of the list."
> (save-excursion
> (goto-char (point-min))
> (while (re-search-forward
> - "^ \\([^ ]+\\) (‘.*’ in mode line)$" nil t)
> + (substitute-command-keys "^ \\([^ ]+\\) (`.*' in mode line)$")
> + nil t)
> (help-xref-button 1 'help-input-method (match-string 1)))))))
>
> (defun list-input-methods-1 ()
> @@ -1046,7 +1047,8 @@ see the function `describe-fontset' for the format of the list."
> (princ "
> No input method is available, perhaps because you have not
> installed LEIM (Libraries of Emacs Input Methods).")
> - (princ "LANGUAGE\n NAME (‘TITLE’ in mode line)\n")
> + (princ (substitute-command-keys
> + "LANGUAGE\n NAME (`TITLE' in mode line)\n"))
> (princ " SHORT-DESCRIPTION\n------------------------------\n")
> (setq input-method-alist
> (sort input-method-alist
> @@ -1059,7 +1061,7 @@ installed LEIM (Libraries of Emacs Input Methods).")
> (princ language)
> (terpri))
> (princ (format-message
> - " %s (‘%s’ in mode line)\n %s\n"
> + " %s (`%s' in mode line)\n %s\n"
> (car elt)
> (let ((title (nth 3 elt)))
> (if (and (consp title) (stringp (car title)))
> diff --git a/lisp/international/ogonek.el b/lisp/international/ogonek.el
> index 7caa5d4..01cbe1e 100644
> --- a/lisp/international/ogonek.el
> +++ b/lisp/international/ogonek.el
> @@ -133,10 +133,10 @@ znak/ow diakrytycznych. Funkcje te mo/zna pogrupowa/c nast/epuj/aco.
> `~/.emacs' za/z/ada/c wczytania wybranych funkcji, na dodatek dopiero
> w chwili ich rzeczywistego u/zycia:
>
> - (autoload 'ogonek-jak \"ogonek\")
> - (autoload 'ogonek-recode-region \"ogonek\")
> - (autoload 'ogonek-prefixify-region \"ogonek\")
> - (autoload 'ogonek-deprefixify-region \"ogonek\")
> + (autoload \\='ogonek-jak \"ogonek\")
> + (autoload \\='ogonek-recode-region \"ogonek\")
> + (autoload \\='ogonek-prefixify-region \"ogonek\")
> + (autoload \\='ogonek-deprefixify-region \"ogonek\")
>
> Cz/esto wyst/epuj/ace kombinacje wywo/la/n funkcji mo/zna dla wygody
> skr/oci/c i przypisa/c klawiszom. Oto praktyczne przyk/lady:
> @@ -144,17 +144,17 @@ znak/ow diakrytycznych. Funkcje te mo/zna pogrupowa/c nast/epuj/aco.
> (defun deprefixify-iso8859-2-region (start end)
> (interactive \"*r\")
> (ogonek-deprefixify-region start end ?/ \"iso8859-2\"))
> - (global-set-key \"\\C-cd\" 'deprefixify-iso8859-2-region) ; ctrl-c d
> + (global-set-key \"\\C-cd\" \\='deprefixify-iso8859-2-region) ; ctrl-c d
>
> (defun mazovia-to-iso8859-2 (start end)
> (interactive \"*r\")
> (ogonek-recode-region start end \"mazovia\" \"iso8859-2\"))
> - (global-set-key \"\\C-cr\" 'mazovia-to-iso8859-2) ; ctrl-c r
> + (global-set-key \"\\C-cr\" \\='mazovia-to-iso8859-2) ; ctrl-c r
>
> (defun prefixify-iso8859-2-region (start end)
> (interactive \"*r\")
> (ogonek-prefixify-region start end \"iso8859-2\" ?/))
> - (global-set-key \"\\C-cp\" 'prefixify-iso8859-2-region) ; ctrl-c p
> + (global-set-key \"\\C-cp\" \\='prefixify-iso8859-2-region) ; ctrl-c p
>
> Ka/zd/a operacj/e przekodowania mo/zna w ca/lo/sci odwo/la/c
> przez wykonanie polecenia `undo'.")
> @@ -163,7 +163,7 @@ znak/ow diakrytycznych. Funkcje te mo/zna pogrupowa/c nast/epuj/aco.
> "Display `ogonek-informacja' in an auxiliary *ogonek-jak* buffer."
> (interactive)
> (set-buffer (get-buffer-create " *ogonek-jak*"))
> - (insert ogonek-informacja)
> + (insert (substitute-command-keys ogonek-informacja))
> (switch-to-buffer " *ogonek-jak*")
> (goto-char (point-min)))
>
> @@ -233,10 +233,10 @@ The functions come in the following groups.
> to autoload the needed functions, for example by adding the
> following lines to your init file:
>
> - (autoload 'ogonek-how \"ogonek\")
> - (autoload 'ogonek-recode-region \"ogonek\")
> - (autoload 'ogonek-prefixify-region \"ogonek\")
> - (autoload 'ogonek-deprefixify-region \"ogonek\")
> + (autoload \\='ogonek-how \"ogonek\")
> + (autoload \\='ogonek-recode-region \"ogonek\")
> + (autoload \\='ogonek-prefixify-region \"ogonek\")
> + (autoload \\='ogonek-deprefixify-region \"ogonek\")
>
> The most frequent function calls can be abbreviated and assigned to
> keyboard keys. Here are a few practical examples:
> @@ -262,7 +262,7 @@ The functions come in the following groups.
> "Display `ogonek-information' in an auxiliary *recode-how* buffer."
> (interactive "*")
> (set-buffer (get-buffer-create " *ogonek-how*"))
> - (insert ogonek-information)
> + (insert (substitute-command-keys ogonek-information))
> (switch-to-buffer " *ogonek-how*")
> (goto-char (point-min)))
>
> diff --git a/lisp/json.el b/lisp/json.el
> index 5392a13..daa0c94 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/kermit.el b/lisp/kermit.el
> index d4a21f4..9b464ab 100644
> --- a/lisp/kermit.el
> +++ b/lisp/kermit.el
> @@ -135,7 +135,7 @@ In this state, use LFD to send a line and end it with a carriage-return."
> (defun kermit-clean-on ()
> "Delete all null characters and ^M's from the kermit output.
> Note that another (perhaps better) way to do this is to use the
> -command ‘kermit | tr -d '\\015'’."
> +command `kermit | tr -d \\='\\015\\=''."
> (interactive)
> (set-process-filter (get-buffer-process (current-buffer))
> 'kermit-clean-filter))
> diff --git a/lisp/leim/quail/cyrillic.el b/lisp/leim/quail/cyrillic.el
> index 89a58cf..7c44385 100644
> --- a/lisp/leim/quail/cyrillic.el
> +++ b/lisp/leim/quail/cyrillic.el
> @@ -839,7 +839,7 @@ Sorry, but `ghe with upturn' is not included in ISO 8859-5."
> "ЯВЕРТЫ Roman transcription
>
> This layout is based on Roman transcription by phonemic resemblance.
> -When preceded by a ‘/’, the second and the third rows (number key row) change
> +When preceded by a `/', the second and the third rows (number key row) change
> as follows.
>
> keytop | Q W E R T Y U I O P A S D
> @@ -1244,8 +1244,8 @@ Unicode based."
> This phonetic layout replaces all the Latin letters with Bulgarian
> \(Cyrillic) letters based on similarities in their pronunciation or look.
>
> -Note that, since the letters ‘щ’, ‘ь’, ‘ю’ and ‘я’ are attached to the
> -‘]’, ‘\’, ‘\\=`’ and ‘[’ keys respectively, Caps Lock does not affect them."
> +Note that, since the letters `щ', `ь', `ю' and `я' are attached to the
> +`]', `\', `\\=`' and `[' keys respectively, Caps Lock does not affect them."
> nil t t t t nil nil nil nil nil t)
>
> ;; Ю 1! 2@ 3№ 4$ 5% 6€ 7§ 8* 9( 0) -– =+ ьѝ
> diff --git a/lisp/leim/quail/hebrew.el b/lisp/leim/quail/hebrew.el
> index ac67fbf..d90b362 100644
> --- a/lisp/leim/quail/hebrew.el
> +++ b/lisp/leim/quail/hebrew.el
> @@ -36,8 +36,8 @@
>
> Based on SI-1452 keyboard layout.
> Only Hebrew-related characters are considered.
> - ‘q’ is used to switch levels instead of Alt-Gr.
> - Maqaaf (־) is mapped to ‘/פ’.
> + `q' is used to switch levels instead of Alt-Gr.
> + Maqaaf (־) is mapped to `/פ'.
> " nil t t t t nil nil nil nil nil t)
>
> (quail-define-rules
> @@ -113,8 +113,8 @@ Only Hebrew-related characters are considered.
>
> Based on latest draft of SI-1452 keyboard layout.
> Only Hebrew-related characters are considered.
> - ‘\\=`’ is used to switch levels instead of Alt-Gr.
> -Geresh is mapped to ‘\\=`k’.
> + `\\=`' is used to switch levels instead of Alt-Gr.
> +Geresh is mapped to `\\=`k'.
> " nil t t t t nil nil nil nil nil t)
>
> (quail-define-rules
> @@ -457,8 +457,8 @@ Provides access to all Hebrew characters suitable to Modern Hebrew.
>
> Based on Society of Biblical Literature's Tiro keyboard layout.
> Not suitable for modern Hebrew input.
> - ‘q’ is used to switch levels instead of Alt-Gr.
> - Combining dot above (Called Masora dot) (̇) is mapped to ‘q1’.
> + `q' is used to switch levels instead of Alt-Gr.
> + Combining dot above (Called Masora dot) (̇) is mapped to `q1'.
> " nil t t t t nil nil nil nil nil t)
>
> (quail-define-rules
> @@ -603,8 +603,8 @@ Not suitable for modern Hebrew input.
>
> Based on Society of Biblical Literature's SIL keyboard layout.
> Phonetic and not suitable for modern Hebrew input.
> - ‘\\=`’ is used to switch levels instead of Alt-Gr.
> - Euro Sign (€) is mapped to ‘Z’.
> + `\\=`' is used to switch levels instead of Alt-Gr.
> + Euro Sign (€) is mapped to `Z'.
> " nil t t t t nil nil nil nil nil t)
>
> (quail-define-rules
> diff --git a/lisp/leim/quail/latin-ltx.el b/lisp/leim/quail/latin-ltx.el
> index 82c0aa3..3c84ba8 100644
> --- a/lisp/leim/quail/latin-ltx.el
> +++ b/lisp/leim/quail/latin-ltx.el
> @@ -36,7 +36,7 @@
> "LaTeX-like input method for many characters.
> These characters are from the charsets used by the `utf-8' coding
> system, including many technical ones. Examples:
> - \\'a -> á \\`{a} -> à
> + \\\\='a -> á \\\\=`{a} -> à
> \\pi -> π \\int -> ∫ ^1 -> ¹"
>
> '(("\t" . quail-completion))
> @@ -184,7 +184,7 @@ system, including many technical ones. Examples:
> ("\\H" ?̋)
> ("\\H{}" ?˝)
> ("\\U{o}" ?ő) ("\\Uo" ?ő) ;; FIXME: Was it just a typo?
> -
> +
> ("\\OE" ?Œ) ;; ("{\\OE}" ?Œ)
> ("\\oe" ?œ) ;; ("{\\oe}" ?œ)
>
> @@ -216,7 +216,7 @@ system, including many technical ones. Examples:
> (name (if (match-end 1) (capitalize basename) (downcase basename))))
> (concat "^" (if (> (length name) 1) "\\") name)))
> "\\`MODIFIER LETTER \\(?:SMALL\\|CAPITA\\(L\\)\\) \\([[:ascii:]]+\\)\\'")
> -
> +
> ;; ((lambda (name char) (format "^%s" (downcase (match-string 1 name))))
> ;; "\\`MODIFIER LETTER SMALL \\(.\\)\\'")
> ;; ("^\\1" "\\`MODIFIER LETTER CAPITAL \\(.\\)\\'")
> @@ -694,7 +694,7 @@ system, including many technical ones. Examples:
> ("\\defs" ?≙) ; per fuzz/zed
> ;; ("\\sqrt[3]" ?∛)
> ("\\llbracket" ?\〚) ; stmaryrd
> - ("\\rrbracket" ?\〛)
> + ("\\rrbracket" ?\〛)
> ;; ("\\lbag" ?\〚) ; fuzz
> ;; ("\\rbag" ?\〛)
> ("\\ldata" ?\《) ; fuzz/zed
> diff --git a/lisp/leim/quail/thai.el b/lisp/leim/quail/thai.el
> index 72e5020..7d0949e 100644
> --- a/lisp/leim/quail/thai.el
> +++ b/lisp/leim/quail/thai.el
> @@ -46,9 +46,9 @@
> "Thai Kesmanee input method with TIS620 keyboard layout
>
> The difference from the ordinal Thai keyboard:
> - ‘฿’ and ‘๏’ are assigned to ‘\\’ and ‘|’ respectively,
> - ‘ฃ’ and ‘ฅ’ are assigned to ‘\\=`’ and ‘~’ respectively,
> - Don't know where to assign characters ‘๚’ and ‘๛’."
> + `฿' and `๏' are assigned to `\\' and `|' respectively,
> + `ฃ' and `ฅ' are assigned to `\\=`' and `~' respectively,
> + Don't know where to assign characters `๚' and `๛'."
> nil t t t t nil nil nil nil nil t)
>
> (thai-generate-quail-map
> diff --git a/lisp/leim/quail/tibetan.el b/lisp/leim/quail/tibetan.el
> index d5a92ca..93cb65b 100644
> --- a/lisp/leim/quail/tibetan.el
> +++ b/lisp/leim/quail/tibetan.el
> @@ -155,7 +155,7 @@
> and to get da-drag in -r-d, -l-d .)
> | : Special signs.
>
> - Tsheg is assigned to SPC. Space is assigned to period ‘.’.
> + Tsheg is assigned to SPC. Space is assigned to period `.'.
> "
> nil nil nil nil nil nil nil nil
> 'quail-tibetan-update-translation)
> @@ -411,7 +411,7 @@
> +---------------------------------------------+
> |zཞ|xཟ|cའ|vཡ|bར|nལ|mཤ|,ས|.ཧ|/ཨ|
> +---------------------------------------+
> - The key ‘h’ is used for consonant stacking.
> + The key `h' is used for consonant stacking.
>
> [SHIFTED]
>
> @@ -427,14 +427,14 @@
>
> DIFFERENCE FROM THE ORIGINAL TIBKEY:
>
> - 1. Vowel ‘a’ should be typed explicitly by the key ‘A’.
> + 1. Vowel `a' should be typed explicitly by the key `A'.
> This is really inconvenient. But to make the coding
> scheme clear, it is desirable to have an explicit
> - vowel sign for ‘a’.
> + vowel sign for `a'.
> 2. Tsheg is assigned to SPC key. You can input a space
> - by typing ‘>’.
> + by typing `>'.
> 4. To avoid the default stacking ���� and to obtain གཡ,
> - type ‘E’ instead of ‘v’ (=ཡ).
> + type `E' instead of `v' (=ཡ).
> 3. There are many characters that are not supported in the
> current implementation (especially special signs).
> I hope I'll complete in a future revision.
> diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el
> index 70307f6..87f12ba 100644
> --- a/lisp/ls-lisp.el
> +++ b/lisp/ls-lisp.el
> @@ -222,7 +222,7 @@ current year. The OLD-TIME-FORMAT is used for older files. To use ISO
> 8601 dates, you could set:
>
> \(setq ls-lisp-format-time-list
> - '(\"%Y-%m-%d %H:%M\"
> + \\='(\"%Y-%m-%d %H:%M\"
> \"%Y-%m-%d \"))"
> :type '(list (string :tag "Early time format")
> (string :tag "Old time format"))
> diff --git a/lisp/mail/feedmail.el b/lisp/mail/feedmail.el
> index ccd8926..368e2ab 100644
> --- a/lisp/mail/feedmail.el
> +++ b/lisp/mail/feedmail.el
> @@ -418,9 +418,9 @@ cases. You can give a timeout for the prompt; see variable
> If nil, the prepped message will be shown, for confirmation or
> otherwise, in some window in the current frame without resizing
> anything. That may or may not display enough of the message to
> -distinguish it from others. If set to the symbol ‘queued’, take
> +distinguish it from others. If set to the symbol `queued', take
> this action only when running the queue. If set to the symbol
> -‘immediate’, take this action only when sending immediately. For
> +`immediate', take this action only when sending immediately. For
> any other non-nil value, take the action in both cases. Even if
> you're not confirming the sending of immediate or queued messages,
> it can still be interesting to see a lot about them as they are
> @@ -471,9 +471,9 @@ Addresses for the message envelope are deduced by examining
> appropriate address headers in the message. Generally, they will show
> up in the list of deduced addresses in the order that the headers
> happen to appear (duplicate addresses are eliminated in any case).
> -This variable can be set to the symbol ‘first’, in which case the
> +This variable can be set to the symbol `first', in which case the
> Bcc:/Resent-Bcc: addresses will appear at the beginning in the list;
> -or, it can be set to the symbol ‘last’, in which case they will appear
> +or, it can be set to the symbol `last', in which case they will appear
> at the end of the list.
>
> Why should you care? Well, maybe you don't, and certainly the same
> @@ -484,7 +484,7 @@ addresses are not handled first, there can be substantial delays in
> seeing the message again. Some configurations of sendmail, for example,
> seem to try to deliver to each addressee at least once, immediately
> and serially, so slow SMTP conversations can add up to a delay. There
> -is an option for either ‘first’ or ‘last’ because you might have a
> +is an option for either `first' or `last' because you might have a
> delivery agent that processes the addresses backwards."
> :group 'feedmail-headers
> :type '(choice (const nil)
> @@ -566,7 +566,7 @@ but common in some proprietary systems."
> "If non-nil and the email has no Sender: header, use this value.
> May be nil, in which case nothing in particular is done with respect
> to Sender: lines. By design, will not replace an existing Sender:
> -line, but you can achieve that with a fiddle-plex 'replace action.
> +line, but you can achieve that with a fiddle-plex replace action.
> NB: it makes no sense to use the value t since there is no sensible
> default for Sender:.
>
> @@ -1745,7 +1745,7 @@ applied to a file after you've just read it from disk: for example, a
> feedmail FQM message file from a queue. You could use something like
> this:
>
> -\(setq auto-mode-alist \(cons \'\(\"\\\\.fqm$\" . feedmail-vm-mail-mode\) auto-mode-alist\)\)
> +\(setq auto-mode-alist \(cons \\='\(\"\\\\.fqm$\" . feedmail-vm-mail-mode\) auto-mode-alist\)\)
> "
> (feedmail-say-debug ">in-> feedmail-vm-mail-mode")
> (let ((the-buf (current-buffer)))
> @@ -2054,7 +2054,7 @@ backup file names and the like)."
> ;; the handler for the condition-case
> (error (setq messages-skipped (1+ messages-skipped))
> (ding t)
> - (message "FQM: Trapped ‘%s’, message left in queue." (car signal-stuff))
> + (message "FQM: Trapped `%s', message left in queue." (car signal-stuff))
> (sit-for 3)
> (message "FQM: Trap details: \"%s\""
> (mapconcat 'identity (cdr signal-stuff) "\" \""))
> diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el
> index 577cec0..cd9df1f 100644
> --- a/lisp/mail/mailalias.el
> +++ b/lisp/mail/mailalias.el
> @@ -119,11 +119,11 @@ completed. `pattern' is nil when `mail-directory-requery' is nil.
>
> The value might look like this:
>
> - '(remote-shell-program \"HOST\" \"-nl\" \"USER\" \"COMMAND\")
> + (remote-shell-program \"HOST\" \"-nl\" \"USER\" \"COMMAND\")
>
> or like this:
>
> - '(remote-shell-program \"HOST\" \"-n\" \"COMMAND '^\" pattern \"'\")"
> + (remote-shell-program \"HOST\" \"-n\" \"COMMAND \\='^\" pattern \"\\='\")"
> :type 'sexp
> :group 'mailalias)
> (put 'mail-directory-process 'risky-local-variable t)
> @@ -512,7 +512,7 @@ PREFIX is the string we want to complete."
> mail-aliases))
> (if (consp mail-local-names)
> mail-local-names)
> - (or directory
> + (or directory
> (when (consp mail-directory-names)
> mail-directory-names)))
> (lambda (a b)
> diff --git a/lisp/mail/rfc2368.el b/lisp/mail/rfc2368.el
> index 3c4e9b2..50ff2cf 100644
> --- a/lisp/mail/rfc2368.el
> +++ b/lisp/mail/rfc2368.el
> @@ -66,16 +66,16 @@
>
> ;; describes 'mailto:'
> (defconst rfc2368-mailto-scheme-index 1
> - "Describes the ‘mailto:’ portion of the url.")
> + "Describes the `mailto:' portion of the url.")
> ;; i'm going to call this part the 'prequery'
> (defconst rfc2368-mailto-prequery-index 2
> - "Describes the portion of the url between ‘mailto:’ and ‘?’.")
> + "Describes the portion of the url between `mailto:' and `?'.")
> ;; i'm going to call this part the 'query'
> (defconst rfc2368-mailto-query-index 4
> - "Describes the portion of the url after ‘?’.")
> + "Describes the portion of the url after `?'.")
>
> (defun rfc2368-unhexify-string (string)
> - "Unhexify STRING -- e.g. ‘hello%20there’ -> ‘hello there’."
> + "Unhexify STRING -- e.g. `hello%20there' -> `hello there'."
> (replace-regexp-in-string "%[[:xdigit:]]\\{2\\}"
> (lambda (match)
> (string (string-to-number (substring match 1)
> diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
> index 5b5ee4e..4c0f2b9 100644
> --- a/lisp/mail/sendmail.el
> +++ b/lisp/mail/sendmail.el
> @@ -525,31 +525,33 @@ This also saves the value of `send-mail-function' via Customize."
> ;; Query the user.
> (with-temp-buffer
> (rename-buffer "*Emacs Mail Setup Help*" t)
> - (insert "\
> + (insert (substitute-command-keys "\
> Emacs is about to send an email message, but it has not been
> configured for sending email. To tell Emacs how to send email:
>
> - - Type `"
> + - Type `")
> (propertize "mail client" 'face 'bold)
> - "' to start your default email client and
> - pass it the message text.\n\n")
> + (substitute-command-keys "\
> +' to start your default email client and
> + pass it the message text.\n\n"))
> (and sendmail-program
> (executable-find sendmail-program)
> - (insert "\
> - - Type `"
> + (insert (substitute-command-keys "\
> + - Type `")
> (propertize "transport" 'face 'bold)
> - "' to invoke the system's mail transport agent
> - (the `"
> + (substitute-command-keys "\
> +' to invoke the system's mail transport agent
> + (the `")
> sendmail-program
> - "' program).\n\n"))
> - (insert "\
> - - Type `"
> + (substitute-command-keys "' program).\n\n")))
> + (insert (substitute-command-keys "\
> + - Type `")
> (propertize "smtp" 'face 'bold)
> - "' to send mail directly to an \"outgoing mail\" server.
> + (substitute-command-keys "' to send mail directly to an \"outgoing mail\" server.
> (Emacs may prompt you for SMTP settings).
>
> Emacs will record your selection and will use it thereafter.
> - To change it later, customize the option `send-mail-function'.\n")
> + To change it later, customize the option `send-mail-function'.\n"))
> (goto-char (point-min))
> (display-buffer (current-buffer))
> (let ((completion-ignore-case t))
> diff --git a/lisp/man.el b/lisp/man.el
> index c5dbcba..23b2110 100644
> --- a/lisp/man.el
> +++ b/lisp/man.el
> @@ -104,7 +104,7 @@
> "Manpage cleaning filter command phrases.
> This variable contains a list of the following form:
>
> -'((command-string phrase-string*)*)
> + ((command-string phrase-string*)*)
>
> Each phrase-string is concatenated onto the command-string to form a
> command filter. The (standard) output (and standard error) of the Un*x
> diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el
> index a8c5e33..700d22c 100644
> --- a/lisp/mh-e/mh-comp.el
> +++ b/lisp/mh-e/mh-comp.el
> @@ -91,7 +91,7 @@ user's MH directory, then in the system MH lib directory.")
> Default is \"replgroupcomps\".
>
> This file is used to form replies to the sender and all recipients of
> -a message. Only used if ‘(mh-variant-p 'nmh)’ is non-nil.
> +a message. Only used if (mh-variant-p \\='nmh) is non-nil.
> If not an absolute file name, the file is searched for first in the
> user's MH directory, then in the system MH lib directory.")
>
> diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el
> index 82c7a4d..9865d08 100644
> --- a/lisp/mh-e/mh-compat.el
> +++ b/lisp/mh-e/mh-compat.el
> @@ -162,7 +162,7 @@ compatibility with versions of Emacs that lack the variable
>
> (let* ((load-path (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\"))
> (image-load-path (cons (car load-path)
> - (when (boundp 'image-load-path)
> + (when (boundp \\='image-load-path)
> image-load-path))))
> (mh-tool-bar-folder-buttons-init))"
> (unless library (error "No library specified"))
> diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
> index 22e4cd7..7cdf67c 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"))
> @@ -1657,7 +1657,7 @@ using the Emacs 22 command \"emacsclient\" as follows:
> origMode
> polltime 10
> headertime 0
> - command emacsclient --eval '(mh-inc-spool-mh-e)'
> + command emacsclient --eval \\='(mh-inc-spool-mh-e)\\='
>
> In XEmacs, the command \"gnuclient\" is used in a similar
> fashion."
> diff --git a/lisp/mh-e/mh-seq.el b/lisp/mh-e/mh-seq.el
> index 2e73f62..259f60d 100644
> --- a/lisp/mh-e/mh-seq.el
> +++ b/lisp/mh-e/mh-seq.el
> @@ -390,7 +390,7 @@ then a non-empty sequence is read."
> "Read and return a sequence name.
> Prompt with PROMPT, raise an error if the sequence is empty and
> the NOT-EMPTY flag is non-nil, and supply an optional DEFAULT
> -sequence. A reply of ‘%’ defaults to the first sequence
> +sequence. A reply of `%' defaults to the first sequence
> containing the current message."
> (let* ((input (completing-read (format "%s sequence%s: " prompt
> (if default
> @@ -766,7 +766,7 @@ completion is over."
> "Parse LINE to generate folder name, unseen messages and total messages.
> If CURRENT-FOLDER is non-nil then it contains the current folder
> name and it is used to avoid problems in corner cases involving
> -folders whose names end with a ‘+’ character."
> +folders whose names end with a `+' character."
> (with-temp-buffer
> (insert line)
> (goto-char (point-max))
> diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el
> index 060da46..643674a 100644
> --- a/lisp/mh-e/mh-utils.el
> +++ b/lisp/mh-e/mh-utils.el
> @@ -419,21 +419,21 @@ names and the function is called when OUTPUT is available."
> return-nil-if-folder-empty)
> "Normalizes FOLDER name.
>
> -Makes sure that two ‘/’ characters never occur next to each
> -other. Also all occurrences of ‘..’ and ‘.’ are suitably
> +Makes sure that two `/' characters never occur next to each
> +other. Also all occurrences of `..' and `.' are suitably
> processed. So \"+inbox/../news\" will be normalized to \"+news\".
>
> -If optional argument EMPTY-STRING-OKAY is nil then a ‘+’ is added
> +If optional argument EMPTY-STRING-OKAY is nil then a `+' is added
> at the front if FOLDER lacks one. If non-nil and FOLDER is the
> empty string then nothing is added.
>
> If optional argument DONT-REMOVE-TRAILING-SLASH is non-nil then a
> -trailing ‘/’ if present is retained (if present), otherwise it is
> +trailing `/' if present is retained (if present), otherwise it is
> removed.
>
> If optional argument RETURN-NIL-IF-FOLDER-EMPTY is non-nil, then
> return nil if FOLDER is \"\" or \"+\". This is useful when
> -normalizing the folder for the ‘folders’ command which displays
> +normalizing the folder for the `folders' command which displays
> the directories in / if passed \"+\". This is usually not
> desired. If this argument is non-nil, then EMPTY-STRING-OKAY has
> no effect."
> diff --git a/lisp/mouse-copy.el b/lisp/mouse-copy.el
> index d3c3c80..6198a12 100644
> --- a/lisp/mouse-copy.el
> +++ b/lisp/mouse-copy.el
> @@ -154,7 +154,7 @@ If you have the bug (or the real fix :-), please let me know."
> "Drag out a secondary selection, then paste it at the current point.
>
> To test this function, evaluate:
> - (global-set-key [M-down-mouse-1] 'mouse-drag-secondary-pasting)
> + (global-set-key [M-down-mouse-1] \\='mouse-drag-secondary-pasting)
> put the point at one place, then click and drag over some other region."
> (interactive "e")
> ;; Work-around: We see and react to each part of a multi-click event
> diff --git a/lisp/mouse-drag.el b/lisp/mouse-drag.el
> index 945c305..2b61096 100644
> --- a/lisp/mouse-drag.el
> +++ b/lisp/mouse-drag.el
> @@ -206,7 +206,7 @@ about which direction is natural. Perhaps it has to do with which
> hemisphere you're in.)
>
> To test this function, evaluate:
> - (global-set-key [down-mouse-2] 'mouse-drag-throw)"
> + (global-set-key [down-mouse-2] \\='mouse-drag-throw)"
> (interactive "e")
> ;; we want to do save-selected-window, but that requires 19.29
> (let* ((start-posn (event-start start-event))
> @@ -266,7 +266,7 @@ Drag scrolling is identical to the \"hand\" option in MacPaint, or the
> middle button in Tk text widgets.
>
> To test this function, evaluate:
> - (global-set-key [down-mouse-2] 'mouse-drag-drag)"
> + (global-set-key [down-mouse-2] \\='mouse-drag-drag)"
> (interactive "e")
> ;; we want to do save-selected-window, but that requires 19.29
> (let* ((start-posn (event-start start-event))
> diff --git a/lisp/mouse.el b/lisp/mouse.el
> index f52b83b..6584733 100644
> --- a/lisp/mouse.el
> +++ b/lisp/mouse.el
> @@ -146,7 +146,7 @@ items `Turn Off' and `Help'."
> (describe-minor-mode-completion-table-for-indicator))))
> (let* ((minor-mode (lookup-minor-mode-from-indicator indicator))
> (mm-fun (or (get minor-mode :minor-mode-function) minor-mode)))
> - (unless minor-mode (error "Cannot find minor mode for ‘%s’" indicator))
> + (unless minor-mode (error "Cannot find minor mode for `%s'" indicator))
> (let* ((map (cdr-safe (assq minor-mode minor-mode-map-alist)))
> (menu (and (keymapp map) (lookup-key map [menu-bar]))))
> (setq menu
> diff --git a/lisp/mpc.el b/lisp/mpc.el
> index 59581f3..b7c19a9 100644
> --- a/lisp/mpc.el
> +++ b/lisp/mpc.el
> @@ -253,6 +253,7 @@ defaults to 6600 and HOST defaults to localhost."
>
> (defun mpc--proc-connect (host)
> (let ((port 6600)
> + local
> pass)
>
> (when (string-match "\\`\\(?:\\(.*\\)@\\)?\\(.*?\\)\\(?::\\(.*\\)\\)?\\'"
> @@ -267,6 +268,8 @@ defaults to 6600 and HOST defaults to localhost."
> (if (string-match "[^[:digit:]]" v)
> (string-to-number v)
> v)))))
> + (when (string-prefix-p "/" host) ;FIXME: Use file-name-absolute-p?
> + (setq local t))
>
> (mpc--debug "Connecting to %s:%s..." host port)
> (with-current-buffer (get-buffer-create (format " *mpc-%s:%s*" host port))
> @@ -279,7 +282,10 @@ defaults to 6600 and HOST defaults to localhost."
> (let* ((coding-system-for-read 'utf-8-unix)
> (coding-system-for-write 'utf-8-unix)
> (proc (condition-case err
> - (open-network-stream "MPC" (current-buffer) host port)
> + (make-network-process :name "MPC" :buffer (current-buffer)
> + :host (unless local host)
> + :service (if local host port)
> + :family (if local 'local))
> (error (user-error (error-message-string err))))))
> (when (processp mpc-proc)
> ;; Inherit the properties of the previous connection.
> @@ -1751,7 +1757,7 @@ A value of t means the main playlist.")
> (completing-read "Rename playlist: "
> (mpc-cmd-list 'Playlist)
> nil 'require-match)))
> - (newname (read-string (format-message "Rename ‘%s’ to: " oldname))))
> + (newname (read-string (format-message "Rename `%s' to: " oldname))))
> (if (zerop (length newname))
> (error "Aborted")
> (list oldname newname))))
> @@ -2630,6 +2636,8 @@ This is used so that they can be compared with `eq', which is needed for
> (interactive
> (progn
> (if current-prefix-arg
> + ;; FIXME: We should provide some completion here, especially for the
> + ;; case where the user specifies a local socket/file name.
> (setq mpc-host (read-string "MPD host and port: " nil nil mpc-host)))
> nil))
> (let* ((song-buf (mpc-songs-buf))
> diff --git a/lisp/msb.el b/lisp/msb.el
> index b717dcc..0351bda 100644
> --- a/lisp/msb.el
> +++ b/lisp/msb.el
> @@ -746,7 +746,7 @@ to the buffer-list variable in FUNCTION-INFO."
> (error (unless msb--error
> (setq msb--error
> (format-message
> - "In msb-menu-cond, error for buffer ‘%s’."
> + "In msb-menu-cond, error for buffer `%s'."
> (buffer-name buffer)))
> (error "%s" msb--error))))))
>
> diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
> index 38b1604..bb83514 100644
> --- a/lisp/net/ange-ftp.el
> +++ b/lisp/net/ange-ftp.el
> @@ -4626,7 +4626,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
> (format "%s %s \"%s\"" ; remsh -l USER does not work well
> ; on a hp-ux machine I tried
> remote-shell-program host command))
> - (ange-ftp-message "Remote command ‘%s’ ..." command)
> + (ange-ftp-message "Remote command `%s' ..." command)
> ;; Cannot call ange-ftp-real-dired-run-shell-command here as it
> ;; would prepend "cd default-directory" --- which bombs because
> ;; default-directory is in ange-ftp syntax for remote file names.
> @@ -5978,7 +5978,7 @@ Other orders of $ and _ seem to all work just fine.")
>
> (defcustom ange-ftp-bs2000-special-prefix
> "X"
> - "Prefix used for filenames starting with ‘#’ or ‘@’."
> + "Prefix used for filenames starting with `#' or `@'."
> :group 'ange-ftp
> :type 'string)
>
> diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
> index 3f8cb84..757e368 100644
> --- a/lisp/net/browse-url.el
> +++ b/lisp/net/browse-url.el
> @@ -439,7 +439,7 @@ For example, adding to the default a specific translation of an ange-ftp
> address to an HTTP URL:
>
> (setq browse-url-filename-alist
> - '((\"/webmaster@webserver:/home/www/html/\" .
> + \\='((\"/webmaster@webserver:/home/www/html/\" .
> \"http://www.acme.co.uk/\")
> (\"^/\\(ftp@\\|anonymous@\\)?\\([^:]+\\):/*\" . \"ftp://\\2/\")
> (\"^/\\([^:@]+@\\)?\\([^:]+\\):/*\" . \"ftp://\\1\\2/\")
> diff --git a/lisp/net/imap.el b/lisp/net/imap.el
> index cc53e04..b559ff6 100644
> --- a/lisp/net/imap.el
> +++ b/lisp/net/imap.el
> @@ -851,14 +851,14 @@ t if it successfully authenticates, nil otherwise."
> (setq user (or imap-username
> (read-from-minibuffer
> (format-message
> - "imap: username for %s (using stream ‘%s’): "
> + "imap: username for %s (using stream `%s'): "
> imap-server imap-stream)
> (or user imap-default-user))))
> (setq passwd
> (or imap-password
> (read-passwd
> (format-message
> - "imap: password for %s@%s (using authenticator ‘%s’): "
> + "imap: password for %s@%s (using authenticator `%s'): "
> user imap-server imap-auth))))
> (when (and user passwd)
> (if (funcall loginfunc user passwd)
> diff --git a/lisp/net/mairix.el b/lisp/net/mairix.el
> index 8a9236c..a73b4df 100644
> --- a/lisp/net/mairix.el
> +++ b/lisp/net/mairix.el
> @@ -398,7 +398,7 @@ Overwrite existing entry? ")
> (concat "\n\n" (make-string 65 ?=)
> "\nYou can now customize your saved Mairix searches by modifying\n\
> the variable mairix-saved-searches. Don't forget to save your\nchanges \
> -in your .emacs by pressing ‘Save for Future Sessions’.\n"
> +in your .emacs by pressing `Save for Future Sessions'.\n"
> (make-string 65 ?=) "\n")))
>
> (autoload 'mail-strip-quoted-names "mail-utils")
> @@ -668,7 +668,7 @@ Fill in VALUES if based on an article."
> " ^substring= to match the substring at the beginning of a word.\n"))
> (widget-insert
> (format-message
> - "Whitespace will be converted to ‘,’ (i.e. AND). Use ‘/’ for OR.\n\n"))
> + "Whitespace will be converted to `,' (i.e. AND). Use `/' for OR.\n\n"))
> (setq mairix-widgets (mairix-widget-build-editable-fields values))
> (when (member 'flags mairix-widget-other)
> (widget-insert "\nFlags:\n Seen: ")
> diff --git a/lisp/net/newst-backend.el b/lisp/net/newst-backend.el
> index 9277b09..6c80e62 100644
> --- a/lisp/net/newst-backend.el
> +++ b/lisp/net/newst-backend.el
> @@ -848,8 +848,8 @@ Argument BUFFER is the buffer of the retrieval process."
> newsticker--error-headline
> (format-message
> (concat "%s: Newsticker could not retrieve news from %s.\n"
> - "Return status: ‘%s’\n"
> - "Command was ‘%s’")
> + "Return status: `%s'\n"
> + "Command was `%s'")
> (format-time-string "%A, %H:%M")
> feed-name event command)
> ""
> diff --git a/lisp/net/newst-treeview.el b/lisp/net/newst-treeview.el
> index ef8507e..4eef580 100644
> --- a/lisp/net/newst-treeview.el
> +++ b/lisp/net/newst-treeview.el
> @@ -1269,7 +1269,7 @@ Note: does not update the layout."
> (file-exists-p newsticker-groups-filename)
> (y-or-n-p
> (format-message
> - (concat "Obsolete variable ‘newsticker-groups-filename’ "
> + (concat "Obsolete variable `newsticker-groups-filename' "
> "points to existing file \"%s\".\n"
> "Read it? ")
> newsticker-groups-filename))
> @@ -1281,7 +1281,7 @@ Note: does not update the layout."
> (file-exists-p newsticker-groups-filename)
> (y-or-n-p (format-message
> (concat "Delete the file \"%s\",\nto which the obsolete "
> - "variable ‘newsticker-groups-filename’ points ? ")
> + "variable `newsticker-groups-filename' points ? ")
> newsticker-groups-filename))
> (delete-file newsticker-groups-filename))
> (when buf
> diff --git a/lisp/net/ntlm.el b/lisp/net/ntlm.el
> index 5f02e29..ff7e79e 100644
> --- a/lisp/net/ntlm.el
> +++ b/lisp/net/ntlm.el
> @@ -3,8 +3,9 @@
> ;; Copyright (C) 2001, 2007-2015 Free Software Foundation, Inc.
>
> ;; Author: Taro Kawagishi <tarok@transpulse.org>
> -;; Keywords: NTLM, SASL
> -;; Version: 1.00
> +;; Maintainer: Thomas Fitzsimmons <fitzsim@fitzsim.org>
> +;; Keywords: NTLM, SASL, comm
> +;; Version: 2.00
> ;; Created: February 2001
>
> ;; This file is part of GNU Emacs.
> @@ -65,6 +66,27 @@
> ;;; Code:
>
> (require 'md4)
> +(require 'hmac-md5)
> +(require 'calc)
> +
> +(defgroup ntlm nil
> + "NTLM (NT LanManager) authentication."
> + :version "25.1"
> + :group 'comm)
> +
> +(defcustom ntlm-compatibility-level 5
> + "The NTLM compatibility level.
> +Ordered from 0, the oldest, least-secure level through 5, the
> +newest, most-secure level. Newer servers may reject lower
> +levels. At levels 3 through 5, send LMv2 and NTLMv2 responses.
> +At levels 0, 1 and 2, send LM and NTLM responses.
> +
> +In this implementation, levels 0, 1 and 2 are the same (old,
> +insecure), and levels 3, 4 and 5 are the same (new, secure). If
> +NTLM authentication isn't working at level 5, try level 0. The
> +other levels are only present because other clients have six
> +levels."
> + :type '(choice (const 0) (const 1) (const 2) (const 3) (const 4) (const 5)))
>
> ;;;
> ;;; NTLM authentication interface functions
> @@ -112,6 +134,39 @@ is not given."
> `(string-as-unibyte ,string)
> string)))
>
> +(defun ntlm-compute-timestamp ()
> + "Compute an NTLMv2 timestamp.
> +Return a unibyte string representing the number of tenths of a
> +microsecond since January 1, 1601 as a 64-bit little-endian
> +signed integer."
> + (let* ((s-to-tenths-of-us "mul(add(lsh($1,16),$2),10000000)")
> + (us-to-tenths-of-us "mul($3,10)")
> + (ps-to-tenths-of-us "idiv($4,100000)")
> + (tenths-of-us-since-jan-1-1601
> + (apply 'calc-eval (concat "add(add(add("
> + s-to-tenths-of-us ","
> + us-to-tenths-of-us "),"
> + ps-to-tenths-of-us "),"
> + ;; tenths of microseconds between
> + ;; 1601-01-01 and 1970-01-01
> + "116444736000000000)")
> + ;; add trailing zeros to support old current-time formats
> + 'rawnum (append (current-time) '(0 0))))
> + result-bytes)
> + (dotimes (byte 8)
> + (push (calc-eval "and($1,16#FF)" 'rawnum tenths-of-us-since-jan-1-1601)
> + result-bytes)
> + (setq tenths-of-us-since-jan-1-1601
> + (calc-eval "rsh($1,8,64)" 'rawnum tenths-of-us-since-jan-1-1601)))
> + (apply 'unibyte-string (nreverse result-bytes))))
> +
> +(defun ntlm-generate-nonce ()
> + "Generate a random nonce, not to be used more than once.
> +Return a random eight byte unibyte string."
> + (unibyte-string
> + (random 256) (random 256) (random 256) (random 256)
> + (random 256) (random 256) (random 256) (random 256)))
> +
> (defun ntlm-build-auth-response (challenge user password-hashes)
> "Return the response string to a challenge string CHALLENGE given by
> the NTLM based server for the user USER and the password hash list
> @@ -128,9 +183,9 @@ by PASSWORD-HASHES. PASSWORD-HASHES should be a return value of
> uDomain-len uDomain-offs
> ;; response struct and its fields
> lmRespData ;lmRespData, 24 bytes
> - ntRespData ;ntRespData, 24 bytes
> + ntRespData ;ntRespData, variable length
> domain ;ascii domain string
> - lu ld off-lm off-nt off-d off-u off-w off-s)
> + lu ld ln off-lm off-nt off-d off-u off-w off-s)
> ;; extract domain string from challenge string
> (setq uDomain-len (md4-unpack-int16 (substring uDomain 0 2)))
> (setq uDomain-offs (md4-unpack-int32 (substring uDomain 4 8)))
> @@ -144,30 +199,63 @@ by PASSWORD-HASHES. PASSWORD-HASHES should be a return value of
> (setq domain (substring user (1+ (match-beginning 0))))
> (setq user (substring user 0 (match-beginning 0))))
>
> - ;; check if "negotiate NTLM2 key" flag is set in type 2 message
> - (if (not (zerop (logand (aref flags 2) 8)))
> - (let (randomString
> - sessionHash)
> - ;; generate NTLM2 session response data
> - (setq randomString (string-make-unibyte
> - (concat
> - (make-string 1 (random 256))
> - (make-string 1 (random 256))
> - (make-string 1 (random 256))
> - (make-string 1 (random 256))
> - (make-string 1 (random 256))
> - (make-string 1 (random 256))
> - (make-string 1 (random 256))
> - (make-string 1 (random 256)))))
> - (setq sessionHash (secure-hash 'md5
> - (concat challengeData randomString)
> - nil nil t))
> - (setq sessionHash (substring sessionHash 0 8))
> -
> - (setq lmRespData (concat randomString (make-string 16 0)))
> - (setq ntRespData (ntlm-smb-owf-encrypt
> - (cadr password-hashes) sessionHash)))
> - (progn
> + (unless (and (integerp ntlm-compatibility-level)
> + (>= ntlm-compatibility-level 0)
> + (<= ntlm-compatibility-level 5))
> + (error "Invalid ntlm-compatibility-level value"))
> + (if (and (>= ntlm-compatibility-level 3)
> + (<= ntlm-compatibility-level 5))
> + ;; extract target information block, if it is present
> + (if (< (cdr uDomain-offs) 48)
> + (error "Failed to find target information block")
> + (let* ((targetInfo-len (md4-unpack-int16 (substring rchallenge
> + 40 42)))
> + (targetInfo-offs (md4-unpack-int32 (substring rchallenge
> + 44 48)))
> + (targetInfo (substring rchallenge
> + (cdr targetInfo-offs)
> + (+ (cdr targetInfo-offs)
> + targetInfo-len)))
> + (upcase-user (upcase (ntlm-ascii2unicode user (length user))))
> + (ntlmv2-hash (hmac-md5 (concat upcase-user
> + (ntlm-ascii2unicode
> + domain (length domain)))
> + (cadr password-hashes)))
> + (nonce (ntlm-generate-nonce))
> + (blob (concat (make-string 2 1)
> + (make-string 2 0) ; blob signature
> + (make-string 4 0) ; reserved value
> + (ntlm-compute-timestamp) ; timestamp
> + nonce ; client nonce
> + (make-string 4 0) ; unknown
> + targetInfo ; target info
> + (make-string 4 0))) ; unknown
> + ;; for reference: LMv2 interim calculation
> + ;; (lm-interim (hmac-md5 (concat challengeData nonce)
> + ;; ntlmv2-hash))
> + (nt-interim (hmac-md5 (concat challengeData blob)
> + ntlmv2-hash)))
> + ;; for reference: LMv2 field, but match other clients that
> + ;; send all zeros
> + ;; (setq lmRespData (concat lm-interim nonce))
> + (setq lmRespData (make-string 24 0))
> + (setq ntRespData (concat nt-interim blob))))
> + ;; compatibility level is 2, 1 or 0
> + ;; level 2 should be treated specially but it's not clear how,
> + ;; so just treat it the same as levels 0 and 1
> + ;; check if "negotiate NTLM2 key" flag is set in type 2 message
> + (if (not (zerop (logand (aref flags 2) 8)))
> + (let (randomString
> + sessionHash)
> + ;; generate NTLM2 session response data
> + (setq randomString (ntlm-generate-nonce))
> + (setq sessionHash (secure-hash 'md5
> + (concat challengeData randomString)
> + nil nil t))
> + (setq sessionHash (substring sessionHash 0 8))
> + (setq lmRespData (concat randomString (make-string 16 0)))
> + (setq ntRespData (ntlm-smb-owf-encrypt
> + (cadr password-hashes) sessionHash)))
> ;; generate response data
> (setq lmRespData
> (ntlm-smb-owf-encrypt (car password-hashes) challengeData))
> @@ -177,12 +265,13 @@ by PASSWORD-HASHES. PASSWORD-HASHES should be a return value of
> ;; get offsets to fields to pack the response struct in a string
> (setq lu (length user))
> (setq ld (length domain))
> + (setq ln (length ntRespData))
> (setq off-lm 64) ;offset to string 'lmResponse
> (setq off-nt (+ 64 24)) ;offset to string 'ntResponse
> - (setq off-d (+ 64 48)) ;offset to string 'uDomain
> - (setq off-u (+ 64 48 (* 2 ld))) ;offset to string 'uUser
> - (setq off-w (+ 64 48 (* 2 (+ ld lu)))) ;offset to string 'uWks
> - (setq off-s (+ 64 48 (* 2 (+ ld lu lu)))) ;offset to string 'sessionKey
> + (setq off-d (+ 64 24 ln)) ;offset to string 'uDomain
> + (setq off-u (+ 64 24 ln (* 2 ld))) ;offset to string 'uUser
> + (setq off-w (+ 64 24 ln (* 2 (+ ld lu)))) ;offset to string 'uWks
> + (setq off-s (+ 64 24 ln (* 2 (+ ld lu lu)))) ;offset to string 'sessionKey
> ;; pack the response struct in a string
> (concat "NTLMSSP\0" ;response ident field, 8 bytes
> (md4-pack-int32 '(0 . 3)) ;response msgType field, 4 bytes
> @@ -194,9 +283,9 @@ by PASSWORD-HASHES. PASSWORD-HASHES should be a return value of
> (md4-pack-int32 (cons 0 off-lm)) ;field offset
>
> ;; ntResponse field, 8 bytes
> - ;;AddBytes(response,ntResponse,ntRespData,24);
> - (md4-pack-int16 24) ;len field
> - (md4-pack-int16 24) ;maxlen field
> + ;;AddBytes(response,ntResponse,ntRespData,ln);
> + (md4-pack-int16 ln) ;len field
> + (md4-pack-int16 ln) ;maxlen field
> (md4-pack-int32 (cons 0 off-nt)) ;field offset
>
> ;; uDomain field, 8 bytes
> diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
> index cd5bbbd..df06350 100644
> --- a/lisp/net/rcirc.el
> +++ b/lisp/net/rcirc.el
> @@ -926,7 +926,7 @@ The list is updated automatically by `defun-rcirc-command'.")
>
> (defun rcirc-complete ()
> "Cycle through completions from list of nicks in channel or IRC commands.
> -IRC command completion is performed only if ‘/’ is the first input char."
> +IRC command completion is performed only if `/' is the first input char."
> (interactive)
> (unless (rcirc-looking-at-input)
> (error "Point not located after rcirc prompt"))
> diff --git a/lisp/net/rlogin.el b/lisp/net/rlogin.el
> index c0dcc23..da46ec3 100644
> --- a/lisp/net/rlogin.el
> +++ b/lisp/net/rlogin.el
> @@ -175,7 +175,7 @@ function `rlogin-directory-tracking-mode' rather than simply setting the
> variable."
> (interactive (list
> (read-from-minibuffer (format-message
> - "Arguments for ‘%s’ (hostname first): "
> + "Arguments for `%s' (hostname first): "
> (file-name-nondirectory rlogin-program))
> nil nil nil 'rlogin-history)
> current-prefix-arg))
> diff --git a/lisp/net/soap-client.el b/lisp/net/soap-client.el
> index a05108d..ada2767 100644
> --- a/lisp/net/soap-client.el
> +++ b/lisp/net/soap-client.el
> @@ -489,7 +489,7 @@ structure predicate for the type of element you want to retrieve.
> For example, to retrieve a message named \"foo\" when other
> elements named \"foo\" exist in the WSDL you could use:
>
> - (soap-wsdl-get \"foo\" WSDL 'soap-message-p)
> + (soap-wsdl-get \"foo\" WSDL \\='soap-message-p)
>
> If USE-LOCAL-ALIAS-TABLE is not nil, `soap-local-xmlns' will be
> used to resolve the namespace alias."
> diff --git a/lisp/net/tls.el b/lisp/net/tls.el
> index 544aec5..48e6a42 100644
> --- a/lisp/net/tls.el
> +++ b/lisp/net/tls.el
> @@ -137,7 +137,7 @@ the external program knows about the root certificates you
> consider trustworthy, e.g.:
>
> \(setq tls-program
> - '(\"gnutls-cli --x509cafile /etc/ssl/certs/ca-certificates.crt -p %p %h\"
> + \\='(\"gnutls-cli --x509cafile /etc/ssl/certs/ca-certificates.crt -p %p %h\"
> \"gnutls-cli --x509cafile /etc/ssl/certs/ca-certificates.crt -p %p %h --protocols ssl3\"
> \"openssl s_client -connect %h:%p -CAfile /etc/ssl/certs/ca-certificates.crt -no_ssl2 -ign_eof\"))"
> :type '(choice (const :tag "Always" t)
> diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
> index 6cec3c5..0969048 100644
> --- a/lisp/net/tramp.el
> +++ b/lisp/net/tramp.el
> @@ -972,14 +972,14 @@ checked via the following code:
> (erase-buffer)
> (let ((proc (start-process (buffer-name) (current-buffer)
> \"ssh\" \"-l\" user host \"wc\" \"-c\")))
> - (when (memq (process-status proc) '(run open))
> + (when (memq (process-status proc) \\='(run open))
> (process-send-string proc (make-string sent ?\\ ))
> (process-send-eof proc)
> (process-send-eof proc))
> (while (not (progn (goto-char (point-min))
> (re-search-forward \"\\\\w+\" (point-max) t)))
> (accept-process-output proc 1))
> - (when (memq (process-status proc) '(run open))
> + (when (memq (process-status proc) \\='(run open))
> (setq received (string-to-number (match-string 0)))
> (delete-process proc)
> (message \"Bytes sent: %s\\tBytes received: %s\" sent received)
> @@ -3615,7 +3615,7 @@ This is needed in order to hide `last-coding-system-used', which is set
> for process communication also."
> (with-current-buffer (process-buffer proc)
> ;; FIXME: If there is a gateway process, we need communication
> - ;; between several processes. Too complicate to implement, so we
> + ;; between several processes. Too complicated to implement, so we
> ;; read output from all processes.
> (let ((p (if (tramp-get-connection-property proc "gateway" nil) nil proc))
> buffer-read-only last-coding-system-used)
> diff --git a/lisp/obsolete/fast-lock.el b/lisp/obsolete/fast-lock.el
> index 0f57dfd..7e3dd66 100644
> --- a/lisp/obsolete/fast-lock.el
> +++ b/lisp/obsolete/fast-lock.el
> @@ -336,7 +336,7 @@ If nil, means information for all faces will be saved.")
> With arg, turn Fast Lock mode on if and only if arg is positive and the buffer
> is associated with a file. Enable it automatically in your `~/.emacs' by:
>
> - (setq font-lock-support-mode 'fast-lock-mode)
> + (setq font-lock-support-mode \\='fast-lock-mode)
>
> If Fast Lock mode is enabled, and the current buffer does not contain any text
> properties, any associated Font Lock cache is used if its timestamp matches the
> @@ -538,7 +538,7 @@ If the same file has different cache file names when edited on different
> machines, e.g., on one machine the cache file name has the prefix `#home',
> perhaps due to automount, try putting in your `~/.emacs' something like:
>
> - (setq directory-abbrev-alist (cons '(\"^/home/\" . \"/\") directory-abbrev-alist))
> + (setq directory-abbrev-alist (cons \\='(\"^/home/\" . \"/\") directory-abbrev-alist))
>
> Emacs automagically removes the common `/tmp_mnt' automount prefix by default.
>
> diff --git a/lisp/obsolete/iswitchb.el b/lisp/obsolete/iswitchb.el
> index 61f9d7f..4121e65 100644
> --- a/lisp/obsolete/iswitchb.el
> +++ b/lisp/obsolete/iswitchb.el
> @@ -1096,7 +1096,7 @@ Return the modified list with the last element prepended to it."
> (and iswitchb-prompt-newbuffer
> (y-or-n-p
> (format-message
> - "No buffer matching ‘%s’, create one? "
> + "No buffer matching `%s', create one? "
> buf)))))
> ;; then create a new buffer
> (progn
> diff --git a/lisp/obsolete/landmark.el b/lisp/obsolete/landmark.el
> index 39684a7..91c3387 100644
> --- a/lisp/obsolete/landmark.el
> +++ b/lisp/obsolete/landmark.el
> @@ -866,7 +866,7 @@ If the game is finished, this command requests for another game."
> (move-to-column (+ landmark-x-offset (* landmark-square-width (1- x)))))
>
> (defun landmark-plot-square (square value)
> - "Draw ‘X’, ‘O’ or ‘.’ on SQUARE depending on VALUE, leave point there."
> + "Draw `X', `O' or `.' on SQUARE depending on VALUE, leave point there."
> (or (= value 1)
> (landmark-goto-square square))
> (let ((inhibit-read-only t))
> diff --git a/lisp/obsolete/lazy-lock.el b/lisp/obsolete/lazy-lock.el
> index 885a11f..79afd80 100644
> --- a/lisp/obsolete/lazy-lock.el
> +++ b/lisp/obsolete/lazy-lock.el
> @@ -466,7 +466,7 @@ See also `lazy-lock-stealth-load'."
> With arg, turn Lazy Lock mode on if and only if arg is positive. Enable it
> automatically in your `~/.emacs' by:
>
> - (setq font-lock-support-mode 'lazy-lock-mode)
> + (setq font-lock-support-mode \\='lazy-lock-mode)
>
> For a newer font-lock support mode with similar functionality, see
> `jit-lock-mode'. Eventually, Lazy Lock mode will be deprecated in
> diff --git a/lisp/obsolete/otodo-mode.el b/lisp/obsolete/otodo-mode.el
> index be067f8..1e9f7e4 100644
> --- a/lisp/obsolete/otodo-mode.el
> +++ b/lisp/obsolete/otodo-mode.el
> @@ -648,7 +648,7 @@ If point is on an empty line, insert the entry there."
> (forward-line (1- todo-previous-line))
> (let ((item (todo-item-string-start)))
> (setq todo-previous-answer
> - (y-or-n-p (format-message "More important than ‘%s’? " item)))))
> + (y-or-n-p (format-message "More important than `%s'? " item)))))
> todo-previous-answer)
> (defalias 'todo-ask-p 'todo-more-important-p)
>
> diff --git a/lisp/obsolete/pgg-gpg.el b/lisp/obsolete/pgg-gpg.el
> index cd29c61..f3d63eb 100644
> --- a/lisp/obsolete/pgg-gpg.el
> +++ b/lisp/obsolete/pgg-gpg.el
> @@ -122,7 +122,7 @@
> (insert-file-contents output-file-name)))
> (set-buffer errors-buffer)
> (if (memq status '(stop signal))
> - (error "%s exited abnormally: ‘%s’" program exit-status))
> + (error "%s exited abnormally: `%s'" program exit-status))
> (if (= 127 exit-status)
> (error "%s could not be found" program))))
> (if passphrase-with-newline
> diff --git a/lisp/obsolete/pgg-pgp.el b/lisp/obsolete/pgg-pgp.el
> index ee7af04..af2d7a8 100644
> --- a/lisp/obsolete/pgg-pgp.el
> +++ b/lisp/obsolete/pgg-pgp.el
> @@ -99,7 +99,7 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
> (pgg-convert-lbt-region (point-min)(point-max) 'LF)
>
> (if (memq status '(stop signal))
> - (error "%s exited abnormally: ‘%s’" program exit-status))
> + (error "%s exited abnormally: `%s'" program exit-status))
> (if (= 127 exit-status)
> (error "%s could not be found" program))
>
> diff --git a/lisp/obsolete/pgg-pgp5.el b/lisp/obsolete/pgg-pgp5.el
> index d87c6fd..bbc08c4 100644
> --- a/lisp/obsolete/pgg-pgp5.el
> +++ b/lisp/obsolete/pgg-pgp5.el
> @@ -115,7 +115,7 @@ Bourne shell or its equivalent \(not tcsh) is needed for \"2>\"."
> (pgg-convert-lbt-region (point-min)(point-max) 'LF)
>
> (if (memq status '(stop signal))
> - (error "%s exited abnormally: ‘%s’" program exit-status))
> + (error "%s exited abnormally: `%s'" program exit-status))
> (if (= 127 exit-status)
> (error "%s could not be found" program))
>
> diff --git a/lisp/obsolete/sym-comp.el b/lisp/obsolete/sym-comp.el
> index c633bd5..ac67963 100644
> --- a/lisp/obsolete/sym-comp.el
> +++ b/lisp/obsolete/sym-comp.el
> @@ -165,9 +165,9 @@ Uses `symbol-completion-symbol-function' and
> used something like this in a major mode which provides symbol
> completion:
>
> - (if (featurep 'hippie-exp)
> - (set (make-local-variable 'hippie-expand-try-functions-list)
> - (cons 'symbol-completion-try-complete
> + (if (featurep \\='hippie-exp)
> + (set (make-local-variable \\='hippie-expand-try-functions-list)
> + (cons \\='symbol-completion-try-complete
> hippie-expand-try-functions-list)))"
> (when (and symbol-completion-symbol-function
> symbol-completion-completions-function)
> diff --git a/lisp/obsolete/tpu-edt.el b/lisp/obsolete/tpu-edt.el
> index adf6122..d16cd27 100644
> --- a/lisp/obsolete/tpu-edt.el
> +++ b/lisp/obsolete/tpu-edt.el
> @@ -873,7 +873,7 @@ With argument, fill and justify."
> (set-frame-width (selected-frame) width))
>
> (defun tpu-toggle-newline-and-indent nil
> - "Toggle between ‘newline and indent’ and ‘simple newline’."
> + "Toggle between `newline-and-indent' and simple `newline'."
> (interactive)
> (cond (tpu-newline-and-indent-p
> (setq tpu-newline-and-indent-string "")
> @@ -1313,7 +1313,7 @@ kill modified buffers without asking."
> (if tpu-regexp-p "en" "dis"))))
>
> (defun tpu-regexp-prompt (prompt)
> - "Read a string, adding ‘RE ’ to the prompt if tpu-regexp-p is set."
> + "Read a string, adding `RE ' to the prompt if tpu-regexp-p is set."
> (let ((re-prompt (concat (if tpu-regexp-p "RE ") prompt)))
> (read-from-minibuffer re-prompt nil nil nil 'tpu-regexp-prompt-hist)))
>
> diff --git a/lisp/obsolete/vi.el b/lisp/obsolete/vi.el
> index 2375eb5..081b229 100644
> --- a/lisp/obsolete/vi.el
> +++ b/lisp/obsolete/vi.el
> @@ -832,7 +832,7 @@ Possible prefix-arg cases are nil, INTEGER, (nil . CHAR) or (INTEGER . CHAR)."
>
> (defun vi-goto-mark (mark-char &optional line-flag)
> "Go to marked position or line (if line-flag is given).
> -Goto mark ‘@’ means jump into and pop the top mark on the mark ring."
> +Goto mark `@' means jump into and pop the top mark on the mark ring."
> (cond ((char-equal mark-char last-command-event) ; `` or ''
> (exchange-point-and-mark) (if line-flag (back-to-indentation)))
> ((char-equal mark-char ?@) ; jump and pop mark
> diff --git a/lisp/org/ob-core.el b/lisp/org/ob-core.el
> index ffc7df4..799e58b 100644
> --- a/lisp/org/ob-core.el
> +++ b/lisp/org/ob-core.el
> @@ -1677,7 +1677,7 @@ If the point is not on a source block then return nil."
> (if point
> ;; taken from `org-open-at-point'
> (progn (org-mark-ring-push) (goto-char point) (org-show-context))
> - (message "source-code block ‘%s’ not found in this buffer" name))))
> + (message "source-code block `%s' not found in this buffer" name))))
>
> (defun org-babel-find-named-block (name)
> "Find a named source-code block.
> @@ -1712,7 +1712,7 @@ org-babel-named-src-block-regexp."
> (if point
> ;; taken from `org-open-at-point'
> (progn (goto-char point) (org-show-context))
> - (message "result ‘%s’ not found in this buffer" name))))
> + (message "result `%s' not found in this buffer" name))))
>
> (defun org-babel-find-named-result (name &optional point)
> "Find a named result.
> @@ -2207,7 +2207,7 @@ file's directory then expand relative links."
> "Make true to capitalize begin/end example markers inserted by code blocks.")
>
> (defun org-babel-examplize-region (beg end &optional results-switches)
> - "Comment out region using the inline ‘==’ or ‘: ’ org example quote."
> + "Comment out region using the inline `==' or `: ' org example quote."
> (interactive "*r")
> (let ((chars-between (lambda (b e)
> (not (string-match "^[\\s]*$" (buffer-substring b e)))))
> diff --git a/lisp/org/ob-fortran.el b/lisp/org/ob-fortran.el
> index 0e6eb4f..aab7859 100644
> --- a/lisp/org/ob-fortran.el
> +++ b/lisp/org/ob-fortran.el
> @@ -108,7 +108,7 @@ it's header arguments."
> "Wrap body in a \"program ... end program\" block if none exists."
> (if (string-match "^[ \t]*program[ \t]*.*" (capitalize body))
> (let ((vars (mapcar #'cdr (org-babel-get-header params :var))))
> - (if vars (error "Cannot use :vars if ‘program’ statement is present"))
> + (if vars (error "Cannot use :vars if `program' statement is present"))
> body)
> (format "program main\n%s\nend program main\n" body)))
>
> diff --git a/lisp/org/ob-python.el b/lisp/org/ob-python.el
> index 4abe7af..eb74f93 100644
> --- a/lisp/org/ob-python.el
> +++ b/lisp/org/ob-python.el
> @@ -64,7 +64,7 @@ This will typically be either 'python or 'python-mode."
> :type 'string)
>
> (defcustom org-babel-python-None-to 'hline
> - "Replace ‘None’ in python tables with this before returning."
> + "Replace `None' in python tables with this before returning."
> :group 'org-babel
> :version "24.4"
> :package-version '(Org . "8.0")
> diff --git a/lisp/org/ob-ref.el b/lisp/org/ob-ref.el
> index 472d3e6..3e79592 100644
> --- a/lisp/org/ob-ref.el
> +++ b/lisp/org/ob-ref.el
> @@ -176,7 +176,7 @@ the variable."
> ;; buffer (marker-buffer id-loc)
> ;; loc (marker-position id-loc))
> ;; (move-marker id-loc nil)
> - (error "Reference ‘%s’ not found in this buffer" ref))
> + (error "Reference `%s' not found in this buffer" ref))
> (cond
> (lob-info (setq type 'lob))
> (id (setq type 'id))
> diff --git a/lisp/org/ob-scheme.el b/lisp/org/ob-scheme.el
> index 419b9a6..7d8e23f 100644
> --- a/lisp/org/ob-scheme.el
> +++ b/lisp/org/ob-scheme.el
> @@ -109,7 +109,7 @@ For a named session, the buffer name will be the session name.
>
> If the session is unnamed (nil), generate a name.
>
> -If the session is ‘none’, use nil for the session name, and
> +If the session is `none', use nil for the session name, and
> org-babel-scheme-execute-with-geiser will use a temporary session."
> (let ((result
> (cond ((not name)
> diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
> index 3a87f6b..ae5a252 100644
> --- a/lisp/org/org-agenda.el
> +++ b/lisp/org/org-agenda.el
> @@ -497,7 +497,7 @@ are prefix commands. For the dispatcher to display useful information, you
> should provide a description for the prefix, like
>
> (setq org-agenda-custom-commands
> - '((\"h\" . \"HOME + Name tag searches\") ; describe prefix \"h\"
> + \\='((\"h\" . \"HOME + Name tag searches\") ; describe prefix \"h\"
> (\"hl\" tags \"+HOME+Lisa\")
> (\"hp\" tags \"+HOME+Peter\")
> (\"hk\" tags \"+HOME+Kim\")))"
> @@ -1211,7 +1211,7 @@ For example, 9:30am would become 09:30 rather than 9:30."
> :type 'boolean)
>
> (defun org-agenda-time-of-day-to-ampm (time)
> - "Convert TIME of a string like ‘13:45’ to an AM/PM style time string."
> + "Convert TIME of a string like `13:45' to an AM/PM style time string."
> (let* ((hour-number (string-to-number (substring time 0 -3)))
> (minute (substring time -2))
> (ampm "am"))
> @@ -1932,7 +1932,7 @@ list as second element:
> For example, to display a 16px horizontal space for Emacs
> category, you can use:
>
> - (\"Emacs\" '(space . (:width (16))))"
> + (\"Emacs\" \\='(space . (:width (16))))"
> :group 'org-agenda-line-format
> :version "24.1"
> :type '(alist :key-type (string :tag "Regexp matching category")
> @@ -1975,7 +1975,7 @@ estimate."
> :type 'boolean)
>
> (defcustom org-agenda-auto-exclude-function nil
> - "A function called with a tag to decide if it is filtered on ‘/ RET’.
> + "A function called with a tag to decide if it is filtered on `/ RET'.
> The sole argument to the function, which is called once for each
> possible tag, is a string giving the name of the tag. The
> function should return either nil if the tag should be included
> @@ -2538,7 +2538,7 @@ For example, if you have a custom agenda command \"p\" and you
> want this command to be accessible only from plain text files,
> use this:
>
> - '((\"p\" ((in-file . \"\\.txt\"))))
> + \\='((\"p\" ((in-file . \"\\.txt\"))))
>
> Here are the available contexts definitions:
>
> @@ -2556,7 +2556,7 @@ accessible if there is at least one valid check.
> You can also bind a key to another agenda custom command
> depending on contextual rules.
>
> - '((\"p\" \"q\" ((in-file . \"\\.txt\"))))
> + \\='((\"p\" \"q\" ((in-file . \"\\.txt\"))))
>
> Here it means: in .txt files, use \"p\" as the key for the
> agenda command otherwise associated with \"q\". (The command
> @@ -3625,9 +3625,9 @@ FILTER-ALIST is an alist of filters we need to apply when
> ;; Popup existing buffer
> (org-agenda-prepare-window (get-buffer org-agenda-buffer-name)
> filter-alist)
> - (message "Sticky Agenda buffer, use ‘r’ to refresh")
> + (message "Sticky Agenda buffer, use `r' to refresh")
> (or org-agenda-multi (org-agenda-fit-window-to-buffer))
> - (throw 'exit "Sticky Agenda buffer, use ‘r’ to refresh"))
> + (throw 'exit "Sticky Agenda buffer, use `r' to refresh"))
> (setq org-todo-keywords-for-agenda nil)
> (setq org-drawers-for-agenda nil)
> (put 'org-agenda-tag-filter :preset-filter
> @@ -9596,7 +9596,7 @@ This is a command that has to be installed in `calendar-mode-map'."
> "Hebrew: " (calendar-hebrew-date-string date) " (until sunset)\n"
> "Islamic: " (calendar-islamic-date-string date) " (until sunset)\n"
> "French: " (calendar-french-date-string date) "\n"
> - "Baha'i: " (calendar-bahai-date-string date) " (until sunset)\n"
> + "Bahá’í: " (calendar-bahai-date-string date) " (until sunset)\n"
> "Mayan: " (calendar-mayan-date-string date) "\n"
> "Coptic: " (calendar-coptic-date-string date) "\n"
> "Ethiopic: " (calendar-ethiopic-date-string date) "\n"
> diff --git a/lisp/org/org-bibtex.el b/lisp/org/org-bibtex.el
> index 2eb2d12..06adc07 100644
> --- a/lisp/org/org-bibtex.el
> +++ b/lisp/org/org-bibtex.el
> @@ -190,7 +190,7 @@
> (:booktitle . "Title of a book, part of which is being cited. See the LaTeX book for how to type titles. For book entries, use the title field instead.")
> (:chapter . "A chapter (or section or whatever) number.")
> (:crossref . "The database key of the entry being cross referenced.")
> - (:edition . "The edition of a book for example, ‘Second’. This should be an ordinal, and should have the first letter capitalized, as shown here; the standard styles convert to lower case when necessary.")
> + (:edition . "The edition of a book for example, 'Second'. This should be an ordinal, and should have the first letter capitalized, as shown here; the standard styles convert to lower case when necessary.")
> (:editor . "Name(s) of editor(s), typed as indicated in the LaTeX book. If there is also an author field, then the editor field gives the editor of the book or collection in which the reference appears.")
> (:howpublished . "How something strange has been published. The first word should be capitalized.")
> (:institution . "The sponsoring institution of a technical report.")
> @@ -205,9 +205,9 @@
> (:school . "The name of the school where a thesis was written.")
> (:series . "The name of a series or set of books. When citing an entire book, the title field gives its title and an optional series field gives the name of a series or multi-volume set in which the book is published.")
> (:title . "The work’s title, typed as explained in the LaTeX book.")
> - (:type . "The type of a technical report for example, ‘Research Note’.")
> + (:type . "The type of a technical report for example, 'Research Note'.")
> (:volume . "The volume of a journal or multi-volume book.")
> - (:year . "The year of publication or, for an unpublished work, the year it was written. Generally it should consist of four numerals, such as 1984, although the standard styles can handle any year whose last four nonpunctuation characters are numerals, such as ‘(about 1984)’"))
> + (:year . "The year of publication or, for an unpublished work, the year it was written. Generally it should consist of four numerals, such as 1984, although the standard styles can handle any year whose last four nonpunctuation characters are numerals, such as '(about 1984)'"))
> "Bibtex fields with descriptions.")
>
> (defvar org-bibtex-entries nil
> @@ -221,7 +221,7 @@
>
> (defcustom org-bibtex-prefix nil
> "Optional prefix for all bibtex property names.
> -For example setting to ‘BIB_’ would allow interoperability with fireforg."
> +For example setting to `BIB_' would allow interoperability with fireforg."
> :group 'org-bibtex
> :version "24.1"
> :type '(choice
> diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el
> index 7b4b6ea..6a4b2ba 100644
> --- a/lisp/org/org-capture.el
> +++ b/lisp/org/org-capture.el
> @@ -460,7 +460,7 @@ For example, if you have a capture template \"c\" and you want
> this template to be accessible only from `message-mode' buffers,
> use this:
>
> - '((\"c\" ((in-mode . \"message-mode\"))))
> + ((\"c\" ((in-mode . \"message-mode\"))))
>
> Here are the available contexts definitions:
>
> @@ -478,7 +478,7 @@ accessible if there is at least one valid check.
> You can also bind a key to another agenda custom command
> depending on contextual rules.
>
> - '((\"c\" \"d\" ((in-mode . \"message-mode\"))))
> + ((\"c\" \"d\" ((in-mode . \"message-mode\"))))
>
> Here it means: in `message-mode buffers', use \"c\" as the
> key for the capture template otherwise associated with \"d\".
> diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el
> index aee91ce..9489edf 100644
> --- a/lisp/org/org-clock.el
> +++ b/lisp/org/org-clock.el
> @@ -717,7 +717,7 @@ Notification is shown only once."
> (unless org-clock-notification-was-shown
> (setq org-clock-notification-was-shown t)
> (org-notify
> - (format-message "Task ‘%s’ should be finished by now. (%s)"
> + (format-message "Task `%s' should be finished by now. (%s)"
> org-clock-heading org-clock-effort)
> org-clock-sound))
> (setq org-clock-notification-was-shown nil)))))
> @@ -948,7 +948,7 @@ k/K Keep X minutes of the idle time (default is all). If this
> clocked back in at the present time.
>
> g/G Indicate that you “got back” X minutes ago. This is quite
> - different from ‘k’: it clocks you out from the beginning of
> + different from `k': it clocks you out from the beginning of
> the idle period and clock you back in X minutes ago.
>
> s/S Subtract the idle time from the current clock. This is the
> diff --git a/lisp/org/org-ctags.el b/lisp/org/org-ctags.el
> index 75de8c2..e5435e3 100644
> --- a/lisp/org/org-ctags.el
> +++ b/lisp/org/org-ctags.el
> @@ -457,7 +457,7 @@ Wrapper for org-ctags-rebuild-tags-file-then-find-tag."
> (if (and (buffer-file-name)
> (y-or-n-p
> (format-message
> - "Tag ‘%s’ not found. Rebuild table ‘%s/TAGS’ and look again?"
> + "Tag `%s' not found. Rebuild table `%s/TAGS' and look again?"
> name
> (file-name-directory (buffer-file-name)))))
> (org-ctags-rebuild-tags-file-then-find-tag name)
> diff --git a/lisp/org/org-feed.el b/lisp/org/org-feed.el
> index 22e543c..ab3c61e 100644
> --- a/lisp/org/org-feed.el
> +++ b/lisp/org/org-feed.el
> @@ -691,7 +691,7 @@ formatted as a string, not the original XML data."
> (t
> (setq entry (plist-put entry :description
> (format-message
> - "Unknown ‘%s’ content." type)))))))
> + "Unknown `%s' content." type)))))))
> entry))
>
> (provide 'org-feed)
> diff --git a/lisp/org/org-habit.el b/lisp/org/org-habit.el
> index 7911dcf..e2be460 100644
> --- a/lisp/org/org-habit.el
> +++ b/lisp/org/org-habit.el
> @@ -180,7 +180,7 @@ This list represents a \"habit\" for the rest of this module."
> (error "Habit %s has no scheduled date" habit-entry))
> (unless scheduled-repeat
> (error
> - "Habit ‘%s’ has no scheduled repeat period or has an incorrect one"
> + "Habit `%s' has no scheduled repeat period or has an incorrect one"
> habit-entry))
> (setq sr-days (org-habit-duration-to-days scheduled-repeat))
> (unless (> sr-days 0)
> diff --git a/lisp/org/org-irc.el b/lisp/org/org-irc.el
> index fc3294f..1ec69d8 100644
> --- a/lisp/org/org-irc.el
> +++ b/lisp/org/org-irc.el
> @@ -108,7 +108,7 @@ attributes that are found."
> (defun org-irc-ellipsify-description (string &optional after)
> "Remove unnecessary white space from STRING and add ellipses if necessary.
> Strip starting and ending white space from STRING and replace any
> -chars that the value AFTER with ‘...’"
> +chars that the value AFTER with `...'"
> (let* ((after (number-to-string (or after 30)))
> (replace-map (list (cons "^[ \t]*" "")
> (cons "[ \t]*$" "")
> diff --git a/lisp/org/org-mouse.el b/lisp/org/org-mouse.el
> index a52c196..a1ddc5d 100644
> --- a/lisp/org/org-mouse.el
> +++ b/lisp/org/org-mouse.el
> @@ -539,7 +539,7 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
> ((stringp (nth 2 entry))
> (concat (org-mouse-agenda-type (nth 1 entry))
> (nth 2 entry)))
> - (t "Agenda Command ‘%s’"))
> + (t "Agenda Command `%s'"))
> 30))))
> "--"
> ["Delete Blank Lines" delete-blank-lines
> @@ -566,7 +566,7 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
> (save-excursion (org-apply-on-list wrap-fun nil)))))
>
> (defun org-mouse-bolp ()
> - "Return true if there only spaces, tabs, and ‘*’ before point.
> + "Return true if there only spaces, tabs, and `*' before point.
> This means, between the beginning of line and the point."
> (save-excursion
> (skip-chars-backward " \t*") (bolp)))
> @@ -708,9 +708,9 @@ This means, between the beginning of line and the point."
> ((org-mouse-looking-at ":\\([A-Za-z0-9_]+\\):" "A-Za-z0-9_" -1) ;tags
> (popup-menu
> `(nil
> - [,(format-message "Display ‘%s’" (match-string 1))
> + [,(format-message "Display `%s'" (match-string 1))
> (org-tags-view nil ,(match-string 1))]
> - [,(format-message "Sparse Tree ‘%s’" (match-string 1))
> + [,(format-message "Sparse Tree `%s'" (match-string 1))
> (org-tags-sparse-tree nil ,(match-string 1))]
> "--"
> ,@(org-mouse-tag-menu))))
> diff --git a/lisp/org/org-plot.el b/lisp/org/org-plot.el
> index 7024ed6..fd6b4ed 100644
> --- a/lisp/org/org-plot.el
> +++ b/lisp/org/org-plot.el
> @@ -94,7 +94,7 @@ Return value is the point at the beginning of the table."
> (goto-char (org-table-begin)))
>
> (defun org-plot/collect-options (&optional params)
> - "Collect options from an org-plot ‘#+Plot:’ line.
> + "Collect options from an org-plot `#+Plot:' line.
> Accepts an optional property list PARAMS, to which the options
> will be added. Returns the resulting property list."
> (interactive)
> diff --git a/lisp/org/org-protocol.el b/lisp/org/org-protocol.el
> index ae0f494..339f2b7 100644
> --- a/lisp/org/org-protocol.el
> +++ b/lisp/org/org-protocol.el
> @@ -303,7 +303,7 @@ part."
>
> (defun org-protocol-flatten-greedy (param-list &optional strip-path replacement)
> "Greedy handlers might receive a list like this from emacsclient:
> - '((\"/dir/org-protocol:/greedy:/~/path1\" (23 . 12)) (\"/dir/param\")
> + ((\"/dir/org-protocol:/greedy:/~/path1\" (23 . 12)) (\"/dir/param\"))
> where \"/dir/\" is the absolute path to emacsclients working directory. This
> function transforms it into a flat list using `org-protocol-flatten' and
> transforms the elements of that list as follows:
> @@ -347,7 +347,7 @@ returned list."
>
> (defun org-protocol-flatten (l)
> "Greedy handlers might receive a list like this from emacsclient:
> - '( (\"/dir/org-protocol:/greedy:/~/path1\" (23 . 12)) (\"/dir/param\")
> + ((\"/dir/org-protocol:/greedy:/~/path1\" (23 . 12)) (\"/dir/param\"))
> where \"/dir/\" is the absolute path to emacsclients working directory.
> This function transforms it into a flat list."
> (if (null l) ()
> @@ -365,9 +365,9 @@ link's URL to the `kill-ring'.
>
> The location for a browser's bookmark has to look like this:
>
> - javascript:location.href='org-protocol://store-link://'+ \\
> + javascript:location.href=\\='org-protocol://store-link://\\='+ \\
> encodeURIComponent(location.href)
> - encodeURIComponent(document.title)+'/'+ \\
> + encodeURIComponent(document.title)+\\='/\\='+ \\
>
> Don't use `escape()'! Use `encodeURIComponent()' instead. The title of the page
> could contain slashes and the location definitely will.
> @@ -396,16 +396,16 @@ The sub-protocol used to reach this function is set in
> This function detects an URL, title and optional text, separated
> by `/'. The location for a browser's bookmark looks like this:
>
> - javascript:location.href='org-protocol://capture://'+ \\
> - encodeURIComponent(location.href)+'/' \\
> - encodeURIComponent(document.title)+'/'+ \\
> + javascript:location.href=\\='org-protocol://capture://\\='+ \\
> + encodeURIComponent(location.href)+\\='/\\=' \\
> + encodeURIComponent(document.title)+\\='/\\='+ \\
> encodeURIComponent(window.getSelection())
>
> By default, it uses the character `org-protocol-default-template-key',
> which should be associated with a template in `org-capture-templates'.
> But you may prepend the encoded URL with a character and a slash like so:
>
> - javascript:location.href='org-protocol://capture://b/'+ ...
> + javascript:location.href=\\='org-protocol://capture://b/\\='+ ...
>
> Now template ?b will be used."
> (if (and (boundp 'org-stored-links)
> @@ -455,7 +455,7 @@ in `org-protocol-project-alist'.
>
> The location for a browser's bookmark should look like this:
>
> - javascript:location.href='org-protocol://open-source://'+ \\
> + javascript:location.href=\\='org-protocol://open-source://\\='+ \\
> encodeURIComponent(location.href)"
> ;; As we enter this function for a match on our protocol, the return value
> ;; defaults to nil.
> diff --git a/lisp/org/org-src.el b/lisp/org/org-src.el
> index 8a6c77a..c970fe6 100644
> --- a/lisp/org/org-src.el
> +++ b/lisp/org/org-src.el
> @@ -166,10 +166,10 @@ other-frame Use `switch-to-buffer-other-frame' to display edit buffer.
> (const reorganize-frame)))
>
> (defvar org-src-mode-hook nil
> - "Hook run after Org switched a source code snippet to its Emacs mode.
> + "Hook run after Org switched a source code snippet to its Emacs mode.
> This hook will run
>
> -- when editing a source code snippet with \"C-c '\".
> +- when editing a source code snippet with `\\[org-src-mode-map]'.
> - When formatting a source code snippet for export with htmlize.
>
> You may want to use this hook for example to turn off `outline-minor-mode'
> @@ -226,7 +226,7 @@ the existing edit buffer."
> (define-minor-mode org-src-mode
> "Minor mode for language major mode buffers generated by org.
> This minor mode is turned on in two situations:
> -- when editing a source code snippet with \"C-c '\".
> +- when editing a source code snippet with `\\[org-src-mode-map]'.
> - When formatting a source code snippet for export with htmlize.
> There is a mode hook, and keybindings for `org-edit-src-exit' and
> `org-edit-src-save'")
> diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el
> index fb59367..478ad93 100644
> --- a/lisp/org/org-table.el
> +++ b/lisp/org/org-table.el
> @@ -545,8 +545,8 @@ slightly, to make sure a beginning of line in the first line is included.
> SEPARATOR specifies the field separator in the lines. It can have the
> following values:
>
> -'(4) Use the comma as a field separator
> -'(16) Use a TAB as field separator
> +(4) Use the comma as a field separator
> +(16) Use a TAB as field separator
> integer When a number, use that many spaces as field separator
> nil When nil, the command tries to be smart and figure out the
> separator in the following way:
> @@ -3404,7 +3404,7 @@ Parameters get priority."
> (if (eq org-table-use-standard-references t)
> (org-table-fedit-toggle-ref-type))
> (org-goto-line startline)
> - (message "Edit formulas, finish with ‘C-c C-c’ or ‘C-c '’. See menu for more commands.")))
> + (message "%s" "Edit formulas, finish with C-c C-c or C-c '. See menu for more commands.")))
>
> (defun org-table-fedit-post-command ()
> (when (not (memq this-command '(lisp-complete-symbol)))
> diff --git a/lisp/org/org.el b/lisp/org/org.el
> index 963da77..c7b64cc 100644
> --- a/lisp/org/org.el
> +++ b/lisp/org/org.el
> @@ -481,7 +481,7 @@ value of the variable, after updating it:
> \(dolist (backend val)
> \(cond
> \((not (load (format \"ox-%s\" backend) t t))
> - \(message \"Problems while trying to load export back-end ‘%s’\"
> + \(message \"Problems while trying to load export back-end \\=`%s\\='\"
> backend))
> \((not (memq backend new-list)) (push backend new-list))))
> \(set-default \\='org-export-backends new-list)))
> @@ -1982,7 +1982,7 @@ file identifier are
> filename matches the regexp. If you want to
> use groups here, use shy groups.
>
> - Example: (\"\\.x?html\\'\" . \"firefox %s\")
> + Example: (\"\\.x?html\\\\='\" . \"firefox %s\")
> (\"\\(?:xhtml\\|html\\)\" . \"firefox %s\")
> to open *.html and *.xhtml with firefox.
>
> @@ -1998,7 +1998,7 @@ file identifier are
> In a custom lisp form, you can access the group matches with
> (match-string n link).
>
> - Example: (\"\\.pdf::\\(\\d+\\)\\'\" . \"evince -p %1 %s\")
> + Example: (\"\\.pdf::\\(\\d+\\)\\\\='\" . \"evince -p %1 %s\")
> to open [[file:document.pdf::5]] with evince at page 5.
>
> `directory' Matches a directory
> @@ -12222,13 +12222,13 @@ With a triple \\[universal-argument] prefix, circumvent any state blocking.
> With a numeric prefix arg of 0, inhibit note taking for the change.
>
> For calling through lisp, arg is also interpreted in the following way:
> -'none -> empty state
> -\"\"(empty string) -> switch to empty state
> -'done -> switch to DONE
> -'nextset -> switch to the next set of keywords
> -'previousset -> switch to the previous set of keywords
> -\"WAITING\" -> switch to the specified keyword, but only if it
> - really is a member of `org-todo-keywords'."
> +`none' -> empty state
> +\"\" (empty string) -> switch to empty state
> +`done' -> switch to DONE
> +`nextset' -> switch to the next set of keywords
> +`previousset' -> switch to the previous set of keywords
> +\"WAITING\" -> switch to the specified keyword, but only if it
> + really is a member of `org-todo-keywords'."
> (interactive "P")
> (if (and (org-region-active-p) org-loop-over-headlines-in-active-region)
> (let ((cl (if (eq org-loop-over-headlines-in-active-region 'start-level)
> diff --git a/lisp/org/ox.el b/lisp/org/ox.el
> index a0573d0..4e3e0ef 100644
> --- a/lisp/org/ox.el
> +++ b/lisp/org/ox.el
> @@ -1060,7 +1060,7 @@ keywords are understood:
> Menu entry for the export dispatcher. It should be a list
> like:
>
> - '(KEY DESCRIPTION-OR-ORDINAL ACTION-OR-MENU)
> + (KEY DESCRIPTION-OR-ORDINAL ACTION-OR-MENU)
>
> where :
>
> @@ -1084,17 +1084,17 @@ keywords are understood:
> If it is an alist, associations should follow the
> pattern:
>
> - '(KEY DESCRIPTION ACTION)
> + (KEY DESCRIPTION ACTION)
>
> where KEY, DESCRIPTION and ACTION are described above.
>
> Valid values include:
>
> - '(?m \"My Special Back-end\" my-special-export-function)
> + (?m \"My Special Back-end\" my-special-export-function)
>
> or
>
> - '(?l \"Export to LaTeX\"
> + (?l \"Export to LaTeX\"
> \(?p \"As PDF file\" org-latex-export-to-pdf)
> \(?o \"As PDF file and open\"
> \(lambda (a s v b)
> @@ -1105,7 +1105,7 @@ keywords are understood:
> or the following, which will be added to the previous
> sub-menu,
>
> - '(?l 1
> + (?l 1
> \((?B \"As TEX buffer (Beamer)\" org-beamer-export-as-latex)
> \(?P \"As PDF file (Beamer)\" org-beamer-export-to-pdf)))
>
> @@ -5553,7 +5553,7 @@ and `org-export-to-file' for more specialized functions."
> (kill-buffer proc-buffer))))
> (org-export-add-to-stack proc-buffer nil p)
> (ding)
> - (message "Process ‘%s’ exited abnormally" p))
> + (message "Process `%s' exited abnormally" p))
> (unless org-export-async-debug
> (delete-file ,,temp-file)))))))))))))
>
> diff --git a/lisp/pcmpl-cvs.el b/lisp/pcmpl-cvs.el
> index 33446af..b64fb65 100644
> --- a/lisp/pcmpl-cvs.el
> +++ b/lisp/pcmpl-cvs.el
> @@ -38,7 +38,7 @@
> ;; User Variables:
>
> (defcustom pcmpl-cvs-binary (or (executable-find "cvs") "cvs")
> - "The full path of the ‘cvs’ binary."
> + "The full path of the `cvs' binary."
> :type 'file
> :group 'pcmpl-cvs)
>
> @@ -154,7 +154,7 @@
> (defun pcmpl-cvs-entries (&optional opers)
> "Return the Entries for the current directory.
> If OPERS is a list of characters, return entries for which that
> -operation character applies, as displayed by ‘cvs -n update’."
> +operation character applies, as displayed by `cvs -n update'."
> (let* ((arg (pcomplete-arg))
> (dir (file-name-as-directory
> (or (file-name-directory arg) "")))
> diff --git a/lisp/play/bubbles.el b/lisp/play/bubbles.el
> index 5ca792d..1e06f1b 100644
> --- a/lisp/play/bubbles.el
> +++ b/lisp/play/bubbles.el
> @@ -101,31 +101,31 @@ and a shift mode."
> :group 'bubbles)
>
> (defun bubbles-set-game-easy ()
> - "Set game theme to ‘easy’."
> + "Set game theme to `easy'."
> (interactive)
> (setq bubbles-game-theme 'easy)
> (bubbles))
>
> (defun bubbles-set-game-medium ()
> - "Set game theme to ‘medium’."
> + "Set game theme to `medium'."
> (interactive)
> (setq bubbles-game-theme 'medium)
> (bubbles))
>
> (defun bubbles-set-game-difficult ()
> - "Set game theme to ‘difficult’."
> + "Set game theme to `difficult'."
> (interactive)
> (setq bubbles-game-theme 'difficult)
> (bubbles))
>
> (defun bubbles-set-game-hard ()
> - "Set game theme to ‘hard’."
> + "Set game theme to `hard'."
> (interactive)
> (setq bubbles-game-theme 'hard)
> (bubbles))
>
> (defun bubbles-set-game-userdefined ()
> - "Set game theme to ‘user-defined’."
> + "Set game theme to `user-defined'."
> (interactive)
> (setq bubbles-game-theme 'user-defined)
> (bubbles))
> diff --git a/lisp/play/gomoku.el b/lisp/play/gomoku.el
> index 702376c..d2953b6 100644
> --- a/lisp/play/gomoku.el
> +++ b/lisp/play/gomoku.el
> @@ -977,7 +977,7 @@ If the game is finished, this command requests for another game."
> (move-to-column (+ gomoku-x-offset (* gomoku-square-width (1- x)))))
>
> (defun gomoku-plot-square (square value)
> - "Draw ‘X’, ‘O’ or ‘.’ on SQUARE depending on VALUE, leave point there."
> + "Draw `X', `O' or `.' on SQUARE depending on VALUE, leave point there."
> (or (= value 1)
> (gomoku-goto-square square))
> (let ((inhibit-read-only t))
> diff --git a/lisp/proced.el b/lisp/proced.el
> index 5c65edf..bf7ce24 100644
> --- a/lisp/proced.el
> +++ b/lisp/proced.el
> @@ -1924,7 +1924,7 @@ and \f (formfeed) at the end."
> (unless (bolp)
> (insert "\n"))
> (insert (current-time-string)
> - (format-message "\tBuffer ‘%s’, signal ‘%s’\n"
> + (format-message "\tBuffer `%s', signal `%s'\n"
> (buffer-name obuf) (car args)))
> (goto-char (point-max))
> (insert "\f\n")))))))
> diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
> index 70af389..452f3b9 100644
> --- a/lisp/progmodes/ada-mode.el
> +++ b/lisp/progmodes/ada-mode.el
> @@ -286,11 +286,11 @@ type A is
> :type 'boolean :group 'ada)
>
> (defcustom ada-indent-is-separate t
> - "Non-nil means indent ‘is separate’ or ‘is abstract’ if on a single line."
> + "Non-nil means indent `is separate' or `is abstract' if on a single line."
> :type 'boolean :group 'ada)
>
> (defcustom ada-indent-record-rel-type 3
> - "Indentation for ‘record’ relative to ‘type’ or ‘use’.
> + "Indentation for `record' relative to `type' or `use'.
>
> An example is:
> type A is
> @@ -397,7 +397,7 @@ Must be one of :
> :group 'ada)
>
> (defcustom ada-use-indent ada-broken-indent
> - "Indentation for the lines in a ‘use’ statement.
> + "Indentation for the lines in a `use' statement.
>
> An example is:
> use Ada.Text_IO,
> @@ -405,7 +405,7 @@ An example is:
> :type 'integer :group 'ada)
>
> (defcustom ada-when-indent 3
> - "Indentation for ‘when’ relative to ‘exception’ or ‘case’.
> + "Indentation for `when' relative to `exception' or `case'.
>
> An example is:
> case A is
> @@ -413,7 +413,7 @@ An example is:
> :type 'integer :group 'ada)
>
> (defcustom ada-with-indent ada-broken-indent
> - "Indentation for the lines in a ‘with’ statement.
> + "Indentation for the lines in a `with' statement.
>
> An example is:
> with Ada.Text_IO,
> @@ -2834,7 +2834,7 @@ ORGPOINT is the limit position used in the calculation."
> (save-excursion
> (goto-char (car match-cons))
> (unless (ada-search-ignore-string-comment "when" t opos)
> - (error "Missing ‘when’ between ‘case’ and ‘=>’"))
> + (error "Missing `when' between `case' and `=>'"))
> (list (save-excursion (back-to-indentation) (point)) 'ada-indent)))
> ;;
> ;; case..is..when
> @@ -3003,7 +3003,7 @@ ORGPOINT is the limit position used in the calculation."
> (list cur-indent 'ada-broken-indent)))))
>
> (defun ada-get-indent-noindent (orgpoint)
> - "Calculate the indentation when point is just before a ‘noindent stmt’.
> + "Calculate the indentation when point is just before a `noindent stmt'.
> ORGPOINT is the limit position used in the calculation."
> (let ((label 0))
> (save-excursion
> @@ -3429,7 +3429,7 @@ Return the new position of point or nil if not found."
> Moves point to the matching block start."
> (ada-goto-matching-start 0)
> (unless (looking-at (concat "\\<" keyword "\\>"))
> - (error "Matching start is not ‘%s’" keyword)))
> + (error "Matching start is not `%s'" keyword)))
>
>
> (defun ada-check-defun-name (defun-name)
> @@ -3667,7 +3667,7 @@ otherwise throw error."
> "Move point to the beginning of a block-start.
> Which block depends on the value of NEST-LEVEL, which defaults to zero.
> If NOERROR is non-nil, it only returns nil if no matching start was found.
> -If GOTOTHEN is non-nil, point moves to the ‘then’ following ‘if’."
> +If GOTOTHEN is non-nil, point moves to the `then' following `if'."
> (let ((nest-count (if nest-level nest-level 0))
> (found nil)
>
> @@ -3734,7 +3734,7 @@ If GOTOTHEN is non-nil, point moves to the ‘then’ following ‘if’."
> (if pos
> (goto-char (car pos))
> (error (concat
> - "No matching ‘is’ or ‘renames’ for ‘package’ at"
> + "No matching `is' or `renames' for `package' at"
> " line "
> (number-to-string (count-lines 1 (1+ current)))))))
> (unless (looking-at "renames")
> @@ -3862,7 +3862,7 @@ If GOTOTHEN is non-nil, point moves to the ‘then’ following ‘if’."
> ((looking-at "do")
> (unless (ada-search-ignore-string-comment
> "\\<accept\\|return\\>" t)
> - (error "Missing ‘accept’ or ‘return’ in front of ‘do’"))))
> + (error "Missing `accept' or `return' in front of `do'"))))
> (point))
>
> (if noerror
> @@ -4073,7 +4073,7 @@ Assumes point to be at the end of a statement."
>
>
> (defun ada-looking-at-semi-or ()
> - "Return t if looking at an ‘or’ following a semicolon."
> + "Return t if looking at an `or' following a semicolon."
> (save-excursion
> (and (looking-at "\\<or\\>")
> (progn
> @@ -4146,7 +4146,7 @@ Return nil if the private is part of the package name, as in
> "type\\)\\>"))))))
>
> (defun ada-search-ignore-complex-boolean (regexp backwardp)
> - "Search for REGEXP, ignoring comments, strings, ‘and then’, ‘or else’.
> + "Search for REGEXP, ignoring comments, strings, `and then', `or else'.
> If BACKWARDP is non-nil, search backward; search forward otherwise."
> (let (result)
> (while (and (setq result (ada-search-ignore-string-comment regexp backwardp))
> @@ -4366,7 +4366,7 @@ of the region. Otherwise, operate only on the current line."
>
> (defun ada-move-to-end ()
> "Move point to the end of the block around point.
> -Moves to ‘begin’ if in a declarative part."
> +Moves to `begin' if in a declarative part."
> (interactive)
> (let ((pos (point))
> decl-start)
> diff --git a/lisp/progmodes/ada-prj.el b/lisp/progmodes/ada-prj.el
> index 7e354bc..3b71c59 100644
> --- a/lisp/progmodes/ada-prj.el
> +++ b/lisp/progmodes/ada-prj.el
> @@ -309,13 +309,13 @@ where the compilation is done.")
> "If you want to remotely compile, debug and
> run your application, specify the name of a
> remote machine here. This capability requires
> -the ‘rsh’ protocol on the remote machine.")
> +the `rsh' protocol on the remote machine.")
> (ada-prj-field 'cross_prefix "Prefix used in for the cross tool chain"
> "When working on multiple cross targets, it is
> most convenient to specify the prefix of the
> tool chain here. For instance, on PowerPc
> -vxworks, you would enter ‘powerpc-wrs-vxworks-’.
> -To use JGNAT, enter ‘j’.")
> +vxworks, you would enter `powerpc-wrs-vxworks-'.
> +To use JGNAT, enter `j'.")
> )
>
>
> diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el
> index 6f2f78f..816de12 100644
> --- a/lisp/progmodes/ada-xref.el
> +++ b/lisp/progmodes/ada-xref.el
> @@ -286,7 +286,7 @@ On Windows systems, this will properly handle .exe extension as well."
> (ada-find-file-in-dir (concat exec-name ".exe") exec-path))))
> (if result
> result
> - (error "‘%s’ not found in path" exec-name))))
> + (error "`%s' not found in path" exec-name))))
>
> (defun ada-initialize-runtime-library (cross-prefix)
> "Initialize the variables for the runtime library location.
> diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
> index f26b8ec..82f0d72 100644
> --- a/lisp/progmodes/cc-engine.el
> +++ b/lisp/progmodes/cc-engine.el
> @@ -634,7 +634,7 @@ move into or out of sexps (not even normal expression parentheses).
>
> If point is already at the earliest statement within braces or parens,
> this function doesn't move back into any whitespace preceding it; it
> -returns 'same in this case.
> +returns `same' in this case.
>
> Stop at statement continuation tokens like \"else\", \"catch\",
> \"finally\" and the \"while\" in \"do ... while\" if the start point
> @@ -656,19 +656,19 @@ start of the definition in a \"#define\". Also stop at start of
> macros before leaving them.
>
> Return:
> -'label if stopped at a label or \"case...:\" or \"default:\";
> -'same if stopped at the beginning of the current statement;
> -'up if stepped to a containing statement;
> -'previous if stepped to a preceding statement;
> -'beginning if stepped from a statement continuation clause to
> +`label' if stopped at a label or \"case...:\" or \"default:\";
> +`same' if stopped at the beginning of the current statement;
> +`up' if stepped to a containing statement;
> +`previous' if stepped to a preceding statement;
> +`beginning' if stepped from a statement continuation clause to
> its start clause; or
> -'macro if stepped to a macro start.
> -Note that 'same and not 'label is returned if stopped at the same
> +`macro' if stepped to a macro start.
> +Note that `same' and not `label' is returned if stopped at the same
> label without crossing the colon character.
>
> LIM may be given to limit the search. If the search hits the limit,
> point will be left at the closest following token, or at the start
> -position if that is less ('same is returned in this case).
> +position if that is less (`same' is returned in this case).
>
> NOERROR turns off error logging to `c-parsing-error'.
>
> diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
> index 0e904d2..a1e26b9 100644
> --- a/lisp/progmodes/cc-langs.el
> +++ b/lisp/progmodes/cc-langs.el
> @@ -926,14 +926,14 @@ following elements. The car of each element describes the type of the
> operator group, and the cdr is a list of the operator tokens in it.
> The operator group types are:
>
> -'prefix Unary prefix operators.
> -'postfix Unary postfix operators.
> -'postfix-if-paren
> +`prefix' Unary prefix operators.
> +`postfix' Unary postfix operators.
> +`postfix-if-paren'
> Unary postfix operators if and only if the chars have
> parenthesis syntax.
> -'left-assoc Binary left associative operators (i.e. a+b+c means (a+b)+c).
> -'right-assoc Binary right associative operators (i.e. a=b=c means a=(b=c)).
> -'right-assoc-sequence
> +`left-assoc' Binary left associative operators (i.e. a+b+c means (a+b)+c).
> +`right-assoc' Binary right associative operators (i.e. a=b=c means a=(b=c)).
> +`right-assoc-sequence'
> Right associative operator that constitutes of a
> sequence of tokens that separate expressions. All the
> tokens in the group are in this case taken as
> diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el
> index df6e987..da36647 100644
> --- a/lisp/progmodes/cc-vars.el
> +++ b/lisp/progmodes/cc-vars.el
> @@ -833,7 +833,7 @@ string in the mode line), and a semicolon or comma is typed (see
> no arguments, and should return one of the following values:
>
> nil -- no determination made, continue checking
> - 'stop -- do not insert a newline, and stop checking
> + `stop' -- do not insert a newline, and stop checking
> (anything else) -- insert a newline, and stop checking
>
> If every function in the list is called with no determination made,
> diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
> index 322024e..b8ba170 100644
> --- a/lisp/progmodes/cperl-mode.el
> +++ b/lisp/progmodes/cperl-mode.el
> @@ -724,7 +724,7 @@ mode-compile.el.
> If your Emacs does not default to `cperl-mode' on Perl files, and you
> want it to: put the following into your .emacs file:
>
> - (defalias 'perl-mode 'cperl-mode)
> + (defalias \\='perl-mode \\='cperl-mode)
>
> Get perl5-info from
> $CPAN/doc/manual/info/perl5-old/perl5-info.tar.gz
> diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
> index 2443d6f..80f9e2a 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 (format-message "Members matching ‘%s’\n\n" regexp))
> + (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 bcabf3c..1ea9f17 100644
> --- a/lisp/progmodes/elisp-mode.el
> +++ b/lisp/progmodes/elisp-mode.el
> @@ -1322,7 +1322,7 @@ which see."
> 0 - contains the last symbol read from the buffer.
> 1 - contains the string last displayed in the echo area for variables,
> or argument string for functions.
> - 2 - 'function if function args, 'variable if variable documentation.")
> + 2 - `function' if function args, `variable' if variable documentation.")
>
> (defun elisp-eldoc-documentation-function ()
> "`eldoc-documentation-function' (which see) for Emacs Lisp."
> diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
> index d38a7cd..0d5fc3a 100644
> --- a/lisp/progmodes/etags.el
> +++ b/lisp/progmodes/etags.el
> @@ -1268,7 +1268,7 @@ buffer-local values of tags table format variables."
> ;; \6 is the line to start searching at;
> ;; \7 is the char to start searching at.
> (while (re-search-forward
> - "^\\(\\([^\177]+[^-a-zA-Z0-9_+*$:\177]+\\)?\
> + "^\\(\\([^\177]*[^-a-zA-Z0-9_+*$:\177]+\\)?\
> \\([-a-zA-Z0-9_+*$?:]+\\)[^-a-zA-Z0-9_+*$?:\177]*\\)\177\
> \\(\\([^\n\001]+\\)\001\\)?\\([0-9]+\\)?,\\([0-9]+\\)?\n"
> nil t)
> @@ -1459,7 +1459,7 @@ hits the start of file."
> (when (symbolp symbs)
> (if (boundp symbs)
> (setq symbs (symbol-value symbs))
> - (insert (format-message "symbol ‘%s’ has no value\n" symbs))
> + (insert (format-message "symbol `%s' has no value\n" symbs))
> (setq symbs nil)))
> (if (vectorp symbs)
> (mapatoms ins-symb symbs)
> diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
> index 43b057b..e8a1ae4 100644
> --- a/lisp/progmodes/f90.el
> +++ b/lisp/progmodes/f90.el
> @@ -1425,7 +1425,7 @@ single - statement is not continued.
> begin - current line is the first in a continued statement.
> end - current line is the last in a continued statement
> middle - current line is neither first nor last in a continued statement.
> -Comment lines embedded amongst continued lines return 'middle."
> +Comment lines embedded amongst continued lines return `middle'."
> (let (pcont cont)
> (save-excursion
> (setq pcont (if (f90-previous-statement) (f90-line-continued))))
> diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
> index f220633..a9d4743 100644
> --- a/lisp/progmodes/flymake.el
> +++ b/lisp/progmodes/flymake.el
> @@ -287,7 +287,7 @@ Return its file name if found, or nil if not found."
> nil)))))
>
> (defun flymake-fix-file-name (name)
> - "Replace all occurrences of ‘\\’ with ‘/’."
> + "Replace all occurrences of `\\' with `/'."
> (when name
> (setq name (expand-file-name name))
> (setq name (abbreviate-file-name name))
> @@ -785,7 +785,7 @@ Perhaps use text from LINE-ERR-INFO-LIST to enhance highlighting."
> (when (flymake-same-files real-file-name source-file-name)
> (setq line-err-info (flymake-ler-set-file line-err-info nil))
> (setq err-info-list (flymake-add-err-info err-info-list line-err-info))))
> - (flymake-log 3 "parsed ‘%s’, %s line-err-info" (nth idx lines) (if line-err-info "got" "no"))
> + (flymake-log 3 "parsed `%s', %s line-err-info" (nth idx lines) (if line-err-info "got" "no"))
> (setq idx (1+ idx)))
> err-info-list))
>
> @@ -1086,7 +1086,7 @@ For the format of LINE-ERR-INFO, see `flymake-ler-make-ler'."
> (error
> (let* ((err-str
> (format-message
> - "Failed to launch syntax check process ‘%s’ with args %s: %s"
> + "Failed to launch syntax check process `%s' with args %s: %s"
> cmd args (error-message-string err)))
> (source-file-name buffer-file-name)
> (cleanup-f (flymake-get-cleanup-function source-file-name)))
> diff --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el
> index 83e427d..ee4733f 100644
> --- a/lisp/progmodes/fortran.el
> +++ b/lisp/progmodes/fortran.el
> @@ -817,15 +817,15 @@ Variables controlling indentation style and extra features:
> Amount of extra indentation for text in full-line comments (default 0).
> `fortran-comment-indent-style'
> How to indent the text in full-line comments. Allowed values are:
> - nil don't change the indentation
> - fixed indent to `fortran-comment-line-extra-indent' beyond the
> + nil don't change the indentation
> + `fixed' indent to `fortran-comment-line-extra-indent' beyond the
> value of either
> `fortran-minimum-statement-indent-fixed' (fixed format) or
> `fortran-minimum-statement-indent-tab' (TAB format),
> depending on the continuation format in use.
> - relative indent to `fortran-comment-line-extra-indent' beyond the
> + `relative' indent to `fortran-comment-line-extra-indent' beyond the
> indentation for a line of code.
> - (default 'fixed)
> + (default `fixed')
> `fortran-comment-indent-char'
> Single-character string to be inserted instead of space for
> full-line comment indentation (default \" \").
> diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
> index 9942e17..1eff62c 100644
> --- a/lisp/progmodes/gdb-mi.el
> +++ b/lisp/progmodes/gdb-mi.el
> @@ -2065,7 +2065,7 @@ a GDB/MI reply message."
> (defun gdbmi-bnf-gdb-prompt ()
> "Implementation of the following GDB/MI output grammar rule:
> gdb-prompt ==>
> - '(gdb)' nl
> + `(gdb)' nl
>
> nl ==>
> CR | CR-LF"
> @@ -2085,7 +2085,7 @@ a GDB/MI reply message."
> "Implementation of the following GDB/MI output grammar rule:
>
> result-record ==>
> - [ token ] '^' result-class ( ',' result )* nl
> + [ token ] `^' result-class ( `,' result )* nl
>
> token ==>
> any sequence of digits."
> @@ -2110,16 +2110,16 @@ a GDB/MI reply message."
> exec-async-output | status-async-output | notify-async-output
>
> exec-async-output ==>
> - [ token ] '*' async-output
> + [ token ] `*' async-output
>
> status-async-output ==>
> - [ token ] '+' async-output
> + [ token ] `+' async-output
>
> notify-async-output ==>
> - [ token ] '=' async-output
> + [ token ] `=' async-output
>
> async-output ==>
> - async-class ( ',' result )* nl"
> + async-class ( `,' result )* nl"
>
> (gdbmi-bnf-result-and-async-record-impl))
>
> @@ -2130,13 +2130,13 @@ a GDB/MI reply message."
> console-stream-output | target-stream-output | log-stream-output
>
> console-stream-output ==>
> - '~' c-string
> + `~' c-string
>
> target-stream-output ==>
> - '@' c-string
> + `@' c-string
>
> log-stream-output ==>
> - '&' c-string"
> + `&' c-string"
> (when (< gdbmi-bnf-offset (length gud-marker-acc))
> (if (and (member (aref gud-marker-acc gdbmi-bnf-offset) '(?~ ?@ ?&))
> (string-match (concat "\\([~@&]\\)\\(" gdb--string-regexp "\\)\n")
> diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
> index b5e7998..50ebadf 100644
> --- a/lisp/progmodes/idlw-shell.el
> +++ b/lisp/progmodes/idlw-shell.el
> @@ -152,7 +152,7 @@ This variable can have 3 values:
> nil Arrows just move the cursor
> t Arrows force the cursor back to the current command line and
> walk the history
> -'cmdline When the cursor is in the current command line, arrows walk the
> +`cmdline' When the cursor is in the current command line, arrows walk the
> history. Everywhere else in the buffer, arrows move the cursor."
> :group 'idlwave-shell-general-setup
> :type '(choice
> @@ -229,7 +229,7 @@ to set this option to nil."
>
> (defcustom idlwave-shell-file-name-chars "~/A-Za-z0-9+:_.$#%={}\\- "
> "The characters allowed in file names, as a string.
> -Used for file name completion. Must not contain ‘'’, ‘,’ and ‘\"’
> +Used for file name completion. Must not contain `\\='', `,' and `\"'
> because these are used as separators by IDL."
> :group 'idlwave-shell-general-setup
> :type 'string)
> @@ -439,15 +439,13 @@ Value decides about the method which is used to mark the line. Valid values
> are:
>
> nil Do not mark the line
> -'arrow Use the overlay arrow
> -'face Use `idlwave-shell-stop-line-face' to highlight the line.
> +`arrow' Use the overlay arrow
> +`face' Use `idlwave-shell-stop-line-face' to highlight the line.
> t Use what IDLWAVE thinks is best. Will be a face where possible,
> otherwise the overlay arrow.
> The overlay-arrow has the disadvantage to hide the first chars of a line.
> Since many people do not have the main block of IDL programs indented,
> -a face highlighting may be better.
> -In Emacs 21, the overlay arrow is displayed in a special area and never
> -hides any code, so setting this to 'arrow on Emacs 21 sounds like a good idea."
> +a face highlighting may be better."
> :group 'idlwave-shell-highlighting-and-faces
> :type '(choice
> (const :tag "No marking" nil)
> @@ -494,10 +492,10 @@ where IDL is stopped, when in Electric Debug Mode."
> "Non-nil means, mark breakpoints in the source files.
> Valid values are:
> nil Do not mark breakpoints.
> -'face Highlight line with `idlwave-shell-breakpoint-face'.
> -'glyph Red dot at the beginning of line. If the display does not
> - support glyphs, will use 'face instead.
> -t Glyph when possible, otherwise face (same effect as 'glyph)."
> +`face' Highlight line with `idlwave-shell-breakpoint-face'.
> +`glyph' Red dot at the beginning of line. If the display does not
> + support glyphs, will use `face' instead.
> +t Glyph when possible, otherwise face (same effect as `glyph')."
> :group 'idlwave-shell-highlighting-and-faces
> :type '(choice
> (const :tag "No marking" nil)
> @@ -3911,7 +3909,7 @@ Elements of the alist have the form:
>
> (defun idlwave-shell-module-source-query (module &optional type)
> "Determine the source file for a given module.
> -Query as a function if TYPE set to something beside 'pro."
> +Query as a function if TYPE set to something beside `pro'."
> (if module
> (idlwave-shell-send-command
> (format "print,(routine_info('%s',/SOURCE%s)).PATH" module
> diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
> index daf919a..b524b76 100644
> --- a/lisp/progmodes/idlwave.el
> +++ b/lisp/progmodes/idlwave.el
> @@ -376,7 +376,7 @@ The following values are allowed:
>
> nil Don't scan any buffers.
> t Scan all `idlwave-mode' buffers in the current editing session.
> -current Scan only the current buffer, but no other buffers."
> +`current' Scan only the current buffer, but no other buffers."
> :group 'idlwave-routine-info
> :type '(choice
> (const :tag "No buffer" nil)
> @@ -743,7 +743,7 @@ The actions that can be performed are listed in `idlwave-indent-action-table'."
> (defcustom idlwave-abbrev-start-char "\\"
> "A single character string used to start abbreviations in abbrev mode.
> Possible characters to choose from: ~\\=`\%
> -or even ‘?’. ‘.’ is not a good choice because it can make structure
> +or even `?'. `.' is not a good choice because it can make structure
> field names act like abbrevs in certain circumstances.
>
> Changes to this in `idlwave-mode-hook' will have no effect. Instead a user
> @@ -5833,15 +5833,15 @@ to override IDLWAVE's idea of what should be completed at point.
> Possible values are:
>
> 0 <=> query for the completion type
> -1 <=> 'procedure
> -2 <=> 'procedure-keyword
> -3 <=> 'function
> -4 <=> 'function-keyword
> -5 <=> 'procedure-method
> -6 <=> 'procedure-method-keyword
> -7 <=> 'function-method
> -8 <=> 'function-method-keyword
> -9 <=> 'class
> +1 <=> `procedure'
> +2 <=> `procedure-keyword'
> +3 <=> `function'
> +4 <=> `function-keyword'
> +5 <=> `procedure-method'
> +6 <=> `procedure-method-keyword'
> +7 <=> `function-method'
> +8 <=> `function-method-keyword'
> +9 <=> `class'
>
> As a special case, the universal argument C-u forces completion of
> function names in places where the default would be a keyword.
> diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
> index 9abbf16..4f46cbe 100644
> --- a/lisp/progmodes/make-mode.el
> +++ b/lisp/progmodes/make-mode.el
> @@ -1455,7 +1455,7 @@ Fill comments, backslashed lines, and variable definitions specially."
>
> (defun makefile-browser-insert-continuation ()
> "Insert a makefile continuation.
> -In the makefile buffer, go to (end-of-line), insert a ‘\\’
> +In the makefile buffer, go to (end-of-line), insert a `\\'
> character, insert a new blank line, go to that line and indent by one TAB.
> This is most useful in the process of creating continued lines when copying
> large dependencies from the browser to the client buffer.
> diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
> index b95c3f9..5a4ed84 100644
> --- a/lisp/progmodes/prolog.el
> +++ b/lisp/progmodes/prolog.el
> @@ -402,11 +402,11 @@ Only used in ( If -> Then ; Else) and ( Disj1 ; Disj2 ) style expressions."
> (defcustom prolog-parse-mode 'beg-of-clause
> "The parse mode used (decides from which point parsing is done).
> Legal values:
> -'beg-of-line - starts parsing at the beginning of a line, unless the
> - previous line ends with a backslash. Fast, but has
> - problems detecting multiline /* */ comments.
> -'beg-of-clause - starts parsing at the beginning of the current clause.
> - Slow, but copes better with /* */ comments."
> +`beg-of-line' - starts parsing at the beginning of a line, unless the
> + previous line ends with a backslash. Fast, but has
> + problems detecting multiline /* */ comments.
> +`beg-of-clause' - starts parsing at the beginning of the current clause.
> + Slow, but copes better with /* */ comments."
> :version "24.1"
> :group 'prolog-indentation
> :type '(choice (const :value beg-of-line)
> @@ -1209,7 +1209,7 @@ using the commands `send-region', `send-string' and \\[prolog-consult-region].
> Commands:
> Tab indents for Prolog; with argument, shifts rest
> of expression rigidly with the current line.
> -Paragraphs are separated only by blank lines and '%%'. '%'s start comments.
> +Paragraphs are separated only by blank lines and `%%'. `%'s start comments.
>
> Return at end of buffer sends line as input.
> Return not at end copies rest of line to end and sends it.
> diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
> index 63a43c1..9528ffe 100644
> --- a/lisp/progmodes/python.el
> +++ b/lisp/progmodes/python.el
> @@ -2819,7 +2819,7 @@ of `error' with a user-friendly message."
> (or (python-shell-get-process)
> (if interactivep
> (user-error
> - "Start a Python process first with ‘%s’ or ‘%s’."
> + "Start a Python process first with `%s' or `%s'."
> (substitute-command-keys "\\[run-python]")
> ;; Get the binding.
> (key-description
> @@ -2979,7 +2979,7 @@ This is a wrapper over `buffer-substring' that takes care of
> different transformations for the code sent to be evaluated in
> the python shell:
> 1. When optional argument NOMAIN is non-nil everything under an
> - \"if __name__ == '__main__'\" block will be removed.
> + \"if __name__ == \\='__main__\\='\" block will be removed.
> 2. When a subregion of the buffer is sent, it takes care of
> appending extra empty lines so tracebacks are correct.
> 3. When the region sent is a substring of the current buffer, a
> @@ -4006,7 +4006,7 @@ The skeleton will be bound to python-skeleton-NAME."
> (let* ((name (symbol-name name))
> (function-name (intern (concat "python-skeleton--" name)))
> (msg (format-message
> - "Add ‘%s’ clause? " name)))
> + "Add `%s' clause? " name)))
> (when (not skel)
> (setq skel
> `(< ,(format "%s:" name) \n \n
> diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
> index f46c8a9..cbf65c0 100644
> --- a/lisp/progmodes/sql.el
> +++ b/lisp/progmodes/sql.el
> @@ -4276,7 +4276,7 @@ passed as command line arguments."
> ;; work for remote hosts; we suppress the check there.
> (unless (or (file-remote-p default-directory)
> (executable-find program))
> - (error "Unable to locate SQL program ‘%s’" program))
> + (error "Unable to locate SQL program `%s'" program))
> ;; Make sure buffer name is unique.
> (when (sql-buffer-live-p (format "*%s*" buf-name))
> (setq buf-name (format "SQL-%s" product))
> diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
> index caae746..f83c676 100644
> --- a/lisp/progmodes/verilog-mode.el
> +++ b/lisp/progmodes/verilog-mode.el
> @@ -4477,7 +4477,7 @@ More specifically, after a generate and before an endgenerate."
> (= nest 0) )) ; return nest
>
> (defun verilog-in-deferred-immediate-final-p ()
> - "Return true if inside an ‘assert/assume/cover final’ statement."
> + "Return true if inside an `assert/assume/cover final' statement."
> (interactive)
> (and (looking-at "final")
> (verilog-looking-back "\\<\\(?:assert\\|assume\\|cover\\)\\>\\s-+" nil))
> @@ -7221,7 +7221,7 @@ will be completed at runtime and should not be added to this list.")
>
> (defun verilog-func-completion (type)
> "Build regular expression for module/task/function names.
> -TYPE is ‘module’, ‘tf’ for task or function, or t if unknown."
> +TYPE is `module', `tf' for task or function, or t if unknown."
> (if (string= verilog-str "")
> (setq verilog-str "[a-zA-Z_]"))
> (let ((verilog-str (concat (cond
> @@ -7294,7 +7294,7 @@ must be a function to be called for every match to check if this should
> really be a match. If VERILOG-FLAG is t, the function returns a list of
> all possible completions. If VERILOG-FLAG is nil it returns a string,
> the longest possible completion, or t if VERILOG-STR is an exact match.
> -If VERILOG-FLAG is ‘lambda’, the function returns t if VERILOG-STR is an
> +If VERILOG-FLAG is `lambda', the function returns t if VERILOG-STR is an
> exact match, nil otherwise."
> (save-excursion
> (let ((verilog-all nil))
> @@ -7489,7 +7489,7 @@ VERILOG-PRED is non-nil, it must be a function to be called for every match
> to check if this should really be a match. If VERILOG-FLAG is t, the
> function returns a list of all possible completions. If it is nil it
> returns a string, the longest possible completion, or t if VERILOG-STR is
> -an exact match. If VERILOG-FLAG is ‘lambda’, the function returns t if
> +an exact match. If VERILOG-FLAG is `lambda', the function returns t if
> VERILOG-STR is an exact match, nil otherwise."
> (save-excursion
> (let ((verilog-all nil)
> @@ -10099,7 +10099,7 @@ if non-nil."
>
> ;; Combined
> (defun verilog-decls-get-signals (decls)
> - "Return all declared signals in DECLS, excluding ‘assign’ statements."
> + "Return all declared signals in DECLS, excluding `assign' statements."
> (append
> (verilog-decls-get-outputs decls)
> (verilog-decls-get-inouts decls)
> @@ -11484,14 +11484,14 @@ Lisp Templates:
> Lisp functions:
>
> vl-name Name portion of the input/output port.
> - vl-bits Bus bits portion of the input/output port (‘[2:0]’).
> - vl-mbits Multidimensional array bits for port (‘[2:0][3:0]’).
> - vl-width Width of the input/output port (‘3’ for [2:0]).
> + vl-bits Bus bits portion of the input/output port (`[2:0]').
> + vl-mbits Multidimensional array bits for port (`[2:0][3:0]').
> + vl-width Width of the input/output port (`3' for [2:0]).
> May be a (...) expression if bits isn't a constant.
> vl-dir Direction of the pin input/output/inout/interface.
> vl-modport The modport, if an interface with a modport.
> - vl-cell-type Module name/type of the cell (‘InstModule’).
> - vl-cell-name Instance name of the cell (‘instName’).
> + vl-cell-type Module name/type of the cell (`InstModule').
> + vl-cell-name Instance name of the cell (`instName').
>
> Normal Lisp variables may be used in expressions. See
> `verilog-read-defines' which can set vh-{definename} variables for use
> @@ -14177,7 +14177,7 @@ Files are checked based on `verilog-library-flags'."
> (match-string 1) (buffer-file-name))))
> (when warn
> (message
> - "File ‘%s’ isn't readable, use shift-mouse2 to paste in this field"
> + "File `%s' isn't readable, use shift-mouse2 to paste in this field"
> (match-string 1))))))))
>
>
> diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
> index 47b15d8..19a7e97 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
> @@ -4361,7 +4361,7 @@ Usage:
> ;;; --> \" := \" [[ --> [ --CR --> comment-out code
> .. --> \" => \" ] --> ) --- --> horizontal line
> ,, --> \" <= \" ]] --> ] ---- --> display comment
> - == --> \" == \" '' --> \\\"
> + == --> \" == \" \\='\\=' --> \\\"
>
>
> WORD COMPLETION:
> @@ -4808,7 +4808,7 @@ Usage:
> automatically recognized as VHDL source files. To add an extension
> \".xxx\", add the following line to your Emacs start-up file (`.emacs'):
>
> - \(push '(\"\\\\.xxx\\\\'\" . vhdl-mode) auto-mode-alist)
> + \(push \\='(\"\\\\.xxx\\\\\\='\" . vhdl-mode) auto-mode-alist)
>
>
> HINTS:
> @@ -5714,7 +5714,7 @@ the offset is simply returned."
> (t nil)))))
>
> (defun vhdl-in-extended-identifier-p ()
> - "Determine if point is inside extended identifier (delimited by ‘\\’)."
> + "Determine if point is inside extended identifier (delimited by `\\')."
> (save-match-data
> (and (save-excursion (re-search-backward "\\\\" (vhdl-point 'bol) t))
> (save-excursion (re-search-forward "\\\\" (vhdl-point 'eol) t)))))
> @@ -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
> @@ -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/xref.el b/lisp/progmodes/xref.el
> index b0a8eb7..7eff1f1 100644
> --- a/lisp/progmodes/xref.el
> +++ b/lisp/progmodes/xref.el
> @@ -390,8 +390,8 @@ elements is negated."
> "Go to the location of ITEM and display the buffer.
> WINDOW controls how the buffer is displayed:
> nil -- switch-to-buffer
> - 'window -- pop-to-buffer (other window)
> - 'frame -- pop-to-buffer (other frame)"
> + `window' -- pop-to-buffer (other window)
> + `frame' -- pop-to-buffer (other frame)"
> (let* ((marker (save-excursion
> (xref-location-marker (xref-item-location item))))
> (buf (marker-buffer marker)))
> diff --git a/lisp/recentf.el b/lisp/recentf.el
> index a599383..8f420af 100644
> --- a/lisp/recentf.el
> +++ b/lisp/recentf.el
> @@ -1224,7 +1224,7 @@ use for the dialog. It defaults to \"*`recentf-menu-title'*\"."
> ", or type the corresponding digit key,"
> "")
> " to open it.\n"
> - (format-message "Click on Cancel or type ‘q’ to cancel.\n"))
> + (format-message "Click on Cancel or type `q' to cancel.\n"))
> ;; Use a L&F that looks like the recentf menu.
> (tree-widget-set-theme "folder")
> (apply 'widget-create
> diff --git a/lisp/replace.el b/lisp/replace.el
> index be73cab..37e97e2 100644
> --- a/lisp/replace.el
> +++ b/lisp/replace.el
> @@ -209,9 +209,9 @@ wants to replace FROM with TO."
> (let ((match (match-string 3 from)))
> (cond
> ((string= match "\\n")
> - (message "Note: ‘\\n’ here doesn't match a newline; to do that, type C-q C-j instead"))
> + (message "Note: `\\n' here doesn't match a newline; to do that, type C-q C-j instead"))
> ((string= match "\\t")
> - (message "Note: ‘\\t’ here doesn't match a tab; to do that, just type TAB")))
> + (message "Note: `\\t' here doesn't match a tab; to do that, just type TAB")))
> (sit-for 2)))
> (if (not to)
> from
> @@ -1140,7 +1140,7 @@ To return to ordinary Occur mode, use \\[occur-cease-edit]."
> (goto-char m)
> (recenter line)
> (if readonly
> - (message "Buffer ‘%s’ is read only." buf)
> + (message "Buffer `%s' is read only." buf)
> (delete-region (line-beginning-position) (line-end-position))
> (insert text))
> (move-to-column col)))))))
> @@ -1496,7 +1496,7 @@ See also `multi-occur'."
> ;; it is longer than window-width.
> (if (> (+ (length regexp) 42) (window-width))
> "" (format-message
> - " for ‘%s’" (query-replace-descr regexp)))))
> + " for `%s'" (query-replace-descr regexp)))))
> (setq occur-revert-arguments (list regexp nlines bufs))
> (if (= count 0)
> (kill-buffer occur-buf)
> diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el
> index c46e05d..635990a 100644
> --- a/lisp/scroll-bar.el
> +++ b/lisp/scroll-bar.el
> @@ -61,7 +61,7 @@ SIDE must be the symbol `left' or `right'."
> (cols (nth 1 wsb)))
> (cond
> ((not (memq side '(left right)))
> - (error "‘left’ or ‘right’ expected instead of %S" side))
> + (error "`left' or `right' expected instead of %S" side))
> ((and (eq vtype side) cols))
> ((eq (frame-parameter nil 'vertical-scroll-bars) side)
> ;; nil means it's a non-toolkit scroll bar, and its width in
> diff --git a/lisp/server.el b/lisp/server.el
> index b16a06e..5a67f12 100644
> --- a/lisp/server.el
> +++ b/lisp/server.el
> @@ -575,7 +575,7 @@ If the key is not valid, signal an error."
> (if server-auth-key
> (if (string-match-p "^[!-~]\\{64\\}$" server-auth-key)
> server-auth-key
> - (error "The key ‘%s’ is invalid" server-auth-key))
> + (error "The key `%s' is invalid" server-auth-key))
> (server-generate-key)))
>
> ;;;###autoload
> diff --git a/lisp/simple.el b/lisp/simple.el
> index b8d4e74..f80faae 100644
> --- a/lisp/simple.el
> +++ b/lisp/simple.el
> @@ -1655,7 +1655,7 @@ invoking, give a prefix argument to `execute-extended-command'."
> (not executing-kbd-macro)
> (where-is-internal function overriding-local-map t))))
> (unless (commandp function)
> - (error "‘%s’ is not a valid command name" command-name))
> + (error "`%s' is not a valid command name" command-name))
> (setq this-command function)
> ;; Normally `real-this-command' should never be changed, but here we really
> ;; want to pretend that M-x <cmd> RET is nothing more than a "key
> @@ -1689,7 +1689,7 @@ invoking, give a prefix argument to `execute-extended-command'."
> (symbol-name function) typed))))
> (when binding
> (with-temp-message
> - (format-message "You can run the command ‘%s’ with %s"
> + (format-message "You can run the command `%s' with %s"
> function
> (if (stringp binding)
> (concat "M-x " binding " RET")
> @@ -2801,7 +2801,7 @@ This variable only matters if `undo-ask-before-discard' is non-nil.")
> (setq undo-extra-outer-limit (+ size 50000))
> (if (let (use-dialog-box track-mouse executing-kbd-macro )
> (yes-or-no-p (format-message
> - "Buffer ‘%s’ undo info is %d bytes long; discard it? "
> + "Buffer `%s' undo info is %d bytes long; discard it? "
> (buffer-name) size)))
> (progn (setq buffer-undo-list nil)
> (setq undo-extra-outer-limit nil)
> @@ -2810,7 +2810,7 @@ This variable only matters if `undo-ask-before-discard' is non-nil.")
> (display-warning '(undo discard-info)
> (concat
> (format-message
> - "Buffer ‘%s’ undo info was %d bytes long.\n"
> + "Buffer `%s' undo info was %d bytes long.\n"
> (buffer-name) size)
> "The undo info was discarded because it exceeded \
> `undo-outer-limit'.
> @@ -3570,7 +3570,7 @@ Also, delete any process that is exited or signaled."
> `(,(buffer-name buf)
> face link
> help-echo ,(format-message
> - "Visit buffer ‘%s’"
> + "Visit buffer `%s'"
> (buffer-name buf))
> follow-link t
> process-buffer ,buf
> @@ -7348,11 +7348,11 @@ buffer buried."
> (push var warn-vars)))
> (when warn-vars
> (display-warning 'mail
> - (format "\
> + (format-message "\
> The default mail mode is now Message mode.
> You have the following Mail mode variable%s customized:
> -\n %s\n\nTo use Mail mode, set ‘mail-user-agent’ to sendmail-user-agent.
> -To disable this warning, set ‘compose-mail-user-agent-warnings’ to nil."
> +\n %s\n\nTo use Mail mode, set `mail-user-agent' to sendmail-user-agent.
> +To disable this warning, set `compose-mail-user-agent-warnings' to nil."
> (if (> (length warn-vars) 1) "s" "")
> (mapconcat 'symbol-name
> warn-vars " "))))))
> @@ -7423,8 +7423,8 @@ With a prefix argument, set VARIABLE to VALUE buffer-locally."
> (t "globally"))))
> (val (progn
> (when obsolete
> - (message (concat "‘%S’ is obsolete; "
> - (if (symbolp obsolete) "use ‘%S’ instead" "%s"))
> + (message (concat "`%S' is obsolete; "
> + (if (symbolp obsolete) "use `%S' instead" "%s"))
> var obsolete)
> (sit-for 3))
> (if prop
> @@ -7448,7 +7448,7 @@ With a prefix argument, set VARIABLE to VALUE buffer-locally."
> (require 'cus-edit)
> (setq type (widget-convert type))
> (unless (widget-apply type :match value)
> - (user-error "Value ‘%S’ does not match type %S of %S"
> + (user-error "Value `%S' does not match type %S of %S"
> value (car type) variable))))
>
> (if make-local
> @@ -7659,7 +7659,7 @@ back on `completion-list-insert-choice-function' when nil."
> ;; `base-position'. It's difficult to make any use of `base-size',
> ;; so we just ignore it.
> (unless (consp base-position)
> - (message "Obsolete ‘base-size’ passed to choose-completion-string")
> + (message "Obsolete `base-size' passed to choose-completion-string")
> (setq base-position nil))
>
> (let* ((buffer (or buffer completion-reference-buffer))
> @@ -8384,7 +8384,7 @@ CUSTOMIZATIONS, if non-nil, should be composed of alternating
> `(progn
>
> (defcustom ,varalt-sym nil
> - ,(format "Alist of alternative implementations for the ‘%s’ command.
> + ,(format "Alist of alternative implementations for the `%s' command.
>
> Each entry must be a pair (ALTNAME . ALTFUN), where:
> ALTNAME - The name shown at user to describe the alternative implementation.
> @@ -8397,22 +8397,22 @@ ALTFUN - The function called to implement this alternative."
> (defvar ,varimp-sym nil "Internal use only.")
>
> (defun ,command (&optional arg)
> - ,(format "Run generic command ‘%s’.
> + ,(format "Run generic command `%s'.
> If used for the first time, or with interactive ARG, ask the user which
> -implementation to use for ‘%s’. The variable ‘%s’
> +implementation to use for `%s'. The variable `%s'
> contains the list of implementations currently supported for this command."
> command-name command-name varalt-name)
> (interactive "P")
> (when (or arg (null ,varimp-sym))
> (let ((val (completing-read
> ,(format-message
> - "Select implementation for command ‘%s’: "
> + "Select implementation for command `%s': "
> command-name)
> ,varalt-sym nil t)))
> (unless (string-equal val "")
> (when (null ,varimp-sym)
> (message
> - "Use ‘C-u M-x %s RET’ to select another implementation"
> + "Use C-u M-x %s RET`to select another implementation"
> ,command-name)
> (sit-for 3))
> (customize-save-variable ',varimp-sym
> @@ -8420,7 +8420,7 @@ contains the list of implementations currently supported for this command."
> (if ,varimp-sym
> (call-interactively ,varimp-sym)
> (message "%s" ,(format-message
> - "No implementation selected for command ‘%s’"
> + "No implementation selected for command `%s'"
> command-name)))))))
>
>
> diff --git a/lisp/speedbar.el b/lisp/speedbar.el
> index 2989274..97c977c 100644
> --- a/lisp/speedbar.el
> +++ b/lisp/speedbar.el
> @@ -203,7 +203,7 @@ the user is done with the current expansion list.")
> )
> "List of functions to periodically call stealthily.
> This list is of the form:
> - '( (\"NAME\" FUNCTION ...)
> + ( (\"NAME\" FUNCTION ...)
> ...)
> where NAME is the name of the major display mode these functions are
> for, and the remaining elements FUNCTION are functions to call in order.
> @@ -458,9 +458,9 @@ items is reached."
> (defcustom speedbar-directory-button-trim-method 'span
> "Indicates how the directory button will be displayed.
> Possible values are:
> - 'span - span large directories over multiple lines.
> - 'trim - trim large directories to only show the last few.
> - nil - no trimming."
> + `span' - span large directories over multiple lines.
> + `trim' - trim large directories to only show the last few.
> + nil - no trimming."
> :group 'speedbar
> :type '(radio (const :tag "Span large directories over multiple lines."
> span)
> diff --git a/lisp/startup.el b/lisp/startup.el
> index b5e258f..9caf485 100644
> --- a/lisp/startup.el
> +++ b/lisp/startup.el
> @@ -86,7 +86,7 @@ or if your init file contains a line of this form:
> (setq inhibit-startup-echo-area-message \"YOUR-USER-NAME\")
> If your init file is byte-compiled, use the following form
> instead:
> - (eval '(setq inhibit-startup-echo-area-message \"YOUR-USER-NAME\"))
> + (eval \\='(setq inhibit-startup-echo-area-message \"YOUR-USER-NAME\"))
> Thus, someone else using a copy of your init file will see the
> startup message unless he personally acts to inhibit it."
> :type '(choice (const :tag "Don't inhibit")
> @@ -360,7 +360,7 @@ this variable usefully is to set it while building and dumping Emacs."
> :group 'initialization
> :initialize #'custom-initialize-default
> :set (lambda (_variable _value)
> - (error "Customizing ‘site-run-file’ does not work")))
> + (error "Customizing `site-run-file' does not work")))
>
> (make-obsolete-variable 'system-name "use (system-name) instead" "25.1")
>
> @@ -752,7 +752,7 @@ to prepare for opening the first frame (e.g. open a connection to an X server)."
> (let ((elt (assoc completion tty-long-option-alist)))
> ;; Check for abbreviated long option.
> (or elt
> - (error "Option ‘%s’ is ambiguous" argi))
> + (error "Option `%s' is ambiguous" argi))
> (setq argi (cdr elt)))
> ;; Check for a short option.
> (setq argval nil
> @@ -804,13 +804,18 @@ to prepare for opening the first frame (e.g. open a connection to an X server)."
> (defvar server-process)
>
> (defun startup--setup-quote-display ()
> - "If curved quotes don't work, display ASCII approximations."
> - (dolist (char-repl '((?‘ . ?\`) (?’ . ?\') (?“ . ?\") (?” . ?\")))
> - (when (not (char-displayable-p (car char-repl)))
> - (unless standard-display-table
> - (setq standard-display-table (make-display-table)))
> - (aset standard-display-table (car char-repl)
> - (vector (make-glyph-code (cdr char-repl) 'shadow))))))
> + "Display ASCII approximations on user request or if curved quotes don't work."
> + (when (memq text-quoting-style '(nil grave straight))
> + (dolist (char-repl '((?‘ . ?\`) (?’ . ?\') (?“ . ?\") (?” . ?\")))
> + (let ((char (car char-repl))
> + (repl (cdr char-repl)))
> + (when (or text-quoting-style (not (char-displayable-p char)))
> + (when (and (eq repl ?\`) (eq text-quoting-style 'straight))
> + (setq repl ?\'))
> + (unless standard-display-table
> + (setq standard-display-table (make-display-table)))
> + (aset standard-display-table char
> + (vector (make-glyph-code repl 'shadow))))))))
>
> (defun command-line ()
> "A subroutine of `normal-top-level'.
> @@ -911,7 +916,7 @@ please check its value")
> ((stringp completion)
> (let ((elt (assoc completion longopts)))
> (unless elt
> - (error "Option ‘%s’ is ambiguous" argi))
> + (error "Option `%s' is ambiguous" argi))
> (setq argi (substring (car elt) 1))))
> (t
> (setq argval nil
> @@ -954,7 +959,7 @@ please check its value")
> (setq done t)))
> ;; Was argval set but not used?
> (and argval
> - (error "Option ‘%s’ doesn't allow an argument" argi))))
> + (error "Option `%s' doesn't allow an argument" argi))))
>
> ;; Re-attach the --display arg.
> (and display-arg (setq args (append display-arg args)))
> @@ -973,7 +978,7 @@ please check its value")
> (not (featurep
> (intern
> (concat (symbol-name initial-window-system) "-win")))))
> - (error "Unsupported window system ‘%s’" initial-window-system))
> + (error "Unsupported window system `%s'" initial-window-system))
> ;; Process window-system specific command line parameters.
> (setq command-line-args
> (let ((window-system initial-window-system)) ;Hack attack!
> @@ -1184,10 +1189,10 @@ please check its value")
> (display-warning
> 'initialization
> (format-message "\
> -An error occurred while loading ‘%s’:\n\n%s%s%s\n\n\
> +An error occurred while loading `%s':\n\n%s%s%s\n\n\
> To ensure normal operation, you should investigate and remove the
> cause of the error in your initialization file. Start Emacs with
> -the ‘--debug-init’ option to view a complete error backtrace."
> +the `--debug-init' option to view a complete error backtrace."
> user-init-file
> (get (car error) 'error-message)
> (if (cdr error) ": " "")
> @@ -1234,6 +1239,11 @@ the ‘--debug-init’ option to view a complete error backtrace."
> ;; unibyte (display table, terminal coding system &c).
> (set-language-environment current-language-environment)))
>
> + ;; Setup quote display again, if the init file sets
> + ;; text-quoting-style to a non-nil value.
> + (when (and (not noninteractive) text-quoting-style)
> + (startup--setup-quote-display))
> +
> ;; Do this here in case the init file sets mail-host-address.
> (if (equal user-mail-address "")
> (setq user-mail-address (or (getenv "EMAIL")
> @@ -1320,8 +1330,8 @@ the ‘--debug-init’ option to view a complete error backtrace."
> (setq warned t)
> (display-warning 'initialization
> (format-message "\
> -Your ‘load-path’ seems to contain\n\
> -your ‘.emacs.d’ directory: %s\n\
> +Your `load-path' seems to contain\n\
> +your `.emacs.d' directory: %s\n\
> This is likely to cause problems...\n\
> Consider using a subdirectory instead, e.g.: %s"
> dir (expand-file-name
> @@ -1380,11 +1390,11 @@ settings will be marked as \"CHANGED outside of Customize\"."
>
> (defcustom initial-scratch-message (purecopy "\
> ;; This buffer is for notes you don't want to save, and for Lisp evaluation.
> -;; If you want to create a file, visit that file with C-x C-f,
> +;; If you want to create a file, visit that file with \\[find-file],
> ;; then enter the text in that file's own buffer.
>
> ")
> - "Initial message displayed in *scratch* buffer at startup.
> + "Initial documentation displayed in *scratch* buffer at startup.
> If this is nil, no message will be displayed."
> :type '(choice (text :tag "Message")
> (const :tag "none" nil))
> @@ -2270,7 +2280,7 @@ nil default-directory" name)
> (if (stringp completion)
> (let ((elt (member completion longopts)))
> (or elt
> - (error "Option ‘%s’ is ambiguous" argi))
> + (error "Option `%s' is ambiguous" argi))
> (setq argi (substring (car elt) 1)))
> (setq argval nil
> argi orig-argi)))))
> @@ -2340,7 +2350,7 @@ nil default-directory" name)
> (setq inhibit-startup-screen t)
> (setq tem (or argval (pop command-line-args-left)))
> (or (stringp tem)
> - (error "File name omitted from ‘-insert’ option"))
> + (error "File name omitted from `-insert' option"))
> (insert-file-contents (command-line-normalize-file-name tem)))
>
> ((equal argi "-kill")
> @@ -2375,7 +2385,7 @@ nil default-directory" name)
> ;; An explicit option to specify visiting a file.
> (setq tem (or argval (pop command-line-args-left)))
> (unless (stringp tem)
> - (error "File name omitted from ‘%s’ option" argi))
> + (error "File name omitted from `%s' option" argi))
> (funcall process-file-arg tem))
>
> ;; These command lines now have no effect.
> @@ -2396,7 +2406,7 @@ nil default-directory" name)
> (unless did-hook
> ;; Presume that the argument is a file name.
> (if (string-match "\\`-" argi)
> - (error "Unknown option ‘%s’" argi))
> + (error "Unknown option `%s'" argi))
> ;; FIXME: Why do we only inhibit the startup
> ;; screen for -nw?
> (unless initial-window-system
> @@ -2420,7 +2430,7 @@ nil default-directory" name)
> (get-buffer "*scratch*")
> (with-current-buffer "*scratch*"
> (when (zerop (buffer-size))
> - (insert initial-scratch-message)
> + (insert (substitute-command-keys initial-scratch-message))
> (set-buffer-modified-p nil))))
>
> ;; Prepend `initial-buffer-choice' to `displayable-buffers'.
> diff --git a/lisp/subr.el b/lisp/subr.el
> index 61b8706..ce3011d 100644
> --- a/lisp/subr.el
> +++ b/lisp/subr.el
> @@ -72,7 +72,7 @@ For more information, see Info node `(elisp)Declaring Functions'."
> If FORM does return, signal an error."
> (declare (debug t))
> `(prog1 ,form
> - (error "Form marked with ‘noreturn’ did return")))
> + (error "Form marked with `noreturn' did return")))
>
> (defmacro 1value (form)
> "Evaluate FORM, expecting a constant return value.
> @@ -320,7 +320,7 @@ Defaults to `error'."
> (mapcar (lambda (parent)
> (cons parent
> (or (get parent 'error-conditions)
> - (error "Unknown signal ‘%s’" parent))))
> + (error "Unknown signal `%s'" parent))))
> parent))
> (cons parent (get parent 'error-conditions)))))
> (put name 'error-conditions
> @@ -1607,7 +1607,7 @@ can do the job."
> (let* ((sym (cadr list-var))
> (append (eval append))
> (msg (format-message
> - "‘add-to-list’ can't use lexical var ‘%s’; use ‘push’ or ‘cl-pushnew’"
> + "`add-to-list' can't use lexical var `%s'; use `push' or `cl-pushnew'"
> sym))
> ;; Big ugly hack so we only output a warning during
> ;; byte-compilation, and so we can use
> @@ -2208,7 +2208,7 @@ Any input that is not one of CHARS is ignored.
> If optional argument INHIBIT-KEYBOARD-QUIT is non-nil, ignore
> keyboard-quit events while waiting for a valid input."
> (unless (consp chars)
> - (error "Called ‘read-char-choice’ without valid char choices"))
> + (error "Called `read-char-choice' without valid char choices"))
> (let (char done show-help (helpbuf " *Char Help*"))
> (let ((cursor-in-echo-area t)
> (executing-kbd-macro executing-kbd-macro)
> @@ -4773,7 +4773,7 @@ Examples of version conversion:
>
> See documentation for `version-separator' and `version-regexp-alist'."
> (or (and (stringp ver) (> (length ver) 0))
> - (error "Invalid version string: ‘%s’" ver))
> + (error "Invalid version string: `%s'" ver))
> ;; Change .x.y to 0.x.y
> (if (and (>= (length ver) (length version-separator))
> (string-equal (substring ver 0 (length version-separator))
> @@ -4805,9 +4805,9 @@ See documentation for `version-separator' and `version-regexp-alist'."
> ((string-match "^[-_+ ]?\\([a-zA-Z]\\)$" s)
> (push (- (aref (downcase (match-string 1 s)) 0) ?a -1)
> lst))
> - (t (error "Invalid version syntax: ‘%s’" ver))))))
> + (t (error "Invalid version syntax: `%s'" ver))))))
> (if (null lst)
> - (error "Invalid version syntax: ‘%s’" ver)
> + (error "Invalid version syntax: `%s'" ver)
> (nreverse lst)))))
>
>
> diff --git a/lisp/term/common-win.el b/lisp/term/common-win.el
> index ccac142..98ad5ac 100644
> --- a/lisp/term/common-win.el
> +++ b/lisp/term/common-win.el
> @@ -112,7 +112,7 @@
> ;; Handle the -xrm option.
> (defun x-handle-xrm-switch (switch)
> (unless (consp x-invocation-args)
> - (error "%s: missing argument to ‘%s’ option" (invocation-name) switch))
> + (error "%s: missing argument to `%s' option" (invocation-name) switch))
> (setq x-command-line-resources
> (if (null x-command-line-resources)
> (pop x-invocation-args)
> @@ -152,7 +152,7 @@
> ;; the initial frame, too.
> (defun x-handle-name-switch (switch)
> (or (consp x-invocation-args)
> - (error "%s: missing argument to ‘%s’ option" (invocation-name) switch))
> + (error "%s: missing argument to `%s' option" (invocation-name) switch))
> (setq x-resource-name (pop x-invocation-args)
> initial-frame-alist (cons (cons 'name x-resource-name)
> initial-frame-alist)))
> @@ -207,7 +207,7 @@ have been processed."
> (let ((elt (assoc completion option-alist)))
> ;; Check for abbreviated long option.
> (or elt
> - (error "Option ‘%s’ is ambiguous" this-switch))
> + (error "Option `%s' is ambiguous" this-switch))
> (setq this-switch completion))))))
> (setq aelt (assoc this-switch option-alist))
> (if aelt (setq handler (nth 2 aelt)))
> diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
> index c325661..ebd76a6 100644
> --- a/lisp/term/x-win.el
> +++ b/lisp/term/x-win.el
> @@ -93,7 +93,7 @@
> ;; Handle the --parent-id option.
> (defun x-handle-parent-id (switch)
> (or (consp x-invocation-args)
> - (error "%s: missing argument to ‘%s’ option" (invocation-name) switch))
> + (error "%s: missing argument to `%s' option" (invocation-name) switch))
> (setq initial-frame-alist (cons
> (cons 'parent-id
> (string-to-number (car x-invocation-args)))
> @@ -104,7 +104,7 @@
> ;; to give us back our session id we had on the previous run.
> (defun x-handle-smid (switch)
> (or (consp x-invocation-args)
> - (error "%s: missing argument to ‘%s’ option" (invocation-name) switch))
> + (error "%s: missing argument to `%s' option" (invocation-name) switch))
> (setq x-session-previous-id (car x-invocation-args)
> x-invocation-args (cdr x-invocation-args)))
>
> diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
> index 3fe21c4..87c2a95 100644
> --- a/lisp/textmodes/ispell.el
> +++ b/lisp/textmodes/ispell.el
> @@ -388,7 +388,7 @@ It consists of pairs (REGEXP . DICTIONARY). If REGEXP is found
> in the message headers, `ispell-local-dictionary' will be set to
> DICTIONARY if `ispell-local-dictionary' is not buffer-local.
> E.g. you may use the following value:
> - '((\"^Newsgroups:[ \\t]*de\\\\.\" . \"deutsch8\")
> + ((\"^Newsgroups:[ \\t]*de\\\\.\" . \"deutsch8\")
> (\"^To:[^\\n,]+\\\\.de[ \\t\\n,>]\" . \"deutsch8\"))"
> :type '(repeat (cons regexp string))
> :group 'ispell)
> @@ -484,7 +484,7 @@ The function must take one string argument and return a string."
> "When non-nil ispell uses framepop to display choices in a dedicated frame.
> You can set this variable to dynamically use framepop if you are in a
> window system by evaluating the following on startup to set this variable:
> - (and window-system (condition-case () (require 'framepop) (error nil)))"
> + (and window-system (condition-case () (require \\='framepop) (error nil)))"
> :type 'boolean
> :group 'ispell)
>
> diff --git a/lisp/textmodes/reftex-ref.el b/lisp/textmodes/reftex-ref.el
> index 0714723..df78447 100644
> --- a/lisp/textmodes/reftex-ref.el
> +++ b/lisp/textmodes/reftex-ref.el
> @@ -228,7 +228,7 @@ This function is controlled by the settings of reftex-insert-label-flags."
> (symbol-value reftex-docstruct-symbol)))
> (ding)
> (if (y-or-n-p
> - (format-message "Label ‘%s’ exists. Use anyway? " label))
> +` (format-message "Label `%s' exists. Use anyway? " label))
> (setq valid t)))
>
> ;; Label is ok
> diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el
> index b9d4b7c..bdae6e5 100644
> --- a/lisp/textmodes/reftex-toc.el
> +++ b/lisp/textmodes/reftex-toc.el
> @@ -876,7 +876,7 @@ label prefix determines the wording of a reference."
> (setq newlabel (read-string (format "Rename label \"%s\" to:" label)))
> (if (assoc newlabel (symbol-value reftex-docstruct-symbol))
> (if (not (y-or-n-p
> - (format-message "Label ‘%s’ exists. Use anyway? " label)))
> + (format-message "Label `%s' exists. Use anyway? " label)))
> (error "Abort")))
> (save-excursion
> (save-window-excursion
> diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el
> index a8f5fce..482dd4c 100644
> --- a/lisp/textmodes/reftex-vars.el
> +++ b/lisp/textmodes/reftex-vars.el
> @@ -1153,9 +1153,9 @@ path."
> "Sorting of the entries found in BibTeX databases by reftex-citation.
> Possible values:
> nil Do not sort entries.
> -'author Sort entries by author name.
> -'year Sort entries by increasing year.
> -'reverse-year Sort entries by decreasing year."
> +`author' Sort entries by author name.
> +`year' Sort entries by increasing year.
> +`reverse-year' Sort entries by decreasing year."
> :group 'reftex-citation-support
> :type '(choice (const :tag "not" nil)
> (const :tag "by author" author)
> diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
> index f95f4fa..7dc9184 100644
> --- a/lisp/textmodes/reftex.el
> +++ b/lisp/textmodes/reftex.el
> @@ -2932,7 +2932,7 @@ When LEVEL is non-nil, increase section numbers on that level.
>
> ;;;***
>
> -;;;### (autoloads nil "reftex-ref" "reftex-ref.el" "35c0c8fcf8eebfc4366bf0f78aed7f2f")
> +;;;### (autoloads nil "reftex-ref" "reftex-ref.el" "86c0a243e49d55bb33a32ddac613e189")
> ;;; Generated autoloads from reftex-ref.el
>
> (autoload 'reftex-label-location "reftex-ref" "\
> @@ -3046,7 +3046,7 @@ During a selection process, these are the local bindings.
>
> ;;;***
>
> -;;;### (autoloads nil "reftex-toc" "reftex-toc.el" "e3514ef292edfce6722c75225456ffa1")
> +;;;### (autoloads nil "reftex-toc" "reftex-toc.el" "db9b727d89e2a6ff01986e7c6aff1058")
> ;;; Generated autoloads from reftex-toc.el
>
> (autoload 'reftex-toc "reftex-toc" "\
> diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el
> index 7a2857a..9625ec2 100644
> --- a/lisp/textmodes/rst.el
> +++ b/lisp/textmodes/rst.el
> @@ -2138,15 +2138,15 @@ for completion and choices.
>
> (a) If user selects bullets or #, it's just added.
> (b) If user selects enumerations, a further prompt is given. User needs to
> - input a starting item, for example 'e' for 'A)' style.
> + input a starting item, for example `e' for `A)' style.
>
> The position of the new list is arranged according to whether or not the
> current line and the previous line are blank lines.
>
> 2. When continuing a list, one thing needs to be noticed:
>
> -List style alphabetical list, such as 'a.', and roman numerical list, such as
> -'i.', have some overlapping items, for example 'v.' The function can deal with
> +List style alphabetical list, such as `a.', and roman numerical list, such as
> +`i.', have some overlapping items, for example `v.' The function can deal with
> the problem elegantly in most situations. But when those overlapped list are
> preceded by a blank line, it is hard to determine which type to use
> automatically. The function uses alphabetical list by default. If you want
> diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
> index 1d872f0..cb65e5f 100644
> --- a/lisp/textmodes/sgml-mode.el
> +++ b/lisp/textmodes/sgml-mode.el
> @@ -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 `''.
> 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/table.el b/lisp/textmodes/table.el
> index 9c50eca..151d648 100644
> --- a/lisp/textmodes/table.el
> +++ b/lisp/textmodes/table.el
> @@ -2806,8 +2806,8 @@ ORIENTATION is a symbol either horizontally or vertically."
> ;;;###autoload
> (defun table-justify (what justify)
> "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'."
> (interactive
> (list (let* ((_ (barf-if-buffer-read-only))
> (completion-ignore-case t)
> @@ -2822,8 +2822,8 @@ WHAT is a symbol ‘cell’, ‘row’ or ‘column’. JUSTIFY is a symbol
> ;;;###autoload
> (defun table-justify-cell (justify &optional paragraph)
> "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."
> (interactive
> @@ -2835,8 +2835,8 @@ otherwise the entire cell contents is justified."
> ;;;###autoload
> (defun table-justify-row (justify)
> "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."
> (interactive
> (list (table--query-justification)))
> (let((cell-list (table--horizontal-cell-list nil nil 'top)))
> @@ -2852,8 +2852,8 @@ or ‘top’, ‘middle’, ‘bottom’ or ‘none’ for vertical."
> ;;;###autoload
> (defun table-justify-column (justify)
> "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."
> (interactive
> (list (table--query-justification)))
> (let((cell-list (table--vertical-cell-list nil nil 'left)))
> @@ -3341,8 +3341,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 a 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:
>
> @@ -4461,8 +4461,8 @@ looking at the appearance of the CELL contents."
>
> (defun table--justify-cell-contents (justify &optional paragraph)
> "Justify the current cell contents.
> -JUSTIFY is a symbol ‘left’, ‘center’ or ‘right’ for horizontal, or ‘top’,
> -‘middle’, ‘bottom’ or ‘none’ for vertical. When PARAGRAPH is non-nil the
> +JUSTIFY is a symbol `left', `center' or `right' for horizontal, or `top',
> +`middle', `bottom' or `none' for vertical. When PARAGRAPH is non-nil the
> justify operation is limited to the current paragraph."
> (table-with-cache-buffer
> (let ((beg (point-min))
> diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
> index 6244189..5fdf9e3 100644
> --- a/lisp/textmodes/tex-mode.el
> +++ b/lisp/textmodes/tex-mode.el
> @@ -3410,6 +3410,8 @@ There might be text before point."
> (not (or
> ;; Don't compose \alpha@foo.
> (eq after-syntax ?_)
> + ;; Don't compose inside verbatim blocks!
> + (nth 8 (syntax-ppss))
> ;; The \alpha in \alpha2 may be composed but of course \alphax may not.
> (and (eq after-syntax ?w)
> (or (< after-char ?0)
> diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el
> index 0ce7064..0508426 100644
> --- a/lisp/textmodes/texnfo-upd.el
> +++ b/lisp/textmodes/texnfo-upd.el
> @@ -1407,7 +1407,7 @@ level in the Texinfo file; when looking for the `Previous' pointer,
> the section found will be at the same or higher hierarchical level in
> the Texinfo file; when looking for the `Up' pointer, the section found
> will be at some level higher in the Texinfo file. The fourth argument
> -\(one of `next’, `previous’, or `up'\) specifies whether to find the
> +\(one of `next', `previous', or `up'\) specifies whether to find the
> `Next', `Previous', or `Up' pointer."
> (let ((case-fold-search t))
> (cond ((eq direction 'next)
> diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el
> index c94e417..0e645fc 100644
> --- a/lisp/textmodes/tildify.el
> +++ b/lisp/textmodes/tildify.el
> @@ -160,7 +160,7 @@ a simple pass through function could be used:
> (setq-local tildify-foreach-region-function
> (lambda (cb beg end) (funcall cb beg end)))
> or better still:
> - (setq-local tildify-foreach-region-function 'funcall)
> + (setq-local tildify-foreach-region-function \\='funcall)
> See `tildify-foreach-ignore-environments' function for other ways to use the
> variable."
> :version "25.1"
> diff --git a/lisp/textmodes/two-column.el b/lisp/textmodes/two-column.el
> index 5e318b5..4133e0f 100644
> --- a/lisp/textmodes/two-column.el
> +++ b/lisp/textmodes/two-column.el
> @@ -373,7 +373,7 @@ First column's text sSs Second column's text
> \(See \\[describe-mode] .)"
> (interactive "*p")
> (and (2C-other)
> - (if (y-or-n-p (format-message "Overwrite associated buffer ‘%s’? "
> + (if (y-or-n-p (format-message "Overwrite associated buffer `%s'? "
> (buffer-name (2C-other))))
> (with-current-buffer (2C-other)
> (erase-buffer))
> diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el
> index 84ffcca..a9c539b 100644
> --- a/lisp/thingatpt.el
> +++ b/lisp/thingatpt.el
> @@ -145,7 +145,7 @@ a symbol as a valid THING."
> (let ((bounds (bounds-of-thing-at-point thing)))
> (when bounds
> (buffer-substring (car bounds) (cdr bounds)))))))
> - (when (and text no-properties)
> + (when (and text no-properties (sequencep text))
> (set-text-properties 0 (length text) nil text))
> text))
>
> @@ -289,7 +289,7 @@ If nil, construct the regexp from `thing-at-point-uri-schemes'.")
> "uuid:" "vemmi://" "webcal://" "xri://" "xmlrpc.beep://"
> "xmlrpc.beeps://" "z39.50r://" "z39.50s://" "xmpp:"
> ;; Compatibility
> - "fax:" "mms://" "mmsh://" "modem:" "prospero:" "snews:"
> + "fax:" "man:" "mms://" "mmsh://" "modem:" "prospero:" "snews:"
> "wais://")
> "List of URI schemes recognized by `thing-at-point-url-at-point'.
> Each string in this list should correspond to the start of a
> diff --git a/lisp/thumbs.el b/lisp/thumbs.el
> index 409ba7c..da83f3a 100644
> --- a/lisp/thumbs.el
> +++ b/lisp/thumbs.el
> @@ -235,7 +235,7 @@ Optional arguments are:
> ARG any arguments to the ACTION command,
> OUTPUT-FORMAT is the file format to output (default is jpeg),
> ACTION-PREFIX is the symbol to place before the ACTION command
> - (defaults to '-' but can sometimes be '+')."
> + (defaults to `-' but can sometimes be `+')."
> (call-process thumbs-conversion-program nil nil nil
> (or action-prefix "-")
> action
> diff --git a/lisp/tree-widget.el b/lisp/tree-widget.el
> index a29658a..0f1e4de 100644
> --- a/lisp/tree-widget.el
> +++ b/lisp/tree-widget.el
> @@ -294,9 +294,9 @@ Typically it should contain something like this:
>
> (tree-widget-set-parent-theme \"my-parent-theme\")
> (tree-widget-set-image-properties
> - (if (featurep 'xemacs)
> - '(:ascent center)
> - '(:ascent center :mask (heuristic t))
> + (if (featurep \\='xemacs)
> + \\='(:ascent center)
> + \\='(:ascent center :mask (heuristic t))
> ))"
> (or name (setq name (or tree-widget-theme "default")))
> (unless (string-equal name (tree-widget-theme-name))
> diff --git a/lisp/tutorial.el b/lisp/tutorial.el
> index e9095b3..f8660f5 100644
> --- a/lisp/tutorial.el
> +++ b/lisp/tutorial.el
> @@ -136,18 +136,18 @@ options:
> (setq mapsym s)))))
> (insert
> (format
> - "The default Emacs binding for the key %s is the command ‘%s’. "
> + "The default Emacs binding for the key %s is the command `%s'. "
> (key-description key)
> db))
> (insert "However, your customizations have "
> (if cb
> - (format-message "rebound it to the command ‘%s’" cb)
> + (format-message "rebound it to the command `%s'" cb)
> "unbound it"))
> (insert ".")
> (when mapsym
> (insert " (For the more advanced user:"
> (format-message
> - " This binding is in the keymap ‘%s’.)" mapsym)))
> + " This binding is in the keymap `%s'.)" mapsym)))
> (if (string= where "")
> (unless (keymapp db)
> (insert "\n\nYou can use M-x "
> @@ -159,7 +159,7 @@ options:
> ""
> "the key")
> where
> - (format-message " to get the function ‘%s’." db))))
> + (format-message " to get the function `%s'." db))))
> (fill-region (point-min) (point)))))
> (help-print-return-message))))
>
> @@ -451,7 +451,7 @@ where
> (lookup-key global-map
> [menu-bar]))))
> (stringp cwhere))
> - (format-message "the ‘%s’ menu" cwhere)
> + (format-message "the `%s' menu" cwhere)
> "the menus"))))
> (setq where ""))
> (setq remark nil)
> diff --git a/lisp/type-break.el b/lisp/type-break.el
> index c7043b5..8503736 100644
> --- a/lisp/type-break.el
> +++ b/lisp/type-break.el
> @@ -803,7 +803,7 @@ this or ask the user to start one right now."
> (type-break-mode-line-message-mode)
> (t
> (beep t)
> - (message "%sYou should take a typing break now. Do ‘%s’."
> + (message "%sYou should take a typing break now. Do `%s'."
> (type-break-time-stamp)
> (substitute-command-keys "\\[type-break]"))
> (sit-for 1)
> diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
> index 13b9774..e011b96 100644
> --- a/lisp/url/url-util.el
> +++ b/lisp/url/url-util.el
> @@ -285,7 +285,7 @@ Will not do anything if `url-show-status' is nil."
> "Build a query-string.
>
> Given a QUERY in the form:
> -'((key1 val1)
> + ((key1 val1)
> (key2 val2)
> (key3 val1 val2)
> (key4)
> diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el
> index 7e75277..46c2ec3 100644
> --- a/lisp/url/url-vars.el
> +++ b/lisp/url/url-vars.el
> @@ -122,9 +122,9 @@ cookies -- never accept HTTP cookies
>
> Samples:
>
> - (setq url-privacy-level 'high)
> - (setq url-privacy-level '(email lastloc)) ;; equivalent to 'high
> - (setq url-privacy-level '(os))
> + (setq url-privacy-level \\='high)
> + (setq url-privacy-level \\='(email lastloc)) ;; equivalent to \\='high
> + (setq url-privacy-level \\='(os))
>
> ::NOTE::
> This variable controls several other variables and is _NOT_ automatically
> diff --git a/lisp/vc/ediff-mult.el b/lisp/vc/ediff-mult.el
> index c81afce..7bfc3b6 100644
> --- a/lisp/vc/ediff-mult.el
> +++ b/lisp/vc/ediff-mult.el
> @@ -1456,7 +1456,8 @@ Useful commands:
> (map-extents 'delete-extent)
> (mapc 'delete-overlay (overlays-in 1 1)))
>
> - (insert "This is a registry of all active Ediff sessions.
> + (insert (substitute-command-keys "\
> +This is a registry of all active Ediff sessions.
>
> Useful commands:
> button2, `v', RET over a session record: switch to that session
> @@ -1471,7 +1472,7 @@ Useful commands:
> \t\tActive Ediff Sessions:
> \t\t----------------------
>
> -")
> +"))
> ;; purge registry list from dead buffers
> (mapc (lambda (elt)
> (if (not (ediff-buffer-live-p elt))
> diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el
> index b665034..b45d533 100644
> --- a/lisp/vc/ediff-ptch.el
> +++ b/lisp/vc/ediff-ptch.el
> @@ -406,7 +406,7 @@ other files, enter /dev/null
> (with-output-to-temp-buffer ediff-msg-buffer
> (ediff-with-current-buffer standard-output
> (fundamental-mode))
> - (princ (format "
> + (princ (format-message "
> Ediff has inferred that
> %s
> %s
> diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
> index 50c6d96..8a0f554 100644
> --- a/lisp/vc/vc-git.el
> +++ b/lisp/vc/vc-git.el
> @@ -270,8 +270,10 @@ matching the resulting Git log output, and KEYWORDS is a list of
> (disp-rev (or (vc-git--symbolic-ref file)
> (substring rev 0 7)))
> (def-ml (vc-default-mode-line-string 'Git file))
> - (help-echo (get-text-property 0 'help-echo def-ml)))
> + (help-echo (get-text-property 0 'help-echo def-ml))
> + (face (get-text-property 0 'face def-ml)))
> (propertize (replace-regexp-in-string (concat rev "\\'") disp-rev def-ml t t)
> + 'face face
> 'help-echo (concat help-echo "\nCurrent revision: " rev))))
>
> (cl-defstruct (vc-git-extra-fileinfo
> diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
> index e674f0e..3e6d2a9 100644
> --- a/lisp/vc/vc-hooks.el
> +++ b/lisp/vc/vc-hooks.el
> @@ -380,14 +380,14 @@ If the argument is a list, the files must all have the same back end."
> If FILES are not registered, this function always returns nil.
> For registered files, the possible values are:
>
> - 'implicit FILES are always writable, and checked out `implicitly'
> + `implicit' FILES are always writable, and checked out `implicitly'
> when the user saves the first changes to the file.
>
> - 'locking FILES are read-only if up-to-date; user must type
> + `locking' FILES are read-only if up-to-date; user must type
> \\[vc-next-action] before editing. Strict locking
> is assumed.
>
> - 'announce FILES are read-only if up-to-date; user must type
> + `announce' FILES are read-only if up-to-date; user must type
> \\[vc-next-action] before editing. But other users
> may be editing at the same time."
> (vc-call-backend backend 'checkout-model files))
> @@ -416,10 +416,10 @@ For registered files, the possible values are:
> A return of nil from this function means we have no information on the
> status of this file. Otherwise, the value returned is one of:
>
> - 'up-to-date The working file is unmodified with respect to the
> + `up-to-date' The working file is unmodified with respect to the
> latest version on the current branch, and not locked.
>
> - 'edited The working file has been edited by the user. If
> + `edited' The working file has been edited by the user. If
> locking is used for the file, this state means that
> the current version is locked by the calling user.
> This status should *not* be reported for files
> @@ -429,44 +429,44 @@ status of this file. Otherwise, the value returned is one of:
> USER The current version of the working file is locked by
> some other USER (a string).
>
> - 'needs-update The file has not been edited by the user, but there is
> + `needs-update' The file has not been edited by the user, but there is
> a more recent version on the current branch stored
> in the repository.
>
> - 'needs-merge The file has been edited by the user, and there is also
> + `needs-merge' The file has been edited by the user, and there is also
> a more recent version on the current branch stored in
> the repository. This state can only occur if locking
> is not used for the file.
>
> - 'unlocked-changes The working version of the file is not locked,
> + `unlocked-changes' The working version of the file is not locked,
> but the working file has been changed with respect
> to that version. This state can only occur for files
> with locking; it represents an erroneous condition that
> should be resolved by the user (vc-next-action will
> prompt the user to do it).
>
> - 'added Scheduled to go into the repository on the next commit.
> + `added' Scheduled to go into the repository on the next commit.
> Often represented by vc-working-revision = \"0\" in VCSes
> with monotonic IDs like Subversion and Mercurial.
>
> - 'removed Scheduled to be deleted from the repository on next commit.
> + `removed' Scheduled to be deleted from the repository on next commit.
>
> - 'conflict The file contains conflicts as the result of a merge.
> + `conflict' The file contains conflicts as the result of a merge.
> For now the conflicts are text conflicts. In the
> future this might be extended to deal with metadata
> conflicts too.
>
> - 'missing The file is not present in the file system, but the VC
> + `missing' The file is not present in the file system, but the VC
> system still tracks it.
>
> - 'ignored The file showed up in a dir-status listing with a flag
> + `ignored' The file showed up in a dir-status listing with a flag
> indicating the version-control system is ignoring it,
> Note: This property is not set reliably (some VCSes
> don't have useful directory-status commands) so assume
> that any file with vc-state nil might be ignorable
> without VC knowing it.
>
> - 'unregistered The file is not under version control."
> + `unregistered' The file is not under version control."
>
> ;; Note: in Emacs 22 and older, return of nil meant the file was
> ;; unregistered. This is potentially a source of
> diff --git a/lisp/wdired.el b/lisp/wdired.el
> index 0c113b3..a9e1e2a 100644
> --- a/lisp/wdired.el
> +++ b/lisp/wdired.el
> @@ -494,7 +494,7 @@ non-nil means return old filename."
> overwrite))
> (error
> (setq errors (1+ errors))
> - (dired-log "Rename ‘%s’ to ‘%s’ failed:\n%s\n"
> + (dired-log "Rename `%s' to `%s' failed:\n%s\n"
> file-ori file-new
> err)))))))))
> errors))
> @@ -651,7 +651,7 @@ If OLD, return the old target. If MOVE, move point before it."
> (substitute-in-file-name link-to-new) link-from))
> (error
> (setq errors (1+ errors))
> - (dired-log "Link ‘%s’ to ‘%s’ failed:\n%s\n"
> + (dired-log "Link `%s' to `%s' failed:\n%s\n"
> link-from link-to-new
> err)))))
> (cons changes errors)))
> @@ -837,10 +837,10 @@ Like original function but it skips read-only words."
> (unless (equal 0 (process-file dired-chmod-program
> nil nil nil perm-tmp filename))
> (setq errors (1+ errors))
> - (dired-log "%s %s ‘%s’ failed\n\n"
> + (dired-log "%s %s `%s' failed\n\n"
> dired-chmod-program perm-tmp filename)))
> (setq errors (1+ errors))
> - (dired-log "Cannot parse permission ‘%s’ for file ‘%s’\n\n"
> + (dired-log "Cannot parse permission `%s' for file `%s'\n\n"
> perms-new filename)))
> (goto-char (next-single-property-change (1+ (point)) prop-wanted
> nil (point-max))))
> diff --git a/lisp/whitespace.el b/lisp/whitespace.el
> index 3191496..0c20850 100644
> --- a/lisp/whitespace.el
> +++ b/lisp/whitespace.el
> @@ -1867,10 +1867,10 @@ cleaning up these problems."
> (when has-bogus
> (goto-char (point-max))
> (insert (substitute-command-keys
> - " Type ‘\\[whitespace-cleanup]’")
> + " Type `\\[whitespace-cleanup]'")
> " to cleanup the buffer.\n\n"
> (substitute-command-keys
> - " Type ‘\\[whitespace-cleanup-region]’")
> + " Type `\\[whitespace-cleanup-region]'")
> " to cleanup a region.\n\n"))
> (whitespace-display-window (current-buffer)))))
> has-bogus))))
> @@ -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/widget.el b/lisp/widget.el
> index d62f7ff..aadb063 100644
> --- a/lisp/widget.el
> +++ b/lisp/widget.el
> @@ -80,7 +80,7 @@ create identical widgets:
>
> * (widget-create NAME)
>
> -* (apply 'widget-create CLASS ARGS)
> +* (apply \\='widget-create CLASS ARGS)
>
> The third argument DOC is a documentation string for the widget."
> ;;
> diff --git a/lisp/window.el b/lisp/window.el
> index 65b4ef0..6d18905 100644
> --- a/lisp/window.el
> +++ b/lisp/window.el
> @@ -5868,7 +5868,7 @@ one of the regular expressions in `special-display-regexps'.
>
> This variable can be set in your init file, like this:
>
> - (setq special-display-frame-alist '((width . 80) (height . 20)))
> + (setq special-display-frame-alist \\='((width . 80) (height . 20)))
>
> These supersede the values given in `default-frame-alist'."
> :type '(repeat (cons :format "%v"
> diff --git a/lisp/woman.el b/lisp/woman.el
> index de2cbc1..f2e59e5 100644
> --- a/lisp/woman.el
> +++ b/lisp/woman.el
> @@ -786,7 +786,7 @@ without interactive confirmation, if it exists as a topic."
>
> (defvar woman-file-regexp nil
> "Regexp used to select (possibly compressed) man source files, e.g.
> -\"\\.\\([0-9lmnt]\\w*\\)\\(\\.\\(g?z\\|bz2\\|xz\\)\\)?\\'\".
> +\"\\.\\([0-9lmnt]\\w*\\)\\(\\.\\(g?z\\|bz2\\|xz\\)\\)?\\\\='\".
> Built automatically from the customizable user options
> `woman-uncompressed-file-regexp' and `woman-file-compression-regexp'.")
>
> @@ -816,7 +816,7 @@ becoming more common in the GNU world. For example, the man pages
> in the ncurses package include `toe.1m', `form.3x', etc.
>
> Note: an optional compression regexp will be appended, so this regexp
> -MUST NOT end with any kind of string terminator such as $ or \\'."
> +MUST NOT end with any kind of string terminator such as $ or \\\\='."
> :type 'regexp
> :set 'set-woman-file-regexp
> :group 'woman-interface)
> @@ -826,8 +826,8 @@ MUST NOT end with any kind of string terminator such as $ or \\'."
> "Do not change this unless you are sure you know what you are doing!
> Regexp used to match compressed man file extensions for which
> decompressors are available and handled by auto-compression mode,
> -e.g. \"\\\\.\\\\(g?z\\\\|bz2\\\\|xz\\\\)\\\\'\" for `gzip', `bzip2', or `xz'.
> -Should begin with \\. and end with \\' and MUST NOT be optional."
> +e.g. \"\\\\.\\\\(g?z\\\\|bz2\\\\|xz\\\\)\\\\\\='\" for `gzip', `bzip2', or `xz'.
> +Should begin with \\. and end with \\\\=' and MUST NOT be optional."
> ;; Should be compatible with car of
> ;; `jka-compr-file-name-handler-entry', but that is unduly
> ;; complicated, includes an inappropriate extension (.tgz) and is
> @@ -3719,7 +3719,7 @@ expression in parentheses. Leaves point after the value."
> "Find and return start of next control line.
> PAT, if non-nil, specifies an additional component of the control
> line regexp to search for, which is appended to the default
> -regexp, \"\\(\\\\c\\)?\\n[.']\"."
> +regexp, \"\\(\\\\c\\)?\\n[.\\=']\"."
> (let ((pattern (concat "\\(\\\\c\\)?\n[.']" pat))
> to)
> (save-excursion
> @@ -3981,7 +3981,7 @@ Optional argument NUMERIC, if non-nil, means the argument is numeric."
> (goto-char from)))
>
> (defun woman-horizontal-line ()
> - "\\l'Nc' -- Draw a horizontal line of length N using character c, default _."
> + "\\l\\='Nc\\=' -- Draw a horizontal line of length N using character c, default _."
> (delete-char -1)
> (delete-char 1)
> (looking-at "\\(.\\)\\(.*\\)\\1")
> diff --git a/src/dispextern.h b/src/dispextern.h
> index 37ebab0..e5adeab 100644
> --- a/src/dispextern.h
> +++ b/src/dispextern.h
> @@ -3245,6 +3245,7 @@ extern ptrdiff_t compute_display_string_end (ptrdiff_t,
> struct bidi_string_data *);
> extern void produce_stretch_glyph (struct it *);
> extern int merge_glyphless_glyph_face (struct it *);
> +extern void forget_escape_and_glyphless_faces (void);
>
> extern void get_font_ascent_descent (struct font *, int *, int *);
>
> diff --git a/src/doc.c b/src/doc.c
> index 5d0aae7..b6963d2 100644
> --- a/src/doc.c
> +++ b/src/doc.c
> @@ -724,7 +724,7 @@ as the keymap for future \\=\\[COMMAND] substrings.
>
> Each \\=‘ and \\=` is replaced by left quote, and each \\=’ and \\='
> is replaced by right quote. Left and right quote characters are
> -specified by ‘text-quoting-style’.
> +specified by `text-quoting-style'.
>
> \\=\\= quotes the following character and is discarded; thus,
> \\=\\=\\=\\= puts \\=\\= into the output, \\=\\=\\=\\[ puts \\=\\[ into the output, and
> @@ -1024,15 +1024,15 @@ syms_of_doc (void)
>
> DEFVAR_LISP ("text-quoting-style", Vtext_quoting_style,
> doc: /* Style to use for single quotes when generating text.
> -‘curve’ means quote with curved single quotes \\=‘like this\\=’.
> -‘straight’ means quote with straight apostrophes \\='like this\\='.
> -‘grave’ means quote with grave accent and apostrophe \\=`like this\\='.
> -The default value nil acts like ‘curve’ if curved single quotes are
> -displayable, and like ‘grave’ otherwise. */);
> +`curve' means quote with curved single quotes \\=‘like this\\=’.
> +`straight' means quote with straight apostrophes \\='like this\\='.
> +`grave' means quote with grave accent and apostrophe \\=`like this\\='.
> +The default value nil acts like `curve' if curved single quotes are
> +displayable, and like `grave' otherwise. */);
> Vtext_quoting_style = Qnil;
>
> DEFVAR_BOOL ("internal--text-quoting-flag", text_quoting_flag,
> - doc: /* If nil, a nil ‘text-quoting-style’ is treated as ‘grave’. */);
> + doc: /* If nil, a nil `text-quoting-style' is treated as `grave'. */);
> /* Initialized by ‘main’. */
>
> defsubr (&Sdocumentation);
> diff --git a/src/editfns.c b/src/editfns.c
> index e7d5dd8..831edb4 100644
> --- a/src/editfns.c
> +++ b/src/editfns.c
> @@ -3837,11 +3837,11 @@ DEFUN ("format-message", Fformat_message, Sformat_message, 1, MANY, 0,
> The first argument is a format control string.
> The other arguments are substituted into it to make the result, a string.
>
> -This acts like ‘format’, except it also replaces each left single
> +This acts like `format', except it also replaces each left single
> quotation mark (\\=‘) and grave accent (\\=`) by a left quote, and each
> right single quotation mark (\\=’) and apostrophe (\\=') by a right quote.
> The left and right quote replacement characters are specified by
> -‘text-quoting-style’.
> +`text-quoting-style'.
>
> usage: (format-message STRING &rest OBJECTS) */)
> (ptrdiff_t nargs, Lisp_Object *args)
> diff --git a/src/keyboard.c b/src/keyboard.c
> index a8b1e98..ccd3405 100644
> --- a/src/keyboard.c
> +++ b/src/keyboard.c
> @@ -380,6 +380,11 @@ kset_echo_string (struct kboard *kb, Lisp_Object val)
> kb->echo_string_ = val;
> }
> static void
> +kset_echo_prompt (struct kboard *kb, Lisp_Object val)
> +{
> + kb->echo_prompt_ = val;
> +}
> +static void
> kset_kbd_queue (struct kboard *kb, Lisp_Object val)
> {
> kb->kbd_queue_ = val;
> @@ -501,8 +506,9 @@ echo_dash (void)
> return;
>
> /* Do nothing if we just printed a prompt. */
> - if (current_kboard->echo_after_prompt
> - == SCHARS (KVAR (current_kboard, echo_string)))
> + if (STRINGP (KVAR (current_kboard, echo_prompt))
> + && (SCHARS (KVAR (current_kboard, echo_prompt))
> + == SCHARS (KVAR (current_kboard, echo_string))))
> return;
>
> /* Do nothing if we have already put a dash at the end. */
> @@ -534,8 +540,12 @@ echo_update (void)
> if (current_kboard->immediate_echo)
> {
> ptrdiff_t i;
> + Lisp_Object prompt = KVAR (current_kboard, echo_prompt);
> + Lisp_Object prefix = call0 (Qinternal_echo_keystrokes_prefix);
> kset_echo_string (current_kboard,
> - call0 (Qinternal_echo_keystrokes_prefix));
> + NILP (prompt) ? prefix
> + : NILP (prefix) ? prompt
> + : concat2 (prompt, prefix));
>
> for (i = 0; i < this_command_key_count; i++)
> {
> @@ -584,7 +594,7 @@ void
> cancel_echoing (void)
> {
> current_kboard->immediate_echo = false;
> - current_kboard->echo_after_prompt = -1;
> + kset_echo_prompt (current_kboard, Qnil);
> kset_echo_string (current_kboard, Qnil);
> ok_to_echo_at_next_pause = NULL;
> echo_kboard = NULL;
> @@ -693,11 +703,11 @@ force_auto_save_soon (void)
>
> DEFUN ("recursive-edit", Frecursive_edit, Srecursive_edit, 0, 0, "",
> doc: /* Invoke the editor command loop recursively.
> -To get out of the recursive edit, a command can throw to ‘exit’ -- for
> -instance ‘(throw \\='exit nil)’.
> -If you throw a value other than t, ‘recursive-edit’ returns normally
> +To get out of the recursive edit, a command can throw to `exit' -- for
> +instance (throw \\='exit nil).
> +If you throw a value other than t, `recursive-edit' returns normally
> to the function that called it. Throwing a t value causes
> -‘recursive-edit’ to quit, so that control returns to the command loop
> +`recursive-edit' to quit, so that control returns to the command loop
> one level up.
>
> This function is called by the editor initialization to begin editing. */)
> @@ -2942,7 +2952,7 @@ read_char (int commandflag, Lisp_Object map,
> bool saved_immediate_echo = current_kboard->immediate_echo;
> struct kboard *saved_ok_to_echo = ok_to_echo_at_next_pause;
> Lisp_Object saved_echo_string = KVAR (current_kboard, echo_string);
> - ptrdiff_t saved_echo_after_prompt = current_kboard->echo_after_prompt;
> + Lisp_Object saved_echo_prompt = KVAR (current_kboard, echo_prompt);
>
> /* Save the this_command_keys status. */
> key_count = this_command_key_count;
> @@ -2984,15 +2994,8 @@ read_char (int commandflag, Lisp_Object map,
>
> cancel_echoing ();
> ok_to_echo_at_next_pause = saved_ok_to_echo;
> - /* Do not restore the echo area string when the user is
> - introducing a prefix argument. Otherwise we end with
> - repetitions of the partially introduced prefix
> - argument. (bug#19875) */
> - if (NILP (intern ("prefix-arg")))
> - {
> - kset_echo_string (current_kboard, saved_echo_string);
> - }
> - current_kboard->echo_after_prompt = saved_echo_after_prompt;
> + kset_echo_string (current_kboard, saved_echo_string);
> + kset_echo_prompt (current_kboard, saved_echo_prompt);
> if (saved_immediate_echo)
> echo_now ();
>
> @@ -8870,8 +8873,8 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
> /* Install the string PROMPT as the beginning of the string
> of echoing, so that it serves as a prompt for the next
> character. */
> - kset_echo_string (current_kboard, prompt);
> - current_kboard->echo_after_prompt = SCHARS (prompt);
> + kset_echo_prompt (current_kboard, prompt);
> + current_kboard->immediate_echo = false;
> echo_now ();
> }
> else if (cursor_in_echo_area
> @@ -10695,7 +10698,7 @@ init_kboard (KBOARD *kb, Lisp_Object type)
> kb->kbd_queue_has_data = false;
> kb->immediate_echo = false;
> kset_echo_string (kb, Qnil);
> - kb->echo_after_prompt = -1;
> + kset_echo_prompt (kb, Qnil);
> kb->kbd_macro_buffer = 0;
> kb->kbd_macro_bufsize = 0;
> kset_defining_kbd_macro (kb, Qnil);
> @@ -11758,6 +11761,7 @@ mark_kboards (void)
> mark_object (KVAR (kb, Vlocal_function_key_map));
> mark_object (KVAR (kb, Vdefault_minibuffer_frame));
> mark_object (KVAR (kb, echo_string));
> + mark_object (KVAR (kb, echo_prompt));
> }
> {
> union buffered_input_event *event;
> diff --git a/src/keyboard.h b/src/keyboard.h
> index 3e4c475..0402e0a 100644
> --- a/src/keyboard.h
> +++ b/src/keyboard.h
> @@ -175,9 +175,8 @@ struct kboard
> /* True means echo each character as typed. */
> bool_bf immediate_echo : 1;
>
> - /* If we have echoed a prompt string specified by the user,
> - this is its length in characters. Otherwise this is -1. */
> - ptrdiff_t echo_after_prompt;
> + /* If we have a prompt string specified by the user, this is it. */
> + Lisp_Object echo_prompt_;
> };
>
> INLINE void
> diff --git a/src/process.c b/src/process.c
> index 1ab8378..f4613be 100644
> --- a/src/process.c
> +++ b/src/process.c
> @@ -4859,6 +4859,10 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
> data is available in the buffers manually. */
> if (nfds == 0)
> {
> + fd_set tls_available;
> + int set = 0;
> +
> + FD_ZERO (&tls_available);
> if (! wait_proc)
> {
> /* We're not waiting on a specific process, so loop
> @@ -4879,7 +4883,8 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
> {
> nfds++;
> eassert (p->infd == channel);
> - FD_SET (p->infd, &Available);
> + FD_SET (p->infd, &tls_available);
> + set++;
> }
> }
> }
> @@ -4896,9 +4901,12 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
> nfds = 1;
> eassert (0 <= wait_proc->infd);
> /* Set to Available. */
> - FD_SET (wait_proc->infd, &Available);
> + FD_SET (wait_proc->infd, &tls_available);
> + set++;
> }
> }
> + if (set)
> + Available = tls_available;
> }
> #endif
> }
> diff --git a/src/w32.c b/src/w32.c
> index cc55507..bb51496 100644
> --- a/src/w32.c
> +++ b/src/w32.c
> @@ -4534,6 +4534,8 @@ sys_rmdir (const char * path)
> int
> sys_unlink (const char * path)
> {
> + int rmstatus, e;
> +
> path = map_w32_filename (path, NULL);
>
> if (w32_unicode_filenames)
> @@ -4541,9 +4543,18 @@ sys_unlink (const char * path)
> wchar_t path_w[MAX_PATH];
>
> filename_to_utf16 (path, path_w);
> - /* On Unix, unlink works without write permission. */
> + /* On Unix, unlink works without write permission. */
> _wchmod (path_w, 0666);
> - return _wunlink (path_w);
> + rmstatus = _wunlink (path_w);
> + e = errno;
> + /* Symlinks to directories can only be deleted by _rmdir;
> + _unlink returns EACCES. */
> + if (rmstatus != 0
> + && errno == EACCES
> + && (is_symlink (path) & FILE_ATTRIBUTE_DIRECTORY) != 0)
> + rmstatus = _wrmdir (path_w);
> + else
> + errno = e;
> }
> else
> {
> @@ -4551,8 +4562,17 @@ sys_unlink (const char * path)
>
> filename_to_ansi (path, path_a);
> _chmod (path_a, 0666);
> - return _unlink (path_a);
> + rmstatus = _unlink (path_a);
> + e = errno;
> + if (rmstatus != 0
> + && errno == EACCES
> + && (is_symlink (path) & FILE_ATTRIBUTE_DIRECTORY) != 0)
> + rmstatus = _rmdir (path_a);
> + else
> + errno = e;
> }
> +
> + return rmstatus;
> }
>
> static FILETIME utc_base_ft;
> @@ -5626,7 +5646,8 @@ symlink (char const *filename, char const *linkname)
> /* A quick inexpensive test of whether FILENAME identifies a file that
> is a symlink. Returns non-zero if it is, zero otherwise. FILENAME
> must already be in the normalized form returned by
> - map_w32_filename.
> + map_w32_filename. If the symlink is to a directory, the
> + FILE_ATTRIBUTE_DIRECTORY bit will be set in the return value.
>
> Note: for repeated operations on many files, it is best to test
> whether the underlying volume actually supports symlinks, by
> @@ -5684,6 +5705,8 @@ is_symlink (const char *filename)
> attrs_mean_symlink =
> (wfdw.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) != 0
> && (wfdw.dwReserved0 & IO_REPARSE_TAG_SYMLINK) == IO_REPARSE_TAG_SYMLINK;
> + if (attrs_mean_symlink)
> + attrs_mean_symlink |= (wfdw.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
> }
> else if (_mbspbrk (filename_a, "?"))
> {
> @@ -5697,6 +5720,8 @@ is_symlink (const char *filename)
> attrs_mean_symlink =
> (wfda.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) != 0
> && (wfda.dwReserved0 & IO_REPARSE_TAG_SYMLINK) == IO_REPARSE_TAG_SYMLINK;
> + if (attrs_mean_symlink)
> + attrs_mean_symlink |= (wfda.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
> }
> if (fh == INVALID_HANDLE_VALUE)
> return 0;
> diff --git a/src/xdisp.c b/src/xdisp.c
> index 9ff9f6c..82931b8 100644
> --- a/src/xdisp.c
> +++ b/src/xdisp.c
> @@ -6787,6 +6787,18 @@ merge_glyphless_glyph_face (struct it *it)
> return face_id;
> }
>
> +/* Forget the `escape-glyph' and `glyphless-char' faces. This should
> + be called before redisplaying windows, and when the frame's face
> + cache is freed. */
> +void
> +forget_escape_and_glyphless_faces (void)
> +{
> + last_escape_glyph_frame = NULL;
> + last_escape_glyph_face_id = (1 << FACE_ID_BITS);
> + last_glyphless_glyph_frame = NULL;
> + last_glyphless_glyph_face_id = (1 << FACE_ID_BITS);
> +}
> +
> /* Load IT's display element fields with information about the next
> display element from the current position of IT. Value is false if
> end of buffer (or C string) is reached. */
> @@ -10673,6 +10685,11 @@ display_echo_area_1 (ptrdiff_t a1, Lisp_Object a2)
> Lisp_Object window;
> struct text_pos start;
>
> + /* We are about to enter redisplay without going through
> + redisplay_internal, so we need to forget these faces by hand
> + here. */
> + forget_escape_and_glyphless_faces ();
> +
> /* Do this before displaying, so that we have a large enough glyph
> matrix for the display. If we can't get enough space for the
> whole text, display the last N lines. That works by setting w->start. */
> @@ -13326,10 +13343,7 @@ redisplay_internal (void)
> sw = w;
>
> pending = false;
> - last_escape_glyph_frame = NULL;
> - last_escape_glyph_face_id = (1 << FACE_ID_BITS);
> - last_glyphless_glyph_frame = NULL;
> - last_glyphless_glyph_face_id = (1 << FACE_ID_BITS);
> + forget_escape_and_glyphless_faces ();
>
> /* If face_change, init_iterator will free all realized faces, which
> includes the faces referenced from current matrices. So, we
> diff --git a/src/xfaces.c b/src/xfaces.c
> index d89adca..0303249 100644
> --- a/src/xfaces.c
> +++ b/src/xfaces.c
> @@ -4173,6 +4173,8 @@ free_realized_faces (struct face_cache *c)
> c->faces_by_id[i] = NULL;
> }
>
> + /* Forget the escape-glyph and glyphless-char faces. */
> + forget_escape_and_glyphless_faces ();
> c->used = 0;
> size = FACE_CACHE_BUCKETS_SIZE * sizeof *c->buckets;
> memset (c->buckets, 0, size);
> diff --git a/test/automated/Makefile.in b/test/automated/Makefile.in
> index 174b3b6..59a8866 100644
> --- a/test/automated/Makefile.in
> +++ b/test/automated/Makefile.in
> @@ -52,9 +52,15 @@ unexport EMACSDATA EMACSDOC EMACSPATH GREP_OPTIONS
> ## To run tests under a debugger, set this to eg: "gdb --args".
> GDB =
>
> +# The locale to run tests under. Tests should work if this is set to
> +# any supported locale. Use the C locale by default, as it should be
> +# supported everywhere.
> +TEST_LOCALE = C
> +
> # The actual Emacs command run in the targets below.
> # Prevent any setting of EMACSLOADPATH in user environment causing problems.
> -emacs = EMACSLOADPATH= LC_ALL=C EMACS_TEST_DIRECTORY=$(srcdir) $(GDB) "$(EMACS)" $(EMACSOPT)
> +emacs = EMACSLOADPATH= LC_ALL=$(TEST_LOCALE) EMACS_TEST_DIRECTORY=$(srcdir) \
> + $(GDB) "$(EMACS)" $(EMACSOPT)
>
> .PHONY: all check
>
> diff --git a/test/automated/flymake-tests.el b/test/automated/flymake-tests.el
> index 23dbb3d..a77c316 100644
> --- a/test/automated/flymake-tests.el
> +++ b/test/automated/flymake-tests.el
> @@ -34,6 +34,7 @@
> (defun flymake-tests--current-face (file predicate)
> (let ((buffer (find-file-noselect
> (expand-file-name file flymake-tests-data-directory)))
> + (process-environment (cons "LC_ALL=C" process-environment))
> (i 0))
> (unwind-protect
> (with-current-buffer buffer
> diff --git a/test/automated/map-tests.el b/test/automated/map-tests.el
> index 1f3a07e..8693415 100644
> --- a/test/automated/map-tests.el
> +++ b/test/automated/map-tests.el
> @@ -252,31 +252,29 @@ Evaluate BODY for each created map.
> (should (not (map-empty-p "hello")))
> (should (map-empty-p "")))
>
> -(ert-deftest test-map-contains-key-p ()
> - (should (map-contains-key-p '((a . 1) (b . 2)) 'a))
> - (should (not (map-contains-key-p '((a . 1) (b . 2)) 'c)))
> - (should (map-contains-key-p '(("a" . 1)) "a"))
> - (should (not (map-contains-key-p '(("a" . 1)) "a" #'eq)))
> - (should (map-contains-key-p [a b c] 2))
> - (should (not (map-contains-key-p [a b c] 3))))
> -
> -(ert-deftest test-map-some-p ()
> +(ert-deftest test-map-contains-key ()
> + (should (map-contains-key '((a . 1) (b . 2)) 'a))
> + (should (not (map-contains-key '((a . 1) (b . 2)) 'c)))
> + (should (map-contains-key '(("a" . 1)) "a"))
> + (should (not (map-contains-key '(("a" . 1)) "a" #'eq)))
> + (should (map-contains-key [a b c] 2))
> + (should (not (map-contains-key [a b c] 3))))
> +
> +(ert-deftest test-map-some ()
> (with-maps-do map
> - (should (equal (map-some-p (lambda (k _v)
> - (eq 1 k))
> - map)
> - (cons 1 4)))
> - (should (not (map-some-p (lambda (k _v)
> - (eq 'd k))
> - map))))
> + (should (map-some (lambda (k _v)
> + (eq 1 k))
> + map))
> + (should-not (map-some (lambda (k _v)
> + (eq 'd k))
> + map)))
> (let ((vec [a b c]))
> - (should (equal (map-some-p (lambda (k _v)
> - (> k 1))
> - vec)
> - (cons 2 'c)))
> - (should (not (map-some-p (lambda (k _v)
> - (> k 3))
> - vec)))))
> + (should (map-some (lambda (k _v)
> + (> k 1))
> + vec))
> + (should-not (map-some (lambda (k _v)
> + (> k 3))
> + vec))))
>
> (ert-deftest test-map-every-p ()
> (with-maps-do map
> diff --git a/test/automated/python-tests.el b/test/automated/python-tests.el
> index 219f99e..d9b4c3e 100644
> --- a/test/automated/python-tests.el
> +++ b/test/automated/python-tests.el
> @@ -2920,7 +2920,8 @@ and `python-shell-interpreter-args' in the new shell buffer."
> :type 'user-error)))
> (should
> (string= (cadr error-data)
> - "Invalid regexp \\( in `python-shell-prompt-input-regexps'"))))
> + (format-message
> + "Invalid regexp \\( in `python-shell-prompt-input-regexps'")))))
>
> (ert-deftest python-shell-prompt-validate-regexps-2 ()
> "Check `python-shell-prompt-output-regexps' are validated."
> @@ -2929,7 +2930,8 @@ and `python-shell-interpreter-args' in the new shell buffer."
> :type 'user-error)))
> (should
> (string= (cadr error-data)
> - "Invalid regexp \\( in `python-shell-prompt-output-regexps'"))))
> + (format-message
> + "Invalid regexp \\( in `python-shell-prompt-output-regexps'")))))
>
> (ert-deftest python-shell-prompt-validate-regexps-3 ()
> "Check `python-shell-prompt-regexp' is validated."
> @@ -2938,7 +2940,8 @@ and `python-shell-interpreter-args' in the new shell buffer."
> :type 'user-error)))
> (should
> (string= (cadr error-data)
> - "Invalid regexp \\( in `python-shell-prompt-regexp'"))))
> + (format-message
> + "Invalid regexp \\( in `python-shell-prompt-regexp'")))))
>
> (ert-deftest python-shell-prompt-validate-regexps-4 ()
> "Check `python-shell-prompt-block-regexp' is validated."
> @@ -2947,7 +2950,8 @@ and `python-shell-interpreter-args' in the new shell buffer."
> :type 'user-error)))
> (should
> (string= (cadr error-data)
> - "Invalid regexp \\( in `python-shell-prompt-block-regexp'"))))
> + (format-message
> + "Invalid regexp \\( in `python-shell-prompt-block-regexp'")))))
>
> (ert-deftest python-shell-prompt-validate-regexps-5 ()
> "Check `python-shell-prompt-pdb-regexp' is validated."
> @@ -2956,7 +2960,8 @@ and `python-shell-interpreter-args' in the new shell buffer."
> :type 'user-error)))
> (should
> (string= (cadr error-data)
> - "Invalid regexp \\( in `python-shell-prompt-pdb-regexp'"))))
> + (format-message
> + "Invalid regexp \\( in `python-shell-prompt-pdb-regexp'")))))
>
> (ert-deftest python-shell-prompt-validate-regexps-6 ()
> "Check `python-shell-prompt-output-regexp' is validated."
> @@ -2965,7 +2970,8 @@ and `python-shell-interpreter-args' in the new shell buffer."
> :type 'user-error)))
> (should
> (string= (cadr error-data)
> - "Invalid regexp \\( in `python-shell-prompt-output-regexp'"))))
> + (format-message
> + "Invalid regexp \\( in `python-shell-prompt-output-regexp'")))))
>
> (ert-deftest python-shell-prompt-validate-regexps-7 ()
> "Check default regexps are valid."
> @@ -2982,7 +2988,8 @@ and `python-shell-interpreter-args' in the new shell buffer."
> :type 'user-error)))
> (should
> (string= (cadr error-data)
> - "Invalid regexp \\( in `python-shell-prompt-output-regexp'"))))
> + (format-message
> + "Invalid regexp \\( in `python-shell-prompt-output-regexp'")))))
>
> (ert-deftest python-shell-prompt-set-calculated-regexps-2 ()
> "Check `python-shell-prompt-input-regexps' are set."
> diff --git a/test/automated/seq-tests.el b/test/automated/seq-tests.el
> index 482daee..07a183d 100644
> --- a/test/automated/seq-tests.el
> +++ b/test/automated/seq-tests.el
> @@ -129,21 +129,22 @@ Evaluate BODY for each created sequence.
> (should (eq (seq-reduce #'+ seq 0) 0))
> (should (eq (seq-reduce #'+ seq 7) 7))))
>
> -(ert-deftest test-seq-some-p ()
> +(ert-deftest test-seq-some ()
> (with-test-sequences (seq '(4 3 2 1))
> - (should (= (seq-some-p #'test-sequences-evenp seq) 4))
> - (should (= (seq-some-p #'test-sequences-oddp seq) 3))
> - (should-not (seq-some-p (lambda (elt) (> elt 10)) seq)))
> + (should (seq-some #'test-sequences-evenp seq))
> + (should (seq-some #'test-sequences-oddp seq))
> + (should-not (seq-some (lambda (elt) (> elt 10)) seq)))
> (with-test-sequences (seq '())
> - (should-not (seq-some-p #'test-sequences-oddp seq))))
> + (should-not (seq-some #'test-sequences-oddp seq)))
> + (should (seq-some #'null '(1 nil 2))))
>
> -(ert-deftest test-seq-contains-p ()
> +(ert-deftest test-seq-contains ()
> (with-test-sequences (seq '(3 4 5 6))
> - (should (seq-contains-p seq 3))
> - (should-not (seq-contains-p seq 7)))
> + (should (seq-contains seq 3))
> + (should-not (seq-contains seq 7)))
> (with-test-sequences (seq '())
> - (should-not (seq-contains-p seq 3))
> - (should-not (seq-contains-p seq nil))))
> + (should-not (seq-contains seq 3))
> + (should-not (seq-contains seq nil))))
>
> (ert-deftest test-seq-every-p ()
> (with-test-sequences (seq '(43 54 22 1))
> diff --git a/test/automated/textprop-tests.el b/test/automated/textprop-tests.el
> index f6604fb..0baa911 100644
> --- a/test/automated/textprop-tests.el
> +++ b/test/automated/textprop-tests.el
> @@ -25,7 +25,7 @@
> (require 'ert)
>
> (ert-deftest textprop-tests-format ()
> - "Test ‘format’ with text properties."
> + "Test `format' with text properties."
> ;; See Bug#21351.
> (should (equal-including-properties
> (format #("mouse-1, RET: %s -- w: copy %s"
> diff --git a/test/automated/tildify-tests.el b/test/automated/tildify-tests.el
> index b53f58c..788abe7 100644
> --- a/test/automated/tildify-tests.el
> +++ b/test/automated/tildify-tests.el
> @@ -55,6 +55,7 @@ If IS-XML is non-nil, <pre> tag is not treated specially."
> INPUT is the initial content of the buffer and EXPECTED is expected result
> after `tildify-buffer' is run."
> (with-temp-buffer
> + (setq-local buffer-file-coding-system 'utf-8)
> (dolist (mode modes)
> (erase-buffer)
> (funcall mode)
> @@ -187,6 +188,7 @@ The function must terminate as soon as callback returns nil."
>
> (defun tildify-space-test--test (modes nbsp env-open &optional set-space-string)
> (with-temp-buffer
> + (setq-local buffer-file-coding-system 'utf-8)
> (dolist (mode modes)
> (funcall mode)
> (when set-space-string
> @@ -226,6 +228,7 @@ The function must terminate as soon as callback returns nil."
> (defun tildify-space-undo-test--test
> (modes nbsp env-open &optional set-space-string)
> (with-temp-buffer
> + (setq-local buffer-file-coding-system 'utf-8)
> (dolist (mode modes)
> (funcall mode)
> (when set-space-string
>
> _______________________________________________
> Emacs-diffs mailing list
> Emacs-diffs@gnu.org
> https://lists.gnu.org/mailman/listinfo/emacs-diffs
_______________________________________________
Emacs-diffs mailing list
Emacs-diffs@gnu.org
https://lists.gnu.org/mailman/listinfo/emacs-diffs
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
2015-10-06 9:18 ` master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs Artur Malabarba
@ 2015-10-06 14:09 ` Kaushal Modi
2015-10-06 14:47 ` [Emacs-diffs] " Alan Mackenzie
2015-10-06 14:47 ` Óscar Fuentes
2015-10-06 16:20 ` [Emacs-diffs] " Stefan Monnier
1 sibling, 2 replies; 11+ messages in thread
From: Kaushal Modi @ 2015-10-06 14:09 UTC (permalink / raw)
To: Artur Malabarba; +Cc: K. Handa, emacs-diffs, emacs-devel
[-- Attachment #1.1: Type: text/plain, Size: 730198 bytes --]
I'd like to know that too. I thought I was the only one who didn't
understand how these huge commits were created.
--
Kaushal Modi
On Tue, Oct 6, 2015 at 5:18 AM, Artur Malabarba <bruce.connor.am@gmail.com>
wrote:
> Quick question. Could someone explain to me what the subject of this
> email means?
> > master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:
> /srv/git/emacs
>
> Is that what you get when you merge the remote's master onto your local
> master?
>
> 2015-10-05 15:00 GMT+01:00 Kenichi Handa <handa@gnu.org>:
> > branch: master
> > commit 94ed5167557112fb00eeca05e62589db744206de
> > Merge: 33f2e00 10e7f7d
> > Author: K. Handa <handa@gnu.org>
> > Commit: K. Handa <handa@gnu.org>
> >
> > Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
> > ---
> > ChangeLog.2 | 634
> +++++++++++++++++++++++++++++-
> > admin/unidata/unidata-gen.el | 2 +-
> > doc/emacs/building.texi | 2 +-
> > doc/emacs/custom.texi | 2 +-
> > doc/emacs/emacs.texi | 20 +-
> > doc/emacs/files.texi | 2 +-
> > doc/emacs/help.texi | 2 +-
> > doc/emacs/package.texi | 2 +-
> > doc/emacs/picture-xtra.texi | 2 +-
> > doc/emacs/programs.texi | 1 -
> > doc/emacs/search.texi | 4 +-
> > doc/emacs/text.texi | 4 +-
> > doc/emacs/trouble.texi | 8 +-
> > doc/lispintro/emacs-lisp-intro.texi | 38 +-
> > doc/lispref/anti.texi | 4 +-
> > doc/lispref/buffers.texi | 2 +-
> > doc/lispref/control.texi | 2 +-
> > doc/lispref/display.texi | 8 +-
> > doc/lispref/elisp.texi | 14 +-
> > doc/lispref/eval.texi | 2 +-
> > doc/lispref/files.texi | 4 +-
> > doc/lispref/frames.texi | 2 +-
> > doc/lispref/functions.texi | 4 +-
> > doc/lispref/help.texi | 8 +-
> > doc/lispref/loading.texi | 2 +-
> > doc/lispref/markers.texi | 4 +-
> > doc/lispref/modes.texi | 14 +-
> > doc/lispref/os.texi | 29 +--
> > doc/lispref/package.texi | 6 +-
> > doc/lispref/processes.texi | 4 +-
> > doc/lispref/sequences.texi | 25 +-
> > doc/lispref/strings.texi | 30 +-
> > doc/lispref/text.texi | 4 +-
> > doc/lispref/tips.texi | 8 +-
> > doc/lispref/variables.texi | 2 +-
> > doc/misc/ede.texi | 6 +-
> > doc/misc/efaq.texi | 2 +-
> > doc/misc/eieio.texi | 2 +-
> > doc/misc/ert.texi | 2 +-
> > doc/misc/gnus-faq.texi | 24 +-
> > doc/misc/gnus.texi | 11 +-
> > doc/misc/rcirc.texi | 2 +-
> > doc/misc/tramp.texi | 18 +
> > doc/misc/viper.texi | 2 +-
> > etc/NEWS | 32 +-
> > lisp/abbrev.el | 2 +-
> > lisp/align.el | 2 +-
> > lisp/allout-widgets.el | 10 +-
> > lisp/allout.el | 24 +-
> > lisp/apropos.el | 2 +-
> > lisp/bookmark.el | 4 +-
> > lisp/bs.el | 2 +-
> > lisp/button.el | 6 +-
> > lisp/calc/calc-aent.el | 10 +-
> > lisp/calc/calc-embed.el | 2 +-
> > lisp/calc/calc-ext.el | 2 +-
> > lisp/calc/calc-graph.el | 2 +-
> > lisp/calc/calc-help.el | 16 +-
> > lisp/calc/calc-lang.el | 42 +-
> > lisp/calc/calc-misc.el | 4 +-
> > lisp/calc/calc-mode.el | 12 +-
> > lisp/calc/calc-prog.el | 14 +-
> > lisp/calc/calc-store.el | 2 +-
> > lisp/calc/calc-units.el | 6 +-
> > lisp/calc/calc-vec.el | 4 +-
> > lisp/calc/calc-yank.el | 4 +-
> > lisp/calc/calc.el | 12 +-
> > lisp/calculator.el | 2 +-
> > lisp/calendar/appt.el | 2 +-
> > lisp/calendar/cal-bahai.el | 74 ++--
> > lisp/calendar/cal-hebrew.el | 2 +-
> > lisp/calendar/cal-menu.el | 4 +-
> > lisp/calendar/cal-tex.el | 2 +-
> > lisp/calendar/calendar.el | 22 +-
> > lisp/calendar/diary-lib.el | 18 +-
> > lisp/calendar/holidays.el | 18 +-
> > lisp/calendar/icalendar.el | 14 +-
> > lisp/calendar/time-date.el | 4 +-
> > lisp/calendar/timeclock.el | 10 +-
> > lisp/calendar/todo-mode.el | 22 +-
> > lisp/cedet/cedet-global.el | 2 +-
> > lisp/cedet/ede.el | 2 +-
> > lisp/cedet/ede/auto.el | 6 +-
> > lisp/cedet/ede/pmake.el | 2 +-
> > lisp/cedet/inversion.el | 4 +-
> > lisp/cedet/mode-local.el | 12 +-
> > lisp/cedet/semantic/analyze.el | 6 +-
> > lisp/cedet/semantic/analyze/complete.el | 6 +-
> > lisp/cedet/semantic/bovine/gcc.el | 6 +-
> > lisp/cedet/semantic/complete.el | 4 +-
> > lisp/cedet/semantic/db-find.el | 2 +-
> > lisp/cedet/semantic/decorate/include.el | 2 +-
> > lisp/cedet/semantic/fw.el | 8 +-
> > lisp/cedet/semantic/java.el | 2 +-
> > lisp/cedet/semantic/tag-ls.el | 10 +-
> > lisp/cedet/semantic/wisent/javascript.el | 12 +-
> > lisp/cedet/srecode/insert.el | 6 +-
> > lisp/cedet/srecode/srt-mode.el | 4 +-
> > lisp/comint.el | 2 +-
> > lisp/cus-edit.el | 2 +-
> > lisp/cus-start.el | 2 +-
> > lisp/cus-theme.el | 4 +-
> > lisp/custom.el | 12 +-
> > lisp/descr-text.el | 32 +-
> > lisp/dired-x.el | 8 +-
> > lisp/dired.el | 6 +-
> > lisp/electric.el | 12 +-
> > lisp/emacs-lisp/advice.el | 42 +-
> > lisp/emacs-lisp/byte-opt.el | 24 +-
> > lisp/emacs-lisp/byte-run.el | 4 +-
> > lisp/emacs-lisp/bytecomp.el | 88 +++--
> > lisp/emacs-lisp/cconv.el | 6 +-
> > lisp/emacs-lisp/chart.el | 2 +-
> > lisp/emacs-lisp/check-declare.el | 10 +-
> > lisp/emacs-lisp/checkdoc.el | 29 +-
> > lisp/emacs-lisp/cl-extra.el | 22 +-
> > lisp/emacs-lisp/cl-generic.el | 10 +-
> > lisp/emacs-lisp/cl-macs.el | 36 +-
> > lisp/emacs-lisp/cl.el | 8 +-
> > lisp/emacs-lisp/copyright.el | 4 +-
> > lisp/emacs-lisp/disass.el | 63 ++--
> > lisp/emacs-lisp/edebug.el | 2 +-
> > lisp/emacs-lisp/eieio-base.el | 2 +-
> > lisp/emacs-lisp/eieio-core.el | 19 +-
> > lisp/emacs-lisp/eieio-opt.el | 4 +-
> > lisp/emacs-lisp/eieio-speedbar.el | 4 +-
> > lisp/emacs-lisp/eieio.el | 17 +-
> > lisp/emacs-lisp/elint.el | 16 +-
> > lisp/emacs-lisp/ert.el | 23 +-
> > lisp/emacs-lisp/find-func.el | 6 +-
> > lisp/emacs-lisp/generator.el | 2 +-
> > lisp/emacs-lisp/gv.el | 2 +-
> > lisp/emacs-lisp/lisp-mnt.el | 14 +-
> > lisp/emacs-lisp/macroexp.el | 4 +-
> > lisp/emacs-lisp/map-ynp.el | 6 +-
> > lisp/emacs-lisp/map.el | 13 +-
> > lisp/emacs-lisp/nadvice.el | 6 +-
> > lisp/emacs-lisp/package-x.el | 2 +-
> > lisp/emacs-lisp/package.el | 186 +++++----
> > lisp/emacs-lisp/pcase.el | 10 +-
> > lisp/emacs-lisp/re-builder.el | 2 +-
> > lisp/emacs-lisp/regexp-opt.el | 2 +-
> > lisp/emacs-lisp/ring.el | 4 +-
> > lisp/emacs-lisp/rx.el | 38 +-
> > lisp/emacs-lisp/seq.el | 32 +-
> > lisp/emacs-lisp/smie.el | 6 +-
> > lisp/emacs-lisp/subr-x.el | 2 +-
> > lisp/emacs-lisp/tabulated-list.el | 2 +-
> > lisp/emacs-lisp/testcover.el | 2 +-
> > lisp/emacs-lisp/timer.el | 2 +-
> > lisp/emulation/viper-cmd.el | 10 +-
> > lisp/emulation/viper-init.el | 2 +-
> > lisp/emulation/viper-keym.el | 2 +-
> > lisp/emulation/viper-macs.el | 8 +-
> > lisp/env.el | 4 +-
> > lisp/erc/erc-backend.el | 14 +-
> > lisp/erc/erc-button.el | 2 +-
> > lisp/erc/erc-dcc.el | 2 +-
> > lisp/erc/erc.el | 18 +-
> > lisp/eshell/em-dirs.el | 4 +-
> > lisp/eshell/em-glob.el | 6 +-
> > lisp/eshell/em-pred.el | 22 +-
> > lisp/eshell/em-script.el | 4 +-
> > lisp/eshell/esh-opt.el | 2 +-
> > lisp/eshell/esh-util.el | 2 +-
> > lisp/eshell/esh-var.el | 2 +-
> > lisp/facemenu.el | 10 +-
> > lisp/faces.el | 32 +-
> > lisp/ffap.el | 6 +-
> > lisp/filenotify.el | 114 +++---
> > lisp/files-x.el | 2 +-
> > lisp/files.el | 38 +-
> > lisp/filesets.el | 34 +-
> > lisp/find-cmd.el | 4 +-
> > lisp/finder.el | 2 +-
> > lisp/font-lock.el | 9 +-
> > lisp/format.el | 6 +-
> > lisp/frame.el | 4 +-
> > lisp/fringe.el | 2 +-
> > lisp/gnus/gmm-utils.el | 2 +-
> > lisp/gnus/gnus-art.el | 22 +-
> > lisp/gnus/gnus-registry.el | 6 +-
> > lisp/gnus/gnus-start.el | 3 +-
> > lisp/gnus/gnus-sum.el | 2 +-
> > lisp/gnus/gnus-uu.el | 2 +-
> > lisp/gnus/gnus.el | 4 +-
> > lisp/gnus/mail-source.el | 11 +-
> > lisp/gnus/message.el | 2 +-
> > lisp/gnus/nnimap.el | 6 +-
> > lisp/gnus/nnir.el | 20 +-
> > lisp/gnus/nnmail.el | 4 +-
> > lisp/gnus/nnmairix.el | 4 +-
> > lisp/gnus/nntp.el | 2 +-
> > lisp/help-fns.el | 72 ++--
> > lisp/help.el | 10 +-
> > lisp/hi-lock.el | 2 +-
> > lisp/htmlfontify.el | 10 +-
> > lisp/ibuffer.el | 2 +-
> > lisp/ido.el | 4 +-
> > lisp/image.el | 4 +-
> > lisp/info.el | 6 +-
> > lisp/international/ccl.el | 3 +-
> > lisp/international/fontset.el | 2 +-
> > lisp/international/mule-cmds.el | 30 +-
> > lisp/international/mule-conf.el | 8 +-
> > lisp/international/mule-diag.el | 14 +-
> > lisp/international/ogonek.el | 26 +-
> > lisp/json.el | 2 +-
> > lisp/kermit.el | 2 +-
> > lisp/leim/quail/cyrillic.el | 6 +-
> > lisp/leim/quail/hebrew.el | 16 +-
> > lisp/leim/quail/latin-ltx.el | 8 +-
> > lisp/leim/quail/thai.el | 6 +-
> > lisp/leim/quail/tibetan.el | 12 +-
> > lisp/ls-lisp.el | 2 +-
> > lisp/mail/feedmail.el | 16 +-
> > lisp/mail/mailalias.el | 6 +-
> > lisp/mail/rfc2368.el | 8 +-
> > lisp/mail/sendmail.el | 28 +-
> > lisp/man.el | 2 +-
> > lisp/mh-e/mh-comp.el | 2 +-
> > lisp/mh-e/mh-compat.el | 2 +-
> > lisp/mh-e/mh-e.el | 6 +-
> > lisp/mh-e/mh-seq.el | 4 +-
> > lisp/mh-e/mh-utils.el | 10 +-
> > lisp/mouse-copy.el | 2 +-
> > lisp/mouse-drag.el | 4 +-
> > lisp/mouse.el | 2 +-
> > lisp/mpc.el | 12 +-
> > lisp/msb.el | 2 +-
> > lisp/net/ange-ftp.el | 4 +-
> > lisp/net/browse-url.el | 2 +-
> > lisp/net/imap.el | 4 +-
> > lisp/net/mairix.el | 4 +-
> > lisp/net/newst-backend.el | 4 +-
> > lisp/net/newst-treeview.el | 4 +-
> > lisp/net/ntlm.el | 159 ++++++--
> > lisp/net/rcirc.el | 2 +-
> > lisp/net/rlogin.el | 2 +-
> > lisp/net/soap-client.el | 2 +-
> > lisp/net/tls.el | 2 +-
> > lisp/net/tramp.el | 6 +-
> > lisp/obsolete/fast-lock.el | 4 +-
> > lisp/obsolete/iswitchb.el | 2 +-
> > lisp/obsolete/landmark.el | 2 +-
> > lisp/obsolete/lazy-lock.el | 2 +-
> > lisp/obsolete/otodo-mode.el | 2 +-
> > lisp/obsolete/pgg-gpg.el | 2 +-
> > lisp/obsolete/pgg-pgp.el | 2 +-
> > lisp/obsolete/pgg-pgp5.el | 2 +-
> > lisp/obsolete/sym-comp.el | 6 +-
> > lisp/obsolete/tpu-edt.el | 4 +-
> > lisp/obsolete/vi.el | 2 +-
> > lisp/org/ob-core.el | 6 +-
> > lisp/org/ob-fortran.el | 2 +-
> > lisp/org/ob-python.el | 2 +-
> > lisp/org/ob-ref.el | 2 +-
> > lisp/org/ob-scheme.el | 2 +-
> > lisp/org/org-agenda.el | 18 +-
> > lisp/org/org-bibtex.el | 8 +-
> > lisp/org/org-capture.el | 4 +-
> > lisp/org/org-clock.el | 4 +-
> > lisp/org/org-ctags.el | 2 +-
> > lisp/org/org-feed.el | 2 +-
> > lisp/org/org-habit.el | 2 +-
> > lisp/org/org-irc.el | 2 +-
> > lisp/org/org-mouse.el | 8 +-
> > lisp/org/org-plot.el | 2 +-
> > lisp/org/org-protocol.el | 18 +-
> > lisp/org/org-src.el | 6 +-
> > lisp/org/org-table.el | 6 +-
> > lisp/org/org.el | 20 +-
> > lisp/org/ox.el | 12 +-
> > lisp/pcmpl-cvs.el | 4 +-
> > lisp/play/bubbles.el | 10 +-
> > lisp/play/gomoku.el | 2 +-
> > lisp/proced.el | 2 +-
> > lisp/progmodes/ada-mode.el | 28 +-
> > lisp/progmodes/ada-prj.el | 6 +-
> > lisp/progmodes/ada-xref.el | 2 +-
> > lisp/progmodes/cc-engine.el | 18 +-
> > lisp/progmodes/cc-langs.el | 12 +-
> > lisp/progmodes/cc-vars.el | 2 +-
> > lisp/progmodes/cperl-mode.el | 2 +-
> > lisp/progmodes/ebrowse.el | 2 +-
> > lisp/progmodes/elisp-mode.el | 2 +-
> > lisp/progmodes/etags.el | 4 +-
> > lisp/progmodes/f90.el | 2 +-
> > lisp/progmodes/flymake.el | 6 +-
> > lisp/progmodes/fortran.el | 8 +-
> > lisp/progmodes/gdb-mi.el | 18 +-
> > lisp/progmodes/idlw-shell.el | 22 +-
> > lisp/progmodes/idlwave.el | 22 +-
> > lisp/progmodes/make-mode.el | 2 +-
> > lisp/progmodes/prolog.el | 12 +-
> > lisp/progmodes/python.el | 6 +-
> > lisp/progmodes/sql.el | 2 +-
> > lisp/progmodes/verilog-mode.el | 22 +-
> > lisp/progmodes/vhdl-mode.el | 20 +-
> > lisp/progmodes/xref.el | 4 +-
> > lisp/recentf.el | 2 +-
> > lisp/replace.el | 8 +-
> > lisp/scroll-bar.el | 2 +-
> > lisp/server.el | 2 +-
> > lisp/simple.el | 36 +-
> > lisp/speedbar.el | 8 +-
> > lisp/startup.el | 58 ++--
> > lisp/subr.el | 14 +-
> > lisp/term/common-win.el | 6 +-
> > lisp/term/x-win.el | 4 +-
> > lisp/textmodes/ispell.el | 4 +-
> > lisp/textmodes/reftex-ref.el | 2 +-
> > lisp/textmodes/reftex-toc.el | 2 +-
> > lisp/textmodes/reftex-vars.el | 6 +-
> > lisp/textmodes/reftex.el | 4 +-
> > lisp/textmodes/rst.el | 6 +-
> > lisp/textmodes/sgml-mode.el | 2 +-
> > lisp/textmodes/table.el | 24 +-
> > lisp/textmodes/tex-mode.el | 2 +
> > lisp/textmodes/texnfo-upd.el | 2 +-
> > lisp/textmodes/tildify.el | 2 +-
> > lisp/textmodes/two-column.el | 2 +-
> > lisp/thingatpt.el | 4 +-
> > lisp/thumbs.el | 2 +-
> > lisp/tree-widget.el | 6 +-
> > lisp/tutorial.el | 10 +-
> > lisp/type-break.el | 2 +-
> > lisp/url/url-util.el | 2 +-
> > lisp/url/url-vars.el | 6 +-
> > lisp/vc/ediff-mult.el | 5 +-
> > lisp/vc/ediff-ptch.el | 2 +-
> > lisp/vc/vc-git.el | 4 +-
> > lisp/vc/vc-hooks.el | 28 +-
> > lisp/wdired.el | 8 +-
> > lisp/whitespace.el | 8 +-
> > lisp/widget.el | 2 +-
> > lisp/window.el | 2 +-
> > lisp/woman.el | 12 +-
> > src/dispextern.h | 1 +
> > src/doc.c | 14 +-
> > src/editfns.c | 4 +-
> > src/keyboard.c | 46 ++-
> > src/keyboard.h | 5 +-
> > src/process.c | 12 +-
> > src/w32.c | 33 ++-
> > src/xdisp.c | 22 +-
> > src/xfaces.c | 2 +
> > test/automated/Makefile.in | 8 +-
> > test/automated/flymake-tests.el | 1 +
> > test/automated/map-tests.el | 44 +--
> > test/automated/python-tests.el | 21 +-
> > test/automated/seq-tests.el | 21 +-
> > test/automated/textprop-tests.el | 2 +-
> > test/automated/tildify-tests.el | 3 +
> > 354 files changed, 2575 insertions(+), 1704 deletions(-)
> >
> > diff --git a/ChangeLog.2 b/ChangeLog.2
> > index 856cb58..c4912f7 100644
> > --- a/ChangeLog.2
> > +++ b/ChangeLog.2
> > @@ -1,3 +1,635 @@
> > +2015-09-05 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + Spelling fix (Bug#21420)
> > +
> > +2015-09-05 Nicolas Petton <nicolas@petton.fr>
> > +
> > + Improve the semantic of map-some
> > + Update map-some to return the returned by the predicate, similar
> to
> > + seq-some.
> > + * lisp/emacs-lisp/map.el (map-some): Update the function to
> return the
> > + return value of the predicate.
> > + * test/automated/map-tests.el (test-map-some): Update the test
> to check
> > + for non-nil values only.
> > +
> > + Rename map-contains-key-p and map-some-p
> > + Remove the "-p" suffix from both function names.
> > + * lisp/emacs-lisp/map.el (map-contains-key, map-some): Rename
> the functions.
> > + * test/automated/map-tests.el (test-map-contains-key,
> test-map-some):
> > + Update both test functions.
> > +
> > + Improve the semantic of seq-some
> > + Update seq-some to return non-nil if the predicate returns
> non-nil for
> > + any element of the seq, in which case the returned value is the
> one
> > + returned by the predicate.
> > + * lisp/emacs-lisp/seq.el (seq-some): Update the function and its
> > + docstring.
> > + * test/automated/seq-tests.el (test-seq-some): Add a regression
> test.
> > + * doc/lispref/sequences.texi (Sequence Functions): Update the
> > + documentation for seq-some.
> > +
> > + Rename seq-some-p to seq-some and seq-contains-p to seq-contains
> > + * lisp/emacs-lisp/seq.el (seq-some, seq-contains): Rename the
> functions
> > + without the "-p" prefix.
> > + * test/automated/seq-tests.el (test-seq-some,
> test-seq-contains): Update
> > + the tests accordingly.
> > + * doc/lispref/sequences.texi (Sequence Functions): Update the
> > + documentation for seq.el.
> > +
> > +2015-09-05 Paul Eggert <eggert@Penguin.CS.UCLA.EDU>
> > +
> > + text-quoting-style for usage of fn names with ‘’
> > + * lisp/help.el (help--docstring-quote): Don’t assume
> > + text-quoting-style is ‘curve’ when generating usage strings for
> > + functions whose names contain curved quotes.
> > +
> > +2015-09-05 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + Fix fix for describe-function keybinding confusion
> > + This fixes a bug introduced by the previous patch.
> > + * lisp/help-fns.el (help-fns--signature):
> > + Last arg of help-fns--signature is now a buffer, or nil if a
> > + raw signature is wanted. All callers changed.
> > + (describe-function-1): Use this to do the right thing with
> signatures.
> > +
> > +2015-09-05 Johan Bockgård <bojohan@gnu.org>
> > +
> > + * doc/lispref/frames.texi (Mouse Tracking): Fix typo.
> > +
> > + Use PAT rather than UPAT in pcase macros
> > + * lisp/emacs-lisp/cl-macs.el (cl-struct) <pcase-defmacro>:
> > + * lisp/emacs-lisp/eieio.el (eieio) <pcase-defmacro>: Use PAT
> rather
> > + than UPAT.
> > +
> > +2015-09-05 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + Fix describe-function keybinding confusion
> > + * lisp/help-fns.el (describe-function-1): Compute signature
> > + in the original buffer, not in standard-output, so that
> > + substitute-command-keys uses the proper keybindings.
> > + This fixes Bug#21412, introduced in commit
> > + 2015-06-11T10:23:46-0700!eggert@cs.ucla.edu.
> > +
> > +2015-09-05 Xue Fuqiao <xfq.free@gmail.com>
> > +
> > + * doc/emacs/programs.texi (Program Modes): Remove an index entry.
> > +
> > +2015-09-05 Robert Pluim <rpluim@gmail.com> (tiny change)
> > +
> > + Avoid read error messages from 'inotify'
> > + * src/process.c (wait_reading_process_output): Add a
> > + 'tls_available' set and manipulate it instead of 'Available' when
> > + checking TLS inputs. Assign the value to 'Available' only if we
> > + find any TLS data waiting to be read. This avoids error messages
> > + from 'inotify' that tries to read data it shouldn't. (Bug#21337)
> > +
> > +2015-09-05 Eli Zaretskii <eliz@gnu.org>
> > +
> > + Avoid errors in thing-at-point with 2nd argument non-nil
> > + * lisp/thingatpt.el (thing-at-point): Only call 'length' on
> > + sequences. (Bug#21391)
> > +
> > +2015-09-05 Philip <pipcet@gmail.com> (tiny change)
> > +
> > + Fix segfaults due to using a stale face ID
> > + * src/xdisp.c (forget_escape_and_glyphless_faces): New function.
> > + (display_echo_area_1, redisplay_internal): Call it to avoid
> > + reusing stale face IDs for 'escape-glyph' and 'glyphless-char'
> > + faces, which could case a segfault if the frame's face cache was
> > + freed since the last redisplay. (Bug#21394)
> > + * src/xfaces.c (free_realized_faces): Call
> forget_escape_and_glyphless_faces.
> > + * src/dispextern.h (forget_escape_and_glyphless_faces): Add
> prototype.
> > +
> > +2015-09-04 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + Fix minor problems with " in manual
> > +
> > +2015-09-04 Michael Albinus <michael.albinus@gmx.de>
> > +
> > + * doc/misc/tramp.texi (Frequently Asked Questions): New item for
> ad-hoc
> > + multi-hop files.
> > +
> > +2015-09-04 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + Support automated ‘make check’ in non-C locale
> > + This lets the builder optionally test Emacs behavior in other
> locales.
> > + The C locale is still the default for tests.
> > + * test/automated/Makefile.in (TEST_LOCALE): New macro.
> > + (emacs): Use it.
> > + * test/automated/flymake-tests.el (flymake-tests--current-face):
> > + Use C locale for subprocesses so that tests behave as expected.
> > + * test/automated/python-tests.el:
> > + (python-shell-prompt-validate-regexps-1)
> > + (python-shell-prompt-validate-regexps-2)
> > + (python-shell-prompt-validate-regexps-3)
> > + (python-shell-prompt-validate-regexps-4)
> > + (python-shell-prompt-validate-regexps-5)
> > + (python-shell-prompt-validate-regexps-6)
> > + (python-shell-prompt-set-calculated-regexps-1):
> > + Adjust expected output to match locale.
> > + * test/automated/tildify-tests.el (tildify-test--test)
> > + (tildify-space-test--test, tildify-space-undo-test--test):
> > + This test assumes UTF-8 encoding.
> > +
> > +2015-09-03 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + Fix some more docstring etc. quoting problems
> > + Mostly these fixes prevent the transliteration of apostrophes
> > + that should stay apostrophes. Also, prefer curved quotes in
> > + Bahá’í proper names, as that’s the preferred Bahá’í style and
> > + these names are chock-full of non-ASCII characters anyway.
> > + * lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload)
> > + (eieio-defclass-internal):
> > + * lisp/emacs-lisp/eieio.el (defclass):
> > + * lisp/hi-lock.el (hi-lock-mode):
> > + Don’t transliterate Lisp apostrophes when generating a
> > + doc string or diagnostic.
> > + * lisp/international/mule-diag.el (list-coding-systems-1):
> > + * lisp/international/ogonek.el (ogonek-jak, ogonek-how):
> > + * lisp/mail/sendmail.el (sendmail-query-user-about-smtp):
> > + * lisp/vc/ediff-mult.el (ediff-redraw-registry-buffer):
> > + * lisp/vc/ediff-ptch.el (ediff-fixup-patch-map):
> > + Substitute quotes before putting them in the help buffer.
> > +
> > +2015-09-03 Stefan Monnier <monnier@iro.umontreal.ca>
> > +
> > + Re-add the notion of echo_prompt lost in the translation
> > + * src/keyboard.h (struct kboard): Replace echo_after_prompt with
> new
> > + echo_prompt which contains the actual string. Update all uses.
> > + * src/keyboard.c (kset_echo_prompt): New function.
> > + (echo_update): Add echo_prompt at the very beginning.
> > + (read_char): Remove workaround for bug#19875, not needed any
> more.
> > + (read_key_sequence): Set echo_prompt rather than echo_string
> (bug#21403).
> > + (mark_kboards): Mark echo_prompt.
> > +
> > + Fix disassembly of non-compiled lexical functions (bug#21377)
> > + * lisp/emacs-lisp/bytecomp.el (byte-compile): Handle `closure'
> arg.
> > + * lisp/emacs-lisp/disass.el: Use lexical-binding.
> > + (disassemble): Recognize `closure's as well.
> > + (disassemble-internal): Use indirect-function and
> > + help-function-arglist, and accept `closure's.
> > + (disassemble-internal): Use interactive-form.
> > + (disassemble-1): Use functionp.
> > +
> > + (tex--prettify-symbols-compose-p): Don't compose in verbatim
> blocks!
> > + * lisp/textmodes/tex-mode.el (tex--prettify-symbols-compose-p):
> > + Don't compose inside verbatim blocks!
> > +
> > +2015-09-03 Mark Oteiza <mvoteiza@udel.edu>
> > +
> > + * lisp/thingatpt.el (thing-at-point-uri-schemes): Add "man:"
> > + (bug#19441)
> > +
> > + * lisp/mpc.el (mpc--proc-connect): Handle unix sockets
> (bug#19394)
> > +
> > +2015-09-03 Dmitry Gutov <dgutov@yandex.ru>
> > +
> > + vc-git-mode-line-string: Explicitly re-apply the face
> > + * lisp/vc/vc-git.el (vc-git-mode-line-string): Explicitly
> re-apply
> > + the face (bug#21404).
> > +
> > +2015-09-02 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + Treat initial-scratch-message as a doc string
> > + * doc/emacs/building.texi (Lisp Interaction):
> > + * doc/lispref/os.texi (Startup Summary):
> > + * etc/NEWS: Document this.
> > + * lisp/startup.el (initial-scratch-message):
> > + Look up find-file’s key rather than hardcoding it.
> > + (command-line-1): Substitute the doc string.
> > + This also substitutes the quotes, which will help test display
> > + quoting at startup.
> > +
> > + Fix describe-char bug with glyphs on terminals
> > + * lisp/descr-text.el (describe-char): Terminals can have glyphs
> in
> > + buffers too, so don’t treat them differently from graphic
> displays.
> > + Without this fix, describe-char would throw an error on a
> terminal
> > + if given a glyph with a non-default face.
> > +
> > + Follow text-quoting-style in display table init
> > + This attempts to fix a problem reported by Alan Mackenzie in:
> > +
> http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00112.html
> > + * doc/lispref/display.texi (Active Display Table):
> > + Mention how text-quoting-style affects it.
> > + * doc/lispref/help.texi (Keys in Documentation):
> > + Say how to set text-quoting-style in ~/.emacs.
> > + * etc/NEWS: Document the change.
> > + * lisp/startup.el (startup--setup-quote-display):
> > + Follow user preference if text-quoting-style is set.
> > + (command-line): Setup quote display again if user expresses
> > + a preference in .emacs.
> > +
> > +2015-09-02 K. Handa <handa@gnu.org>
> > +
> > + Fix typo
> > + * ftfont.c (ftfont_drive_otf):
> otf_positioning_type_components_mask ->
> OTF_positioning_type_components_mask.
> > +
> > + fix previous change
> > + * ftfont.c (ftfont_drive_otf): Remember some bits of
> > + OTF_Glyph->positioning_type in
> MFLTGlyphFT->libotf_positioning_type.
> > +
> > +2015-09-01 David Caldwell <david@porkrind.org> (tiny change)
> > +
> > + * lisp/vc/vc-hooks.el (vc-refresh-state): New command
> > + (vc-refresh-state): Rename from vc-find-file-hook and make
> interactive.
> > + (vc-find-file-hook): Redefine as obsolete alias.
> > +
> > +2015-09-01 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + Escape ` and ' in doc
> > + Escape apostrophes and grave accents in docstrings if they are
> > + are supposed to stand for themselves and are not quotes. Remove
> > + apostrophes from docstring examples like
> ‘'(calendar-nth-named-day
> > + -1 0 10 year)’ that confuse source code with data. Do some other
> > + minor docstring fixups as well, e.g., insert a missing close
> > + quote.
> > +
> > +2015-09-01 Stefan Monnier <monnier@iro.umontreal.ca>
> > +
> > + Generalize the prefix-command machinery of C-u
> > + * lisp/simple.el (prefix-command-echo-keystrokes-functions)
> > + (prefix-command-preserve-state-hook): New hooks.
> > + (internal-echo-keystrokes-prefix): New function.
> > + (prefix-command--needs-update, prefix-command--last-echo): New
> vars.
> > + (prefix-command-update, prefix-command-preserve): New functions.
> > + (reset-this-command-lengths): New compatibility definition.
> > + (universal-argument--mode): Call prefix-command-update.
> > + (universal-argument, universal-argument-more, negative-argument)
> > + (digit-argument): Call prefix-command-preserve-state.
> > + * src/keyboard.c: Call internal-echo-keystrokes-prefix to build
> > + the "prefix argument" to echo.
> > + (this_command_key_count_reset, before_command_key_count)
> > + (before_command_echo_length): Delete variables.
> > + (echo_add_key): Always add a space.
> > + (echo_char): Remove.
> > + (echo_dash): Don't give up when this_command_key_count is 0,
> since that
> > + is now the case after a prefix command.
> > + (echo_update): New function, extracted from echo_now.
> > + (echo_now): Use it.
> > + (add_command_key, read_char, record_menu_key): Remove old
> disabled code.
> > + (command_loop_1): Don't refrain from pushing an undo boundary
> when
> > + prefix-arg is set. Remove other prefix-arg special case, now
> handled
> > + directly in the prefix commands instead. But call echo_now if
> there's
> > + a prefix state to echo.
> > + (read_char, record_menu_key): Use echo_update instead of
> echo_char.
> > + (read_key_sequence): Use echo_now rather than
> echo_dash/echo_char.
> > + (Freset_this_command_lengths): Delete function.
> > + (syms_of_keyboard): Define Qinternal_echo_keystrokes_prefix.
> > + (syms_of_keyboard): Don't defsubr Sreset_this_command_lengths.
> > + * lisp/simple.el: Use those new hooks for C-u.
> > + (universal-argument--description): New function.
> > + (prefix-command-echo-keystrokes-functions): Use it.
> > + (universal-argument--preserve): New function.
> > + (prefix-command-preserve-state-hook): Use it.
> > + (command-execute): Call prefix-command-update if needed.
> > + * lisp/kmacro.el (kmacro-step-edit-prefix-commands)
> > + (kmacro-step-edit-prefix-index): Delete variables.
> > + (kmacro-step-edit-query, kmacro-step-edit-insert): Remove ad-hoc
> > + support for prefix arg commands.
> > + (kmacro-step-edit-macro): Don't bind
> kmacro-step-edit-prefix-index.
> > + * lisp/emulation/cua-base.el (cua--prefix-override-replay)
> > + (cua--shift-control-prefix): Use prefix-command-preserve-state.
> > + Remove now unused arg `arg'.
> > + (cua--prefix-override-handler, cua--prefix-repeat-handler)
> > + (cua--shift-control-c-prefix, cua--shift-control-x-prefix):
> > + Update accordingly.
> > + (cua--prefix-override-timeout): Don't call
> reset-this-command-lengths
> > + any more.
> > + (cua--keep-active, cua-exchange-point-and-mark): Don't set
> mark-active
> > + if the mark is not set.
> > +
> > +2015-09-01 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + Rework quoting in tutorial
> > + * doc/lispintro/emacs-lisp-intro.texi (Sample let Expression)
> > + (if in more detail, type-of-animal in detail, else): Rework the
> > + early example to use " rather than ' so that we don’t burden
> > + complete novices with the low-priority detail of text quoting
> style.
> > + (Complete zap-to-char, kill-region, Complete copy-region-as-kill)
> > + (kill-new function, kill-ring-yank-pointer)
> > + (Complete forward-sentence, Loading Files)
> > + (Code for current-kill, Code for current-kill, yank):
> > + Resurrect the Emacs 22 versions of the code, which uses grave
> > + quoting style in doc strings.
> > + (Complete zap-to-char): Mention how quoting works in doc strings.
> > +
> > + Setup quote display only if interactive
> > + * lisp/startup.el (command-line):
> > + Skip call to startup--setup-quote-display if noninteractive.
> > + Without this change, python-shell-prompt-validate-regexps-1
> > + fails in test/automated/python-tests.el when run in an
> > + en_US.utf8 locale on Fedora.
> > +
> > +2015-09-01 Katsumi Yamaoka <yamaoka@jpl.org>
> > +
> > + Use defalias at the top level
> > + * lisp/gnus/gnus-util.el (gnus-format-message):
> > + * lisp/net/tls.el (tls-format-message): Use defalias at the top
> level
> > + so as to make eval-and-compile unnecessary. Thanks to Stefan
> Monnier.
> > +
> > +2015-09-01 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + terminal-init-w32console mimicks command-line
> > + Problem reported by Eli Zaretskii.
> > + * lisp/startup.el (startup--setup-quote-display):
> > + New function, refactored from a part of ‘command-line’.
> > + (command-line): Use it.
> > + * lisp/term/w32console.el (terminal-init-w32console):
> > + Use it, so that this function stays consistent with
> ‘command-line’.
> > +
> > + Display replacement quotes with shadow glyphs
> > + * lisp/startup.el (command-line): When displaying ASCII
> > + replacements for curved quotes, use a shadow glyph instead of a
> > + regular one, to avoid ambiguity.
> > +
> > +2015-09-01 Michael Albinus <michael.albinus@gmx.de>
> > +
> > + * lisp/net/tramp-sh.el (tramp-methods) <sudo>: Mask "Password:".
> > +
> > +2015-09-01 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + Docstring fixes re quotes in C code
> > + Fix some docstring quoting problems, mostly by escaping
> apostrophe.
> > +
> > +2015-09-01 Michael Albinus <michael.albinus@gmx.de>
> > +
> > + Some Tramp password fixes
> > + * lisp/net/tramp.el (tramp-clear-passwd): Clear also the
> passwords
> > + of the hops.
> > + * lisp/net/tramp-sh.el (tramp-methods) <sudo>: Move "-p"
> "Password:"
> > + at the beginning of the command. Otherwise, it could be
> > + interpreted as password prompt if the remote host echoes the
> > + command.
> > + (tramp-remote-coding-commands): Add "openssl enc -base64".
> > +
> > +2015-09-01 Dmitry Gutov <dgutov@yandex.ru>
> > +
> > + Make vc-git-working-revision always return the commit hash
> > + * lisp/vc/vc-git.el (vc-git-working-revision):
> > + Return the commit hash (bug#21383).
> > + (vc-git--symbolic-ref): New function, extracted from above.
> > + (vc-git-mode-line-string): Use it.
> > +
> > +2015-09-01 K. Handa <handa@gnu.org>
> > +
> > + Use the new type MFLTGlyphFT for MFLTGlyphString.glyphs.
> > + * ftfont.c (MFLTGlyphFT): New type.
> > + (ftfont_get_glyph_id, ftfont_get_metrics, ftfont_drive_otf)
> > + (ftfont_shape_by_flt): Make MFLTGlyphFT the actual type of
> > + elements in the array MFLTGlyphString.glyphs.
> > +
> > +2015-09-01 Stephen Leake <stephen_leake@stephe-leake.org>
> > +
> > + Improve comments in elisp-mode.el, elisp-mode-tests.el
> > + * lisp/progmodes/elisp-mode.el: Clean up FIXMEs, comments.
> > +
> > + Delete Emacs 25 test in mode-local.el
> > + * lisp/cedet/mode-local.el (describe-mode-local-overload): Fix
> missed an
> > + edit in previous commit.
> > +
> > + Show all known mode-local overrides in *Help*
> > + * lisp/cedet/mode-local.el (describe-mode-local-overload):
> Assume Emacs
> > + 25. Add all known mode-local overrides.
> > +
> > +2015-09-01 Katsumi Yamaoka <yamaoka@jpl.org>
> > +
> > + * lisp/gnus/gnus-sum.el (gnus-summary-search-article):
> > + Ensure that the article where the search word is found is
> displayed
> > + and pointed to in the summary buffer.
> > +
> > +2015-08-31 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
> > +
> > + * lisp/newcomment.el (comment-dwim): Use `use-region-p'
> > + When the region is active, but is empty (length 0), act as though
> > + the region was not active; that is, put a comment at the end of
> > + the line. (Bug#21119)
> > +
> > +2015-08-31 Katsumi Yamaoka <yamaoka@jpl.org>
> > +
> > + Port tls.el to older Emacs
> > + * lisp/net/tls.el (tls-format-message):
> > + Alias to format-message, or format if not available.
> > + (open-tls-stream): Use it.
> > +
> > +2015-08-31 Rüdiger Sonderfeld <ruediger@c-plusplus.net>
> > +
> > + hideif.el: Recognize .h++ as C++ header.
> > + * lisp/progmodes/hideif.el (hide-ifdef-header-regexp): Add .h++.
> > +
> > + isearch: Document character folding mode.
> > + * isearch.el (isearch-forward): Mention
> `isearch-toggle-character-fold'
> > + in docstring.
> > +
> > +2015-08-31 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + Quoting fixes in ERC and Eshell
> > + * lisp/erc/erc-autoaway.el (erc-autoaway-set-away):
> > + * lisp/erc/erc-backend.el (define-erc-response-handler):
> > + * lisp/erc/erc-fill.el (erc-fill-static-center):
> > + * lisp/eshell/em-dirs.el (eshell-save-some-last-dir):
> > + * lisp/eshell/em-glob.el (eshell-glob-entries):
> > + * lisp/eshell/em-hist.el (eshell-save-some-history):
> > + * lisp/eshell/em-unix.el (eshell-remove-entries, eshell/rm)
> > + (eshell-shuffle-files):
> > + * lisp/eshell/esh-cmd.el (eshell-do-eval):
> > + * lisp/eshell/esh-proc.el (eshell-process-interact)
> > + (eshell-query-kill-processes):
> > + Respect ‘text-quoting-style’ in diagnostics and doc strings.
> > +
> > + Quoting fixes in Gnus
> > + * lisp/gnus/gnus-agent.el:
> > + (gnus-agent-possibly-synchronize-flags-server):
> > + * lisp/gnus/gnus-art.el (gnus-article-browse-delete-temp-files):
> > + * lisp/gnus/gnus-eform.el (gnus-edit-form):
> > + * lisp/gnus/gnus-group.el (gnus-group-edit-group)
> > + (gnus-group-nnimap-edit-acl):
> > + * lisp/gnus/gnus-topic.el (gnus-topic-edit-parameters):
> > + * lisp/gnus/mail-source.el (mail-source-delete-old-incoming):
> > + * lisp/gnus/message.el (message-strip-subject-encoded-words)
> > + (message-check-recipients, message-send-form-letter):
> > + * lisp/gnus/mm-decode.el (mm-display-part):
> > + * lisp/gnus/mm-uu.el (mm-uu-pgp-signed-extract-1):
> > + * lisp/gnus/mml-smime.el (mml-smime-get-dns-cert)
> > + (mml-smime-get-ldap-cert):
> > + * lisp/gnus/spam-report.el (spam-report-process-queue):
> > + Respect ‘text-quoting-style’ in diagnostics.
> > + * lisp/gnus/gnus-art.el (article-display-face)
> > + * lisp/gnus/gnus-fun.el (gnus-display-x-face-in-from):
> > + Use straight quoting in email.
> > + * lisp/gnus/rfc2231.el (rfc2231-decode-encoded-string):
> > + Escape apostrophes in doc strings.
> > +
> > + Quoting fixes in lisp mail, mh-e, net, url
> > + * lisp/mail/emacsbug.el (report-emacs-bug)
> > + (report-emacs-bug-hook): Use straight quotes in outgoing email,
> > + * lisp/mail/feedmail.el (feedmail-message-action-help-blat):
> > + * lisp/mail/rmail.el (rmail-unknown-mail-followup-to):
> > + * lisp/mail/rmailout.el (rmail-output-read-file-name):
> > + * lisp/net/imap.el (imap-interactive-login):
> > + * lisp/net/tls.el (open-tls-stream):
> > + * lisp/url/url-auth.el (url-register-auth-scheme):
> > + Respect ‘text-quoting-style’ in diagnostics.
> > + * lisp/mh-e/mh-e.el (mh-sortm-args):
> > + Quote docstring example using text quotes, not as a Lisp quote.
> > +
> > +2015-08-31 Stephen Leake <stephen_leake@stephe-leake.org>
> > +
> > + Fix some byte-compiler warnings in EDE
> > + This fixes a bug that caused ede-generic-new-autoloader to
> overwrite the
> > + existing autoloader list, rather than add to it.
> > + * lisp/cedet/ede/auto.el (ede-project-class-files): Delete
> obsolete name
> > + argument to eieio class constructor.
> > + (ede-show-supported-projects): New.
> > + (ede-add-project-autoload): Replace obsolete
> `eieio-object-name-string'
> > + with (oref ... name).
> > + (ede-auto-load-project): Use slot name, not initarg key.
> > + * lisp/cedet/ede/generic.el (ede-generic-load,
> > + ede-generic-find-matching-target): Use slot name, not initarg
> key.
> > + (ede-find-target): Use oref-default on class name.
> > + (ede-generic-new-autoloader): Delete obsolete name argument to
> eieio
> > + class constructor.
> > + (ede-enable-generic-projects): Make project type names unique.
> > +
> > +2015-08-31 Eli Zaretskii <eliz@gnu.org>
> > +
> > + Fix directory accessibility tests for w32 network volumes
> > + * src/w32.c (faccessat): Don't fail with network volumes without
> a
> > + share.
> > + (w32_accessible_directory_p): Handle network volumes without a
> > + share.
> > +
> > + Fix handling long file names in readdir on MS-Windows
> > + * src/w32.c (sys_readdir): Append "\*" to the directory after
> > + converting it to UTF-16/ANSI, not before, to avoid overflowing
> the
> > + 260-character limit on file names in filename_to_utf16/ansi.
> > +
> > + Make file-accessible-directory-p reliable on MS-Windows
> > + * src/w32.c (w32_accessible_directory_p): New function.
> > + * src/w32.h (w32_accessible_directory_p): Add prototype.
> > + * src/fileio.c (file_accessible_directory_p) [WINDOWSNT]: Call
> > + w32_accessible_directory_p to test a directory for accessibility
> > + by the current user. (Bug#21346)
> > + (Ffile_accessible_directory_p): Remove the w32 specific caveat
> > + from the doc string.
> > +
> > +2015-08-31 Martin Rudalics <rudalics@gmx.at>
> > +
> > + Don't call do_pending_window_change in signal handlers
> (Bug#21380)
> > + * src/gtkutil.c (xg_frame_resized):
> > + * src/xterm.c (x_set_window_size):
> > + * src/w32term.c (x_set_window_size): Don't call
> > + do_pending_window_change.
> > +
> > +2015-08-31 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + Quoting fixes in lisp/org
> > + * lisp/org/org-agenda.el (org-search-view, org-todo-list)
> > + (org-tags-view):
> > + * lisp/org/org-capture.el (org-capture-mode)
> > + * lisp/org/org-ctags.el (org-ctags-visit-buffer-or-file)
> > + (org-ctags-ask-append-topic):
> > + * lisp/org/org.el (org-time-string-to-time)
> > + (org-time-string-to-absolute):
> > + * lisp/org/org-ctags.el (org-ctags-visit-buffer-or-file)
> > + (org-ctags-ask-append-topic):
> > + * lisp/org/org.el (org-time-string-to-time)
> > + (org-time-string-to-absolute):
> > + Respect ‘text-quoting-style’ in diagnostics.
> > + * lisp/org/org-agenda.el (org-agenda-custom-commands)
> > + (org-agenda-dim-blocked-tasks): Plural of TODO is TODOs, not
> TODO’s.
> > + * lisp/org/org-capture.el (org-capture-fill-template):
> > + Avoid contraction in output file that might be ASCII.
> > + * lisp/org/org-compat.el (format-message):
> > + Define if not already defined, for backward compatibility.
> > + * lisp/org/org-src.el (org-edit-src-save):
> > + * lisp/org/org.el (org-cycle, org-ctrl-c-ctrl-c):
> > + Escape apostrophes in diagnostics.
> > +
> > + Treat “instead” strings as docstrings
> > + * lisp/emacs-lisp/bytecomp.el (byte-compile-form):
> > + * lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning):
> > + Substitute quotes in instead strings.
> > +
> > +2015-08-31 Nicolas Petton <nicolas@petton.fr>
> > +
> > + Better documentation of seq-let
> > + * doc/lispref/sequences.texi (Sequence Functions): Rephrase the
> > + documentation of seq-let.
> > +
> > +2015-08-31 Paul Eggert <eggert@cs.ucla.edu>
> > +
> > + * lisp/international/ccl.el: Fix quoting.
> > +
> > + Quoting fixes in lisp/international and lisp/leim
> > + * lisp/international/ccl.el (ccl-dump, ccl-dump-call):
> > + * lisp/international/ja-dic-utl.el (skkdic-lookup-key):
> > + * lisp/international/mule-cmds.el:
> > + (select-safe-coding-system-interactively, leim-list-file-name):
> > + * lisp/international/quail.el (quail-use-package, quail-help):
> > + * lisp/international/titdic-cnv.el (tit-process-header)
> > + (miscdic-convert):
> > + Respect text quoting style in doc strings and diagnostics.
> > + * lisp/international/quail.el (lisp/international/quail.el):
> > + * lisp/leim/quail/ethiopic.el ("ethiopic"):
> > + Escape apostrophes in doc strings.
> > +
> > + Make ‘text-quoting-style’ a plain defvar
> > + It doesn’t need customization, as it’s likely useful only by
> experts.
> > + Suggested by Stefan Monnier in:
> > +
> http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg01020.html
> > + * lisp/cus-start.el: Remove doc.c section for builtin customized
> vars.
> > +
> > + Quoting fixes in lisp/textmodes
> > + * lisp/textmodes/bibtex.el (bibtex-validate)
> > + (bibtex-validate-globally, bibtex-search-entries):
> > + * lisp/textmodes/ispell.el (ispell-command-loop):
> > + * lisp/textmodes/page-ext.el (search-pages, pages-directory):
> > + * lisp/textmodes/texinfmt.el (texinfmt-version)
> > + (texinfo-format-region, texinfo-format-buffer-1):
> > + * lisp/textmodes/two-column.el (2C-split):
> > + Respect text quoting style in doc strings and diagnostics.
> > + * lisp/textmodes/conf-mode.el (conf-mode-map, conf-quote-normal):
> > + * lisp/textmodes/sgml-mode.el (sgml-specials, sgml-mode):
> > + Escape apostrophes in doc strings.
> > +
> > + Documentation fixes re quotes
> > + Prefer curved quotes in examples if users will typically see
> > + curved quotes when the examples run.
> > + Mention format-message when appropriate.
> > + Don’t use @code in examples.
> > + Quote an apostrophe with @kbd.
> > +
> > + Quoting fixes in lisp/progmodes
> > + * lisp/progmodes/cc-engine.el (c-bos-report-error):
> > + * lisp/progmodes/cpp.el (cpp-edit-reset):
> > + * lisp/progmodes/ebrowse.el (ebrowse-tags-apropos):
> > + * lisp/progmodes/etags.el (etags-tags-apropos-additional)
> > + (etags-tags-apropos, list-tags, tags-apropos):
> > + * lisp/progmodes/executable.el (executable-set-magic):
> > + * lisp/progmodes/octave.el (octave-sync-function-file-names)
> > + (octave-help, octave-find-definition-default-filename)
> > + (octave-find-definition):
> > + Respect text quoting style in doc strings and diagnostics.
> > + * lisp/progmodes/cc-langs.el (c-populate-syntax-table):
> > + * lisp/progmodes/verilog-mode.el (verilog-auto-reset-widths):
> > + * lisp/progmodes/vhdl-mode.el (vhdl-electric-quote):
> > + Escape apostrophes in doc strings.
> > + * lisp/progmodes/cmacexp.el (c-macro-expansion):
> > + Use straight quoting in ASCII comment.
> > + * lisp/progmodes/idlwave.el (idlwave-auto-fill-split-string)
> > + (idlwave-pad-keyword):
> > + * lisp/progmodes/vhdl-mode.el (vhdl-widget-directory-validate)
> > + (vhdl-electric-open-bracket, vhdl-electric-close-bracket):
> > + (vhdl-electric-semicolon, vhdl-electric-comma)
> > + (vhdl-electric-period, vhdl-electric-equal):
> > + Use directed quotes in diagnostics and doc strings.
> > +
> > +2015-08-30 Xue Fuqiao <xfq.free@gmail.com>
> > +
> > + Minor documentation and NEWS tweak
> > + * doc/lispintro/emacs-lisp-intro.texi (fwd-para let): Add an
> index
> > + entry.
> > +
> > 2015-08-30 Michael Albinus <michael.albinus@gmx.de>
> >
> > * lisp/net/tramp-sh.el (tramp-convert-file-attributes):
> > @@ -11395,7 +12027,7 @@
> >
> > This file records repository revisions from
> > commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
> > -commit cc90c25a50e536669ac327f7e05ec9194d1650d0 (inclusive).
> > +commit 88b9a8000da6cf2d4aede86e9eae4f00016d0d6b (inclusive).
> > See ChangeLog.1 for earlier changes.
> >
> > ;; Local Variables:
> > diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el
> > index 8d3f5b7..9e39fd0 100644
> > --- a/admin/unidata/unidata-gen.el
> > +++ b/admin/unidata/unidata-gen.el
> > @@ -445,7 +445,7 @@ Property value is a symbol `o' (Open), `c' (Close),
> or `n' (None)."
> > ;; (4) possibly update the switch cases in
> > ;; bidi.c:bidi_get_type and bidi.c:bidi_get_category.
> > (bidi-warning "\
> > -** Found new bidi-class ‘%s’, please update bidi.c and dispextern.h")
> > +** Found new bidi-class `%s', please update bidi.c and dispextern.h")
> > tail elt range val val-code idx slot
> > prev-range-data)
> > (setq val-list (cons nil (copy-sequence val-list)))
> > diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
> > index b4a99a1..1d40a2d 100644
> > --- a/doc/emacs/building.texi
> > +++ b/doc/emacs/building.texi
> > @@ -1549,7 +1549,7 @@ mode are the same as in Emacs Lisp mode.
> > At startup, the @file{*scratch*} buffer contains a short message, in
> > the form of a Lisp comment, that explains what it is for. This
> > message is controlled by the variable @code{initial-scratch-message},
> > -which should be either a string, or @code{nil} (which means to
> > +which should be either a documentation string, or @code{nil} (which
> means to
> > suppress the message).
> >
> > @findex ielm
> > diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
> > index a2bea24..43c61d7 100644
> > --- a/doc/emacs/custom.texi
> > +++ b/doc/emacs/custom.texi
> > @@ -28,7 +28,7 @@ Reference Manual}.
> > to decide what to do; by setting variables,
> > you can control their functioning.
> > * Key Bindings:: The keymaps say what command each key runs.
> > - By changing them, you can "redefine keys".
> > + By changing them, you can ``redefine keys''.
> > * Init File:: How to write common customizations in the
> > initialization file.
> > @end menu
> > diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
> > index 5f53f9b..ec82a07 100644
> > --- a/doc/emacs/emacs.texi
> > +++ b/doc/emacs/emacs.texi
> > @@ -160,7 +160,7 @@ Fundamental Editing Commands
> > * Help:: Commands for asking Emacs about its commands.
> >
> > Important Text-Changing Commands
> > -* Mark:: The mark: how to delimit a "region" of text.
> > +* Mark:: The mark: how to delimit a ``region'' of text.
> > * Killing:: Killing (cutting) and yanking (copying) text.
> > * Registers:: Saving a text string or a location in the
> buffer.
> > * Display:: Controlling what text is displayed.
> > @@ -172,7 +172,7 @@ Major Structures of Emacs
> > * Files:: All about handling files.
> > * Buffers:: Multiple buffers; editing several files at once.
> > * Windows:: Viewing multiple pieces of text in one frame.
> > -* Frames:: Using multiple "windows" on your display.
> > +* Frames:: Using multiple ``windows'' on your display.
> > * International:: Using non-@acronym{ASCII} character sets.
> >
> > Advanced Features
> > @@ -200,7 +200,7 @@ Advanced Features
> > @end ifnottex
> > * Editing Binary Files:: Editing binary files with Hexl mode.
> > * Saving Emacs Sessions:: Saving Emacs state from one session to the
> next.
> > -* Recursive Edit:: Performing edits while "within another command".
> > +* Recursive Edit:: Performing edits while ``within another
> command''.
> > * Hyperlinking:: Following links in buffers.
> > * Amusements:: Various games and hacks.
> > * Packages:: Installing additional features.
> > @@ -301,7 +301,7 @@ Help
> > * Language Help:: Help relating to international language support.
> > * Misc Help:: Other help commands.
> > * Help Files:: Commands to display auxiliary help files.
> > -* Help Echo:: Help on active text and tooltips ("balloon
> help").
> > +* Help Echo:: Help on active text and tooltips (``balloon
> help'').
> >
> > The Mark and the Region
> >
> > @@ -337,7 +337,7 @@ Yanking
> > * Earlier Kills:: Yanking something killed some time ago.
> > * Appending Kills:: Several kills in a row all yank together.
> >
> > -"Cut and Paste" Operations on Graphical Displays
> > +``Cut and Paste'' Operations on Graphical Displays
> >
> > * Clipboard:: How Emacs uses the system clipboard.
> > * Primary Selection:: The temporarily selected text selection.
> > @@ -464,7 +464,7 @@ Saving Files
> > * Customize Save:: Customizing the saving of files.
> > * Interlocking:: How Emacs protects against simultaneous editing
> > of one file by two users.
> > -* File Shadowing:: Copying files to "shadows" automatically.
> > +* File Shadowing:: Copying files to ``shadows'' automatically.
> > * Time Stamps:: Emacs can update time stamps on saved files.
> >
> > Backup Files
> > @@ -597,7 +597,7 @@ Commands for Human Languages
> > * TeX Mode:: Editing TeX and LaTeX files.
> > * HTML Mode:: Editing HTML and SGML files.
> > * Nroff Mode:: Editing input to the nroff formatter.
> > -* Enriched Text:: Editing text "enriched" with fonts, colors, etc.
> > +* Enriched Text:: Editing text ``enriched'' with fonts, colors,
> etc.
> > * Text Based Tables:: Commands for editing text-based tables.
> > * Two-Column:: Splitting text columns into separate windows.
> >
> > @@ -638,7 +638,7 @@ Enriched Text
> > * Enriched Indentation:: Changing the left and right margins.
> > * Enriched Justification:: Centering, setting text flush with the
> > left or right margin, etc.
> > -* Enriched Properties:: The "special" text properties submenu.
> > +* Enriched Properties:: The ``special'' text properties submenu.
> >
> > @c The automatic texinfo menu update inserts some duplicate items here
> > @c (faces, colors, indentation, justification, properties), because
> > @@ -895,7 +895,7 @@ Editing Pictures
> >
> > * Basic Picture:: Basic concepts and simple commands of Picture
> Mode.
> > * Insert in Picture:: Controlling direction of cursor motion
> > - after "self-inserting" characters.
> > + after ``self-inserting'' characters.
> > * Tabs in Picture:: Various features for tab stops and
> indentation.
> > * Rectangles in Picture:: Clearing and superimposing rectangles.
> > @end ifnottex
> > @@ -1092,7 +1092,7 @@ Customization
> > to decide what to do; by setting variables,
> > you can control their functioning.
> > * Key Bindings:: The keymaps say what command each key runs.
> > - By changing them, you can "redefine" keys.
> > + By changing them, you can ``redefine'' keys.
> > * Init File:: How to write common customizations in the
> > initialization file.
> >
> > diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
> > index 6ff59b4..5985d8b 100644
> > --- a/doc/emacs/files.texi
> > +++ b/doc/emacs/files.texi
> > @@ -340,7 +340,7 @@ that was visited in the buffer.
> > * Customize Save:: Customizing the saving of files.
> > * Interlocking:: How Emacs protects against simultaneous editing
> > of one file by two users.
> > -* Shadowing: File Shadowing. Copying files to "shadows" automatically.
> > +* Shadowing: File Shadowing. Copying files to ``shadows''
> automatically.
> > * Time Stamps:: Emacs can update time stamps on saved files.
> > @end menu
> >
> > diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
> > index 5129c1c..6984250 100644
> > --- a/doc/emacs/help.texi
> > +++ b/doc/emacs/help.texi
> > @@ -72,7 +72,7 @@ inputs, but they all support @key{F1}.)
> > * Language Help:: Help relating to international language support.
> > * Misc Help:: Other help commands.
> > * Help Files:: Commands to display auxiliary help files.
> > -* Help Echo:: Help on active text and tooltips ("balloon
> help").
> > +* Help Echo:: Help on active text and tooltips (``balloon
> help'').
> > @end menu
> >
> > @iftex
> > diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi
> > index 68913d8..19d861a 100644
> > --- a/doc/emacs/package.texi
> > +++ b/doc/emacs/package.texi
> > @@ -232,7 +232,7 @@ in your init file depends on a package). In that
> case, your init file
> > should call the function @code{package-initialize}. It is up to you
> > to ensure that relevant user options, such as @code{package-load-list}
> > (see below), are set up prior to the @code{package-initialize} call.
> > -You should also set @code{package-enable-at-startup} to @code{nil}, to
> > +This will automatically set @code{package-enable-at-startup} to
> @code{nil}, to
> > avoid loading the packages again after processing the init file.
> > Alternatively, you may choose to completely inhibit package loading at
> > startup, and invoke the command @kbd{M-x package-initialize} to load
> > diff --git a/doc/emacs/picture-xtra.texi b/doc/emacs/picture-xtra.texi
> > index 6be84bd..a9ad2d5 100644
> > --- a/doc/emacs/picture-xtra.texi
> > +++ b/doc/emacs/picture-xtra.texi
> > @@ -53,7 +53,7 @@ Additional extensions to Picture mode can be found in
> > @menu
> > * Basic Picture:: Basic concepts and simple commands of Picture
> Mode.
> > * Insert in Picture:: Controlling direction of cursor motion
> > - after "self-inserting" characters.
> > + after ``self-inserting'' characters.
> > * Tabs in Picture:: Various features for tab stops and
> indentation.
> > * Rectangles in Picture:: Clearing and superimposing rectangles.
> > @end menu
> > diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
> > index 8f78a1a..ea8f82f 100644
> > --- a/doc/emacs/programs.texi
> > +++ b/doc/emacs/programs.texi
> > @@ -97,7 +97,6 @@ your favorite language, the mode might be implemented
> in a package not
> > distributed with Emacs (@pxref{Packages}); or you can contribute one.
> >
> > @kindex DEL @r{(programming modes)}
> > -@findex c-electric-backspace
> > @findex backward-delete-char-untabify
> > In most programming languages, indentation should vary from line to
> > line to illustrate the structure of the program. Therefore, in most
> > diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
> > index 34d4e8f..a0dfe22 100644
> > --- a/doc/emacs/search.texi
> > +++ b/doc/emacs/search.texi
> > @@ -1342,13 +1342,13 @@ to replace all remaining occurrences without
> asking again.
> > to replace all remaining occurrences in all remaining buffers in
> > multi-buffer replacements (like the Dired @key{Q} command that performs
> > query replace on selected files). It answers this question and all
> > -subsequent questions in the series with "yes", without further
> > +subsequent questions in the series with ``yes'', without further
> > user interaction.
> >
> > @item N @r{(Upper-case)}
> > to skip to the next buffer in multi-buffer replacements without
> > replacing remaining occurrences in the current buffer. It answers
> > -this question "no", gives up on the questions for the current buffer,
> > +this question ``no'', gives up on the questions for the current buffer,
> > and continues to the next buffer in the sequence.
> >
> > @item ^
> > diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
> > index 31760b7..389ef5e 100644
> > --- a/doc/emacs/text.texi
> > +++ b/doc/emacs/text.texi
> > @@ -78,7 +78,7 @@ for editing such pictures.
> > * TeX Mode:: Editing TeX and LaTeX files.
> > * HTML Mode:: Editing HTML and SGML files.
> > * Nroff Mode:: Editing input to the nroff formatter.
> > -* Enriched Text:: Editing text "enriched" with fonts, colors, etc.
> > +* Enriched Text:: Editing text ``enriched'' with fonts, colors,
> etc.
> > * Text Based Tables:: Commands for editing text-based tables.
> > * Two-Column:: Splitting text columns into separate windows.
> > @end menu
> > @@ -2072,7 +2072,7 @@ serves as an example of the features of Enriched
> mode.
> > * Enriched Indentation:: Changing the left and right margins.
> > * Enriched Justification:: Centering, setting text flush with the
> > left or right margin, etc.
> > -* Enriched Properties:: The "special" text properties submenu.
> > +* Enriched Properties:: The ``special'' text properties submenu.
> > @end menu
> >
> > @node Enriched Mode
> > diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
> > index fc01a97..2233376 100644
> > --- a/doc/emacs/trouble.texi
> > +++ b/doc/emacs/trouble.texi
> > @@ -1345,16 +1345,16 @@ Emacs has additional style and coding
> conventions:
> > @item
> > @ifset WWW_GNU_ORG
> > @ifhtml
> > -the "Tips" Appendix in the Emacs Lisp Reference
> > +the ``Tips'' Appendix in the Emacs Lisp Reference
> > @url{http://www.gnu.org/software/emacs/manual/html_node/elisp/Tips.html
> }.
> > @end ifhtml
> > @ifnothtml
> > -@xref{Tips, "Tips" Appendix in the Emacs Lisp Reference, Tips
> > +@xref{Tips, ``Tips'' Appendix in the Emacs Lisp Reference, Tips
> > Appendix, elisp, Emacs Lisp Reference}.
> > @end ifnothtml
> > @end ifset
> > @ifclear WWW_GNU_ORG
> > -@xref{Tips, "Tips" Appendix in the Emacs Lisp Reference, Tips
> > +@xref{Tips, ``Tips'' Appendix in the Emacs Lisp Reference, Tips
> > Appendix, elisp, Emacs Lisp Reference}.
> > @end ifclear
> >
> > @@ -1398,7 +1398,7 @@ See gnu-misc-discuss instead.)
> >
> > A copyright disclaimer is also a possibility, but we prefer an
> assignment.
> > Note that the disclaimer, like an assignment, involves you sending
> > -signed paperwork to the FSF (simply saying "this is in the public
> domain"
> > +signed paperwork to the FSF (simply saying ``this is in the public
> domain''
> > is not enough). Also, a disclaimer cannot be applied to future work, it
> > has to be repeated each time you want to send something new.
> >
> > diff --git a/doc/lispintro/emacs-lisp-intro.texi
> b/doc/lispintro/emacs-lisp-intro.texi
> > index 3ac2418..d353241 100644
> > --- a/doc/lispintro/emacs-lisp-intro.texi
> > +++ b/doc/lispintro/emacs-lisp-intro.texi
> > @@ -9268,7 +9268,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
> > @@ -11107,7 +11107,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))))))
> > @@ -13514,8 +13514,8 @@ For example:
> > @smallexample
> > @group
> > (let* ((foo 7)
> > - (bar (* 3 foo)))
> > - (message "‘bar’ is %d." bar))
> > + (bar (* 3 foo)))
> > + (message "`bar' is %d." bar))
> > @result{} ‘bar’ is 21.
> > @end group
> > @end smallexample
> > @@ -13758,7 +13758,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 ... ")
> > @@ -13825,7 +13825,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
> > @@ -13947,7 +13947,7 @@ What happens is this: the search is limited to
> the region, and fails
> > as you expect because there are no word-constituent characters in the
> > region. Since it fails, we receive an error message. But we do not
> > want to receive an error message in this case; we want to receive the
> > -message that "The region does NOT have any words."
> > +message ``The region does NOT have any words.''
> >
> > The solution to this problem is to provide @code{re-search-forward}
> > with a third argument of @code{t}, which causes the function to return
> > @@ -14987,13 +14987,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))
> > @@ -15759,7 +15759,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
> >
> > @@ -19943,7 +19943,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
> > @@ -20044,7 +20044,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)))
> > @@ -21169,7 +21169,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
> > @@ -21269,7 +21269,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
> > @@ -21330,14 +21330,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))
> > @@ -21467,7 +21467,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
> > @@ -21497,7 +21497,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))
> > @@ -21662,7 +21662,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/anti.texi b/doc/lispref/anti.texi
> > index c1773aa..2784fd9 100644
> > --- a/doc/lispref/anti.texi
> > +++ b/doc/lispref/anti.texi
> > @@ -56,8 +56,8 @@ there is no need to worry about the insertion of
> right-to-left text
> > messing up how lines and paragraphs are displayed, the function
> > @code{bidi-string-mark-left-to-right} has been removed; so have many
> > other functions and variables related to bidirectional display.
> > -Unicode directionality characters like @code{U+200E} ("left-to-right
> > -mark") have no special effect on display.
> > +Unicode directionality characters like @code{U+200E} LEFT-TO-RIGHT
> > +MARK have no special effect on display.
> >
> > @item
> > Emacs windows now have most of their internal state hidden from Lisp.
> > diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
> > index 49bfe82..71261e0 100644
> > --- a/doc/lispref/buffers.texi
> > +++ b/doc/lispref/buffers.texi
> > @@ -23,7 +23,7 @@ not be displayed in any windows.
> > * Buffer File Name:: The buffer file name indicates which file is
> visited.
> > * Buffer Modification:: A buffer is @dfn{modified} if it needs to be
> saved.
> > * Modification Time:: Determining whether the visited file was changed
> > - "behind Emacs's back".
> > + ``behind Emacs's back''.
> > * Read Only Buffers:: Modifying text is not allowed in a read-only
> buffer.
> > * Buffer List:: How to look at all the existing buffers.
> > * Creating Buffers:: Functions that create buffers.
> > diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
> > index 29d1bd5..421f5cc 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 9d82edc..14e2cd3 100644
> > --- a/doc/lispref/display.texi
> > +++ b/doc/lispref/display.texi
> > @@ -6531,8 +6531,12 @@ no buffer display table.
> > The value of this variable is the standard display table, which is
> > used when Emacs is displaying a buffer in a window with neither a
> > window display table nor a buffer display table defined, or when Emacs
> > -is outputting text to the standard output or error streams. Its
> > -default is @code{nil}.
> > +is outputting text to the standard output or error streams. Although
> its
> > +default is typically @code{nil}, in an interactive session if the
> > +locale cannot display curved quotes, or if the initial value of
> > +@code{text-quoting-style} specifies a preference for ASCII, its
> > +default maps curved quotes to ASCII approximations. @xref{Keys in
> > +Documentation}.
> > @end defvar
> >
> > The @file{disp-table} library defines several functions for changing
> > diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
> > index 9044fba..7b2b68a 100644
> > --- a/doc/lispref/elisp.texi
> > +++ b/doc/lispref/elisp.texi
> > @@ -453,7 +453,7 @@ Kinds of Forms
> > we find the real function via the symbol.
> > * Function Forms:: Forms that call functions.
> > * Macro Forms:: Forms that call macros.
> > -* Special Forms:: "Special forms" are idiosyncratic
> primitives,
> > +* Special Forms:: ``Special forms'' are idiosyncratic
> primitives,
> > most of them extremely important.
> > * Autoloading:: Functions set up to load files
> > containing their real definitions.
> > @@ -485,7 +485,7 @@ Errors
> > Variables
> >
> > * Global Variables:: Variable values that exist permanently,
> everywhere.
> > -* Constant Variables:: Certain "variables" have values that never
> change.
> > +* Constant Variables:: Certain ``variables'' have values that
> never change.
> > * Local Variables:: Variable values that exist only temporarily.
> > * Void Variables:: Symbols that lack values.
> > * Defining Variables:: A definition says a symbol is used as a
> variable.
> > @@ -599,7 +599,7 @@ Loading
> > * Repeated Loading:: Precautions about loading a file twice.
> > * Named Features:: Loading a library if it isn't already
> loaded.
> > * Where Defined:: Finding which file defined a certain symbol.
> > -* Unloading:: How to "unload" a library that was loaded.
> > +* Unloading:: How to ``unload'' a library that was loaded.
> > * Hooks for Loading:: Providing code to be run when
> > particular libraries are loaded.
> >
> > @@ -990,7 +990,7 @@ Buffers
> > is visited.
> > * Buffer Modification:: A buffer is @dfn{modified} if it needs to
> be saved.
> > * Modification Time:: Determining whether the visited file was
> changed
> > - "behind Emacs's back".
> > + ``behind Emacs's back''.
> > * Read Only Buffers:: Modifying text is not allowed in a
> > read-only buffer.
> > * Buffer List:: How to look at all the existing buffers.
> > @@ -1117,8 +1117,8 @@ Markers
> > * Marker Insertion Types:: Two ways a marker can relocate when you
> > insert where it points.
> > * Moving Markers:: Moving the marker to a new buffer or
> position.
> > -* The Mark:: How "the mark" is implemented with a marker.
> > -* The Region:: How to access "the region".
> > +* The Mark:: How ``the mark'' is implemented with a
> marker.
> > +* The Region:: How to access ``the region''.
> >
> > Text
> >
> > @@ -1152,7 +1152,7 @@ Text
> > * Base 64:: Conversion to or from base 64 encoding.
> > * Checksum/Hash:: Computing cryptographic hashes.
> > * Parsing HTML/XML:: Parsing HTML and XML.
> > -* Atomic Changes:: Installing several buffer changes
> "atomically".
> > +* Atomic Changes:: Installing several buffer changes
> ``atomically''.
> > * Change Hooks:: Supplying functions to be run when text is
> changed.
> >
> > The Kill Ring
> > diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi
> > index a185da7..f253e70 100644
> > --- a/doc/lispref/eval.texi
> > +++ b/doc/lispref/eval.texi
> > @@ -116,7 +116,7 @@ with the ``all other types'' which are
> self-evaluating forms.
> > we find the real function via the symbol.
> > * Function Forms:: Forms that call functions.
> > * Macro Forms:: Forms that call macros.
> > -* Special Forms:: "Special forms" are idiosyncratic
> primitives,
> > +* Special Forms:: ``Special forms'' are idiosyncratic
> primitives,
> > most of them extremely important.
> > * Autoloading:: Functions set up to load files
> > containing their real definitions.
> > diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
> > index f4c9abd..91b0c96 100644
> > --- a/doc/lispref/files.texi
> > +++ b/doc/lispref/files.texi
> > @@ -1291,10 +1291,10 @@ has only one name (the name @file{files.texi} in
> the current default
> > directory).
> >
> > @item "lh"
> > -is owned by the user with name "lh".
> > +is owned by the user with name @samp{lh}.
> >
> > @item "users"
> > -is in the group with name "users".
> > +is in the group with name @samp{users}.
> >
> > @item (20614 64019 50040 152000)
> > was last accessed on October 23, 2012, at 20:12:03.050040152 UTC.
> > diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
> > index 65eeec6..16fc495 100644
> > --- a/doc/lispref/frames.texi
> > +++ b/doc/lispref/frames.texi
> > @@ -2256,7 +2256,7 @@ indicates the release of the button, or whatever
> kind of event means
> > it is time to stop tracking.
> >
> > The @code{track-mouse} form causes Emacs to generate mouse motion
> > -events by binding the variable @code{mouse-tracking} to a
> > +events by binding the variable @code{track-mouse} to a
> > non-@code{nil} value. If that variable has the special value
> > @code{dragging}, it additionally instructs the display engine to
> > refrain from changing the shape of the mouse pointer. This is
> > diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
> > index 20eaf5d..a853d2f 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/help.texi b/doc/lispref/help.texi
> > index 44c09a2..b3042d7 100644
> > --- a/doc/lispref/help.texi
> > +++ b/doc/lispref/help.texi
> > @@ -345,7 +345,9 @@ quotes. If the variable's value is @code{curve},
> the style is
> > apostrophes. If the value is @code{grave}, the style is @t{`like
> > this'} with grave accent and apostrophe. The default value @code{nil}
> > acts like @code{curve} if curved single quotes are displayable, and
> > -like @code{grave} otherwise.
> > +like @code{grave} otherwise. To use the traditional @code{grave}
> > +style, put the line @code{(setq text-quoting-style 'grave)} into your
> > +@file{~/.emacs} file.
> > @end defvar
> >
> > @defun substitute-command-keys string
> > @@ -375,7 +377,7 @@ specifies a key binding that the command does not
> actually have.
> > @smallexample
> > @group
> > (substitute-command-keys
> > - "To abort recursive edit, type ‘\\[abort-recursive-edit]’.")
> > + "To abort recursive edit, type `\\[abort-recursive-edit]'.")
> > @result{} "To abort recursive edit, type ‘C-]’."
> > @end group
> >
> > @@ -396,7 +398,7 @@ C-g abort-recursive-edit
> >
> > @group
> > (substitute-command-keys
> > - "To abort a recursive edit from the minibuffer, type\
> > + "To abort a recursive edit from the minibuffer, type \
> > `\\<minibuffer-local-must-match-map>\\[abort-recursive-edit]'.")
> > @result{} "To abort a recursive edit from the minibuffer, type ‘C-g’."
> > @end group
> > diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi
> > index fc1def6..91dc9a9 100644
> > --- a/doc/lispref/loading.texi
> > +++ b/doc/lispref/loading.texi
> > @@ -40,7 +40,7 @@ For on-demand loading of external libraries,
> @pxref{Dynamic Libraries}.
> > * Repeated Loading:: Precautions about loading a file twice.
> > * Named Features:: Loading a library if it isn't already
> loaded.
> > * Where Defined:: Finding which file defined a certain symbol.
> > -* Unloading:: How to "unload" a library that was loaded.
> > +* Unloading:: How to ``unload'' a library that was loaded.
> > * Hooks for Loading:: Providing code to be run when
> > particular libraries are loaded.
> > @end menu
> > diff --git a/doc/lispref/markers.texi b/doc/lispref/markers.texi
> > index 109e935..4f25b91 100644
> > --- a/doc/lispref/markers.texi
> > +++ b/doc/lispref/markers.texi
> > @@ -20,8 +20,8 @@ deleted, so that it stays with the two characters on
> either side of it.
> > * Marker Insertion Types:: Two ways a marker can relocate when you
> > insert where it points.
> > * Moving Markers:: Moving the marker to a new buffer or
> position.
> > -* The Mark:: How "the mark" is implemented with a
> marker.
> > -* The Region:: How to access "the region".
> > +* The Mark:: How ``the mark'' is implemented with a
> marker.
> > +* The Region:: How to access ``the region''.
> > @end menu
> >
> > @node Overview of Markers
> > diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
> > index f00e481..a8b6bb1 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').
> > \\@{text-mode-map@}
> > -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.
> >
> > \\@{lisp-mode-map@}
> > -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 64ebb45..6ef87df 100644
> > --- a/doc/lispref/os.texi
> > +++ b/doc/lispref/os.texi
> > @@ -195,7 +195,7 @@ It now exits if the option @code{--batch} was
> specified.
> >
> > @item
> > If the @file{*scratch*} buffer exists and is empty, it inserts
> > -@code{initial-scratch-message} into that buffer.
> > +@code{(substitute-command-keys initial-scratch-message)} into that
> buffer.
> >
> > @item
> > If @code{initial-buffer-choice} is a string, it visits the file (or
> > @@ -314,6 +314,7 @@ file will not inhibit the message for someone else.
> >
> > @defopt initial-scratch-message
> > This variable, if non-@code{nil}, should be a string, which is
> > +treated as documentation to be
> > inserted into the @file{*scratch*} buffer when Emacs starts up. If it
> > is @code{nil}, the @file{*scratch*} buffer is empty.
> > @end defopt
> > @@ -1927,7 +1928,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}}
> > @@ -2479,7 +2480,7 @@ argument of another @code{notifications-notify}
> call. For example:
> > @end group
> >
> > @group
> > -A message window opens on the desktop. Press "I agree"
> > +A message window opens on the desktop. Press ``I agree''.
> > @result{} Message 22, key "Confirm" pressed
> > Message 22, closed due to "dismissed"
> > @end group
> > @@ -2674,32 +2675,14 @@ being reported. For example:
> > @end example
> >
> > Whether the action @code{renamed} is returned, depends on the used
> > -watch library. It can be expected, when a directory is watched, and
> > -both @var{file} and @var{file1} belong to this directory. Otherwise,
> > -the actions @code{deleted} and @code{created} could be returned in a
> > -random order.
> > +watch library. Otherwise, the actions @code{deleted} and
> > +@code{created} could be returned in a random order.
> >
> > @example
> > @group
> > (rename-file "/tmp/foo" "/tmp/bla")
> > @result{} Event (35025468 renamed "/tmp/foo" "/tmp/bla")
> > @end group
> > -
> > -@group
> > -(file-notify-add-watch
> > - "/var/tmp" '(change attribute-change) 'my-notify-callback)
> > - @result{} 35025504
> > -@end group
> > -
> > -@group
> > -(rename-file "/tmp/bla" "/var/tmp/bla")
> > - @result{} ;; gfilenotify
> > - Event (35025468 renamed "/tmp/bla" "/var/tmp/bla")
> > -
> > - @result{} ;; inotify
> > - Event (35025504 created "/var/tmp/bla")
> > - Event (35025468 deleted "/tmp/bla")
> > -@end group
> > @end example
> > @end defun
> >
> > diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi
> > index f8eba2a..7136286 100644
> > --- a/doc/lispref/package.texi
> > +++ b/doc/lispref/package.texi
> > @@ -113,8 +113,10 @@ package loading is disabled if the user option
> > This function initializes Emacs' internal record of which packages are
> > installed, and loads them. The user option @code{package-load-list}
> > specifies which packages to load; by default, all installed packages
> > -are loaded. @xref{Package Installation,,, emacs, The GNU Emacs
> > -Manual}.
> > +are loaded. If called during startup, this function also sets
> > +@code{package-enable-at-startup} to @code{nil}, to avoid accidentally
> > +loading the packages twice. @xref{Package Installation,,, emacs, The
> > +GNU Emacs Manual}.
> >
> > The optional argument @var{no-activate}, if non-@code{nil}, causes
> > Emacs to update its record of installed packages without actually
> > diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
> > index 98b3dfb..c9509b0 100644
> > --- a/doc/lispref/processes.texi
> > +++ b/doc/lispref/processes.texi
> > @@ -1720,13 +1720,13 @@ sentinel, the eventual call to the sentinel will
> use the new one.
> > @group
> > (defun msg-me (process event)
> > (princ
> > - (format "Process: %s had the event ‘%s’" process event)))
> > + (format "Process: %s had the event '%s'" process event)))
> > (set-process-sentinel (get-process "shell") 'msg-me)
> > @result{} msg-me
> > @end group
> > @group
> > (kill-process (get-process "shell"))
> > - @print{} Process: #<process shell> had the event ‘killed’
> > + @print{} Process: #<process shell> had the event 'killed'
> > @result{} #<process shell>
> > @end group
> > @end smallexample
> > diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi
> > index 12ed881..f73779b 100644
> > --- a/doc/lispref/sequences.texi
> > +++ b/doc/lispref/sequences.texi
> > @@ -557,19 +557,24 @@ calling @var{function}.
> > @end example
> > @end defun
> >
> > -@defun seq-some-p predicate sequence
> > - This function returns the first member of sequence for which
> @var{predicate}
> > -returns non-@code{nil}.
> > +@defun seq-some predicate sequence
> > + This function returns non-@code{nil} if @var{predicate} returns
> > +non-@code{nil} for any element of @var{sequence}. If so, the returned
> > +value is the value returned by @var{predicate}.
> >
> > @example
> > @group
> > -(seq-some-p #'numberp ["abc" 1 nil])
> > -@result{} 1
> > +(seq-some #'numberp ["abc" 1 nil])
> > +@result{} t
> > @end group
> > @group
> > -(seq-some-p #'numberp ["abc" "def"])
> > +(seq-some #'numberp ["abc" "def"])
> > @result{} nil
> > @end group
> > +@group
> > +(seq-some #'null ["abc" 1 nil])
> > +@result{} t
> > +@end group
> > @end example
> > @end defun
> >
> > @@ -583,7 +588,7 @@ to every element of @var{sequence} returns non-@code
> {nil}.
> > @result{} t
> > @end group
> > @group
> > -(seq-some-p #'numberp [2 4 "6"])
> > +(seq-some #'numberp [2 4 "6"])
> > @result{} nil
> > @end group
> > @end example
> > @@ -621,18 +626,18 @@ according to @var{function}, a function of two
> arguments that returns
> > non-@code{nil} if the first argument should sort before the second.
> > @end defun
> >
> > -@defun seq-contains-p sequence elt &optional function
> > +@defun seq-contains sequence elt &optional function
> > This function returns the first element in @var{sequence} that is
> equal to
> > @var{elt}. If the optional argument @var{function} is non-@code{nil},
> > it is a function of two arguments to use instead of the default
> @code{equal}.
> >
> > @example
> > @group
> > -(seq-contains-p '(symbol1 symbol2) 'symbol1)
> > +(seq-contains '(symbol1 symbol2) 'symbol1)
> > @result{} symbol1
> > @end group
> > @group
> > -(seq-contains-p '(symbol1 symbol2) 'symbol3)
> > +(seq-contains '(symbol1 symbol2) 'symbol3)
> > @result{} nil
> > @end group
> > @end example
> > diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
> > index d882be4..f422507 100644
> > --- a/doc/lispref/strings.texi
> > +++ b/doc/lispref/strings.texi
> > @@ -486,8 +486,8 @@ accent Unicode characters:
> >
> > The optional argument @var{locale}, a string, overrides the setting of
> > your current locale identifier for collation. The value is system
> > -dependent; a @var{locale} "en_US.UTF-8" is applicable on POSIX
> > -systems, while it would be, e.g., "enu_USA.1252" on MS-Windows
> > +dependent; a @var{locale} @code{"en_US.UTF-8"} is applicable on POSIX
> > +systems, while it would be, e.g., @code{"enu_USA.1252"} on MS-Windows
> > systems.
> >
> > If @var{ignore-case} is non-@code{nil}, characters are converted to
> lower-case
> > @@ -495,7 +495,7 @@ before comparing them.
> >
> > To emulate Unicode-compliant collation on MS-Windows systems,
> > bind @code{w32-collate-ignore-punctuation} to a non-@code{nil} value,
> since
> > -the codeset part of the locale cannot be "UTF-8" on MS-Windows.
> > +the codeset part of the locale cannot be @code{"UTF-8"} on MS-Windows.
> >
> > If your system does not support a locale environment, this function
> > behaves like @code{string-equal}.
> > @@ -596,9 +596,9 @@ less significant for @ref{Sorting,,sorting}.
> >
> > The optional argument @var{locale}, a string, overrides the setting of
> > your current locale identifier for collation. The value is system
> > -dependent; a @var{locale} "en_US.UTF-8" is applicable on POSIX
> > -systems, while it would be, e.g., "enu_USA.1252" on MS-Windows
> > -systems. The @var{locale} "POSIX" lets @code{string-collate-lessp}
> > +dependent; a @var{locale} @code{"en_US.UTF-8"} is applicable on POSIX
> > +systems, while it would be, e.g., @code{"enu_USA.1252"} on MS-Windows
> > +systems. The @var{locale} @code{"POSIX"} lets
> @code{string-collate-lessp}
> > behave like @code{string-lessp}:
> >
> > @example
> > @@ -614,7 +614,7 @@ before comparing them.
> >
> > To emulate Unicode-compliant collation on MS-Windows systems,
> > bind @code{w32-collate-ignore-punctuation} to a non-@code{nil} value,
> since
> > -the codeset part of the locale cannot be "UTF-8" on MS-Windows.
> > +the codeset part of the locale cannot be @code{"UTF-8"} on MS-Windows.
> >
> > If your system does not support a locale environment, this function
> > behaves like @code{string-lessp}.
> > @@ -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 245825a..55e550a 100644
> > --- a/doc/lispref/text.texi
> > +++ b/doc/lispref/text.texi
> > @@ -58,7 +58,7 @@ the character after point.
> > * Base 64:: Conversion to or from base 64 encoding.
> > * Checksum/Hash:: Computing cryptographic hashes.
> > * Parsing HTML/XML:: Parsing HTML and XML.
> > -* Atomic Changes:: Installing several buffer changes "atomically".
> > +* Atomic Changes:: Installing several buffer changes ``atomically''.
> > * Change Hooks:: Supplying functions to be run when text is changed.
> > @end menu
> >
> > @@ -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/lispref/tips.texi b/doc/lispref/tips.texi
> > index 7107bb4..3bde0a8 100644
> > --- a/doc/lispref/tips.texi
> > +++ b/doc/lispref/tips.texi
> > @@ -689,7 +689,7 @@ immediately before the symbol name. (Case makes no
> difference in
> > recognizing these indicator words.) For example, if you write
> >
> > @example
> > -This function sets the variable ‘buffer-file-name’.
> > +This function sets the variable `buffer-file-name'.
> > @end example
> >
> > @noindent
> > @@ -702,7 +702,7 @@ you can write the words @samp{symbol} or
> @samp{program} before the
> > symbol name to prevent making any hyperlink. For example,
> >
> > @example
> > -If the argument KIND-OF-RESULT is the symbol ‘list’,
> > +If the argument KIND-OF-RESULT is the symbol `list',
> > this function returns a list of all the objects
> > that satisfy the criterion.
> > @end example
> > @@ -727,7 +727,7 @@ name of the Info node (or anchor), preceded by
> > anchor}. The Info file name defaults to @samp{emacs}. For example,
> >
> > @smallexample
> > -See Info node ‘Font Lock’ and Info node ‘(elisp)Font Lock Basics’.
> > +See Info node `Font Lock' and Info node `(elisp)Font Lock Basics'.
> > @end smallexample
> >
> > Finally, to create a hyperlink to URLs, write the single-quoted URL,
> > @@ -735,7 +735,7 @@ preceded by @samp{URL}. For example,
> >
> > @smallexample
> > The home page for the GNU project has more information (see URL
> > -‘http://www.gnu.org/’).
> > +`http://www.gnu.org/').
> > @end smallexample
> >
> > @item
> > diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
> > index 15491e5..369e8dd 100644
> > --- a/doc/lispref/variables.texi
> > +++ b/doc/lispref/variables.texi
> > @@ -25,7 +25,7 @@ representing the variable.
> >
> > @menu
> > * Global Variables:: Variable values that exist permanently,
> everywhere.
> > -* Constant Variables:: Certain "variables" have values that
> never change.
> > +* Constant Variables:: Certain ``variables'' have values that
> never change.
> > * Local Variables:: Variable values that exist only
> temporarily.
> > * Void Variables:: Symbols that lack values.
> > * Defining Variables:: A definition says a symbol is used as a
> variable.
> > diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
> > index 565abb5..7a824ac 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 75df1d4..3e9109d 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 7cee5c3..fb4e147 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/ert.texi b/doc/misc/ert.texi
> > index 3192e4b..35d315c 100644
> > --- a/doc/misc/ert.texi
> > +++ b/doc/misc/ert.texi
> > @@ -861,7 +861,7 @@ The most common use of this is to run just the tests
> for one
> > particular module. Since symbol prefixes are the usual way of
> > separating module namespaces in Emacs Lisp, test selectors already
> > solve this by allowing regexp matching on test names; e.g., the
> > -selector "^ert-" selects ERT's self-tests.
> > +selector @code{"^ert-"} selects ERT's self-tests.
> >
> > Other uses include grouping tests by their expected execution time,
> > e.g., to run quick tests during interactive development and slow tests
> less
> > diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
> > index 0b856c7..19c78bf 100644
> > --- a/doc/misc/gnus-faq.texi
> > +++ b/doc/misc/gnus-faq.texi
> > @@ -892,11 +892,11 @@ more readable?
> >
> > @subsubheading Answer
> >
> > -Gnus offers you several functions to "wash" incoming mail, you can
> > +Gnus offers you several functions to ``wash'' incoming mail, you can
> > find them if you browse through the menu, item
> > -Article->Washing. The most interesting ones are probably "Wrap
> > -long lines" (@samp{W w}), "Decode ROT13"
> > -(@samp{W r}) and "Outlook Deuglify" which repairs
> > +Article->Washing. The most interesting ones are probably ``Wrap
> > +long lines'' (@samp{W w}), ``Decode ROT13''
> > +(@samp{W r}) and ``Outlook Deuglify'' which repairs
> > the dumb quoting used by many users of Microsoft products
> > (@samp{W Y f} gives you full deuglify.
> > See @samp{W Y C-h} or have a look at the menus for
> > @@ -1016,8 +1016,8 @@ mail groups. Is this a bug?
> >
> > No, that's a matter of design of Gnus, fixing this would
> > mean reimplementation of major parts of Gnus'
> > -back ends. Gnus thinks "highest-article-number @minus{}
> > -lowest-article-number = total-number-of-articles". This
> > +back ends. Gnus thinks ``highest-article-number @minus{}
> > +lowest-article-number = total-number-of-articles''. This
> > works OK for Usenet groups, but if you delete and move
> > many messages in mail groups, this fails. To cure the
> > symptom, enter the group via @samp{C-u RET}
> > @@ -1085,8 +1085,8 @@ You've got to play around with the variable
> > gnus-summary-line-format. Its value is a string of
> > symbols which stand for things like author, date, subject
> > etc. A list of the available specifiers can be found in the
> > -manual node "Summary Buffer Lines" and the often forgotten
> > -node "Formatting Variables" and its sub-nodes. There
> > +manual node ``Summary Buffer Lines'' and the often forgotten
> > +node ``Formatting Variables'' and its sub-nodes. There
> > you'll find useful things like positioning the cursor and
> > tabulators which allow you a summary in table form, but
> > sadly hard tabulators are broken in 5.8.8.
> > @@ -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 23a43f4..9093fa2 100644
> > --- a/doc/misc/gnus.texi
> > +++ b/doc/misc/gnus.texi
> > @@ -12565,7 +12565,7 @@ Gnus provides a few different methods for
> storing the mail and news you
> > send. The default method is to use the @dfn{archive virtual server} to
> > store the messages. If you want to disable this completely, the
> > @code{gnus-message-archive-group} variable should be @code{nil}. The
> > -default is "sent.%Y-%m", which gives you one archive group per month.
> > +default is @code{"sent.%Y-%m"}, which gives you one archive group per
> month.
> >
> > For archiving interesting messages in a group you read, see the
> > @kbd{B c} (@code{gnus-summary-copy-article}) command (@pxref{Mail
> > @@ -15018,7 +15018,8 @@ corresponding keywords.
> >
> > @item :mailbox
> > The name of the mailbox to get mail from. The default is @samp{INBOX}
> > -which normally is the mailbox which receives incoming mail.
> > +which normally is the mailbox which receives incoming mail. Instead of
> > +a single mailbox, this can be a list of mailboxes to fetch mail from.
> >
> > @item :predicate
> > The predicate used to find articles to fetch. The default, @samp{UNSEEN
> > @@ -21033,8 +21034,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 +24081,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/rcirc.texi b/doc/misc/rcirc.texi
> > index a0d74b4..a707ba5 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/tramp.texi b/doc/misc/tramp.texi
> > index 012c586..87c7c80 100644
> > --- a/doc/misc/tramp.texi
> > +++ b/doc/misc/tramp.texi
> > @@ -3691,6 +3691,24 @@ I would like to thank all @value{tramp} users who
> have contributed to
> > the different recipes!
> >
> >
> > +@item I have saved @value{tramp} file names as indicated. But it
> > +doesn't work in a new @value{emacsname} session!
> > +
> > +If you have saved an ad-hoc multi-hop @value{tramp} file name
> > +(@pxref{Ad-hoc multi-hops}) via bookmarks, recent files,
> > +@ifset emacs
> > +filecache, bbdb,
> > +@end ifset
> > +or another package, you must use the full ad-hoc file name including
> > +all hops, like @file{@trampfn{ssh, bird,
> > +bastion|ssh@value{postfixhop}news.my.domain, /opt/news/etc}}.
> > +
> > +Alternatively, if you save only the abbreviated multi-hop file name
> > +@file{@trampfn{ssh, news, news.my.domain, /opt/news/etc}}, the
> > +customer option @code{tramp-save-ad-hoc-proxies} must be set to a to a
> > +non-@code{nil} value.
> > +
> > +
> > @ifset emacs
> > @item
> > How can I use @value{tramp} to connect to a remote @value{emacsname}
> > diff --git a/doc/misc/viper.texi b/doc/misc/viper.texi
> > index f449e3b..8f57e8c 100644
> > --- a/doc/misc/viper.texi
> > +++ b/doc/misc/viper.texi
> > @@ -1961,7 +1961,7 @@ can include a line like this in your Viper
> customization file:
> >
> > Viper lets you define hot keys, i.e., you can associate keyboard keys
> > such as F1, Help, PgDn, etc., with Emacs Lisp functions (that may
> already
> > -exist or that you will write). Each key has a "preferred form" in
> > +exist or that you will write). Each key has a ``preferred form'' in
> > Emacs. For instance, the Up key's preferred form is [up], the Help
> key's
> > preferred form is [help], and the Undo key has the preferred form [f14].
> > You can find out the preferred form of a key by typing @kbd{M-x
> > diff --git a/etc/NEWS b/etc/NEWS
> > index c664e02..8a08a06 100644
> > --- a/etc/NEWS
> > +++ b/etc/NEWS
> > @@ -91,6 +91,10 @@ so if you want to use it, you can always take a copy
> from an older Emacs.
> > and *Buffer List*. This makes Emacs convenient to use from the
> > command line when `initial-buffer-choice' is non-nil.
> >
> > ++++
> > +** The value of ‘initial-scratch-message’ is now treated as a doc string
> > +and can contain escape sequences for command keys, quotes, and the like.
> > +
> >
> > * Changes in Emacs 25.1
> >
> > @@ -828,14 +832,6 @@ notifications, if Emacs is compiled with file
> notification support.
> >
> > *** landmark.el (moved to elpa.gnu.org)
> >
> > -+++
> > -** The character classes [:graph:] and [:print:] in regular expressions
> > -no longer match every multibyte character. Instead, Emacs now
> > -consults the Unicode character properties to determine which
> > -characters are graphic or printable. In particular, surrogates and
> > -unassigned codepoints are now rejected. If you want the old behavior,
> > -use [:multibyte:] instead.
> > -
> >
> > * New Modes and Packages in Emacs 25.1
> >
> > @@ -860,6 +856,13 @@ a typographically-correct documents.
> >
> > * Incompatible Lisp Changes in Emacs 25.1
> >
> > ++++
> > +** `package-initialize' now sets `package-enable-at-startup' to nil if
> > +called during startup. Users who call this function in their init
> > +file and still expect it to be run after startup should set
> > +`package-enable-at-startup' to t after the call to
> > +`package-initialize'.
> > +
> > ** `:global' minor mode use `setq-default' rather than `setq'.
> > This means that you can't use `make-local-variable' and expect them to
> > "magically" become buffer-local.
> > @@ -951,6 +954,14 @@ If you want the old behavior where they matched any
> character with
> > word syntax, use `\sw' instead.
> >
> > +++
> > +** The character classes [:graph:] and [:print:] in regular expressions
> > +no longer match every multibyte character. Instead, Emacs now
> > +consults the Unicode character properties to determine which
> > +characters are graphic or printable. In particular, surrogates and
> > +unassigned codepoints are now rejected. If you want the old behavior,
> > +use [:multibyte:] instead.
> > +
> > ++++
> > ** The `diff' command uses the unified format now. To restore the old
> > behavior, set `diff-switches' to `-c'.
> >
> > @@ -1113,8 +1124,9 @@ integers.
> > ** New function `set-binary-mode' allows to switch a standard stream
> > of the Emacs process to binary I/O mode.
> >
> > -** In locales that cannot display curved quotes, ASCII approximations
> > -are installed in standard-display-table.
> > +** ASCII approximations to curved quotes are put in
> standard-display-table
> > +if the locale cannot display curved quotes, or if text-quoting-style
> > +initially specifies a preference for ASCII.
> >
> > ** Standard output and error streams now transliterate characters via
> > standard-display-table, and encode output using locale-coding-system.
> > diff --git a/lisp/abbrev.el b/lisp/abbrev.el
> > index 0ba21da..f372a28 100644
> > --- a/lisp/abbrev.el
> > +++ b/lisp/abbrev.el
> > @@ -399,7 +399,7 @@ A prefix argument means don't query; expand all
> abbrevs."
> > (buffer-substring-no-properties
> > (save-excursion (forward-word -1) (point))
> > pnt)))
> > - (if (or noquery (y-or-n-p (format-message "Expand ‘%s’? "
> string)))
> > + (if (or noquery (y-or-n-p (format-message "Expand `%s'? "
> string)))
> > (expand-abbrev)))))))
> >
> > ;;; Abbrev properties.
> > diff --git a/lisp/align.el b/lisp/align.el
> > index 3020b6a..9eb04ef 100644
> > --- a/lisp/align.el
> > +++ b/lisp/align.el
> > @@ -1348,7 +1348,7 @@ aligner would have dealt with are."
> > (if real-beg
> > (goto-char beg)
> > (if (or (not thissep) (eq thissep 'entire))
> > - (error "Cannot determine alignment region for ‘%s’"
> > + (error "Cannot determine alignment region for `%s'"
> > (symbol-name (cdr (assq 'title rule)))))
> > (beginning-of-line)
> > (while (and (not (eobp))
> > diff --git a/lisp/allout-widgets.el b/lisp/allout-widgets.el
> > index f0a1cab..f31c3d8 100644
> > --- a/lisp/allout-widgets.el
> > +++ b/lisp/allout-widgets.el
> > @@ -384,9 +384,9 @@ The structure includes the guides lines, bullet, and
> bullet cue.")
> >
> > Entries on the list are lists whose first element is a symbol indicating
> > the change type and subsequent elements are data specific to that change
> > -type. Specifically:
> > +type. For example:
> >
> > - 'exposure `allout-exposure-from' `allout-exposure-to'
> `allout-exposure-flag'
> > + (exposure ALLOUT-EXPOSURE-FROM ALLOUT-EXPOSURE-TO
> ALLOUT-EXPOSURE-FLAG)
> >
> > The changes are recorded in reverse order, with new values pushed
> > onto the front.")
> > @@ -481,9 +481,9 @@ text in allout item bodies.")
> >
> > \(That space is used to convey selected cues indicating body qualities,
> > including things like:
> > - - encryption ‘~’
> > - - numbering ‘#’
> > - - indirect reference ‘@’
> > + - encryption `~'
> > + - numbering `#'
> > + - indirect reference `@'
> > - distinctive bullets - see `allout-distinctive-bullets-string'.)")
> > ;;;_ = allout-span-to-category
> > (defvar allout-span-to-category
> > diff --git a/lisp/allout.el b/lisp/allout.el
> > index 3ba440f..f705573 100644
> > --- a/lisp/allout.el
> > +++ b/lisp/allout.el
> > @@ -229,7 +229,7 @@ See `allout-unprefixed-keybindings' for the list of
> keybindings
> > that are not prefixed.
> >
> > Use vector format for the keys:
> > - - put literal keys after a ‘?’ question mark, eg: ‘?a’, ‘?.’
> > + - put literal keys after a `?' question mark, eg: `?a', `?.'
> > - enclose control, shift, or meta-modified keys as sequences within
> > parentheses, with the literal key, as above, preceded by the name(s)
> > of the modifiers, eg: [(control ?a)]
> > @@ -257,7 +257,7 @@ This is in contrast to the majority of allout-mode
> bindings on
> > preceding command key.
> >
> > Use vector format for the keys:
> > - - put literal keys after a ‘?’ question mark, eg: ‘?a’, ‘?.’
> > + - put literal keys after a `?' question mark, eg: `?a', `?.'
> > - enclose control, shift, or meta-modified keys as sequences within
> > parentheses, with the literal key, as above, preceded by the name(s)
> > of the modifiers, eg: [(control ?a)]
> > @@ -1012,9 +1012,9 @@ determination of aberrance is according to the
> mistaken item
> > being followed by a legitimate item of excessively greater depth.
> >
> > The classic example of a mistaken item, for a standard allout
> > -outline configuration, is a body line that begins with an ‘...’
> > +outline configuration, is a body line that begins with an `...'
> > ellipsis. This happens to contain a legitimate depth-2 header
> > -prefix, constituted by two ‘..’ dots at the beginning of the
> > +prefix, constituted by two `..' dots at the beginning of the
> > line. The only thing that can distinguish it *in principle* from
> > a legitimate one is if the following real header is at a depth
> > that is discontinuous from the depth of 2 implied by the
> > @@ -2081,20 +2081,20 @@ OPEN: A TOPIC that is not CLOSED, though its
> OFFSPRING or BODY may be."
> > (and (not (string= allout-auto-activation "activate"))
> > (if (string= allout-auto-activation "ask")
> > (if (y-or-n-p (format-message
> > - "Expose %s with layout ‘%s’? "
> > + "Expose %s with layout `%s'? "
> > (buffer-name) use-layout))
> > t
> > (message "Skipped %s layout." (buffer-name))
> > nil)
> > t)))
> > (save-excursion
> > - (message "Adjusting ‘%s’ exposure..." (buffer-name))
> > + (message "Adjusting `%s' exposure..." (buffer-name))
> > (goto-char 0)
> > (allout-this-or-next-heading)
> > (condition-case err
> > (progn
> > (apply 'allout-expose-topic (list use-layout))
> > - (message "Adjusting ‘%s’ exposure... done."
> > + (message "Adjusting `%s' exposure... done."
> > (buffer-name)))
> > ;; Problem applying exposure -- notify user, but don't
> > ;; interrupt, eg, file visit:
> > @@ -3484,7 +3484,7 @@ Offer one suitable for current depth DEPTH as
> default."
> > (goto-char (allout-current-bullet-pos))
> > (setq choice (solicit-char-in-string
> > (format-message
> > - "Select bullet: %s (‘%s’ default): "
> > + "Select bullet: %s (`%s' default): "
> > sans-escapes
> > (allout-substring-no-properties default-bullet))
> > sans-escapes
> > @@ -5879,7 +5879,7 @@ With repeat count, copy the exposed portions of
> entire buffer."
> > (defun allout-toggle-current-subtree-encryption (&optional keymode-cue)
> > "Encrypt clear or decrypt encoded topic text.
> >
> > -Allout uses Emacs ‘epg’ library to perform encryption. Symmetric
> > +Allout uses Emacs `epg' library to perform encryption. Symmetric
> > and keypair encryption are supported. All encryption is ascii
> > armored.
> >
> > @@ -5941,7 +5941,7 @@ associated with it. This can be used to
> dissociate any
> > recipients with the file, by selecting no recipients in the
> > dialog.
> >
> > -Encryption and decryption uses the Emacs ‘epg’ library.
> > +Encryption and decryption uses the Emacs `epg' library.
> >
> > Encrypted text will be ascii-armored.
> >
> > @@ -6381,7 +6381,7 @@ for details on preparing Emacs for automatic
> allout activation."
> > (allout-open-topic 2)
> > (insert (substitute-command-keys
> > (concat "Dummy outline topic header -- see"
> > - " ‘allout-mode’ docstring:
> ‘\\[describe-mode]’.")))
> > + " `allout-mode' docstring:
> `\\[describe-mode]'.")))
> > (allout-adjust-file-variable
> > "allout-layout" (or allout-layout '(-1 : 0))))))
> > ;;;_ > allout-file-vars-section-data ()
> > @@ -6546,7 +6546,7 @@ Optional arg DO-DEFAULTING indicates to accept
> empty input (CR)."
> > (defun regexp-sans-escapes (regexp &optional successive-backslashes)
> > "Return a copy of REGEXP with all character escapes stripped out.
> >
> > -Representations of actual backslashes -- ‘\\\\\\\\’ -- are left as a
> > +Representations of actual backslashes -- `\\\\\\\\' -- are left as a
> > single backslash.
> >
> > Optional arg SUCCESSIVE-BACKSLASHES is used internally for recursion."
> > diff --git a/lisp/apropos.el b/lisp/apropos.el
> > index ec21296..6d7dc8a 100644
> > --- a/lisp/apropos.el
> > +++ b/lisp/apropos.el
> > @@ -682,7 +682,7 @@ the output includes key-bindings of commands."
> > symbols apropos-do-all
> > (concat
> > (format-message
> > - "Library ‘%s’ provides: %s\nand requires: %s"
> > + "Library `%s' provides: %s\nand requires: %s"
> > file
> > (mapconcat 'apropos-library-button
> > (or provides '(nil)) " and ")
> > diff --git a/lisp/bookmark.el b/lisp/bookmark.el
> > index 308d1ca..0351481 100644
> > --- a/lisp/bookmark.el
> > +++ b/lisp/bookmark.el
> > @@ -843,10 +843,10 @@ whose annotation is being edited.")
> > The default annotation text is simply some text explaining how to use
> > annotations."
> > (concat (format-message
> > - "# Type the annotation for bookmark ‘%s’ here.\n"
> > + "# Type the annotation for bookmark `%s' here.\n"
> > bookmark-name)
> > (format-message
> > - "# All lines which start with a ‘#’ will be deleted.\n")
> > + "# All lines which start with a `#' will be deleted.\n")
> > "# Type C-c C-c when done.\n#\n"
> > "# Author: " (user-full-name) " <" (user-login-name) "@"
> > (system-name) ">\n"
> > diff --git a/lisp/bs.el b/lisp/bs.el
> > index 6314bbb..1735c17 100644
> > --- a/lisp/bs.el
> > +++ b/lisp/bs.el
> > @@ -1314,7 +1314,7 @@ ALL-BUFFERS is the list of buffers appearing in
> Buffer Selection Menu."
> > (format-mode-line mode-name nil nil start-buffer))
> >
> > (defun bs--get-file-name (_start-buffer _all-buffers)
> > - "Return string for column ‘File’ in Buffer Selection Menu.
> > + "Return string for column `File' in Buffer Selection Menu.
> > This is the variable `buffer-file-name' of current buffer.
> > If not visiting a file, `list-buffers-directory' is returned instead.
> > START-BUFFER is the buffer where we started buffer selection.
> > diff --git a/lisp/button.el b/lisp/button.el
> > index 5fe5bf0..e7602dd 100644
> > --- a/lisp/button.el
> > +++ b/lisp/button.el
> > @@ -114,7 +114,7 @@ Mode-specific keymaps may want to use this as their
> parent keymap.")
> > "Return the symbol used by button-type TYPE to store properties.
> > Buttons inherit them by setting their `category' property to that
> symbol."
> > (or (get type 'button-category-symbol)
> > - (error "Unknown button type ‘%s’" type)))
> > + (error "Unknown button type `%s'" type)))
> >
> > (defun define-button-type (name &rest properties)
> > "Define a `button type' called NAME (a symbol).
> > @@ -208,7 +208,7 @@ changes to a supertype are not reflected in its
> subtypes)."
> > (setq val (button-category-symbol val)))
> > ((eq prop 'category)
> > ;; Disallow updating the `category' property directly.
> > - (error "Button ‘category’ property may not be set directly")))
> > + (error "Button `category' property may not be set directly")))
> > ;; Add the property.
> > (cond ((overlayp button)
> > (overlay-put button prop val))
> > @@ -333,7 +333,7 @@ Also see `insert-text-button'."
> > (setq object beg beg 0 end (length object)))
> > ;; Disallow setting the `category' property directly.
> > (when (plist-get properties 'category)
> > - (error "Button ‘category’ property may not be set directly"))
> > + (error "Button `category' property may not be set directly"))
> > (if (null type-entry)
> > ;; The user didn't specify a `type' property, use the default.
> > (setq properties (cons 'category (cons 'default-button
> properties)))
> > diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el
> > index 2c588c1..2319c48 100644
> > --- a/lisp/calc/calc-aent.el
> > +++ b/lisp/calc/calc-aent.el
> > @@ -1034,7 +1034,7 @@ in Calc algebraic input.")
> >
> > (defun math-restore-placeholders (x)
> > "Replace placeholders by the proper characters in the symbol x.
> > -This includes ‘#’ for ‘_’ and ‘'’ for ‘%’.
> > +This includes `#' for `_' and `'' for `%'.
> > If the current Calc language does not use placeholders, return nil."
> > (if (or (memq calc-language calc-lang-allow-underscores)
> > (memq calc-language calc-lang-allow-percentsigns))
> > @@ -1057,7 +1057,7 @@ If the current Calc language does not use
> placeholders, return nil."
> > (defun math-read-if (cond op)
> > (let ((then (math-read-expr-level 0)))
> > (or (equal math-expr-data ":")
> > - (throw 'syntax "Expected ‘:’"))
> > + (throw 'syntax "Expected `:'"))
> > (math-read-token)
> > (list 'calcFunc-if cond then (math-read-expr-level (nth 3 op)))))
> >
> > @@ -1121,7 +1121,7 @@ If the current Calc language does not use
> placeholders, return nil."
> > (math-read-expr-list))))
> > (if (not (or (equal math-expr-data
> calc-function-close)
> > (eq math-exp-token 'end)))
> > - (throw 'syntax "Expected ‘)’"))
> > + (throw 'syntax "Expected `)'"))
> > (math-read-token)
> > (if (and (memq calc-language
> > calc-lang-parens-are-subscripts)
> > @@ -1177,7 +1177,7 @@ If the current Calc language does not use
> placeholders, return nil."
> > (setq el (cdr el))))
> > (if (equal math-expr-data "]")
> > (math-read-token)
> > - (throw 'syntax "Expected ‘]’")))
> > + (throw 'syntax "Expected `]'")))
> > val)))))
> > ((eq math-exp-token 'dollar)
> > (let ((abs (if (> math-expr-data 0) math-expr-data (-
> math-expr-data))))
> > @@ -1246,7 +1246,7 @@ If the current Calc language does not use
> placeholders, return nil."
> > (if (not (or (equal math-expr-data ")")
> > (and (equal math-expr-data "]") (eq (car-safe
> exp) 'intv))
> > (eq math-exp-token 'end)))
> > - (throw 'syntax "Expected ‘)’"))
> > + (throw 'syntax "Expected `)'"))
> > (math-read-token)
> > exp))
> > ((eq math-exp-token 'string)
> > diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el
> > index 3f6e83e..d0efe53 100644
> > --- a/lisp/calc/calc-embed.el
> > +++ b/lisp/calc/calc-embed.el
> > @@ -333,7 +333,7 @@
> > (message (concat
> > "Embedded Calc mode enabled; "
> > (if calc-embedded-quiet
> > - "Type ‘C-x * x’"
> > + "Type `C-x * x'"
> > "Give this command again")
> > " to return to normal")))))
> > (scroll-down 0)) ; fix a bug which occurs when truncate-lines is
> changed.
> > diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el
> > index 2442f02..cb6ab6f 100644
> > --- a/lisp/calc/calc-ext.el
> > +++ b/lisp/calc/calc-ext.el
> > @@ -1957,7 +1957,7 @@ calc-kill calc-kill-region calc-yank))))
> > (desc
> > (if (symbolp func)
> > (if (= (logand kind 3) 0)
> > - (format-message "‘%c’ = %s" key name)
> > + (format-message "`%c' = %s" key name)
> > (if pos
> > (format "%s%c%s"
> > (downcase (substring name 0 pos))
> > diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el
> > index 8378b23..20b0249 100644
> > --- a/lisp/calc/calc-graph.el
> > +++ b/lisp/calc/calc-graph.el
> > @@ -958,7 +958,7 @@ This \"dumb\" driver will be present in Gnuplot 3.0."
> > (define-key calc-dumb-map "\C-c\C-c" 'exit-recursive-edit)))
> > (use-local-map calc-dumb-map)
> > (setq truncate-lines t)
> > - (message "Type ‘q’ or ‘C-c C-c’ to return to Calc")
> > + (message "Type `q' or `C-c C-c' to return to Calc")
> > (recursive-edit)
> > (bury-buffer "*Gnuplot Trail*")))
> >
> > diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el
> > index 395b12d..444bb5e 100644
> > --- a/lisp/calc/calc-help.el
> > +++ b/lisp/calc/calc-help.el
> > @@ -240,7 +240,7 @@ C-w Describe how there is no warranty for Calc."
> > (if (string-match "\\` +" prompts)
> > (setq prompts (substring prompts (match-end 0))))
> > (setq msg (format-message
> > - "%s: %s%s‘%s’%s%s %s%s"
> > + "%s: %s%s`%s'%s%s %s%s"
> > (if (string-match
> > "\\`\\(calc-[-a-zA-Z0-9]+\\)
> *\\(.*\\)\\'"
> > cmd)
> > @@ -345,7 +345,7 @@ C-w Describe how there is no warranty for Calc."
> > (calc-describe-thing var "Variable Index"))
> >
> > (defun calc-describe-thing (thing where &optional target not-quoted)
> > - (message "Looking for ‘%s’ in %s..." thing where)
> > + (message "Looking for `%s' in %s..." thing where)
> > (let ((savewin (current-window-configuration)))
> > (calc-info-goto-node where)
> > (or (let ((case-fold-search nil))
> > @@ -361,7 +361,7 @@ C-w Describe how there is no warranty for Calc."
> > (if Info-history
> > (Info-last))
> > (set-window-configuration savewin)
> > - (error "Can't find ‘%s’ in %s" thing where)))
> > + (error "Can't find `%s' in %s" thing where)))
> > (let (Info-history)
> > (Info-goto-node (buffer-substring (match-beginning 1) (match-end
> 1))))
> > (let* ((string-target (or target thing))
> > @@ -380,7 +380,7 @@ C-w Describe how there is no warranty for Calc."
> > (re-search-forward quoted nil t)
> > (search-forward string-target nil t)))))
> > (beginning-of-line)
> > - (message "Found ‘%s’ in %s" thing where)))
> > + (message "Found `%s' in %s" thing where)))
> >
> > (defun calc-view-news ()
> > (interactive)
> > @@ -400,9 +400,9 @@ C-w Describe how there is no warranty for Calc."
> > (princ "GNU Emacs Calculator.\n")
> > (princ " By Dave Gillespie.\n")
> > (princ (format " %s\n\n" emacs-copyright))
> > - (princ (format-message "Type ‘h s’ for a more detailed summary.\n"))
> > + (princ (format-message "Type `h s' for a more detailed summary.\n"))
> > (princ (format-message
> > - "Or type ‘h i’ to read the full Calc manual on-line.\n\n"))
> > + "Or type `h i' to read the full Calc manual on-line.\n\n"))
> > (princ "Basic keys:\n")
> > (let* ((calc-full-help-flag t))
> > (mapc (function (lambda (x) (princ (format
> > @@ -417,10 +417,10 @@ C-w Describe how there is no warranty for Calc."
> > (princ
> > (if (eq (nth 2 msgs) ?v)
> > (format-message
> > - "\n‘v’ or ‘V’ prefix
> (vector/matrix) keys: \n")
> > + "\n`v' or `V' prefix
> (vector/matrix) keys: \n")
> > (if (nth 2 msgs)
> > (format-message
> > - "\n‘%c’ prefix (%s) keys:\n"
> > + "\n`%c' prefix (%s) keys:\n"
> > (nth 2 msgs)
> > (or (cdr (assq (nth 2 msgs)
> >
> calc-help-long-names))
> > diff --git a/lisp/calc/calc-lang.el b/lisp/calc/calc-lang.el
> > index 70a9ff8..6b3b949 100644
> > --- a/lisp/calc/calc-lang.el
> > +++ b/lisp/calc/calc-lang.el
> > @@ -94,7 +94,7 @@
> > (interactive)
> > (calc-wrapper
> > (calc-set-language 'c)
> > - (message "‘C’ language mode")))
> > + (message "C language mode")))
> >
> > (put 'c 'math-oper-table
> > '( ( "u!" calcFunc-lnot -1 1000 )
> > @@ -387,7 +387,7 @@
> > math-exp-token 'end
> > math-expr-data "\000")
> > x)
> > - (throw 'syntax "Unmatched closing ‘/’")))
> > + (throw 'syntax "Unmatched closing `/'")))
> >
> > (defun math-parse-fortran-subscr (sym args)
> > (setq sym (math-build-var-name sym))
> > @@ -695,7 +695,7 @@
> >
> > (defun math-parse-tex-sum (f val)
> > (let (low high save)
> > - (or (equal math-expr-data "_") (throw 'syntax "Expected ‘_’"))
> > + (or (equal math-expr-data "_") (throw 'syntax "Expected `_'"))
> > (math-read-token)
> > (setq save math-exp-old-pos)
> > (setq low (math-read-factor))
> > @@ -703,7 +703,7 @@
> > (progn
> > (setq math-exp-old-pos (1+ save))
> > (throw 'syntax "Expected equation")))
> > - (or (equal math-expr-data "^") (throw 'syntax "Expected ‘^’"))
> > + (or (equal math-expr-data "^") (throw 'syntax "Expected `^'"))
> > (math-read-token)
> > (setq high (math-read-factor))
> > (list (nth 2 f) (math-read-factor) (nth 1 low) (nth 2 low) high)))
> > @@ -1165,14 +1165,14 @@
> > (while (assoc math-expr-data '(("ccol") ("lcol") ("rcol")))
> > (math-read-token)
> > (or (equal math-expr-data calc-function-open)
> > - (throw 'syntax "Expected ‘{’"))
> > + (throw 'syntax "Expected `{'"))
> > (math-read-token)
> > (setq vec (cons (cons 'vec (math-read-expr-list)) vec))
> > (or (equal math-expr-data calc-function-close)
> > - (throw 'syntax "Expected ‘}’"))
> > + (throw 'syntax "Expected `}'"))
> > (math-read-token))
> > (or (equal math-expr-data calc-function-close)
> > - (throw 'syntax "Expected ‘}’"))
> > + (throw 'syntax "Expected `}'"))
> > (math-read-token)
> > (math-transpose (cons 'vec (nreverse vec)))))
> >
> > @@ -1187,7 +1187,7 @@
> > (math-read-expr-list))))
> > (if (not (or (equal math-expr-data calc-function-close)
> > (eq math-exp-token 'end)))
> > - (throw 'syntax "Expected ‘)’"))
> > + (throw 'syntax "Expected `)'"))
> > (math-read-token)
> > (cons (intern (format "calcFunc-%s'" (nth 1 x))) args)))
> > (list 'var
> > @@ -1211,7 +1211,7 @@
> > (interactive)
> > (calc-wrapper
> > (calc-set-language 'yacas)
> > - (message "‘Yacas’ language mode")))
> > + (message "Yacas language mode")))
> >
> > (put 'yacas 'math-vector-brackets "{}")
> >
> > @@ -1427,7 +1427,7 @@
> > (interactive)
> > (calc-wrapper
> > (calc-set-language 'maxima)
> > - (message "‘Maxima’ language mode")))
> > + (message "Maxima language mode")))
> >
> > (put 'maxima 'math-oper-table
> > '(("+" + 100 100)
> > @@ -1625,7 +1625,7 @@
> > (interactive)
> > (calc-wrapper
> > (calc-set-language 'giac)
> > - (message "‘Giac’ language mode")))
> > + (message "Giac language mode")))
> >
> > (put 'giac 'math-oper-table
> > '( ( "[" (math-read-giac-subscr) 250 -1 )
> > @@ -1817,7 +1817,7 @@ order to Calc's."
> > (defun math-read-giac-subscr (x op)
> > (let ((idx (math-read-expr-level 0)))
> > (or (equal math-expr-data "]")
> > - (throw 'syntax "Expected ‘]’"))
> > + (throw 'syntax "Expected `]'"))
> > (math-read-token)
> > (list 'calcFunc-subscr x (calc-normalize (list '+ idx 1)))))
> >
> > @@ -1954,7 +1954,7 @@ order to Calc's."
> > (progn
> > (math-read-token)
> > (equal math-expr-data "]")))
> > - (throw 'syntax "Expected ‘]]’"))
> > + (throw 'syntax "Expected `]]'"))
> > (math-read-token)
> > (list 'calcFunc-subscr x idx)))
> >
> > @@ -2237,7 +2237,7 @@ order to Calc's."
> > (if (= sep ?\.)
> > (setq h (1+ h)))
> > (if (= sep ?\])
> > - (math-read-big-error (1- h) v "Expected ‘)’"))
> > + (math-read-big-error (1- h) v "Expected `)'"))
> > (if (= sep ?\))
> > (setq p (math-read-big-rec
> > (1+ math-rb-h1) math-rb-v1 (1- h)
> math-rb-v2 v))
> > @@ -2252,7 +2252,7 @@ order to Calc's."
> > 0 1)
> > p))))
> > ((= (math-read-big-char (1- h) v) ?\])
> > - (math-read-big-error (1- h) v "Expected ‘)’"))
> > + (math-read-big-error (1- h) v "Expected `)'"))
> > ((= sep ?\,)
> > (or (and (math-realp (car p)) (math-realp (nth 1
> p)))
> > (math-read-big-error
> > @@ -2280,7 +2280,7 @@ order to Calc's."
> > (setq h (math-read-big-balance (1+ hleft) v "["))
> > (if hright
> > (or (= h hright)
> > - (math-read-big-error hright v "Expected
> ‘]’"))
> > + (math-read-big-error hright v "Expected
> `]'"))
> > (setq hright h))
> > (setq p (cons (math-read-big-rec
> > hleft v h (1+ v)) p))
> > @@ -2293,7 +2293,7 @@ order to Calc's."
> > (setq h (1+ h)))
> > (and (= (math-read-big-char h v) ?\])
> > (setq h (1+ h))))
> > - (math-read-big-error (1- h) v "Expected ‘]’"))
> > + (math-read-big-error (1- h) v "Expected `]'"))
> > (if (= (math-read-big-char h vtop) ?\,)
> > (setq h (1+ h)))
> > (math-read-big-emptyp math-rb-h1 (1+ v) (1- h) math-rb-v2
> nil t)
> > @@ -2317,7 +2317,7 @@ order to Calc's."
> > (setq widest (math-read-big-char (1- h) v))
> > (if (or (memq widest '(?\; ?\)))
> > (and (eq widest ?\.) (cdr p)))
> > - (math-read-big-error (1- h) v "Expected ‘]’"))
> > + (math-read-big-error (1- h) v "Expected `]'"))
> > (if (= widest ?\.)
> > (setq h (1+ h)
> > widest (math-read-big-balance h v "[")
> > @@ -2369,7 +2369,7 @@ order to Calc's."
> > h widest)
> > (= (math-read-big-char (1- h) v) ?\,)))
> > (or (= (math-read-big-char (1- h) v) ?\))
> > - (math-read-big-error (1- h) v "Expected ‘)’"))
> > + (math-read-big-error (1- h) v "Expected `)'"))
> > (setq p (cons line (nreverse p))))
> > (setq p (list 'var
> > (intern (math-remove-dashes p))
> > @@ -2433,7 +2433,7 @@ order to Calc's."
> > math-rb-v2 baseline nil t)))
> > (or (= (math-read-big-char math-read-big-h2 baseline)
> ?\:)
> > (math-read-big-error math-read-big-h2 baseline
> > - "Expected ‘:’"))
> > + "Expected `:'"))
> > (setq p (list (nth 1 widest) p y
> > (math-read-big-rec
> > (1+ math-read-big-h2) math-rb-v1
> math-rb-h2 math-rb-v2
> > @@ -2509,7 +2509,7 @@ order to Calc's."
> > (if (>= h len)
> > (if what
> > (math-read-big-error nil v (format-message
> > - "Unmatched ‘%s’" what))
> > + "Unmatched `%s'" what))
> > (setq count 0))
> > (if (memq (aref line h) '(?\( ?\[))
> > (setq count (1+ count))
> > diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el
> > index e141589..aa0ccb7 100644
> > --- a/lisp/calc/calc-misc.el
> > +++ b/lisp/calc/calc-misc.el
> > @@ -217,7 +217,7 @@ Calc user interface as before (either C-x * C or C-x
> * K; initially C-x * C).
> > (defun calc-help ()
> > (interactive)
> > (let ((msgs
> > - '("Press ‘h’ for complete help; press ‘?’ repeatedly for a
> summary"
> > + '("Press `h' for complete help; press `?' repeatedly for a
> summary"
> > "Letter keys: Negate; Precision; Yank; Why; Xtended cmd; Quit"
> > "Letter keys: SHIFT + Undo, reDo; Inverse, Hyperbolic, Option"
> > "Letter keys: SHIFT + sQrt; Sin, Cos, Tan; Exp, Ln, logB"
> > @@ -953,7 +953,7 @@ Prompts for bug subject. Leaves you in a mail
> buffer."
> > nil nil nil
> > "Please describe exactly what actions
> triggered the bug and the
> > precise symptoms of the bug. If possible, include a backtrace by
> > -doing ‘\\[toggle-debug-on-error]’, then reproducing the bug.
> > +doing `\\[toggle-debug-on-error]', then reproducing the bug.
> > " )))
> > ;;;###autoload
> > (defalias 'calc-report-bug 'report-calc-bug)
> > diff --git a/lisp/calc/calc-mode.el b/lisp/calc/calc-mode.el
> > index b5eef7f..3ed9612 100644
> > --- a/lisp/calc/calc-mode.el
> > +++ b/lisp/calc/calc-mode.el
> > @@ -110,11 +110,11 @@
> > (setq n (and (not (eq calc-auto-why t)) (if calc-auto-why t 1))))
> > (calc-change-mode 'calc-auto-why n nil)
> > (cond ((null n)
> > - (message "User must press ‘w’ to explain unsimplified
> results"))
> > + (message "User must press `w' to explain unsimplified
> results"))
> > ((eq n t)
> > - (message "Automatically doing ‘w’ to explain unsimplified
> results"))
> > + (message "Automatically doing `w' to explain unsimplified
> results"))
> > (t
> > - (message "Automatically doing ‘w’ only for unusual
> messages")))))
> > + (message "Automatically doing `w' only for unusual
> messages")))))
> >
> > (defun calc-group-digits (n)
> > (interactive "P")
> > @@ -272,7 +272,7 @@
> > (vals (mapcar (function (lambda (v) (symbol-value (car v))))
> > calc-mode-var-list)))
> > (unless calc-settings-file
> > - (error "No ‘calc-settings-file’ specified"))
> > + (error "No `calc-settings-file' specified"))
> > (set-buffer (find-file-noselect (substitute-in-file-name
> > calc-settings-file)))
> > (goto-char (point-min))
> > @@ -572,8 +572,8 @@
> > (calc-change-mode 'calc-auto-recompute arg nil t)
> > (calc-refresh-evaltos)
> > (message (if calc-auto-recompute
> > - "Automatically recomputing ‘=>’ forms when necessary"
> > - "Not recomputing ‘=>’ forms automatically"))))
> > + "Automatically recomputing `=>' forms when necessary"
> > + "Not recomputing `=>' forms automatically"))))
> >
> > (defun calc-working (n)
> > (interactive "P")
> > diff --git a/lisp/calc/calc-prog.el b/lisp/calc/calc-prog.el
> > index 58d2b5c..57af0d2 100644
> > --- a/lisp/calc/calc-prog.el
> > +++ b/lisp/calc/calc-prog.el
> > @@ -597,9 +597,9 @@
> > ",")
> > ((equal name "#")
> > (search-backward "#")
> > - (error "Token ‘#’ is reserved"))
> > + (error "Token `#' is reserved"))
> > ((and unquoted (string-match "#" name))
> > - (error "Tokens containing ‘#’ must be quoted"))
> > + (error "Tokens containing `#' must be quoted"))
> > ((not (string-match "[^ ]" name))
> > (search-backward "\"" nil t)
> > (error "Blank tokens are not allowed"))
> > @@ -610,7 +610,7 @@
> > (quoted nil))
> > (while (progn
> > (skip-chars-forward "\n\t ")
> > - (if (eobp) (error "Expected ‘%s’" eterm))
> > + (if (eobp) (error "Expected `%s'" eterm))
> > (not (looking-at term)))
> > (cond ((looking-at "%%")
> > (end-of-line))
> > @@ -618,7 +618,7 @@
> > (forward-char 2)
> > (let ((p (calc-read-parse-table-part "}" "}")))
> > (or (looking-at "[+*?]")
> > - (error "Expected ‘+’, ‘*’, or ‘?’"))
> > + (error "Expected `+', `*', or `?'"))
> > (let ((sym (intern (buffer-substring (point) (1+
> (point))))))
> > (forward-char 1)
> > (looking-at "[^\n\t ]*")
> > @@ -650,7 +650,7 @@
> > (match-end 1)))))))
> > (goto-char (match-end 0)))
> > ((looking-at ":=[\n\t ]")
> > - (error "Misplaced ‘:=’"))
> > + (error "Misplaced `:='"))
> > (t
> > (looking-at "[^\n\t ]*")
> > (let ((end (match-end 0)))
> > @@ -673,7 +673,7 @@
> > (or last-kbd-macro
> > (error "No keyboard macro defined"))
> > (setq calc-invocation-macro last-kbd-macro)
> > - (message "Use ‘C-x * Z’ to invoke this macro"))
> > + (message "Use `C-x * Z' to invoke this macro"))
> >
> > (defun calc-user-define-edit ()
> > (interactive) ; but no calc-wrapper!
> > @@ -1899,7 +1899,7 @@ Redefine the corresponding command."
> > `((and
> > (,chk ,var)
> > (math-reject-arg ,var ',qual)))))
> > - (error "Unknown qualifier ‘%s’" qual-name))))))))
> > + (error "Unknown qualifier `%s'" qual-name))))))))
> >
> > (defun math-do-arg-list-check (args is-opt is-rest)
> > (cond ((null args) nil)
> > diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el
> > index 4cf5b8c..3d8c865 100644
> > --- a/lisp/calc/calc-store.el
> > +++ b/lisp/calc/calc-store.el
> > @@ -443,7 +443,7 @@
> > (calc-edit-mode (list 'calc-finish-stack-edit (list 'quote var))
> > t
> > (format-message
> > - "Editing variable ‘%s’" (calc-var-name var)))
> > + "Editing variable `%s'" (calc-var-name var)))
> > (and value
> > (insert (math-format-nice-expr value (frame-width))
> "\n")))))
> > (calc-show-edit-buffer))
> > diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el
> > index d56c0b2..4373e52 100644
> > --- a/lisp/calc/calc-units.el
> > +++ b/lisp/calc/calc-units.el
> > @@ -1625,10 +1625,10 @@ If COMP or STD is non-nil, put that in the units
> table instead."
> > (format-message
> > (concat
> > "(**) When in TeX or LaTeX display mode, the TeX
> specific unit\n"
> > - "names will not use the ‘tex’ prefix; the unit name for
> a\n"
> > - "TeX point will be ‘pt’ instead of ‘texpt’, for
> example.\n"
> > + "names will not use the `tex' prefix; the unit name for
> a\n"
> > + "TeX point will be `pt' instead of `texpt', for
> example.\n"
> > "To avoid conflicts, the unit names for pint and parsec
> will\n"
> > - "be ‘pint’ and ‘parsec’ instead of ‘pt’ and ‘pc’."))))
> > + "be `pint' and `parsec' instead of `pt' and `pc'."))))
> > (view-mode)
> > (message "Formatting units table...done"))
> > (setq math-units-table-buffer-valid t)
> > diff --git a/lisp/calc/calc-vec.el b/lisp/calc/calc-vec.el
> > index c7a3e716..cd15770 100644
> > --- a/lisp/calc/calc-vec.el
> > +++ b/lisp/calc/calc-vec.el
> > @@ -1618,13 +1618,13 @@ of two matrices is a matrix."
> > (if (not (or (equal math-expr-data math-rb-close)
> > (equal math-expr-data ")")
> > (eq math-exp-token 'end)))
> > - (throw 'syntax "Expected ‘]’")))
> > + (throw 'syntax "Expected `]'")))
> > (if (equal math-expr-data ";")
> > (let ((math-exp-keep-spaces space-sep))
> > (setq vals (cons 'vec (math-read-matrix (list vals))))))
> > (if (not (or (equal math-expr-data math-rb-close)
> > (eq math-exp-token 'end)))
> > - (throw 'syntax "Expected ‘]’")))
> > + (throw 'syntax "Expected `]'")))
> > (or (eq math-exp-token 'end)
> > (math-read-token))
> > vals)))
> > diff --git a/lisp/calc/calc-yank.el b/lisp/calc/calc-yank.el
> > index cce0470..5694a4e 100644
> > --- a/lisp/calc/calc-yank.el
> > +++ b/lisp/calc/calc-yank.el
> > @@ -603,9 +603,9 @@ To cancel the edit, simply kill the *Calc Edit*
> buffer."
> > (insert (propertize
> > (concat
> > (or title title "Calc Edit Mode. ")
> > - (format-message "Press ‘C-c C-c’")
> > + (format-message "Press `C-c C-c'")
> > (if allow-ret "" " or RET")
> > - (format-message " to finish, ‘C-x k RET’ to cancel.\n\n"))
> > + (format-message " to finish, `C-x k RET' to cancel.\n\n"))
> > 'font-lock-face 'italic 'read-only t 'rear-nonsticky t
> 'front-sticky t))
> > (make-local-variable 'calc-edit-top)
> > (setq calc-edit-top (point))))
> > diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
> > index ea20986..b4b0ad8 100644
> > --- a/lisp/calc/calc.el
> > +++ b/lisp/calc/calc.el
> > @@ -989,11 +989,11 @@ Used by `calc-user-invocation'.")
> > (defvar calc-last-kill nil
> > "The last number killed in calc-mode.")
> > (defvar calc-dollar-values nil
> > - "Values to be used for ‘$’.")
> > + "Values to be used for `$'.")
> > (defvar calc-dollar-used nil
> > - "The highest order of ‘$’ that occurred.")
> > + "The highest order of `$' that occurred.")
> > (defvar calc-hashes-used nil
> > - "The highest order of ‘#’ that occurred.")
> > + "The highest order of `#' that occurred.")
> > (defvar calc-quick-prev-results nil
> > "Previous results from Quick Calc.")
> > (defvar calc-said-hello nil
> > @@ -1474,7 +1474,7 @@ commands given here will actually operate on the
> *Calculator* stack."
> > (and calc-display-trail
> > (= (window-width) (frame-width))
> > (calc-trail-display 1 t)))
> > - (message "Welcome to the GNU Emacs Calculator! Press ‘?’ or ‘h’
> for help, ‘q’ to quit")
> > + (message "Welcome to the GNU Emacs Calculator! Press `?' or `h'
> for help, `q' to quit")
> > (run-hooks 'calc-start-hook)
> > (and (windowp full-display)
> > (window-point full-display)
> > @@ -1622,7 +1622,7 @@ See calc-keypad for details."
> > (stringp (nth 1 err))
> > (string-match
> "max-specpdl-size\\|max-lisp-eval-depth"
> > (nth 1 err)))
> > - (error "Computation got stuck or ran too long. Type ‘M’
> to increase the limit")
> > + (error "Computation got stuck or ran too long. Type `M'
> to increase the limit")
> > (setq calc-aborted-prefix nil)
> > (signal (car err) (cdr err)))))
> > (when calc-aborted-prefix
> > @@ -3856,7 +3856,7 @@ Also looks for the equivalent TeX words, \\gets
> and \\evalto."
> > (defun calc-user-invocation ()
> > (interactive)
> > (unless calc-invocation-macro
> > - (error "Use ‘Z I’ inside Calc to define a ‘C-x * Z’ keyboard
> macro"))
> > + (error "Use `Z I' inside Calc to define a `C-x * Z' keyboard
> macro"))
> > (execute-kbd-macro calc-invocation-macro nil))
> >
> > ;;; User-programmability.
> > diff --git a/lisp/calculator.el b/lisp/calculator.el
> > index 49d47a0..80b7c07 100644
> > --- a/lisp/calculator.el
> > +++ b/lisp/calculator.el
> > @@ -1551,7 +1551,7 @@ Used by `calculator-paste' and `get-register'."
> > + - * / \\(div) %(rem) _(-X,postfix) ;(1/X,postfix) ^(exp) L(og)
> > Q(sqrt) !(fact) S(in) C(os) T(an) |(or) #(xor) &(and) ~(not)
> > * >/< repeats last binary operation with its 2nd (1st) arg as postfix op
> > -* I inverses next trig function * '/\"/{} - display/display args
> > +* I inverses next trig function * \\='/\"/{} - display/display
> args
> > * D - switch to all-decimal, or toggle deg/rad mode
> > * B/O/H/X - binary/octal/hex mode for i/o (X is a shortcut for H)
> > * i/o - prefix for d/b/o/x - set only input/output modes
> > diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
> > index 426bb28..d5d8a40 100644
> > --- a/lisp/calendar/appt.el
> > +++ b/lisp/calendar/appt.el
> > @@ -239,7 +239,7 @@ also calls `beep' for an audible reminder."
> > (wrong-type-argument
> > (if (not (listp mins))
> > (signal (car err) (cdr err))
> > - (message "Argtype error in ‘appt-disp-window-function’
> - \
> > + (message "Argtype error in `appt-disp-window-function'
> - \
> > update it for multiple appts?")
> > ;; Fallback to just displaying the first appt, as we
> used to.
> > (funcall appt-disp-window-function
> > diff --git a/lisp/calendar/cal-bahai.el b/lisp/calendar/cal-bahai.el
> > index b68ba8a..998dc6c 100644
> > --- a/lisp/calendar/cal-bahai.el
> > +++ b/lisp/calendar/cal-bahai.el
> > @@ -1,10 +1,10 @@
> > -;;; cal-bahai.el --- calendar functions for the Bahá'í calendar.
> > +;;; cal-bahai.el --- calendar functions for the Bahá’í calendar.
> >
> > ;; Copyright (C) 2001-2015 Free Software Foundation, Inc.
> >
> > ;; Author: John Wiegley <johnw@gnu.org>
> > ;; Keywords: calendar
> > -;; Human-Keywords: Bahá'í calendar, Bahá'í, Baha'i, Bahai, calendar,
> diary
> > +;; Human-Keywords: Bahá’í calendar, Bahá’í, Baha'i, Bahai, calendar,
> diary
> > ;; Package: calendar
> >
> > ;; This file is part of GNU Emacs.
> > @@ -25,9 +25,9 @@
> > ;;; Commentary:
> >
> > ;; This collection of functions implements the features of calendar.el
> > -;; and diary-lib.el that deal with the Bahá'í calendar.
> > +;; and diary-lib.el that deal with the Bahá’í calendar.
> >
> > -;; The Bahá'í (http://www.bahai.org) calendar system is based on a
> > +;; The Bahá’í (http://www.bahai.org) calendar system is based on a
> > ;; solar cycle of 19 months with 19 days each. The four remaining
> > ;; "intercalary" days are called the Ayyám-i-Há (days of Há), and are
> > ;; placed between the 18th and 19th months. They are meant as a time
> > @@ -59,13 +59,13 @@
> > ["Bahá" "Jalál" "Jamál" "‘Aẓamat" "Núr" "Raḥmat" "Kalimát" "Kamál"
> > "Asmá’" "‘Izzat" "Mashíyyat" "‘Ilm" "Qudrat" "Qawl" "Masá’il"
> > "Sharaf" "Sulṭán" "Mulk" "‘Alá’"]
> > - "Array of the month names in the Bahá'í calendar.")
> > + "Array of the month names in the Bahá’í calendar.")
> >
> > (defconst calendar-bahai-epoch (calendar-absolute-from-gregorian '(3 21
> 1844))
> > - "Absolute date of start of Bahá'í calendar = March 21, 1844 AD.")
> > + "Absolute date of start of Bahá’í calendar = March 21, 1844 AD.")
> >
> > (defun calendar-bahai-leap-year-p (year)
> > - "True if Bahá'í YEAR is a leap year in the Bahá'í calendar."
> > + "True if Bahá’í YEAR is a leap year in the Bahá’í calendar."
> > (calendar-leap-year-p (+ year 1844)))
> >
> > (defconst calendar-bahai-leap-base
> > @@ -74,7 +74,7 @@
> > Used by `calendar-bahai-to-absolute'.")
> >
> > (defun calendar-bahai-to-absolute (date)
> > - "Compute absolute date from Bahá'í date DATE.
> > + "Compute absolute date from Bahá’í date DATE.
> > The absolute date is the number of days elapsed since the (imaginary)
> > Gregorian date Sunday, December 31, 1 BC."
> > (let* ((month (calendar-extract-month date))
> > @@ -95,9 +95,9 @@ Gregorian date Sunday, December 31, 1 BC."
> > day))) ; days so far this month
> >
> > (defun calendar-bahai-from-absolute (date)
> > - "Bahá'í date (month day year) corresponding to the absolute DATE."
> > + "Bahá’í date (month day year) corresponding to the absolute DATE."
> > (if (< date calendar-bahai-epoch)
> > - (list 0 0 0) ; pre-Bahá'í date
> > + (list 0 0 0) ; pre-Bahá’í date
> > (let* ((greg (calendar-gregorian-from-absolute date))
> > (gmonth (calendar-extract-month greg))
> > (year (+ (- (calendar-extract-year greg) 1844)
> > @@ -116,7 +116,7 @@ Gregorian date Sunday, December 31, 1 BC."
> >
> > ;;;###cal-autoload
> > (defun calendar-bahai-date-string (&optional date)
> > - "String of Bahá'í date of Gregorian DATE.
> > + "String of Bahá’í date of Gregorian DATE.
> > Defaults to today's date if DATE is not given."
> > (let* ((bahai-date (calendar-bahai-from-absolute
> > (calendar-absolute-from-gregorian
> > @@ -142,19 +142,19 @@ Defaults to today's date if DATE is not given."
> >
> > ;;;###cal-autoload
> > (defun calendar-bahai-print-date ()
> > - "Show the Bahá'í calendar equivalent of the selected date."
> > + "Show the Bahá’í calendar equivalent of the selected date."
> > (interactive)
> > (let ((s (calendar-bahai-date-string (calendar-cursor-to-date t))))
> > (if (string-equal s "")
> > - (message "Date is pre-Bahá'í")
> > - (message "Bahá'í date: %s" s))))
> > + (message "Date is pre-Bahá’í")
> > + (message "Bahá’í date: %s" s))))
> >
> > (defun calendar-bahai-read-date ()
> > - "Interactively read the arguments for a Bahá'í date command.
> > + "Interactively read the arguments for a Bahá’í date command.
> > Reads a year, month and day."
> > (let* ((today (calendar-current-date))
> > (year (calendar-read
> > - "Bahá'í calendar year (not 0): "
> > + "Bahá’í calendar year (not 0): "
> > (lambda (x) (not (zerop x)))
> > (number-to-string
> > (calendar-extract-year
> > @@ -163,19 +163,19 @@ Reads a year, month and day."
> > (completion-ignore-case t)
> > (month (cdr (assoc
> > (completing-read
> > - "Bahá'í calendar month name: "
> > + "Bahá’í calendar month name: "
> > (mapcar 'list
> > (append calendar-bahai-month-name-array
> nil))
> > nil t)
> > (calendar-make-alist
> calendar-bahai-month-name-array
> > 1))))
> > - (day (calendar-read "Bahá'í calendar day (1-19): "
> > + (day (calendar-read "Bahá’í calendar day (1-19): "
> > (lambda (x) (and (< 0 x) (<= x 19))))))
> > (list (list month day year))))
> >
> > ;;;###cal-autoload
> > (defun calendar-bahai-goto-date (date &optional noecho)
> > - "Move cursor to Bahá'í date DATE; echo Bahá'í date unless NOECHO is
> non-nil."
> > + "Move cursor to Bahá’í date DATE; echo Bahá’í date unless NOECHO is
> non-nil."
> > (interactive (calendar-bahai-read-date))
> > (calendar-goto-date (calendar-gregorian-from-absolute
> > (calendar-bahai-to-absolute date)))
> > @@ -186,8 +186,8 @@ Reads a year, month and day."
> >
> > ;;;###holiday-autoload
> > (defun holiday-bahai (month day string)
> > - "Holiday on MONTH, DAY (Bahá'í) called STRING.
> > -If MONTH, DAY (Bahá'í) is visible in the current calendar window,
> > + "Holiday on MONTH, DAY (Bahá’í) called STRING.
> > +If MONTH, DAY (Bahá’í) is visible in the current calendar window,
> > returns the corresponding Gregorian date in the form of the
> > list (((month day year) STRING)). Otherwise, returns nil."
> > ;; Since the calendar window shows 3 months at a time, there are
> > @@ -199,7 +199,7 @@ list (((month day year) STRING)). Otherwise,
> returns nil."
> > (m (calendar-extract-month bahai-date))
> > (y (calendar-extract-year bahai-date))
> > date)
> > - (unless (< m 1) ; Bahá'í calendar doesn't apply
> > + (unless (< m 1) ; Bahá’í calendar doesn't apply
> > ;; Cf holiday-fixed, holiday-islamic.
> > ;; With a +- 3 month calendar window, and 19 months per year,
> > ;; month 16 is special. When m16 is central is when the
> > @@ -209,7 +209,7 @@ list (((month day year) STRING)). Otherwise,
> returns nil."
> > ;; To see if other months are visible we can shift the range
> > ;; accordingly.
> > (calendar-increment-month m y (- 16 month) 19)
> > - (and (> m 12) ; Bahá'í date might be visible
> > + (and (> m 12) ; Bahá’í date might be visible
> > (calendar-date-is-visible-p
> > (setq date (calendar-gregorian-from-absolute
> > (calendar-bahai-to-absolute (list month day
> y)))))
> > @@ -219,9 +219,9 @@ list (((month day year) STRING)). Otherwise,
> returns nil."
> >
> > ;;;###holiday-autoload
> > (defun holiday-bahai-new-year ()
> > - "Holiday entry for the Bahá'í New Year, if visible in the calendar
> window."
> > + "Holiday entry for the Bahá’í New Year, if visible in the calendar
> window."
> > (holiday-fixed 3 21
> > - (format "Bahá'í New Year (Naw-Ruz) %d"
> > + (format "Bahá’í New Year (Naw-Ruz) %d"
> > (- displayed-year (1- 1844)))))
> >
> > ;;;###holiday-autoload
> > @@ -246,12 +246,12 @@ Only considers the first, ninth, and twelfth days,
> unless ALL or
> >
> > ;;;###diary-autoload
> > (defun diary-bahai-list-entries ()
> > - "Add any Bahá'í date entries from the diary file to
> `diary-entries-list'.
> > -Bahá'í date diary entries must be prefaced by `diary-bahai-entry-symbol'
> > + "Add any Bahá’í date entries from the diary file to
> `diary-entries-list'.
> > +Bahá’í date diary entries must be prefaced by `diary-bahai-entry-symbol'
> > \(normally a `B'). The same diary date forms govern the style of the
> > -Bahá'í calendar entries, except that the Bahá'í month names cannot be
> > -abbreviated. The Bahá'í months are numbered from 1 to 19 with Bahá
> being
> > -1 and 19 being `Alá. If a Bahá'í date diary entry begins with
> > +Bahá’í calendar entries, except that the Bahá’í month names cannot be
> > +abbreviated. The Bahá’í months are numbered from 1 to 19 with Bahá
> being
> > +1 and 19 being `Alá. If a Bahá’í date diary entry begins with
> > `diary-nonmarking-symbol', the entry will appear in the diary listing,
> but
> > will not be marked in the calendar. This function is provided for use
> with
> > `diary-nongregorian-listing-hook'."
> > @@ -263,7 +263,7 @@ will not be marked in the calendar. This function
> is provided for use with
> >
> > ;;;###diary-autoload
> > (defun calendar-bahai-mark-date-pattern (month day year &optional color)
> > - "Mark dates in calendar window that conform to Bahá'í date
> MONTH/DAY/YEAR.
> > + "Mark dates in calendar window that conform to Bahá’í date
> MONTH/DAY/YEAR.
> > A value of 0 in any position is a wildcard. Optional argument COLOR is
> > passed to `calendar-mark-visible-date' as MARK."
> > (calendar-mark-1 month day year 'calendar-bahai-from-absolute
> > @@ -273,7 +273,7 @@ passed to `calendar-mark-visible-date' as MARK."
> >
> > ;;;###diary-autoload
> > (defun diary-bahai-mark-entries ()
> > - "Mark days in the calendar window that have Bahá'í date diary entries.
> > + "Mark days in the calendar window that have Bahá’í date diary entries.
> > Marks each entry in `diary-file' (or included files) visible in the
> calendar
> > window. See `diary-bahai-list-entries' for more information."
> > (diary-mark-entries-1 'calendar-bahai-mark-date-pattern
> > @@ -286,7 +286,7 @@ window. See `diary-bahai-list-entries' for more
> information."
> > ;;;###cal-autoload
> > (defun diary-bahai-insert-entry (arg)
> > "Insert a diary entry.
> > -For the Bahá'í date corresponding to the date indicated by point.
> > +For the Bahá’í date corresponding to the date indicated by point.
> > Prefix argument ARG makes the entry nonmarking."
> > (interactive "P")
> > (diary-insert-entry-1 nil arg calendar-bahai-month-name-array
> > @@ -296,7 +296,7 @@ Prefix argument ARG makes the entry nonmarking."
> > ;;;###cal-autoload
> > (defun diary-bahai-insert-monthly-entry (arg)
> > "Insert a monthly diary entry.
> > -For the day of the Bahá'í month corresponding to the date indicated by
> point.
> > +For the day of the Bahá’í month corresponding to the date indicated by
> point.
> > Prefix argument ARG makes the entry nonmarking."
> > (interactive "P")
> > (diary-insert-entry-1 'monthly arg calendar-bahai-month-name-array
> > @@ -306,7 +306,7 @@ Prefix argument ARG makes the entry nonmarking."
> > ;;;###cal-autoload
> > (defun diary-bahai-insert-yearly-entry (arg)
> > "Insert an annual diary entry.
> > -For the day of the Bahá'í year corresponding to the date indicated by
> point.
> > +For the day of the Bahá’í year corresponding to the date indicated by
> point.
> > Prefix argument ARG will make the entry nonmarking."
> > (interactive "P")
> > (diary-insert-entry-1 'yearly arg calendar-bahai-month-name-array
> > @@ -318,8 +318,8 @@ Prefix argument ARG will make the entry nonmarking."
> > ;; To be called from diary-list-sexp-entries, where DATE is bound.
> > ;;;###diary-autoload
> > (defun diary-bahai-date ()
> > - "Bahá'í calendar equivalent of date diary entry."
> > - (format "Bahá'í date: %s" (calendar-bahai-date-string date)))
> > + "Bahá’í calendar equivalent of date diary entry."
> > + (format "Bahá’í date: %s" (calendar-bahai-date-string date)))
> >
> >
> > (provide 'cal-bahai)
> > diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el
> > index 8a975d8..8bb1b88 100644
> > --- a/lisp/calendar/cal-hebrew.el
> > +++ b/lisp/calendar/cal-hebrew.el
> > @@ -611,7 +611,7 @@ is provided for use with
> `diary-nongregorian-listing-hook'."
> > "Mark dates in calendar window that conform to Hebrew date
> MONTH/DAY/YEAR.
> > A value of 0 in any position is a wildcard. Optional argument COLOR is
> > passed to `calendar-mark-visible-date' as MARK."
> > - ;; FIXME not the same as the Bahai and Islamic cases, so can't use
> > + ;; FIXME not the same as the Bahá’í and Islamic cases, so can't use
> > ;; calendar-mark-1.
> > (with-current-buffer calendar-buffer
> > (if (and (not (zerop month)) (not (zerop day)))
> > diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el
> > index 7462df8..251d811 100644
> > --- a/lisp/calendar/cal-menu.el
> > +++ b/lisp/calendar/cal-menu.el
> > @@ -52,7 +52,7 @@
> > ["Insert Anniversary" diary-insert-anniversary-entry]
> > ["Insert Block" diary-insert-block-entry]
> > ["Insert Cyclic" diary-insert-cyclic-entry]
> > - ("Insert Bahá'í"
> > + ("Insert Bahá’í"
> > ["One time" diary-bahai-insert-entry]
> > ["Monthly" diary-bahai-insert-monthly-entry]
> > ["Yearly" diary-bahai-insert-yearly-entry])
> > @@ -132,7 +132,7 @@
> > ["Astronomical Date" calendar-astro-goto-day-number]
> > ["Hebrew Date" calendar-hebrew-goto-date]
> > ["Persian Date" calendar-persian-goto-date]
> > - ["Bahá'í Date" calendar-bahai-goto-date]
> > + ["Bahá’í Date" calendar-bahai-goto-date]
> > ["Islamic Date" calendar-islamic-goto-date]
> > ["Julian Date" calendar-julian-goto-date]
> > ["Chinese Date" calendar-chinese-goto-date]
> > diff --git a/lisp/calendar/cal-tex.el b/lisp/calendar/cal-tex.el
> > index e2e9182..e512fae 100644
> > --- a/lisp/calendar/cal-tex.el
> > +++ b/lisp/calendar/cal-tex.el
> > @@ -1602,7 +1602,7 @@ informative header, and run HOOK."
> > (goto-char (point-min))
> > (when (search-forward "documentclass" nil t)
> > (forward-line 1)
> > - ;; Eg for some Bahai holidays.
> > + ;; E.g., for some Bahá’í holidays.
> > ;; FIXME latin1 might not always be right.
> > (insert "\\usepackage[latin1]{inputenc}\n"))))
> > (latex-mode)
> > diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
> > index 07977af..86e5477 100644
> > --- a/lisp/calendar/calendar.el
> > +++ b/lisp/calendar/calendar.el
> > @@ -42,7 +42,7 @@
> > ;; can be translated from the (usual) Gregorian calendar to the day of
> > ;; the year/days remaining in year, to the ISO commercial calendar, to
> > ;; the Julian (old style) calendar, to the Hebrew calendar, to the
> > -;; Islamic calendar, to the Bahá'í calendar, to the French
> > +;; Islamic calendar, to the Bahá’í calendar, to the French
> > ;; Revolutionary calendar, to the Mayan calendar, to the Chinese
> > ;; calendar, to the Coptic calendar, to the Ethiopic calendar, and to
> > ;; the astronomical (Julian) day number. Times of sunrise/sunset can
> > @@ -53,7 +53,7 @@
> > ;; The following files are part of the calendar/diary code:
> >
> > ;; appt.el Appointment notification
> > -;; cal-bahai.el Bahá'í calendar
> > +;; cal-bahai.el Bahá’í calendar
> > ;; cal-china.el Chinese calendar
> > ;; cal-coptic.el Coptic/Ethiopic calendars
> > ;; cal-dst.el Daylight saving time rules
> > @@ -375,7 +375,7 @@ When this expression is evaluated, DAY, MONTH, and
> YEAR are
> > integers appropriate to the relevant date. For example, to
> > display the ISO date:
> >
> > - (setq calendar-date-echo-text '(format \"ISO date: %s\"
> > + (setq calendar-date-echo-text \\='(format \"ISO date: %s\"
> > (calendar-iso-date-string
> > (list month day year))))
> > Changing this variable without using customize has no effect on
> > @@ -655,7 +655,7 @@ causes the diary entry \"Vacation\" to appear from
> November 1 through
> > November 10, 1990. See the documentation for the function
> > `diary-list-sexp-entries' for more details.
> >
> > -Diary entries based on the Hebrew, the Islamic and/or the Bahá'í
> > +Diary entries based on the Hebrew, the Islamic and/or the Bahá’í
> > calendar are also possible, but because these are somewhat slow, they
> > are ignored unless you set the `diary-nongregorian-listing-hook' and
> > the `diary-nongregorian-marking-hook' appropriately. See the
> > @@ -690,7 +690,7 @@ details, see the documentation for the variable
> `diary-list-entries-hook'."
> > :group 'diary)
> >
> > (defcustom diary-bahai-entry-symbol "B"
> > - "Symbol indicating a diary entry according to the Bahá'í calendar."
> > + "Symbol indicating a diary entry according to the Bahá’í calendar."
> > :type 'string
> > :group 'diary)
> >
> > @@ -1013,9 +1013,9 @@ calendar."
> > :group 'holidays)
> >
> > (defcustom calendar-bahai-all-holidays-flag nil
> > - "If nil, show only major holidays from the Bahá'í calendar.
> > + "If nil, show only major holidays from the Bahá’í calendar.
> > These are the days on which work and school must be suspended.
> > -Otherwise, show all the holidays that would appear in a complete Bahá'í
> > +Otherwise, show all the holidays that would appear in a complete Bahá’í
> > calendar."
> > :type 'boolean
> > :group 'holidays)
> > @@ -1708,13 +1708,13 @@ remaining in the year, and the ISO week/year
> numbers:
> >
> > (list
> > \"\"
> > - '(calendar-hebrew-date-string date)
> > - '(let* ((year (calendar-extract-year date))
> > + \\='(calendar-hebrew-date-string date)
> > + \\='(let* ((year (calendar-extract-year date))
> > (d (calendar-day-number date))
> > (days-remaining
> > (- (calendar-day-number (list 12 31 year)) d)))
> > (format \"%d/%d\" d days-remaining))
> > - '(let* ((d (calendar-absolute-from-gregorian date))
> > + \\='(let* ((d (calendar-absolute-from-gregorian date))
> > (iso-date (calendar-iso-from-absolute d)))
> > (format \"ISO week %d of %d\"
> > (calendar-extract-month iso-date)
> > @@ -2571,7 +2571,7 @@ DATE is (month day year). Calendars that do not
> apply are omitted."
> > (unless (string-equal
> > (setq odate (calendar-bahai-date-string date))
> > "")
> > - (format "Bahá'í date: %s" odate))
> > + (format "Bahá’í date: %s" odate))
> > (format "Chinese date: %s"
> > (calendar-chinese-date-string date))
> > (unless (string-equal
> > diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
> > index b21fc68..a1370bb 100644
> > --- a/lisp/calendar/diary-lib.el
> > +++ b/lisp/calendar/diary-lib.el
> > @@ -300,7 +300,7 @@ expressions that can involve the keywords `days' (a
> number), `date'
> >
> > (defcustom diary-abbreviated-year-flag t
> > "Interpret a two-digit year DD in a diary entry as either 19DD or
> 20DD.
> > -This applies to the Gregorian, Hebrew, Islamic, and Bahá'í calendars.
> > +This applies to the Gregorian, Hebrew, Islamic, and Bahá’í calendars.
> > When the current century is added to a two-digit year, if the result
> > is more than 50 years in the future, the previous century is assumed.
> > If the result is more than 50 years in the past, the next century is
> assumed.
> > @@ -484,8 +484,8 @@ If so, return the expanded file name, otherwise
> signal an error."
> > (if (and diary-file (file-exists-p diary-file))
> > (if (file-readable-p diary-file)
> > diary-file
> > - (error "Diary file ‘%s’ is not readable" diary-file))
> > - (error "Diary file ‘%s’ does not exist" diary-file)))
> > + (error "Diary file `%s' is not readable" diary-file))
> > + (error "Diary file `%s' does not exist" diary-file)))
> >
> > ;;;###autoload
> > (defun diary (&optional arg)
> > @@ -1199,7 +1199,7 @@ ensure that all relevant variables are set.
> > "
> > (interactive "P")
> > (if (string-equal diary-mail-addr "")
> > - (user-error "You must set ‘diary-mail-addr’ to use this command")
> > + (user-error "You must set `diary-mail-addr' to use this command")
> > (let ((diary-display-function 'diary-fancy-display))
> > (diary-list-entries (calendar-current-date) (or ndays
> diary-mail-days)))
> > (compose-mail diary-mail-addr
> > @@ -1531,7 +1531,7 @@ passed to `calendar-mark-visible-date' as MARK."
> > (calendar-mark-month m y month day year color)
> > (calendar-increment-month m y 1)))))
> >
> > -;; Bahai, Hebrew, Islamic.
> > +;; Bahá’í, Hebrew, Islamic.
> > (defun calendar-mark-complex (month day year fromabs &optional color)
> > "Mark dates in the calendar conforming to MONTH DAY YEAR of some
> system.
> > The function FROMABS converts absolute dates to the appropriate date
> system.
> > @@ -1561,7 +1561,7 @@ Optional argument COLOR is passed to
> `calendar-mark-visible-date' as MARK."
> > (calendar-mark-visible-date
> > (calendar-gregorian-from-absolute date) color)))))
> >
> > -;; Bahai, Islamic.
> > +;; Bahá’í, Islamic.
> > (defun calendar-mark-1 (month day year fromabs toabs &optional color)
> > "Mark dates in the calendar conforming to MONTH DAY YEAR of some
> system.
> > The function FROMABS converts absolute dates to the appropriate date
> system.
> > @@ -1659,8 +1659,8 @@ on a weekend:
> > &%%(let ((dayname (calendar-day-of-week date))
> > (day (calendar-extract-day date)))
> > (or
> > - (and (= day 21) (memq dayname '(1 2 3 4 5)))
> > - (and (memq day '(19 20)) (= dayname 5)))
> > + (and (= day 21) (memq dayname \\='(1 2 3 4 5)))
> > + (and (memq day \\='(19 20)) (= dayname 5)))
> > ) UIUC pay checks deposited
> >
> > A number of built-in functions are available for this type of
> > @@ -2529,7 +2529,7 @@ entry is found the user is asked to confirm its
> addition."
> > #'diary-from-outlook-rmail)
> > ((memq major-mode '(gnus-summary-mode gnus-article-mode))
> > #'diary-from-outlook-gnus)
> > - (t (error "Don't know how to snarf in ‘%s’"
> major-mode)))))
> > + (t (error "Don't know how to snarf in `%s'"
> major-mode)))))
> > (funcall func noconfirm)))
> >
> > (provide 'diary-lib)
> > diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el
> > index d282d74..bd3a558 100644
> > --- a/lisp/calendar/holidays.el
> > +++ b/lisp/calendar/holidays.el
> > @@ -173,15 +173,15 @@ See the documentation for `calendar-holidays' for
> details."
> > '((holiday-bahai-new-year)
> > (holiday-bahai-ridvan) ; respects
> calendar-bahai-all-holidays-flag
> > (holiday-fixed 5 23 "Declaration of the Báb")
> > - (holiday-fixed 5 29 "Ascension of Bahá'u'lláh")
> > + (holiday-fixed 5 29 "Ascension of Bahá’u’lláh")
> > (holiday-fixed 7 9 "Martyrdom of the Báb")
> > (holiday-fixed 10 20 "Birth of the Báb")
> > - (holiday-fixed 11 12 "Birth of Bahá'u'lláh")
> > + (holiday-fixed 11 12 "Birth of Bahá’u’lláh")
> > (if calendar-bahai-all-holidays-flag
> > (append
> > (holiday-fixed 11 26 "Day of the Covenant")
> > - (holiday-fixed 11 28 "Ascension of `Abdu'l-Bahá")))))
> > - "Bahá'í holidays.
> > + (holiday-fixed 11 28 "Ascension of `Abdu’l-Bahá")))))
> > + "Bahá’í holidays.
> > See the documentation for `calendar-holidays' for details."
> > :type 'sexp
> > :group 'holidays)
> > @@ -254,7 +254,7 @@ Several basic functions are provided for this
> purpose:
> > K>0, and MONTH's last day otherwise.
> > (holiday-hebrew MONTH DAY STRING) a fixed date on the Hebrew
> calendar
> > (holiday-islamic MONTH DAY STRING) a fixed date on the Islamic
> calendar
> > - (holiday-bahai MONTH DAY STRING) a fixed date on the Bahá'í
> calendar
> > + (holiday-bahai MONTH DAY STRING) a fixed date on the Bahá’í
> calendar
> > (holiday-julian MONTH DAY STRING) a fixed date on the Julian
> calendar
> > (holiday-sexp SEXP STRING) SEXP is a Gregorian-date-valued
> expression
> > in the variable `year'; if it evaluates
> to
> > @@ -282,11 +282,11 @@ To add the Islamic feast celebrating Mohammed's
> birthday, use
> > (holiday-islamic 3 12 \"Mohammed's Birthday\")
> >
> > since the Islamic months are numbered from 1 starting with Muharram.
> > -To add an entry for the Bahá'í festival of Ridvan, use
> > +To add an entry for the Bahá’í festival of Ridvan, use
> >
> > (holiday-bahai 2 13 \"Festival of Ridvan\")
> >
> > -since the Bahá'í months are numbered from 1 starting with Bahá.
> > +since the Bahá’í months are numbered from 1 starting with Bahá.
> > To add Thomas Jefferson's birthday, April 2, 1743 (Julian), use
> >
> > (holiday-julian 4 2 \"Jefferson's Birthday\")
> > @@ -296,7 +296,7 @@ example, to include American presidential elections,
> which occur on the first
> > Tuesday after the first Monday in November of years divisible by 4, add
> >
> > (holiday-sexp
> > - '(if (zerop (% year 4))
> > + \\='(if (zerop (% year 4))
> > (calendar-gregorian-from-absolute
> > (1+ (calendar-dayname-on-or-before
> > 1 (+ 6 (calendar-absolute-from-gregorian
> > @@ -460,7 +460,7 @@ The optional LABEL is used to label the buffer
> created."
> > (if holiday-islamic-holidays
> > (cons "Islamic" holiday-islamic-holidays))
> > (if holiday-bahai-holidays
> > - (cons "Bahá'í" holiday-bahai-holidays))
> > + (cons "Bahá’í" holiday-bahai-holidays))
> > (if holiday-oriental-holidays
> > (cons "Oriental" holiday-oriental-holidays))
> > (if holiday-solar-holidays
> > diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
> > index b75e442..4b71530 100644
> > --- a/lisp/calendar/icalendar.el
> > +++ b/lisp/calendar/icalendar.el
> > @@ -482,7 +482,7 @@ children."
> > result))
> >
> > (defun icalendar--split-value (value-string)
> > - "Split VALUE-STRING at ‘;=’."
> > + "Split VALUE-STRING at `;='."
> > (let ((result '())
> > param-name param-value)
> > (when value-string
> > @@ -1118,7 +1118,7 @@ FExport diary data into iCalendar file: ")
> > (setq found-error t)
> > (save-current-buffer
> > (set-buffer (get-buffer-create "*icalendar-errors*"))
> > - (insert (format-message "Error in line %d -- %s: ‘%s’\n"
> > + (insert (format-message "Error in line %d -- %s: `%s'\n"
> > (count-lines (point-min) (point))
> > error-val
> > entry-main))))))
> > @@ -1741,7 +1741,7 @@ entries. ENTRY-MAIN is the first line of the
> diary entry."
> > (when day
> > (progn
> > (icalendar--dmsg "diary-float %s" entry-main)
> > - (error "Don't know if or how to implement day in
> ‘diary-float’")))
> > + (error "Don't know if or how to implement day in
> `diary-float'")))
> >
> > (cons (concat
> > ;;Start today (yes this is an arbitrary choice):
> > @@ -1788,7 +1788,7 @@ entries. ENTRY-MAIN is the first line of the
> diary entry."
> > entry-main)
> > (progn
> > (icalendar--dmsg "diary-date %s" entry-main)
> > - (error "‘diary-date’ is not supported yet"))
> > + (error "`diary-date' is not supported yet"))
> > ;; no match
> > nil))
> >
> > @@ -2104,7 +2104,7 @@ written into the buffer `*icalendar-errors*'."
> > (rrule (icalendar--get-event-property e 'RRULE))
> > (rdate (icalendar--get-event-property e 'RDATE))
> > (duration (icalendar--get-event-property e 'DURATION)))
> > - (icalendar--dmsg "%s: ‘%s’" start-d summary)
> > + (icalendar--dmsg "%s: `%s'" start-d summary)
> > ;; check whether start-time is missing
> > (if (and dtstart
> > (string=
> > @@ -2282,7 +2282,7 @@ END-T is the event's end time in diary format."
> > interval))))
> > )
> > (t
> > - (message "Cannot handle COUNT attribute for ‘%s’
> events."
> > + (message "Cannot handle COUNT attribute for `%s'
> events."
> > frequency)))
> > (setq until-conv (icalendar--datetime-to-diary-date until))
> > (setq until-1-conv (icalendar--datetime-to-diary-date
> until-1))
> > @@ -2473,7 +2473,7 @@ SUMMARY is not nil it must be a string that gives
> the summary of the
> > entry. In this case the user will be asked whether he wants to insert
> > the entry."
> > (when (or (not summary)
> > - (y-or-n-p (format-message "Add appointment for ‘%s’ to
> diary? "
> > + (y-or-n-p (format-message "Add appointment for `%s' to
> diary? "
> > summary)))
> > (when summary
> > (setq non-marking
> > diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el
> > index c13ef97..bb7e97e 100644
> > --- a/lisp/calendar/time-date.el
> > +++ b/lisp/calendar/time-date.el
> > @@ -377,9 +377,9 @@ This function does not work for SECONDS greater than
> `most-positive-fixnum'."
> > spec (match-string 1 string))
> > (unless (string-equal spec "%")
> > (or (setq match (assoc (downcase spec) units))
> > - (error "Bad format specifier: ‘%s’" spec))
> > + (error "Bad format specifier: `%s'" spec))
> > (if (assoc (downcase spec) usedunits)
> > - (error "Multiple instances of specifier: ‘%s’" spec))
> > + (error "Multiple instances of specifier: `%s'" spec))
> > (if (string-equal (car match) "z")
> > (setq zeroflag t)
> > (unless larger
> > diff --git a/lisp/calendar/timeclock.el b/lisp/calendar/timeclock.el
> > index 797f217..67fc4c5 100644
> > --- a/lisp/calendar/timeclock.el
> > +++ b/lisp/calendar/timeclock.el
> > @@ -305,8 +305,8 @@ display (non-nil means on)."
> > ;; on calling this function.
> > (if display-time-mode
> > (timeclock-update-mode-line)
> > - (message "Activate ‘display-time-mode’ or turn off \
> > -‘timeclock-use-display-time’ to see timeclock information"))
> > + (message "Activate `display-time-mode' or turn off \
> > +`timeclock-use-display-time' to see timeclock information"))
> > (add-hook 'display-time-hook 'timeclock-update-mode-line))
> > (setq timeclock-update-timer
> > (run-at-time nil 60 'timeclock-update-mode-line))))
> > @@ -575,7 +575,7 @@ relative only to the time worked today, and not to
> past time."
> > OLD-DEFAULT hours are set for every day that has no number indicated."
> > (interactive "P")
> > (if old-default (setq old-default (prefix-numeric-value old-default))
> > - (error "‘timelog-make-hours-explicit’ requires an explicit
> argument"))
> > + (error "`timelog-make-hours-explicit' requires an explicit
> argument"))
> > (let ((extant-timelog (find-buffer-visiting timeclock-file))
> > current-date)
> > (with-current-buffer (find-file-noselect timeclock-file t)
> > @@ -589,7 +589,7 @@ OLD-DEFAULT hours are set for every day that has no
> number indicated."
> > (unless (looking-at
> > (concat "^\\([bhioO]\\)
> \\([0-9]+/[0-9]+/[0-9]+\\) "
> > "\\([0-9]+:[0-9]+:[0-9]+\\)"))
> > - (error "Can't parse ‘%s’" timeclock-file))
> > + (error "Can't parse `%s'" timeclock-file))
> > (let ((this-date (match-string 2)))
> > (unless (or (and current-date
> > (string= this-date current-date))
> > @@ -919,7 +919,7 @@ following format:
> > (DEBT ENTRIES-BY-DAY ENTRIES-BY-PROJECT)
> >
> > DEBT is a floating point number representing the number of seconds
> > -“owed” before any work was done. For a new file (one without a ‘b’
> > +“owed” before any work was done. For a new file (one without a `b'
> > entry), this is always zero.
> >
> > The two entries lists have similar formats. They are both alists,
> > diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
> > index 83f2fed..a04bf82 100644
> > --- a/lisp/calendar/todo-mode.el
> > +++ b/lisp/calendar/todo-mode.el
> > @@ -238,7 +238,7 @@ The final element is \"*\", indicating an
> unspecified month.")
> > (widget-put
> > widget :error
> > (format-message
> > - "Invalid value: must be distinct from
> ‘todo-item-mark’"))
> > + "Invalid value: must be distinct from
> `todo-item-mark'"))
> > widget)))
> > :initialize 'custom-initialize-default
> > :set 'todo-reset-prefix
> > @@ -1343,12 +1343,13 @@ todo or done items."
> > "deleting it will also delete the file.\n"
> > "Do you want to proceed? ")))
> > ((> archived 0)
> > - (todo-y-or-n-p (concat "This category has archived
> items; "
> > + (todo-y-or-n-p (format-message
> > + (concat "This category has archived
> items; "
> > "the archived category will
> remain\n"
> > "after deleting the todo category.
> "
> > "Do you still want to delete it\n"
> > - "(see
> ‘todo-skip-archived-categories’ "
> > - "for another option)? ")))
> > + "(see
> `todo-skip-archived-categories' "
> > + "for another option)? "))))
> > (t
> > (todo-y-or-n-p (concat "Permanently remove category
> \"" cat
> > "\"" (and arg " and all its
> entries")
> > @@ -1696,7 +1697,7 @@ only when no items are marked."
> > (widget-put
> > widget :error
> > (format-message
> > - "Invalid value: must be distinct from
> ‘todo-prefix’"))
> > + "Invalid value: must be distinct from
> `todo-prefix'"))
> > widget)))
> > :set (lambda (symbol value)
> > (custom-set-default symbol (propertize value 'face 'todo-mark)))
> > @@ -5036,7 +5037,7 @@ but the categories sexp differs from the current
> value of
> > ;; Warn user if categories sexp has changed.
> > (unless (string= ssexp cats)
> > (message (concat "The sexp at the beginning of the file
> differs "
> > - "from the value of ‘todo-categories’.\n"
> > + "from the value of `todo-categories'.\n"
> > "If the sexp is wrong, you can fix it with "
> > "M-x todo-repair-categories-sexp,\n"
> > "but note this reverts any changes you have "
> > @@ -5533,7 +5534,7 @@ already entered and those still available."
> > (todo-insert-item--this-key)
> > todo-insert-item--argsleft)))))))))
> > (setq todo-insert-item--argsleft todo-insert-item--newargsleft))
> > - (when prompt (message "Press a key (so far ‘%s’): %s"
> > + (when prompt (message "Press a key (so far `%s'): %s"
> > todo-insert-item--keys-so-far prompt))
> > (set-transient-map map)
> > (setq todo-insert-item--argsleft argsleft)))
> > @@ -5576,7 +5577,8 @@ already entered and those still available."
> > '(add/edit
> delete))
> > " comment"))))
> > params " "))
> > - (this-key (let ((key (read-key (concat todo-edit-item--prompt
> p->k))))
> > + (key-prompt (substitute-command-keys todo-edit-item--prompt))
> > + (this-key (let ((key (read-key (concat key-prompt p->k))))
> > (and (characterp key) (char-to-string key))))
> > (this-param (car (rassoc this-key params))))
> > (pcase this-param
> > @@ -5587,7 +5589,7 @@ already entered and those still available."
> > (`delete (todo-edit-item--text 'comment-delete))
> > (`diary (todo-edit-item--diary-inclusion))
> > (`nonmarking (todo-edit-item--diary-inclusion 'nonmarking))
> > - (`date (let ((todo-edit-item--prompt "Press a key (so far ‘e d’):
> "))
> > + (`date (let ((todo-edit-item--prompt "Press a key (so far `e d'):
> "))
> > (todo-edit-item--next-key
> > todo-edit-item--date-param-key-alist arg)))
> > (`full (progn (todo-edit-item--header 'date)
> > @@ -6602,7 +6604,7 @@ Added to `window-configuration-change-hook' in
> Todo mode."
> > (if (called-interactively-p 'any)
> > (message "%s"
> > (substitute-command-keys
> > - "Type ‘\\[todo-show]’ to enter Todo mode"))
> > + "Type `\\[todo-show]' to enter Todo mode"))
> > (todo-modes-set-1)
> > (todo-modes-set-2)
> > (todo-modes-set-3)
> > diff --git a/lisp/cedet/cedet-global.el b/lisp/cedet/cedet-global.el
> > index 9e31177..3773ba0 100644
> > --- a/lisp/cedet/cedet-global.el
> > +++ b/lisp/cedet/cedet-global.el
> > @@ -36,7 +36,7 @@
> >
> > (defcustom cedet-global-gtags-command "gtags"
> > "Command name for the GNU Global gtags executable.
> > -GTAGS is used to create the tags table queried by the ‘global’ command."
> > +GTAGS is used to create the tags table queried by the `global' command."
> > :type 'string
> > :group 'cedet)
> >
> > diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el
> > index 7d99b17..27d7abe 100644
> > --- a/lisp/cedet/ede.el
> > +++ b/lisp/cedet/ede.el
> > @@ -764,7 +764,7 @@ Optional argument NAME is the name to give this
> project."
> > (if cs
> > (error "No valid interactive sub
> project types for %s"
> > cs)
> > - (error "EDE error: Can't fin project
> types to create")))
> > + (error "EDE error: Can't find project
> types to create")))
> > r)
> > )
> > nil t)))
> > diff --git a/lisp/cedet/ede/auto.el b/lisp/cedet/ede/auto.el
> > index 51459fa..b4fea42 100644
> > --- a/lisp/cedet/ede/auto.el
> > +++ b/lisp/cedet/ede/auto.el
> > @@ -239,9 +239,9 @@ type is required and the load function used.")
> > "Add PROJAUTO, an EDE autoload definition to
> `ede-project-class-files'.
> > Optional argument FLAG indicates how this autoload should be
> > added. Possible values are:
> > - 'generic - A generic project type. Keep this at the very end.
> > - 'unique - A unique project type for a specific project. Keep at the
> very
> > - front of the list so more generic projects don't get
> priority."
> > + `generic' - A generic project type. Keep this at the very end.
> > + `unique' - A unique project type for a specific project. Keep at the
> very
> > + 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 (oref projauto name)))
> > diff --git a/lisp/cedet/ede/pmake.el b/lisp/cedet/ede/pmake.el
> > index 1318fde..b494e27 100644
> > --- a/lisp/cedet/ede/pmake.el
> > +++ b/lisp/cedet/ede/pmake.el
> > @@ -599,7 +599,7 @@ Argument THIS is the target that should insert
> stuff."
> > "It needs to be regenerated by EDE.\n"
> > "\t@echo If you have not modified Project.ede, you can"
> > (format-message
> > - " use ‘touch’ to update the Makefile time stamp.\n")
> > + " use `touch' to update the Makefile time stamp.\n")
> > "\t@false\n\n"
> > "\n\n# End of Makefile\n")))
> >
> > diff --git a/lisp/cedet/inversion.el b/lisp/cedet/inversion.el
> > index 8409b73..9d07b67 100644
> > --- a/lisp/cedet/inversion.el
> > +++ b/lisp/cedet/inversion.el
> > @@ -230,8 +230,8 @@ string. INCOMPATIBLE-VERSION can be nil.
> > RESERVED arguments are kept for a later use.
> > Return:
> > - nil if everything is ok.
> > -- 'outdated if VERSION is less than MINIMUM.
> > -- 'incompatible if VERSION is not backward compatible with MINIMUM.
> > +- `outdated' if VERSION is less than MINIMUM.
> > +- `incompatible' if VERSION is not backward compatible with MINIMUM.
> > - t if the check failed."
> > (let ((code (if (stringp version)
> > (inversion-decode-version version)
> > diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el
> > index 72512c6..64c1f08 100644
> > --- a/lisp/cedet/mode-local.el
> > +++ b/lisp/cedet/mode-local.el
> > @@ -50,7 +50,7 @@
> >
> > (require 'find-func)
> > ;; For find-function-regexp-alist. It is tempting to replace this
> > -;; ‘require‘ by (defvar find-function-regexp-alist) and
> > +;; ‘require’ by (defvar find-function-regexp-alist) and
> > ;; with-eval-after-load, but model-local.el is typically loaded when a
> > ;; semantic autoload is invoked, and something in semantic loads
> > ;; find-func.el before mode-local.el, so the eval-after-load is lost.
> > @@ -658,7 +658,7 @@ SYMBOL is a function that can be overridden."
> > (override (fetch-overload symbol)))
> >
> > (when override
> > - (insert (format-message "\noverride in mode ‘%s’: ’%s’\n"
> > + (insert (format-message "\noverride in mode `%s': `%s'\n"
> > major-mode override))
> > )))
> > )))
> > @@ -760,9 +760,9 @@ META-NAME is a cons (OVERLOADABLE-SYMBOL .
> MAJOR-MODE)."
> > (defun mode-local-print-binding (symbol)
> > "Print the SYMBOL binding."
> > (let ((value (symbol-value symbol)))
> > - (princ (format-message "\n ‘%s’ value is\n " symbol))
> > + (princ (format-message "\n `%s' value is\n " symbol))
> > (if (and value (symbolp value))
> > - (princ (format-message "‘%s’" value))
> > + (princ (format-message "`%s'" value))
> > (let ((pt (point)))
> > (pp value)
> > (save-excursion
> > @@ -820,7 +820,7 @@ META-NAME is a cons (OVERLOADABLE-SYMBOL .
> MAJOR-MODE)."
> > )
> > ((symbolp buffer-or-mode)
> > (setq mode buffer-or-mode)
> > - (princ (format-message "‘%s’\n" buffer-or-mode))
> > + (princ (format-message "`%s'\n" buffer-or-mode))
> > )
> > ((signal 'wrong-type-argument
> > (list 'buffer-or-mode buffer-or-mode))))
> > @@ -830,7 +830,7 @@ META-NAME is a cons (OVERLOADABLE-SYMBOL .
> MAJOR-MODE)."
> > (while mode
> > (setq table (get mode 'mode-local-symbol-table))
> > (when table
> > - (princ (format-message "\n- From ‘%s’\n" mode))
> > + (princ (format-message "\n- From `%s'\n" mode))
> > (mode-local-print-bindings table))
> > (setq mode (get-mode-local-parent mode)))))
> >
> > diff --git a/lisp/cedet/semantic/analyze.el
> b/lisp/cedet/semantic/analyze.el
> > index 7ff6977..fe888f5 100644
> > --- a/lisp/cedet/semantic/analyze.el
> > +++ b/lisp/cedet/semantic/analyze.el
> > @@ -251,7 +251,7 @@ are found in SEQUENCE.
> > Optional argument THROWSYM specifies a symbol the throw on
> non-recoverable error.
> > Remaining arguments FLAGS are additional flags to apply when searching.
> > This function knows of flags:
> > - 'mustbeclassvariable"
> > + `mustbeclassvariable'"
> > (let ((s sequence) ; copy of the sequence
> > (tmp nil) ; tmp find variable
> > (tag nil) ; tag return list
> > @@ -263,7 +263,7 @@ This function knows of flags:
> > )
> > ;; First order check. Is this wholly contained in the typecache?
> > (setq tmp (semanticdb-typecache-find sequence))
> > -
> > +
> > (when tmp
> > (if (or (not tagclass) (semantic-tag-of-class-p tmp tagclass))
> > ;; We are effectively done...
> > @@ -709,7 +709,7 @@ Returns nil if no alias was found."
> > (when (eq (semantic-tag-get-attribute (car taglist) :kind) 'alias)
> > (let ((tagname
> > (semantic-analyze-split-name
> > - (semantic-tag-name
> > + (semantic-tag-name
> > (car (semantic-tag-get-attribute (car taglist)
> :members))))))
> > (append (if (listp tagname)
> > tagname
> > diff --git a/lisp/cedet/semantic/analyze/complete.el
> b/lisp/cedet/semantic/analyze/complete.el
> > index c47b573..680a0ae 100644
> > --- a/lisp/cedet/semantic/analyze/complete.el
> > +++ b/lisp/cedet/semantic/analyze/complete.el
> > @@ -112,9 +112,9 @@ in a buffer."
> > Argument CONTEXT is an object specifying the locally derived context.
> > The optional argument FLAGS changes which return options are returned.
> > FLAGS can be any number of:
> > - 'no-tc - do not apply data-type constraint.
> > - 'no-longprefix - ignore long multi-symbol prefixes.
> > - 'no-unique - do not apply unique by name filtering."
> > + `no-tc' - do not apply data-type constraint.
> > + `no-longprefix' - ignore long multi-symbol prefixes.
> > + `no-unique' - do not apply unique by name filtering."
> > (let* ((a context)
> > (desired-type (semantic-analyze-type-constraint a))
> > (desired-class (oref a prefixclass))
> > diff --git a/lisp/cedet/semantic/bovine/gcc.el
> b/lisp/cedet/semantic/bovine/gcc.el
> > index fe7a144..1d3f773 100644
> > --- a/lisp/cedet/semantic/bovine/gcc.el
> > +++ b/lisp/cedet/semantic/bovine/gcc.el
> > @@ -137,9 +137,9 @@ to give to the program."
> > "The GCC setup data.
> > This is setup by `semantic-gcc-setup'.
> > This is an alist, and should include keys of:
> > - 'version - the version of gcc
> > - '--host - the host symbol (used in include directories)
> > - '--prefix - where GCC was installed.
> > + `version' - the version of gcc
> > + `--host' - the host symbol (used in include directories)
> > + `--prefix' - where GCC was installed.
> > It should also include other symbols GCC was compiled with.")
> >
> > ;;;###autoload
> > diff --git a/lisp/cedet/semantic/complete.el
> b/lisp/cedet/semantic/complete.el
> > index 9c32388..d32b2c4 100644
> > --- a/lisp/cedet/semantic/complete.el
> > +++ b/lisp/cedet/semantic/complete.el
> > @@ -1665,7 +1665,7 @@ Display mechanism using tooltip for a list of
> possible completions.")
> > (when (>= (oref obj typing-count) 5)
> > (oset obj mode 'standard)
> > (setq mode 'standard)
> > - (message "Resetting inline-mode to ‘standard’."))
> > + (message "Resetting inline-mode to `standard'."))
> > (when (and (> numcompl max-tags)
> > (< (oref obj typing-count) 2))
> > ;; Discretely hint at completion availability.
> > @@ -1684,7 +1684,7 @@ Display mechanism using tooltip for a list of
> possible completions.")
> > (setq msg-tail (concat "\n[<TAB> " (number-to-string (-
> numcompl max-tags)) " more]"))
> > (setq msg-tail (concat "\n[<n/a> " (number-to-string (-
> numcompl max-tags)) " more]"))
> > (when (>= (oref obj typing-count) 2)
> > - (message "Refine search to display results beyond the ‘%s’
> limit"
> > + (message "Refine search to display results beyond the `%s'
> limit"
> > (symbol-name
> 'semantic-complete-inline-max-tags-extended)))))
> > ((= numcompl 1)
> > ;; two possible cases
> > diff --git a/lisp/cedet/semantic/db-find.el
> b/lisp/cedet/semantic/db-find.el
> > index ff3431a..293f535 100644
> > --- a/lisp/cedet/semantic/db-find.el
> > +++ b/lisp/cedet/semantic/db-find.el
> > @@ -297,7 +297,7 @@ refreshed when things change. See
> `semanticdb-ref-test'.
> > Note for overloading: If you opt to overload this function for your
> > major mode, and your routine takes a long time, be sure to call
> >
> > - (semantic-throw-on-input 'your-symbol-here)
> > + (semantic-throw-on-input \\='your-symbol-here)
> >
> > so that it can be called from the idle work handler."
> > )
> > diff --git a/lisp/cedet/semantic/decorate/include.el
> b/lisp/cedet/semantic/decorate/include.el
> > index 962dc49..1974e0a 100644
> > --- a/lisp/cedet/semantic/decorate/include.el
> > +++ b/lisp/cedet/semantic/decorate/include.el
> > @@ -540,7 +540,7 @@ For C/C++ includes located within a project, you can
> use a special
> > EDE project that will wrap an existing build system. You can do that
> > like this in your .emacs file:
> >
> > - (ede-cpp-root-project \"NAME\" :file \"FILENAME\" :locate-fcn 'MYFCN)
> > + (ede-cpp-root-project \"NAME\" :file \"FILENAME\" :locate-fcn
> \\='MYFCN)
> >
> > See the CEDET manual, the EDE manual, or the commentary in
> > ede/cpp-root.el for more.
> > diff --git a/lisp/cedet/semantic/fw.el b/lisp/cedet/semantic/fw.el
> > index 0e81b2c..d8ba6f2 100644
> > --- a/lisp/cedet/semantic/fw.el
> > +++ b/lisp/cedet/semantic/fw.el
> > @@ -173,10 +173,10 @@ recover the cached data with
> `semantic-get-cache-data'.
> > LIFESPAN indicates how long the data cache will be remembered.
> > The default LIFESPAN is 'end-of-command.
> > Possible Lifespans are:
> > - 'end-of-command - Remove the cache at the end of the currently
> > - executing command.
> > - 'exit-cache-zone - Remove when point leaves the overlay at the
> > - end of the currently executing command."
> > + `end-of-command' - Remove the cache at the end of the currently
> > + executing command.
> > + `exit-cache-zone' - Remove when point leaves the overlay at the
> > + end of the currently executing command."
> > ;; Check if LIFESPAN is valid before to create any overlay
> > (or lifespan (setq lifespan 'end-of-command))
> > (or (memq lifespan '(end-of-command exit-cache-zone))
> > diff --git a/lisp/cedet/semantic/java.el b/lisp/cedet/semantic/java.el
> > index fc02d03..829eafa 100644
> > --- a/lisp/cedet/semantic/java.el
> > +++ b/lisp/cedet/semantic/java.el
> > @@ -369,7 +369,7 @@ That is @NAME."
> >
> > (defsubst semantic-java-doc-tag-name (tag)
> > "Return name of the doc TAG symbol.
> > -That is TAG `symbol-name' without the leading ‘@’."
> > +That is TAG `symbol-name' without the leading `@'."
> > (substring (symbol-name tag) 1))
> >
> > (defun semantic-java-doc-keyword-before-p (k1 k2)
> > diff --git a/lisp/cedet/semantic/tag-ls.el
> b/lisp/cedet/semantic/tag-ls.el
> > index 40eafd9..fe4440b 100644
> > --- a/lisp/cedet/semantic/tag-ls.el
> > +++ b/lisp/cedet/semantic/tag-ls.el
> > @@ -271,11 +271,11 @@ search locally, then semanticdb for that tag (when
> enabled.)")
> > (define-overloadable-function semantic-tag-protection (tag &optional
> parent)
> > "Return protection information about TAG with optional PARENT.
> > This function returns on of the following symbols:
> > - nil - No special protection. Language dependent.
> > - 'public - Anyone can access this TAG.
> > - 'private - Only methods in the local scope can access TAG.
> > - 'protected - Like private for outside scopes, like public for child
> > - classes.
> > + nil - No special protection. Language dependent.
> > + `public' - Anyone can access this TAG.
> > + `private' - Only methods in the local scope can access TAG.
> > + `protected' - Like private for outside scopes, like public for child
> > + classes.
> > Some languages may choose to provide additional return symbols specific
> > to themselves. Use of this function should allow for this.
> >
> > diff --git a/lisp/cedet/semantic/wisent/javascript.el
> b/lisp/cedet/semantic/wisent/javascript.el
> > index b2a18fb..a676a8b 100644
> > --- a/lisp/cedet/semantic/wisent/javascript.el
> > +++ b/lisp/cedet/semantic/wisent/javascript.el
> > @@ -73,11 +73,11 @@ This function overrides `get-local-variables'."
> > (define-mode-local-override semantic-tag-protection javascript-mode
> (tag &optional parent)
> > "Return protection information about TAG with optional PARENT.
> > This function returns on of the following symbols:
> > - nil - No special protection. Language dependent.
> > - 'public - Anyone can access this TAG.
> > - 'private - Only methods in the local scope can access TAG.
> > - 'protected - Like private for outside scopes, like public for child
> > - classes.
> > + nil - No special protection. Language dependent.
> > + `public' - Anyone can access this TAG.
> > + `private' - Only methods in the local scope can access TAG.
> > + `protected' - Like private for outside scopes, like public for child
> > + classes.
> > Some languages may choose to provide additional return symbols specific
> > to themselves. Use of this function should allow for this.
> >
> > @@ -114,7 +114,7 @@ This is currently needed for the mozrepl omniscient
> database."
> > (setq symlist (list (match-string 1 tmp)
> > (substring tmp (1+ (match-end 1))
> (length tmp))))
> > (setq symlist (list tmp))))))))
> > -
> > +
> > ;;; Setup Function
> > ;;
> > ;; Since javascript-mode is an alias for js-mode, let it inherit all
> > diff --git a/lisp/cedet/srecode/insert.el b/lisp/cedet/srecode/insert.el
> > index d1b0015..2ff3060 100644
> > --- a/lisp/cedet/srecode/insert.el
> > +++ b/lisp/cedet/srecode/insert.el
> > @@ -45,9 +45,9 @@
> > Only the ASK style inserter will query the user for a value.
> > Dictionary value references that ask begin with the ? character.
> > Possible values are:
> > - 'ask - Prompt in the minibuffer as the value is inserted.
> > - 'field - Use the dictionary macro name as the inserted value,
> > - and place a field there. Matched fields change together.
> > + `ask' - Prompt in the minibuffer as the value is inserted.
> > + `field' - Use the dictionary macro name as the inserted value,
> > + and place a field there. Matched fields change together.
> >
> > NOTE: The field feature does not yet work with XEmacs."
> > :group 'srecode
> > diff --git a/lisp/cedet/srecode/srt-mode.el
> b/lisp/cedet/srecode/srt-mode.el
> > index 48f0555..7fc3541 100644
> > --- a/lisp/cedet/srecode/srt-mode.el
> > +++ b/lisp/cedet/srecode/srt-mode.el
> > @@ -258,9 +258,9 @@ we can tell font lock about them.")
> > (when (class-abstract-p C)
> > (throw 'skip nil))
> >
> > - (princ (substitute-command-keys "‘"))
> > + (princ (substitute-command-keys "`"))
> > (princ name)
> > - (princ (substitute-command-keys "’"))
> > + (princ (substitute-command-keys "'"))
> > (when (slot-exists-p C 'key)
> > (when key
> > (princ " - Character Key: ")
> > diff --git a/lisp/comint.el b/lisp/comint.el
> > index b840a22..ead2757 100644
> > --- a/lisp/comint.el
> > +++ b/lisp/comint.el
> > @@ -2850,7 +2850,7 @@ then the filename reader will only accept a file
> that exists.
> >
> > A typical use:
> > (interactive (comint-get-source \"Compile file: \" prev-lisp-dir/file
> > - '(lisp-mode) t))"
> > + \\='(lisp-mode) t))"
> > (let* ((def (comint-source-default prev-dir/file source-modes))
> > (stringfile (comint-extract-string))
> > (sfile-p (and stringfile
> > diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
> > index 08c1acd..aa26ac3 100644
> > --- a/lisp/cus-edit.el
> > +++ b/lisp/cus-edit.el
> > @@ -477,7 +477,7 @@
> > (defun custom-split-regexp-maybe (regexp)
> > "If REGEXP is a string, split it to a list at `\\|'.
> > You can get the original back from the result with:
> > - (mapconcat 'identity result \"\\|\")
> > + (mapconcat \\='identity result \"\\|\")
> >
> > IF REGEXP is not a string, return it unchanged."
> > (if (stringp regexp)
> > diff --git a/lisp/cus-start.el b/lisp/cus-start.el
> > index 7e25119..dc40ca9 100644
> > --- a/lisp/cus-start.el
> > +++ b/lisp/cus-start.el
> > @@ -626,7 +626,7 @@ since it could result in memory overflow and make
> Emacs crash."
> > (if (not (boundp symbol))
> > ;; If variables are removed from C code, give an error here!
> > (and native-p
> > - (message "Note, built-in variable ‘%S’ not bound" symbol))
> > + (message "Note, built-in variable `%S' not bound" symbol))
> > ;; Save the standard value, unless we already did.
> > (or (get symbol 'standard-value)
> > (put symbol 'standard-value (list standard)))
> > diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el
> > index 7693c70..3ec0811 100644
> > --- a/lisp/cus-theme.el
> > +++ b/lisp/cus-theme.el
> > @@ -492,10 +492,10 @@ It includes all faces in list FACES."
> > '("" "c")))
> > doc)
> > (when fn
> > - (princ (substitute-command-keys " in ‘"))
> > + (princ (substitute-command-keys " in `"))
> > (help-insert-xref-button (file-name-nondirectory fn)
> > 'help-theme-def fn)
> > - (princ (substitute-command-keys "’")))
> > + (princ (substitute-command-keys "'")))
> > (princ ".\n")
> > (if (custom-theme-p theme)
> > (progn
> > diff --git a/lisp/custom.el b/lisp/custom.el
> > index f2b5d52..ea5ab7a 100644
> > --- a/lisp/custom.el
> > +++ b/lisp/custom.el
> > @@ -548,13 +548,13 @@ VALUE should be a list of symbols. For each
> symbol in that list,
> > this specifies that SYMBOL should be set after the specified symbol,
> > if both appear in constructs like `custom-set-variables'."
> > (unless (listp value)
> > - (error "Invalid custom dependency ‘%s’" value))
> > + (error "Invalid custom dependency `%s'" value))
> > (let* ((deps (get symbol 'custom-dependencies))
> > (new-deps deps))
> > (while value
> > (let ((dep (car value)))
> > (unless (symbolp dep)
> > - (error "Invalid custom dependency ‘%s’" dep))
> > + (error "Invalid custom dependency `%s'" dep))
> > (unless (memq dep new-deps)
> > (setq new-deps (cons dep new-deps)))
> > (setq value (cdr value))))
> > @@ -830,7 +830,7 @@ to the front of this list.")
> > (defsubst custom-check-theme (theme)
> > "Check whether THEME is valid, and signal an error if it is not."
> > (unless (custom-theme-p theme)
> > - (error "Unknown theme ‘%s’" theme)))
> > + (error "Unknown theme `%s'" theme)))
> >
> > (defun custom-push-theme (prop symbol theme mode &optional value)
> > "Record VALUE for face or variable SYMBOL in custom theme THEME.
> > @@ -1043,7 +1043,7 @@ list, in which A occurs before B if B was defined
> with a
> > (when elt
> > (cond
> > ((eq (car elt) 'dependant)
> > - (error "Circular custom dependency on ‘%s’" sym))
> > + (error "Circular custom dependency on `%s'" sym))
> > ((car elt)
> > (setcar elt 'dependant)
> > (dolist (dep (get sym 'custom-dependencies))
> > @@ -1201,7 +1201,7 @@ Return t if THEME was successfully loaded, nil
> otherwise."
> > (custom-available-themes))))
> > nil nil))
> > (unless (custom-theme-name-valid-p theme)
> > - (error "Invalid theme name ‘%s’" theme))
> > + (error "Invalid theme name `%s'" theme))
> > ;; If THEME is already enabled, re-enable it after loading, even if
> > ;; NO-ENABLE is t.
> > (if no-enable
> > @@ -1217,7 +1217,7 @@ Return t if THEME was successfully loaded, nil
> otherwise."
> > '("" "c")))
> > hash)
> > (unless fn
> > - (error "Unable to find theme file for ‘%s’" theme))
> > + (error "Unable to find theme file for `%s'" theme))
> > (with-temp-buffer
> > (insert-file-contents fn)
> > (setq hash (secure-hash 'sha256 (current-buffer)))
> > diff --git a/lisp/descr-text.el b/lisp/descr-text.el
> > index 237cc00..be69a0b 100644
> > --- a/lisp/descr-text.el
> > +++ b/lisp/descr-text.el
> > @@ -161,7 +161,7 @@ otherwise."
> > ;; Buttons
> > (when (and button (not (widgetp wid-button)))
> > (newline)
> > - (insert (format-message "Here is a ‘%S’ button labeled ‘%s’.\n\n"
> > + (insert (format-message "Here is a `%S' button labeled `%s'.\n\n"
> > button-type button-label)))
> > ;; Overlays
> > (when overlays
> > @@ -724,25 +724,17 @@ relevant to POS."
> > (when disp-vector
> > (insert
> > "\nThe display table entry is displayed by ")
> > - (if (display-graphic-p (selected-frame))
> > - (progn
> > - (insert "these fonts (glyph codes):\n")
> > - (dotimes (i (length disp-vector))
> > - (insert (glyph-char (car (aref disp-vector i))) ?:
> > - (propertize " " 'display '(space :align-to
> 5))
> > - (or (cdr (aref disp-vector i)) "-- no font
> --")
> > - "\n")
> > - (let ((face (glyph-face (car (aref disp-vector
> i)))))
> > - (when face
> > - (insert (propertize " " 'display '(space
> :align-to 5))
> > - "face: ")
> > - (insert (format-message "‘%s’\n" face))))))
> > - (insert "these terminal codes:\n")
> > - (dotimes (i (length disp-vector))
> > - (insert (car (aref disp-vector i))
> > - (propertize " " 'display '(space :align-to 5))
> > - (or (cdr (aref disp-vector i)) "-- not
> encodable --")
> > - "\n"))))
> > + (insert "these fonts (glyph codes):\n")
> > + (dotimes (i (length disp-vector))
> > + (insert (glyph-char (car (aref disp-vector i))) ?:
> > + (propertize " " 'display '(space :align-to 5))
> > + (or (cdr (aref disp-vector i)) "-- no font --")
> > + "\n")
> > + (let ((face (glyph-face (car (aref disp-vector i)))))
> > + (when face
> > + (insert (propertize " " 'display '(space :align-to 5))
> > + "face: ")
> > + (insert (format-message "`%s'\n" face))))))
> >
> > (when composition
> > (insert "\nComposed")
> > diff --git a/lisp/dired-x.el b/lisp/dired-x.el
> > index 4903b15..1b69091 100644
> > --- a/lisp/dired-x.el
> > +++ b/lisp/dired-x.el
> > @@ -687,8 +687,8 @@ to put saved Dired buffers automatically into
> Virtual Dired mode.
> >
> > Also useful for `auto-mode-alist' like this:
> >
> > - (add-to-list 'auto-mode-alist
> > - '(\"[^/]\\\\.dired\\\\'\" . dired-virtual-mode))"
> > + (add-to-list \\='auto-mode-alist
> > + \\='(\"[^/]\\\\.dired\\\\\\='\" . dired-virtual-mode))"
> > (interactive)
> > (dired-virtual (dired-virtual-guess-dir)))
> >
> > @@ -1354,11 +1354,11 @@ otherwise."
> > (let ((file (dired-get-filename t)))
> > (if dired-bind-vm
> > (if (y-or-n-p (format-message
> > - "Visit ‘%s’ as a mail folder with VM?" file))
> > + "Visit `%s' as a mail folder with VM?" file))
> > (dired-vm))
> > ;; Read mail folder using rmail.
> > (if (y-or-n-p (format-message
> > - "Visit ‘%s’ as a mailbox with RMAIL?" file))
> > + "Visit `%s' as a mailbox with RMAIL?" file))
> > (dired-rmail)))))
> >
> >
> > diff --git a/lisp/dired.el b/lisp/dired.el
> > index 206de37..b78b632 100644
> > --- a/lisp/dired.el
> > +++ b/lisp/dired.el
> > @@ -91,7 +91,7 @@ spaces. You might want to install ls from GNU
> Coreutils, which does
> > support this option. Alternatively, you might want to use Emacs's
> > own emulation of \"ls\", by using:
> > (setq ls-lisp-use-insert-directory-program nil)
> > - (require 'ls-lisp)
> > + (require \\='ls-lisp)
> > This is used by default on MS Windows, which does not have an \"ls\"
> program.
> > Note that `ls-lisp' does not support as many options as GNU ls, though.
> > For more details, see Info node `(emacs)ls in Lisp'."
> > @@ -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)
> > - (format-message "\tBuffer ‘%s’\n" (buffer-name
> obuf)))
> > + (format-message "\tBuffer `%s'\n" (buffer-name
> obuf)))
> > (goto-char (point-max))
> > (insert "\f\n")))))))
> >
> > @@ -4399,7 +4399,7 @@ instead.
> >
> > ;;;***
> >
> > -;;;### (autoloads nil "dired-x" "dired-x.el"
> "c1a6289ba8504b605595321436a9c04d")
> > +;;;### (autoloads nil "dired-x" "dired-x.el"
> "63be23901985afd2a9aadc64f2aacf37")
> > ;;; Generated autoloads from dired-x.el
> >
> > (autoload 'dired-jump "dired-x" "\
> > diff --git a/lisp/electric.el b/lisp/electric.el
> > index bef5bb9..47cb020 100644
> > --- a/lisp/electric.el
> > +++ b/lisp/electric.el
> > @@ -434,12 +434,12 @@ The variable `electric-layout-rules' says when and
> how to insert newlines."
> > nil string))))
> >
> > (defun electric-quote-post-self-insert-function ()
> > - "Function that ‘electric-quote-mode’ adds to ‘post-self-insert-hook’.
> > + "Function that `electric-quote-mode' adds to `post-self-insert-hook'.
> > This requotes when a quoting key is typed."
> > (when (and electric-quote-mode
> > (memq last-command-event '(?\' ?\`)))
> > (let ((start
> > - (if comment-start
> > + (if (and comment-start comment-use-syntax)
> > (when (or electric-quote-comment electric-quote-string)
> > (let ((syntax (syntax-ppss)))
> > (and (or (and electric-quote-comment (nth 4 syntax))
> > @@ -486,11 +486,11 @@ enable the mode if ARG is omitted or nil.
> > When enabled, as you type this replaces \\=` with \\=‘, \\=' with \\=’,
> > \\=`\\=` with “, and \\='\\=' with ”. This occurs only in comments,
> strings,
> > and text paragraphs, and these are selectively controlled with
> > -‘electric-quote-comment’, ‘electric-quote-string’, and
> > -‘electric-quote-paragraph’.
> > +`electric-quote-comment', `electric-quote-string', and
> > +`electric-quote-paragraph'.
> >
> > This is a global minor mode. To toggle the mode in a single buffer,
> > -use ‘electric-quote-local-mode’."
> > +use `electric-quote-local-mode'."
> > :global t :group 'electricity
> > :initialize 'custom-initialize-delay
> > :init-value nil
> > @@ -507,7 +507,7 @@ use ‘electric-quote-local-mode’."
> >
> > ;;;###autoload
> > (define-minor-mode electric-quote-local-mode
> > - "Toggle ‘electric-quote-mode’ only in this buffer."
> > + "Toggle `electric-quote-mode' only in this buffer."
> > :variable (buffer-local-value 'electric-quote-mode (current-buffer))
> > (cond
> > ((eq electric-quote-mode (default-value 'electric-quote-mode))
> > diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el
> > index bbff34d..62330fc 100644
> > --- a/lisp/emacs-lisp/advice.el
> > +++ b/lisp/emacs-lisp/advice.el
> > @@ -1870,7 +1870,7 @@ function at point for which PREDICATE returns
> non-nil)."
> > (if (equal function "")
> > (if (ad-is-advised default)
> > default
> > - (error "ad-read-advised-function: ‘%s’ is not advised"
> default))
> > + (error "ad-read-advised-function: `%s' is not advised"
> default))
> > (intern function))))
> >
> > (defvar ad-advice-class-completion-table
> > @@ -1887,7 +1887,7 @@ class of FUNCTION)."
> > (cl-dolist (class ad-advice-classes)
> > (if (ad-get-advice-info-field function class)
> > (cl-return class)))
> > - (error "ad-read-advice-class: ‘%s’ has no advices"
> function)))
> > + (error "ad-read-advice-class: `%s' has no advices"
> function)))
> > (let ((class (completing-read
> > (format "%s (default %s): " (or prompt "Class") default)
> > ad-advice-class-completion-table nil t)))
> > @@ -1904,7 +1904,7 @@ An optional PROMPT is used to prompt for the name."
> > (ad-get-advice-info-field function class)))
> > (default
> > (if (null name-completion-table)
> > - (error "ad-read-advice-name: ‘%s’ has no %s advice"
> > + (error "ad-read-advice-name: `%s' has no %s advice"
> > function class)
> > (car (car name-completion-table))))
> > (prompt (format "%s (default %s): " (or prompt "Name") default))
> > @@ -1995,9 +1995,9 @@ FUNCTION was not advised)."
> > (interactive (ad-read-advice-specification "Enable advice of"))
> > (if (ad-is-advised function)
> > (if (eq (ad-enable-advice-internal function class name t) 0)
> > - (error "ad-enable-advice: ‘%s’ has no %s advice matching ‘%s’"
> > + (error "ad-enable-advice: `%s' has no %s advice matching `%s'"
> > function class name))
> > - (error "ad-enable-advice: ‘%s’ is not advised" function)))
> > + (error "ad-enable-advice: `%s' is not advised" function)))
> >
> > ;;;###autoload
> > (defun ad-disable-advice (function class name)
> > @@ -2005,9 +2005,9 @@ FUNCTION was not advised)."
> > (interactive (ad-read-advice-specification "Disable advice of"))
> > (if (ad-is-advised function)
> > (if (eq (ad-enable-advice-internal function class name nil) 0)
> > - (error "ad-disable-advice: ‘%s’ has no %s advice matching ‘%s’"
> > + (error "ad-disable-advice: `%s' has no %s advice matching `%s'"
> > function class name))
> > - (error "ad-disable-advice: ‘%s’ is not advised" function)))
> > + (error "ad-disable-advice: `%s' is not advised" function)))
> >
> > (defun ad-enable-regexp-internal (regexp class flag)
> > "Set enable FLAGs of all CLASS advices whose name contains a REGEXP
> match.
> > @@ -2053,9 +2053,9 @@ in that CLASS."
> > (ad-set-advice-info-field
> > function class
> > (delq advice-to-remove (ad-get-advice-info-field function
> class)))
> > - (error "ad-remove-advice: ‘%s’ has no %s advice ‘%s’"
> > + (error "ad-remove-advice: `%s' has no %s advice `%s'"
> > function class name)))
> > - (error "ad-remove-advice: ‘%s’ is not advised" function)))
> > + (error "ad-remove-advice: `%s' is not advised" function)))
> >
> > ;;;###autoload
> > (defun ad-add-advice (function advice class position)
> > @@ -2319,7 +2319,7 @@ INDEX counts from zero."
> > ,value-form))
> > (argument-access
> > `(setq ,argument-access ,value-form))
> > - (t (error "ad-set-argument: No argument at position %d of ‘%s’"
> > + (t (error "ad-set-argument: No argument at position %d of `%s'"
> > index arglist)))))
> >
> > (defun ad-get-arguments (arglist index)
> > @@ -2361,7 +2361,7 @@ The assignment starts at position INDEX."
> > (setq index (1+ index))
> > (setq values-index (1+ values-index)))
> > (if (null set-forms)
> > - (error "ad-set-arguments: No argument at position %d of ‘%s’"
> > + (error "ad-set-arguments: No argument at position %d of `%s'"
> > index arglist)
> > (if (= (length set-forms) 1)
> > ;; For exactly one set-form we can use values-form
> directly,...
> > @@ -2412,14 +2412,14 @@ The assignment starts at position INDEX."
> > ;; The mapping should work for any two argument lists.
> >
> > (defun ad-map-arglists (source-arglist target-arglist)
> > - "Make ‘funcall/apply’ form to map SOURCE-ARGLIST to TARGET-ARGLIST.
> > + "Make `funcall/apply' form to map SOURCE-ARGLIST to TARGET-ARGLIST.
> > The arguments supplied to TARGET-ARGLIST will be taken from
> SOURCE-ARGLIST just
> > as if they had been supplied to a function with TARGET-ARGLIST directly.
> > Excess source arguments will be neglected, missing source arguments
> will be
> > -supplied as nil. Returns a ‘funcall’ or ‘apply’ form with the second
> element
> > -being ‘function’ which has to be replaced by an actual function
> argument.
> > -Example: ‘(ad-map-arglists '(a &rest args) '(w x y z))’ will return
> > - ‘(funcall ad--addoit-function a (car args) (car (cdr args))
> (nth 2 args))’."
> > +supplied as nil. Returns a `funcall' or `apply' form with the second
> element
> > +being `function' which has to be replaced by an actual function
> argument.
> > +Example: (ad-map-arglists '(a &rest args) '(w x y z)) will return
> > + (funcall ad--addoit-function a (car args) (car (cdr args))
> (nth 2 args))."
> > (let* ((parsed-source-arglist (ad-parse-arglist source-arglist))
> > (source-reqopt-args (append (nth 0 parsed-source-arglist)
> > (nth 1 parsed-source-arglist)))
> > @@ -2911,14 +2911,14 @@ the value of `ad-redefinition-action' and
> de/activate again."
> > (if (not (eq current-definition original-definition))
> > ;; We have a redefinition:
> > (if (not (memq ad-redefinition-action '(accept discard
> warn)))
> > - (error "ad-redefinition-action: ‘%s’ %s"
> > + (error "ad-redefinition-action: `%s' %s"
> > function "invalidly redefined")
> > (if (eq ad-redefinition-action 'discard)
> > nil ;; Just drop it!
> > (funcall (or fsetfun #'fset) function newdef)
> > (ad-activate-internal function)
> > (if (eq ad-redefinition-action 'warn)
> > - (message "ad-handle-definition: ‘%s’ got
> redefined"
> > + (message "ad-handle-definition: `%s' got
> redefined"
> > function))))
> > ;; either advised def or correct original is in place:
> > nil)
> > @@ -2953,7 +2953,7 @@ definition will always be cached for later usage."
> > current-prefix-arg))
> > (cond
> > ((not (ad-is-advised function))
> > - (error "ad-activate: ‘%s’ is not advised" function))
> > + (error "ad-activate: `%s' is not advised" function))
> > ;; Just return for forward advised and not yet defined functions:
> > ((not (ad-get-orig-definition function)) nil)
> > ((not (ad-has-any-advice function)) (ad-unadvise function))
> > @@ -2977,10 +2977,10 @@ a call to `ad-activate'."
> > (interactive
> > (list (ad-read-advised-function "Deactivate advice of"
> 'ad-is-active)))
> > (if (not (ad-is-advised function))
> > - (error "ad-deactivate: ‘%s’ is not advised" function)
> > + (error "ad-deactivate: `%s' is not advised" function)
> > (cond ((ad-is-active function)
> > (if (not (ad-get-orig-definition function))
> > - (error "ad-deactivate: ‘%s’ has no original definition"
> > + (error "ad-deactivate: `%s' has no original definition"
> > function)
> > (ad-clear-advicefunname-definition function)
> > (ad-set-advice-info-field function 'active nil)
> > diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
> > index 716e1c6..c3c61d6 100644
> > --- a/lisp/emacs-lisp/byte-opt.el
> > +++ b/lisp/emacs-lisp/byte-opt.el
> > @@ -255,11 +255,11 @@
> > (cdr (assq name
> byte-compile-function-environment)))))
> > (pcase fn
> > (`nil
> > - (byte-compile-warn "attempt to inline ‘%s’ before it was defined"
> > + (byte-compile-warn "attempt to inline `%s' before it was defined"
> > name)
> > form)
> > (`(autoload . ,_)
> > - (error "File ‘%s’ didn't define ‘%s’" (nth 1 fn) name))
> > + (error "File `%s' didn't define `%s'" (nth 1 fn) name))
> > ((and (pred symbolp) (guard (not (eq fn t)))) ;A function alias.
> > (byte-compile-inline-expand (cons fn (cdr form))))
> > ((pred byte-code-function-p)
> > @@ -336,7 +336,7 @@
> > bindings)
> > values nil))
> > ((and (not optionalp) (null values))
> > - (byte-compile-warn "attempt to open-code ‘%s’ with too few
> arguments" name)
> > + (byte-compile-warn "attempt to open-code `%s' with too few
> arguments" name)
> > (setq arglist nil values 'too-few))
> > (t
> > (setq bindings (cons (list (car arglist) (car values))
> > @@ -347,7 +347,7 @@
> > (progn
> > (or (eq values 'too-few)
> > (byte-compile-warn
> > - "attempt to open-code ‘%s’ with too many arguments"
> name))
> > + "attempt to open-code `%s' with too many arguments"
> name))
> > form)
> >
> > ;; The following leads to
> infinite recursion when loading a
> > @@ -383,7 +383,7 @@
> > form))
> > ((eq fn 'quote)
> > (if (cdr (cdr form))
> > - (byte-compile-warn "malformed quote form: ‘%s’"
> > + (byte-compile-warn "malformed quote form: `%s'"
> > (prin1-to-string form)))
> > ;; map (quote nil) to nil to simplify optimizer logic.
> > ;; map quoted constants to nil if for-effect (just because).
> > @@ -407,7 +407,7 @@
> > (if (symbolp binding)
> > binding
> > (if (cdr (cdr binding))
> > - (byte-compile-warn "malformed let
> binding: ‘%s’"
> > + (byte-compile-warn "malformed let
> binding: `%s'"
> > (prin1-to-string
> binding)))
> > (list (car binding)
> > (byte-optimize-form (nth 1 binding)
> nil))))
> > @@ -420,7 +420,7 @@
> > (cons
> > (byte-optimize-form (car clause) nil)
> > (byte-optimize-body (cdr clause)
> for-effect))
> > - (byte-compile-warn "malformed cond form:
> ‘%s’"
> > + (byte-compile-warn "malformed cond form:
> `%s'"
> > (prin1-to-string
> clause))
> > clause))
> > (cdr form))))
> > @@ -457,7 +457,7 @@
> >
> > ((eq fn 'if)
> > (when (< (length form) 3)
> > - (byte-compile-warn "too few arguments for ‘if’"))
> > + (byte-compile-warn "too few arguments for `if'"))
> > (cons fn
> > (cons (byte-optimize-form (nth 1 form) nil)
> > (cons
> > @@ -485,7 +485,7 @@
> > (cons fn (mapcar 'byte-optimize-form (cdr form)))))
> >
> > ((eq fn 'interactive)
> > - (byte-compile-warn "misplaced interactive spec: ‘%s’"
> > + (byte-compile-warn "misplaced interactive spec: `%s'"
> > (prin1-to-string form))
> > nil)
> >
> > @@ -539,7 +539,7 @@
> > (cons fn (mapcar #'byte-optimize-form (cdr form))))
> >
> > ((not (symbolp fn))
> > - (byte-compile-warn "‘%s’ is a malformed function"
> > + (byte-compile-warn "`%s' is a malformed function"
> > (prin1-to-string fn))
> > form)
> >
> > @@ -1054,7 +1054,7 @@
> >
> > (defun byte-optimize-while (form)
> > (when (< (length form) 2)
> > - (byte-compile-warn "too few arguments for ‘while’"))
> > + (byte-compile-warn "too few arguments for `while'"))
> > (if (nth 1 form)
> > form))
> >
> > @@ -1090,7 +1090,7 @@
> > (nconc (list 'funcall fn) butlast
> > (mapcar (lambda (x) (list 'quote x)) (nth 1
> last))))
> > (byte-compile-warn
> > - "last arg to apply can't be a literal atom: ‘%s’"
> > + "last arg to apply can't be a literal atom: `%s'"
> > (prin1-to-string last))
> > nil))
> > form)))
> > diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el
> > index 3c561db..73c2977 100644
> > --- a/lisp/emacs-lisp/byte-run.el
> > +++ b/lisp/emacs-lisp/byte-run.el
> > @@ -267,7 +267,7 @@ The return value is undefined.
> > (cdr body)
> > body)))
> > nil)
> > - (t (message "Warning: Unknown defun property ‘%S’ in
> %S"
> > + (t (message "Warning: Unknown defun property `%S' in
> %S"
> > (car x) name)))))
> > decls))
> > (def (list 'defalias
> > @@ -317,7 +317,7 @@ The return value is undefined.
> > (declare (debug defun) (doc-string 3))
> > (or (memq (get name 'byte-optimizer)
> > '(nil byte-compile-inline-expand))
> > - (error "‘%s’ is a primitive" name))
> > + (error "`%s' is a primitive" name))
> > `(prog1
> > (defun ,name ,arglist ,@body)
> > (eval-and-compile
> > diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
> > index 7182c0b..279ffa3 100644
> > --- a/lisp/emacs-lisp/bytecomp.el
> > +++ b/lisp/emacs-lisp/bytecomp.el
> > @@ -814,7 +814,7 @@ CONST2 may be evaluated multiple times."
> > off (cdr lap-entry))
> > (cond
> > ((not (symbolp op))
> > - (error "Non-symbolic opcode ‘%s’" op))
> > + (error "Non-symbolic opcode `%s'" op))
> > ((eq op 'TAG)
> > (setcar off pc))
> > (t
> > @@ -1120,7 +1120,7 @@ Each function's symbol gets added to
> `byte-compile-noruntime-functions'."
> > pt)
> > (when dir
> > (unless was-same
> > - (insert (format-message "Leaving directory ‘%s’\n"
> > + (insert (format-message "Leaving directory `%s'\n"
> > default-directory))))
> > (unless (bolp)
> > (insert "\n"))
> > @@ -1136,7 +1136,7 @@ Each function's symbol gets added to
> `byte-compile-noruntime-functions'."
> > (when dir
> > (setq default-directory dir)
> > (unless was-same
> > - (insert (format-message "Entering directory ‘%s’\n"
> > + (insert (format-message "Entering directory `%s'\n"
> > default-directory))))
> > (setq byte-compile-last-logged-file byte-compile-current-file
> > byte-compile-last-warned-form nil)
> > @@ -1339,7 +1339,7 @@ extra args."
> > (nargs (- (length form) 2)))
> > (unless (= nargs nfields)
> > (byte-compile-warn
> > - "‘%s’ called with %d args to fill %d format field(s)" (car form)
> > + "`%s' called with %d args to fill %d format field(s)" (car form)
> > nargs nfields)))))
> >
> > (dolist (elt '(format message error))
> > @@ -1359,7 +1359,7 @@ extra args."
> > (plist-get keyword-args :group)
> > (not (and (consp name) (eq (car name) 'quote)))
> > (byte-compile-warn
> > - "%s for ‘%s’ fails to specify containing group"
> > + "%s for `%s' fails to specify containing group"
> > (cdr (assq (car form)
> > '((custom-declare-group . defgroup)
> > (custom-declare-face . defface)
> > @@ -1378,7 +1378,7 @@ extra args."
> > (let ((calls (assq name byte-compile-unresolved-functions))
> > nums sig min max)
> > (when (and calls macrop)
> > - (byte-compile-warn "macro ‘%s’ defined too late" name))
> > + (byte-compile-warn "macro `%s' defined too late" name))
> > (setq byte-compile-unresolved-functions
> > (delq calls byte-compile-unresolved-functions))
> > (setq calls (delq t calls)) ;Ignore higher-order uses of the
> function.
> > @@ -1386,7 +1386,7 @@ extra args."
> > (when (and (symbolp name)
> > (eq (function-get name 'byte-optimizer)
> > 'byte-compile-inline-expand))
> > - (byte-compile-warn "defsubst ‘%s’ was used before it was
> defined"
> > + (byte-compile-warn "defsubst `%s' was used before it was
> defined"
> > name))
> > (setq sig (byte-compile-arglist-signature arglist)
> > nums (sort (copy-sequence (cdr calls)) (function <))
> > @@ -1465,7 +1465,7 @@ extra args."
> > ;; so don't warn about them.
> > macroexpand
> > cl--compiling-file))))
> > - (byte-compile-warn "function ‘%s’ from cl package called at
> runtime"
> > + (byte-compile-warn "function `%s' from cl package called at
> runtime"
> > func)))
> > form)
> >
> > @@ -1507,12 +1507,12 @@ extra args."
> > (if (fboundp f) (push f noruntime) (push f unresolved)))
> > ;; Complain about the no-run-time functions
> > (byte-compile-print-syms
> > - "the function ‘%s’ might not be defined at runtime."
> > + "the function `%s' might not be defined at runtime."
> > "the following functions might not be defined at runtime:"
> > noruntime)
> > ;; Complain about the unresolved functions
> > (byte-compile-print-syms
> > - "the function ‘%s’ is not known to be defined."
> > + "the function `%s' is not known to be defined."
> > "the following functions are not known to be defined:"
> > unresolved)))
> > nil)
> > @@ -1818,7 +1818,7 @@ The value is non-nil if there were no errors, nil
> if errors."
> > ;; (byte-compile-abbreviate-file filename)
> > ;; (with-current-buffer input-buffer no-byte-compile))
> > (when (file-exists-p target-file)
> > - (message "%s deleted because of ‘no-byte-compile: %s’"
> > + (message "%s deleted because of `no-byte-compile: %s'"
> > (byte-compile-abbreviate-file target-file)
> > (buffer-local-value 'no-byte-compile input-buffer))
> > (condition-case nil (delete-file target-file) (error nil)))
> > @@ -2301,12 +2301,12 @@ list that represents a doc string reference.
> > (when (and (symbolp sym)
> > (not (string-match "[-*/:$]" (symbol-name sym)))
> > (byte-compile-warning-enabled-p 'lexical))
> > - (byte-compile-warn "global/dynamic var ‘%s’ lacks a prefix"
> > + (byte-compile-warn "global/dynamic var `%s' lacks a prefix"
> > sym))
> > (when (memq sym byte-compile-lexical-variables)
> > (setq byte-compile-lexical-variables
> > (delq sym byte-compile-lexical-variables))
> > - (byte-compile-warn "Variable ‘%S’ declared after its first use"
> sym))
> > + (byte-compile-warn "Variable `%S' declared after its first use"
> sym))
> > (push sym byte-compile-bound-variables))
> >
> > (defun byte-compile-file-form-defvar (form)
> > @@ -2423,7 +2423,7 @@ not to take responsibility for the actual
> compilation of the code."
> > ;; Don't warn when compiling the stubs in
> byte-run...
> > (not (assq name
> byte-compile-initial-macro-environment)))
> > (byte-compile-warn
> > - "‘%s’ defined multiple times, as both function and
> macro"
> > + "`%s' defined multiple times, as both function and
> macro"
> > name))
> > (setcdr that-one nil))
> > (this-one
> > @@ -2431,13 +2431,13 @@ not to take responsibility for the actual
> compilation of the code."
> > ;; Hack: Don't warn when compiling the magic
> internal
> > ;; byte-compiler macros in byte-run.el...
> > (not (assq name
> byte-compile-initial-macro-environment)))
> > - (byte-compile-warn "%s ‘%s’ defined multiple times in this
> file"
> > + (byte-compile-warn "%s `%s' defined multiple times in this
> file"
> > (if macro "macro" "function")
> > name)))
> > ((eq (car-safe (symbol-function name))
> > (if macro 'lambda 'macro))
> > (when (byte-compile-warning-enabled-p 'redefine)
> > - (byte-compile-warn "%s ‘%s’ being redefined as a %s"
> > + (byte-compile-warn "%s `%s' being redefined as a %s"
> > (if macro "function" "macro")
> > name
> > (if macro "macro" "function")))
> > @@ -2454,7 +2454,7 @@ not to take responsibility for the actual
> compilation of the code."
> > (stringp (car-safe (cdr-safe (cdr-safe body)))))
> > ;; FIXME: We've done that already just above, so this looks wrong!
> > ;;(byte-compile-set-symbol-position name)
> > - (byte-compile-warn "probable ‘\"’ without ‘\\’ in doc string of
> %s"
> > + (byte-compile-warn "probable `\"' without `\\' in doc string of
> %s"
> > name))
> >
> > (if (not (listp body))
> > @@ -2585,7 +2585,9 @@ If FORM is a lambda or a macro, byte-compile it as
> a function."
> > (if (symbolp form) form "provided"))
> > fun)
> > (t
> > - (when (symbolp form)
> > + (when (or (symbolp form) (eq (car-safe fun) 'closure))
> > + ;; `fun' is a function *value*, so try to recover its
> corresponding
> > + ;; source code.
> > (setq lexical-binding (eq (car fun) 'closure))
> > (setq fun (byte-compile--reify-function fun)))
> > ;; Expand macros.
> > @@ -2980,13 +2982,13 @@ for symbols generated by the byte compiler
> itself."
> > (`(',var . ,_)
> > (when (assq var byte-compile-lexical-variables)
> > (byte-compile-log-warning
> > - (format-message "%s cannot use lexical var ‘%s’" fn var)
> > + (format-message "%s cannot use lexical var `%s'" fn var)
> > nil :error)))))
> > (when (macroexp--const-symbol-p fn)
> > - (byte-compile-warn "‘%s’ called as a function" fn))
> > + (byte-compile-warn "`%s' called as a function" fn))
> > (when (and (byte-compile-warning-enabled-p 'interactive-only)
> > interactive-only)
> > - (byte-compile-warn "‘%s’ is for interactive use only%s"
> > + (byte-compile-warn "`%s' is for interactive use only%s"
> > fn
> > (cond ((stringp interactive-only)
> > (format "; %s"
> > @@ -2994,7 +2996,7 @@ for symbols generated by the byte compiler itself."
> > interactive-only)))
> > ((and (symbolp 'interactive-only)
> > (not (eq interactive-only t)))
> > - (format-message "; use ‘%s’ instead."
> > + (format-message "; use `%s' instead."
> > interactive-only))
> > (t "."))))
> > (if (eq (car-safe (symbol-function (car form))) 'macro)
> > @@ -3039,7 +3041,7 @@ for symbols generated by the byte compiler itself."
> > (byte-compile-warning-enabled-p 'mapcar))
> > (byte-compile-set-symbol-position 'mapcar)
> > (byte-compile-warn
> > - "‘mapcar’ called for effect; use ‘mapc’ or ‘dolist’ instead"))
> > + "`mapcar' called for effect; use `mapc' or `dolist' instead"))
> > (byte-compile-push-constant (car form))
> > (mapc 'byte-compile-form (cdr form)) ; wasteful, but faster.
> > (byte-compile-out 'byte-call (length (cdr form))))
> > @@ -3127,8 +3129,8 @@ for symbols generated by the byte compiler itself."
> > (cond ((or (not (symbolp var)) (macroexp--const-symbol-p var))
> > (when (byte-compile-warning-enabled-p 'constants)
> > (byte-compile-warn (if (eq access-type 'let-bind)
> > - "attempt to let-bind %s ‘%s’"
> > - "variable reference to %s ‘%s’")
> > + "attempt to let-bind %s `%s'"
> > + "variable reference to %s `%s'")
> > (if (symbolp var) "constant" "nonvariable")
> > (prin1-to-string var))))
> > ((let ((od (get var 'byte-obsolete-variable)))
> > @@ -3166,7 +3168,7 @@ for symbols generated by the byte compiler itself."
> > (boundp var)
> > (memq var byte-compile-bound-variables)
> > (memq var byte-compile-free-references))
> > - (byte-compile-warn "reference to free variable ‘%S’" var)
> > + (byte-compile-warn "reference to free variable `%S'" var)
> > (push var byte-compile-free-references))
> > (byte-compile-dynamic-variable-op 'byte-varref var))))
> >
> > @@ -3182,7 +3184,7 @@ for symbols generated by the byte compiler itself."
> > (boundp var)
> > (memq var byte-compile-bound-variables)
> > (memq var byte-compile-free-assignments))
> > - (byte-compile-warn "assignment to free variable ‘%s’" var)
> > + (byte-compile-warn "assignment to free variable `%s'" var)
> > (push var byte-compile-free-assignments))
> > (byte-compile-dynamic-variable-op 'byte-varset var))))
> >
> > @@ -3363,7 +3365,7 @@ If it is nil, then the handler is
> \"byte-compile-SYMBOL.\""
> >
> > (defun byte-compile-subr-wrong-args (form n)
> > (byte-compile-set-symbol-position (car form))
> > - (byte-compile-warn "‘%s’ called with %d arg%s, but requires %s"
> > + (byte-compile-warn "`%s' called with %d arg%s, but requires %s"
> > (car form) (length (cdr form))
> > (if (= 1 (length (cdr form))) "" "s") n)
> > ;; Get run-time wrong-number-of-args error.
> > @@ -3731,7 +3733,7 @@ discarding."
> > (macroexp--const-symbol-p var t))
> > (byte-compile-warning-enabled-p 'constants)
> > (byte-compile-warn
> > - "variable assignment to %s ‘%s’"
> > + "variable assignment to %s `%s'"
> > (if (symbolp var) "constant" "nonvariable")
> > (prin1-to-string var)))
> > (byte-compile-normal-call `(set-default ',var ,@(cdr form)))))))
> > @@ -4105,7 +4107,7 @@ binding slots have been popped."
> > (list 'not
> > (cons (or (get (car form) 'byte-compile-negated-op)
> > (error
> > - "Compiler error: ‘%s’ has no ‘byte-compile-negated-op’
> property"
> > + "Compiler error: `%s' has no `byte-compile-negated-op'
> property"
> > (car form)))
> > (cdr form))))
> >
> > @@ -4168,7 +4170,7 @@ binding slots have been popped."
> > (byte-compile-set-symbol-position 'condition-case)
> > (unless (symbolp var)
> > (byte-compile-warn
> > - "‘%s’ is not a variable-name or nil (in condition-case)" var))
> > + "`%s' is not a variable-name or nil (in condition-case)" var))
> > (if fun-bodies (setq var (make-symbol "err")))
> > (byte-compile-push-constant var)
> > (if fun-bodies
> > @@ -4187,7 +4189,7 @@ binding slots have been popped."
> > (setq ok nil)))
> > ok))))
> > (byte-compile-warn
> > - "‘%S’ is not a condition name or list of such
> (in condition-case)"
> > + "`%S' is not a condition name or list of such
> (in condition-case)"
> > condition))
> > ;; (not (or (eq condition 't)
> > ;; (and (stringp (get condition
> 'error-message))
> > @@ -4220,7 +4222,7 @@ binding slots have been popped."
> > (byte-compile-set-symbol-position 'condition-case)
> > (unless (symbolp var)
> > (byte-compile-warn
> > - "‘%s’ is not a variable-name or nil (in condition-case)" var))
> > + "`%s' is not a variable-name or nil (in condition-case)" var))
> >
> > (dolist (clause (reverse clauses))
> > (let ((condition (nth 1 clause)))
> > @@ -4228,7 +4230,7 @@ binding slots have been popped."
> > (dolist (c condition)
> > (unless (and c (symbolp c))
> > (byte-compile-warn
> > - "‘%S’ is not a condition name (in condition-case)" c))
> > + "`%S' is not a condition name (in condition-case)" c))
> > ;; In reality, the `error-conditions' property is only
> required
> > ;; for the argument to `signal', not to `condition-case'.
> > ;;(unless (consp (get c 'error-conditions))
> > @@ -4270,7 +4272,7 @@ binding slots have been popped."
> > (if (and (eq 'set-buffer (car-safe (car-safe (cdr form))))
> > (byte-compile-warning-enabled-p 'suspicious))
> > (byte-compile-warn
> > - "Use ‘with-current-buffer’ rather than
> save-excursion+set-buffer"))
> > + "Use `with-current-buffer' rather than
> save-excursion+set-buffer"))
> > (byte-compile-out 'byte-save-excursion 0)
> > (byte-compile-body-do-effect (cdr form))
> > (byte-compile-out 'byte-unbind 1))
> > @@ -4310,7 +4312,7 @@ binding slots have been popped."
> > (when (and (symbolp (nth 1 form))
> > (not (string-match "[-*/:$]" (symbol-name (nth 1 form))))
> > (byte-compile-warning-enabled-p 'lexical))
> > - (byte-compile-warn "global/dynamic var ‘%s’ lacks a prefix"
> > + (byte-compile-warn "global/dynamic var `%s' lacks a prefix"
> > (nth 1 form)))
> > (let ((fun (nth 0 form))
> > (var (nth 1 form))
> > @@ -4321,7 +4323,7 @@ binding slots have been popped."
> > (and (eq fun 'defconst) (null (cddr form))))
> > (let ((ncall (length (cdr form))))
> > (byte-compile-warn
> > - "‘%s’ called with %d argument%s, but %s %s"
> > + "`%s' called with %d argument%s, but %s %s"
> > fun ncall
> > (if (= 1 ncall) "" "s")
> > (if (< ncall 2) "requires" "accepts only")
> > @@ -4330,7 +4332,7 @@ binding slots have been popped."
> > (if (eq fun 'defconst)
> > (push var byte-compile-const-variables))
> > (when (and string (not (stringp string)))
> > - (byte-compile-warn "third arg to ‘%s %s’ is not a string: %s"
> > + (byte-compile-warn "third arg to `%s %s' is not a string: %s"
> > fun var string))
> > (byte-compile-form-do-effect
> > (if (cddr form) ; `value' provided
> > @@ -4353,7 +4355,7 @@ binding slots have been popped."
> > (not (fboundp (eval (nth 1 form))))
> > (byte-compile-warn
> > "The compiler ignores `autoload' except at top level. You should
> > - probably put the autoload of the macro ‘%s’ at top-level."
> > + probably put the autoload of the macro `%s' at top-level."
> > (eval (nth 1 form))))
> > (byte-compile-normal-call form))
> >
> > @@ -4361,7 +4363,7 @@ binding slots have been popped."
> > ;; The ones that remain are errors.
> > (defun byte-compile-lambda-form (_form)
> > (byte-compile-set-symbol-position 'lambda)
> > - (error "‘lambda’ used as function name is invalid"))
> > + (error "`lambda' used as function name is invalid"))
> >
> > ;; Compile normally, but deal with warnings for the function being
> defined.
> > (put 'defalias 'byte-hunk-handler 'byte-compile-file-form-defalias)
> > @@ -4433,7 +4435,7 @@ binding slots have been popped."
> > (if (and (eq (car-safe (car-safe (cdr-safe form))) 'quote)
> > (byte-compile-warning-enabled-p 'make-local))
> > (byte-compile-warn
> > - "‘make-variable-buffer-local’ not called at toplevel"))
> > + "`make-variable-buffer-local' not called at toplevel"))
> > (byte-compile-normal-call form))
> > (put 'make-variable-buffer-local
> > 'byte-hunk-handler 'byte-compile-form-make-variable-buffer-local)
> > @@ -4565,7 +4567,7 @@ invoked interactively."
> > (length (nth 2 y))))))
> > (`name
> > (lambda (x y) (string< (car x) (car y))))
> > - (_ (error "‘byte-compile-call-tree-sort’: ‘%s’ -
> unknown sort mode"
> > + (_ (error "`byte-compile-call-tree-sort': `%s' -
> unknown sort mode"
> > byte-compile-call-tree-sort))))))
> > (message "Generating call tree...")
> > (let ((rest byte-compile-call-tree)
> > @@ -4678,7 +4680,7 @@ already up-to-date."
> > ;; startup.el.
> > (defvar command-line-args-left) ;Avoid 'free variable' warning
> > (if (not noninteractive)
> > - (error "‘batch-byte-compile’ is to be used only with -batch"))
> > + (error "`batch-byte-compile' is to be used only with -batch"))
> > (let ((error nil))
> > (while command-line-args-left
> > (if (file-directory-p (expand-file-name (car
> command-line-args-left)))
> > diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el
> > index a20e201..205ae6d 100644
> > --- a/lisp/emacs-lisp/cconv.el
> > +++ b/lisp/emacs-lisp/cconv.el
> > @@ -300,7 +300,7 @@ places where they originally did not directly
> appear."
> > (prog1 binder (setq binder (list binder)))
> > (when (cddr binder)
> > (byte-compile-log-warning
> > - (format-message "Malformed ‘%S’ binding: %S"
> > + (format-message "Malformed `%S' binding: %S"
> > letsym binder)))
> > (setq value (cadr binder))
> > (car binder)))
> > @@ -546,7 +546,7 @@ FORM is the parent form that binds this var."
> > (`((,(and var (guard (eq ?_ (aref (symbol-name var) 0)))) . ,_)
> > ,_ ,_ ,_ ,_)
> > (byte-compile-log-warning
> > - (format-message "%s ‘%S’ not left unused" varkind var))))
> > + (format-message "%s `%S' not left unused" varkind var))))
> > (pcase vardata
> > (`((,var . ,_) nil ,_ ,_ nil)
> > ;; FIXME: This gives warnings in the wrong order, with imprecise
> line
> > @@ -558,7 +558,7 @@ FORM is the parent form that binds this var."
> > (eq ?_ (aref (symbol-name var) 0))
> > ;; As a special exception, ignore "ignore".
> > (eq var 'ignored))
> > - (byte-compile-log-warning (format-message "Unused lexical %s
> ‘%S’"
> > + (byte-compile-log-warning (format-message "Unused lexical %s
> `%S'"
> > varkind var))))
> > ;; If it's unused, there's no point converting it into a cons-cell,
> even if
> > ;; it's captured and mutated.
> > diff --git a/lisp/emacs-lisp/chart.el b/lisp/emacs-lisp/chart.el
> > index d972879..0660125 100644
> > --- a/lisp/emacs-lisp/chart.el
> > +++ b/lisp/emacs-lisp/chart.el
> > @@ -652,7 +652,7 @@ SORT-PRED if desired."
> > (set-buffer b)
> > (erase-buffer)
> > (insert "cd " d ";du -sk * \n")
> > - (message "Running ‘cd %s;du -sk *’..." d)
> > + (message "Running `cd %s;du -sk *'..." d)
> > (call-process-region (point-min) (point-max) shell-file-name t
> > (current-buffer) nil)
> > (goto-char (point-min))
> > diff --git a/lisp/emacs-lisp/check-declare.el
> b/lisp/emacs-lisp/check-declare.el
> > index bdcb4ec..3b69e95 100644
> > --- a/lisp/emacs-lisp/check-declare.el
> > +++ b/lisp/emacs-lisp/check-declare.el
> > @@ -106,7 +106,7 @@ don't know how to recognize (e.g. some macros)."
> > (symbolp (setq fileonly (nth 4 form))))
> > (setq alist (cons (list fnfile fn arglist fileonly) alist))
> > ;; FIXME make this more noticeable.
> > - (if form (message "Malformed declaration for ‘%s’" (cadr
> form))))))
> > + (if form (message "Malformed declaration for `%s'" (cadr
> form))))))
> > (message "%sdone" m)
> > alist))
> >
> > @@ -279,7 +279,7 @@ TYPE is a string giving the nature of the error.
> Warning is displayed in
> > entry))
> > (warning-fill-prefix " "))
> > (display-warning 'check-declare
> > - (format-message "said ‘%s’ was defined in %s: %s"
> > + (format-message "said `%s' was defined in %s: %s"
> > fn (file-name-nondirectory fnfile)
> type)
> > nil check-declare-warning-buffer)))
> >
> > @@ -318,7 +318,7 @@ Return a list of any errors found."
> > See `check-declare-directory' for more information."
> > (interactive "fFile to check: ")
> > (or (file-exists-p file)
> > - (error "File ‘%s’ not found" file))
> > + (error "File `%s' not found" file))
> > (let ((m (format "Checking %s..." file))
> > errlist)
> > (message "%s" m)
> > @@ -332,8 +332,8 @@ See `check-declare-directory' for more information."
> > Returns non-nil if any false statements are found."
> > (interactive "DDirectory to check: ")
> > (or (file-directory-p (setq root (expand-file-name root)))
> > - (error "Directory ‘%s’ not found" root))
> > - (let ((m "Checking ‘declare-function’ statements...")
> > + (error "Directory `%s' not found" root))
> > + (let ((m "Checking `declare-function' statements...")
> > (m2 "Finding files with declarations...")
> > errlist files)
> > (message "%s" m)
> > diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el
> > index b2c8119..4a9e16a 100644
> > --- a/lisp/emacs-lisp/checkdoc.el
> > +++ b/lisp/emacs-lisp/checkdoc.el
> > @@ -1419,7 +1419,7 @@ regexp short cuts work. FP is the function defun
> information."
> > (when (re-search-forward "^(" e t)
> > (if (checkdoc-autofix-ask-replace (match-beginning 0)
> > (match-end 0)
> > - "Escape this ‘(’? "
> > + (format-message "Escape this
> `('? ")
> > "\\(")
> > nil
> > (checkdoc-create-error
> > @@ -1715,7 +1715,7 @@ function,command,variable,option or symbol."
> ms1))))))
> > (if (checkdoc-autofix-ask-replace
> > (match-beginning 1) (match-end 1)
> > (format-message
> > - "If this is the argument ‘%s’, it
> should appear as %s. Fix? "
> > + "If this is the argument `%s', it
> should appear as %s. Fix? "
> > (car args) (upcase (car args)))
> > (upcase (car args)) t)
> > (setq found (match-beginning 1))))))
> > @@ -1741,7 +1741,7 @@ function,command,variable,option or symbol."
> ms1))))))
> > nil)
> > (checkdoc-create-error
> > (format-message
> > - "Argument ‘%s’ should appear (as %s) in the doc
> string"
> > + "Argument `%s' should appear (as %s) in the doc
> string"
> > (car args) (upcase (car args)))
> > s (marker-position e)))
> > (if (or (and order (eq order 'yes))
> > @@ -1825,15 +1825,15 @@ Replace with \"%s\"? " original replace)
> > (or (boundp found) (fboundp found)))
> > (progn
> > (setq msg (format-message
> > - "Add quotes around Lisp symbol ‘%s’? " ms))
> > + "Add quotes around Lisp symbol `%s'? " ms))
> > (if (checkdoc-autofix-ask-replace
> > (match-beginning 1) (+ (match-beginning 1)
> > (length ms))
> > - msg (concat "‘" ms "’") t)
> > + msg (format-message "`%s'" ms) t)
> > (setq msg nil)
> > (setq msg
> > (format-message
> > - "Lisp symbol ‘%s’ should appear in quotes"
> ms))))))
> > + "Lisp symbol `%s' should appear in quotes"
> ms))))))
> > (if msg
> > (checkdoc-create-error msg (match-beginning 1)
> > (+ (match-beginning 1)
> > @@ -1849,7 +1849,7 @@ Replace with \"%s\"? " original replace)
> > (match-string 2) t)
> > nil
> > (checkdoc-create-error
> > - "Symbols t and nil should not appear in ‘...’ quotes"
> > + "Symbols t and nil should not appear in single quotes"
> > (match-beginning 1) (match-end 1)))))
> > ;; Here is some basic sentence formatting
> > (checkdoc-sentencespace-region-engine (point) e)
> > @@ -2487,22 +2487,24 @@ Argument TYPE specifies the type of question,
> such as `error' or `y-or-n-p'."
> > ;; If we see a ?, then replace with "? ".
> > (if (checkdoc-autofix-ask-replace
> > (match-beginning 0) (match-end 0)
> > - "‘y-or-n-p’ argument should end with \"? \". Fix? "
> > + (format-message
> > + "`y-or-n-p' argument should end with \"? \". Fix?
> ")
> > "? " t)
> > nil
> > (checkdoc-create-error
> > - "‘y-or-n-p’ argument should end with \"? \""
> > + "`y-or-n-p' argument should end with \"? \""
> > (match-beginning 0) (match-end 0)))
> > (if (save-excursion (forward-sexp 1)
> > (forward-char -2)
> > (looking-at " "))
> > (if (checkdoc-autofix-ask-replace
> > (match-beginning 0) (match-end 0)
> > - "‘y-or-n-p’ argument should end with \"? \". Fix?
> "
> > + (format-message
> > + "`y-or-n-p' argument should end with \"? \".
> Fix? ")
> > "? " t)
> > nil
> > (checkdoc-create-error
> > - "‘y-or-n-p’ argument should end with \"? \""
> > + "`y-or-n-p' argument should end with \"? \""
> > (match-beginning 0) (match-end 0)))
> > (if (and ;; if this isn't true, we have a problem.
> > (save-excursion (forward-sexp 1)
> > @@ -2510,11 +2512,12 @@ Argument TYPE specifies the type of question,
> such as `error' or `y-or-n-p'."
> > (looking-at "\""))
> > (checkdoc-autofix-ask-replace
> > (match-beginning 0) (match-end 0)
> > - "‘y-or-n-p’ argument should end with \"? \". Fix? "
> > + (format-message
> > + "`y-or-n-p' argument should end with \"? \".
> Fix? ")
> > "? \"" t))
> > nil
> > (checkdoc-create-error
> > - "‘y-or-n-p’ argument should end with \"? \""
> > + "`y-or-n-p' argument should end with \"? \""
> > (match-beginning 0) (match-end 0)))))))
> > ;; Now, let's just run the spell checker on this guy.
> > (checkdoc-ispell-docstring-engine (save-excursion (forward-sexp 1)
> > diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
> > index 7a7712a..dddfca7 100644
> > --- a/lisp/emacs-lisp/cl-extra.el
> > +++ b/lisp/emacs-lisp/cl-extra.el
> > @@ -415,7 +415,7 @@ as an integer unless JUNK-ALLOWED is non-nil."
> > (cond ((and junk-allowed (null sum)) sum)
> > (junk-allowed (* sign sum))
> > ((or (/= start end) (null sum))
> > - (error "Not an integer string: ‘%s’" string))
> > + (error "Not an integer string: `%s'" string))
> > (t (* sign sum)))))))
> >
> >
> > @@ -774,16 +774,16 @@ including `cl-block' and `cl-eval-when'."
> > ;; FIXME: Add a `cl-class-of' or `cl-typeof' or somesuch.
> > (metatype (cl--class-name (symbol-value (aref class 0)))))
> > (insert (symbol-name type)
> > - (substitute-command-keys " is a type (of kind ‘"))
> > + (substitute-command-keys " is a type (of kind `"))
> > (help-insert-xref-button (symbol-name metatype)
> > 'cl-help-type metatype)
> > - (insert (substitute-command-keys "’)"))
> > + (insert (substitute-command-keys "')"))
> > (when location
> > - (insert (substitute-command-keys " in ‘"))
> > + (insert (substitute-command-keys " in `"))
> > (help-insert-xref-button
> > (help-fns-short-filename location)
> > 'cl-type-definition type location 'define-type)
> > - (insert (substitute-command-keys "’")))
> > + (insert (substitute-command-keys "'")))
> > (insert ".\n")
> >
> > ;; Parents.
> > @@ -793,10 +793,10 @@ including `cl-block' and `cl-eval-when'."
> > (insert " Inherits from ")
> > (while (setq cur (pop pl))
> > (setq cur (cl--class-name cur))
> > - (insert (substitute-command-keys "‘"))
> > + (insert (substitute-command-keys "`"))
> > (help-insert-xref-button (symbol-name cur)
> > 'cl-help-type cur)
> > - (insert (substitute-command-keys (if pl "’, " "’"))))
> > + (insert (substitute-command-keys (if pl "', " "'"))))
> > (insert ".\n")))
> >
> > ;; Children, if available. ¡For EIEIO!
> > @@ -807,10 +807,10 @@ including `cl-block' and `cl-eval-when'."
> > (when ch
> > (insert " Children ")
> > (while (setq cur (pop ch))
> > - (insert (substitute-command-keys "‘"))
> > + (insert (substitute-command-keys "`"))
> > (help-insert-xref-button (symbol-name cur)
> > 'cl-help-type cur)
> > - (insert (substitute-command-keys (if ch "’, " "’"))))
> > + (insert (substitute-command-keys (if ch "', " "'"))))
> > (insert ".\n")))
> >
> > ;; Type's documentation.
> > @@ -826,10 +826,10 @@ including `cl-block' and `cl-eval-when'."
> > (when generics
> > (insert (propertize "Specialized Methods:\n\n" 'face 'bold))
> > (dolist (generic generics)
> > - (insert (substitute-command-keys "‘"))
> > + (insert (substitute-command-keys "`"))
> > (help-insert-xref-button (symbol-name generic)
> > 'help-function generic)
> > - (insert (substitute-command-keys "’"))
> > + (insert (substitute-command-keys "'"))
> > (pcase-dolist (`(,qualifiers ,args ,doc)
> > (cl--generic-method-documentation generic
> type))
> > (insert (format " %s%S\n" qualifiers args)
> > diff --git a/lisp/emacs-lisp/cl-generic.el
> b/lisp/emacs-lisp/cl-generic.el
> > index 5d52761..c012a30 100644
> > --- a/lisp/emacs-lisp/cl-generic.el
> > +++ b/lisp/emacs-lisp/cl-generic.el
> > @@ -192,7 +192,7 @@ BODY, if present, is used as the body of a default
> method.
> > (when doc (error "Multiple doc strings for %S" name))
> > (setq doc (cadr (pop options-and-methods))))
> > (`declare
> > - (when declarations (error "Multiple ‘declare’ for %S" name))
> > + (when declarations (error "Multiple `declare' for %S" name))
> > (setq declarations (pop options-and-methods)))
> > (`:method (push (cdr (pop options-and-methods)) methods))
> > (_ (push (pop options-and-methods) options))))
> > @@ -208,7 +208,7 @@ BODY, if present, is used as the body of a default
> method.
> > defun-declarations-alist))))
> > (cond
> > (f (apply (car f) name args (cdr declaration)))
> > - (t (message "Warning: Unknown defun property ‘%S’
> in %S"
> > + (t (message "Warning: Unknown defun property `%S'
> in %S"
> > (car declaration) name)
> > nil))))
> > (cdr declarations))
> > @@ -864,11 +864,11 @@ MET-NAME is a cons (SYMBOL . SPECIALIZERS)."
> > (cl--generic-method-specializers
> method)))
> > (file (find-lisp-object-file-name met-name
> 'cl-defmethod)))
> > (when file
> > - (insert (substitute-command-keys " in ‘"))
> > + (insert (substitute-command-keys " in `"))
> > (help-insert-xref-button (help-fns-short-filename file)
> > 'help-function-def met-name
> file
> > 'cl-defmethod)
> > - (insert (substitute-command-keys "’.\n"))))
> > + (insert (substitute-command-keys "'.\n"))))
> > (insert "\n" (or (nth 2 info) "Undocumented") "\n\n")))))))
> >
> > (defun cl--generic-specializers-apply-to-type-p (specializers type)
> > @@ -1070,7 +1070,7 @@ The value returned is a list of elements of the
> form
> > (and (assq type cl--generic-typeof-types)
> > (progn
> > (if (memq type '(vector array sequence))
> > - (message "‘%S’ also matches CL structs and EIEIO classes"
> type))
> > + (message "`%S' also matches CL structs and EIEIO classes"
> type))
> > (list cl--generic-typeof-generalizer)))
> > (cl-call-next-method)))
> >
> > diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
> > index 06e75b3..d5d8ef0 100644
> > --- a/lisp/emacs-lisp/cl-macs.el
> > +++ b/lisp/emacs-lisp/cl-macs.el
> > @@ -1132,7 +1132,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> > (cond
> >
> > ((null cl--loop-args)
> > - (error "Malformed ‘cl-loop’ macro"))
> > + (error "Malformed `cl-loop' macro"))
> >
> > ((eq word 'named)
> > (setq cl--loop-name (pop cl--loop-args)))
> > @@ -1140,7 +1140,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> > ((eq word 'initially)
> > (if (memq (car cl--loop-args) '(do doing)) (pop cl--loop-args))
> > (or (consp (car cl--loop-args))
> > - (error "Syntax error on ‘initially’ clause"))
> > + (error "Syntax error on `initially' clause"))
> > (while (consp (car cl--loop-args))
> > (push (pop cl--loop-args) cl--loop-initially)))
> >
> > @@ -1150,7 +1150,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> > (or (cl--pop2 cl--loop-args) '(quote nil)))
> > (if (memq (car cl--loop-args) '(do doing)) (pop cl--loop-args))
> > (or (consp (car cl--loop-args))
> > - (error "Syntax error on ‘finally’ clause"))
> > + (error "Syntax error on `finally' clause"))
> > (if (and (eq (caar cl--loop-args) 'return) (null cl--loop-name))
> > (setq cl--loop-result-explicit
> > (or (nth 1 (pop cl--loop-args)) '(quote nil)))
> > @@ -1177,7 +1177,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> > above below by))
> > (push word cl--loop-args)
> > (if (memq (car cl--loop-args) '(downto above))
> > - (error "Must specify ‘from’ value for downward
> cl-loop"))
> > + (error "Must specify `from' value for downward
> cl-loop"))
> > (let* ((down (or (eq (car cl--loop-args) 'downfrom)
> > (memq (nth 2 cl--loop-args)
> > '(downto above))))
> > @@ -1197,7 +1197,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> > (step-var (and (not (macroexp-const-p step))
> > (make-symbol "--cl-var--"))))
> > (and step (numberp step) (<= step 0)
> > - (error "Loop ‘by’ value is not positive: %s"
> step))
> > + (error "Loop `by' value is not positive: %s"
> step))
> > (push (list var (or start 0)) loop-for-bindings)
> > (if end-var (push (list end-var end)
> loop-for-bindings))
> > (if step-var (push (list step-var step)
> > @@ -1276,7 +1276,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> > ((memq word '(element elements))
> > (let ((ref (or (memq (car cl--loop-args) '(in-ref
> of-ref))
> > (and (not (memq (car cl--loop-args) '(in
> of)))
> > - (error "Expected ‘of’"))))
> > + (error "Expected `of'"))))
> > (seq (cl--pop2 cl--loop-args))
> > (temp-seq (make-symbol "--cl-seq--"))
> > (temp-idx
> > @@ -1284,7 +1284,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> > (if (and (= (length (cadr cl--loop-args)) 2)
> > (eq (cl-caadr cl--loop-args)
> 'index))
> > (cadr (cl--pop2 cl--loop-args))
> > - (error "Bad ‘using’ clause"))
> > + (error "Bad `using' clause"))
> > (make-symbol "--cl-idx--"))))
> > (push (list temp-seq seq) loop-for-bindings)
> > (push (list temp-idx 0) loop-for-bindings)
> > @@ -1309,7 +1309,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> >
> > ((memq word hash-types)
> > (or (memq (car cl--loop-args) '(in of))
> > - (error "Expected ‘of’"))
> > + (error "Expected `of'"))
> > (let* ((table (cl--pop2 cl--loop-args))
> > (other
> > (if (eq (car cl--loop-args) 'using)
> > @@ -1317,7 +1317,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> > (memq (cl-caadr cl--loop-args)
> hash-types)
> > (not (eq (cl-caadr cl--loop-args)
> word)))
> > (cadr (cl--pop2 cl--loop-args))
> > - (error "Bad ‘using’ clause"))
> > + (error "Bad `using' clause"))
> > (make-symbol "--cl-var--"))))
> > (if (memq word '(hash-value hash-values))
> > (setq var (prog1 other (setq other var))))
> > @@ -1372,7 +1372,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> >
> > ((memq word key-types)
> > (or (memq (car cl--loop-args) '(in of))
> > - (error "Expected ‘of’"))
> > + (error "Expected `of'"))
> > (let ((cl-map (cl--pop2 cl--loop-args))
> > (other
> > (if (eq (car cl--loop-args) 'using)
> > @@ -1380,7 +1380,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> > (memq (cl-caadr cl--loop-args)
> key-types)
> > (not (eq (cl-caadr cl--loop-args)
> word)))
> > (cadr (cl--pop2 cl--loop-args))
> > - (error "Bad ‘using’ clause"))
> > + (error "Bad `using' clause"))
> > (make-symbol "--cl-var--"))))
> > (if (memq word '(key-binding key-bindings))
> > (setq var (prog1 other (setq other var))))
> > @@ -1430,7 +1430,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> > (get word 'cl-loop-for-handler))))
> > (if handler
> > (funcall handler var)
> > - (error "Expected a ‘for’ preposition, found %s"
> word)))))
> > + (error "Expected a `for' preposition, found %s"
> word)))))
> > (eq (car cl--loop-args) 'and))
> > (setq ands t)
> > (pop cl--loop-args))
> > @@ -1569,7 +1569,7 @@ For more details, see Info node `(cl)Loop
> Facility'.
> >
> > ((memq word '(do doing))
> > (let ((body nil))
> > - (or (consp (car cl--loop-args)) (error "Syntax error on ‘do’
> clause"))
> > + (or (consp (car cl--loop-args)) (error "Syntax error on `do'
> clause"))
> > (while (consp (car cl--loop-args)) (push (pop cl--loop-args)
> body))
> > (push (cons 'progn (nreverse (cons t body))) cl--loop-body)))
> >
> > @@ -1802,7 +1802,7 @@ Labels have lexical scope and dynamic extent."
> > `((go . ,(lambda (label)
> > (let ((catch-tag (cdr (assq label
> cl--tagbody-alist))))
> > (unless catch-tag
> > - (error "Unknown cl-tagbody go label ‘%S’" label))
> > + (error "Unknown cl-tagbody go label `%S'" label))
> > `(throw ',catch-tag ',label))))
> > ,@macroexpand-all-environment)))))
> >
> > @@ -2101,7 +2101,7 @@ by EXPANSION, and (setq NAME ...) will act like
> (setf EXPANSION ...).
> >
> macroexpand-all-environment))))
> > (if (or (null (cdar bindings)) (cl-cddar bindings))
> > (macroexp--warn-and-return
> > - (format-message "Malformed ‘cl-symbol-macrolet’
> binding: %S"
> > + (format-message "Malformed `cl-symbol-macrolet'
> binding: %S"
> > (car bindings))
> > expansion)
> > expansion)))
> > @@ -2777,10 +2777,10 @@ non-nil value, that slot cannot be set via
> `setf'.
> > ;;;###autoload
> > (pcase-defmacro cl-struct (type &rest fields)
> > "Pcase patterns to match cl-structs.
> > -Elements of FIELDS can be of the form (NAME UPAT) in which case the
> contents of
> > -field NAME is matched against UPAT, or they can be of the form NAME
> which
> > +Elements of FIELDS can be of the form (NAME PAT) in which case the
> contents of
> > +field NAME is matched against PAT, or they can be of the form NAME which
> > is a shorthand for (NAME NAME)."
> > - (declare (debug (sexp &rest [&or (sexp pcase-UPAT) sexp])))
> > + (declare (debug (sexp &rest [&or (sexp pcase-PAT) sexp])))
> > `(and (pred (pcase--flip cl-typep ',type))
> > ,@(mapcar
> > (lambda (field)
> > diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el
> > index ba50680..46472cc 100644
> > --- a/lisp/emacs-lisp/cl.el
> > +++ b/lisp/emacs-lisp/cl.el
> > @@ -86,7 +86,7 @@
> >
> > (defun cl-unload-function ()
> > "Stop unloading of the Common Lisp extensions."
> > - (message "Cannot unload the feature ‘cl’")
> > + (message "Cannot unload the feature `cl'")
> > ;; Stop standard unloading!
> > t)
> >
> > @@ -459,15 +459,15 @@ definitions, or lack thereof).
> > (if (or (and (fboundp (car x))
> > (eq (car-safe (symbol-function (car x)))
> 'macro))
> > (cdr (assq (car x) macroexpand-all-environment)))
> > - (error "Use ‘labels’, not ‘flet’, to rebind macro
> names"))
> > + (error "Use `labels', not `flet', to rebind macro
> names"))
> > (let ((func `(cl-function
> > (lambda ,(cadr x)
> > (cl-block ,(car x) ,@(cddr x))))))
> > (when (cl--compiling-file)
> > ;; Bug#411. It would be nice to fix this.
> > (and (get (car x) 'byte-compile)
> > - (error "Byte-compiling a redefinition of ‘%s’ \
> > -will not work - use ‘labels’ instead" (symbol-name (car x))))
> > + (error "Byte-compiling a redefinition of `%s' \
> > +will not work - use `labels' instead" (symbol-name (car x))))
> > ;; FIXME This affects the rest of the file, when it
> > ;; should be restricted to the flet body.
> > (and (boundp 'byte-compile-function-environment)
> > diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el
> > index ece6883..1317d69 100644
> > --- a/lisp/emacs-lisp/copyright.el
> > +++ b/lisp/emacs-lisp/copyright.el
> > @@ -350,7 +350,7 @@ independently replaces consecutive years with a
> range."
> > (or (getenv "ORGANIZATION")
> > str)
> > '(if (copyright-offset-too-large-p)
> > - (message "Copyright extends beyond ‘copyright-limit’ and won't
> be updated automatically."))
> > + (message "Copyright extends beyond `copyright-limit' and won't
> be updated automatically."))
> > comment-end \n)
> >
> > ;; TODO: recurse, exclude COPYING etc.
> > @@ -361,7 +361,7 @@ If FIX is non-nil, run `copyright-fix-years'
> instead."
> > (interactive "DDirectory: \nMFilenames matching (regexp): ")
> > (dolist (file (directory-files directory t match nil))
> > (unless (file-directory-p file)
> > - (message "Updating file ‘%s’" file)
> > + (message "Updating file `%s'" file)
> > ;; FIXME we should not use find-file+save+kill.
> > (let ((enable-local-variables :safe)
> > (enable-local-eval nil))
> > diff --git a/lisp/emacs-lisp/disass.el b/lisp/emacs-lisp/disass.el
> > index 15489fc..12cf605 100644
> > --- a/lisp/emacs-lisp/disass.el
> > +++ b/lisp/emacs-lisp/disass.el
> > @@ -1,4 +1,4 @@
> > -;;; disass.el --- disassembler for compiled Emacs Lisp code
> > +;;; disass.el --- disassembler for compiled Emacs Lisp code -*-
> lexical-binding:t -*-
> >
> > ;; Copyright (C) 1986, 1991, 2002-2015 Free Software Foundation, Inc.
> >
> > @@ -37,9 +37,9 @@
> >
> > (require 'macroexp)
> >
> > -;;; The variable byte-code-vector is defined by the new bytecomp.el.
> > -;;; The function byte-decompile-lapcode is defined in byte-opt.el.
> > -;;; Since we don't use byte-decompile-lapcode, let's try not loading
> byte-opt.
> > +;; The variable byte-code-vector is defined by the new bytecomp.el.
> > +;; The function byte-decompile-lapcode is defined in byte-opt.el.
> > +;; Since we don't use byte-decompile-lapcode, let's try not loading
> byte-opt.
> > (require 'byte-compile "bytecomp")
> >
> > (defvar disassemble-column-1-indent 8 "*")
> > @@ -57,8 +57,8 @@ redefine OBJECT if it is a symbol."
> > (interactive (list (intern (completing-read "Disassemble function: "
> > obarray 'fboundp t))
> > nil 0 t))
> > - (if (and (consp object) (not (eq (car object) 'lambda)))
> > - (setq object (list 'lambda () object)))
> > + (if (and (consp object) (not (functionp object)))
> > + (setq object `(lambda () ,object)))
> > (or indent (setq indent 0)) ;Default indent to zero
> > (save-excursion
> > (if (or interactive-p (null buffer))
> > @@ -72,37 +72,34 @@ redefine OBJECT if it is a symbol."
> >
> > (defun disassemble-internal (obj indent interactive-p)
> > (let ((macro 'nil)
> > - (name 'nil)
> > - (doc 'nil)
> > + (name (when (symbolp obj)
> > + (prog1 obj
> > + (setq obj (indirect-function obj)))))
> > args)
> > - (while (symbolp obj)
> > - (setq name obj
> > - obj (symbol-function obj)))
> > + (setq obj (autoload-do-load obj name))
> > (if (subrp obj)
> > (error "Can't disassemble #<subr %s>" name))
> > - (setq obj (autoload-do-load obj name))
> > (if (eq (car-safe obj) 'macro) ;Handle macros.
> > (setq macro t
> > obj (cdr obj)))
> > - (if (and (listp obj) (eq (car obj) 'byte-code))
> > - (setq obj (list 'lambda nil obj)))
> > - (if (and (listp obj) (not (eq (car obj) 'lambda)))
> > - (error "not a function"))
> > - (if (consp obj)
> > - (if (assq 'byte-code obj)
> > - nil
> > - (if interactive-p (message (if name
> > - "Compiling %s's definition..."
> > - "Compiling definition...")
> > - name))
> > - (setq obj (byte-compile obj))
> > - (if interactive-p (message "Done compiling.
> Disassembling..."))))
> > + (if (eq (car-safe obj) 'byte-code)
> > + (setq obj `(lambda () ,obj)))
> > + (when (consp obj)
> > + (unless (functionp obj) (error "not a function"))
> > + (if (assq 'byte-code obj)
> > + nil
> > + (if interactive-p (message (if name
> > + "Compiling %s's definition..."
> > + "Compiling definition...")
> > + name))
> > + (setq obj (byte-compile obj))
> > + (if interactive-p (message "Done compiling.
> Disassembling..."))))
> > (cond ((consp obj)
> > + (setq args (help-function-arglist obj)) ;save arg list
> > (setq obj (cdr obj)) ;throw lambda away
> > - (setq args (car obj)) ;save arg list
> > (setq obj (cdr obj)))
> > ((byte-code-function-p obj)
> > - (setq args (aref obj 0)))
> > + (setq args (help-function-arglist obj)))
> > (t (error "Compilation failed")))
> > (if (zerop indent) ; not a nested function
> > (progn
> > @@ -127,10 +124,7 @@ redefine OBJECT if it is a symbol."
> > (insert " args: ")
> > (prin1 args (current-buffer))
> > (insert "\n")
> > - (let ((interactive (cond ((consp obj)
> > - (assq 'interactive obj))
> > - ((> (length obj) 5)
> > - (list 'interactive (aref obj 5))))))
> > + (let ((interactive (interactive-form obj)))
> > (if interactive
> > (progn
> > (setq interactive (nth 1 interactive))
> > @@ -226,15 +220,16 @@ OBJ should be a call to BYTE-CODE generated by the
> byte compiler."
> > ;; but if the value of the constant is compiled code,
> then
> > ;; recursively disassemble it.
> > (cond ((or (byte-code-function-p arg)
> > - (and (eq (car-safe arg) 'lambda)
> > + (and (consp arg) (functionp arg)
> > (assq 'byte-code arg))
> > (and (eq (car-safe arg) 'macro)
> > (or (byte-code-function-p (cdr arg))
> > - (and (eq (car-safe (cdr arg))
> 'lambda)
> > + (and (consp (cdr arg))
> > + (functionp (cdr arg))
> > (assq 'byte-code (cdr arg))))))
> > (cond ((byte-code-function-p arg)
> > (insert "<compiled-function>\n"))
> > - ((eq (car-safe arg) 'lambda)
> > + ((functionp arg)
> > (insert "<compiled lambda>"))
> > (t (insert "<compiled macro>\n")))
> > (disassemble-internal
> > diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
> > index 3ad496a..0162a9a 100644
> > --- a/lisp/emacs-lisp/edebug.el
> > +++ b/lisp/emacs-lisp/edebug.el
> > @@ -880,7 +880,7 @@ Maybe clear the markers and delete the symbol's
> edebug property?"
> > (setq dotted-form (edebug-read-storing-offsets stream))
> > elements (nconc elements dotted-form)
> > (if (not (eq (edebug-next-token-class) 'rparen))
> > - (edebug-syntax-error "Expected ‘)’"))
> > + (edebug-syntax-error "Expected `)'"))
> > (setq edebug-read-dotted-list (listp dotted-form))
> > ))
> > elements)
> > diff --git a/lisp/emacs-lisp/eieio-base.el
> b/lisp/emacs-lisp/eieio-base.el
> > index e1051b2..400bdb9 100644
> > --- a/lisp/emacs-lisp/eieio-base.el
> > +++ b/lisp/emacs-lisp/eieio-base.el
> > @@ -218,7 +218,7 @@ for CLASS. Optional ALLOW-SUBCLASS says that it is
> ok for
> > `eieio-persistent-read' to load in subclasses of class instead of
> > being pedantic."
> > (unless class
> > - (message "Unsafe call to ‘eieio-persistent-read’."))
> > + (message "Unsafe call to `eieio-persistent-read'."))
> > (when class (cl-check-type class class))
> > (let ((ret nil)
> > (buffstr nil))
> > diff --git a/lisp/emacs-lisp/eieio-core.el
> b/lisp/emacs-lisp/eieio-core.el
> > index 3b07c5d..a2f5f8a 100644
> > --- a/lisp/emacs-lisp/eieio-core.el
> > +++ b/lisp/emacs-lisp/eieio-core.el
> > @@ -219,7 +219,8 @@ It creates an autoload function for CNAME's
> constructor."
> > ;; turn this into a usable self-pointing symbol
> > (when eieio-backward-compatibility
> > (set cname cname)
> > - (make-obsolete-variable cname (format "use '%s instead" cname)
> "25.1"))
> > + (make-obsolete-variable cname (format "use \\='%s instead"
> cname)
> > + "25.1"))
> >
> > ;; Store the new class vector definition into the symbol. We
> need to
> > ;; do this first so that we can call defmethod for the accessor.
> > @@ -338,7 +339,8 @@ See `defclass' for more information."
> > ;; turn this into a usable self-pointing symbol; FIXME: Why?
> > (when eieio-backward-compatibility
> > (set cname cname)
> > - (make-obsolete-variable cname (format "use '%s instead" cname)
> "25.1"))
> > + (make-obsolete-variable cname (format "use \\='%s instead" cname)
> > + "25.1"))
> >
> > ;; Create a handy list of the class test too
> > (when eieio-backward-compatibility
> > @@ -357,8 +359,9 @@ See `defclass' for more information."
> > (object-of-class-p (car obj)
> ,cname)))
> > (setq obj (cdr obj)))
> > ans))))
> > - (make-obsolete csym (format "use (cl-typep ... '(list-of %s))
> instead"
> > - cname)
> > + (make-obsolete csym (format
> > + "use (cl-typep ... \\='(list-of %s))
> instead"
> > + cname)
> > "25.1")))
> >
> > ;; Before adding new slots, let's add all the methods and classes
> > @@ -407,7 +410,7 @@ See `defclass' for more information."
> > (progn
> > (set initarg initarg)
> > (make-obsolete-variable
> > - initarg (format "use '%s instead" initarg)
> "25.1"))))
> > + initarg (format "use \\='%s instead" initarg)
> "25.1"))))
> >
> > ;; The customgroup should be a list of symbols.
> > (cond ((and (null customg) custom)
> > @@ -544,7 +547,7 @@ If SKIPNIL is non-nil, then if default value is nil
> return t instead."
> > (if (not (eq type t))
> > (if (not (equal type tp))
> > (error
> > - "Child slot type ‘%s’ does not match inherited type ‘%s’
> for ‘%s’"
> > + "Child slot type `%s' does not match inherited type `%s'
> for `%s'"
> > type tp a))
> > (setf (cl--slot-descriptor-type new) tp))
> > ;; If we have a repeat, only update the initarg...
> > @@ -564,7 +567,7 @@ If SKIPNIL is non-nil, then if default value is nil
> return t instead."
> > (let ((super-prot (alist-get :protection oprops))
> > (prot (alist-get :protection nprops)))
> > (if (not (eq prot super-prot))
> > - (error "Child slot protection ‘%s’ does not match inherited
> protection ‘%s’ for ‘%s’"
> > + (error "Child slot protection `%s' does not match inherited
> protection `%s' for `%s'"
> > prot super-prot a)))
> > ;; End original PLN
> >
> > @@ -733,7 +736,7 @@ Argument FN is the function calling this verifier."
> > ((and (or `',name (and name (pred keywordp)))
> > (guard (not (memq name eieio--known-slot-names))))
> > (macroexp--warn-and-return
> > - (format-message "Unknown slot ‘%S’" name) exp
> 'compile-only))
> > + (format-message "Unknown slot `%S'" name) exp
> 'compile-only))
> > (_ exp)))))
> > (cl-check-type slot symbol)
> > (cl-check-type obj (or eieio-object class))
> > diff --git a/lisp/emacs-lisp/eieio-opt.el b/lisp/emacs-lisp/eieio-opt.el
> > index 0b00336..a5d8b6f 100644
> > --- a/lisp/emacs-lisp/eieio-opt.el
> > +++ b/lisp/emacs-lisp/eieio-opt.el
> > @@ -141,11 +141,11 @@ are not abstract."
> > (setq location
> > (find-lisp-object-file-name ctr def)))
> > (when location
> > - (insert (substitute-command-keys " in ‘"))
> > + (insert (substitute-command-keys " in `"))
> > (help-insert-xref-button
> > (help-fns-short-filename location)
> > 'cl-type-definition ctr location 'define-type)
> > - (insert (substitute-command-keys "’")))
> > + (insert (substitute-command-keys "'")))
> > (insert ".\nCreates an object of class " (symbol-name ctr) ".")
> > (goto-char (point-max))
> > (if (autoloadp def)
> > diff --git a/lisp/emacs-lisp/eieio-speedbar.el
> b/lisp/emacs-lisp/eieio-speedbar.el
> > index ac8124a..a1eabcf 100644
> > --- a/lisp/emacs-lisp/eieio-speedbar.el
> > +++ b/lisp/emacs-lisp/eieio-speedbar.el
> > @@ -323,7 +323,7 @@ Argument DEPTH is the depth at which the tag line is
> inserted."
> >
> > (cl-defmethod eieio-speedbar-child-make-tag-lines ((object
> eieio-speedbar) _depth)
> > "Base method for creating tag lines for non-object children."
> > - (error "You must implement ‘eieio-speedbar-child-make-tag-lines’ for
> %s"
> > + (error "You must implement `eieio-speedbar-child-make-tag-lines' for
> %s"
> > (eieio-object-name object)))
> >
> > (cl-defmethod eieio-speedbar-expand ((object eieio-speedbar) depth)
> > @@ -364,7 +364,7 @@ TOKEN is the object. INDENT is the current
> indentation level."
> >
> > (cl-defmethod eieio-speedbar-child-description ((obj eieio-speedbar))
> > "Return a description for a child of OBJ which is not an object."
> > - (error "You must implement ‘eieio-speedbar-child-description’ for %s"
> > + (error "You must implement `eieio-speedbar-child-description' for %s"
> > (eieio-object-name obj)))
> >
> > (defun eieio-speedbar-item-info ()
> > diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
> > index ad178c3..790e8bc 100644
> > --- a/lisp/emacs-lisp/eieio.el
> > +++ b/lisp/emacs-lisp/eieio.el
> > @@ -114,10 +114,10 @@ and reference them using the function
> `class-option'."
> >
> > (cond ((and (stringp (car options-and-doc))
> > (/= 1 (% (length options-and-doc) 2)))
> > - (error "Too many arguments to ‘defclass’"))
> > + (error "Too many arguments to `defclass'"))
> > ((and (symbolp (car options-and-doc))
> > (/= 0 (% (length options-and-doc) 2)))
> > - (error "Too many arguments to ‘defclass’")))
> > + (error "Too many arguments to `defclass'")))
> >
> > (if (stringp (car options-and-doc))
> > (setq options-and-doc
> > @@ -235,7 +235,8 @@ This method is obsolete."
> > (let ((f (intern (format "%s-child-p" name))))
> > `((defalias ',f ',testsym2)
> > (make-obsolete
> > - ',f ,(format "use (cl-typep ... '%s) instead" name)
> "25.1"))))
> > + ',f ,(format "use (cl-typep ... \\='%s) instead" name)
> > + "25.1"))))
> >
> > ;; When using typep, (typep OBJ 'myclass) returns t for objects
> which
> > ;; are subclasses of myclass. For our predicates, however, it is
> > @@ -348,10 +349,10 @@ variable name of the same name as the slot."
> >
> > (pcase-defmacro eieio (&rest fields)
> > "Pcase patterns to match EIEIO objects.
> > -Elements of FIELDS can be of the form (NAME UPAT) in which case the
> contents of
> > -field NAME is matched against UPAT, or they can be of the form NAME
> which
> > +Elements of FIELDS can be of the form (NAME PAT) in which case the
> contents of
> > +field NAME is matched against PAT, or they can be of the form NAME which
> > is a shorthand for (NAME NAME)."
> > - (declare (debug (&rest [&or (sexp pcase-UPAT) sexp])))
> > + (declare (debug (&rest [&or (sexp pcase-PAT) sexp])))
> > (let ((is (make-symbol "table")))
> > ;; FIXME: This generates a horrendous mess of redundant let
> bindings.
> > ;; `pcase' needs to be improved somehow to introduce let-bindings
> more
> > @@ -941,7 +942,7 @@ this object."
> > "Change the class of OBJ to type CLASS.
> > This may create or delete slots, but does not affect the return value
> > of `eq'."
> > - (error "EIEIO: ‘change-class’ is unimplemented"))
> > + (error "EIEIO: `change-class' is unimplemented"))
> >
> > ;; Hook ourselves into help system for describing classes and methods.
> > ;; FIXME: This is not actually needed any more since we can click on the
> > @@ -983,7 +984,7 @@ Optional argument GROUP is the sub-group of slots to
> display.
> >
> > ;;;***
> >
> > -;;;### (autoloads nil "eieio-opt" "eieio-opt.el"
> "694d44fcd869546592d35f3321f62667")
> > +;;;### (autoloads nil "eieio-opt" "eieio-opt.el"
> "d00419c898056fadf2f8e491f864aa1e")
> > ;;; Generated autoloads from eieio-opt.el
> >
> > (autoload 'eieio-browse "eieio-opt" "\
> > diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el
> > index 15eeb49..86ac33c 100644
> > --- a/lisp/emacs-lisp/elint.el
> > +++ b/lisp/emacs-lisp/elint.el
> > @@ -249,9 +249,9 @@ This environment can be passed to `macroexpand'."
> > (elint-set-mode-line t)
> > (with-current-buffer elint-log-buffer
> > (unless (string-equal default-directory dir)
> > - (elint-log-message (format-message " \nLeaving directory ‘%s’"
> > + (elint-log-message (format-message " \nLeaving directory `%s'"
> > default-directory) t)
> > - (elint-log-message (format-message "Entering directory ‘%s’"
> dir) t)
> > + (elint-log-message (format-message "Entering directory `%s'"
> dir) t)
> > (setq default-directory dir))))
> > (let ((str (format "Linting file %s" file)))
> > (message "%s..." str)
> > @@ -374,7 +374,7 @@ Returns the forms."
> > ;; quoted check cannot be elsewhere, since quotes skipped.
> > (if (looking-back "'" (1- (point)))
> > ;; Eg cust-print.el uses ' as a comment syntax.
> > - (elint-warning "Skipping quoted form ‘'%.20s...’"
> > + (elint-warning "Skipping quoted form `%c%.20s...'" ?\'
> > (read (current-buffer)))
> > (condition-case nil
> > (setq tops (cons
> > @@ -383,7 +383,7 @@ Returns the forms."
> > tops))
> > (end-of-file
> > (goto-char elint-current-pos)
> > - (error "Missing ‘)’ in top form: %s"
> > + (error "Missing `)' in top form: %s"
> > (buffer-substring elint-current-pos
> > (line-end-position))))))))
> > (nreverse tops))))
> > @@ -401,7 +401,7 @@ Return nil if there are no more forms, t otherwise."
> > (cond
> > ;; Eg nnmaildir seems to use [] as a form of comment syntax.
> > ((not (listp form))
> > - (elint-warning "Skipping non-list form ‘%s’" form))
> > + (elint-warning "Skipping non-list form `%s'" form))
> > ;; Add defined variable
> > ((memq (car form) '(defvar defconst defcustom))
> > (setq elint-env (elint-env-add-var elint-env (cadr form))))
> > @@ -432,7 +432,7 @@ Return nil if there are no more forms, t otherwise."
> > (if (or (< (length form) 4)
> > (eq (nth 3 form) t)
> > (unless (stringp (nth 2 form))
> > - (elint-error "Malformed declaration for ‘%s’"
> > + (elint-error "Malformed declaration for `%s'"
> > (cadr form))
> > t))
> > 'unknown
> > @@ -758,7 +758,7 @@ CODE can be a lambda expression, a macro, or
> byte-compiled code."
> > (and (eq (car-safe alias) 'quote)
> > (eq (car-safe target) 'quote)
> > (eq (elint-get-args (cadr target) env) 'undefined)
> > - (elint-warning "Alias ‘%s’ has unknown target ‘%s’"
> > + (elint-warning "Alias `%s' has unknown target `%s'"
> > (cadr alias) (cadr target))))
> > (elint-form form env t))
> >
> > @@ -796,7 +796,7 @@ CODE can be a lambda expression, a macro, or
> byte-compiled code."
> > (setq newenv
> > (elint-env-add-var newenv (car s))))
> > (t (elint-error
> > - "Malformed ‘let’ declaration: %s" s))))
> > + "Malformed `let' declaration: %s" s))))
> > varlist)
> >
> > ;; Lint the body forms
> > diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el
> > index 91fc157..d47e5d9 100644
> > --- a/lisp/emacs-lisp/ert.el
> > +++ b/lisp/emacs-lisp/ert.el
> > @@ -121,7 +121,7 @@ Emacs bug 6581 at URL `
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6581'."
> >
> > (defun ert-get-test (symbol)
> > "If SYMBOL names a test, return that. Signal an error otherwise."
> > - (unless (ert-test-boundp symbol) (error "No test named ‘%S’" symbol))
> > + (unless (ert-test-boundp symbol) (error "No test named `%S'" symbol))
> > (get symbol 'ert--test))
> >
> > (defun ert-set-test (symbol definition)
> > @@ -2065,7 +2065,7 @@ and how to display message."
> > "--"
> > ["Show backtrace" ert-results-pop-to-backtrace-for-test-at-point]
> > ["Show messages" ert-results-pop-to-messages-for-test-at-point]
> > - ["Show ‘should’ forms"
> ert-results-pop-to-should-forms-for-test-at-point]
> > + ["Show `should' forms"
> ert-results-pop-to-should-forms-for-test-at-point]
> > ["Describe test" ert-results-describe-test-at-point]
> > "--"
> > ["Delete test" ert-delete-test]
> > @@ -2377,9 +2377,9 @@ To be used in the ERT results buffer."
> > (ert--print-backtrace backtrace)
> > (debugger-make-xrefs)
> > (goto-char (point-min))
> > - (insert "Backtrace for test ‘")
> > + (insert (substitute-command-keys "Backtrace for test `"))
> > (ert-insert-test-name-button (ert-test-name test))
> > - (insert "’:\n")))))))
> > + (insert (substitute-command-keys "':\n"))))))))
> >
> > (defun ert-results-pop-to-messages-for-test-at-point ()
> > "Display the part of the *Messages* buffer generated during the test
> at point.
> > @@ -2398,9 +2398,9 @@ To be used in the ERT results buffer."
> > (ert-simple-view-mode)
> > (insert (ert-test-result-messages result))
> > (goto-char (point-min))
> > - (insert "Messages for test ‘")
> > + (insert (substitute-command-keys "Messages for test `"))
> > (ert-insert-test-name-button (ert-test-name test))
> > - (insert "’:\n")))))
> > + (insert (substitute-command-keys "':\n"))))))
> >
> > (defun ert-results-pop-to-should-forms-for-test-at-point ()
> > "Display the list of `should' forms executed during the test at point.
> > @@ -2428,9 +2428,10 @@ To be used in the ERT results buffer."
> > (ert--pp-with-indentation-and-newline
> form-description)
> > (ert--make-xrefs-region begin (point)))))
> > (goto-char (point-min))
> > - (insert "‘should’ forms executed during test ‘")
> > + (insert (substitute-command-keys
> > + "`should' forms executed during test `"))
> > (ert-insert-test-name-button (ert-test-name test))
> > - (insert "’:\n")
> > + (insert (substitute-command-keys "':\n"))
> > (insert "\n")
> > (insert (concat "(Values are shallow copies and may have "
> > "looked different during the test if they\n"
> > @@ -2507,9 +2508,11 @@ To be used in the ERT results buffer."
> > (let ((file-name (and test-name
> > (symbol-file test-name 'ert-deftest))))
> > (when file-name
> > - (insert " defined in ‘" (file-name-nondirectory
> file-name) "’")
> > + (insert (format-message " defined in `%s'"
> > + (file-name-nondirectory
> file-name)))
> > (save-excursion
> > - (re-search-backward "‘\\([^‘’]+\\)’" nil t)
> > + (re-search-backward (substitute-command-keys
> "`\\([^`']+\\)'")
> > + nil t)
> > (help-xref-button 1 'help-function-def test-name
> file-name)))
> > (insert ".")
> > (fill-region-as-paragraph (point-min) (point))
> > diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
> > index 86a1f28..026a4a7 100644
> > --- a/lisp/emacs-lisp/find-func.el
> > +++ b/lisp/emacs-lisp/find-func.el
> > @@ -296,7 +296,7 @@ Otherwise, TYPE specifies the kind of definition,
> > and it is interpreted via `find-function-regexp-alist'.
> > The search is done in the source for library LIBRARY."
> > (if (null library)
> > - (error "Don't know where ‘%s’ is defined" symbol))
> > + (error "Don't know where `%s' is defined" symbol))
> > ;; Some functions are defined as part of the construct
> > ;; that defines something else.
> > (while (and (symbolp symbol) (get symbol 'definition-name))
> > @@ -368,9 +368,9 @@ message about the whole chain of aliases."
> > (setq aliases (if aliases
> > (concat aliases
> > (format-message
> > - ", which is an alias for ‘%s’"
> > + ", which is an alias for `%s'"
> > (symbol-name def)))
> > - (format-message "‘%s’ is an alias for ‘%s’"
> > + (format-message "`%s' is an alias for `%s'"
> > function (symbol-name def)))))
> > (setq function (find-function-advised-original function)
> > def (find-function-advised-original function)))
> > diff --git a/lisp/emacs-lisp/generator.el b/lisp/emacs-lisp/generator.el
> > index 79e760d..123f64b 100644
> > --- a/lisp/emacs-lisp/generator.el
> > +++ b/lisp/emacs-lisp/generator.el
> > @@ -661,7 +661,7 @@ The caller of `iter-next' receives VALUE, and the
> next call to
> > `iter-next' resumes execution at the previous
> > `iter-yield' point."
> > (identity value)
> > - (error "‘iter-yield’ used outside a generator"))
> > + (error "`iter-yield' used outside a generator"))
> >
> > (defmacro iter-yield-from (value)
> > "When used inside a generator function, delegate to a sub-iterator.
> > diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el
> > index 6760982..bbe6b36 100644
> > --- a/lisp/emacs-lisp/gv.el
> > +++ b/lisp/emacs-lisp/gv.el
> > @@ -239,7 +239,7 @@ instead the assignment is turned into something
> equivalent to
> > so as to preserve the semantics of `setf'."
> > (declare (debug (sexp (&or symbolp lambda-expr) &optional sexp)))
> > (when (eq 'lambda (car-safe setter))
> > - (message "Use ‘gv-define-setter’ or name %s's setter function"
> name))
> > + (message "Use `gv-define-setter' or name %s's setter function"
> name))
> > `(gv-define-setter ,name (val &rest args)
> > ,(if fix-return
> > `(macroexp-let2 nil v val
> > diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el
> > index 6fdd348..393f0dd 100644
> > --- a/lisp/emacs-lisp/lisp-mnt.el
> > +++ b/lisp/emacs-lisp/lisp-mnt.el
> > @@ -542,21 +542,21 @@ copyright notice is allowed."
> > ((null name)
> > "Can't find package name")
> > ((not (lm-authors))
> > - "‘Author:’ tag missing")
> > + "`Author:' tag missing")
> > ((not (lm-maintainer))
> > - "‘Maintainer:’ tag missing")
> > + "`Maintainer:' tag missing")
> > ((not (lm-summary))
> > "Can't find the one-line summary description")
> > ((not (lm-keywords))
> > - "‘Keywords:’ tag missing")
> > + "`Keywords:' tag missing")
> > ((not (lm-keywords-finder-p))
> > - "‘Keywords:’ has no valid finder keywords (see
> ‘finder-known-keywords’)")
> > + "`Keywords:' has no valid finder keywords (see
> `finder-known-keywords')")
> > ((not (lm-commentary-mark))
> > - "Can't find a ‘Commentary’ section marker")
> > + "Can't find a `Commentary' section marker")
> > ((not (lm-history-mark))
> > - "Can't find a ‘History’ section marker")
> > + "Can't find a `History' section marker")
> > ((not (lm-code-mark))
> > - "Can't find a ‘Code’ section marker")
> > + "Can't find a `Code' section marker")
> > ((progn
> > (goto-char (point-max))
> > (not
> > diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el
> > index 6189976..2c33d39 100644
> > --- a/lisp/emacs-lisp/macroexp.el
> > +++ b/lisp/emacs-lisp/macroexp.el
> > @@ -147,10 +147,10 @@ and also to avoid outputting the warning during
> normal execution."
> > (let ((instead (car obsolescence-data))
> > (asof (nth 2 obsolescence-data)))
> > (format-message
> > - "‘%s’ is an obsolete %s%s%s" fun type
> > + "`%s' is an obsolete %s%s%s" fun type
> > (if asof (concat " (as of " asof ")") "")
> > (cond ((stringp instead) (concat "; " (substitute-command-keys
> instead)))
> > - (instead (format-message "; use ‘%s’ instead." instead))
> > + (instead (format-message "; use `%s' instead." instead))
> > (t ".")))))
> >
> > (defun macroexpand-1 (form &optional environment)
> > diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el
> > index 3ac7094..43fd4ef57a 100644
> > --- a/lisp/emacs-lisp/map-ynp.el
> > +++ b/lisp/emacs-lisp/map-ynp.el
> > @@ -199,9 +199,9 @@ Returns the number of actions taken."
> > (action (if help (nth 2 help) "act
> on")))
> > (concat
> > (format-message "\
> > -Type SPC or ‘y’ to %s the current %s;
> > -DEL or ‘n’ to skip the current %s;
> > -RET or ‘q’ to give up on the %s (skip all remaining %s);
> > +Type SPC or `y' to %s the current %s;
> > +DEL or `n' to skip the current %s;
> > +RET or `q' to give up on the %s (skip all remaining %s);
> > C-g to quit (cancel the whole command);
> > ! to %s all remaining %s;\n"
> > action object object action
> objects action
> > diff --git a/lisp/emacs-lisp/map.el b/lisp/emacs-lisp/map.el
> > index 5014571..ea56efe 100644
> > --- a/lisp/emacs-lisp/map.el
> > +++ b/lisp/emacs-lisp/map.el
> > @@ -249,21 +249,22 @@ MAP can be a list, hash-table or array."
> > :array (seq-empty-p map)
> > :hash-table (zerop (hash-table-count map))))
> >
> > -(defun map-contains-key-p (map key &optional testfn)
> > +(defun map-contains-key (map key &optional testfn)
> > "Return non-nil if MAP contain the key KEY, nil otherwise.
> > Equality is defined by TESTFN if non-nil or by `equal' if nil.
> >
> > MAP can be a list, hash-table or array."
> > - (seq-contains-p (map-keys map) key testfn))
> > + (seq-contains (map-keys map) key testfn))
> >
> > -(defun map-some-p (pred map)
> > - "Return a key/value pair for which (PRED key val) is non-nil in MAP.
> > +(defun map-some (pred map)
> > + "Return a non-nil if (PRED key val) is non-nil for any key/value pair
> in MAP.
> >
> > MAP can be a list, hash-table or array."
> > (catch 'map--break
> > (map-apply (lambda (key value)
> > - (when (funcall pred key value)
> > - (throw 'map--break (cons key value))))
> > + (let ((result (funcall pred key value)))
> > + (when result
> > + (throw 'map--break result))))
> > map)
> > nil))
> >
> > diff --git a/lisp/emacs-lisp/nadvice.el b/lisp/emacs-lisp/nadvice.el
> > index 7eebb5e..2cd34e1 100644
> > --- a/lisp/emacs-lisp/nadvice.el
> > +++ b/lisp/emacs-lisp/nadvice.el
> > @@ -95,7 +95,7 @@ Each element has the form (WHERE BYTECODE STACK) where:
> > (propertize (format "%s advice: " where)
> > 'face 'warning)
> > (let ((fun (advice--car flist)))
> > - (if (symbolp fun) (format-message "‘%S’" fun)
> > + (if (symbolp fun) (format-message "`%S'" fun)
> > (let* ((name (cdr (assq 'name (advice--props
> flist))))
> > (doc (documentation fun t))
> > (usage (help-split-fundoc doc function)))
> > @@ -176,7 +176,7 @@ WHERE is a symbol to select an entry in
> `advice--where-alist'."
> > (advice--make-1 (aref main 1) (aref main 3)
> > (advice--car main) rest (advice--props main)))
> > (let ((desc (assq where advice--where-alist)))
> > - (unless desc (error "Unknown add-function location ‘%S’" where))
> > + (unless desc (error "Unknown add-function location `%S'" where))
> > (advice--make-1 (nth 1 desc) (nth 2 desc)
> > function main props)))))
> >
> > @@ -461,7 +461,7 @@ otherwise it is named `SYMBOL@NAME'.
> > (advice (cond ((null name) `(lambda ,lambda-list ,@body))
> > ((or (stringp name) (symbolp name))
> > (intern (format "%s@%s" symbol name)))
> > - (t (error "Unrecognized name spec ‘%S’" name)))))
> > + (t (error "Unrecognized name spec `%S'" name)))))
> > `(prog1 ,@(and (symbolp advice) `((defun ,advice ,lambda-list
> ,@body)))
> > (advice-add ',symbol ,where #',advice ,@(and props
> `(',props))))))
> >
> > diff --git a/lisp/emacs-lisp/package-x.el b/lisp/emacs-lisp/package-x.el
> > index 608bf73..81d0b83 100644
> > --- a/lisp/emacs-lisp/package-x.el
> > +++ b/lisp/emacs-lisp/package-x.el
> > @@ -296,7 +296,7 @@ destination, prompt for one."
> > ((string-match "\\.tar\\'" file)
> > (tar-mode) (package-tar-file-info))
> > ((string-match "\\.el\\'" file) (package-buffer-info))
> > - (t (error "Unrecognized extension ‘%s’"
> > + (t (error "Unrecognized extension `%s'"
> > (file-name-extension file))))))
> > (package-upload-buffer-internal pkg-desc (file-name-extension
> file)))))
> >
> > diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
> > index 7c4f21f..b0d2ff9 100644
> > --- a/lisp/emacs-lisp/package.el
> > +++ b/lisp/emacs-lisp/package.el
> > @@ -234,7 +234,7 @@ of it available such that:
> >
> > This variable has three possible values:
> > nil: no packages are hidden;
> > - archive: only criteria (a) is used;
> > + `archive': only criteria (a) is used;
> > t: both criteria are used.
> >
> > This variable has no effect if `package-menu--hide-packages' is
> > @@ -456,13 +456,13 @@ This is, approximately, the inverse of
> `version-to-list'.
> > (push (int-to-string num) str-list)
> > (push "." str-list))
> > ((< num -4)
> > - (error "Invalid version list ‘%s’" vlist))
> > + (error "Invalid version list `%s'" vlist))
> > (t
> > ;; pre, or beta, or alpha
> > (cond ((equal "." (car str-list))
> > (pop str-list))
> > ((not (string-match "[0-9]+" (car str-list)))
> > - (error "Invalid version list ‘%s’" vlist)))
> > + (error "Invalid version list `%s'" vlist)))
> > (push (cond ((= num -1) "pre")
> > ((= num -2) "beta")
> > ((= num -3) "alpha")
> > @@ -623,7 +623,7 @@ Return the max version (as a string) if the package
> is held at a lower version."
> > ((stringp force) ; held
> > (unless (version-list-= version (version-to-list force))
> > force))
> > - (t (error "Invalid element in ‘package-load-list’")))))
> > + (t (error "Invalid element in `package-load-list'")))))
> >
> > (defun package-built-in-p (package &optional min-version)
> > "Return true if PACKAGE is built-in to Emacs.
> > @@ -639,6 +639,28 @@ specifying the minimum acceptable version."
> > (require 'finder-inf nil t) ; For `package--builtins'.
> > (assq package package--builtins))))))
> >
> > +(defun package--autoloads-file-name (pkg-desc)
> > + "Return the absolute name of the autoloads file, sans extension.
> > +PKG-DESC is a `package-desc' object."
> > + (expand-file-name
> > + (format "%s-autoloads" (package-desc-name pkg-desc))
> > + (package-desc-dir pkg-desc)))
> > +
> > +(defun package--activate-autoloads-and-load-path (pkg-desc)
> > + "Load the autoloads file and add package dir to `load-path'.
> > +PKG-DESC is a `package-desc' object."
> > + (let* ((old-lp load-path)
> > + (pkg-dir (package-desc-dir pkg-desc))
> > + (pkg-dir-dir (file-name-as-directory pkg-dir)))
> > + (with-demoted-errors "Error loading autoloads: %s"
> > + (load (package--autoloads-file-name pkg-desc) nil t))
> > + (when (and (eq old-lp load-path)
> > + (not (or (member pkg-dir load-path)
> > + (member pkg-dir-dir load-path))))
> > + ;; Old packages don't add themselves to the `load-path', so we
> have to
> > + ;; do it ourselves.
> > + (push pkg-dir load-path))))
> > +
> > (defvar Info-directory-list)
> > (declare-function info-initialize "info" ())
> >
> > @@ -648,24 +670,14 @@ If RELOAD is non-nil, also `load' any files inside
> the package which
> > correspond to previously loaded files (those returned by
> > `package--list-loaded-files')."
> > (let* ((name (package-desc-name pkg-desc))
> > - (pkg-dir (package-desc-dir pkg-desc))
> > - (pkg-dir-dir (file-name-as-directory pkg-dir)))
> > + (pkg-dir (package-desc-dir pkg-desc)))
> > (unless pkg-dir
> > - (error "Internal error: unable to find directory for ‘%s’"
> > + (error "Internal error: unable to find directory for `%s'"
> > (package-desc-full-name pkg-desc)))
> > - ;; Add to load path, add autoloads, and activate the package.
> > - (let* ((old-lp load-path)
> > - (autoloads-file (expand-file-name
> > - (format "%s-autoloads" name) pkg-dir))
> > - (loaded-files-list (and reload (package--list-loaded-files
> pkg-dir))))
> > - (with-demoted-errors "Error in package-activate-1: %s"
> > - (load autoloads-file nil t))
> > - (when (and (eq old-lp load-path)
> > - (not (or (member pkg-dir load-path)
> > - (member pkg-dir-dir load-path))))
> > - ;; Old packages don't add themselves to the `load-path', so we
> have to
> > - ;; do it ourselves.
> > - (push pkg-dir load-path))
> > + (let* ((loaded-files-list (when reload
> > + (package--list-loaded-files pkg-dir))))
> > + ;; Add to load path, add autoloads, and activate the package.
> > + (package--activate-autoloads-and-load-path pkg-desc)
> > ;; Call `load' on all files in `pkg-dir' already present in
> > ;; `load-history'. This is done so that macros in these files
> are updated
> > ;; to their new definitions. If another package is being
> installed which
> > @@ -674,7 +686,8 @@ correspond to previously loaded files (those
> returned by
> > (with-demoted-errors "Error in package-activate-1: %s"
> > (mapc (lambda (feature) (load feature nil t))
> > ;; Skip autoloads file since we already evaluated it
> above.
> > - (remove (file-truename autoloads-file)
> loaded-files-list))))
> > + (remove (file-truename (package--autoloads-file-name
> pkg-desc))
> > + loaded-files-list))))
> > ;; Add info node.
> > (when (file-exists-p (expand-file-name "dir" pkg-dir))
> > ;; FIXME: not the friendliest, but simple.
> > @@ -754,8 +767,8 @@ Newer versions are always activated, regardless of
> FORCE."
> > (unless (package-activate (car req))
> > (throw 'dep-failure req))))))
> > (if fail
> > - (warn "Unable to activate package ‘%s’.
> > -Required package ‘%s-%s’ is unavailable"
> > + (warn "Unable to activate package `%s'.
> > +Required package `%s-%s' is unavailable"
> > package (car fail) (package-version-join (cadr fail)))
> > ;; If all goes well, activate the package itself.
> > (package-activate-1 pkg-vec force)))))))
> > @@ -919,8 +932,9 @@ untar into a directory named DIR; otherwise, signal
> an error."
> > (defun package--compile (pkg-desc)
> > "Byte-compile installed package PKG-DESC."
> > (let ((warning-minimum-level :error)
> > - (save-silently inhibit-message))
> > - (package-activate-1 pkg-desc)
> > + (save-silently inhibit-message)
> > + (load-path load-path))
> > + (package--activate-autoloads-and-load-path pkg-desc)
> > (byte-recompile-directory (package-desc-dir pkg-desc) 0 t)))
> >
> > ;;;; Inferring package from current buffer
> > @@ -1372,13 +1386,18 @@ If successful, set `package-archive-contents'."
> > The variable `package-load-list' controls which packages to load.
> > If optional arg NO-ACTIVATE is non-nil, don't activate packages.
> > If `user-init-file' does not mention `(package-initialize)', add
> > -it to the file."
> > +it to the file.
> > +If called as part of loading `user-init-file', set
> > +`package-enable-at-startup' to nil, to prevent accidentally
> > +loading packages twice."
> > (interactive)
> > (setq package-alist nil)
> > (if (equal user-init-file load-file-name)
> > ;; If `package-initialize' is being called as part of loading
> > ;; the init file, it's obvious we don't need to ensure-init.
> > - (setq package--init-file-ensured t)
> > + (setq package--init-file-ensured t
> > + ;; And likely we don't need to run it again after init.
> > + package-enable-at-startup nil)
> > (package--ensure-init-file))
> > (package-load-all-descriptors)
> > (package-read-all-archive-contents)
> > @@ -1465,7 +1484,7 @@ similar to an entry in `package-alist'. Save the
> cached copy to
> > ;; Even if the sig fails, this download is done, so
> > ;; remove it from the in-progress list.
> > (package--update-downloads-in-progress archive)
> > - (error "Unsigned archive ‘%s’" name))
> > + (error "Unsigned archive `%s'" name))
> > ;; Write out the archives file.
> > (write-region content nil local-file nil 'silent)
> > ;; Write out good signatures into archive-contents.signed
> file.
> > @@ -1495,7 +1514,7 @@ perform the downloads asynchronously."
> > (when async
> > ;; The t at the end means to propagate connection errors.
> > (lambda () (package--update-downloads-in-progress archive)
> t)))
> > - (error (message "Failed to download ‘%s’ archive."
> > + (error (message "Failed to download `%s' archive."
> > (car archive))))))
> >
> > ;;;###autoload
> > @@ -1564,7 +1583,7 @@ SEEN is used internally to detect infinite
> recursion."
> > (package-desc-full-name already))
> > (setq packages (delq already packages))
> > (setq already nil))
> > - (error "Need package ‘%s-%s’, but only %s is being installed"
> > + (error "Need package `%s-%s', but only %s is being installed"
> > next-pkg (package-version-join next-version)
> > (package-version-join (package-desc-version
> already)))))
> > (cond
> > @@ -1593,20 +1612,20 @@ SEEN is used internally to detect infinite
> recursion."
> > (setq problem
> > (if (stringp disabled)
> > (format-message
> > - "Package ‘%s’ held at version %s, but
> version %s required"
> > + "Package `%s' held at version %s, but
> version %s required"
> > next-pkg disabled
> > (package-version-join next-version))
> > - (format-message "Required package ‘%s’ is
> disabled"
> > + (format-message "Required package `%s' is
> disabled"
> > next-pkg)))))
> > (t (setq found pkg-desc)))))
> > (unless found
> > (cond
> > (problem (error "%s" problem))
> > (found-something
> > - (error "Need package ‘%s-%s’, but only %s is available"
> > + (error "Need package `%s-%s', but only %s is available"
> > next-pkg (package-version-join next-version)
> > found-something))
> > - (t (error "Package ‘%s-%s’ is unavailable"
> > + (t (error "Package `%s-%s' is unavailable"
> > next-pkg (package-version-join next-version)))))
> > (setq packages
> > (package-compute-transaction (cons found packages)
> > @@ -1766,7 +1785,7 @@ if all the in-between dependencies are also in
> PACKAGE-LIST."
> > (unless (or good-sigs (eq package-check-signature
> 'allow-unsigned))
> > ;; Even if the sig fails, this download is done, so
> > ;; remove it from the in-progress list.
> > - (error "Unsigned package: ‘%s’"
> > + (error "Unsigned package: `%s'"
> > (package-desc-name pkg-desc)))
> > ;; Signature checked, unpack now.
> > (with-temp-buffer (insert content)
> > @@ -1907,7 +1926,7 @@ to install it but still mark it as selected."
> > (package-desc-reqs pkg)))
> > (package-compute-transaction () (list (list pkg))))))
> > (package-download-transaction transaction)
> > - (message "‘%s’ is already installed" (package-desc-full-name pkg))))
> > + (message "`%s' is already installed" (package-desc-full-name pkg))))
> >
> > (defun package-strip-rcs-id (str)
> > "Strip RCS version ID from the version string STR.
> > @@ -1982,7 +2001,7 @@ If some packages are not installed propose to
> install them."
> > ;; using here, because the outcome is the same either way (nothing
> > ;; gets installed).
> > (if (not package-selected-packages)
> > - (message "‘package-selected-packages’ is empty, nothing to
> install")
> > + (message "`package-selected-packages' is empty, nothing to
> install")
> > (cl-loop for p in package-selected-packages
> > unless (package-installed-p p)
> > collect p into lst
> > @@ -2047,13 +2066,13 @@ If NOSAVE is non-nil, the package is not removed
> from
> > (expand-file-name package-user-dir))
> > (expand-file-name dir)))
> > ;; Don't delete "system" packages.
> > - (error "Package ‘%s’ is a system package, not deleting"
> > + (error "Package `%s' is a system package, not deleting"
> > (package-desc-full-name pkg-desc)))
> > ((and (null force)
> > (setq pkg-used-elsewhere-by
> > (package--used-elsewhere-p pkg-desc)))
> > ;; Don't delete packages used as dependency elsewhere.
> > - (error "Package ‘%s’ is used by ‘%s’ as dependency, not
> deleting"
> > + (error "Package `%s' is used by `%s' as dependency, not
> deleting"
> > (package-desc-full-name pkg-desc)
> > (package-desc-name pkg-used-elsewhere-by)))
> > (t
> > @@ -2068,7 +2087,7 @@ If NOSAVE is non-nil, the package is not removed
> from
> > (delete pkg-desc pkgs)
> > (unless (cdr pkgs)
> > (setq package-alist (delq pkgs package-alist))))
> > - (message "Package ‘%s’ deleted." (package-desc-full-name
> pkg-desc))))))
> > + (message "Package `%s' deleted." (package-desc-full-name
> pkg-desc))))))
> >
> > ;;;###autoload
> > (defun package-reinstall (pkg)
> > @@ -2097,7 +2116,8 @@ will be deleted."
> > ;; do absolutely nothing.
> > (when (or package-selected-packages
> > (yes-or-no-p
> > - "‘package-selected-packages’ is empty! Really remove ALL
> packages? "))
> > + (format-message
> > + "`package-selected-packages' is empty! Really remove ALL
> packages? ")))
> > (let ((removable (package--removable-packages)))
> > (if removable
> > (when (y-or-n-p
> > @@ -2144,7 +2164,7 @@ will be deleted."
> > (with-current-buffer standard-output
> > (describe-package-1 package)))))
> >
> > -(defface package-help-section-name-face
> > +(defface package-help-section-name
> > '((t :inherit (bold font-lock-function-name-face)))
> > "Face used on section names in package description buffers."
> > :version "25.1")
> > @@ -2155,7 +2175,7 @@ If more STRINGS are provided, insert them followed
> by a newline.
> > Otherwise no newline is inserted."
> > (declare (indent 1))
> > (insert (make-string (max 0 (- 11 (string-width name))) ?\s)
> > - (propertize (concat name ": ") 'font-lock-face
> 'package-help-section-name-face))
> > + (propertize (concat name ": ") 'font-lock-face
> 'package-help-section-name))
> > (when strings
> > (apply #'insert strings)
> > (insert "\n")))
> > @@ -2205,7 +2225,7 @@ Otherwise no newline is inserted."
> > "Installed"
> > (capitalize status))
> > 'font-lock-face
> 'package-status-builtin-face))
> > - (insert (substitute-command-keys " in ‘"))
> > + (insert (substitute-command-keys " in `"))
> > (let ((dir (abbreviate-file-name
> > (file-name-as-directory
> > (if (file-in-directory-p pkg-dir
> package-user-dir)
> > @@ -2215,10 +2235,10 @@ Otherwise no newline is inserted."
> > (if (and (package-built-in-p name)
> > (not (package-built-in-p name version)))
> > (insert (substitute-command-keys
> > - "’,\n shadowing a ")
> > + "',\n shadowing a ")
> > (propertize "built-in package"
> > 'font-lock-face
> 'package-status-builtin-face))
> > - (insert (substitute-command-keys "’")))
> > + (insert (substitute-command-keys "'")))
> > (if signed
> > (insert ".")
> > (insert " (unsigned)."))
> > @@ -2366,7 +2386,7 @@ Otherwise no newline is inserted."
> >
> > (defun package-install-button-action (button)
> > (let ((pkg-desc (button-get button 'package-desc)))
> > - (when (y-or-n-p (format-message "Install package ‘%s’? "
> > + (when (y-or-n-p (format-message "Install package `%s'? "
> > (package-desc-full-name pkg-desc)))
> > (package-install pkg-desc nil)
> > (revert-buffer nil t)
> > @@ -2374,7 +2394,7 @@ Otherwise no newline is inserted."
> >
> > (defun package-delete-button-action (button)
> > (let ((pkg-desc (button-get button 'package-desc)))
> > - (when (y-or-n-p (format-message "Delete package ‘%s’? "
> > + (when (y-or-n-p (format-message "Delete package `%s'? "
> > (package-desc-full-name pkg-desc)))
> > (package-delete pkg-desc)
> > (revert-buffer nil t)
> > @@ -2759,68 +2779,68 @@ Return (PKG-DESC [NAME VERSION STATUS DOC])."
> >
> >
> > ;;; Package menu faces
> > -(defface package-name-face
> > +(defface package-name
> > '((t :inherit link))
> > "Face used on package names in the package menu."
> > :version "25.1")
> >
> > -(defface package-description-face
> > +(defface package-description
> > '((t :inherit default))
> > "Face used on package description summaries in the package menu."
> > :version "25.1")
> >
> > -(defface package-status-built-in-face
> > +(defface package-status-built-in
> > '((t :inherit font-lock-builtin-face))
> > "Face used on the status and version of built-in packages."
> > :version "25.1")
> >
> > -(defface package-status-external-face
> > +(defface package-status-external
> > '((t :inherit package-status-builtin-face))
> > "Face used on the status and version of external packages."
> > :version "25.1")
> >
> > -(defface package-status-available-face
> > +(defface package-status-available
> > '((t :inherit default))
> > "Face used on the status and version of available packages."
> > :version "25.1")
> >
> > -(defface package-status-new-face
> > - '((t :inherit (bold package-status-available-face)))
> > +(defface package-status-new
> > + '((t :inherit (bold package-status-available)))
> > "Face used on the status and version of new packages."
> > :version "25.1")
> >
> > -(defface package-status-held-face
> > +(defface package-status-held
> > '((t :inherit font-lock-constant-face))
> > "Face used on the status and version of held packages."
> > :version "25.1")
> >
> > -(defface package-status-disabled-face
> > +(defface package-status-disabled
> > '((t :inherit font-lock-warning-face))
> > "Face used on the status and version of disabled packages."
> > :version "25.1")
> >
> > -(defface package-status-installed-face
> > +(defface package-status-installed
> > '((t :inherit font-lock-comment-face))
> > "Face used on the status and version of installed packages."
> > :version "25.1")
> >
> > -(defface package-status-dependency-face
> > - '((t :inherit package-status-installed-face))
> > +(defface package-status-dependency
> > + '((t :inherit package-status-installed))
> > "Face used on the status and version of dependency packages."
> > :version "25.1")
> >
> > -(defface package-status-unsigned-face
> > +(defface package-status-unsigned
> > '((t :inherit font-lock-warning-face))
> > "Face used on the status and version of unsigned packages."
> > :version "25.1")
> >
> > -(defface package-status-incompat-face
> > +(defface package-status-incompat
> > '((t :inherit font-lock-comment-face))
> > "Face used on the status and version of incompat packages."
> > :version "25.1")
> >
> > -(defface package-status-avail-obso-face
> > - '((t :inherit package-status-incompat-face))
> > +(defface package-status-avail-obso
> > + '((t :inherit package-status-incompat))
> > "Face used on the status and version of avail-obso packages."
> > :version "25.1")
> >
> > @@ -2832,22 +2852,22 @@ PKG is a package-desc object.
> > Return (PKG-DESC [NAME VERSION STATUS DOC])."
> > (let* ((status (package-desc-status pkg))
> > (face (pcase status
> > - (`"built-in" 'package-status-built-in-face)
> > - (`"external" 'package-status-external-face)
> > - (`"available" 'package-status-available-face)
> > - (`"avail-obso" 'package-status-avail-obso-face)
> > - (`"new" 'package-status-new-face)
> > - (`"held" 'package-status-held-face)
> > - (`"disabled" 'package-status-disabled-face)
> > - (`"installed" 'package-status-installed-face)
> > - (`"dependency" 'package-status-dependency-face)
> > - (`"unsigned" 'package-status-unsigned-face)
> > - (`"incompat" 'package-status-incompat-face)
> > + (`"built-in" 'package-status-built-in)
> > + (`"external" 'package-status-external)
> > + (`"available" 'package-status-available)
> > + (`"avail-obso" 'package-status-avail-obso)
> > + (`"new" 'package-status-new)
> > + (`"held" 'package-status-held)
> > + (`"disabled" 'package-status-disabled)
> > + (`"installed" 'package-status-installed)
> > + (`"dependency" 'package-status-dependency)
> > + (`"unsigned" 'package-status-unsigned)
> > + (`"incompat" 'package-status-incompat)
> > (_ 'font-lock-warning-face)))) ; obsolete.
> > (list pkg
> > `[(,(symbol-name (package-desc-name pkg))
> > - face package-name-face
> > - font-lock-face package-name-face
> > + face package-name
> > + font-lock-face package-name
> > follow-link t
> > package-desc ,pkg
> > action package-menu-describe-package)
> > @@ -2859,7 +2879,7 @@ Return (PKG-DESC [NAME VERSION STATUS DOC])."
> > (list (propertize (or (package-desc-archive pkg) "")
> > 'font-lock-face face)))
> > ,(propertize (package-desc-summary pkg)
> > - 'font-lock-face 'package-description-face)])))
> > + 'font-lock-face 'package-description)])))
> >
> > (defvar package-menu--old-archive-contents nil
> > "`package-archive-contents' before the latest refresh.")
> > @@ -2893,8 +2913,8 @@ If optional arg BUTTON is non-nil, describe its
> associated package."
> > (cl-remove-if-not (lambda (e) (string-match re (symbol-name
> (car e))))
> > package-archive-contents)))
> > (message (substitute-command-keys
> > - (concat "Hiding %s packages, type
> ‘\\[package-menu-toggle-hiding]’"
> > - " to toggle or ‘\\[customize-variable] RET
> package-hidden-regexps’"
> > + (concat "Hiding %s packages, type
> `\\[package-menu-toggle-hiding]'"
> > + " to toggle or `\\[customize-variable] RET
> package-hidden-regexps'"
> > " to customize it"))
> > (length hidden)))))
> >
> > @@ -3078,7 +3098,7 @@ prompt (see `package-menu--prompt-transaction-p')."
> > (length packages)
> > (mapconcat #'package-desc-full-name packages ", ")))
> > ;; Exactly 1
> > - (t (format-message "package ‘%s’"
> > + (t (format-message "package `%s'"
> > (package-desc-full-name (car packages))))))
> >
> > (defun package-menu--prompt-transaction-p (delete install upgrade)
> > @@ -3134,7 +3154,7 @@ objects removed."
> > (condition-case-unless-debug err
> > (let ((inhibit-message package-menu-async))
> > (package-delete elt nil 'nosave))
> > - (error (message "Error trying to delete ‘%s’: %S"
> > + (error (message "Error trying to delete `%s': %S"
> > (package-desc-full-name elt)
> > err))))))
> >
> > @@ -3265,7 +3285,7 @@ Store this list in
> `package-menu--new-package-list'."
> > (defun package-menu--find-and-notify-upgrades ()
> > "Notify the user of upgradable packages."
> > (when-let ((upgrades (package-menu--find-upgrades)))
> > - (message "%d package%s can be upgraded; type ‘%s’ to mark %s for
> upgrading."
> > + (message "%d package%s can be upgraded; type `%s' to mark %s for
> upgrading."
> > (length upgrades)
> > (if (= (length upgrades) 1) "" "s")
> > (substitute-command-keys "\\[package-menu-mark-upgrades]")
> > diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
> > index 5fe36bb..ea4f38a 100644
> > --- a/lisp/emacs-lisp/pcase.el
> > +++ b/lisp/emacs-lisp/pcase.el
> > @@ -164,7 +164,7 @@ Currently, the following patterns are provided this
> way:"
> > expansion))))
> >
> > (declare-function help-fns--signature "help-fns"
> > - (function doc real-def real-function raw))
> > + (function doc real-def real-function buffer))
> >
> > ;; FIXME: Obviously, this will collide with nadvice's use of
> > ;; function-documentation if we happen to advise `pcase'.
> > @@ -184,7 +184,7 @@ Currently, the following patterns are provided this
> way:"
> > (insert "\n\n-- ")
> > (let* ((doc (documentation me 'raw)))
> > (setq doc (help-fns--signature symbol doc me
> > - (indirect-function me) t))
> > + (indirect-function me)
> nil))
> > (insert "\n" (or doc "Not documented.")))))))
> > (let ((combined-doc (buffer-string)))
> > (if ud (help-add-fundoc-usage combined-doc (car ud))
> combined-doc)))))
> > @@ -197,7 +197,7 @@ Currently, the following patterns are provided this
> way:"
> > (pcase--dontwarn-upats (cons x pcase--dontwarn-upats)))
> > (pcase--expand
> > ;; FIXME: Could we add the FILE:LINE data in the error message?
> > - exp (append cases `((,x (error "No clause matching ‘%S’" ,x)))))))
> > + exp (append cases `((,x (error "No clause matching `%S'" ,x)))))))
> >
> > ;;;###autoload
> > (defmacro pcase-lambda (lambda-list &rest body)
> > @@ -775,7 +775,7 @@ Otherwise, it defers to REST which is a list of
> branches of the form
> > (let ((code (pcase--u1 matches code vars rest)))
> > (if (eq upat '_) code
> > (macroexp--warn-and-return
> > - "Pattern t is deprecated. Use ‘_’ instead"
> > + "Pattern t is deprecated. Use `_' instead"
> > code))))
> > ((eq upat 'pcase--dontcare) :pcase--dontcare)
> > ((memq (car-safe upat) '(guard pred))
> > @@ -860,7 +860,7 @@ Otherwise, it defers to REST which is a list of
> branches of the form
> > (pcase--u rest))
> > vars
> > (list `((and . ,matches) ,code . ,vars))))
> > - (t (error "Unknown pattern ‘%S’" upat)))))
> > + (t (error "Unknown pattern `%S'" upat)))))
> > (t (error "Incorrect MATCH %S" (car matches)))))
> >
> > (def-edebug-spec
> > diff --git a/lisp/emacs-lisp/re-builder.el
> b/lisp/emacs-lisp/re-builder.el
> > index de1f6d1..a499b03 100644
> > --- a/lisp/emacs-lisp/re-builder.el
> > +++ b/lisp/emacs-lisp/re-builder.el
> > @@ -458,7 +458,7 @@ matching parts of the target buffer will be
> highlighted."
> > (setq reb-subexp-mode t)
> > (reb-update-modestring)
> > (use-local-map reb-subexp-mode-map)
> > - (message "‘0’-‘9’ to display subexpressions ‘q’ to quit subexp
> mode"))
> > + (message "`0'-`9' to display subexpressions `q' to quit subexp
> mode"))
> >
> > (defun reb-show-subexp (subexp &optional pause)
> > "Visually show limit of subexpression SUBEXP of recent search.
> > diff --git a/lisp/emacs-lisp/regexp-opt.el
> b/lisp/emacs-lisp/regexp-opt.el
> > index b0fb23d..9888e92 100644
> > --- a/lisp/emacs-lisp/regexp-opt.el
> > +++ b/lisp/emacs-lisp/regexp-opt.el
> > @@ -92,7 +92,7 @@ is enclosed by at least one regexp grouping construct.
> > The returned regexp is typically more efficient than the equivalent
> regexp:
> >
> > (let ((open (if PAREN \"\\\\(\" \"\")) (close (if PAREN \"\\\\)\"
> \"\")))
> > - (concat open (mapconcat 'regexp-quote STRINGS \"\\\\|\") close))
> > + (concat open (mapconcat \\='regexp-quote STRINGS \"\\\\|\") close))
> >
> > If PAREN is `words', then the resulting regexp is additionally
> surrounded
> > by \\=\\< and \\>.
> > diff --git a/lisp/emacs-lisp/ring.el b/lisp/emacs-lisp/ring.el
> > index 8badac3..2447dfa 100644
> > --- a/lisp/emacs-lisp/ring.el
> > +++ b/lisp/emacs-lisp/ring.el
> > @@ -175,14 +175,14 @@ Comparison is done via `equal'. The index is
> 0-based."
> > "Return the next item in the RING, after ITEM.
> > Raise error if ITEM is not in the RING."
> > (let ((curr-index (ring-member ring item)))
> > - (unless curr-index (error "Item is not in the ring: ‘%s’" item))
> > + (unless curr-index (error "Item is not in the ring: `%s'" item))
> > (ring-ref ring (ring-plus1 curr-index (ring-length ring)))))
> >
> > (defun ring-previous (ring item)
> > "Return the previous item in the RING, before ITEM.
> > Raise error if ITEM is not in the RING."
> > (let ((curr-index (ring-member ring item)))
> > - (unless curr-index (error "Item is not in the ring: ‘%s’" item))
> > + (unless curr-index (error "Item is not in the ring: `%s'" item))
> > (ring-ref ring (ring-minus1 curr-index (ring-length ring)))))
> >
> > (defun ring-extend (ring x)
> > diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el
> > index 7b0de6e..a21ac7a 100644
> > --- a/lisp/emacs-lisp/rx.el
> > +++ b/lisp/emacs-lisp/rx.el
> > @@ -324,7 +324,7 @@ a standalone symbol."
> > (defun rx-check (form)
> > "Check FORM according to its car's parsing info."
> > (unless (listp form)
> > - (error "rx ‘%s’ needs argument(s)" form))
> > + (error "rx `%s' needs argument(s)" form))
> > (let* ((rx (rx-info (car form) 'head))
> > (nargs (1- (length form)))
> > (min-args (nth 1 rx))
> > @@ -332,16 +332,16 @@ a standalone symbol."
> > (type-pred (nth 3 rx)))
> > (when (and (not (null min-args))
> > (< nargs min-args))
> > - (error "rx form ‘%s’ requires at least %d args"
> > + (error "rx form `%s' requires at least %d args"
> > (car form) min-args))
> > (when (and (not (null max-args))
> > (> nargs max-args))
> > - (error "rx form ‘%s’ accepts at most %d args"
> > + (error "rx form `%s' accepts at most %d args"
> > (car form) max-args))
> > (when (not (null type-pred))
> > (dolist (sub-form (cdr form))
> > (unless (funcall type-pred sub-form)
> > - (error "rx form ‘%s’ requires args satisfying ‘%s’"
> > + (error "rx form `%s' requires args satisfying `%s'"
> > (car form) type-pred))))))
> >
> >
> > @@ -395,7 +395,7 @@ FORM is of the form `(and FORM1 ...)'."
> > (defun rx-anything (form)
> > "Match any character."
> > (if (consp form)
> > - (error "rx ‘anything’ syntax error: %s" form))
> > + (error "rx `anything' syntax error: %s" form))
> > (rx-or (list 'or 'not-newline ?\n)))
> >
> >
> > @@ -452,7 +452,7 @@ Only both edges of each range is checked."
> > (let ((i 0)
> > c1 c2 l)
> > (if (= 0 (length str))
> > - (error "String arg for Rx ‘any’ must not be empty"))
> > + (error "String arg for Rx `any' must not be empty"))
> > (while (string-match ".-." str i)
> > ;; string before range: convert it to characters
> > (if (< i (match-beginning 0))
> > @@ -482,13 +482,13 @@ Only both edges of each range is checked."
> > (error nil))))
> > (if (or (null translation)
> > (null (string-match "\\`\\[\\[:[-a-z]+:\\]\\]\\'"
> translation)))
> > - (error "Invalid char class ‘%s’ in Rx ‘any’" arg))
> > + (error "Invalid char class `%s' in Rx `any'" arg))
> > (list (substring translation 1 -1)))) ; strip outer brackets
> > ((and (integerp (car-safe arg)) (integerp (cdr-safe arg)))
> > (list arg))
> > ((stringp arg) (rx-check-any-string arg))
> > ((error
> > - "rx ‘any’ requires string, character, char pair or char class
> args"))))
> > + "rx `any' requires string, character, char pair or char class
> args"))))
> >
> >
> > (defun rx-any (form)
> > @@ -581,7 +581,7 @@ ARG is optional."
> > (eq arg 'word-boundary)
> > (and (consp arg)
> > (memq (car arg) '(not any in syntax category))))
> > - (error "rx ‘not’ syntax error: %s" arg))
> > + (error "rx `not' syntax error: %s" arg))
> > t)
> >
> >
> > @@ -640,7 +640,7 @@ If SKIP is non-nil, allow that number of items after
> the head, i.e.
> > (setq form (rx-trans-forms form 1))
> > (unless (and (integerp (nth 1 form))
> > (> (nth 1 form) 0))
> > - (error "rx ‘=’ requires positive integer first arg"))
> > + (error "rx `=' requires positive integer first arg"))
> > (format "%s\\{%d\\}" (rx-form (nth 2 form) '*) (nth 1 form)))
> >
> >
> > @@ -650,7 +650,7 @@ If SKIP is non-nil, allow that number of items after
> the head, i.e.
> > (setq form (rx-trans-forms form 1))
> > (unless (and (integerp (nth 1 form))
> > (> (nth 1 form) 0))
> > - (error "rx ‘>=’ requires positive integer first arg"))
> > + (error "rx `>=' requires positive integer first arg"))
> > (format "%s\\{%d,\\}" (rx-form (nth 2 form) '*) (nth 1 form)))
> >
> >
> > @@ -671,14 +671,14 @@ FORM is either `(repeat N FORM1)' or `(repeat N M
> FORMS...)'."
> > (cond ((= (length form) 3)
> > (unless (and (integerp (nth 1 form))
> > (> (nth 1 form) 0))
> > - (error "rx ‘repeat’ requires positive integer first arg"))
> > + (error "rx `repeat' requires positive integer first arg"))
> > (format "%s\\{%d\\}" (rx-form (nth 2 form) '*) (nth 1 form)))
> > ((or (not (integerp (nth 2 form)))
> > (< (nth 2 form) 0)
> > (not (integerp (nth 1 form)))
> > (< (nth 1 form) 0)
> > (< (nth 2 form) (nth 1 form)))
> > - (error "rx ‘repeat’ range error"))
> > + (error "rx `repeat' range error"))
> > (t
> > (format "%s\\{%d,%d\\}" (rx-form (nth 3 form) '*)
> > (nth 1 form) (nth 2 form)))))
> > @@ -713,7 +713,7 @@ FORM is either `(repeat N FORM1)' or `(repeat N M
> FORMS...)'."
> > (defun rx-check-backref (arg)
> > "Check arg ARG for Rx `backref'."
> > (or (and (integerp arg) (>= arg 1) (<= arg 9))
> > - (error "rx ‘backref’ requires numeric 1<=arg<=9: %s" arg)))
> > + (error "rx `backref' requires numeric 1<=arg<=9: %s" arg)))
> >
> > (defun rx-kleene (form)
> > "Parse and produce code from FORM.
> > @@ -786,7 +786,7 @@ of all atomic regexps."
> > (if (= 1 (length name))
> > (setq syntax (aref name 0))))))
> > (unless syntax
> > - (error "Unknown rx syntax ‘%s’" sym)))
> > + (error "Unknown rx syntax `%s'" sym)))
> > (format "\\s%c" syntax)))
> >
> >
> > @@ -794,7 +794,7 @@ of all atomic regexps."
> > "Check the argument FORM of a `(category FORM)'."
> > (unless (or (integerp form)
> > (cdr (assq form rx-categories)))
> > - (error "Unknown category ‘%s’" form))
> > + (error "Unknown category `%s'" form))
> > t)
> >
> >
> > @@ -846,16 +846,16 @@ shy groups around the result and some more in
> other functions."
> > (cond ((stringp info)
> > info)
> > ((null info)
> > - (error "Unknown rx form ‘%s’" form))
> > + (error "Unknown rx form `%s'" form))
> > (t
> > (funcall (nth 0 info) form)))))
> > ((consp form)
> > (let ((info (rx-info (car form) 'head)))
> > (unless (consp info)
> > - (error "Unknown rx form ‘%s’" (car form)))
> > + (error "Unknown rx form `%s'" (car form)))
> > (funcall (nth 0 info) form)))
> > (t
> > - (error "rx syntax error at ‘%s’" form))))
> > + (error "rx syntax error at `%s'" form))))
> >
> >
> > ;;;###autoload
> > diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el
> > index a17b0a8..8dc9147 100644
> > --- a/lisp/emacs-lisp/seq.el
> > +++ b/lisp/emacs-lisp/seq.el
> > @@ -252,14 +252,6 @@ If SEQ is empty, return INITIAL-VALUE and FUNCTION
> is not called."
> > (setq acc (funcall function acc elt)))
> > acc)))
> >
> > -(cl-defgeneric seq-some-p (pred seq)
> > - "Return any element for which (PRED element) is non-nil in SEQ, nil
> otherwise."
> > - (catch 'seq--break
> > - (seq-doseq (elt seq)
> > - (when (funcall pred elt)
> > - (throw 'seq--break elt)))
> > - nil))
> > -
> > (cl-defgeneric seq-every-p (pred seq)
> > "Return non-nil if (PRED element) is non-nil for all elements of the
> sequence SEQ."
> > (catch 'seq--break
> > @@ -268,6 +260,16 @@ If SEQ is empty, return INITIAL-VALUE and FUNCTION
> is not called."
> > (throw 'seq--break nil)))
> > t))
> >
> > +(cl-defgeneric seq-some (pred seq)
> > + "Return non-nil if (PRED element) is non-nil for any element in SEQ,
> nil otherwise.
> > +If so, return the non-nil value returned by PRED."
> > + (catch 'seq--break
> > + (seq-doseq (elt seq)
> > + (let ((result (funcall pred elt)))
> > + (when result
> > + (throw 'seq--break result))))
> > + nil))
> > +
> > (cl-defgeneric seq-count (pred seq)
> > "Return the number of elements for which (PRED element) is non-nil in
> SEQ."
> > (let ((count 0))
> > @@ -276,19 +278,19 @@ If SEQ is empty, return INITIAL-VALUE and FUNCTION
> is not called."
> > (setq count (+ 1 count))))
> > count))
> >
> > -(cl-defgeneric seq-contains-p (seq elt &optional testfn)
> > +(cl-defgeneric seq-contains (seq elt &optional testfn)
> > "Return the first element in SEQ that equals to ELT.
> > Equality is defined by TESTFN if non-nil or by `equal' if nil."
> > - (seq-some-p (lambda (e)
> > - (funcall (or testfn #'equal) elt e))
> > - seq))
> > + (seq-some (lambda (e)
> > + (funcall (or testfn #'equal) elt e))
> > + seq))
> >
> > (cl-defgeneric seq-uniq (seq &optional testfn)
> > "Return a list of the elements of SEQ with duplicates removed.
> > TESTFN is used to compare elements, or `equal' if TESTFN is nil."
> > (let ((result '()))
> > (seq-doseq (elt seq)
> > - (unless (seq-contains-p result elt testfn)
> > + (unless (seq-contains result elt testfn)
> > (setq result (cons elt result))))
> > (nreverse result)))
> >
> > @@ -313,7 +315,7 @@ negative integer or 0, nil is returned."
> > "Return a list of the elements that appear in both SEQ1 and SEQ2.
> > Equality is defined by TESTFN if non-nil or by `equal' if nil."
> > (seq-reduce (lambda (acc elt)
> > - (if (seq-contains-p seq2 elt testfn)
> > + (if (seq-contains seq2 elt testfn)
> > (cons elt acc)
> > acc))
> > (seq-reverse seq1)
> > @@ -323,7 +325,7 @@ Equality is defined by TESTFN if non-nil or by
> `equal' if nil."
> > "Return a list of the elements that appear in SEQ1 but not in SEQ2.
> > Equality is defined by TESTFN if non-nil or by `equal' if nil."
> > (seq-reduce (lambda (acc elt)
> > - (if (not (seq-contains-p seq2 elt testfn))
> > + (if (not (seq-contains seq2 elt testfn))
> > (cons elt acc)
> > acc))
> > (seq-reverse seq1)
> > diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el
> > index 9678cfa..0c24f79 100644
> > --- a/lisp/emacs-lisp/smie.el
> > +++ b/lisp/emacs-lisp/smie.el
> > @@ -2213,13 +2213,13 @@ One way to generate local rules is the command
> `smie-config-guess'."
> > (let* ((existing (assq major-mode smie-config))
> > (config
> > (cond ((null existing)
> > - (message "Local rules saved in ‘smie-config’")
> > + (message "Local rules saved in `smie-config'")
> > smie-config--buffer-local)
> > ((y-or-n-p "Replace the existing mode's config? ")
> > - (message "Mode rules replaced in ‘smie-config’")
> > + (message "Mode rules replaced in `smie-config'")
> > smie-config--buffer-local)
> > ((y-or-n-p "Merge with existing mode's config? ")
> > - (message "Mode rules adjusted in ‘smie-config’")
> > + (message "Mode rules adjusted in `smie-config'")
> > (append smie-config--buffer-local (cdr existing)))
> > (t (error "Abort")))))
> > (if existing
> > diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el
> > index 9637e42..e6d451a 100644
> > --- a/lisp/emacs-lisp/subr-x.el
> > +++ b/lisp/emacs-lisp/subr-x.el
> > @@ -90,7 +90,7 @@ threading."
> > (when (> (length binding) 2)
> > (signal
> > 'error
> > - (cons "‘let’ bindings can have only one value-form" binding)))
> > + (cons "`let' bindings can have only one value-form" binding)))
> > binding)
> >
> > (defsubst internal--build-binding-value-form (binding prev-var)
> > diff --git a/lisp/emacs-lisp/tabulated-list.el
> b/lisp/emacs-lisp/tabulated-list.el
> > index 404dbd1..cd61eb9 100644
> > --- a/lisp/emacs-lisp/tabulated-list.el
> > +++ b/lisp/emacs-lisp/tabulated-list.el
> > @@ -129,7 +129,7 @@ no entry at POS. POS, if omitted or nil, defaults
> to point."
> > TAG should be a string, with length <= `tabulated-list-padding'.
> > If ADVANCE is non-nil, move forward by one line afterwards."
> > (unless (stringp tag)
> > - (error "Invalid argument to ‘tabulated-list-put-tag’"))
> > + (error "Invalid argument to `tabulated-list-put-tag'"))
> > (unless (> tabulated-list-padding 0)
> > (error "Unable to tag the current line"))
> > (save-excursion
> > diff --git a/lisp/emacs-lisp/testcover.el b/lisp/emacs-lisp/testcover.el
> > index 3e6039e..110c63f 100644
> > --- a/lisp/emacs-lisp/testcover.el
> > +++ b/lisp/emacs-lisp/testcover.el
> > @@ -475,7 +475,7 @@ same value during coverage testing."
> > (aset testcover-vector idx (cons '1value val)))
> > ((not (and (eq (car-safe (aref testcover-vector idx)) '1value)
> > (equal (cdr (aref testcover-vector idx)) val)))
> > - (error "Value of form marked with ‘1value’ does vary: %s" val)))
> > + (error "Value of form marked with `1value' does vary: %s" val)))
> > val)
> >
> >
> > diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el
> > index 0a0296f..dca459f 100644
> > --- a/lisp/emacs-lisp/timer.el
> > +++ b/lisp/emacs-lisp/timer.el
> > @@ -324,7 +324,7 @@ This function is called, by name, directly by the C
> code."
> > (apply (timer--function timer) (timer--args timer)))
> > (error (message "Error running timer%s: %S"
> > (if (symbolp (timer--function timer))
> > - (format-message " ‘%s’" (timer--function
> timer))
> > + (format-message " `%s'" (timer--function
> timer))
> > "")
> > err)))
> > (when (and retrigger
> > diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
> > index 8b3f6b4..93fcec8 100644
> > --- a/lisp/emulation/viper-cmd.el
> > +++ b/lisp/emulation/viper-cmd.el
> > @@ -3449,7 +3449,7 @@ controlled by the sign of prefix numeric value."
> > (setq viper-parse-sexp-ignore-comments
> > (not viper-parse-sexp-ignore-comments))
> > (princ (format-message
> > - "From now on, ‘%%’ will %signore parentheses inside comment
> fields"
> > + "From now on, `%%' will %signore parentheses inside comment
> fields"
> > (if viper-parse-sexp-ignore-comments "" "NOT "))))
> >
> >
> > @@ -3641,7 +3641,7 @@ the Emacs binding of `/'."
> > (cond ((or (eq arg 1)
> > (and (null arg)
> > (y-or-n-p (format-message
> > - "Search style: ‘%s’. Want ‘%s’? "
> > + "Search style: `%s'. Want `%s'? "
> > (if viper-case-fold-search
> > "case-insensitive" "case-sensitive")
> > (if viper-case-fold-search
> > @@ -3654,7 +3654,7 @@ the Emacs binding of `/'."
> > ((or (eq arg 2)
> > (and (null arg)
> > (y-or-n-p (format-message
> > - "Search style: ‘%s’. Want ‘%s’? "
> > + "Search style: `%s'. Want `%s'? "
> > (if viper-re-search
> > "regexp-search" "vanilla-search")
> > (if viper-re-search
> > @@ -3990,7 +3990,7 @@ Null string will repeat previous search."
> > (if (or (not (buffer-modified-p buffer))
> > (y-or-n-p
> > (format-message
> > - "Buffer ‘%s’ is modified, are you sure you want to kill
> it? "
> > + "Buffer `%s' is modified, are you sure you want to kill
> it? "
> > buffer-name)))
> > (kill-buffer buffer)
> > (error "Buffer not killed"))))
> > @@ -4640,7 +4640,7 @@ One can use \\=`\\=` and \\='\\=' to temporarily
> jump 1 step back."
> > reg (substring text (- pos
> s)))))
> > (princ
> > (format-message
> > - "Textmarker ‘%c’ is in buffer ‘%s’ at line %d.\n"
> > + "Textmarker `%c' is in buffer `%s' at line %d.\n"
> > reg (buffer-name buf) line-no))
> > (princ (format "Here is some text around %c:\n\n %s"
> > reg text)))
> > diff --git a/lisp/emulation/viper-init.el b/lisp/emulation/viper-init.el
> > index e28c67a..092de55 100644
> > --- a/lisp/emulation/viper-init.el
> > +++ b/lisp/emulation/viper-init.el
> > @@ -583,7 +583,7 @@ the Insert state."
> >
> > (defcustom viper-keep-point-on-repeat t
> > "If t, don't move point when repeating previous command.
> > -This is useful for doing repeated changes with the ‘.’ key.
> > +This is useful for doing repeated changes with the `.' key.
> > The user can change this to nil, if she likes when the cursor moves
> > to a new place after repeating previous Vi command."
> > :type 'boolean
> > diff --git a/lisp/emulation/viper-keym.el b/lisp/emulation/viper-keym.el
> > index 250c292..272556d 100644
> > --- a/lisp/emulation/viper-keym.el
> > +++ b/lisp/emulation/viper-keym.el
> > @@ -502,7 +502,7 @@ ALIST is of the form ((key . func) (key . func) ...)
> > Normally, this would be called from a hook to a major mode or
> > on a per buffer basis.
> > Usage:
> > - (viper-add-local-keys state '((key-str . func) (key-str .
> func)...)) "
> > + (viper-add-local-keys state \\='((key-str . func) (key-str .
> func)...)) "
> >
> > (let (map)
> > (cond ((eq state 'vi-state)
> > diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el
> > index 4b33b42..4fa0779 100644
> > --- a/lisp/emulation/viper-macs.el
> > +++ b/lisp/emulation/viper-macs.el
> > @@ -370,11 +370,11 @@ If SCOPE is nil, the user is asked to specify the
> scope."
> > (cond
> > ((y-or-n-p
> > (format-message
> > - "Map this macro for buffer ‘%s’ only? "
> > + "Map this macro for buffer `%s' only? "
> > (buffer-name)))
> > (setq msg
> > (format-message
> > - "%S is mapped to %s for %s in ‘%s’"
> > + "%S is mapped to %s for %s in `%s'"
> > (viper-display-macro macro-name)
> > (viper-abbreviate-string
> > (format
> > @@ -386,11 +386,11 @@ If SCOPE is nil, the user is asked to specify the
> scope."
> > (buffer-name))
> > ((y-or-n-p
> > (format-message
> > - "Map this macro for the major mode ‘%S’ only? "
> > + "Map this macro for the major mode `%S' only? "
> > major-mode))
> > (setq msg
> > (format-message
> > - "%S is mapped to %s for %s in ‘%S’"
> > + "%S is mapped to %s for %s in `%S'"
> > (viper-display-macro macro-name)
> > (viper-abbreviate-string
> > (format
> > diff --git a/lisp/env.el b/lisp/env.el
> > index f50ed12..3966ab1 100644
> > --- a/lisp/env.el
> > +++ b/lisp/env.el
> > @@ -175,7 +175,7 @@ a side-effect."
> > (let ((codings (find-coding-systems-string (concat variable
> value))))
> > (unless (or (eq 'undecided (car codings))
> > (memq (coding-system-base locale-coding-system)
> codings))
> > - (error "Can't encode ‘%s=%s’ with ‘locale-coding-system’"
> > + (error "Can't encode `%s=%s' with `locale-coding-system'"
> > variable (or value "")))))
> > (and value
> > substitute-env-vars
> > @@ -185,7 +185,7 @@ a side-effect."
> > (if (and value (multibyte-string-p value))
> > (setq value (encode-coding-string value locale-coding-system)))
> > (if (string-match "=" variable)
> > - (error "Environment variable name ‘%s’ contains ‘=’" variable))
> > + (error "Environment variable name `%s' contains `='" variable))
> > (if (string-equal "TZ" variable)
> > (set-time-zone-rule value))
> > (setq process-environment (setenv-internal process-environment
> > diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
> > index eec6925..958c5ef 100644
> > --- a/lisp/erc/erc-backend.el
> > +++ b/lisp/erc/erc-backend.el
> > @@ -1100,12 +1100,12 @@ Would expand to:
> > add things to `erc-server-311-functions' instead.\"
> > (do-stuff-with-whois proc parsed))
> >
> > - (puthash \"311\" 'erc-server-311-functions erc-server-responses)
> > - (puthash \"WHOIS\" 'erc-server-WHOIS-functions erc-server-responses)
> > - (puthash \"WI\" 'erc-server-WI-functions erc-server-responses)
> > + (puthash \"311\" \\='erc-server-311-functions erc-server-responses)
> > + (puthash \"WHOIS\" \\='erc-server-WHOIS-functions
> erc-server-responses)
> > + (puthash \"WI\" \\='erc-server-WI-functions erc-server-responses)
> >
> > - (defalias 'erc-server-WHOIS 'erc-server-311)
> > - (defvar erc-server-WHOIS-functions 'erc-server-311
> > + (defalias \\='erc-server-WHOIS \\='erc-server-311)
> > + (defvar erc-server-WHOIS-functions \\='erc-server-311
> > \"Some non-generic variable documentation.
> >
> > Hook called upon receiving a WHOIS server response.
> > @@ -1116,8 +1116,8 @@ Would expand to:
> >
> > See also `erc-server-311'.\")
> >
> > - (defalias 'erc-server-WI 'erc-server-311)
> > - (defvar erc-server-WI-functions 'erc-server-311
> > + (defalias \\='erc-server-WI \\='erc-server-311)
> > + (defvar erc-server-WI-functions \\='erc-server-311
> > \"Some non-generic variable documentation.
> >
> > Hook called upon receiving a WI server response.
> > diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el
> > index 6139e93..0e4c709 100644
> > --- a/lisp/erc/erc-button.el
> > +++ b/lisp/erc/erc-button.el
> > @@ -512,7 +512,7 @@ Examples:
> > (defun erc-nick-popup (nick)
> > (let* ((completion-ignore-case t)
> > (action (completing-read (format-message
> > - "What action to take on ‘%s’? " nick)
> > + "What action to take on `%s'? " nick)
> > erc-nick-popup-alist))
> > (code (cdr (assoc action erc-nick-popup-alist))))
> > (when code
> > diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el
> > index bb6e311..0a9932d 100644
> > --- a/lisp/erc/erc-dcc.el
> > +++ b/lisp/erc/erc-dcc.el
> > @@ -166,7 +166,7 @@ All values of the list must be uppercase strings.")
> > "Return the first matching entry in `erc-dcc-list' which satisfies the
> > constraints given as a plist in ARGS. Returns nil on no match.
> >
> > -The property :nick is treated specially, if it contains a ‘!’ character,
> > +The property :nick is treated specially, if it contains a `!' character,
> > it is treated as a nick!user@host string, and compared with the :nick
> property
> > value of the individual elements using string-equal. Otherwise it is
> > compared with `erc-nick-equal-p' which is IRC case-insensitive."
> > diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
> > index 726e9ed..62be63e 100644
> > --- a/lisp/erc/erc.el
> > +++ b/lisp/erc/erc.el
> > @@ -230,7 +230,7 @@ prompt you for it.")
> > (defcustom erc-hide-prompt nil
> > "If non-nil, do not display the prompt for commands.
> >
> > -\(A command is any input starting with a ‘/’).
> > +\(A command is any input starting with a `/').
> >
> > See also the variables `erc-prompt' and `erc-command-indicator'."
> > :group 'erc-display
> > @@ -667,7 +667,7 @@ See also the variable `erc-prompt'."
> > "Indicator used by ERC for showing commands.
> >
> > If non-nil, this will be used in the ERC buffer to indicate
> > -commands (i.e., input starting with a ‘/’).
> > +commands (i.e., input starting with a `/').
> >
> > If nil, the prompt will be constructed from the variable `erc-prompt'."
> > :group 'erc-display
> > @@ -2789,7 +2789,7 @@ this function from interpreting the line as a
> command."
> > (defun erc-cmd-SAY (line)
> > "Send LINE to the current query or channel as a message, not a
> command.
> >
> > -Use this when you want to send a message with a leading ‘/’. Note
> > +Use this when you want to send a message with a leading `/'. Note
> > that since multi-line messages are never a command, you don't
> > need this when pasting multiple lines of text."
> > (if (string-match "^\\s-*$" line)
> > @@ -3119,9 +3119,9 @@ a script after exceeding the flood threshold."
> > (erc-display-message nil 'error (current-buffer)
> > 'cannot-read-file ?f file))
> > (t
> > - (message "Loading ‘%s’..." file)
> > + (message "Loading `%s'..." file)
> > (erc-load-script file)
> > - (message "Loading ‘%s’...done" file))))
> > + (message "Loading `%s'...done" file))))
> > t)
> > (t nil)))
> >
> > @@ -3259,7 +3259,7 @@ The lines are shown in a buffer named `*Occur*'.
> > It serves as a menu to find any of the occurrences in this buffer.
> > \\[describe-mode] in that buffer will explain how.
> >
> > -If LINE contains upper case characters (excluding those preceded by
> ‘\\’),
> > +If LINE contains upper case characters (excluding those preceded by
> `\\'),
> > the matching is case-sensitive."
> > (occur line)
> > t)
> > @@ -4466,7 +4466,7 @@ See also: `erc-echo-notice-in-user-buffers',
> > "Handle the logging in process of connection."
> > (unless erc-logged-in
> > (setq erc-logged-in t)
> > - (message "Logging in as ‘%s’... done" (erc-current-nick))
> > + (message "Logging in as `%s'... done" (erc-current-nick))
> > ;; execute a startup script
> > (let ((f (erc-select-startup-file)))
> > (when f
> > @@ -5203,7 +5203,7 @@ So far the following TYPE/L pairs are supported:
> >
> > Event TYPE L
> >
> > - nickname change 'nick (NEW-NICK)"
> > + nickname change `nick' (NEW-NICK)"
> > (erc-log (format "user-change: type: %S nlh: %S l: %S" type nlh l))
> > (cond
> > ;; nickname change
> > @@ -6512,7 +6512,7 @@ All windows are opened in the current frame."
> > . "\n\nConnection failed! Not re-establishing connection.\n")
> > (finished . "\n\n*** ERC finished ***\n")
> > (terminated . "\n\n*** ERC terminated: %e\n")
> > - (login . "Logging in as ‘%n’...")
> > + (login . "Logging in as `%n'...")
> > (nick-in-use . "%n is in use. Choose new nickname: ")
> > (nick-too-long
> > . "WARNING: Nick length (%i) exceeds max NICKLEN(%l) defined by
> server")
> > diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el
> > index 1bd7fbc..3960cd7 100644
> > --- a/lisp/eshell/em-dirs.el
> > +++ b/lisp/eshell/em-dirs.el
> > @@ -301,7 +301,7 @@ Thus, this does not include the current directory.")
> > eshell-user-names)))))))
> >
> > (defun eshell/pwd (&rest args)
> > - "Change output from ‘pwd’ to be cleaner."
> > + "Change output from `pwd' to be cleaner."
> > (let* ((path default-directory)
> > (len (length path)))
> > (if (and (> len 1)
> > @@ -365,7 +365,7 @@ in the minibuffer:
> > (let ((curdir (eshell/pwd)))
> > (if (string-match path curdir)
> > (setq path (replace-match subpath nil nil curdir))
> > - (error "Path substring ‘%s’ not found" path))))
> > + (error "Path substring `%s' not found" path))))
> > ((and path (string-match "^-\\([0-9]*\\)$" path))
> > (let ((index (match-string 1 path)))
> > (setq path
> > diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el
> > index 976882c..f2e67cc 100644
> > --- a/lisp/eshell/em-glob.el
> > +++ b/lisp/eshell/em-glob.el
> > @@ -193,7 +193,7 @@ The basic syntax is:
> > * .* matches any group of characters (or none)
> > # * matches zero or more occurrences of preceding
> > ## + matches one or more occurrences of preceding
> > - (x) \(x\) makes ‘x’ a regular expression group
> > + (x) \(x\) makes `x' a regular expression group
> > | \| boolean OR within an expression group
> > [a-b] [a-b] matches a character or range
> > [^a] [^a] excludes a character or range
> > @@ -220,7 +220,7 @@ resulting regular expression."
> > matched-in-pattern (1+ op-begin))
> > (let ((xlat (assq op-char eshell-glob-translate-alist)))
> > (if (not xlat)
> > - (error "Unrecognized globbing character ‘%c’" op-char)
> > + (error "Unrecognized globbing character `%c'" op-char)
> > (if (stringp (cdr xlat))
> > (setq regexp (concat regexp (cdr xlat))
> > matched-in-pattern (1+ op-begin))
> > @@ -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-pred.el b/lisp/eshell/em-pred.el
> > index 539080f..102795f 100644
> > --- a/lisp/eshell/em-pred.el
> > +++ b/lisp/eshell/em-pred.el
> > @@ -172,18 +172,18 @@ PERMISSION BITS (for owner/group/world):
> >
> > OWNERSHIP:
> > U owned by effective uid
> > - u(UID|'user') owned by UID/user
> > - g(GID|'group') owned by GID/group
> > + u(UID|\\='user\\=') owned by UID/user
> > + g(GID|\\='group\\=') owned by GID/group
> >
> > FILE ATTRIBUTES:
> > l[+-]N +/-/= N links
> > - a[Mwhms][+-](N|'FILE') access time +/-/= N
> months/weeks/hours/mins/secs
> > + a[Mwhms][+-](N|\\='FILE\\=') access time +/-/= N
> months/weeks/hours/mins/secs
> > (days if unspecified) if FILE specified,
> > - use as comparison basis; so a+'file.c'
> > + use as comparison basis; so a+\\='file.c\\='
> > shows files accessed before file.c was
> > last accessed
> > - m[Mwhms][+-](N|'FILE') modification time...
> > - c[Mwhms][+-](N|'FILE') change time...
> > + m[Mwhms][+-](N|\\='FILE\\=') modification time...
> > + c[Mwhms][+-](N|\\='FILE\\=') change time...
> > L[kmp][+-]N file size +/-/= N Kb/Mb/blocks
> >
> > EXAMPLES:
> > @@ -193,7 +193,7 @@ EXAMPLES:
> > ***/*~f*(-/) recursively (though not traversing symlinks),
> > find all directories (or symlinks referring to
> > directories) whose names do not begin with f.
> > - e*(*Lk+50) executables 50k or larger beginning with ‘e’")
> > + e*(*Lk+50) executables 50k or larger beginning with `e'")
> >
> > (defvar eshell-modifier-help-string
> > "Eshell modifier quick reference:
> > @@ -318,7 +318,7 @@ resultant list of strings."
> > (if (and func (functionp func))
> > (setq preds (eshell-add-pred-func func preds
> > negate follow))
> > - (error "Invalid function predicate ‘%s’"
> > + (error "Invalid function predicate `%s'"
> > (eshell-stringify func))))
> > (error "Invalid function predicate")))
> > ((eq char ?^)
> > @@ -336,20 +336,20 @@ resultant list of strings."
> > (cons `(lambda (lst)
> > (mapcar (function ,func) lst))
> > mods))
> > - (error "Invalid function modifier ‘%s’"
> > + (error "Invalid function modifier `%s'"
> > (eshell-stringify func))))
> > (error "Invalid function modifier")))
> > ((eq char ?:)
> > (forward-char)
> > (let ((mod (assq (char-after) eshell-modifier-alist)))
> > (if (not mod)
> > - (error "Unknown modifier character ‘%c’"
> (char-after))
> > + (error "Unknown modifier character `%c'"
> (char-after))
> > (forward-char)
> > (setq mods (cons (eval (cdr mod)) mods)))))
> > (t
> > (let ((pred (assq char eshell-predicate-alist)))
> > (if (not pred)
> > - (error "Unknown predicate character ‘%c’" char)
> > + (error "Unknown predicate character `%c'" char)
> > (forward-char)
> > (setq preds
> > (eshell-add-pred-func (eval (cdr pred)) preds
> > diff --git a/lisp/eshell/em-script.el b/lisp/eshell/em-script.el
> > index 8e65e44..1a16e5e 100644
> > --- a/lisp/eshell/em-script.el
> > +++ b/lisp/eshell/em-script.el
> > @@ -45,7 +45,7 @@ commands, as a script file."
> > (defcustom eshell-login-script (expand-file-name "login"
> eshell-directory-name)
> > "If non-nil, a file to invoke when starting up Eshell interactively.
> > This file should be a file containing Eshell commands, where comment
> > -lines begin with ‘#’."
> > +lines begin with `#'."
> > :type 'file
> > :group 'eshell-script)
> >
> > @@ -89,7 +89,7 @@ This includes when running `eshell-command'."
> >
> > (defun eshell-source-file (file &optional args subcommand-p)
> > "Execute a series of Eshell commands in FILE, passing ARGS.
> > -Comments begin with ‘#’."
> > +Comments begin with `#'."
> > (interactive "f")
> > (let ((orig (point))
> > (here (point-max))
> > diff --git a/lisp/eshell/esh-opt.el b/lisp/eshell/esh-opt.el
> > index 4d28208..96d485b 100644
> > --- a/lisp/eshell/esh-opt.el
> > +++ b/lisp/eshell/esh-opt.el
> > @@ -180,7 +180,7 @@ This code doesn't really need to be macro expanded
> everywhere."
> > (concat usage
> > (format-message "
> > This command is implemented in Lisp. If an unrecognized option is
> > -passed to this command, the external version ‘%s’
> > +passed to this command, the external version `%s'
> > will be called instead." extcmd)))))
> > (throw 'eshell-usage usage)))
> >
> > diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el
> > index 170779f..2565842 100644
> > --- a/lisp/eshell/esh-util.el
> > +++ b/lisp/eshell/esh-util.el
> > @@ -88,7 +88,7 @@ specification of filenames (for example, in calling
> `find-file', or
> > some other Lisp function that deals with files, not numbers), add the
> > following in your init file:
> >
> > - (put 'find-file 'eshell-no-numeric-conversions t)
> > + (put \\='find-file \\='eshell-no-numeric-conversions t)
> >
> > Any function with the property `eshell-no-numeric-conversions' set to
> > a non-nil value, will be passed strings, not numbers, even when an
> > diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el
> > index f5110c3..0d94186 100644
> > --- a/lisp/eshell/esh-var.el
> > +++ b/lisp/eshell/esh-var.el
> > @@ -116,7 +116,7 @@
> > (require 'ring)
> >
> > (defgroup eshell-var nil
> > - "Variable interpolation is introduced whenever the ‘$’ character
> > + "Variable interpolation is introduced whenever the `$' character
> > appears unquoted in any argument (except when that argument is
> > surrounded by single quotes). It may be used to interpolate a
> > variable value, a subcommand, or even the result of a Lisp form."
> > diff --git a/lisp/facemenu.el b/lisp/facemenu.el
> > index a90794f..3d58943 100644
> > --- a/lisp/facemenu.el
> > +++ b/lisp/facemenu.el
> > @@ -797,10 +797,10 @@ This is called whenever you create a new face, and
> at other times."
> > symbol (intern name)))
> > (setq menu 'facemenu-face-menu)
> > (setq docstring
> > - (purecopy (format-message "Select face ‘%s’ for subsequent
> insertion.
> > + (purecopy (format "Select face `%s' for subsequent insertion.
> > If the mark is active and there is no prefix argument,
> > -apply face ‘%s’ to the region instead.
> > -This command was defined by ‘facemenu-add-new-face’."
> > +apply face `%s' to the region instead.
> > +This command was defined by `facemenu-add-new-face'."
> > name name)))
> > (cond ((facemenu-iterate ; check if equivalent face is already in
> the menu
> > (lambda (m) (and (listp m)
> > @@ -846,12 +846,12 @@ Return the event type (a symbol) of the added menu
> entry.
> > This is called whenever you use a new color."
> > (let (symbol)
> > (unless (color-defined-p color)
> > - (error "Color ‘%s’ undefined" color))
> > + (error "Color `%s' undefined" color))
> > (cond ((eq menu 'facemenu-foreground-menu)
> > (setq symbol (intern (concat "fg:" color))))
> > ((eq menu 'facemenu-background-menu)
> > (setq symbol (intern (concat "bg:" color))))
> > - (t (error "MENU should be ‘facemenu-foreground-menu’ or
> ‘facemenu-background-menu’")))
> > + (t (error "MENU should be `facemenu-foreground-menu' or
> `facemenu-background-menu'")))
> > (unless (facemenu-iterate ; Check if color is already in the menu.
> > (lambda (m) (and (listp m)
> > (eq (car m) symbol)))
> > diff --git a/lisp/faces.el b/lisp/faces.el
> > index 9e879c1..5485d80 100644
> > --- a/lisp/faces.el
> > +++ b/lisp/faces.el
> > @@ -574,7 +574,7 @@ If FACE is a face-alias, get the documentation for
> the target face."
> > (let ((alias (get face 'face-alias)))
> > (if alias
> > (let ((doc (get alias 'face-documentation)))
> > - (format-message "%s is an alias for the face ‘%s’.%s" face
> alias
> > + (format "%s is an alias for the face `%s'.%s" face alias
> > (if doc (format "\n%s" doc)
> > "")))
> > (get face 'face-documentation))))
> > @@ -1005,7 +1005,7 @@ a single face name."
> > (setq default (car (split-string default crm-separator t))))
> >
> > (let ((prompt (if default
> > - (format-message "%s (default ‘%s’): " prompt
> default)
> > + (format-message "%s (default `%s'): " prompt
> default)
> > (format "%s: " prompt)))
> > aliasfaces nonaliasfaces faces)
> > ;; Build up the completion tables.
> > @@ -1137,8 +1137,8 @@ Value is the new attribute value."
> > (let* ((completion-ignore-case t)
> > (value (completing-read
> > (format-message (if default
> > - "%s for face ‘%s’ (default %s): "
> > - "%s for face ‘%s’: ")
> > + "%s for face `%s' (default %s): "
> > + "%s for face `%s': ")
> > name face default)
> > completion-alist nil nil nil nil default)))
> > (if (equal value "") default value)))
> > @@ -1225,7 +1225,7 @@ of a global face. Value is the new attribute
> value."
> > If optional argument FRAME is nil or omitted, use the selected frame."
> > (let ((completion-ignore-case t))
> > (completing-read (format-message
> > - "Set font attributes of face ‘%s’ from font: "
> face)
> > + "Set font attributes of face `%s' from font: "
> face)
> > (append (fontset-list) (x-list-fonts "*" nil
> frame)))))
> >
> >
> > @@ -1437,11 +1437,11 @@ If FRAME is omitted or nil, use the selected
> frame."
> > (setq face alias)
> > (insert
> > (format-message
> > - "\n %s is an alias for the face ‘%s’.\n%s"
> > + "\n %s is an alias for the face `%s'.\n%s"
> > f alias
> > (if (setq obsolete (get f 'obsolete-face))
> > (format-message
> > - " This face is obsolete%s; use ‘%s’
> instead.\n"
> > + " This face is obsolete%s; use `%s'
> instead.\n"
> > (if (stringp obsolete)
> > (format " since %s" obsolete)
> > "")
> > @@ -1459,13 +1459,13 @@ If FRAME is omitted or nil, use the selected
> frame."
> > (help-xref-button 1 'help-customize-face f)))
> > (setq file-name (find-lisp-object-file-name f 'defface))
> > (when file-name
> > - (princ (substitute-command-keys "Defined in ‘"))
> > + (princ (substitute-command-keys "Defined in `"))
> > (princ (file-name-nondirectory file-name))
> > - (princ (substitute-command-keys "’"))
> > + (princ (substitute-command-keys "'"))
> > ;; Make a hyperlink to the library.
> > (save-excursion
> > (re-search-backward
> > - (substitute-command-keys "‘\\([^‘’]+\\)’") nil t)
> > + (substitute-command-keys "`\\([^`']+\\)'") nil t)
> > (help-xref-button 1 'help-face-def f file-name))
> > (princ ".")
> > (terpri)
> > @@ -1552,7 +1552,7 @@ If FRAME is nil, the current FRAME is used."
> > options))
> > ((eq req 'supports)
> > (display-supports-face-attributes-p options
> frame))
> > - (t (error "Unknown req ‘%S’ with options ‘%S’"
> > + (t (error "Unknown req `%S' with options `%S'"
> > req options)))))
> > match))
> >
> > @@ -1925,7 +1925,7 @@ resulting color name in the echo area."
> > (logand 65535 (nth 0 components))
> > (logand 65535 (nth 1 components))
> > (logand 65535 (nth 2 components))))))))
> > - (when msg (message "Color: ‘%s’" color))
> > + (when msg (message "Color: `%s'" color))
> > color))
> >
> > (defun face-at-point (&optional thing multiple)
> > @@ -2778,13 +2778,13 @@ also the same size as FACE on FRAME, or fail."
> > (if (string-match-p "\\*" pattern)
> > (if (null (face-font face))
> > (error "No matching fonts are the same height as
> the frame default font")
> > - (error "No matching fonts are the same height as
> face ‘%s’" face))
> > + (error "No matching fonts are the same height as
> face `%s'" face))
> > (if (null (face-font face))
> > - (error "Height of font ‘%s’ doesn't match the
> frame default font"
> > + (error "Height of font `%s' doesn't match the
> frame default font"
> > pattern)
> > - (error "Height of font ‘%s’ doesn't match face ‘%s’"
> > + (error "Height of font `%s' doesn't match face `%s'"
> > pattern face)))
> > - (error "No fonts match ‘%s’" pattern)))
> > + (error "No fonts match `%s'" pattern)))
> > (car fonts))
> > (cdr (assq 'font (frame-parameters (selected-frame))))))
> >
> > diff --git a/lisp/ffap.el b/lisp/ffap.el
> > index 975f726..8d3f8bf 100644
> > --- a/lisp/ffap.el
> > +++ b/lisp/ffap.el
> > @@ -412,9 +412,9 @@ Optional SERVICE specifies the port used (default
> \"discard\").
> > Optional QUIET flag suppresses the \"Pinging...\" message.
> > Optional STRATEGY overrides the three variables above.
> > Returned values:
> > - t means that HOST answered.
> > -'accept means the relevant variable told us to accept.
> > -\"mesg\" means HOST exists, but does not respond for some reason."
> > + t means that HOST answered.
> > +`accept' means the relevant variable told us to accept.
> > +\"mesg\" means HOST exists, but does not respond for some reason."
> > ;; Try some (Emory local):
> > ;; (ffap-machine-p "ftp" nil nil 'ping)
> > ;; (ffap-machine-p "nonesuch" nil nil 'ping)
> > diff --git a/lisp/filenotify.el b/lisp/filenotify.el
> > index c94f631..5822cf0 100644
> > --- a/lisp/filenotify.el
> > +++ b/lisp/filenotify.el
> > @@ -54,7 +54,7 @@ different files from the same directory are watched.")
> > "Handle file system monitoring event.
> > If EVENT is a filewatch event, call its callback. It has the format
> >
> > - \(file-notify (DESCRIPTOR ACTIONS FILE COOKIE) CALLBACK)
> > + \(file-notify (DESCRIPTOR ACTIONS FILE [FILE1-OR-COOKIE]) CALLBACK)
> >
> > Otherwise, signal a `file-notify-error'."
> > (interactive "e")
> > @@ -64,10 +64,10 @@ Otherwise, signal a `file-notify-error'."
> > (signal 'file-notify-error
> > (cons "Not a valid file-notify event" event))))
> >
> > -(defvar file-notify--pending-events nil
> > - "List of pending file notification events for a future `renamed'
> action.
> > -The entries are a list (DESCRIPTOR ACTION FILE COOKIE). ACTION
> > -is either `moved-from' or `renamed-from'.")
> > +;; Needed for `inotify' and `w32notify'. In the latter case, COOKIE is
> nil.
> > +(defvar file-notify--pending-event nil
> > + "A pending file notification events for a future `renamed' action.
> > +It is a form ((DESCRIPTOR ACTION FILE [FILE1-OR-COOKIE]) CALLBACK).")
> >
> > (defun file-notify--event-file-name (event)
> > "Return file name of file notification event, or nil."
> > @@ -92,26 +92,26 @@ This is available in case a file has been moved."
> > ;; `inotify' returns the same descriptor when the file (directory)
> > ;; uses the same inode. We want to distinguish, and apply a virtual
> > ;; descriptor which make the difference.
> > -(defun file-notify--descriptor (descriptor file)
> > +(defun file-notify--descriptor (descriptor)
> > "Return the descriptor to be used in `file-notify-*-watch'.
> > For `gfilenotify' and `w32notify' it is the same descriptor as
> > used in the low-level file notification package."
> > (if (and (natnump descriptor) (eq file-notify--library 'inotify))
> > - (cons descriptor file)
> > + (cons descriptor
> > + (car (cadr (gethash descriptor file-notify-descriptors))))
> > descriptor))
> >
> > ;; The callback function used to map between specific flags of the
> > ;; respective file notifications, and the ones we return.
> > (defun file-notify-callback (event)
> > "Handle an EVENT returned from file notification.
> > -EVENT is the cdr of the event in `file-notify-handle-event'
> > -\(DESCRIPTOR ACTIONS FILE COOKIE)."
> > +EVENT is the cadr of the event in `file-notify-handle-event'
> > +\(DESCRIPTOR ACTIONS FILE [FILE1-OR-COOKIE])."
> > (let* ((desc (car event))
> > (registered (gethash desc file-notify-descriptors))
> > - (pending-event (assoc desc file-notify--pending-events))
> > (actions (nth 1 event))
> > (file (file-notify--event-file-name event))
> > - file1 callback)
> > + file1 callback pending-event)
> >
> > ;; Make actions a list.
> > (unless (consp actions) (setq actions (cons actions nil)))
> > @@ -129,22 +129,23 @@ EVENT is the cdr of the event in
> `file-notify-handle-event'
> > (dolist (action actions)
> >
> > ;; Send pending event, if it doesn't match.
> > - (when (and pending-event
> > + (when (and file-notify--pending-event
> > ;; The cookie doesn't match.
> > - (not (eq (file-notify--event-cookie pending-event)
> > + (not (eq (file-notify--event-cookie
> > + (car file-notify--pending-event))
> > (file-notify--event-cookie event)))
> > (or
> > ;; inotify.
> > - (and (eq (nth 1 pending-event) 'moved-from)
> > + (and (eq (nth 1 (car file-notify--pending-event))
> > + 'moved-from)
> > (not (eq action 'moved-to)))
> > ;; w32notify.
> > - (and (eq (nth 1 pending-event) 'renamed-from)
> > + (and (eq (nth 1 (car file-notify--pending-event))
> > + 'renamed-from)
> > (not (eq action 'renamed-to)))))
> > - (funcall callback
> > - (list desc 'deleted
> > - (file-notify--event-file-name pending-event)))
> > - (setq file-notify--pending-events
> > - (delete pending-event file-notify--pending-events)))
> > + (setq pending-event file-notify--pending-event
> > + file-notify--pending-event nil)
> > + (setcar (cdar pending-event) 'deleted))
> >
> > ;; Map action. We ignore all events which cannot be mapped.
> > (setq action
> > @@ -156,46 +157,42 @@ EVENT is the cdr of the event in
> `file-notify-handle-event'
> > (setq file1 (file-notify--event-file1-name event))
> > 'renamed)
> >
> > - ;; inotify.
> > + ;; inotify, w32notify.
> > ((eq action 'attrib) 'attribute-changed)
> > - ((eq action 'create) 'created)
> > - ((eq action 'modify) 'changed)
> > - ((memq action '(delete 'delete-self move-self)) 'deleted)
> > + ((memq action '(create added)) 'created)
> > + ((memq action '(modify modified)) 'changed)
> > + ((memq action '(delete 'delete-self move-self removed))
> 'deleted)
> > ;; Make the event pending.
> > - ((eq action 'moved-from)
> > - (add-to-list 'file-notify--pending-events
> > - (list desc action file
> > - (file-notify--event-cookie event)))
> > + ((memq action '(moved-from renamed-from))
> > + (setq file-notify--pending-event
> > + `((,desc ,action ,file
> ,(file-notify--event-cookie event))
> > + ,callback))
> > nil)
> > ;; Look for pending event.
> > - ((eq action 'moved-to)
> > - (if (null pending-event)
> > + ((memq action '(moved-to renamed-to))
> > + (if (null file-notify--pending-event)
> > 'created
> > (setq file1 file
> > - file (file-notify--event-file-name pending-event)
> > - file-notify--pending-events
> > - (delete pending-event
> file-notify--pending-events))
> > - 'renamed))
> > -
> > - ;; w32notify.
> > - ((eq action 'added) 'created)
> > - ((eq action 'modified) 'changed)
> > - ((eq action 'removed) 'deleted)
> > - ;; Make the event pending.
> > - ((eq action 'renamed-from)
> > - (add-to-list 'file-notify--pending-events
> > - (list desc action file
> > - (file-notify--event-cookie event)))
> > - nil)
> > - ;; Look for pending event.
> > - ((eq action 'renamed-to)
> > - (if (null pending-event)
> > - 'created
> > - (setq file1 file
> > - file (file-notify--event-file-name pending-event)
> > - file-notify--pending-events
> > - (delete pending-event
> file-notify--pending-events))
> > - 'renamed))))
> > + file (file-notify--event-file-name
> > + (car file-notify--pending-event)))
> > + ;; If the source is handled by another watch, we
> > + ;; must fire the rename event there as well.
> > + (when (not (eq (file-notify--descriptor desc)
> > + (file-notify--descriptor
> > + (caar file-notify--pending-event))))
> > + (setq pending-event
> > + `((,(caar file-notify--pending-event)
> > + renamed ,file ,file1)
> > + ,(cadr file-notify--pending-event))))
> > + (setq file-notify--pending-event nil)
> > + 'renamed))))
> > +
> > + ;; Apply pending callback.
> > + (when pending-event
> > + (setcar
> > + (car pending-event) (file-notify--descriptor (caar
> pending-event)))
> > + (funcall (cadr pending-event) (car pending-event))
> > + (setq pending-event nil))
> >
> > ;; Apply callback.
> > (when (and action
> > @@ -213,12 +210,10 @@ EVENT is the cdr of the event in
> `file-notify-handle-event'
> > (if file1
> > (funcall
> > callback
> > - `(,(file-notify--descriptor desc (nth 0 entry))
> > - ,action ,file ,file1))
> > + `(,(file-notify--descriptor desc) ,action ,file ,file1))
> > (funcall
> > callback
> > - `(,(file-notify--descriptor desc (nth 0 entry))
> > - ,action ,file))))))))
> > + `(,(file-notify--descriptor desc) ,action ,file))))))))
> >
> > ;; `gfilenotify' and `w32notify' return a unique descriptor for every
> > ;; `file-notify-add-watch', while `inotify' returns a unique
> > @@ -325,8 +320,7 @@ FILE is the name of the file whose event is being
> reported."
> > file-notify-descriptors)
> >
> > ;; Return descriptor.
> > - (file-notify--descriptor
> > - desc (unless (file-directory-p file) (file-name-nondirectory
> file)))))
> > + (file-notify--descriptor desc)))
> >
> > (defun file-notify-rm-watch (descriptor)
> > "Remove an existing watch specified by its DESCRIPTOR.
> > diff --git a/lisp/files-x.el b/lisp/files-x.el
> > index 524ad49..a130ffc 100644
> > --- a/lisp/files-x.el
> > +++ b/lisp/files-x.el
> > @@ -189,7 +189,7 @@ from the Local Variables list ignoring the input
> argument VALUE."
> > (unless (let ((case-fold-search t))
> > (goto-char beg)
> > (search-forward "Local Variables:" nil t))
> > - (throw 'exit (message "Can’t add file-local variables"))))
> > + (throw 'exit (message "Can't add file-local variables"))))
> >
> > ;; prefix is what comes before "local variables:" in its line.
> > ;; suffix is what comes after "local variables:" in its line.
> > diff --git a/lisp/files.el b/lisp/files.el
> > index f96ac09..c309f86 100644
> > --- a/lisp/files.el
> > +++ b/lisp/files.el
> > @@ -995,10 +995,10 @@ directory if it does not exist."
> > (put 'user-emacs-directory-warning 'this-session t)
> > (display-warning 'initialization
> > (format "\
> > -Unable to %s ‘user-emacs-directory’ (%s).
> > +Unable to %s `user-emacs-directory' (%s).
> > Any data that would normally be written there may be lost!
> > If you never want to see this message again,
> > -customize the variable ‘user-emacs-directory-warning’."
> > +customize the variable `user-emacs-directory-warning'."
> > errtype user-emacs-directory)))))
> > bestname))))
> >
> > @@ -1641,7 +1641,7 @@ killed."
> > (user-error "Aborted"))
> > (and (buffer-modified-p) buffer-file-name
> > (not (yes-or-no-p
> > - (format-message "Kill and replace buffer ‘%s’ without
> saving it? "
> > + (format-message "Kill and replace buffer `%s' without
> saving it? "
> > (buffer-name))))
> > (user-error "Aborted"))
> > (let ((obuf (current-buffer))
> > @@ -2789,7 +2789,7 @@ we don't actually set it to the same mode the
> buffer already has."
> > (catch 'nop
> > (dolist (mode (nreverse modes))
> > (if (not (functionp mode))
> > - (message "Ignoring unknown mode ‘%s’" mode)
> > + (message "Ignoring unknown mode `%s'" mode)
> > (setq done t)
> > (or (set-auto-mode-0 mode keep-mode-if-same)
> > ;; continuing would call minor modes again, toggling
> them off
> > @@ -2803,7 +2803,7 @@ we don't actually set it to the same mode the
> buffer already has."
> > (setq mode (hack-local-variables t))
> > (not (memq mode modes)) ; already tried and failed
> > (if (not (functionp mode))
> > - (message "Ignoring unknown mode ‘%s’" mode)
> > + (message "Ignoring unknown mode `%s'" mode)
> > (setq done t)
> > (set-auto-mode-0 mode keep-mode-if-same)))
> > ;; If we didn't, look for an interpreter specified in the first
> line.
> > @@ -3420,7 +3420,7 @@ local variables, but directory-local variables may
> still be applied."
> > (display-warning
> > :warning
> > (format-message
> > - "%s: ‘lexical-binding’ at end of
> file unreliable"
> > + "%s: `lexical-binding' at end of
> file unreliable"
> > (file-name-nondirectory
> > (or buffer-file-name ""))))))
> > (t
> > @@ -3557,7 +3557,7 @@ It is dangerous if either of these conditions are
> met:
> > var (if since (format " (since %s)" since))
> > (if (stringp instead)
> > (substitute-command-keys instead)
> > - (format-message "use ‘%s’ instead" instead)))))))
> > + (format-message "use `%s' instead" instead)))))))
> >
> > (defun hack-one-local-variable (var val)
> > "Set local variable VAR with value VAL.
> > @@ -3674,7 +3674,7 @@ variables from CLASS are applied to the buffer.
> The variables
> > for a class are defined using `dir-locals-set-class-variables'."
> > (setq directory (file-name-as-directory (expand-file-name directory)))
> > (unless (assq class dir-locals-class-alist)
> > - (error "No such class ‘%s’" (symbol-name class)))
> > + (error "No such class `%s'" (symbol-name class)))
> > (push (list directory class mtime) dir-locals-directory-cache))
> >
> > (defun dir-locals-set-class-variables (class variables)
> > @@ -4030,7 +4030,7 @@ Interactively, confirmation is required unless you
> supply a prefix argument."
> > (listp last-nonmenu-event)
> > use-dialog-box))
> > (or (y-or-n-p (format-message
> > - "File ‘%s’ exists; overwrite? " filename))
> > + "File `%s' exists; overwrite? " filename))
> > (user-error "Canceled")))
> > (set-visited-file-name filename (not confirm))))
> > (set-buffer-modified-p t)
> > @@ -4736,7 +4736,7 @@ Before and after saving the buffer, this function
> runs
> > ;; existing directory.
> > (error "%s is a directory" filename)
> > (unless (y-or-n-p (format-message
> > - "File ‘%s’ exists; overwrite? "
> > + "File `%s' exists; overwrite? "
> > filename))
> > (error "Canceled"))))
> > (set-visited-file-name filename)))
> > @@ -4778,7 +4778,7 @@ Before and after saving the buffer, this function
> runs
> > (unless (file-exists-p dir)
> > (if (y-or-n-p
> > (format-message
> > - "Directory ‘%s’ does not exist; create? "
> dir))
> > + "Directory `%s' does not exist; create? "
> dir))
> > (make-directory dir t)
> > (error "Canceled")))
> > (setq setmodes (basic-save-buffer-1))))
> > @@ -5221,7 +5221,7 @@ given. With a prefix argument, TRASH is nil."
> > (list dir
> > (if (directory-files dir nil
> directory-files-no-dot-files-regexp)
> > (y-or-n-p
> > - (format-message "Directory ‘%s’ is not empty, really %s?
> "
> > + (format-message "Directory `%s' is not empty, really %s?
> "
> > dir (if trashing "trash" "delete")))
> > nil)
> > (null current-prefix-arg))))
> > @@ -5327,7 +5327,7 @@ directly into NEWNAME instead."
> > default-directory default-directory nil nil)
> > current-prefix-arg t nil)))
> > (when (file-in-directory-p newname directory)
> > - (error "Cannot copy ‘%s’ into its subdirectory ‘%s’"
> > + (error "Cannot copy `%s' into its subdirectory `%s'"
> > directory newname))
> > ;; If default-directory is a remote directory, make sure we find its
> > ;; copy-directory handler.
> > @@ -5699,7 +5699,7 @@ To choose one, move point to the proper line and
> then type C-c C-c.
> > Then you'll be asked about a number of files to recover."
> > (interactive)
> > (if (null auto-save-list-file-prefix)
> > - (error "You set ‘auto-save-list-file-prefix’ to disable making
> session files"))
> > + (error "You set `auto-save-list-file-prefix' to disable making
> session files"))
> > (let ((dir (file-name-directory auto-save-list-file-prefix))
> > (nd (file-name-nondirectory auto-save-list-file-prefix)))
> > (unless (file-directory-p dir)
> > @@ -5793,7 +5793,7 @@ This command is used in the special Dired buffer
> created by
> > (condition-case nil
> > (save-excursion (recover-file file))
> > (error
> > - "Failed to recover ‘%s’" file)))
> > + "Failed to recover `%s'" file)))
> > files
> > '("file" "files" "recover"))
> > (message "No files can be recovered from this session now")))
> > @@ -6478,7 +6478,7 @@ normally equivalent short `-D' option is just
> passed on to
> > file result)
> > ;; Unix. Access the file to get a suitable error.
> > (access-file file "Reading directory")
> > - (error "Listing directory failed but ‘access-file’
> worked")))
> > + (error "Listing directory failed but `access-file'
> worked")))
> >
> > (when (if (stringp switches)
> > (string-match "--dired\\>" switches)
> > @@ -6771,7 +6771,7 @@ for the specified category of users."
> > ((= char ?g) #o2070)
> > ((= char ?o) #o1007)
> > ((= char ?a) #o7777)
> > - (t (error "%c: bad ‘who’ character" char))))
> > + (t (error "%c: bad `who' character" char))))
> >
> > (defun file-modes-char-to-right (char &optional from)
> > "Convert CHAR to a numeric value of mode bits.
> > @@ -6843,7 +6843,7 @@ as in \"og+rX-w\"."
> > (file-modes-rights-to-number (substring modes
> (match-end 1))
> > num-who num-modes)
> > modes (substring modes (match-end 3))))
> > - (error "Parse error in modes near ‘%s’" (substring modes 0))))
> > + (error "Parse error in modes near `%s'" (substring modes 0))))
> > num-modes)))
> >
> > (defun read-file-modes (&optional prompt orig-file)
> > @@ -6912,7 +6912,7 @@ Otherwise, trash FILENAME using the
> freedesktop.org conventions,
> > trash-dir)))
> > ;; We can't trash a parent directory of trash-directory.
> > (if (string-prefix-p fn trash-dir)
> > - (error "Trash directory ‘%s’ is a subdirectory of ‘%s’"
> > + (error "Trash directory `%s' is a subdirectory of `%s'"
> > trash-dir filename))
> > (unless (file-directory-p trash-dir)
> > (make-directory trash-dir t))
> > diff --git a/lisp/filesets.el b/lisp/filesets.el
> > index c098879..464c7c3 100644
> > --- a/lisp/filesets.el
> > +++ b/lisp/filesets.el
> > @@ -679,14 +679,14 @@ variables my-ps-viewer, my-pdf-viewer,
> my-dvi-viewer, my-pic-viewer.
> > In order to view pdf or rtf files in an Emacs buffer, you could use
> these:
> >
> >
> > - \(\"^.+\\\\.pdf\\\\'\" \"pdftotext\"
> > + \(\"^.+\\\\.pdf\\\\\\='\" \"pdftotext\"
> > \((:capture-output t)
> > \(:args (\"%S - | fmt -w \" window-width))
> > \(:ignore-on-read-text t)
> > \(:constraintp (lambda ()
> > \(and \(filesets-which-command-p \"pdftotext\")
> > \(filesets-which-command-p \"fmt\"))))))
> > - \(\"^.+\\\\.rtf\\\\'\" \"rtf2htm\"
> > + \(\"^.+\\\\.rtf\\\\\\='\" \"rtf2htm\"
> > \((:capture-output t)
> > \(:args (\"%S 2> /dev/null | w3m -dump -T text/html\"))
> > \(:ignore-on-read-text t)
> > @@ -1799,7 +1799,7 @@ User will be queried, if no fileset name is
> provided."
> > (current-buffer)))
> > (name (or name
> > (completing-read
> > - (format-message "Add ‘%s’ to fileset: " buffer)
> > + (format-message "Add `%s' to fileset: " buffer)
> > filesets-data nil)))
> > (entry (or (assoc name filesets-data)
> > (when (y-or-n-p
> > @@ -1819,13 +1819,13 @@ User will be queried, if no fileset name is
> provided."
> > :test 'filesets-files-equalp)))
> > (cond
> > (inlist
> > - (message "Filesets: ‘%s’ is already in ‘%s’" this name))
> > + (message "Filesets: `%s' is already in `%s'" this name))
> > ((and (equal (filesets-entry-mode entry) ':files)
> > this)
> > (filesets-entry-set-files entry (cons this files) t)
> > (filesets-set-config name 'filesets-data filesets-data))
> > (t
> > - (message "Filesets: Can't add ‘%s’ to fileset ‘%s’" this
> name)))))))
> > + (message "Filesets: Can't add `%s' to fileset `%s'" this
> name)))))))
> >
> > (defun filesets-remove-buffer (&optional name buffer)
> > "Remove BUFFER (or current buffer) to fileset NAME.
> > @@ -1835,7 +1835,7 @@ User will be queried, if no fileset name is
> provided."
> > (current-buffer)))
> > (name (or name
> > (completing-read
> > - (format-message "Remove ‘%s’ from fileset: "
> buffer)
> > + (format-message "Remove `%s' from fileset: "
> buffer)
> > filesets-data nil t)))
> > (entry (assoc name filesets-data)))
> > (if entry
> > @@ -1848,7 +1848,7 @@ User will be queried, if no fileset name is
> provided."
> > (let ((new (list (cons ':files (delete (car inlist)
> files)))))
> > (setcdr entry new)
> > (filesets-set-config name 'filesets-data filesets-data))
> > - (message "Filesets: Can't remove ‘%s’ from fileset ‘%s’"
> > + (message "Filesets: Can't remove `%s' from fileset `%s'"
> > this
> > name))))))
> >
> > @@ -2441,30 +2441,30 @@ fileset thinks this is necessary or not."
> > "Filesets: manual editing of user data required!
> >
> > Filesets has detected that you were using an older version before,
> > -which requires some manual updating. Type ‘y’ for editing the startup
> > +which requires some manual updating. Type `y' for editing the startup
> > file now.
> >
> > -The layout of ‘filesets-data’ has changed. Please delete your cache file
> > +The layout of `filesets-data' has changed. Please delete your cache file
> > and edit your startup file as shown below:
> >
> > -1. ‘filesets-data’: Edit all :pattern filesets in your startup file and
> > +1. `filesets-data': Edit all :pattern filesets in your startup file and
> > transform all entries as shown in this example:
> >
> > \(\"Test\" (:pattern \"~/dir/^pattern$\"))
> > --> \(\"Test\" (:pattern \"~/dir/\" \"^pattern$\"))
> >
> > -2. ‘filesets-data’: Change all occurrences of \":document\" to
> \":ingroup\":
> > +2. `filesets-data': Change all occurrences of \":document\" to
> \":ingroup\":
> >
> > \(\(\"Test\" \(:document \"~/dir/file\"))
> > --> \(\(\"Test\" \(:ingroup \"~/dir/file\"))
> >
> > -3. ‘filesets-subdocument-patterns’: If you already modified the variable
> > -previously called ‘filesets-subdocument-patterns’, change its name to
> > -‘filesets-ingroup-patterns’.
> > +3. `filesets-subdocument-patterns': If you already modified the variable
> > +previously called `filesets-subdocument-patterns', change its name to
> > +`filesets-ingroup-patterns'.
> >
> > -4. ‘filesets-menu-cache-contents’: If you already modified this
> > -variable, change the entry ‘filesets-subdocument--cache’ to
> > -‘filesets-ingroup-cache’.
> > +4. `filesets-menu-cache-contents': If you already modified this
> > +variable, change the entry `filesets-subdocument--cache' to
> > +`filesets-ingroup-cache'.
> >
> > 5. Type M-x filesets-update-cleanup and restart Emacs.
> >
> > diff --git a/lisp/find-cmd.el b/lisp/find-cmd.el
> > index 8e41906..d78a0b3 100644
> > --- a/lisp/find-cmd.el
> > +++ b/lisp/find-cmd.el
> > @@ -209,7 +209,7 @@ args that OPTION can receive and ARGS are the
> arguments for OPTION.
> > If DONT-QUOTE is non-nil, arguments are quoted for passing them to
> > the shell."
> > (when (and (numberp argcount) (< (length args) argcount))
> > - (error "‘%s’ needs at least %d arguments" option argcount))
> > + (error "`%s' needs at least %d arguments" option argcount))
> > (let ((oper (or oper 'find-or)))
> > (if (and args (length args))
> > (funcall oper (mapcar (lambda (x)
> > @@ -247,7 +247,7 @@ them into valid switches. The result is -and(ed)
> together."
> > (find-to-string
> > (find-generic option oper argcnt (cdr form) dont-quote))))
> > (t
> > - (error "Sorry I don't know how to handle ‘%s’" (car
> form))))))))
> > + (error "Sorry I don't know how to handle `%s'" (car
> form))))))))
> >
> > (provide 'find-cmd)
> >
> > diff --git a/lisp/finder.el b/lisp/finder.el
> > index 51226ae..715dd94 100644
> > --- a/lisp/finder.el
> > +++ b/lisp/finder.el
> > @@ -393,7 +393,7 @@ FILE should be in a form suitable for passing to
> `locate-library'."
> > (if (locate-library (match-string 1))
> > (make-text-button (match-beginning 1) (match-end 1)
> > 'xref (match-string-no-properties 1)
> > - 'help-echo "Read this file’s commentary"
> > + 'help-echo "Read this file's commentary"
> > :type 'finder-xref)))
> > (goto-char (point-min))
> > (setq buffer-read-only t)
> > diff --git a/lisp/font-lock.el b/lisp/font-lock.el
> > index b74b603..cec95bf 100644
> > --- a/lisp/font-lock.el
> > +++ b/lisp/font-lock.el
> > @@ -538,12 +538,13 @@ and what they do:
> > dollar-sign character. Hash characters in other contexts will still
> > follow whatever the syntax table says about the hash character.
> >
> > - (\"\\\\('\\\\).\\\\('\\\\)\"
> > + (\"\\\\(\\='\\\\).\\\\(\\='\\\\)\"
> > (1 \"\\\"\")
> > (2 \"\\\"\"))
> >
> > - gives a pair single-quotes, which surround a single character, a
> SYNTAX of
> > - \"\\\"\" (meaning string quote syntax). Single-quote characters in
> other
> > + gives a pair of apostrophes, which surround a single character, a
> > + SYNTAX of \"\\\"\" (meaning string quote syntax). Apostrophes in other
> > +
> > contexts will not be affected.
> >
> > This is normally set via `font-lock-defaults'.")
> > @@ -1051,7 +1052,7 @@ The region it returns may start or end in the
> middle of a line.")
> > ;; Of course, this function doesn't do all of the above in all
> situations
> > ;; (e.g. depending on whether jit-lock is in use) and it can't guess
> what
> > ;; the caller wants.
> > - (interactive-only "use ‘font-lock-ensure’ or ‘font-lock-flush’
> instead."))
> > + (interactive-only "use `font-lock-ensure' or `font-lock-flush'
> instead."))
> > (interactive "p")
> > (font-lock-set-defaults)
> > (let ((font-lock-verbose (or font-lock-verbose interactively)))
> > diff --git a/lisp/format.el b/lisp/format.el
> > index 7ab68c8..dbc814e 100644
> > --- a/lisp/format.el
> > +++ b/lisp/format.el
> > @@ -395,7 +395,7 @@ unless you supply a prefix argument."
> > (cdr (assq 'default-directory
> > (buffer-local-variables)))
> > nil nil (buffer-name))))
> > - (fmt (format-read (format-message "Write file ‘%s’ in format: "
> > + (fmt (format-read (format-message "Write file `%s' in format: "
> > (file-name-nondirectory
> file)))))
> > (list file fmt (not current-prefix-arg))))
> > (let ((old-formats buffer-file-format)
> > @@ -416,7 +416,7 @@ If FORMAT is nil then do not do any format
> conversion."
> > (interactive
> > ;; Same interactive spec as write-file, plus format question.
> > (let* ((file (read-file-name "Find file: "))
> > - (fmt (format-read (format-message "Read file ‘%s’ in format: "
> > + (fmt (format-read (format-message "Read file `%s' in format: "
> > (file-name-nondirectory
> file)))))
> > (list file fmt)))
> > (let ((format-alist nil))
> > @@ -435,7 +435,7 @@ a list (ABSOLUTE-FILE-NAME SIZE)."
> > (interactive
> > ;; Same interactive spec as write-file, plus format question.
> > (let* ((file (read-file-name "Find file: "))
> > - (fmt (format-read (format-message "Read file ‘%s’ in format: "
> > + (fmt (format-read (format-message "Read file `%s' in format: "
> > (file-name-nondirectory
> file)))))
> > (list file fmt)))
> > (let (value size old-undo)
> > diff --git a/lisp/frame.el b/lisp/frame.el
> > index 3abb72c..bbf0a63 100644
> > --- a/lisp/frame.el
> > +++ b/lisp/frame.el
> > @@ -743,7 +743,7 @@ the name of an X display device (HOST.SERVER.SCREEN)
> or a tty device file."
> > (frame-terminal f)))
> > ((terminal-live-p device) device)
> > (t
> > - (error "Invalid argument %s in ‘get-device-terminal’" device))))
> > + (error "Invalid argument %s in `get-device-terminal'" device))))
> >
> > (defun frames-on-display-list (&optional device)
> > "Return a list of all frames on DEVICE.
> > @@ -894,7 +894,7 @@ If there is no frame by that name, signal an error."
> > (frame (cdr (assoc name frame-names-alist))))
> > (if frame
> > (select-frame-set-input-focus frame)
> > - (error "There is no frame named ‘%s’" name))))
> > + (error "There is no frame named `%s'" name))))
> >
> >
> > ;;;; Background mode.
> > diff --git a/lisp/fringe.el b/lisp/fringe.el
> > index f982b35..8f40c46 100644
> > --- a/lisp/fringe.el
> > +++ b/lisp/fringe.el
> > @@ -122,7 +122,7 @@ See `fringe-mode' for possible values and their
> effect."
> > (and (consp style)
> > (or (null (car style)) (integerp (car style)))
> > (or (null (cdr style)) (integerp (cdr style))))
> > - (error "Invalid fringe style ‘%s’" style)))
> > + (error "Invalid fringe style `%s'" style)))
> >
> > ;; For initialization of fringe-mode, take account of changes
> > ;; made explicitly to default-frame-alist.
> > diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el
> > index 3256231..ab22ab8 100644
> > --- a/lisp/gnus/gmm-utils.el
> > +++ b/lisp/gnus/gmm-utils.el
> > @@ -328,7 +328,7 @@ compatibility with versions of Emacs that lack the
> variable
> >
> > (let* ((load-path (image-load-path-for-library \"mh-e\"
> \"mh-logo.xpm\"))
> > (image-load-path (cons (car load-path)
> > - (when (boundp 'image-load-path)
> > + (when (boundp \\='image-load-path)
> > image-load-path))))
> > (mh-tool-bar-folder-buttons-init))"
> > (unless library (error "No library specified"))
> > diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
> > index 01eb6c5..8ad81c9 100644
> > --- a/lisp/gnus/gnus-art.el
> > +++ b/lisp/gnus/gnus-art.el
> > @@ -195,16 +195,16 @@ this list."
> > "Headers that are only to be displayed if they have interesting data.
> > Possible values in this list are:
> >
> > - 'empty Headers with no content.
> > - 'newsgroups Newsgroup identical to Gnus group.
> > - 'to-address To identical to To-address.
> > - 'to-list To identical to To-list.
> > - 'cc-list CC identical to To-list.
> > - 'followup-to Followup-to identical to Newsgroups.
> > - 'reply-to Reply-to identical to From.
> > - 'date Date less than four days old.
> > - 'long-to To and/or Cc longer than 1024 characters.
> > - 'many-to Multiple To and/or Cc."
> > + `empty' Headers with no content.
> > + `newsgroups' Newsgroup identical to Gnus group.
> > + `to-address' To identical to To-address.
> > + `to-list' To identical to To-list.
> > + `cc-list' CC identical to To-list.
> > + `followup-to' Followup-to identical to Newsgroups.
> > + `reply-to' Reply-to identical to From.
> > + `date' Date less than four days old.
> > + `long-to' To and/or Cc longer than 1024 characters.
> > + `many-to' Multiple To and/or Cc."
> > :type '(set (const :tag "Headers with no content." empty)
> > (const :tag "Newsgroups identical to Gnus group."
> newsgroups)
> > (const :tag "To identical to To-address." to-address)
> > @@ -661,7 +661,7 @@ For instance, if you would like to save articles
> related to Gnus in
> > the file \"gnus-stuff\", and articles related to VM in \"vm-stuff\",
> > you could set this variable to something like:
> >
> > - '((\"^Subject:.*gnus\\|^Newsgroups:.*gnus\" \"gnus-stuff\")
> > + ((\"^Subject:.*gnus\\|^Newsgroups:.*gnus\" \"gnus-stuff\")
> > (\"^Subject:.*vm\\|^Xref:.*vm\" \"vm-stuff\"))
> >
> > This variable is an alist where the key is the match and the
> > diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
> > index b233ad7..23c79cb 100644
> > --- a/lisp/gnus/gnus-registry.el
> > +++ b/lisp/gnus/gnus-registry.el
> > @@ -194,17 +194,17 @@ are tracked this way by default."
> > "The splitting strategy applied to the keys in
> `gnus-registry-track-extra'.
> >
> > Given a set of unique found groups G and counts for each element
> > -of G, and a key K (typically 'sender or 'subject):
> > +of G, and a key K (typically `sender' or `subject'):
> >
> > When nil, if G has only one element, use it. Otherwise give up.
> > This is the fastest but also least useful strategy.
> >
> > -When 'majority, use the majority by count. So if there is a
> > +When `majority', use the majority by count. So if there is a
> > group with the most articles counted by K, use that. Ties are
> > resolved in no particular order, simply the first one found wins.
> > This is the slowest strategy but also the most accurate one.
> >
> > -When 'first, the first element of G wins. This is fast and
> > +When `first', the first element of G wins. This is fast and
> > should be OK if your senders and subjects don't \"bleed\" across
> > groups."
> > :group 'gnus-registry
> > diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
> > index 82a2c98..e267b6a 100644
> > --- a/lisp/gnus/gnus-start.el
> > +++ b/lisp/gnus/gnus-start.el
> > @@ -122,9 +122,10 @@ This variable can be a list of select methods which
> Gnus will query with
> > the `ask-server' method in addition to the primary, secondary, and
> archive
> > servers.
> >
> > +
> > E.g.:
> > (setq gnus-check-new-newsgroups
> > - '((nntp \"some.server\") (nntp \"other.server\")))
> > + \\='((nntp \"some.server\") (nntp \"other.server\")))
> >
> > If this variable is nil, then you have to tell Gnus explicitly to
> > check for new newsgroups with
> \\<gnus-group-mode-map>\\[gnus-find-new-newsgroups]."
> > diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
> > index 6b90204..d4ca655 100644
> > --- a/lisp/gnus/gnus-sum.el
> > +++ b/lisp/gnus/gnus-sum.el
> > @@ -997,7 +997,7 @@ following hook:
> > (mail-header-set-subject
> > header
> > (gnus-simplify-subject
> > - (mail-header-subject header) 're-only)))
> > + (mail-header-subject header) \\='re-only)))
> > gnus-newsgroup-headers)))"
> > :group 'gnus-group-select
> > :type 'hook)
> > diff --git a/lisp/gnus/gnus-uu.el b/lisp/gnus/gnus-uu.el
> > index 881ff4e..f216466 100644
> > --- a/lisp/gnus/gnus-uu.el
> > +++ b/lisp/gnus/gnus-uu.el
> > @@ -143,7 +143,7 @@ details."
> > To use, for instance, `untar' to unpack tar files and `zip -x' to
> > unpack zip files, say the following:
> > (setq gnus-uu-user-archive-rules
> > - '((\"\\\\.tar$\" \"untar\")
> > + \\='((\"\\\\.tar$\" \"untar\")
> > (\"\\\\.zip$\" \"zip -x\")))"
> > :group 'gnus-extract-archive
> > :type '(repeat (group regexp (string :tag "Command"))))
> > diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
> > index 6362d9a..ea26216 100644
> > --- a/lisp/gnus/gnus.el
> > +++ b/lisp/gnus/gnus.el
> > @@ -1362,7 +1362,7 @@ If you want to save your mail in one group and the
> news articles you
> > write in another group, you could say something like:
> >
> > \(setq gnus-message-archive-group
> > - '((if (message-news-p)
> > + \\='((if (message-news-p)
> > \"misc-news\"
> > \"misc-mail\")))
> >
> > @@ -2396,7 +2396,7 @@ less space and be faster as a result.
> > This variable can also be a list of visual elements to switch on. For
> > instance, to switch off all visual things except menus, you can say:
> >
> > - (setq gnus-visual '(menu))
> > + (setq gnus-visual \\='(menu))
> >
> > Valid elements include `summary-highlight', `group-highlight',
> > `article-highlight', `mouse-face', `summary-menu', `group-menu',
> > diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
> > index ad135d4..cf18fbe 100644
> > --- a/lisp/gnus/mail-source.el
> > +++ b/lisp/gnus/mail-source.el
> > @@ -1090,10 +1090,13 @@ This only works when `display-time' is enabled."
> > (if (and (imap-open server port stream authentication buf)
> > (imap-authenticate
> > user (or (cdr (assoc from mail-source-password-cache))
> > - password) buf)
> > - (imap-mailbox-select mailbox nil buf))
> > + password) buf))
> > + (let ((mailbox-list (if (listp mailbox) mailbox (list
> mailbox))))
> > + (dolist (mailbox mailbox-list)
> > + (when (imap-mailbox-select mailbox nil buf)
> > (let ((coding-system-for-write
> mail-source-imap-file-coding-system)
> > str)
> > + (message "Fetching from %s..." mailbox)
> > (with-temp-file mail-source-crash-box
> > ;; Avoid converting 8-bit chars from inserted strings to
> > ;; multibyte.
> > @@ -1128,8 +1131,8 @@ This only works when `display-time' is enabled."
> > fetchflag nil buf))
> > (if dontexpunge
> > (imap-mailbox-unselect buf)
> > - (imap-mailbox-close nil buf))
> > - (imap-close buf))
> > + (imap-mailbox-close nil buf)))))
> > + (imap-close buf))
> > (imap-close buf)
> > ;; We nix out the password in case the error
> > ;; was because of a wrong password being given.
> > diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
> > index 0f6f63e..5ede15b 100644
> > --- a/lisp/gnus/message.el
> > +++ b/lisp/gnus/message.el
> > @@ -1131,7 +1131,7 @@ Presets to impersonate popular mail agents are
> found in the
> > message-cite-style-* variables. This variable is intended for
> > use in `gnus-posting-styles', such as:
> >
> > - ((posting-from-work-p) (eval (set (make-local-variable
> 'message-cite-style) message-cite-style-outlook)))"
> > + ((posting-from-work-p) (eval (set (make-local-variable
> \\='message-cite-style) message-cite-style-outlook)))"
> > :version "24.1"
> > :group 'message-insertion
> > :type '(choice (const :tag "Do not override variables" :value nil)
> > diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
> > index 20ba0a3..ac228f9 100644
> > --- a/lisp/gnus/nnimap.el
> > +++ b/lisp/gnus/nnimap.el
> > @@ -807,6 +807,7 @@ textual parts.")
> > nil
> > group)
> > server))
> > + (info (when info (list info)))
> > active)
> > (with-current-buffer nntp-server-buffer
> > (when result
> > @@ -814,10 +815,11 @@ textual parts.")
> > (not (setq active
> > (nth 2 (assoc group
> nnimap-current-infos)))))
> > (let ((sequences (nnimap-retrieve-group-data-early
> > - server (list info))))
> > - (nnimap-finish-retrieve-group-infos server (list info)
> sequences
> > + server info)))
> > + (nnimap-finish-retrieve-group-infos server info sequences
> > t)
> > (setq active (nth 2 (assoc group nnimap-current-infos)))))
> > + (setq active (or active '(0 . 1)))
> > (erase-buffer)
> > (insert (format "211 %d %d %d %S\n"
> > (- (cdr active) (car active))
> > diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
> > index 15ccc47..9784f1b 100644
> > --- a/lisp/gnus/nnir.el
> > +++ b/lisp/gnus/nnir.el
> > @@ -350,10 +350,10 @@ result, `gnus-retrieve-headers' will be called
> instead."
> > (defcustom nnir-swish++-additional-switches '()
> > "*A list of strings, to be given as additional arguments to swish++.
> >
> > -Note that this should be a list. Ie, do NOT use the following:
> > +Note that this should be a list. I.e., do NOT use the following:
> > (setq nnir-swish++-additional-switches \"-i -w\") ; wrong
> > Instead, use this:
> > - (setq nnir-swish++-additional-switches '(\"-i\" \"-w\"))"
> > + (setq nnir-swish++-additional-switches \\='(\"-i\" \"-w\"))"
> > :type '(repeat (string))
> > :group 'nnir)
> >
> > @@ -399,10 +399,10 @@ This cannot be a server parameter."
> > (defcustom nnir-swish-e-additional-switches '()
> > "*A list of strings, to be given as additional arguments to swish-e.
> >
> > -Note that this should be a list. Ie, do NOT use the following:
> > +Note that this should be a list. I.e., do NOT use the following:
> > (setq nnir-swish-e-additional-switches \"-i -w\") ; wrong
> > Instead, use this:
> > - (setq nnir-swish-e-additional-switches '(\"-i\" \"-w\"))
> > + (setq nnir-swish-e-additional-switches \\='(\"-i\" \"-w\"))
> >
> > This could be a server parameter."
> > :type '(repeat (string))
> > @@ -429,10 +429,10 @@ This could be a server parameter."
> >
> > (defcustom nnir-hyrex-additional-switches '()
> > "*A list of strings, to be given as additional arguments for
> nnir-search.
> > -Note that this should be a list. Ie, do NOT use the following:
> > +Note that this should be a list. I.e., do NOT use the following:
> > (setq nnir-hyrex-additional-switches \"-ddl ddl.xml -c nnir\") ;
> wrong !
> > Instead, use this:
> > - (setq nnir-hyrex-additional-switches '(\"-ddl\" \"ddl.xml\" \"-c\"
> \"nnir\"))"
> > + (setq nnir-hyrex-additional-switches \\='(\"-ddl\" \"ddl.xml\"
> \"-c\" \"nnir\"))"
> > :type '(repeat (string))
> > :group 'nnir)
> >
> > @@ -471,10 +471,10 @@ arrive at the correct group name, \"mail.misc\"."
> > The switches `-q', `-a', and `-s' are always used, very few other
> switches
> > make any sense in this context.
> >
> > -Note that this should be a list. Ie, do NOT use the following:
> > +Note that this should be a list. I.e., do NOT use the following:
> > (setq nnir-namazu-additional-switches \"-i -w\") ; wrong
> > Instead, use this:
> > - (setq nnir-namazu-additional-switches '(\"-i\" \"-w\"))"
> > + (setq nnir-namazu-additional-switches \\='(\"-i\" \"-w\"))"
> > :type '(repeat (string))
> > :group 'nnir)
> >
> > @@ -500,10 +500,10 @@ arrive at the correct group name, \"mail.misc\"."
> > (defcustom nnir-notmuch-additional-switches '()
> > "*A list of strings, to be given as additional arguments to notmuch.
> >
> > -Note that this should be a list. Ie, do NOT use the following:
> > +Note that this should be a list. I.e., do NOT use the following:
> > (setq nnir-notmuch-additional-switches \"-i -w\") ; wrong
> > Instead, use this:
> > - (setq nnir-notmuch-additional-switches '(\"-i\" \"-w\"))"
> > + (setq nnir-notmuch-additional-switches \\='(\"-i\" \"-w\"))"
> > :version "24.1"
> > :type '(repeat (string))
> > :group 'nnir)
> > diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
> > index 6811160..7efb154 100644
> > --- a/lisp/gnus/nnmail.el
> > +++ b/lisp/gnus/nnmail.el
> > @@ -83,7 +83,7 @@ If you'd like, for instance, one mail group for mail
> from the
> > else, you could do something like this:
> >
> > (setq nnmail-split-methods
> > - '((\"mail.4ad\" \"From:.*4ad\")
> > + \\='((\"mail.4ad\" \"From:.*4ad\")
> > (\"mail.junk\" \"From:.*Lars\\\\|Subject:.*buy\")
> > (\"mail.misc\" \"\")))
> >
> > @@ -180,7 +180,7 @@ E.g.:
> > (lambda (newsgroup)
> > (cond ((string-match \"private\" newsgroup) 31)
> > ((string-match \"junk\" newsgroup) 1)
> > - ((string-match \"important\" newsgroup) 'never)
> > + ((string-match \"important\" newsgroup) \\='never)
> > (t 7))))"
> > :group 'nnmail-expire
> > :type '(choice (const :tag "nnmail-expiry-wait" nil)
> > diff --git a/lisp/gnus/nnmairix.el b/lisp/gnus/nnmairix.el
> > index e34b708..ccfc599 100644
> > --- a/lisp/gnus/nnmairix.el
> > +++ b/lisp/gnus/nnmairix.el
> > @@ -1943,7 +1943,9 @@ Fill in VALUES if based on an article."
> > (kill-all-local-variables)
> > (erase-buffer)
> > (widget-insert "Specify your query for Mairix (check boxes for
> activating fields):\n\n")
> > - (widget-insert "(Whitespaces will be converted to ‘,’ (i.e. AND).
> Use ‘/’ for OR.)\n\n")
> > + (widget-insert
> > + (substitute-command-keys
> > + "(Whitespaces will be converted to `,' (i.e. AND). Use `/' for
> OR.)\n\n"))
> > ; (make-local-variable 'nnmairix-widgets)
> > (setq nnmairix-widgets (nnmairix-widget-build-editable-fields
> values))
> > (when (member 'flags nnmairix-widget-other)
> > diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
> > index 8d09781..6c97cec 100644
> > --- a/lisp/gnus/nntp.el
> > +++ b/lisp/gnus/nntp.el
> > @@ -72,7 +72,7 @@ For instance, if you want Gnus to beep every time you
> connect
> > to innd, you could say something like:
> >
> > \(setq nntp-server-action-alist
> > - '((\"innd\" (ding))))
> > + \\='((\"innd\" (ding))))
> >
> > You probably don't want to do that, though.")
> >
> > diff --git a/lisp/help-fns.el b/lisp/help-fns.el
> > index a1d121c..77ef21d 100644
> > --- a/lisp/help-fns.el
> > +++ b/lisp/help-fns.el
> > @@ -319,7 +319,7 @@ suitable file is found, return nil."
> > (when remapped
> > (princ "Its keys are remapped to ")
> > (princ (if (symbolp remapped)
> > - (format-message "‘%s’" remapped)
> > + (format-message "`%s'" remapped)
> > "an anonymous command"))
> > (princ ".\n"))
> >
> > @@ -353,22 +353,22 @@ suitable file is found, return nil."
> > (insert "\nThis function has a compiler macro")
> > (if (symbolp handler)
> > (progn
> > - (insert (format-message " ‘%s’" handler))
> > + (insert (format-message " `%s'" handler))
> > (save-excursion
> > - (re-search-backward (substitute-command-keys
> "‘\\([^‘’]+\\)’")
> > + (re-search-backward (substitute-command-keys
> "`\\([^`']+\\)'")
> > nil t)
> > (help-xref-button 1 'help-function handler)))
> > ;; FIXME: Obsolete since 24.4.
> > (let ((lib (get function 'compiler-macro-file)))
> > (when (stringp lib)
> > - (insert (format-message " in ‘%s’" lib))
> > + (insert (format-message " in `%s'" lib))
> > (save-excursion
> > - (re-search-backward (substitute-command-keys
> "‘\\([^‘’]+\\)’")
> > + (re-search-backward (substitute-command-keys
> "`\\([^`']+\\)'")
> > nil t)
> > (help-xref-button 1 'help-function-cmacro function
> lib)))))
> > (insert ".\n"))))
> >
> > -(defun help-fns--signature (function doc real-def real-function raw)
> > +(defun help-fns--signature (function doc real-def real-function buffer)
> > "Insert usage at point and return docstring. With highlighting."
> > (if (keymapp function)
> > doc ; If definition is a keymap, skip
> arglist note.
> > @@ -402,10 +402,13 @@ suitable file is found, return nil."
> > (use1 (replace-regexp-in-string
> > "\\`(\\\\=\\\\\\\\=` \\([^\n ]*\\))\\'"
> > "\\\\=`\\1" use t))
> > - (high (if raw
> > - (cons use1 doc)
> > - (help-highlight-arguments (substitute-command-keys
> use1)
> > - (substitute-command-keys
> doc)))))
> > + (high (if buffer
> > + (let (subst-use1 subst-doc)
> > + (with-current-buffer buffer
> > + (setq subst-use1 (substitute-command-keys
> use1))
> > + (setq subst-doc (substitute-command-keys
> doc)))
> > + (help-highlight-arguments subst-use1
> subst-doc))
> > + (cons use1 doc))))
> > (let ((fill-begin (point))
> > (high-usage (car high))
> > (high-doc (cdr high)))
> > @@ -419,13 +422,13 @@ suitable file is found, return nil."
> > (get function
> > 'derived-mode-parent))))
> > (when parent-mode
> > - (insert (substitute-command-keys "\nParent mode: ‘"))
> > + (insert (substitute-command-keys "\nParent mode: `"))
> > (let ((beg (point)))
> > (insert (format "%s" parent-mode))
> > (make-text-button beg (point)
> > 'type 'help-function
> > 'help-args (list parent-mode)))
> > - (insert (substitute-command-keys "’.\n")))))
> > + (insert (substitute-command-keys "'.\n")))))
> >
> > (defun help-fns--obsolete (function)
> > ;; Ignore lambda constructs, keyboard macros, etc.
> > @@ -441,7 +444,7 @@ suitable file is found, return nil."
> > (when (nth 2 obsolete)
> > (insert (format " since %s" (nth 2 obsolete))))
> > (insert (cond ((stringp use) (concat ";\n" use))
> > - (use (format-message ";\nuse ‘%s’ instead." use))
> > + (use (format-message ";\nuse `%s' instead." use))
> > (t "."))
> > "\n"))))
> >
> > @@ -477,7 +480,7 @@ FILE is the file where FUNCTION was probably
> defined."
> > (format ";\nin Lisp code %s"
> interactive-only))
> > ((and (symbolp 'interactive-only)
> > (not (eq interactive-only t)))
> > - (format-message ";\nin Lisp code use ‘%s’
> instead."
> > + (format-message ";\nin Lisp code use `%s'
> instead."
> > interactive-only))
> > (t "."))
> > "\n")))))
> > @@ -546,7 +549,7 @@ FILE is the file where FUNCTION was probably
> defined."
> > ;; Aliases are Lisp functions, so we need to check
> > ;; aliases before functions.
> > (aliased
> > - (format-message "an alias for ‘%s’" real-def))
> > + (format-message "an alias for `%s'" real-def))
> > ((autoloadp def)
> > (format "%s autoloaded %s"
> > (if (commandp def) "an interactive" "an")
> > @@ -581,21 +584,21 @@ FILE is the file where FUNCTION was probably
> defined."
> > (save-excursion
> > (save-match-data
> > (when (re-search-backward (substitute-command-keys
> > - "alias for ‘\\([^‘’]+\\)’")
> > + "alias for `\\([^`']+\\)'")
> > nil t)
> > (help-xref-button 1 'help-function real-def)))))
> >
> > (when file-name
> > ;; We used to add .el to the file name,
> > ;; but that's completely wrong when the user used load-file.
> > - (princ (format-message " in ‘%s’"
> > + (princ (format-message " in `%s'"
> > (if (eq file-name 'C-source)
> > "C source code"
> > (help-fns-short-filename file-name))))
> > ;; Make a hyperlink to the library.
> > (with-current-buffer standard-output
> > (save-excursion
> > - (re-search-backward (substitute-command-keys
> "‘\\([^‘’]+\\)’")
> > + (re-search-backward (substitute-command-keys
> "`\\([^`']+\\)'")
> > nil t)
> > (help-xref-button 1 'help-function-def function file-name))))
> > (princ ".")
> > @@ -604,7 +607,8 @@ FILE is the file where FUNCTION was probably
> defined."
> > (point)))
> > (terpri)(terpri)
> >
> > - (let ((doc-raw (documentation function t)))
> > + (let ((doc-raw (documentation function t))
> > + (key-bindings-buffer (current-buffer)))
> >
> > ;; If the function is autoloaded, and its docstring has
> > ;; key substitution constructs, load the library.
> > @@ -615,11 +619,11 @@ FILE is the file where FUNCTION was probably
> defined."
> >
> > (help-fns--key-bindings function)
> > (with-current-buffer standard-output
> > - (let ((doc (help-fns--signature function doc-raw sig-key
> > - real-function nil)))
> > - (run-hook-with-args 'help-fns-describe-function-functions
> function)
> > - (insert "\n"
> > - (or doc "Not documented."))))))))
> > + (let ((doc (help-fns--signature function doc-raw sig-key
> > + real-function
> key-bindings-buffer)))
> > + (run-hook-with-args 'help-fns-describe-function-functions
> function)
> > + (insert "\n"
> > + (or doc "Not documented."))))))))
> >
> > ;; Add defaults to `help-fns-describe-function-functions'.
> > (add-hook 'help-fns-describe-function-functions #'help-fns--obsolete)
> > @@ -730,14 +734,14 @@ it is displayed along with the global value."
> > (if file-name
> > (progn
> > (princ (format-message
> > - " is a variable defined in ‘%s’.\n"
> > + " is a variable defined in `%s'.\n"
> > (if (eq file-name 'C-source)
> > "C source code"
> > (file-name-nondirectory file-name))))
> > (with-current-buffer standard-output
> > (save-excursion
> > (re-search-backward (substitute-command-keys
> > - "‘\\([^‘’]+\\)’")
> > + "`\\([^`']+\\)'")
> > nil t)
> > (help-xref-button 1 'help-variable-def
> > variable file-name)))
> > @@ -746,7 +750,7 @@ it is displayed along with the global value."
> > (princ "Its ")))
> > (if valvoid
> > (princ " is void as a variable.")
> > - (princ (substitute-command-keys "’s ")))))
> > + (princ (substitute-command-keys "'s ")))))
> > (unless valvoid
> > (with-current-buffer standard-output
> > (setq val-start-pos (point))
> > @@ -872,7 +876,7 @@ if it is given a local binding.\n"))))
> > (unless (eq alias variable)
> > (setq extra-line t)
> > (princ (format-message
> > - " This variable is an alias for ‘%s’.\n"
> > + " This variable is an alias for `%s'.\n"
> > alias)))
> >
> > (when obsolete
> > @@ -881,7 +885,7 @@ if it is given a local binding.\n"))))
> > (if (nth 2 obsolete)
> > (princ (format " since %s" (nth 2 obsolete))))
> > (princ (cond ((stringp use) (concat ";\n " use))
> > - (use (format-message ";\n use ‘%s’
> instead."
> > + (use (format-message ";\n use `%s'
> instead."
> > (car obsolete)))
> > (t ".")))
> > (terpri))
> > @@ -915,13 +919,13 @@ if it is given a local binding.\n"))))
> > dir-file nil)))
> > (princ (substitute-command-keys
> > (if dir-file
> > - "by the file\n ‘"
> > - "for the directory\n ‘")))
> > + "by the file\n `"
> > + "for the directory\n `")))
> > (with-current-buffer standard-output
> > (insert-text-button
> > file 'type 'help-dir-local-var-def
> > 'help-args (list variable file)))
> > - (princ (substitute-command-keys "’.\n"))))
> > + (princ (substitute-command-keys "'.\n"))))
> > (princ (substitute-command-keys
> > " This variable's value is file-local.\n"))))
> >
> > @@ -938,7 +942,7 @@ file-local variable.\n")
> > (when (assq variable safe-local-variable-values)
> > (princ (substitute-command-keys
> > " However, you have added it to \
> > -‘safe-local-variable-values’.\n"))))
> > +`safe-local-variable-values'.\n"))))
> >
> > (when safe-var
> > (setq extra-line t)
> > @@ -946,7 +950,7 @@ file-local variable.\n")
> > (princ "if its value\n satisfies the predicate ")
> > (princ (if (byte-code-function-p safe-var)
> > "which is a byte-compiled expression.\n"
> > - (format-message "‘%s’.\n" safe-var))))
> > + (format-message "`%s'.\n" safe-var))))
> >
> > (if extra-line (terpri))
> > (princ "Documentation:\n")
> > diff --git a/lisp/help.el b/lisp/help.el
> > index 2fcb52e..66df6b0 100644
> > --- a/lisp/help.el
> > +++ b/lisp/help.el
> > @@ -964,12 +964,12 @@ documentation for the major and minor modes of
> that buffer."
> > (let* ((mode major-mode)
> > (file-name (find-lisp-object-file-name mode nil)))
> > (when file-name
> > - (princ (format-message " defined in ‘%s’"
> > + (princ (format-message " defined in `%s'"
> > (file-name-nondirectory file-name)))
> > ;; Make a hyperlink to the library.
> > (with-current-buffer standard-output
> > (save-excursion
> > - (re-search-backward (substitute-command-keys
> "‘\\([^‘’]+\\)’")
> > + (re-search-backward (substitute-command-keys
> "`\\([^`']+\\)'")
> > nil t)
> > (help-xref-button 1 'help-function-def mode
> file-name)))))
> > (princ ":\n")
> > @@ -1041,7 +1041,7 @@ is currently activated with completion."
> > (let ((minor-mode (lookup-minor-mode-from-indicator indicator)))
> > (if minor-mode
> > (describe-minor-mode-from-symbol minor-mode)
> > - (error "Cannot find minor mode for ‘%s’" indicator))))
> > + (error "Cannot find minor mode for `%s'" indicator))))
> >
> > (defun lookup-minor-mode-from-indicator (indicator)
> > "Return a minor mode symbol from its indicator on the mode line."
> > @@ -1352,8 +1352,8 @@ the help window if the current value of the user
> option
> >
> > (defun help--docstring-quote (string)
> > "Return a doc string that represents STRING.
> > -The result, when formatted by ‘substitute-command-keys’, should equal
> STRING."
> > - (replace-regexp-in-string "['\\`]" "\\\\=\\&" string))
> > +The result, when formatted by `substitute-command-keys', should equal
> STRING."
> > + (replace-regexp-in-string "['\\`‘’]" "\\\\=\\&" string))
> >
> > ;; The following functions used to be in help-fns.el, which is not
> preloaded.
> > ;; But for various reasons, they are more widely needed, so they were
> > diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el
> > index 0255585..89b1204 100644
> > --- a/lisp/hi-lock.el
> > +++ b/lisp/hi-lock.el
> > @@ -362,7 +362,7 @@ Hi-lock: end is found. A mode is excluded if it's
> in the list
> > (setq hi-lock-archaic-interface-message-used t)
> > (if hi-lock-archaic-interface-deduce
> > (global-hi-lock-mode hi-lock-mode)
> > - (warn
> > + (warn "%s"
> > "Possible archaic use of (hi-lock-mode).
> > Use (global-hi-lock-mode 1) in .emacs to enable hi-lock for all buffers,
> > use (hi-lock-mode 1) for individual buffers. For compatibility with
> Emacs
> > diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el
> > index 310a074..74cdfe1 100644
> > --- a/lisp/htmlfontify.el
> > +++ b/lisp/htmlfontify.el
> > @@ -133,10 +133,10 @@ main-content <=MAIN_CONTENT;\\n\" rtfm-section
> file style rtfm-section file))
> > \(defun rtfm-build-source-docs (section srcdir destdir)
> > (interactive
> > \"s section[eg- emacs / p4-blame]:\\nD source-dir: \\nD output-dir:
> \")
> > - (require 'htmlfontify)
> > + (require \\='htmlfontify)
> > (hfy-load-tags-cache srcdir)
> > - (let ((hfy-page-header 'rtfm-build-page-header)
> > - (hfy-page-footer 'rtfm-build-page-footer)
> > + (let ((hfy-page-header \\='rtfm-build-page-header)
> > + (hfy-page-footer \\='rtfm-build-page-footer)
> > (rtfm-section section)
> > (hfy-index-file \"index\"))
> > (htmlfontify-run-etags srcdir)
> > @@ -187,13 +187,13 @@ It takes only one argument, the filename."
> > :type '(string))
> >
> > (defcustom hfy-src-doc-link-style "text-decoration: underline;"
> > - "String to add to the ‘<style> a’ variant of an htmlfontify CSS
> class."
> > + "String to add to the `<style> a' variant of an htmlfontify CSS
> class."
> > :group 'htmlfontify
> > :tag "src-doc-link-style"
> > :type '(string))
> >
> > (defcustom hfy-src-doc-link-unstyle " text-decoration: none;"
> > - "Regex to remove from the ‘<style> a’ variant of an htmlfontify CSS
> class."
> > + "Regex to remove from the `<style> a' variant of an htmlfontify CSS
> class."
> > :group 'htmlfontify
> > :tag "src-doc-link-unstyle"
> > :type '(string))
> > diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
> > index 3e97343..718471b 100644
> > --- a/lisp/ibuffer.el
> > +++ b/lisp/ibuffer.el
> > @@ -2303,7 +2303,7 @@ buffers which are visiting a file."
> > (defun ibuffer (&optional other-window-p name qualifiers noselect
> > shrink filter-groups formats)
> > "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.
> > diff --git a/lisp/ido.el b/lisp/ido.el
> > index 95be656..13b6d52 100644
> > --- a/lisp/ido.el
> > +++ b/lisp/ido.el
> > @@ -378,7 +378,7 @@ use either \\[customize] or the function `ido-mode'."
> > '("\\` ")
> > "List of regexps or functions matching buffer names to ignore.
> > For example, traditional behavior is not to list buffers whose names
> begin
> > -with a space, for which the regexp is ‘\\\\=` ’. See the source file
> for
> > +with a space, for which the regexp is `\\\\=` '. See the source file
> for
> > example functions that filter buffer names."
> > :type '(repeat (choice regexp function))
> > :group 'ido)
> > @@ -387,7 +387,7 @@ example functions that filter buffer names."
> > '("\\`CVS/" "\\`#" "\\`.#" "\\`\\.\\./" "\\`\\./")
> > "List of regexps or functions matching file names to ignore.
> > For example, traditional behavior is not to list files whose names begin
> > -with a #, for which the regexp is ‘\\\\=`#’. See the source file for
> > +with a #, for which the regexp is `\\\\=`#'. See the source file for
> > example functions that filter filenames."
> > :type '(repeat (choice regexp function))
> > :group 'ido)
> > diff --git a/lisp/image.el b/lisp/image.el
> > index 99a65e3..0c62088 100644
> > --- a/lisp/image.el
> > +++ b/lisp/image.el
> > @@ -343,7 +343,7 @@ of image data. If that doesn't work, and SOURCE is
> a file name,
> > use its file extension as image type.
> > Optional DATA-P non-nil means SOURCE is a string containing image data."
> > (when (and (not data-p) (not (stringp source)))
> > - (error "Invalid image file name ‘%s’" source))
> > + (error "Invalid image file name `%s'" source))
> > (unless type
> > (setq type (if data-p
> > (image-type-from-data source)
> > @@ -351,7 +351,7 @@ Optional DATA-P non-nil means SOURCE is a string
> containing image data."
> > (image-type-from-file-name source))))
> > (or type (error "Cannot determine image type")))
> > (or (memq type (and (boundp 'image-types) image-types))
> > - (error "Invalid image type ‘%s’" type))
> > + (error "Invalid image type `%s'" type))
> > type)
> >
> >
> > diff --git a/lisp/info.el b/lisp/info.el
> > index 2c92df4..a5a2c55 100644
> > --- a/lisp/info.el
> > +++ b/lisp/info.el
> > @@ -3460,7 +3460,7 @@ MATCHES is a list of index matches found by
> `Info-index'.")
> > (when (equal (car (nth 0 nodeinfo)) (or filename
> Info-current-file))
> > (insert
> > (format "* %-20s %s.\n"
> > - (format-message "*Index for ‘%s’*::" (cdr (nth 0
> nodeinfo)))
> > + (format "*Index for ‘%s’*::" (cdr (nth 0 nodeinfo)))
> > (cdr (nth 0 nodeinfo)))))))))
> >
> > (defun Info-virtual-index (topic)
> > @@ -3496,7 +3496,7 @@ search results."
> > (Info-goto-node orignode)
> > (message "")))
> > (Info-find-node Info-current-file
> > - (format-message "*Index for ‘%s’*" topic))))
> > + (format "*Index for ‘%s’*" topic))))
> >
> > (add-to-list 'Info-virtual-files
> > '("\\`\\*Apropos\\*\\'"
> > @@ -3635,7 +3635,7 @@ Build a menu of the possible matches."
> > (setq nodes (cdr nodes)))
> > (if nodes
> > (Info-find-node Info-apropos-file (car (car nodes)))
> > - (setq nodename (format-message "Index for ‘%s’" string))
> > + (setq nodename (format "Index for ‘%s’" string))
> > (push (list nodename string (Info-apropos-matches string))
> > Info-apropos-nodes)
> > (Info-find-node Info-apropos-file nodename)))))
> > diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el
> > index 08c18e1..daba2b6 100644
> > --- a/lisp/international/ccl.el
> > +++ b/lisp/international/ccl.el
> > @@ -967,8 +967,7 @@ is a list of CCL-BLOCKs."
> > (let ((len (length ccl-code))
> > (buffer-mag (aref ccl-code 0)))
> > (cond ((= buffer-mag 0)
> > - (insert (substitute-command-keys
> > - "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
> > diff --git a/lisp/international/fontset.el
> b/lisp/international/fontset.el
> > index 4667a00..cdbaade 100644
> > --- a/lisp/international/fontset.el
> > +++ b/lisp/international/fontset.el
> > @@ -1070,7 +1070,7 @@ Value is name of that font."
> > (condition-case nil
> > (setq ascii-font (x-resolve-font-name pattern))
> > (error
> > - (message "Warning: no fonts matching ‘%s’ available" pattern)
> > + (message "Warning: no fonts matching `%s' available" pattern)
> > (aset xlfd-fields index "*")
> > (setq index (1+ index))))))
> > (unless ascii-font
> > diff --git a/lisp/international/mule-cmds.el
> b/lisp/international/mule-cmds.el
> > index 5934919..4fd4b90 100644
> > --- a/lisp/international/mule-cmds.el
> > +++ b/lisp/international/mule-cmds.el
> > @@ -400,9 +400,9 @@ To prefer, for instance, utf-8, say the following:
> > \(prefer-coding-system \\='utf-8)"
> > (interactive "zPrefer coding system: ")
> > (if (not (and coding-system (coding-system-p coding-system)))
> > - (error "Invalid coding system ‘%s’" coding-system))
> > + (error "Invalid coding system `%s'" coding-system))
> > (if (memq (coding-system-type coding-system) '(raw-text undecided))
> > - (error "Can't prefer the coding system ‘%s’" coding-system))
> > + (error "Can't prefer the coding system `%s'" coding-system))
> > (let ((base (coding-system-base coding-system))
> > (eol-type (coding-system-eol-type coding-system)))
> > (set-coding-system-priority base)
> > @@ -417,7 +417,7 @@ To prefer, for instance, utf-8, say the following:
> > (set-default-coding-systems base)
> > (if (called-interactively-p 'interactive)
> > (or (eq base default-file-name-coding-system)
> > - (message "The default value of ‘file-name-coding-system’ was
> not changed because the specified coding system is not suitable for file
> names.")))))
> > + (message "The default value of `file-name-coding-system' was
> not changed because the specified coding system is not suitable for file
> names.")))))
> >
> > (defvar sort-coding-systems-predicate nil
> > "If non-nil, a predicate function to sort coding systems.
> > @@ -719,14 +719,14 @@ DEFAULT is the coding system to use by default in
> the query."
> > (insert "No default coding systems to try for "
> > (if (stringp from)
> > (format "string \"%s\"." from)
> > - (format-message "buffer ‘%s’." bufname)))
> > + (format-message "buffer `%s'." bufname)))
> > (insert
> > "These default coding systems were tried to encode"
> > (if (stringp from)
> > (concat " \"" (if (> (length from) 10)
> > (concat (substring from 0 10) "...\"")
> > (concat from "\"")))
> > - (format-message " text\nin the buffer ‘%s’" bufname))
> > + (format-message " text\nin the buffer `%s'" bufname))
> > ":\n")
> > (let ((pos (point))
> > (fill-prefix " "))
> > @@ -876,13 +876,13 @@ and TO is ignored."
> > (setq auto-cs (car auto-cs))
> > (display-warning
> > 'mule
> > - (format "\
> > -Invalid coding system ‘%s’ is specified
> > + (format-message "\
> > +Invalid coding system `%s' is specified
> > for the current buffer/file by the %s.
> > It is highly recommended to fix it before writing to a file."
> > (car auto-cs)
> > (if (eq (cdr auto-cs) :coding) ":coding tag"
> > - (format-message "variable ‘%s’" (cdr
> auto-cs))))
> > + (format-message "variable `%s'" (cdr
> auto-cs))))
> > :warning)
> > (or (yes-or-no-p "Really proceed with writing? ")
> > (error "Save aborted"))
> > @@ -1452,7 +1452,7 @@ If INPUT-METHOD is nil, deactivate any current
> input method."
> > (unless (or current-input-method (null input-method))
> > (let ((slot (assoc input-method input-method-alist)))
> > (if (null slot)
> > - (error "Can't activate input method ‘%s’" input-method))
> > + (error "Can't activate input method `%s'" input-method))
> > (setq current-input-method-title nil)
> > (let ((func (nth 2 slot)))
> > (if (functionp func)
> > @@ -1461,7 +1461,7 @@ If INPUT-METHOD is nil, deactivate any current
> input method."
> > (progn
> > (require (cdr func))
> > (apply (car func) input-method (nthcdr 5 slot)))
> > - (error "Can't activate input method ‘%s’" input-method))))
> > + (error "Can't activate input method `%s'" input-method))))
> > (setq current-input-method input-method)
> > (or (stringp current-input-method-title)
> > (setq current-input-method-title (nth 3 slot)))
> > @@ -1539,7 +1539,7 @@ which marks the variable `default-input-method' as
> set for Custom buffers."
> >
> > (interactive "P\np")
> > (if toggle-input-method-active
> > - (error "Recursive use of ‘toggle-input-method’"))
> > + (error "Recursive use of `toggle-input-method'"))
> > (if (and current-input-method (not arg))
> > (deactivate-input-method)
> > (let ((toggle-input-method-active t)
> > @@ -1589,7 +1589,7 @@ which marks the variable `default-input-method' as
> set for Custom buffers."
> > (with-output-to-temp-buffer (help-buffer)
> > (let ((elt (assoc input-method input-method-alist)))
> > (princ (format-message
> > - "Input method: %s (‘%s’ in mode line) for %s\n
> %s\n"
> > + "Input method: %s (`%s' in mode line) for %s\n
> %s\n"
> > input-method (nth 3 elt) (nth 1 elt) (nth 4
> elt))))))))))
> >
> > (defun describe-current-input-method ()
> > @@ -1599,7 +1599,7 @@ This is a subroutine for `describe-input-method'."
> > (if (and (symbolp describe-current-input-method-function)
> > (fboundp describe-current-input-method-function))
> > (funcall describe-current-input-method-function)
> > - (message "No way to describe the current input method ‘%s’"
> > + (message "No way to describe the current input method `%s'"
> > current-input-method)
> > (ding))
> > (error "No input method is activated now")))
> > @@ -2174,9 +2174,9 @@ See `set-language-info-alist' for use in programs."
> > (search-backward (symbol-name (car l)))
> > (help-xref-button 0 'help-coding-system (car l))
> > (goto-char (point-max))
> > - (insert " (‘"
> > + (insert (substitute-command-keys " (`")
> > (coding-system-mnemonic (car l))
> > - "’ in mode line):\n\t"
> > + (substitute-command-keys "' in mode line):\n\t")
> > (substitute-command-keys
> > (coding-system-doc-string (car l)))
> > "\n")
> > diff --git a/lisp/international/mule-conf.el
> b/lisp/international/mule-conf.el
> > index 063b873..ecbc4f4 100644
> > --- a/lisp/international/mule-conf.el
> > +++ b/lisp/international/mule-conf.el
> > @@ -904,8 +904,8 @@
> > (dolist (script '(devanagari sanskrit bengali tamil telugu assamese
> > oriya kannada malayalam gujarati punjabi))
> > (define-charset (intern (format "%s-cdac" script))
> > - (format-message
> > - "Glyphs of %s script for CDAC font. Subset of ‘indian-glyph’."
> > + (format
> > + "Glyphs of %s script for CDAC font. Subset of `indian-glyph'."
> > (capitalize (symbol-name script)))
> > :short-name (format "CDAC %s glyphs" (capitalize (symbol-name
> script)))
> > :supplementary-p t
> > @@ -916,8 +916,8 @@
> > (dolist (script '(devanagari bengali punjabi gujarati
> > oriya tamil telugu kannada malayalam))
> > (define-charset (intern (format "%s-akruti" script))
> > - (format-message
> > - "Glyphs of %s script for AKRUTI font. Subset of ‘indian-glyph’."
> > + (format
> > + "Glyphs of %s script for AKRUTI font. Subset of `indian-glyph'."
> > (capitalize (symbol-name script)))
> > :short-name (format "AKRUTI %s glyphs" (capitalize (symbol-name
> script)))
> > :supplementary-p t
> > diff --git a/lisp/international/mule-diag.el
> b/lisp/international/mule-diag.el
> > index 57b6d62..fa5a7eb 100644
> > --- a/lisp/international/mule-diag.el
> > +++ b/lisp/international/mule-diag.el
> > @@ -332,7 +332,7 @@ meanings of these arguments."
> > (let ((char (charset-iso-final-char charset)))
> > (when (> char 0)
> > (insert "Final char of ISO2022 designation sequence: ")
> > - (insert (format-message "‘%c’\n" char))))
> > + (insert (format-message "`%c'\n" char))))
> > (let (aliases)
> > (dolist (c charset-list)
> > (if (and (not (eq c charset))
> > @@ -770,7 +770,7 @@ but still contains full information about each
> coding system."
> > # MNEMONIC-LETTER -- CODING-SYSTEM-NAME
> > # DOC-STRING
> > ")
> > - (princ "\
> > + (princ (substitute-command-keys "\
> > #########################
> > ## LIST OF CODING SYSTEMS
> > ## Each line corresponds to one coding system
> > @@ -794,7 +794,7 @@ but still contains full information about each
> coding system."
> > ## 0
> > ## POST-READ-CONVERSION, PRE-WRITE-CONVERSION = function name to be
> called
> > ##
> > -"))
> > +")))
> > (dolist (coding-system (sort-coding-systems (coding-system-list
> 'base-only)))
> > (if (null arg)
> > (print-coding-system-briefly coding-system 'tightly)
> > @@ -1038,7 +1038,8 @@ see the function `describe-fontset' for the format
> of the list."
> > (save-excursion
> > (goto-char (point-min))
> > (while (re-search-forward
> > - "^ \\([^ ]+\\) (‘.*’ in mode line)$" nil t)
> > + (substitute-command-keys "^ \\([^ ]+\\) (`.*' in mode
> line)$")
> > + nil t)
> > (help-xref-button 1 'help-input-method (match-string 1)))))))
> >
> > (defun list-input-methods-1 ()
> > @@ -1046,7 +1047,8 @@ see the function `describe-fontset' for the format
> of the list."
> > (princ "
> > No input method is available, perhaps because you have not
> > installed LEIM (Libraries of Emacs Input Methods).")
> > - (princ "LANGUAGE\n NAME (‘TITLE’ in mode line)\n")
> > + (princ (substitute-command-keys
> > + "LANGUAGE\n NAME (`TITLE' in mode line)\n"))
> > (princ " SHORT-DESCRIPTION\n------------------------------\n")
> > (setq input-method-alist
> > (sort input-method-alist
> > @@ -1059,7 +1061,7 @@ installed LEIM (Libraries of Emacs Input
> Methods).")
> > (princ language)
> > (terpri))
> > (princ (format-message
> > - " %s (‘%s’ in mode line)\n %s\n"
> > + " %s (`%s' in mode line)\n %s\n"
> > (car elt)
> > (let ((title (nth 3 elt)))
> > (if (and (consp title) (stringp (car title)))
> > diff --git a/lisp/international/ogonek.el b/lisp/international/ogonek.el
> > index 7caa5d4..01cbe1e 100644
> > --- a/lisp/international/ogonek.el
> > +++ b/lisp/international/ogonek.el
> > @@ -133,10 +133,10 @@ znak/ow diakrytycznych. Funkcje te mo/zna
> pogrupowa/c nast/epuj/aco.
> > `~/.emacs' za/z/ada/c wczytania wybranych funkcji, na dodatek dopiero
> > w chwili ich rzeczywistego u/zycia:
> >
> > - (autoload 'ogonek-jak \"ogonek\")
> > - (autoload 'ogonek-recode-region \"ogonek\")
> > - (autoload 'ogonek-prefixify-region \"ogonek\")
> > - (autoload 'ogonek-deprefixify-region \"ogonek\")
> > + (autoload \\='ogonek-jak \"ogonek\")
> > + (autoload \\='ogonek-recode-region \"ogonek\")
> > + (autoload \\='ogonek-prefixify-region \"ogonek\")
> > + (autoload \\='ogonek-deprefixify-region \"ogonek\")
> >
> > Cz/esto wyst/epuj/ace kombinacje wywo/la/n funkcji mo/zna dla wygody
> > skr/oci/c i przypisa/c klawiszom. Oto praktyczne przyk/lady:
> > @@ -144,17 +144,17 @@ znak/ow diakrytycznych. Funkcje te mo/zna
> pogrupowa/c nast/epuj/aco.
> > (defun deprefixify-iso8859-2-region (start end)
> > (interactive \"*r\")
> > (ogonek-deprefixify-region start end ?/ \"iso8859-2\"))
> > - (global-set-key \"\\C-cd\" 'deprefixify-iso8859-2-region) ; ctrl-c d
> > + (global-set-key \"\\C-cd\" \\='deprefixify-iso8859-2-region) ;
> ctrl-c d
> >
> > (defun mazovia-to-iso8859-2 (start end)
> > (interactive \"*r\")
> > (ogonek-recode-region start end \"mazovia\" \"iso8859-2\"))
> > - (global-set-key \"\\C-cr\" 'mazovia-to-iso8859-2) ; ctrl-c r
> > + (global-set-key \"\\C-cr\" \\='mazovia-to-iso8859-2) ; ctrl-c r
> >
> > (defun prefixify-iso8859-2-region (start end)
> > (interactive \"*r\")
> > (ogonek-prefixify-region start end \"iso8859-2\" ?/))
> > - (global-set-key \"\\C-cp\" 'prefixify-iso8859-2-region) ; ctrl-c p
> > + (global-set-key \"\\C-cp\" \\='prefixify-iso8859-2-region) ; ctrl-c p
> >
> > Ka/zd/a operacj/e przekodowania mo/zna w ca/lo/sci odwo/la/c
> > przez wykonanie polecenia `undo'.")
> > @@ -163,7 +163,7 @@ znak/ow diakrytycznych. Funkcje te mo/zna
> pogrupowa/c nast/epuj/aco.
> > "Display `ogonek-informacja' in an auxiliary *ogonek-jak* buffer."
> > (interactive)
> > (set-buffer (get-buffer-create " *ogonek-jak*"))
> > - (insert ogonek-informacja)
> > + (insert (substitute-command-keys ogonek-informacja))
> > (switch-to-buffer " *ogonek-jak*")
> > (goto-char (point-min)))
> >
> > @@ -233,10 +233,10 @@ The functions come in the following groups.
> > to autoload the needed functions, for example by adding the
> > following lines to your init file:
> >
> > - (autoload 'ogonek-how \"ogonek\")
> > - (autoload 'ogonek-recode-region \"ogonek\")
> > - (autoload 'ogonek-prefixify-region \"ogonek\")
> > - (autoload 'ogonek-deprefixify-region \"ogonek\")
> > + (autoload \\='ogonek-how \"ogonek\")
> > + (autoload \\='ogonek-recode-region \"ogonek\")
> > + (autoload \\='ogonek-prefixify-region \"ogonek\")
> > + (autoload \\='ogonek-deprefixify-region \"ogonek\")
> >
> > The most frequent function calls can be abbreviated and assigned to
> > keyboard keys. Here are a few practical examples:
> > @@ -262,7 +262,7 @@ The functions come in the following groups.
> > "Display `ogonek-information' in an auxiliary *recode-how* buffer."
> > (interactive "*")
> > (set-buffer (get-buffer-create " *ogonek-how*"))
> > - (insert ogonek-information)
> > + (insert (substitute-command-keys ogonek-information))
> > (switch-to-buffer " *ogonek-how*")
> > (goto-char (point-min)))
> >
> > diff --git a/lisp/json.el b/lisp/json.el
> > index 5392a13..daa0c94 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/kermit.el b/lisp/kermit.el
> > index d4a21f4..9b464ab 100644
> > --- a/lisp/kermit.el
> > +++ b/lisp/kermit.el
> > @@ -135,7 +135,7 @@ In this state, use LFD to send a line and end it
> with a carriage-return."
> > (defun kermit-clean-on ()
> > "Delete all null characters and ^M's from the kermit output.
> > Note that another (perhaps better) way to do this is to use the
> > -command ‘kermit | tr -d '\\015'’."
> > +command `kermit | tr -d \\='\\015\\=''."
> > (interactive)
> > (set-process-filter (get-buffer-process (current-buffer))
> > 'kermit-clean-filter))
> > diff --git a/lisp/leim/quail/cyrillic.el b/lisp/leim/quail/cyrillic.el
> > index 89a58cf..7c44385 100644
> > --- a/lisp/leim/quail/cyrillic.el
> > +++ b/lisp/leim/quail/cyrillic.el
> > @@ -839,7 +839,7 @@ Sorry, but `ghe with upturn' is not included in ISO
> 8859-5."
> > "ЯВЕРТЫ Roman transcription
> >
> > This layout is based on Roman transcription by phonemic resemblance.
> > -When preceded by a ‘/’, the second and the third rows (number key row)
> change
> > +When preceded by a `/', the second and the third rows (number key row)
> change
> > as follows.
> >
> > keytop | Q W E R T Y U I O P A S D
> > @@ -1244,8 +1244,8 @@ Unicode based."
> > This phonetic layout replaces all the Latin letters with Bulgarian
> > \(Cyrillic) letters based on similarities in their pronunciation or
> look.
> >
> > -Note that, since the letters ‘щ’, ‘ь’, ‘ю’ and ‘я’ are attached to the
> > -‘]’, ‘\’, ‘\\=`’ and ‘[’ keys respectively, Caps Lock does not affect
> them."
> > +Note that, since the letters `щ', `ь', `ю' and `я' are attached to the
> > +`]', `\', `\\=`' and `[' keys respectively, Caps Lock does not affect
> them."
> > nil t t t t nil nil nil nil nil t)
> >
> > ;; Ю 1! 2@ 3№ 4$ 5% 6€ 7§ 8* 9( 0) -– =+ ьѝ
> > diff --git a/lisp/leim/quail/hebrew.el b/lisp/leim/quail/hebrew.el
> > index ac67fbf..d90b362 100644
> > --- a/lisp/leim/quail/hebrew.el
> > +++ b/lisp/leim/quail/hebrew.el
> > @@ -36,8 +36,8 @@
> >
> > Based on SI-1452 keyboard layout.
> > Only Hebrew-related characters are considered.
> > - ‘q’ is used to switch levels instead of Alt-Gr.
> > - Maqaaf (־) is mapped to ‘/פ’.
> > + `q' is used to switch levels instead of Alt-Gr.
> > + Maqaaf (־) is mapped to `/פ'.
> > " nil t t t t nil nil nil nil nil t)
> >
> > (quail-define-rules
> > @@ -113,8 +113,8 @@ Only Hebrew-related characters are considered.
> >
> > Based on latest draft of SI-1452 keyboard layout.
> > Only Hebrew-related characters are considered.
> > - ‘\\=`’ is used to switch levels instead of Alt-Gr.
> > -Geresh is mapped to ‘\\=`k’.
> > + `\\=`' is used to switch levels instead of Alt-Gr.
> > +Geresh is mapped to `\\=`k'.
> > " nil t t t t nil nil nil nil nil t)
> >
> > (quail-define-rules
> > @@ -457,8 +457,8 @@ Provides access to all Hebrew characters suitable to
> Modern Hebrew.
> >
> > Based on Society of Biblical Literature's Tiro keyboard layout.
> > Not suitable for modern Hebrew input.
> > - ‘q’ is used to switch levels instead of Alt-Gr.
> > - Combining dot above (Called Masora dot) (̇) is mapped to ‘q1’.
> > + `q' is used to switch levels instead of Alt-Gr.
> > + Combining dot above (Called Masora dot) (̇) is mapped to `q1'.
> > " nil t t t t nil nil nil nil nil t)
> >
> > (quail-define-rules
> > @@ -603,8 +603,8 @@ Not suitable for modern Hebrew input.
> >
> > Based on Society of Biblical Literature's SIL keyboard layout.
> > Phonetic and not suitable for modern Hebrew input.
> > - ‘\\=`’ is used to switch levels instead of Alt-Gr.
> > - Euro Sign (€) is mapped to ‘Z’.
> > + `\\=`' is used to switch levels instead of Alt-Gr.
> > + Euro Sign (€) is mapped to `Z'.
> > " nil t t t t nil nil nil nil nil t)
> >
> > (quail-define-rules
> > diff --git a/lisp/leim/quail/latin-ltx.el b/lisp/leim/quail/latin-ltx.el
> > index 82c0aa3..3c84ba8 100644
> > --- a/lisp/leim/quail/latin-ltx.el
> > +++ b/lisp/leim/quail/latin-ltx.el
> > @@ -36,7 +36,7 @@
> > "LaTeX-like input method for many characters.
> > These characters are from the charsets used by the `utf-8' coding
> > system, including many technical ones. Examples:
> > - \\'a -> á \\`{a} -> à
> > + \\\\='a -> á \\\\=`{a} -> à
> > \\pi -> π \\int -> ∫ ^1 -> ¹"
> >
> > '(("\t" . quail-completion))
> > @@ -184,7 +184,7 @@ system, including many technical ones. Examples:
> > ("\\H" ?̋)
> > ("\\H{}" ?˝)
> > ("\\U{o}" ?ő) ("\\Uo" ?ő) ;; FIXME: Was it just a typo?
> > -
> > +
> > ("\\OE" ?Œ) ;; ("{\\OE}" ?Œ)
> > ("\\oe" ?œ) ;; ("{\\oe}" ?œ)
> >
> > @@ -216,7 +216,7 @@ system, including many technical ones. Examples:
> > (name (if (match-end 1) (capitalize basename) (downcase
> basename))))
> > (concat "^" (if (> (length name) 1) "\\") name)))
> > "\\`MODIFIER LETTER \\(?:SMALL\\|CAPITA\\(L\\)\\)
> \\([[:ascii:]]+\\)\\'")
> > -
> > +
> > ;; ((lambda (name char) (format "^%s" (downcase (match-string 1
> name))))
> > ;; "\\`MODIFIER LETTER SMALL \\(.\\)\\'")
> > ;; ("^\\1" "\\`MODIFIER LETTER CAPITAL \\(.\\)\\'")
> > @@ -694,7 +694,7 @@ system, including many technical ones. Examples:
> > ("\\defs" ?≙) ; per fuzz/zed
> > ;; ("\\sqrt[3]" ?∛)
> > ("\\llbracket" ?\〚) ; stmaryrd
> > - ("\\rrbracket" ?\〛)
> > + ("\\rrbracket" ?\〛)
> > ;; ("\\lbag" ?\〚) ; fuzz
> > ;; ("\\rbag" ?\〛)
> > ("\\ldata" ?\《) ; fuzz/zed
> > diff --git a/lisp/leim/quail/thai.el b/lisp/leim/quail/thai.el
> > index 72e5020..7d0949e 100644
> > --- a/lisp/leim/quail/thai.el
> > +++ b/lisp/leim/quail/thai.el
> > @@ -46,9 +46,9 @@
> > "Thai Kesmanee input method with TIS620 keyboard layout
> >
> > The difference from the ordinal Thai keyboard:
> > - ‘฿’ and ‘๏’ are assigned to ‘\\’ and ‘|’ respectively,
> > - ‘ฃ’ and ‘ฅ’ are assigned to ‘\\=`’ and ‘~’ respectively,
> > - Don't know where to assign characters ‘๚’ and ‘๛’."
> > + `฿' and `๏' are assigned to `\\' and `|' respectively,
> > + `ฃ' and `ฅ' are assigned to `\\=`' and `~' respectively,
> > + Don't know where to assign characters `๚' and `๛'."
> > nil t t t t nil nil nil nil nil t)
> >
> > (thai-generate-quail-map
> > diff --git a/lisp/leim/quail/tibetan.el b/lisp/leim/quail/tibetan.el
> > index d5a92ca..93cb65b 100644
> > --- a/lisp/leim/quail/tibetan.el
> > +++ b/lisp/leim/quail/tibetan.el
> > @@ -155,7 +155,7 @@
> > and to get da-drag in -r-d, -l-d .)
> > | : Special signs.
> >
> > - Tsheg is assigned to SPC. Space is assigned to period ‘.’.
> > + Tsheg is assigned to SPC. Space is assigned to period `.'.
> > "
> > nil nil nil nil nil nil nil nil
> > 'quail-tibetan-update-translation)
> > @@ -411,7 +411,7 @@
> > +---------------------------------------------+
> > |zཞ|xཟ|cའ|vཡ|bར|nལ|mཤ|,ས|.ཧ|/ཨ|
> > +---------------------------------------+
> > - The key ‘h’ is used for consonant stacking.
> > + The key `h' is used for consonant stacking.
> >
> > [SHIFTED]
> >
> > @@ -427,14 +427,14 @@
> >
> > DIFFERENCE FROM THE ORIGINAL TIBKEY:
> >
> > - 1. Vowel ‘a’ should be typed explicitly by the key ‘A’.
> > + 1. Vowel `a' should be typed explicitly by the key `A'.
> > This is really inconvenient. But to make the coding
> > scheme clear, it is desirable to have an explicit
> > - vowel sign for ‘a’.
> > + vowel sign for `a'.
> > 2. Tsheg is assigned to SPC key. You can input a space
> > - by typing ‘>’.
> > + by typing `>'.
> > 4. To avoid the default stacking ���� and to obtain གཡ,
> > - type ‘E’ instead of ‘v’ (=ཡ).
> > + type `E' instead of `v' (=ཡ).
> > 3. There are many characters that are not supported in the
> > current implementation (especially special signs).
> > I hope I'll complete in a future revision.
> > diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el
> > index 70307f6..87f12ba 100644
> > --- a/lisp/ls-lisp.el
> > +++ b/lisp/ls-lisp.el
> > @@ -222,7 +222,7 @@ current year. The OLD-TIME-FORMAT is used for older
> files. To use ISO
> > 8601 dates, you could set:
> >
> > \(setq ls-lisp-format-time-list
> > - '(\"%Y-%m-%d %H:%M\"
> > + \\='(\"%Y-%m-%d %H:%M\"
> > \"%Y-%m-%d \"))"
> > :type '(list (string :tag "Early time format")
> > (string :tag "Old time format"))
> > diff --git a/lisp/mail/feedmail.el b/lisp/mail/feedmail.el
> > index ccd8926..368e2ab 100644
> > --- a/lisp/mail/feedmail.el
> > +++ b/lisp/mail/feedmail.el
> > @@ -418,9 +418,9 @@ cases. You can give a timeout for the prompt; see
> variable
> > If nil, the prepped message will be shown, for confirmation or
> > otherwise, in some window in the current frame without resizing
> > anything. That may or may not display enough of the message to
> > -distinguish it from others. If set to the symbol ‘queued’, take
> > +distinguish it from others. If set to the symbol `queued', take
> > this action only when running the queue. If set to the symbol
> > -‘immediate’, take this action only when sending immediately. For
> > +`immediate', take this action only when sending immediately. For
> > any other non-nil value, take the action in both cases. Even if
> > you're not confirming the sending of immediate or queued messages,
> > it can still be interesting to see a lot about them as they are
> > @@ -471,9 +471,9 @@ Addresses for the message envelope are deduced by
> examining
> > appropriate address headers in the message. Generally, they will show
> > up in the list of deduced addresses in the order that the headers
> > happen to appear (duplicate addresses are eliminated in any case).
> > -This variable can be set to the symbol ‘first’, in which case the
> > +This variable can be set to the symbol `first', in which case the
> > Bcc:/Resent-Bcc: addresses will appear at the beginning in the list;
> > -or, it can be set to the symbol ‘last’, in which case they will appear
> > +or, it can be set to the symbol `last', in which case they will appear
> > at the end of the list.
> >
> > Why should you care? Well, maybe you don't, and certainly the same
> > @@ -484,7 +484,7 @@ addresses are not handled first, there can be
> substantial delays in
> > seeing the message again. Some configurations of sendmail, for example,
> > seem to try to deliver to each addressee at least once, immediately
> > and serially, so slow SMTP conversations can add up to a delay. There
> > -is an option for either ‘first’ or ‘last’ because you might have a
> > +is an option for either `first' or `last' because you might have a
> > delivery agent that processes the addresses backwards."
> > :group 'feedmail-headers
> > :type '(choice (const nil)
> > @@ -566,7 +566,7 @@ but common in some proprietary systems."
> > "If non-nil and the email has no Sender: header, use this value.
> > May be nil, in which case nothing in particular is done with respect
> > to Sender: lines. By design, will not replace an existing Sender:
> > -line, but you can achieve that with a fiddle-plex 'replace action.
> > +line, but you can achieve that with a fiddle-plex replace action.
> > NB: it makes no sense to use the value t since there is no sensible
> > default for Sender:.
> >
> > @@ -1745,7 +1745,7 @@ applied to a file after you've just read it from
> disk: for example, a
> > feedmail FQM message file from a queue. You could use something like
> > this:
> >
> > -\(setq auto-mode-alist \(cons \'\(\"\\\\.fqm$\" .
> feedmail-vm-mail-mode\) auto-mode-alist\)\)
> > +\(setq auto-mode-alist \(cons \\='\(\"\\\\.fqm$\" .
> feedmail-vm-mail-mode\) auto-mode-alist\)\)
> > "
> > (feedmail-say-debug ">in-> feedmail-vm-mail-mode")
> > (let ((the-buf (current-buffer)))
> > @@ -2054,7 +2054,7 @@ backup file names and the like)."
> > ;; the handler for the condition-case
> > (error (setq messages-skipped (1+ messages-skipped))
> > (ding t)
> > - (message "FQM: Trapped ‘%s’, message left in
> queue." (car signal-stuff))
> > + (message "FQM: Trapped `%s', message left in
> queue." (car signal-stuff))
> > (sit-for 3)
> > (message "FQM: Trap details: \"%s\""
> > (mapconcat 'identity (cdr signal-stuff)
> "\" \""))
> > diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el
> > index 577cec0..cd9df1f 100644
> > --- a/lisp/mail/mailalias.el
> > +++ b/lisp/mail/mailalias.el
> > @@ -119,11 +119,11 @@ completed. `pattern' is nil when
> `mail-directory-requery' is nil.
> >
> > The value might look like this:
> >
> > - '(remote-shell-program \"HOST\" \"-nl\" \"USER\" \"COMMAND\")
> > + (remote-shell-program \"HOST\" \"-nl\" \"USER\" \"COMMAND\")
> >
> > or like this:
> >
> > - '(remote-shell-program \"HOST\" \"-n\" \"COMMAND '^\" pattern \"'\")"
> > + (remote-shell-program \"HOST\" \"-n\" \"COMMAND \\='^\" pattern
> \"\\='\")"
> > :type 'sexp
> > :group 'mailalias)
> > (put 'mail-directory-process 'risky-local-variable t)
> > @@ -512,7 +512,7 @@ PREFIX is the string we want to complete."
> > mail-aliases))
> > (if (consp mail-local-names)
> > mail-local-names)
> > - (or directory
> > + (or directory
> > (when (consp mail-directory-names)
> > mail-directory-names)))
> > (lambda (a b)
> > diff --git a/lisp/mail/rfc2368.el b/lisp/mail/rfc2368.el
> > index 3c4e9b2..50ff2cf 100644
> > --- a/lisp/mail/rfc2368.el
> > +++ b/lisp/mail/rfc2368.el
> > @@ -66,16 +66,16 @@
> >
> > ;; describes 'mailto:'
> > (defconst rfc2368-mailto-scheme-index 1
> > - "Describes the ‘mailto:’ portion of the url.")
> > + "Describes the `mailto:' portion of the url.")
> > ;; i'm going to call this part the 'prequery'
> > (defconst rfc2368-mailto-prequery-index 2
> > - "Describes the portion of the url between ‘mailto:’ and ‘?’.")
> > + "Describes the portion of the url between `mailto:' and `?'.")
> > ;; i'm going to call this part the 'query'
> > (defconst rfc2368-mailto-query-index 4
> > - "Describes the portion of the url after ‘?’.")
> > + "Describes the portion of the url after `?'.")
> >
> > (defun rfc2368-unhexify-string (string)
> > - "Unhexify STRING -- e.g. ‘hello%20there’ -> ‘hello there’."
> > + "Unhexify STRING -- e.g. `hello%20there' -> `hello there'."
> > (replace-regexp-in-string "%[[:xdigit:]]\\{2\\}"
> > (lambda (match)
> > (string (string-to-number (substring match
> 1)
> > diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
> > index 5b5ee4e..4c0f2b9 100644
> > --- a/lisp/mail/sendmail.el
> > +++ b/lisp/mail/sendmail.el
> > @@ -525,31 +525,33 @@ This also saves the value of `send-mail-function'
> via Customize."
> > ;; Query the user.
> > (with-temp-buffer
> > (rename-buffer "*Emacs Mail Setup Help*" t)
> > - (insert "\
> > + (insert (substitute-command-keys "\
> > Emacs is about to send an email message, but it has not been
> > configured for sending email. To tell Emacs how to send email:
> >
> > - - Type `"
> > + - Type `")
> > (propertize "mail client" 'face 'bold)
> > - "' to start your default email client and
> > - pass it the message text.\n\n")
> > + (substitute-command-keys "\
> > +' to start your default email client and
> > + pass it the message text.\n\n"))
> > (and sendmail-program
> > (executable-find sendmail-program)
> > - (insert "\
> > - - Type `"
> > + (insert (substitute-command-keys "\
> > + - Type `")
> > (propertize "transport" 'face 'bold)
> > - "' to invoke the system's mail transport agent
> > - (the `"
> > + (substitute-command-keys "\
> > +' to invoke the system's mail transport agent
> > + (the `")
> > sendmail-program
> > - "' program).\n\n"))
> > - (insert "\
> > - - Type `"
> > + (substitute-command-keys "' program).\n\n")))
> > + (insert (substitute-command-keys "\
> > + - Type `")
> > (propertize "smtp" 'face 'bold)
> > - "' to send mail directly to an \"outgoing mail\"
> server.
> > + (substitute-command-keys "' to send mail directly to
> an \"outgoing mail\" server.
> > (Emacs may prompt you for SMTP settings).
> >
> > Emacs will record your selection and will use it thereafter.
> > - To change it later, customize the option `send-mail-function'.\n")
> > + To change it later, customize the option `send-mail-function'.\n"))
> > (goto-char (point-min))
> > (display-buffer (current-buffer))
> > (let ((completion-ignore-case t))
> > diff --git a/lisp/man.el b/lisp/man.el
> > index c5dbcba..23b2110 100644
> > --- a/lisp/man.el
> > +++ b/lisp/man.el
> > @@ -104,7 +104,7 @@
> > "Manpage cleaning filter command phrases.
> > This variable contains a list of the following form:
> >
> > -'((command-string phrase-string*)*)
> > + ((command-string phrase-string*)*)
> >
> > Each phrase-string is concatenated onto the command-string to form a
> > command filter. The (standard) output (and standard error) of the Un*x
> > diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el
> > index a8c5e33..700d22c 100644
> > --- a/lisp/mh-e/mh-comp.el
> > +++ b/lisp/mh-e/mh-comp.el
> > @@ -91,7 +91,7 @@ user's MH directory, then in the system MH lib
> directory.")
> > Default is \"replgroupcomps\".
> >
> > This file is used to form replies to the sender and all recipients of
> > -a message. Only used if ‘(mh-variant-p 'nmh)’ is non-nil.
> > +a message. Only used if (mh-variant-p \\='nmh) is non-nil.
> > If not an absolute file name, the file is searched for first in the
> > user's MH directory, then in the system MH lib directory.")
> >
> > diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el
> > index 82c7a4d..9865d08 100644
> > --- a/lisp/mh-e/mh-compat.el
> > +++ b/lisp/mh-e/mh-compat.el
> > @@ -162,7 +162,7 @@ compatibility with versions of Emacs that lack the
> variable
> >
> > (let* ((load-path (image-load-path-for-library \"mh-e\"
> \"mh-logo.xpm\"))
> > (image-load-path (cons (car load-path)
> > - (when (boundp 'image-load-path)
> > + (when (boundp \\='image-load-path)
> > image-load-path))))
> > (mh-tool-bar-folder-buttons-init))"
> > (unless library (error "No library specified"))
> > diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
> > index 22e4cd7..7cdf67c 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"))
> > @@ -1657,7 +1657,7 @@ using the Emacs 22 command \"emacsclient\" as
> follows:
> > origMode
> > polltime 10
> > headertime 0
> > - command emacsclient --eval '(mh-inc-spool-mh-e)'
> > + command emacsclient --eval \\='(mh-inc-spool-mh-e)\\='
> >
> > In XEmacs, the command \"gnuclient\" is used in a similar
> > fashion."
> > diff --git a/lisp/mh-e/mh-seq.el b/lisp/mh-e/mh-seq.el
> > index 2e73f62..259f60d 100644
> > --- a/lisp/mh-e/mh-seq.el
> > +++ b/lisp/mh-e/mh-seq.el
> > @@ -390,7 +390,7 @@ then a non-empty sequence is read."
> > "Read and return a sequence name.
> > Prompt with PROMPT, raise an error if the sequence is empty and
> > the NOT-EMPTY flag is non-nil, and supply an optional DEFAULT
> > -sequence. A reply of ‘%’ defaults to the first sequence
> > +sequence. A reply of `%' defaults to the first sequence
> > containing the current message."
> > (let* ((input (completing-read (format "%s sequence%s: " prompt
> > (if default
> > @@ -766,7 +766,7 @@ completion is over."
> > "Parse LINE to generate folder name, unseen messages and total
> messages.
> > If CURRENT-FOLDER is non-nil then it contains the current folder
> > name and it is used to avoid problems in corner cases involving
> > -folders whose names end with a ‘+’ character."
> > +folders whose names end with a `+' character."
> > (with-temp-buffer
> > (insert line)
> > (goto-char (point-max))
> > diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el
> > index 060da46..643674a 100644
> > --- a/lisp/mh-e/mh-utils.el
> > +++ b/lisp/mh-e/mh-utils.el
> > @@ -419,21 +419,21 @@ names and the function is called when OUTPUT is
> available."
> > return-nil-if-folder-empty)
> > "Normalizes FOLDER name.
> >
> > -Makes sure that two ‘/’ characters never occur next to each
> > -other. Also all occurrences of ‘..’ and ‘.’ are suitably
> > +Makes sure that two `/' characters never occur next to each
> > +other. Also all occurrences of `..' and `.' are suitably
> > processed. So \"+inbox/../news\" will be normalized to \"+news\".
> >
> > -If optional argument EMPTY-STRING-OKAY is nil then a ‘+’ is added
> > +If optional argument EMPTY-STRING-OKAY is nil then a `+' is added
> > at the front if FOLDER lacks one. If non-nil and FOLDER is the
> > empty string then nothing is added.
> >
> > If optional argument DONT-REMOVE-TRAILING-SLASH is non-nil then a
> > -trailing ‘/’ if present is retained (if present), otherwise it is
> > +trailing `/' if present is retained (if present), otherwise it is
> > removed.
> >
> > If optional argument RETURN-NIL-IF-FOLDER-EMPTY is non-nil, then
> > return nil if FOLDER is \"\" or \"+\". This is useful when
> > -normalizing the folder for the ‘folders’ command which displays
> > +normalizing the folder for the `folders' command which displays
> > the directories in / if passed \"+\". This is usually not
> > desired. If this argument is non-nil, then EMPTY-STRING-OKAY has
> > no effect."
> > diff --git a/lisp/mouse-copy.el b/lisp/mouse-copy.el
> > index d3c3c80..6198a12 100644
> > --- a/lisp/mouse-copy.el
> > +++ b/lisp/mouse-copy.el
> > @@ -154,7 +154,7 @@ If you have the bug (or the real fix :-), please let
> me know."
> > "Drag out a secondary selection, then paste it at the current point.
> >
> > To test this function, evaluate:
> > - (global-set-key [M-down-mouse-1] 'mouse-drag-secondary-pasting)
> > + (global-set-key [M-down-mouse-1]
> \\='mouse-drag-secondary-pasting)
> > put the point at one place, then click and drag over some other region."
> > (interactive "e")
> > ;; Work-around: We see and react to each part of a multi-click event
> > diff --git a/lisp/mouse-drag.el b/lisp/mouse-drag.el
> > index 945c305..2b61096 100644
> > --- a/lisp/mouse-drag.el
> > +++ b/lisp/mouse-drag.el
> > @@ -206,7 +206,7 @@ about which direction is natural. Perhaps it has to
> do with which
> > hemisphere you're in.)
> >
> > To test this function, evaluate:
> > - (global-set-key [down-mouse-2] 'mouse-drag-throw)"
> > + (global-set-key [down-mouse-2] \\='mouse-drag-throw)"
> > (interactive "e")
> > ;; we want to do save-selected-window, but that requires 19.29
> > (let* ((start-posn (event-start start-event))
> > @@ -266,7 +266,7 @@ Drag scrolling is identical to the \"hand\" option
> in MacPaint, or the
> > middle button in Tk text widgets.
> >
> > To test this function, evaluate:
> > - (global-set-key [down-mouse-2] 'mouse-drag-drag)"
> > + (global-set-key [down-mouse-2] \\='mouse-drag-drag)"
> > (interactive "e")
> > ;; we want to do save-selected-window, but that requires 19.29
> > (let* ((start-posn (event-start start-event))
> > diff --git a/lisp/mouse.el b/lisp/mouse.el
> > index f52b83b..6584733 100644
> > --- a/lisp/mouse.el
> > +++ b/lisp/mouse.el
> > @@ -146,7 +146,7 @@ items `Turn Off' and `Help'."
> > (describe-minor-mode-completion-table-for-indicator))))
> > (let* ((minor-mode (lookup-minor-mode-from-indicator indicator))
> > (mm-fun (or (get minor-mode :minor-mode-function) minor-mode)))
> > - (unless minor-mode (error "Cannot find minor mode for ‘%s’"
> indicator))
> > + (unless minor-mode (error "Cannot find minor mode for `%s'"
> indicator))
> > (let* ((map (cdr-safe (assq minor-mode minor-mode-map-alist)))
> > (menu (and (keymapp map) (lookup-key map [menu-bar]))))
> > (setq menu
> > diff --git a/lisp/mpc.el b/lisp/mpc.el
> > index 59581f3..b7c19a9 100644
> > --- a/lisp/mpc.el
> > +++ b/lisp/mpc.el
> > @@ -253,6 +253,7 @@ defaults to 6600 and HOST defaults to localhost."
> >
> > (defun mpc--proc-connect (host)
> > (let ((port 6600)
> > + local
> > pass)
> >
> > (when (string-match
> "\\`\\(?:\\(.*\\)@\\)?\\(.*?\\)\\(?::\\(.*\\)\\)?\\'"
> > @@ -267,6 +268,8 @@ defaults to 6600 and HOST defaults to localhost."
> > (if (string-match "[^[:digit:]]" v)
> > (string-to-number v)
> > v)))))
> > + (when (string-prefix-p "/" host) ;FIXME: Use
> file-name-absolute-p?
> > + (setq local t))
> >
> > (mpc--debug "Connecting to %s:%s..." host port)
> > (with-current-buffer (get-buffer-create (format " *mpc-%s:%s*" host
> port))
> > @@ -279,7 +282,10 @@ defaults to 6600 and HOST defaults to localhost."
> > (let* ((coding-system-for-read 'utf-8-unix)
> > (coding-system-for-write 'utf-8-unix)
> > (proc (condition-case err
> > - (open-network-stream "MPC" (current-buffer) host
> port)
> > + (make-network-process :name "MPC" :buffer
> (current-buffer)
> > + :host (unless local host)
> > + :service (if local host
> port)
> > + :family (if local 'local))
> > (error (user-error (error-message-string err))))))
> > (when (processp mpc-proc)
> > ;; Inherit the properties of the previous connection.
> > @@ -1751,7 +1757,7 @@ A value of t means the main playlist.")
> > (completing-read "Rename playlist: "
> > (mpc-cmd-list 'Playlist)
> > nil 'require-match)))
> > - (newname (read-string (format-message "Rename ‘%s’ to: "
> oldname))))
> > + (newname (read-string (format-message "Rename `%s' to: "
> oldname))))
> > (if (zerop (length newname))
> > (error "Aborted")
> > (list oldname newname))))
> > @@ -2630,6 +2636,8 @@ This is used so that they can be compared with
> `eq', which is needed for
> > (interactive
> > (progn
> > (if current-prefix-arg
> > + ;; FIXME: We should provide some completion here, especially
> for the
> > + ;; case where the user specifies a local socket/file name.
> > (setq mpc-host (read-string "MPD host and port: " nil nil
> mpc-host)))
> > nil))
> > (let* ((song-buf (mpc-songs-buf))
> > diff --git a/lisp/msb.el b/lisp/msb.el
> > index b717dcc..0351bda 100644
> > --- a/lisp/msb.el
> > +++ b/lisp/msb.el
> > @@ -746,7 +746,7 @@ to the buffer-list variable in FUNCTION-INFO."
> > (error (unless msb--error
> > (setq msb--error
> > (format-message
> > - "In msb-menu-cond, error for buffer ‘%s’."
> > + "In msb-menu-cond, error for buffer `%s'."
> > (buffer-name buffer)))
> > (error "%s" msb--error))))))
> >
> > diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
> > index 38b1604..bb83514 100644
> > --- a/lisp/net/ange-ftp.el
> > +++ b/lisp/net/ange-ftp.el
> > @@ -4626,7 +4626,7 @@ NEWNAME should be the name to give the new
> compressed or uncompressed file.")
> > (format "%s %s \"%s\"" ; remsh -l USER does not work
> well
> > ; on a hp-ux machine I tried
> > remote-shell-program host command))
> > - (ange-ftp-message "Remote command ‘%s’ ..." command)
> > + (ange-ftp-message "Remote command `%s' ..." command)
> > ;; Cannot call ange-ftp-real-dired-run-shell-command here as it
> > ;; would prepend "cd default-directory" --- which bombs because
> > ;; default-directory is in ange-ftp syntax for remote file names.
> > @@ -5978,7 +5978,7 @@ Other orders of $ and _ seem to all work just
> fine.")
> >
> > (defcustom ange-ftp-bs2000-special-prefix
> > "X"
> > - "Prefix used for filenames starting with ‘#’ or ‘@’."
> > + "Prefix used for filenames starting with `#' or `@'."
> > :group 'ange-ftp
> > :type 'string)
> >
> > diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
> > index 3f8cb84..757e368 100644
> > --- a/lisp/net/browse-url.el
> > +++ b/lisp/net/browse-url.el
> > @@ -439,7 +439,7 @@ For example, adding to the default a specific
> translation of an ange-ftp
> > address to an HTTP URL:
> >
> > (setq browse-url-filename-alist
> > - '((\"/webmaster@webserver:/home/www/html/\" .
> > + \\='((\"/webmaster@webserver:/home/www/html/\" .
> > \"http://www.acme.co.uk/\")
> > (\"^/\\(ftp@\\|anonymous@\\)?\\([^:]+\\):/*\" . \"ftp://
> \\2/\")
> > (\"^/\\([^:@]+@\\)?\\([^:]+\\):/*\" . \"ftp://\\1\\2/\")
> > diff --git a/lisp/net/imap.el b/lisp/net/imap.el
> > index cc53e04..b559ff6 100644
> > --- a/lisp/net/imap.el
> > +++ b/lisp/net/imap.el
> > @@ -851,14 +851,14 @@ t if it successfully authenticates, nil otherwise."
> > (setq user (or imap-username
> > (read-from-minibuffer
> > (format-message
> > - "imap: username for %s (using stream ‘%s’): "
> > + "imap: username for %s (using stream `%s'): "
> > imap-server imap-stream)
> > (or user imap-default-user))))
> > (setq passwd
> > (or imap-password
> > (read-passwd
> > (format-message
> > - "imap: password for %s@%s (using authenticator
> ‘%s’): "
> > + "imap: password for %s@%s (using authenticator
> `%s'): "
> > user imap-server imap-auth))))
> > (when (and user passwd)
> > (if (funcall loginfunc user passwd)
> > diff --git a/lisp/net/mairix.el b/lisp/net/mairix.el
> > index 8a9236c..a73b4df 100644
> > --- a/lisp/net/mairix.el
> > +++ b/lisp/net/mairix.el
> > @@ -398,7 +398,7 @@ Overwrite existing entry? ")
> > (concat "\n\n" (make-string 65 ?=)
> > "\nYou can now customize your saved Mairix searches by modifying\n\
> > the variable mairix-saved-searches. Don't forget to save your\nchanges \
> > -in your .emacs by pressing ‘Save for Future Sessions’.\n"
> > +in your .emacs by pressing `Save for Future Sessions'.\n"
> > (make-string 65 ?=) "\n")))
> >
> > (autoload 'mail-strip-quoted-names "mail-utils")
> > @@ -668,7 +668,7 @@ Fill in VALUES if based on an article."
> > " ^substring= to match the substring at the beginning
> of a word.\n"))
> > (widget-insert
> > (format-message
> > - "Whitespace will be converted to ‘,’ (i.e. AND). Use ‘/’ for
> OR.\n\n"))
> > + "Whitespace will be converted to `,' (i.e. AND). Use `/' for
> OR.\n\n"))
> > (setq mairix-widgets (mairix-widget-build-editable-fields values))
> > (when (member 'flags mairix-widget-other)
> > (widget-insert "\nFlags:\n Seen: ")
> > diff --git a/lisp/net/newst-backend.el b/lisp/net/newst-backend.el
> > index 9277b09..6c80e62 100644
> > --- a/lisp/net/newst-backend.el
> > +++ b/lisp/net/newst-backend.el
> > @@ -848,8 +848,8 @@ Argument BUFFER is the buffer of the retrieval
> process."
> > newsticker--error-headline
> > (format-message
> > (concat "%s: Newsticker could not retrieve news from
> %s.\n"
> > - "Return status: ‘%s’\n"
> > - "Command was ‘%s’")
> > + "Return status: `%s'\n"
> > + "Command was `%s'")
> > (format-time-string "%A, %H:%M")
> > feed-name event command)
> > ""
> > diff --git a/lisp/net/newst-treeview.el b/lisp/net/newst-treeview.el
> > index ef8507e..4eef580 100644
> > --- a/lisp/net/newst-treeview.el
> > +++ b/lisp/net/newst-treeview.el
> > @@ -1269,7 +1269,7 @@ Note: does not update the layout."
> > (file-exists-p newsticker-groups-filename)
> > (y-or-n-p
> > (format-message
> > - (concat "Obsolete variable
> ‘newsticker-groups-filename’ "
> > + (concat "Obsolete variable
> `newsticker-groups-filename' "
> > "points to existing file \"%s\".\n"
> > "Read it? ")
> > newsticker-groups-filename))
> > @@ -1281,7 +1281,7 @@ Note: does not update the layout."
> > (file-exists-p newsticker-groups-filename)
> > (y-or-n-p (format-message
> > (concat "Delete the file \"%s\",\nto which the
> obsolete "
> > - "variable ‘newsticker-groups-filename’
> points ? ")
> > + "variable `newsticker-groups-filename'
> points ? ")
> > newsticker-groups-filename))
> > (delete-file newsticker-groups-filename))
> > (when buf
> > diff --git a/lisp/net/ntlm.el b/lisp/net/ntlm.el
> > index 5f02e29..ff7e79e 100644
> > --- a/lisp/net/ntlm.el
> > +++ b/lisp/net/ntlm.el
> > @@ -3,8 +3,9 @@
> > ;; Copyright (C) 2001, 2007-2015 Free Software Foundation, Inc.
> >
> > ;; Author: Taro Kawagishi <tarok@transpulse.org>
> > -;; Keywords: NTLM, SASL
> > -;; Version: 1.00
> > +;; Maintainer: Thomas Fitzsimmons <fitzsim@fitzsim.org>
> > +;; Keywords: NTLM, SASL, comm
> > +;; Version: 2.00
> > ;; Created: February 2001
> >
> > ;; This file is part of GNU Emacs.
> > @@ -65,6 +66,27 @@
> > ;;; Code:
> >
> > (require 'md4)
> > +(require 'hmac-md5)
> > +(require 'calc)
> > +
> > +(defgroup ntlm nil
> > + "NTLM (NT LanManager) authentication."
> > + :version "25.1"
> > + :group 'comm)
> > +
> > +(defcustom ntlm-compatibility-level 5
> > + "The NTLM compatibility level.
> > +Ordered from 0, the oldest, least-secure level through 5, the
> > +newest, most-secure level. Newer servers may reject lower
> > +levels. At levels 3 through 5, send LMv2 and NTLMv2 responses.
> > +At levels 0, 1 and 2, send LM and NTLM responses.
> > +
> > +In this implementation, levels 0, 1 and 2 are the same (old,
> > +insecure), and levels 3, 4 and 5 are the same (new, secure). If
> > +NTLM authentication isn't working at level 5, try level 0. The
> > +other levels are only present because other clients have six
> > +levels."
> > + :type '(choice (const 0) (const 1) (const 2) (const 3) (const 4)
> (const 5)))
> >
> > ;;;
> > ;;; NTLM authentication interface functions
> > @@ -112,6 +134,39 @@ is not given."
> > `(string-as-unibyte ,string)
> > string)))
> >
> > +(defun ntlm-compute-timestamp ()
> > + "Compute an NTLMv2 timestamp.
> > +Return a unibyte string representing the number of tenths of a
> > +microsecond since January 1, 1601 as a 64-bit little-endian
> > +signed integer."
> > + (let* ((s-to-tenths-of-us "mul(add(lsh($1,16),$2),10000000)")
> > + (us-to-tenths-of-us "mul($3,10)")
> > + (ps-to-tenths-of-us "idiv($4,100000)")
> > + (tenths-of-us-since-jan-1-1601
> > + (apply 'calc-eval (concat "add(add(add("
> > + s-to-tenths-of-us ","
> > + us-to-tenths-of-us "),"
> > + ps-to-tenths-of-us "),"
> > + ;; tenths of microseconds between
> > + ;; 1601-01-01 and 1970-01-01
> > + "116444736000000000)")
> > + ;; add trailing zeros to support old current-time
> formats
> > + 'rawnum (append (current-time) '(0 0))))
> > + result-bytes)
> > + (dotimes (byte 8)
> > + (push (calc-eval "and($1,16#FF)" 'rawnum
> tenths-of-us-since-jan-1-1601)
> > + result-bytes)
> > + (setq tenths-of-us-since-jan-1-1601
> > + (calc-eval "rsh($1,8,64)" 'rawnum
> tenths-of-us-since-jan-1-1601)))
> > + (apply 'unibyte-string (nreverse result-bytes))))
> > +
> > +(defun ntlm-generate-nonce ()
> > + "Generate a random nonce, not to be used more than once.
> > +Return a random eight byte unibyte string."
> > + (unibyte-string
> > + (random 256) (random 256) (random 256) (random 256)
> > + (random 256) (random 256) (random 256) (random 256)))
> > +
> > (defun ntlm-build-auth-response (challenge user password-hashes)
> > "Return the response string to a challenge string CHALLENGE given by
> > the NTLM based server for the user USER and the password hash list
> > @@ -128,9 +183,9 @@ by PASSWORD-HASHES. PASSWORD-HASHES should be a
> return value of
> > uDomain-len uDomain-offs
> > ;; response struct and its fields
> > lmRespData ;lmRespData, 24 bytes
> > - ntRespData ;ntRespData, 24 bytes
> > + ntRespData ;ntRespData, variable length
> > domain ;ascii domain string
> > - lu ld off-lm off-nt off-d off-u off-w off-s)
> > + lu ld ln off-lm off-nt off-d off-u off-w off-s)
> > ;; extract domain string from challenge string
> > (setq uDomain-len (md4-unpack-int16 (substring uDomain 0 2)))
> > (setq uDomain-offs (md4-unpack-int32 (substring uDomain 4 8)))
> > @@ -144,30 +199,63 @@ by PASSWORD-HASHES. PASSWORD-HASHES should be a
> return value of
> > (setq domain (substring user (1+ (match-beginning 0))))
> > (setq user (substring user 0 (match-beginning 0))))
> >
> > - ;; check if "negotiate NTLM2 key" flag is set in type 2 message
> > - (if (not (zerop (logand (aref flags 2) 8)))
> > - (let (randomString
> > - sessionHash)
> > - ;; generate NTLM2 session response data
> > - (setq randomString (string-make-unibyte
> > - (concat
> > - (make-string 1 (random 256))
> > - (make-string 1 (random 256))
> > - (make-string 1 (random 256))
> > - (make-string 1 (random 256))
> > - (make-string 1 (random 256))
> > - (make-string 1 (random 256))
> > - (make-string 1 (random 256))
> > - (make-string 1 (random 256)))))
> > - (setq sessionHash (secure-hash 'md5
> > - (concat challengeData
> randomString)
> > - nil nil t))
> > - (setq sessionHash (substring sessionHash 0 8))
> > -
> > - (setq lmRespData (concat randomString (make-string 16 0)))
> > - (setq ntRespData (ntlm-smb-owf-encrypt
> > - (cadr password-hashes) sessionHash)))
> > - (progn
> > + (unless (and (integerp ntlm-compatibility-level)
> > + (>= ntlm-compatibility-level 0)
> > + (<= ntlm-compatibility-level 5))
> > + (error "Invalid ntlm-compatibility-level value"))
> > + (if (and (>= ntlm-compatibility-level 3)
> > + (<= ntlm-compatibility-level 5))
> > + ;; extract target information block, if it is present
> > + (if (< (cdr uDomain-offs) 48)
> > + (error "Failed to find target information block")
> > + (let* ((targetInfo-len (md4-unpack-int16 (substring rchallenge
> > + 40 42)))
> > + (targetInfo-offs (md4-unpack-int32 (substring rchallenge
> > + 44 48)))
> > + (targetInfo (substring rchallenge
> > + (cdr targetInfo-offs)
> > + (+ (cdr targetInfo-offs)
> > + targetInfo-len)))
> > + (upcase-user (upcase (ntlm-ascii2unicode user (length
> user))))
> > + (ntlmv2-hash (hmac-md5 (concat upcase-user
> > + (ntlm-ascii2unicode
> > + domain (length domain)))
> > + (cadr password-hashes)))
> > + (nonce (ntlm-generate-nonce))
> > + (blob (concat (make-string 2 1)
> > + (make-string 2 0) ; blob signature
> > + (make-string 4 0) ; reserved value
> > + (ntlm-compute-timestamp) ; timestamp
> > + nonce ; client nonce
> > + (make-string 4 0) ; unknown
> > + targetInfo ; target info
> > + (make-string 4 0))) ; unknown
> > + ;; for reference: LMv2 interim calculation
> > + ;; (lm-interim (hmac-md5 (concat challengeData nonce)
> > + ;; ntlmv2-hash))
> > + (nt-interim (hmac-md5 (concat challengeData blob)
> > + ntlmv2-hash)))
> > + ;; for reference: LMv2 field, but match other clients that
> > + ;; send all zeros
> > + ;; (setq lmRespData (concat lm-interim nonce))
> > + (setq lmRespData (make-string 24 0))
> > + (setq ntRespData (concat nt-interim blob))))
> > + ;; compatibility level is 2, 1 or 0
> > + ;; level 2 should be treated specially but it's not clear how,
> > + ;; so just treat it the same as levels 0 and 1
> > + ;; check if "negotiate NTLM2 key" flag is set in type 2 message
> > + (if (not (zerop (logand (aref flags 2) 8)))
> > + (let (randomString
> > + sessionHash)
> > + ;; generate NTLM2 session response data
> > + (setq randomString (ntlm-generate-nonce))
> > + (setq sessionHash (secure-hash 'md5
> > + (concat challengeData
> randomString)
> > + nil nil t))
> > + (setq sessionHash (substring sessionHash 0 8))
> > + (setq lmRespData (concat randomString (make-string 16 0)))
> > + (setq ntRespData (ntlm-smb-owf-encrypt
> > + (cadr password-hashes) sessionHash)))
> > ;; generate response data
> > (setq lmRespData
> > (ntlm-smb-owf-encrypt (car password-hashes) challengeData))
> > @@ -177,12 +265,13 @@ by PASSWORD-HASHES. PASSWORD-HASHES should be a
> return value of
> > ;; get offsets to fields to pack the response struct in a string
> > (setq lu (length user))
> > (setq ld (length domain))
> > + (setq ln (length ntRespData))
> > (setq off-lm 64) ;offset to string 'lmResponse
> > (setq off-nt (+ 64 24)) ;offset to string 'ntResponse
> > - (setq off-d (+ 64 48)) ;offset to string 'uDomain
> > - (setq off-u (+ 64 48 (* 2 ld))) ;offset to string 'uUser
> > - (setq off-w (+ 64 48 (* 2 (+ ld lu)))) ;offset to string 'uWks
> > - (setq off-s (+ 64 48 (* 2 (+ ld lu lu)))) ;offset to string
> 'sessionKey
> > + (setq off-d (+ 64 24 ln)) ;offset to string 'uDomain
> > + (setq off-u (+ 64 24 ln (* 2 ld))) ;offset to string 'uUser
> > + (setq off-w (+ 64 24 ln (* 2 (+ ld lu)))) ;offset to string 'uWks
> > + (setq off-s (+ 64 24 ln (* 2 (+ ld lu lu)))) ;offset to string
> 'sessionKey
> > ;; pack the response struct in a string
> > (concat "NTLMSSP\0" ;response ident field, 8
> bytes
> > (md4-pack-int32 '(0 . 3)) ;response msgType field, 4 bytes
> > @@ -194,9 +283,9 @@ by PASSWORD-HASHES. PASSWORD-HASHES should be a
> return value of
> > (md4-pack-int32 (cons 0 off-lm)) ;field offset
> >
> > ;; ntResponse field, 8 bytes
> > - ;;AddBytes(response,ntResponse,ntRespData,24);
> > - (md4-pack-int16 24) ;len field
> > - (md4-pack-int16 24) ;maxlen field
> > + ;;AddBytes(response,ntResponse,ntRespData,ln);
> > + (md4-pack-int16 ln) ;len field
> > + (md4-pack-int16 ln) ;maxlen field
> > (md4-pack-int32 (cons 0 off-nt)) ;field offset
> >
> > ;; uDomain field, 8 bytes
> > diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
> > index cd5bbbd..df06350 100644
> > --- a/lisp/net/rcirc.el
> > +++ b/lisp/net/rcirc.el
> > @@ -926,7 +926,7 @@ The list is updated automatically by
> `defun-rcirc-command'.")
> >
> > (defun rcirc-complete ()
> > "Cycle through completions from list of nicks in channel or IRC
> commands.
> > -IRC command completion is performed only if ‘/’ is the first input
> char."
> > +IRC command completion is performed only if `/' is the first input
> char."
> > (interactive)
> > (unless (rcirc-looking-at-input)
> > (error "Point not located after rcirc prompt"))
> > diff --git a/lisp/net/rlogin.el b/lisp/net/rlogin.el
> > index c0dcc23..da46ec3 100644
> > --- a/lisp/net/rlogin.el
> > +++ b/lisp/net/rlogin.el
> > @@ -175,7 +175,7 @@ function `rlogin-directory-tracking-mode' rather
> than simply setting the
> > variable."
> > (interactive (list
> > (read-from-minibuffer (format-message
> > - "Arguments for ‘%s’ (hostname
> first): "
> > + "Arguments for `%s' (hostname
> first): "
> > (file-name-nondirectory
> rlogin-program))
> > nil nil nil 'rlogin-history)
> > current-prefix-arg))
> > diff --git a/lisp/net/soap-client.el b/lisp/net/soap-client.el
> > index a05108d..ada2767 100644
> > --- a/lisp/net/soap-client.el
> > +++ b/lisp/net/soap-client.el
> > @@ -489,7 +489,7 @@ structure predicate for the type of element you want
> to retrieve.
> > For example, to retrieve a message named \"foo\" when other
> > elements named \"foo\" exist in the WSDL you could use:
> >
> > - (soap-wsdl-get \"foo\" WSDL 'soap-message-p)
> > + (soap-wsdl-get \"foo\" WSDL \\='soap-message-p)
> >
> > If USE-LOCAL-ALIAS-TABLE is not nil, `soap-local-xmlns' will be
> > used to resolve the namespace alias."
> > diff --git a/lisp/net/tls.el b/lisp/net/tls.el
> > index 544aec5..48e6a42 100644
> > --- a/lisp/net/tls.el
> > +++ b/lisp/net/tls.el
> > @@ -137,7 +137,7 @@ the external program knows about the root
> certificates you
> > consider trustworthy, e.g.:
> >
> > \(setq tls-program
> > - '(\"gnutls-cli --x509cafile /etc/ssl/certs/ca-certificates.crt -p
> %p %h\"
> > + \\='(\"gnutls-cli --x509cafile /etc/ssl/certs/ca-certificates.crt
> -p %p %h\"
> > \"gnutls-cli --x509cafile /etc/ssl/certs/ca-certificates.crt -p
> %p %h --protocols ssl3\"
> > \"openssl s_client -connect %h:%p -CAfile
> /etc/ssl/certs/ca-certificates.crt -no_ssl2 -ign_eof\"))"
> > :type '(choice (const :tag "Always" t)
> > diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
> > index 6cec3c5..0969048 100644
> > --- a/lisp/net/tramp.el
> > +++ b/lisp/net/tramp.el
> > @@ -972,14 +972,14 @@ checked via the following code:
> > (erase-buffer)
> > (let ((proc (start-process (buffer-name) (current-buffer)
> > \"ssh\" \"-l\" user host \"wc\"
> \"-c\")))
> > - (when (memq (process-status proc) '(run open))
> > + (when (memq (process-status proc) \\='(run open))
> > (process-send-string proc (make-string sent ?\\ ))
> > (process-send-eof proc)
> > (process-send-eof proc))
> > (while (not (progn (goto-char (point-min))
> > (re-search-forward \"\\\\w+\" (point-max)
> t)))
> > (accept-process-output proc 1))
> > - (when (memq (process-status proc) '(run open))
> > + (when (memq (process-status proc) \\='(run open))
> > (setq received (string-to-number (match-string 0)))
> > (delete-process proc)
> > (message \"Bytes sent: %s\\tBytes received: %s\" sent
> received)
> > @@ -3615,7 +3615,7 @@ This is needed in order to hide
> `last-coding-system-used', which is set
> > for process communication also."
> > (with-current-buffer (process-buffer proc)
> > ;; FIXME: If there is a gateway process, we need communication
> > - ;; between several processes. Too complicate to implement, so we
> > + ;; between several processes. Too complicated to implement, so we
> > ;; read output from all processes.
> > (let ((p (if (tramp-get-connection-property proc "gateway" nil) nil
> proc))
> > buffer-read-only last-coding-system-used)
> > diff --git a/lisp/obsolete/fast-lock.el b/lisp/obsolete/fast-lock.el
> > index 0f57dfd..7e3dd66 100644
> > --- a/lisp/obsolete/fast-lock.el
> > +++ b/lisp/obsolete/fast-lock.el
> > @@ -336,7 +336,7 @@ If nil, means information for all faces will be
> saved.")
> > With arg, turn Fast Lock mode on if and only if arg is positive and the
> buffer
> > is associated with a file. Enable it automatically in your `~/.emacs'
> by:
> >
> > - (setq font-lock-support-mode 'fast-lock-mode)
> > + (setq font-lock-support-mode \\='fast-lock-mode)
> >
> > If Fast Lock mode is enabled, and the current buffer does not contain
> any text
> > properties, any associated Font Lock cache is used if its timestamp
> matches the
> > @@ -538,7 +538,7 @@ If the same file has different cache file names when
> edited on different
> > machines, e.g., on one machine the cache file name has the prefix
> `#home',
> > perhaps due to automount, try putting in your `~/.emacs' something like:
> >
> > - (setq directory-abbrev-alist (cons '(\"^/home/\" . \"/\")
> directory-abbrev-alist))
> > + (setq directory-abbrev-alist (cons \\='(\"^/home/\" . \"/\")
> directory-abbrev-alist))
> >
> > Emacs automagically removes the common `/tmp_mnt' automount prefix by
> default.
> >
> > diff --git a/lisp/obsolete/iswitchb.el b/lisp/obsolete/iswitchb.el
> > index 61f9d7f..4121e65 100644
> > --- a/lisp/obsolete/iswitchb.el
> > +++ b/lisp/obsolete/iswitchb.el
> > @@ -1096,7 +1096,7 @@ Return the modified list with the last element
> prepended to it."
> > (and iswitchb-prompt-newbuffer
> > (y-or-n-p
> > (format-message
> > - "No buffer matching ‘%s’, create one? "
> > + "No buffer matching `%s', create one? "
> > buf)))))
> > ;; then create a new buffer
> > (progn
> > diff --git a/lisp/obsolete/landmark.el b/lisp/obsolete/landmark.el
> > index 39684a7..91c3387 100644
> > --- a/lisp/obsolete/landmark.el
> > +++ b/lisp/obsolete/landmark.el
> > @@ -866,7 +866,7 @@ If the game is finished, this command requests for
> another game."
> > (move-to-column (+ landmark-x-offset (* landmark-square-width (1-
> x)))))
> >
> > (defun landmark-plot-square (square value)
> > - "Draw ‘X’, ‘O’ or ‘.’ on SQUARE depending on VALUE, leave point
> there."
> > + "Draw `X', `O' or `.' on SQUARE depending on VALUE, leave point
> there."
> > (or (= value 1)
> > (landmark-goto-square square))
> > (let ((inhibit-read-only t))
> > diff --git a/lisp/obsolete/lazy-lock.el b/lisp/obsolete/lazy-lock.el
> > index 885a11f..79afd80 100644
> > --- a/lisp/obsolete/lazy-lock.el
> > +++ b/lisp/obsolete/lazy-lock.el
> > @@ -466,7 +466,7 @@ See also `lazy-lock-stealth-load'."
> > With arg, turn Lazy Lock mode on if and only if arg is positive.
> Enable it
> > automatically in your `~/.emacs' by:
> >
> > - (setq font-lock-support-mode 'lazy-lock-mode)
> > + (setq font-lock-support-mode \\='lazy-lock-mode)
> >
> > For a newer font-lock support mode with similar functionality, see
> > `jit-lock-mode'. Eventually, Lazy Lock mode will be deprecated in
> > diff --git a/lisp/obsolete/otodo-mode.el b/lisp/obsolete/otodo-mode.el
> > index be067f8..1e9f7e4 100644
> > --- a/lisp/obsolete/otodo-mode.el
> > +++ b/lisp/obsolete/otodo-mode.el
> > @@ -648,7 +648,7 @@ If point is on an empty line, insert the entry
> there."
> > (forward-line (1- todo-previous-line))
> > (let ((item (todo-item-string-start)))
> > (setq todo-previous-answer
> > - (y-or-n-p (format-message "More important than ‘%s’? "
> item)))))
> > + (y-or-n-p (format-message "More important than `%s'? "
> item)))))
> > todo-previous-answer)
> > (defalias 'todo-ask-p 'todo-more-important-p)
> >
> > diff --git a/lisp/obsolete/pgg-gpg.el b/lisp/obsolete/pgg-gpg.el
> > index cd29c61..f3d63eb 100644
> > --- a/lisp/obsolete/pgg-gpg.el
> > +++ b/lisp/obsolete/pgg-gpg.el
> > @@ -122,7 +122,7 @@
> > (insert-file-contents output-file-name)))
> > (set-buffer errors-buffer)
> > (if (memq status '(stop signal))
> > - (error "%s exited abnormally: ‘%s’" program exit-status))
> > + (error "%s exited abnormally: `%s'" program exit-status))
> > (if (= 127 exit-status)
> > (error "%s could not be found" program))))
> > (if passphrase-with-newline
> > diff --git a/lisp/obsolete/pgg-pgp.el b/lisp/obsolete/pgg-pgp.el
> > index ee7af04..af2d7a8 100644
> > --- a/lisp/obsolete/pgg-pgp.el
> > +++ b/lisp/obsolete/pgg-pgp.el
> > @@ -99,7 +99,7 @@ Bourne shell or its equivalent \(not tcsh) is needed
> for \"2>\"."
> > (pgg-convert-lbt-region (point-min)(point-max) 'LF)
> >
> > (if (memq status '(stop signal))
> > - (error "%s exited abnormally: ‘%s’" program exit-status))
> > + (error "%s exited abnormally: `%s'" program exit-status))
> > (if (= 127 exit-status)
> > (error "%s could not be found" program))
> >
> > diff --git a/lisp/obsolete/pgg-pgp5.el b/lisp/obsolete/pgg-pgp5.el
> > index d87c6fd..bbc08c4 100644
> > --- a/lisp/obsolete/pgg-pgp5.el
> > +++ b/lisp/obsolete/pgg-pgp5.el
> > @@ -115,7 +115,7 @@ Bourne shell or its equivalent \(not tcsh) is needed
> for \"2>\"."
> > (pgg-convert-lbt-region (point-min)(point-max) 'LF)
> >
> > (if (memq status '(stop signal))
> > - (error "%s exited abnormally: ‘%s’" program exit-status))
> > + (error "%s exited abnormally: `%s'" program exit-status))
> > (if (= 127 exit-status)
> > (error "%s could not be found" program))
> >
> > diff --git a/lisp/obsolete/sym-comp.el b/lisp/obsolete/sym-comp.el
> > index c633bd5..ac67963 100644
> > --- a/lisp/obsolete/sym-comp.el
> > +++ b/lisp/obsolete/sym-comp.el
> > @@ -165,9 +165,9 @@ Uses `symbol-completion-symbol-function' and
> > used something like this in a major mode which provides symbol
> > completion:
> >
> > - (if (featurep 'hippie-exp)
> > - (set (make-local-variable 'hippie-expand-try-functions-list)
> > - (cons 'symbol-completion-try-complete
> > + (if (featurep \\='hippie-exp)
> > + (set (make-local-variable \\='hippie-expand-try-functions-list)
> > + (cons \\='symbol-completion-try-complete
> > hippie-expand-try-functions-list)))"
> > (when (and symbol-completion-symbol-function
> > symbol-completion-completions-function)
> > diff --git a/lisp/obsolete/tpu-edt.el b/lisp/obsolete/tpu-edt.el
> > index adf6122..d16cd27 100644
> > --- a/lisp/obsolete/tpu-edt.el
> > +++ b/lisp/obsolete/tpu-edt.el
> > @@ -873,7 +873,7 @@ With argument, fill and justify."
> > (set-frame-width (selected-frame) width))
> >
> > (defun tpu-toggle-newline-and-indent nil
> > - "Toggle between ‘newline and indent’ and ‘simple newline’."
> > + "Toggle between `newline-and-indent' and simple `newline'."
> > (interactive)
> > (cond (tpu-newline-and-indent-p
> > (setq tpu-newline-and-indent-string "")
> > @@ -1313,7 +1313,7 @@ kill modified buffers without asking."
> > (if tpu-regexp-p "en" "dis"))))
> >
> > (defun tpu-regexp-prompt (prompt)
> > - "Read a string, adding ‘RE ’ to the prompt if tpu-regexp-p is set."
> > + "Read a string, adding `RE ' to the prompt if tpu-regexp-p is set."
> > (let ((re-prompt (concat (if tpu-regexp-p "RE ") prompt)))
> > (read-from-minibuffer re-prompt nil nil nil
> 'tpu-regexp-prompt-hist)))
> >
> > diff --git a/lisp/obsolete/vi.el b/lisp/obsolete/vi.el
> > index 2375eb5..081b229 100644
> > --- a/lisp/obsolete/vi.el
> > +++ b/lisp/obsolete/vi.el
> > @@ -832,7 +832,7 @@ Possible prefix-arg cases are nil, INTEGER, (nil .
> CHAR) or (INTEGER . CHAR)."
> >
> > (defun vi-goto-mark (mark-char &optional line-flag)
> > "Go to marked position or line (if line-flag is given).
> > -Goto mark ‘@’ means jump into and pop the top mark on the mark ring."
> > +Goto mark `@' means jump into and pop the top mark on the mark ring."
> > (cond ((char-equal mark-char last-command-event) ; `` or ''
> > (exchange-point-and-mark) (if line-flag (back-to-indentation)))
> > ((char-equal mark-char ?@) ; jump and pop mark
> > diff --git a/lisp/org/ob-core.el b/lisp/org/ob-core.el
> > index ffc7df4..799e58b 100644
> > --- a/lisp/org/ob-core.el
> > +++ b/lisp/org/ob-core.el
> > @@ -1677,7 +1677,7 @@ If the point is not on a source block then return
> nil."
> > (if point
> > ;; taken from `org-open-at-point'
> > (progn (org-mark-ring-push) (goto-char point)
> (org-show-context))
> > - (message "source-code block ‘%s’ not found in this buffer"
> name))))
> > + (message "source-code block `%s' not found in this buffer"
> name))))
> >
> > (defun org-babel-find-named-block (name)
> > "Find a named source-code block.
> > @@ -1712,7 +1712,7 @@ org-babel-named-src-block-regexp."
> > (if point
> > ;; taken from `org-open-at-point'
> > (progn (goto-char point) (org-show-context))
> > - (message "result ‘%s’ not found in this buffer" name))))
> > + (message "result `%s' not found in this buffer" name))))
> >
> > (defun org-babel-find-named-result (name &optional point)
> > "Find a named result.
> > @@ -2207,7 +2207,7 @@ file's directory then expand relative links."
> > "Make true to capitalize begin/end example markers inserted by code
> blocks.")
> >
> > (defun org-babel-examplize-region (beg end &optional results-switches)
> > - "Comment out region using the inline ‘==’ or ‘: ’ org example quote."
> > + "Comment out region using the inline `==' or `: ' org example quote."
> > (interactive "*r")
> > (let ((chars-between (lambda (b e)
> > (not (string-match "^[\\s]*$" (buffer-substring
> b e)))))
> > diff --git a/lisp/org/ob-fortran.el b/lisp/org/ob-fortran.el
> > index 0e6eb4f..aab7859 100644
> > --- a/lisp/org/ob-fortran.el
> > +++ b/lisp/org/ob-fortran.el
> > @@ -108,7 +108,7 @@ it's header arguments."
> > "Wrap body in a \"program ... end program\" block if none exists."
> > (if (string-match "^[ \t]*program[ \t]*.*" (capitalize body))
> > (let ((vars (mapcar #'cdr (org-babel-get-header params :var))))
> > - (if vars (error "Cannot use :vars if ‘program’ statement is
> present"))
> > + (if vars (error "Cannot use :vars if `program' statement is
> present"))
> > body)
> > (format "program main\n%s\nend program main\n" body)))
> >
> > diff --git a/lisp/org/ob-python.el b/lisp/org/ob-python.el
> > index 4abe7af..eb74f93 100644
> > --- a/lisp/org/ob-python.el
> > +++ b/lisp/org/ob-python.el
> > @@ -64,7 +64,7 @@ This will typically be either 'python or 'python-mode."
> > :type 'string)
> >
> > (defcustom org-babel-python-None-to 'hline
> > - "Replace ‘None’ in python tables with this before returning."
> > + "Replace `None' in python tables with this before returning."
> > :group 'org-babel
> > :version "24.4"
> > :package-version '(Org . "8.0")
> > diff --git a/lisp/org/ob-ref.el b/lisp/org/ob-ref.el
> > index 472d3e6..3e79592 100644
> > --- a/lisp/org/ob-ref.el
> > +++ b/lisp/org/ob-ref.el
> > @@ -176,7 +176,7 @@ the variable."
> > ;; buffer (marker-buffer id-loc)
> > ;; loc (marker-position id-loc))
> > ;; (move-marker id-loc nil)
> > - (error "Reference ‘%s’ not found in this buffer" ref))
> > + (error "Reference `%s' not found in this buffer" ref))
> > (cond
> > (lob-info (setq type 'lob))
> > (id (setq type 'id))
> > diff --git a/lisp/org/ob-scheme.el b/lisp/org/ob-scheme.el
> > index 419b9a6..7d8e23f 100644
> > --- a/lisp/org/ob-scheme.el
> > +++ b/lisp/org/ob-scheme.el
> > @@ -109,7 +109,7 @@ For a named session, the buffer name will be the
> session name.
> >
> > If the session is unnamed (nil), generate a name.
> >
> > -If the session is ‘none’, use nil for the session name, and
> > +If the session is `none', use nil for the session name, and
> > org-babel-scheme-execute-with-geiser will use a temporary session."
> > (let ((result
> > (cond ((not name)
> > diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
> > index 3a87f6b..ae5a252 100644
> > --- a/lisp/org/org-agenda.el
> > +++ b/lisp/org/org-agenda.el
> > @@ -497,7 +497,7 @@ are prefix commands. For the dispatcher to display
> useful information, you
> > should provide a description for the prefix, like
> >
> > (setq org-agenda-custom-commands
> > - '((\"h\" . \"HOME + Name tag searches\") ; describe prefix \"h\"
> > + \\='((\"h\" . \"HOME + Name tag searches\") ; describe prefix \"h\"
> > (\"hl\" tags \"+HOME+Lisa\")
> > (\"hp\" tags \"+HOME+Peter\")
> > (\"hk\" tags \"+HOME+Kim\")))"
> > @@ -1211,7 +1211,7 @@ For example, 9:30am would become 09:30 rather
> than 9:30."
> > :type 'boolean)
> >
> > (defun org-agenda-time-of-day-to-ampm (time)
> > - "Convert TIME of a string like ‘13:45’ to an AM/PM style time string."
> > + "Convert TIME of a string like `13:45' to an AM/PM style time string."
> > (let* ((hour-number (string-to-number (substring time 0 -3)))
> > (minute (substring time -2))
> > (ampm "am"))
> > @@ -1932,7 +1932,7 @@ list as second element:
> > For example, to display a 16px horizontal space for Emacs
> > category, you can use:
> >
> > - (\"Emacs\" '(space . (:width (16))))"
> > + (\"Emacs\" \\='(space . (:width (16))))"
> > :group 'org-agenda-line-format
> > :version "24.1"
> > :type '(alist :key-type (string :tag "Regexp matching category")
> > @@ -1975,7 +1975,7 @@ estimate."
> > :type 'boolean)
> >
> > (defcustom org-agenda-auto-exclude-function nil
> > - "A function called with a tag to decide if it is filtered on ‘/ RET’.
> > + "A function called with a tag to decide if it is filtered on `/ RET'.
> > The sole argument to the function, which is called once for each
> > possible tag, is a string giving the name of the tag. The
> > function should return either nil if the tag should be included
> > @@ -2538,7 +2538,7 @@ For example, if you have a custom agenda command
> \"p\" and you
> > want this command to be accessible only from plain text files,
> > use this:
> >
> > - '((\"p\" ((in-file . \"\\.txt\"))))
> > + \\='((\"p\" ((in-file . \"\\.txt\"))))
> >
> > Here are the available contexts definitions:
> >
> > @@ -2556,7 +2556,7 @@ accessible if there is at least one valid check.
> > You can also bind a key to another agenda custom command
> > depending on contextual rules.
> >
> > - '((\"p\" \"q\" ((in-file . \"\\.txt\"))))
> > + \\='((\"p\" \"q\" ((in-file . \"\\.txt\"))))
> >
> > Here it means: in .txt files, use \"p\" as the key for the
> > agenda command otherwise associated with \"q\". (The command
> > @@ -3625,9 +3625,9 @@ FILTER-ALIST is an alist of filters we need to
> apply when
> > ;; Popup existing buffer
> > (org-agenda-prepare-window (get-buffer org-agenda-buffer-name)
> > filter-alist)
> > - (message "Sticky Agenda buffer, use ‘r’ to refresh")
> > + (message "Sticky Agenda buffer, use `r' to refresh")
> > (or org-agenda-multi (org-agenda-fit-window-to-buffer))
> > - (throw 'exit "Sticky Agenda buffer, use ‘r’ to refresh"))
> > + (throw 'exit "Sticky Agenda buffer, use `r' to refresh"))
> > (setq org-todo-keywords-for-agenda nil)
> > (setq org-drawers-for-agenda nil)
> > (put 'org-agenda-tag-filter :preset-filter
> > @@ -9596,7 +9596,7 @@ This is a command that has to be installed in
> `calendar-mode-map'."
> > "Hebrew: " (calendar-hebrew-date-string date) " (until
> sunset)\n"
> > "Islamic: " (calendar-islamic-date-string date) " (until
> sunset)\n"
> > "French: " (calendar-french-date-string date) "\n"
> > - "Baha'i: " (calendar-bahai-date-string date) " (until
> sunset)\n"
> > + "Bahá’í: " (calendar-bahai-date-string date) " (until
> sunset)\n"
> > "Mayan: " (calendar-mayan-date-string date) "\n"
> > "Coptic: " (calendar-coptic-date-string date) "\n"
> > "Ethiopic: " (calendar-ethiopic-date-string date) "\n"
> > diff --git a/lisp/org/org-bibtex.el b/lisp/org/org-bibtex.el
> > index 2eb2d12..06adc07 100644
> > --- a/lisp/org/org-bibtex.el
> > +++ b/lisp/org/org-bibtex.el
> > @@ -190,7 +190,7 @@
> > (:booktitle . "Title of a book, part of which is being cited.
> See the LaTeX book for how to type titles. For book entries, use the title
> field instead.")
> > (:chapter . "A chapter (or section or whatever) number.")
> > (:crossref . "The database key of the entry being cross
> referenced.")
> > - (:edition . "The edition of a book for example, ‘Second’.
> This should be an ordinal, and should have the first letter capitalized, as
> shown here; the standard styles convert to lower case when necessary.")
> > + (:edition . "The edition of a book for example, 'Second'.
> This should be an ordinal, and should have the first letter capitalized, as
> shown here; the standard styles convert to lower case when necessary.")
> > (:editor . "Name(s) of editor(s), typed as indicated in the
> LaTeX book. If there is also an author field, then the editor field gives
> the editor of the book or collection in which the reference appears.")
> > (:howpublished . "How something strange has been published. The
> first word should be capitalized.")
> > (:institution . "The sponsoring institution of a technical
> report.")
> > @@ -205,9 +205,9 @@
> > (:school . "The name of the school where a thesis was
> written.")
> > (:series . "The name of a series or set of books. When
> citing an entire book, the title field gives its title and an optional
> series field gives the name of a series or multi-volume set in which the
> book is published.")
> > (:title . "The work’s title, typed as explained in the LaTeX
> book.")
> > - (:type . "The type of a technical report for example,
> ‘Research Note’.")
> > + (:type . "The type of a technical report for example,
> 'Research Note'.")
> > (:volume . "The volume of a journal or multi-volume book.")
> > - (:year . "The year of publication or, for an unpublished
> work, the year it was written. Generally it should consist of four
> numerals, such as 1984, although the standard styles can handle any year
> whose last four nonpunctuation characters are numerals, such as ‘(about
> 1984)’"))
> > + (:year . "The year of publication or, for an unpublished
> work, the year it was written. Generally it should consist of four
> numerals, such as 1984, although the standard styles can handle any year
> whose last four nonpunctuation characters are numerals, such as '(about
> 1984)'"))
> > "Bibtex fields with descriptions.")
> >
> > (defvar org-bibtex-entries nil
> > @@ -221,7 +221,7 @@
> >
> > (defcustom org-bibtex-prefix nil
> > "Optional prefix for all bibtex property names.
> > -For example setting to ‘BIB_’ would allow interoperability with
> fireforg."
> > +For example setting to `BIB_' would allow interoperability with
> fireforg."
> > :group 'org-bibtex
> > :version "24.1"
> > :type '(choice
> > diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el
> > index 7b4b6ea..6a4b2ba 100644
> > --- a/lisp/org/org-capture.el
> > +++ b/lisp/org/org-capture.el
> > @@ -460,7 +460,7 @@ For example, if you have a capture template \"c\"
> and you want
> > this template to be accessible only from `message-mode' buffers,
> > use this:
> >
> > - '((\"c\" ((in-mode . \"message-mode\"))))
> > + ((\"c\" ((in-mode . \"message-mode\"))))
> >
> > Here are the available contexts definitions:
> >
> > @@ -478,7 +478,7 @@ accessible if there is at least one valid check.
> > You can also bind a key to another agenda custom command
> > depending on contextual rules.
> >
> > - '((\"c\" \"d\" ((in-mode . \"message-mode\"))))
> > + ((\"c\" \"d\" ((in-mode . \"message-mode\"))))
> >
> > Here it means: in `message-mode buffers', use \"c\" as the
> > key for the capture template otherwise associated with \"d\".
> > diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el
> > index aee91ce..9489edf 100644
> > --- a/lisp/org/org-clock.el
> > +++ b/lisp/org/org-clock.el
> > @@ -717,7 +717,7 @@ Notification is shown only once."
> > (unless org-clock-notification-was-shown
> > (setq org-clock-notification-was-shown t)
> > (org-notify
> > - (format-message "Task ‘%s’ should be finished by now. (%s)"
> > + (format-message "Task `%s' should be finished by now. (%s)"
> > org-clock-heading org-clock-effort)
> > org-clock-sound))
> > (setq org-clock-notification-was-shown nil)))))
> > @@ -948,7 +948,7 @@ k/K Keep X minutes of the idle time (default is
> all). If this
> > clocked back in at the present time.
> >
> > g/G Indicate that you “got back” X minutes ago. This is quite
> > - different from ‘k’: it clocks you out from the beginning of
> > + different from `k': it clocks you out from the beginning of
> > the idle period and clock you back in X minutes ago.
> >
> > s/S Subtract the idle time from the current clock. This is the
> > diff --git a/lisp/org/org-ctags.el b/lisp/org/org-ctags.el
> > index 75de8c2..e5435e3 100644
> > --- a/lisp/org/org-ctags.el
> > +++ b/lisp/org/org-ctags.el
> > @@ -457,7 +457,7 @@ Wrapper for
> org-ctags-rebuild-tags-file-then-find-tag."
> > (if (and (buffer-file-name)
> > (y-or-n-p
> > (format-message
> > - "Tag ‘%s’ not found. Rebuild table ‘%s/TAGS’ and look
> again?"
> > + "Tag `%s' not found. Rebuild table `%s/TAGS' and look
> again?"
> > name
> > (file-name-directory (buffer-file-name)))))
> > (org-ctags-rebuild-tags-file-then-find-tag name)
> > diff --git a/lisp/org/org-feed.el b/lisp/org/org-feed.el
> > index 22e543c..ab3c61e 100644
> > --- a/lisp/org/org-feed.el
> > +++ b/lisp/org/org-feed.el
> > @@ -691,7 +691,7 @@ formatted as a string, not the original XML data."
> > (t
> > (setq entry (plist-put entry :description
> > (format-message
> > - "Unknown ‘%s’ content." type)))))))
> > + "Unknown `%s' content." type)))))))
> > entry))
> >
> > (provide 'org-feed)
> > diff --git a/lisp/org/org-habit.el b/lisp/org/org-habit.el
> > index 7911dcf..e2be460 100644
> > --- a/lisp/org/org-habit.el
> > +++ b/lisp/org/org-habit.el
> > @@ -180,7 +180,7 @@ This list represents a \"habit\" for the rest of
> this module."
> > (error "Habit %s has no scheduled date" habit-entry))
> > (unless scheduled-repeat
> > (error
> > - "Habit ‘%s’ has no scheduled repeat period or has an incorrect
> one"
> > + "Habit `%s' has no scheduled repeat period or has an incorrect
> one"
> > habit-entry))
> > (setq sr-days (org-habit-duration-to-days scheduled-repeat))
> > (unless (> sr-days 0)
> > diff --git a/lisp/org/org-irc.el b/lisp/org/org-irc.el
> > index fc3294f..1ec69d8 100644
> > --- a/lisp/org/org-irc.el
> > +++ b/lisp/org/org-irc.el
> > @@ -108,7 +108,7 @@ attributes that are found."
> > (defun org-irc-ellipsify-description (string &optional after)
> > "Remove unnecessary white space from STRING and add ellipses if
> necessary.
> > Strip starting and ending white space from STRING and replace any
> > -chars that the value AFTER with ‘...’"
> > +chars that the value AFTER with `...'"
> > (let* ((after (number-to-string (or after 30)))
> > (replace-map (list (cons "^[ \t]*" "")
> > (cons "[ \t]*$" "")
> > diff --git a/lisp/org/org-mouse.el b/lisp/org/org-mouse.el
> > index a52c196..a1ddc5d 100644
> > --- a/lisp/org/org-mouse.el
> > +++ b/lisp/org/org-mouse.el
> > @@ -539,7 +539,7 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
> > ((stringp (nth 2 entry))
> > (concat (org-mouse-agenda-type (nth 1 entry))
> > (nth 2 entry)))
> > - (t "Agenda Command ‘%s’"))
> > + (t "Agenda Command `%s'"))
> > 30))))
> > "--"
> > ["Delete Blank Lines" delete-blank-lines
> > @@ -566,7 +566,7 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
> > (save-excursion (org-apply-on-list wrap-fun nil)))))
> >
> > (defun org-mouse-bolp ()
> > - "Return true if there only spaces, tabs, and ‘*’ before point.
> > + "Return true if there only spaces, tabs, and `*' before point.
> > This means, between the beginning of line and the point."
> > (save-excursion
> > (skip-chars-backward " \t*") (bolp)))
> > @@ -708,9 +708,9 @@ This means, between the beginning of line and the
> point."
> > ((org-mouse-looking-at ":\\([A-Za-z0-9_]+\\):" "A-Za-z0-9_" -1)
> ;tags
> > (popup-menu
> > `(nil
> > - [,(format-message "Display ‘%s’" (match-string 1))
> > + [,(format-message "Display `%s'" (match-string 1))
> > (org-tags-view nil ,(match-string 1))]
> > - [,(format-message "Sparse Tree ‘%s’" (match-string 1))
> > + [,(format-message "Sparse Tree `%s'" (match-string 1))
> > (org-tags-sparse-tree nil ,(match-string 1))]
> > "--"
> > ,@(org-mouse-tag-menu))))
> > diff --git a/lisp/org/org-plot.el b/lisp/org/org-plot.el
> > index 7024ed6..fd6b4ed 100644
> > --- a/lisp/org/org-plot.el
> > +++ b/lisp/org/org-plot.el
> > @@ -94,7 +94,7 @@ Return value is the point at the beginning of the
> table."
> > (goto-char (org-table-begin)))
> >
> > (defun org-plot/collect-options (&optional params)
> > - "Collect options from an org-plot ‘#+Plot:’ line.
> > + "Collect options from an org-plot `#+Plot:' line.
> > Accepts an optional property list PARAMS, to which the options
> > will be added. Returns the resulting property list."
> > (interactive)
> > diff --git a/lisp/org/org-protocol.el b/lisp/org/org-protocol.el
> > index ae0f494..339f2b7 100644
> > --- a/lisp/org/org-protocol.el
> > +++ b/lisp/org/org-protocol.el
> > @@ -303,7 +303,7 @@ part."
> >
> > (defun org-protocol-flatten-greedy (param-list &optional strip-path
> replacement)
> > "Greedy handlers might receive a list like this from emacsclient:
> > - '((\"/dir/org-protocol:/greedy:/~/path1\" (23 . 12)) (\"/dir/param\")
> > + ((\"/dir/org-protocol:/greedy:/~/path1\" (23 . 12)) (\"/dir/param\"))
> > where \"/dir/\" is the absolute path to emacsclients working
> directory. This
> > function transforms it into a flat list using `org-protocol-flatten' and
> > transforms the elements of that list as follows:
> > @@ -347,7 +347,7 @@ returned list."
> >
> > (defun org-protocol-flatten (l)
> > "Greedy handlers might receive a list like this from emacsclient:
> > - '( (\"/dir/org-protocol:/greedy:/~/path1\" (23 . 12)) (\"/dir/param\")
> > + ((\"/dir/org-protocol:/greedy:/~/path1\" (23 . 12)) (\"/dir/param\"))
> > where \"/dir/\" is the absolute path to emacsclients working directory.
> > This function transforms it into a flat list."
> > (if (null l) ()
> > @@ -365,9 +365,9 @@ link's URL to the `kill-ring'.
> >
> > The location for a browser's bookmark has to look like this:
> >
> > - javascript:location.href='org-protocol://store-link://'+ \\
> > + javascript:location.href=\\='org-protocol://store-link://\\='+ \\
> > encodeURIComponent(location.href)
> > - encodeURIComponent(document.title)+'/'+ \\
> > + encodeURIComponent(document.title)+\\='/\\='+ \\
> >
> > Don't use `escape()'! Use `encodeURIComponent()' instead. The title of
> the page
> > could contain slashes and the location definitely will.
> > @@ -396,16 +396,16 @@ The sub-protocol used to reach this function is
> set in
> > This function detects an URL, title and optional text, separated
> > by `/'. The location for a browser's bookmark looks like this:
> >
> > - javascript:location.href='org-protocol://capture://'+ \\
> > - encodeURIComponent(location.href)+'/' \\
> > - encodeURIComponent(document.title)+'/'+ \\
> > + javascript:location.href=\\='org-protocol://capture://\\='+ \\
> > + encodeURIComponent(location.href)+\\='/\\=' \\
> > + encodeURIComponent(document.title)+\\='/\\='+ \\
> > encodeURIComponent(window.getSelection())
> >
> > By default, it uses the character `org-protocol-default-template-key',
> > which should be associated with a template in `org-capture-templates'.
> > But you may prepend the encoded URL with a character and a slash like
> so:
> >
> > - javascript:location.href='org-protocol://capture://b/'+ ...
> > + javascript:location.href=\\='org-protocol://capture://b/\\='+ ...
> >
> > Now template ?b will be used."
> > (if (and (boundp 'org-stored-links)
> > @@ -455,7 +455,7 @@ in `org-protocol-project-alist'.
> >
> > The location for a browser's bookmark should look like this:
> >
> > - javascript:location.href='org-protocol://open-source://'+ \\
> > + javascript:location.href=\\='org-protocol://open-source://\\='+ \\
> > encodeURIComponent(location.href)"
> > ;; As we enter this function for a match on our protocol, the return
> value
> > ;; defaults to nil.
> > diff --git a/lisp/org/org-src.el b/lisp/org/org-src.el
> > index 8a6c77a..c970fe6 100644
> > --- a/lisp/org/org-src.el
> > +++ b/lisp/org/org-src.el
> > @@ -166,10 +166,10 @@ other-frame Use
> `switch-to-buffer-other-frame' to display edit buffer.
> > (const reorganize-frame)))
> >
> > (defvar org-src-mode-hook nil
> > - "Hook run after Org switched a source code snippet to its Emacs mode.
> > + "Hook run after Org switched a source code snippet to its Emacs mode.
> > This hook will run
> >
> > -- when editing a source code snippet with \"C-c '\".
> > +- when editing a source code snippet with `\\[org-src-mode-map]'.
> > - When formatting a source code snippet for export with htmlize.
> >
> > You may want to use this hook for example to turn off
> `outline-minor-mode'
> > @@ -226,7 +226,7 @@ the existing edit buffer."
> > (define-minor-mode org-src-mode
> > "Minor mode for language major mode buffers generated by org.
> > This minor mode is turned on in two situations:
> > -- when editing a source code snippet with \"C-c '\".
> > +- when editing a source code snippet with `\\[org-src-mode-map]'.
> > - When formatting a source code snippet for export with htmlize.
> > There is a mode hook, and keybindings for `org-edit-src-exit' and
> > `org-edit-src-save'")
> > diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el
> > index fb59367..478ad93 100644
> > --- a/lisp/org/org-table.el
> > +++ b/lisp/org/org-table.el
> > @@ -545,8 +545,8 @@ slightly, to make sure a beginning of line in the
> first line is included.
> > SEPARATOR specifies the field separator in the lines. It can have the
> > following values:
> >
> > -'(4) Use the comma as a field separator
> > -'(16) Use a TAB as field separator
> > +(4) Use the comma as a field separator
> > +(16) Use a TAB as field separator
> > integer When a number, use that many spaces as field separator
> > nil When nil, the command tries to be smart and figure out the
> > separator in the following way:
> > @@ -3404,7 +3404,7 @@ Parameters get priority."
> > (if (eq org-table-use-standard-references t)
> > (org-table-fedit-toggle-ref-type))
> > (org-goto-line startline)
> > - (message "Edit formulas, finish with ‘C-c C-c’ or ‘C-c '’. See
> menu for more commands.")))
> > + (message "%s" "Edit formulas, finish with C-c C-c or C-c '. See
> menu for more commands.")))
> >
> > (defun org-table-fedit-post-command ()
> > (when (not (memq this-command '(lisp-complete-symbol)))
> > diff --git a/lisp/org/org.el b/lisp/org/org.el
> > index 963da77..c7b64cc 100644
> > --- a/lisp/org/org.el
> > +++ b/lisp/org/org.el
> > @@ -481,7 +481,7 @@ value of the variable, after updating it:
> > \(dolist (backend val)
> > \(cond
> > \((not (load (format \"ox-%s\" backend) t t))
> > - \(message \"Problems while trying to load export back-end
> ‘%s’\"
> > + \(message \"Problems while trying to load export back-end
> \\=`%s\\='\"
> > backend))
> > \((not (memq backend new-list)) (push backend new-list))))
> > \(set-default \\='org-export-backends new-list)))
> > @@ -1982,7 +1982,7 @@ file identifier are
> > filename matches the regexp. If you want to
> > use groups here, use shy groups.
> >
> > - Example: (\"\\.x?html\\'\" . \"firefox %s\")
> > + Example: (\"\\.x?html\\\\='\" . \"firefox %s\")
> > (\"\\(?:xhtml\\|html\\)\" . \"firefox %s\")
> > to open *.html and *.xhtml with firefox.
> >
> > @@ -1998,7 +1998,7 @@ file identifier are
> > In a custom lisp form, you can access the group
> matches with
> > (match-string n link).
> >
> > - Example: (\"\\.pdf::\\(\\d+\\)\\'\" . \"evince -p %1
> %s\")
> > + Example: (\"\\.pdf::\\(\\d+\\)\\\\='\" . \"evince -p
> %1 %s\")
> > to open [[file:document.pdf::5]] with evince at
> page 5.
> >
> > `directory' Matches a directory
> > @@ -12222,13 +12222,13 @@ With a triple \\[universal-argument] prefix,
> circumvent any state blocking.
> > With a numeric prefix arg of 0, inhibit note taking for the change.
> >
> > For calling through lisp, arg is also interpreted in the following way:
> > -'none -> empty state
> > -\"\"(empty string) -> switch to empty state
> > -'done -> switch to DONE
> > -'nextset -> switch to the next set of keywords
> > -'previousset -> switch to the previous set of keywords
> > -\"WAITING\" -> switch to the specified keyword, but only if it
> > - really is a member of `org-todo-keywords'."
> > +`none' -> empty state
> > +\"\" (empty string) -> switch to empty state
> > +`done' -> switch to DONE
> > +`nextset' -> switch to the next set of keywords
> > +`previousset' -> switch to the previous set of keywords
> > +\"WAITING\" -> switch to the specified keyword, but only if it
> > + really is a member of `org-todo-keywords'."
> > (interactive "P")
> > (if (and (org-region-active-p)
> org-loop-over-headlines-in-active-region)
> > (let ((cl (if (eq org-loop-over-headlines-in-active-region
> 'start-level)
> > diff --git a/lisp/org/ox.el b/lisp/org/ox.el
> > index a0573d0..4e3e0ef 100644
> > --- a/lisp/org/ox.el
> > +++ b/lisp/org/ox.el
> > @@ -1060,7 +1060,7 @@ keywords are understood:
> > Menu entry for the export dispatcher. It should be a list
> > like:
> >
> > - '(KEY DESCRIPTION-OR-ORDINAL ACTION-OR-MENU)
> > + (KEY DESCRIPTION-OR-ORDINAL ACTION-OR-MENU)
> >
> > where :
> >
> > @@ -1084,17 +1084,17 @@ keywords are understood:
> > If it is an alist, associations should follow the
> > pattern:
> >
> > - '(KEY DESCRIPTION ACTION)
> > + (KEY DESCRIPTION ACTION)
> >
> > where KEY, DESCRIPTION and ACTION are described above.
> >
> > Valid values include:
> >
> > - '(?m \"My Special Back-end\" my-special-export-function)
> > + (?m \"My Special Back-end\" my-special-export-function)
> >
> > or
> >
> > - '(?l \"Export to LaTeX\"
> > + (?l \"Export to LaTeX\"
> > \(?p \"As PDF file\" org-latex-export-to-pdf)
> > \(?o \"As PDF file and open\"
> > \(lambda (a s v b)
> > @@ -1105,7 +1105,7 @@ keywords are understood:
> > or the following, which will be added to the previous
> > sub-menu,
> >
> > - '(?l 1
> > + (?l 1
> > \((?B \"As TEX buffer (Beamer)\" org-beamer-export-as-latex)
> > \(?P \"As PDF file (Beamer)\" org-beamer-export-to-pdf)))
> >
> > @@ -5553,7 +5553,7 @@ and `org-export-to-file' for more specialized
> functions."
> > (kill-buffer proc-buffer))))
> > (org-export-add-to-stack proc-buffer nil p)
> > (ding)
> > - (message "Process ‘%s’ exited abnormally" p))
> > + (message "Process `%s' exited abnormally" p))
> > (unless org-export-async-debug
> > (delete-file ,,temp-file)))))))))))))
> >
> > diff --git a/lisp/pcmpl-cvs.el b/lisp/pcmpl-cvs.el
> > index 33446af..b64fb65 100644
> > --- a/lisp/pcmpl-cvs.el
> > +++ b/lisp/pcmpl-cvs.el
> > @@ -38,7 +38,7 @@
> > ;; User Variables:
> >
> > (defcustom pcmpl-cvs-binary (or (executable-find "cvs") "cvs")
> > - "The full path of the ‘cvs’ binary."
> > + "The full path of the `cvs' binary."
> > :type 'file
> > :group 'pcmpl-cvs)
> >
> > @@ -154,7 +154,7 @@
> > (defun pcmpl-cvs-entries (&optional opers)
> > "Return the Entries for the current directory.
> > If OPERS is a list of characters, return entries for which that
> > -operation character applies, as displayed by ‘cvs -n update’."
> > +operation character applies, as displayed by `cvs -n update'."
> > (let* ((arg (pcomplete-arg))
> > (dir (file-name-as-directory
> > (or (file-name-directory arg) "")))
> > diff --git a/lisp/play/bubbles.el b/lisp/play/bubbles.el
> > index 5ca792d..1e06f1b 100644
> > --- a/lisp/play/bubbles.el
> > +++ b/lisp/play/bubbles.el
> > @@ -101,31 +101,31 @@ and a shift mode."
> > :group 'bubbles)
> >
> > (defun bubbles-set-game-easy ()
> > - "Set game theme to ‘easy’."
> > + "Set game theme to `easy'."
> > (interactive)
> > (setq bubbles-game-theme 'easy)
> > (bubbles))
> >
> > (defun bubbles-set-game-medium ()
> > - "Set game theme to ‘medium’."
> > + "Set game theme to `medium'."
> > (interactive)
> > (setq bubbles-game-theme 'medium)
> > (bubbles))
> >
> > (defun bubbles-set-game-difficult ()
> > - "Set game theme to ‘difficult’."
> > + "Set game theme to `difficult'."
> > (interactive)
> > (setq bubbles-game-theme 'difficult)
> > (bubbles))
> >
> > (defun bubbles-set-game-hard ()
> > - "Set game theme to ‘hard’."
> > + "Set game theme to `hard'."
> > (interactive)
> > (setq bubbles-game-theme 'hard)
> > (bubbles))
> >
> > (defun bubbles-set-game-userdefined ()
> > - "Set game theme to ‘user-defined’."
> > + "Set game theme to `user-defined'."
> > (interactive)
> > (setq bubbles-game-theme 'user-defined)
> > (bubbles))
> > diff --git a/lisp/play/gomoku.el b/lisp/play/gomoku.el
> > index 702376c..d2953b6 100644
> > --- a/lisp/play/gomoku.el
> > +++ b/lisp/play/gomoku.el
> > @@ -977,7 +977,7 @@ If the game is finished, this command requests for
> another game."
> > (move-to-column (+ gomoku-x-offset (* gomoku-square-width (1- x)))))
> >
> > (defun gomoku-plot-square (square value)
> > - "Draw ‘X’, ‘O’ or ‘.’ on SQUARE depending on VALUE, leave point
> there."
> > + "Draw `X', `O' or `.' on SQUARE depending on VALUE, leave point
> there."
> > (or (= value 1)
> > (gomoku-goto-square square))
> > (let ((inhibit-read-only t))
> > diff --git a/lisp/proced.el b/lisp/proced.el
> > index 5c65edf..bf7ce24 100644
> > --- a/lisp/proced.el
> > +++ b/lisp/proced.el
> > @@ -1924,7 +1924,7 @@ and \f (formfeed) at the end."
> > (unless (bolp)
> > (insert "\n"))
> > (insert (current-time-string)
> > - (format-message "\tBuffer ‘%s’, signal ‘%s’\n"
> > + (format-message "\tBuffer `%s', signal `%s'\n"
> > (buffer-name obuf) (car args)))
> > (goto-char (point-max))
> > (insert "\f\n")))))))
> > diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
> > index 70af389..452f3b9 100644
> > --- a/lisp/progmodes/ada-mode.el
> > +++ b/lisp/progmodes/ada-mode.el
> > @@ -286,11 +286,11 @@ type A is
> > :type 'boolean :group 'ada)
> >
> > (defcustom ada-indent-is-separate t
> > - "Non-nil means indent ‘is separate’ or ‘is abstract’ if on a single
> line."
> > + "Non-nil means indent `is separate' or `is abstract' if on a single
> line."
> > :type 'boolean :group 'ada)
> >
> > (defcustom ada-indent-record-rel-type 3
> > - "Indentation for ‘record’ relative to ‘type’ or ‘use’.
> > + "Indentation for `record' relative to `type' or `use'.
> >
> > An example is:
> > type A is
> > @@ -397,7 +397,7 @@ Must be one of :
> > :group 'ada)
> >
> > (defcustom ada-use-indent ada-broken-indent
> > - "Indentation for the lines in a ‘use’ statement.
> > + "Indentation for the lines in a `use' statement.
> >
> > An example is:
> > use Ada.Text_IO,
> > @@ -405,7 +405,7 @@ An example is:
> > :type 'integer :group 'ada)
> >
> > (defcustom ada-when-indent 3
> > - "Indentation for ‘when’ relative to ‘exception’ or ‘case’.
> > + "Indentation for `when' relative to `exception' or `case'.
> >
> > An example is:
> > case A is
> > @@ -413,7 +413,7 @@ An example is:
> > :type 'integer :group 'ada)
> >
> > (defcustom ada-with-indent ada-broken-indent
> > - "Indentation for the lines in a ‘with’ statement.
> > + "Indentation for the lines in a `with' statement.
> >
> > An example is:
> > with Ada.Text_IO,
> > @@ -2834,7 +2834,7 @@ ORGPOINT is the limit position used in the
> calculation."
> > (save-excursion
> > (goto-char (car match-cons))
> > (unless (ada-search-ignore-string-comment "when" t opos)
> > - (error "Missing ‘when’ between ‘case’ and ‘=>’"))
> > + (error "Missing `when' between `case' and `=>'"))
> > (list (save-excursion (back-to-indentation) (point))
> 'ada-indent)))
> > ;;
> > ;; case..is..when
> > @@ -3003,7 +3003,7 @@ ORGPOINT is the limit position used in the
> calculation."
> > (list cur-indent 'ada-broken-indent)))))
> >
> > (defun ada-get-indent-noindent (orgpoint)
> > - "Calculate the indentation when point is just before a ‘noindent
> stmt’.
> > + "Calculate the indentation when point is just before a `noindent
> stmt'.
> > ORGPOINT is the limit position used in the calculation."
> > (let ((label 0))
> > (save-excursion
> > @@ -3429,7 +3429,7 @@ Return the new position of point or nil if not
> found."
> > Moves point to the matching block start."
> > (ada-goto-matching-start 0)
> > (unless (looking-at (concat "\\<" keyword "\\>"))
> > - (error "Matching start is not ‘%s’" keyword)))
> > + (error "Matching start is not `%s'" keyword)))
> >
> >
> > (defun ada-check-defun-name (defun-name)
> > @@ -3667,7 +3667,7 @@ otherwise throw error."
> > "Move point to the beginning of a block-start.
> > Which block depends on the value of NEST-LEVEL, which defaults to zero.
> > If NOERROR is non-nil, it only returns nil if no matching start was
> found.
> > -If GOTOTHEN is non-nil, point moves to the ‘then’ following ‘if’."
> > +If GOTOTHEN is non-nil, point moves to the `then' following `if'."
> > (let ((nest-count (if nest-level nest-level 0))
> > (found nil)
> >
> > @@ -3734,7 +3734,7 @@ If GOTOTHEN is non-nil, point moves to the ‘then’
> following ‘if’."
> > (if pos
> > (goto-char (car pos))
> > (error (concat
> > - "No matching ‘is’ or ‘renames’ for ‘package’
> at"
> > + "No matching `is' or `renames' for `package'
> at"
> > " line "
> > (number-to-string (count-lines 1 (1+
> current)))))))
> > (unless (looking-at "renames")
> > @@ -3862,7 +3862,7 @@ If GOTOTHEN is non-nil, point moves to the ‘then’
> following ‘if’."
> > ((looking-at "do")
> > (unless (ada-search-ignore-string-comment
> > "\\<accept\\|return\\>" t)
> > - (error "Missing ‘accept’ or ‘return’ in front of
> ‘do’"))))
> > + (error "Missing `accept' or `return' in front of
> `do'"))))
> > (point))
> >
> > (if noerror
> > @@ -4073,7 +4073,7 @@ Assumes point to be at the end of a statement."
> >
> >
> > (defun ada-looking-at-semi-or ()
> > - "Return t if looking at an ‘or’ following a semicolon."
> > + "Return t if looking at an `or' following a semicolon."
> > (save-excursion
> > (and (looking-at "\\<or\\>")
> > (progn
> > @@ -4146,7 +4146,7 @@ Return nil if the private is part of the package
> name, as in
> > "type\\)\\>"))))))
> >
> > (defun ada-search-ignore-complex-boolean (regexp backwardp)
> > - "Search for REGEXP, ignoring comments, strings, ‘and then’, ‘or else’.
> > + "Search for REGEXP, ignoring comments, strings, `and then', `or else'.
> > If BACKWARDP is non-nil, search backward; search forward otherwise."
> > (let (result)
> > (while (and (setq result (ada-search-ignore-string-comment regexp
> backwardp))
> > @@ -4366,7 +4366,7 @@ of the region. Otherwise, operate only on the
> current line."
> >
> > (defun ada-move-to-end ()
> > "Move point to the end of the block around point.
> > -Moves to ‘begin’ if in a declarative part."
> > +Moves to `begin' if in a declarative part."
> > (interactive)
> > (let ((pos (point))
> > decl-start)
> > diff --git a/lisp/progmodes/ada-prj.el b/lisp/progmodes/ada-prj.el
> > index 7e354bc..3b71c59 100644
> > --- a/lisp/progmodes/ada-prj.el
> > +++ b/lisp/progmodes/ada-prj.el
> > @@ -309,13 +309,13 @@ where the compilation is done.")
> > "If you want to remotely compile, debug and
> > run your application, specify the name of a
> > remote machine here. This capability requires
> > -the ‘rsh’ protocol on the remote machine.")
> > +the `rsh' protocol on the remote machine.")
> > (ada-prj-field 'cross_prefix "Prefix used in for the cross tool
> chain"
> > "When working on multiple cross targets, it is
> > most convenient to specify the prefix of the
> > tool chain here. For instance, on PowerPc
> > -vxworks, you would enter ‘powerpc-wrs-vxworks-’.
> > -To use JGNAT, enter ‘j’.")
> > +vxworks, you would enter `powerpc-wrs-vxworks-'.
> > +To use JGNAT, enter `j'.")
> > )
> >
> >
> > diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el
> > index 6f2f78f..816de12 100644
> > --- a/lisp/progmodes/ada-xref.el
> > +++ b/lisp/progmodes/ada-xref.el
> > @@ -286,7 +286,7 @@ On Windows systems, this will properly handle .exe
> extension as well."
> > (ada-find-file-in-dir (concat exec-name ".exe")
> exec-path))))
> > (if result
> > result
> > - (error "‘%s’ not found in path" exec-name))))
> > + (error "`%s' not found in path" exec-name))))
> >
> > (defun ada-initialize-runtime-library (cross-prefix)
> > "Initialize the variables for the runtime library location.
> > diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
> > index f26b8ec..82f0d72 100644
> > --- a/lisp/progmodes/cc-engine.el
> > +++ b/lisp/progmodes/cc-engine.el
> > @@ -634,7 +634,7 @@ move into or out of sexps (not even normal
> expression parentheses).
> >
> > If point is already at the earliest statement within braces or parens,
> > this function doesn't move back into any whitespace preceding it; it
> > -returns 'same in this case.
> > +returns `same' in this case.
> >
> > Stop at statement continuation tokens like \"else\", \"catch\",
> > \"finally\" and the \"while\" in \"do ... while\" if the start point
> > @@ -656,19 +656,19 @@ start of the definition in a \"#define\". Also
> stop at start of
> > macros before leaving them.
> >
> > Return:
> > -'label if stopped at a label or \"case...:\" or \"default:\";
> > -'same if stopped at the beginning of the current statement;
> > -'up if stepped to a containing statement;
> > -'previous if stepped to a preceding statement;
> > -'beginning if stepped from a statement continuation clause to
> > +`label' if stopped at a label or \"case...:\" or \"default:\";
> > +`same' if stopped at the beginning of the current statement;
> > +`up' if stepped to a containing statement;
> > +`previous' if stepped to a preceding statement;
> > +`beginning' if stepped from a statement continuation clause to
> > its start clause; or
> > -'macro if stepped to a macro start.
> > -Note that 'same and not 'label is returned if stopped at the same
> > +`macro' if stepped to a macro start.
> > +Note that `same' and not `label' is returned if stopped at the same
> > label without crossing the colon character.
> >
> > LIM may be given to limit the search. If the search hits the limit,
> > point will be left at the closest following token, or at the start
> > -position if that is less ('same is returned in this case).
> > +position if that is less (`same' is returned in this case).
> >
> > NOERROR turns off error logging to `c-parsing-error'.
> >
> > diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
> > index 0e904d2..a1e26b9 100644
> > --- a/lisp/progmodes/cc-langs.el
> > +++ b/lisp/progmodes/cc-langs.el
> > @@ -926,14 +926,14 @@ following elements. The car of each element
> describes the type of the
> > operator group, and the cdr is a list of the operator tokens in it.
> > The operator group types are:
> >
> > -'prefix Unary prefix operators.
> > -'postfix Unary postfix operators.
> > -'postfix-if-paren
> > +`prefix' Unary prefix operators.
> > +`postfix' Unary postfix operators.
> > +`postfix-if-paren'
> > Unary postfix operators if and only if the chars have
> > parenthesis syntax.
> > -'left-assoc Binary left associative operators (i.e. a+b+c means
> (a+b)+c).
> > -'right-assoc Binary right associative operators (i.e. a=b=c means
> a=(b=c)).
> > -'right-assoc-sequence
> > +`left-assoc' Binary left associative operators (i.e. a+b+c means
> (a+b)+c).
> > +`right-assoc' Binary right associative operators (i.e. a=b=c means
> a=(b=c)).
> > +`right-assoc-sequence'
> > Right associative operator that constitutes of a
> > sequence of tokens that separate expressions. All the
> > tokens in the group are in this case taken as
> > diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el
> > index df6e987..da36647 100644
> > --- a/lisp/progmodes/cc-vars.el
> > +++ b/lisp/progmodes/cc-vars.el
> > @@ -833,7 +833,7 @@ string in the mode line), and a semicolon or comma
> is typed (see
> > no arguments, and should return one of the following values:
> >
> > nil -- no determination made, continue checking
> > - 'stop -- do not insert a newline, and stop checking
> > + `stop' -- do not insert a newline, and stop checking
> > (anything else) -- insert a newline, and stop checking
> >
> > If every function in the list is called with no determination made,
> > diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
> > index 322024e..b8ba170 100644
> > --- a/lisp/progmodes/cperl-mode.el
> > +++ b/lisp/progmodes/cperl-mode.el
> > @@ -724,7 +724,7 @@ mode-compile.el.
> > If your Emacs does not default to `cperl-mode' on Perl files, and you
> > want it to: put the following into your .emacs file:
> >
> > - (defalias 'perl-mode 'cperl-mode)
> > + (defalias \\='perl-mode \\='cperl-mode)
> >
> > Get perl5-info from
> > $CPAN/doc/manual/info/perl5-old/perl5-info.tar.gz
> > diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
> > index 2443d6f..80f9e2a 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 (format-message "Members matching ‘%s’\n\n" regexp))
> > + (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 bcabf3c..1ea9f17 100644
> > --- a/lisp/progmodes/elisp-mode.el
> > +++ b/lisp/progmodes/elisp-mode.el
> > @@ -1322,7 +1322,7 @@ which see."
> > 0 - contains the last symbol read from the buffer.
> > 1 - contains the string last displayed in the echo area for variables,
> > or argument string for functions.
> > - 2 - 'function if function args, 'variable if variable documentation.")
> > + 2 - `function' if function args, `variable' if variable
> documentation.")
> >
> > (defun elisp-eldoc-documentation-function ()
> > "`eldoc-documentation-function' (which see) for Emacs Lisp."
> > diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
> > index d38a7cd..0d5fc3a 100644
> > --- a/lisp/progmodes/etags.el
> > +++ b/lisp/progmodes/etags.el
> > @@ -1268,7 +1268,7 @@ buffer-local values of tags table format
> variables."
> > ;; \6 is the line to start searching at;
> > ;; \7 is the char to start searching at.
> > (while (re-search-forward
> > - "^\\(\\([^\177]+[^-a-zA-Z0-9_+*$:\177]+\\)?\
> > + "^\\(\\([^\177]*[^-a-zA-Z0-9_+*$:\177]+\\)?\
> > \\([-a-zA-Z0-9_+*$?:]+\\)[^-a-zA-Z0-9_+*$?:\177]*\\)\177\
> > \\(\\([^\n\001]+\\)\001\\)?\\([0-9]+\\)?,\\([0-9]+\\)?\n"
> > nil t)
> > @@ -1459,7 +1459,7 @@ hits the start of file."
> > (when (symbolp symbs)
> > (if (boundp symbs)
> > (setq symbs (symbol-value symbs))
> > - (insert (format-message "symbol ‘%s’ has no value\n" symbs))
> > + (insert (format-message "symbol `%s' has no value\n" symbs))
> > (setq symbs nil)))
> > (if (vectorp symbs)
> > (mapatoms ins-symb symbs)
> > diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
> > index 43b057b..e8a1ae4 100644
> > --- a/lisp/progmodes/f90.el
> > +++ b/lisp/progmodes/f90.el
> > @@ -1425,7 +1425,7 @@ single - statement is not continued.
> > begin - current line is the first in a continued statement.
> > end - current line is the last in a continued statement
> > middle - current line is neither first nor last in a continued
> statement.
> > -Comment lines embedded amongst continued lines return 'middle."
> > +Comment lines embedded amongst continued lines return `middle'."
> > (let (pcont cont)
> > (save-excursion
> > (setq pcont (if (f90-previous-statement) (f90-line-continued))))
> > diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
> > index f220633..a9d4743 100644
> > --- a/lisp/progmodes/flymake.el
> > +++ b/lisp/progmodes/flymake.el
> > @@ -287,7 +287,7 @@ Return its file name if found, or nil if not found."
> > nil)))))
> >
> > (defun flymake-fix-file-name (name)
> > - "Replace all occurrences of ‘\\’ with ‘/’."
> > + "Replace all occurrences of `\\' with `/'."
> > (when name
> > (setq name (expand-file-name name))
> > (setq name (abbreviate-file-name name))
> > @@ -785,7 +785,7 @@ Perhaps use text from LINE-ERR-INFO-LIST to enhance
> highlighting."
> > (when (flymake-same-files real-file-name source-file-name)
> > (setq line-err-info (flymake-ler-set-file line-err-info nil))
> > (setq err-info-list (flymake-add-err-info err-info-list
> line-err-info))))
> > - (flymake-log 3 "parsed ‘%s’, %s line-err-info" (nth idx lines)
> (if line-err-info "got" "no"))
> > + (flymake-log 3 "parsed `%s', %s line-err-info" (nth idx lines)
> (if line-err-info "got" "no"))
> > (setq idx (1+ idx)))
> > err-info-list))
> >
> > @@ -1086,7 +1086,7 @@ For the format of LINE-ERR-INFO, see
> `flymake-ler-make-ler'."
> > (error
> > (let* ((err-str
> > (format-message
> > - "Failed to launch syntax check process ‘%s’ with args %s:
> %s"
> > + "Failed to launch syntax check process `%s' with args %s:
> %s"
> > cmd args (error-message-string err)))
> > (source-file-name buffer-file-name)
> > (cleanup-f (flymake-get-cleanup-function
> source-file-name)))
> > diff --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el
> > index 83e427d..ee4733f 100644
> > --- a/lisp/progmodes/fortran.el
> > +++ b/lisp/progmodes/fortran.el
> > @@ -817,15 +817,15 @@ Variables controlling indentation style and extra
> features:
> > Amount of extra indentation for text in full-line comments (default
> 0).
> > `fortran-comment-indent-style'
> > How to indent the text in full-line comments. Allowed values are:
> > - nil don't change the indentation
> > - fixed indent to `fortran-comment-line-extra-indent' beyond the
> > + nil don't change the indentation
> > + `fixed' indent to `fortran-comment-line-extra-indent' beyond the
> > value of either
> > `fortran-minimum-statement-indent-fixed' (fixed format)
> or
> > `fortran-minimum-statement-indent-tab' (TAB format),
> > depending on the continuation format in use.
> > - relative indent to `fortran-comment-line-extra-indent' beyond the
> > + `relative' indent to `fortran-comment-line-extra-indent' beyond the
> > indentation for a line of code.
> > - (default 'fixed)
> > + (default `fixed')
> > `fortran-comment-indent-char'
> > Single-character string to be inserted instead of space for
> > full-line comment indentation (default \" \").
> > diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
> > index 9942e17..1eff62c 100644
> > --- a/lisp/progmodes/gdb-mi.el
> > +++ b/lisp/progmodes/gdb-mi.el
> > @@ -2065,7 +2065,7 @@ a GDB/MI reply message."
> > (defun gdbmi-bnf-gdb-prompt ()
> > "Implementation of the following GDB/MI output grammar rule:
> > gdb-prompt ==>
> > - '(gdb)' nl
> > + `(gdb)' nl
> >
> > nl ==>
> > CR | CR-LF"
> > @@ -2085,7 +2085,7 @@ a GDB/MI reply message."
> > "Implementation of the following GDB/MI output grammar rule:
> >
> > result-record ==>
> > - [ token ] '^' result-class ( ',' result )* nl
> > + [ token ] `^' result-class ( `,' result )* nl
> >
> > token ==>
> > any sequence of digits."
> > @@ -2110,16 +2110,16 @@ a GDB/MI reply message."
> > exec-async-output | status-async-output | notify-async-output
> >
> > exec-async-output ==>
> > - [ token ] '*' async-output
> > + [ token ] `*' async-output
> >
> > status-async-output ==>
> > - [ token ] '+' async-output
> > + [ token ] `+' async-output
> >
> > notify-async-output ==>
> > - [ token ] '=' async-output
> > + [ token ] `=' async-output
> >
> > async-output ==>
> > - async-class ( ',' result )* nl"
> > + async-class ( `,' result )* nl"
> >
> > (gdbmi-bnf-result-and-async-record-impl))
> >
> > @@ -2130,13 +2130,13 @@ a GDB/MI reply message."
> > console-stream-output | target-stream-output | log-stream-output
> >
> > console-stream-output ==>
> > - '~' c-string
> > + `~' c-string
> >
> > target-stream-output ==>
> > - '@' c-string
> > + `@' c-string
> >
> > log-stream-output ==>
> > - '&' c-string"
> > + `&' c-string"
> > (when (< gdbmi-bnf-offset (length gud-marker-acc))
> > (if (and (member (aref gud-marker-acc gdbmi-bnf-offset) '(?~ ?@ ?&))
> > (string-match (concat "\\([~@&]\\)\\(" gdb--string-regexp
> "\\)\n")
> > diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
> > index b5e7998..50ebadf 100644
> > --- a/lisp/progmodes/idlw-shell.el
> > +++ b/lisp/progmodes/idlw-shell.el
> > @@ -152,7 +152,7 @@ This variable can have 3 values:
> > nil Arrows just move the cursor
> > t Arrows force the cursor back to the current command line and
> > walk the history
> > -'cmdline When the cursor is in the current command line, arrows walk
> the
> > +`cmdline' When the cursor is in the current command line, arrows walk
> the
> > history. Everywhere else in the buffer, arrows move the
> cursor."
> > :group 'idlwave-shell-general-setup
> > :type '(choice
> > @@ -229,7 +229,7 @@ to set this option to nil."
> >
> > (defcustom idlwave-shell-file-name-chars "~/A-Za-z0-9+:_.$#%={}\\- "
> > "The characters allowed in file names, as a string.
> > -Used for file name completion. Must not contain ‘'’, ‘,’ and ‘\"’
> > +Used for file name completion. Must not contain `\\='', `,' and `\"'
> > because these are used as separators by IDL."
> > :group 'idlwave-shell-general-setup
> > :type 'string)
> > @@ -439,15 +439,13 @@ Value decides about the method which is used to
> mark the line. Valid values
> > are:
> >
> > nil Do not mark the line
> > -'arrow Use the overlay arrow
> > -'face Use `idlwave-shell-stop-line-face' to highlight the line.
> > +`arrow' Use the overlay arrow
> > +`face' Use `idlwave-shell-stop-line-face' to highlight the line.
> > t Use what IDLWAVE thinks is best. Will be a face where
> possible,
> > otherwise the overlay arrow.
> > The overlay-arrow has the disadvantage to hide the first chars of a
> line.
> > Since many people do not have the main block of IDL programs indented,
> > -a face highlighting may be better.
> > -In Emacs 21, the overlay arrow is displayed in a special area and never
> > -hides any code, so setting this to 'arrow on Emacs 21 sounds like a
> good idea."
> > +a face highlighting may be better."
> > :group 'idlwave-shell-highlighting-and-faces
> > :type '(choice
> > (const :tag "No marking" nil)
> > @@ -494,10 +492,10 @@ where IDL is stopped, when in Electric Debug Mode."
> > "Non-nil means, mark breakpoints in the source files.
> > Valid values are:
> > nil Do not mark breakpoints.
> > -'face Highlight line with `idlwave-shell-breakpoint-face'.
> > -'glyph Red dot at the beginning of line. If the display does not
> > - support glyphs, will use 'face instead.
> > -t Glyph when possible, otherwise face (same effect as 'glyph)."
> > +`face' Highlight line with `idlwave-shell-breakpoint-face'.
> > +`glyph' Red dot at the beginning of line. If the display does not
> > + support glyphs, will use `face' instead.
> > +t Glyph when possible, otherwise face (same effect as
> `glyph')."
> > :group 'idlwave-shell-highlighting-and-faces
> > :type '(choice
> > (const :tag "No marking" nil)
> > @@ -3911,7 +3909,7 @@ Elements of the alist have the form:
> >
> > (defun idlwave-shell-module-source-query (module &optional type)
> > "Determine the source file for a given module.
> > -Query as a function if TYPE set to something beside 'pro."
> > +Query as a function if TYPE set to something beside `pro'."
> > (if module
> > (idlwave-shell-send-command
> > (format "print,(routine_info('%s',/SOURCE%s)).PATH" module
> > diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
> > index daf919a..b524b76 100644
> > --- a/lisp/progmodes/idlwave.el
> > +++ b/lisp/progmodes/idlwave.el
> > @@ -376,7 +376,7 @@ The following values are allowed:
> >
> > nil Don't scan any buffers.
> > t Scan all `idlwave-mode' buffers in the current editing
> session.
> > -current Scan only the current buffer, but no other buffers."
> > +`current' Scan only the current buffer, but no other buffers."
> > :group 'idlwave-routine-info
> > :type '(choice
> > (const :tag "No buffer" nil)
> > @@ -743,7 +743,7 @@ The actions that can be performed are listed in
> `idlwave-indent-action-table'."
> > (defcustom idlwave-abbrev-start-char "\\"
> > "A single character string used to start abbreviations in abbrev mode.
> > Possible characters to choose from: ~\\=`\%
> > -or even ‘?’. ‘.’ is not a good choice because it can make structure
> > +or even `?'. `.' is not a good choice because it can make structure
> > field names act like abbrevs in certain circumstances.
> >
> > Changes to this in `idlwave-mode-hook' will have no effect. Instead a
> user
> > @@ -5833,15 +5833,15 @@ to override IDLWAVE's idea of what should be
> completed at point.
> > Possible values are:
> >
> > 0 <=> query for the completion type
> > -1 <=> 'procedure
> > -2 <=> 'procedure-keyword
> > -3 <=> 'function
> > -4 <=> 'function-keyword
> > -5 <=> 'procedure-method
> > -6 <=> 'procedure-method-keyword
> > -7 <=> 'function-method
> > -8 <=> 'function-method-keyword
> > -9 <=> 'class
> > +1 <=> `procedure'
> > +2 <=> `procedure-keyword'
> > +3 <=> `function'
> > +4 <=> `function-keyword'
> > +5 <=> `procedure-method'
> > +6 <=> `procedure-method-keyword'
> > +7 <=> `function-method'
> > +8 <=> `function-method-keyword'
> > +9 <=> `class'
> >
> > As a special case, the universal argument C-u forces completion of
> > function names in places where the default would be a keyword.
> > diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
> > index 9abbf16..4f46cbe 100644
> > --- a/lisp/progmodes/make-mode.el
> > +++ b/lisp/progmodes/make-mode.el
> > @@ -1455,7 +1455,7 @@ Fill comments, backslashed lines, and variable
> definitions specially."
> >
> > (defun makefile-browser-insert-continuation ()
> > "Insert a makefile continuation.
> > -In the makefile buffer, go to (end-of-line), insert a ‘\\’
> > +In the makefile buffer, go to (end-of-line), insert a `\\'
> > character, insert a new blank line, go to that line and indent by one
> TAB.
> > This is most useful in the process of creating continued lines when
> copying
> > large dependencies from the browser to the client buffer.
> > diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
> > index b95c3f9..5a4ed84 100644
> > --- a/lisp/progmodes/prolog.el
> > +++ b/lisp/progmodes/prolog.el
> > @@ -402,11 +402,11 @@ Only used in ( If -> Then ; Else) and ( Disj1 ;
> Disj2 ) style expressions."
> > (defcustom prolog-parse-mode 'beg-of-clause
> > "The parse mode used (decides from which point parsing is done).
> > Legal values:
> > -'beg-of-line - starts parsing at the beginning of a line, unless the
> > - previous line ends with a backslash. Fast, but has
> > - problems detecting multiline /* */ comments.
> > -'beg-of-clause - starts parsing at the beginning of the current clause.
> > - Slow, but copes better with /* */ comments."
> > +`beg-of-line' - starts parsing at the beginning of a line, unless the
> > + previous line ends with a backslash. Fast, but has
> > + problems detecting multiline /* */ comments.
> > +`beg-of-clause' - starts parsing at the beginning of the current clause.
> > + Slow, but copes better with /* */ comments."
> > :version "24.1"
> > :group 'prolog-indentation
> > :type '(choice (const :value beg-of-line)
> > @@ -1209,7 +1209,7 @@ using the commands `send-region', `send-string'
> and \\[prolog-consult-region].
> > Commands:
> > Tab indents for Prolog; with argument, shifts rest
> > of expression rigidly with the current line.
> > -Paragraphs are separated only by blank lines and '%%'. '%'s start
> comments.
> > +Paragraphs are separated only by blank lines and `%%'. `%'s start
> comments.
> >
> > Return at end of buffer sends line as input.
> > Return not at end copies rest of line to end and sends it.
> > diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
> > index 63a43c1..9528ffe 100644
> > --- a/lisp/progmodes/python.el
> > +++ b/lisp/progmodes/python.el
> > @@ -2819,7 +2819,7 @@ of `error' with a user-friendly message."
> > (or (python-shell-get-process)
> > (if interactivep
> > (user-error
> > - "Start a Python process first with ‘%s’ or ‘%s’."
> > + "Start a Python process first with `%s' or `%s'."
> > (substitute-command-keys "\\[run-python]")
> > ;; Get the binding.
> > (key-description
> > @@ -2979,7 +2979,7 @@ This is a wrapper over `buffer-substring' that
> takes care of
> > different transformations for the code sent to be evaluated in
> > the python shell:
> > 1. When optional argument NOMAIN is non-nil everything under an
> > - \"if __name__ == '__main__'\" block will be removed.
> > + \"if __name__ == \\='__main__\\='\" block will be removed.
> > 2. When a subregion of the buffer is sent, it takes care of
> > appending extra empty lines so tracebacks are correct.
> > 3. When the region sent is a substring of the current buffer, a
> > @@ -4006,7 +4006,7 @@ The skeleton will be bound to
> python-skeleton-NAME."
> > (let* ((name (symbol-name name))
> > (function-name (intern (concat "python-skeleton--" name)))
> > (msg (format-message
> > - "Add ‘%s’ clause? " name)))
> > + "Add `%s' clause? " name)))
> > (when (not skel)
> > (setq skel
> > `(< ,(format "%s:" name) \n \n
> > diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
> > index f46c8a9..cbf65c0 100644
> > --- a/lisp/progmodes/sql.el
> > +++ b/lisp/progmodes/sql.el
> > @@ -4276,7 +4276,7 @@ passed as command line arguments."
> > ;; work for remote hosts; we suppress the check there.
> > (unless (or (file-remote-p default-directory)
> > (executable-find program))
> > - (error "Unable to locate SQL program ‘%s’" program))
> > + (error "Unable to locate SQL program `%s'" program))
> > ;; Make sure buffer name is unique.
> > (when (sql-buffer-live-p (format "*%s*" buf-name))
> > (setq buf-name (format "SQL-%s" product))
> > diff --git a/lisp/progmodes/verilog-mode.el
> b/lisp/progmodes/verilog-mode.el
> > index caae746..f83c676 100644
> > --- a/lisp/progmodes/verilog-mode.el
> > +++ b/lisp/progmodes/verilog-mode.el
> > @@ -4477,7 +4477,7 @@ More specifically, after a generate and before an
> endgenerate."
> > (= nest 0) )) ; return nest
> >
> > (defun verilog-in-deferred-immediate-final-p ()
> > - "Return true if inside an ‘assert/assume/cover final’ statement."
> > + "Return true if inside an `assert/assume/cover final' statement."
> > (interactive)
> > (and (looking-at "final")
> > (verilog-looking-back
> "\\<\\(?:assert\\|assume\\|cover\\)\\>\\s-+" nil))
> > @@ -7221,7 +7221,7 @@ will be completed at runtime and should not be
> added to this list.")
> >
> > (defun verilog-func-completion (type)
> > "Build regular expression for module/task/function names.
> > -TYPE is ‘module’, ‘tf’ for task or function, or t if unknown."
> > +TYPE is `module', `tf' for task or function, or t if unknown."
> > (if (string= verilog-str "")
> > (setq verilog-str "[a-zA-Z_]"))
> > (let ((verilog-str (concat (cond
> > @@ -7294,7 +7294,7 @@ must be a function to be called for every match to
> check if this should
> > really be a match. If VERILOG-FLAG is t, the function returns a list of
> > all possible completions. If VERILOG-FLAG is nil it returns a string,
> > the longest possible completion, or t if VERILOG-STR is an exact match.
> > -If VERILOG-FLAG is ‘lambda’, the function returns t if VERILOG-STR is an
> > +If VERILOG-FLAG is `lambda', the function returns t if VERILOG-STR is an
> > exact match, nil otherwise."
> > (save-excursion
> > (let ((verilog-all nil))
> > @@ -7489,7 +7489,7 @@ VERILOG-PRED is non-nil, it must be a function to
> be called for every match
> > to check if this should really be a match. If VERILOG-FLAG is t, the
> > function returns a list of all possible completions. If it is nil it
> > returns a string, the longest possible completion, or t if VERILOG-STR
> is
> > -an exact match. If VERILOG-FLAG is ‘lambda’, the function returns t if
> > +an exact match. If VERILOG-FLAG is `lambda', the function returns t if
> > VERILOG-STR is an exact match, nil otherwise."
> > (save-excursion
> > (let ((verilog-all nil)
> > @@ -10099,7 +10099,7 @@ if non-nil."
> >
> > ;; Combined
> > (defun verilog-decls-get-signals (decls)
> > - "Return all declared signals in DECLS, excluding ‘assign’ statements."
> > + "Return all declared signals in DECLS, excluding `assign' statements."
> > (append
> > (verilog-decls-get-outputs decls)
> > (verilog-decls-get-inouts decls)
> > @@ -11484,14 +11484,14 @@ Lisp Templates:
> > Lisp functions:
> >
> > vl-name Name portion of the input/output port.
> > - vl-bits Bus bits portion of the input/output port
> (‘[2:0]’).
> > - vl-mbits Multidimensional array bits for port
> (‘[2:0][3:0]’).
> > - vl-width Width of the input/output port (‘3’ for [2:0]).
> > + vl-bits Bus bits portion of the input/output port
> (`[2:0]').
> > + vl-mbits Multidimensional array bits for port
> (`[2:0][3:0]').
> > + vl-width Width of the input/output port (`3' for [2:0]).
> > May be a (...) expression if bits isn't a
> constant.
> > vl-dir Direction of the pin input/output/inout/interface.
> > vl-modport The modport, if an interface with a modport.
> > - vl-cell-type Module name/type of the cell (‘InstModule’).
> > - vl-cell-name Instance name of the cell (‘instName’).
> > + vl-cell-type Module name/type of the cell (`InstModule').
> > + vl-cell-name Instance name of the cell (`instName').
> >
> > Normal Lisp variables may be used in expressions. See
> > `verilog-read-defines' which can set vh-{definename} variables for use
> > @@ -14177,7 +14177,7 @@ Files are checked based on
> `verilog-library-flags'."
> > (match-string 1) (buffer-file-name))))
> > (when warn
> > (message
> > - "File ‘%s’ isn't readable, use shift-mouse2 to paste in
> this field"
> > + "File `%s' isn't readable, use shift-mouse2 to paste in
> this field"
> > (match-string 1))))))))
> >
> >
> > diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
> > index 47b15d8..19a7e97 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
> > @@ -4361,7 +4361,7 @@ Usage:
> > ;;; --> \" := \" [[ --> [ --CR --> comment-out
> code
> > .. --> \" => \" ] --> ) --- --> horizontal
> line
> > ,, --> \" <= \" ]] --> ] ---- --> display
> comment
> > - == --> \" == \" '' --> \\\"
> > + == --> \" == \" \\='\\=' --> \\\"
> >
> >
> > WORD COMPLETION:
> > @@ -4808,7 +4808,7 @@ Usage:
> > automatically recognized as VHDL source files. To add an extension
> > \".xxx\", add the following line to your Emacs start-up file
> (`.emacs'):
> >
> > - \(push '(\"\\\\.xxx\\\\'\" . vhdl-mode) auto-mode-alist)
> > + \(push \\='(\"\\\\.xxx\\\\\\='\" . vhdl-mode) auto-mode-alist)
> >
> >
> > HINTS:
> > @@ -5714,7 +5714,7 @@ the offset is simply returned."
> > (t nil)))))
> >
> > (defun vhdl-in-extended-identifier-p ()
> > - "Determine if point is inside extended identifier (delimited by
> ‘\\’)."
> > + "Determine if point is inside extended identifier (delimited by
> `\\')."
> > (save-match-data
> > (and (save-excursion (re-search-backward "\\\\" (vhdl-point 'bol)
> t))
> > (save-excursion (re-search-forward "\\\\" (vhdl-point 'eol)
> t)))))
> > @@ -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
> > @@ -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/xref.el b/lisp/progmodes/xref.el
> > index b0a8eb7..7eff1f1 100644
> > --- a/lisp/progmodes/xref.el
> > +++ b/lisp/progmodes/xref.el
> > @@ -390,8 +390,8 @@ elements is negated."
> > "Go to the location of ITEM and display the buffer.
> > WINDOW controls how the buffer is displayed:
> > nil -- switch-to-buffer
> > - 'window -- pop-to-buffer (other window)
> > - 'frame -- pop-to-buffer (other frame)"
> > + `window' -- pop-to-buffer (other window)
> > + `frame' -- pop-to-buffer (other frame)"
> > (let* ((marker (save-excursion
> > (xref-location-marker (xref-item-location item))))
> > (buf (marker-buffer marker)))
> > diff --git a/lisp/recentf.el b/lisp/recentf.el
> > index a599383..8f420af 100644
> > --- a/lisp/recentf.el
> > +++ b/lisp/recentf.el
> > @@ -1224,7 +1224,7 @@ use for the dialog. It defaults to
> \"*`recentf-menu-title'*\"."
> > ", or type the corresponding digit key,"
> > "")
> > " to open it.\n"
> > - (format-message "Click on Cancel or type ‘q’ to
> cancel.\n"))
> > + (format-message "Click on Cancel or type `q' to
> cancel.\n"))
> > ;; Use a L&F that looks like the recentf menu.
> > (tree-widget-set-theme "folder")
> > (apply 'widget-create
> > diff --git a/lisp/replace.el b/lisp/replace.el
> > index be73cab..37e97e2 100644
> > --- a/lisp/replace.el
> > +++ b/lisp/replace.el
> > @@ -209,9 +209,9 @@ wants to replace FROM with TO."
> > (let ((match (match-string 3 from)))
> > (cond
> > ((string= match "\\n")
> > - (message "Note: ‘\\n’ here doesn't match a newline; to
> do that, type C-q C-j instead"))
> > + (message "Note: `\\n' here doesn't match a newline; to
> do that, type C-q C-j instead"))
> > ((string= match "\\t")
> > - (message "Note: ‘\\t’ here doesn't match a tab; to do
> that, just type TAB")))
> > + (message "Note: `\\t' here doesn't match a tab; to do
> that, just type TAB")))
> > (sit-for 2)))
> > (if (not to)
> > from
> > @@ -1140,7 +1140,7 @@ To return to ordinary Occur mode, use
> \\[occur-cease-edit]."
> > (goto-char m)
> > (recenter line)
> > (if readonly
> > - (message "Buffer ‘%s’ is read only." buf)
> > + (message "Buffer `%s' is read only." buf)
> > (delete-region (line-beginning-position)
> (line-end-position))
> > (insert text))
> > (move-to-column col)))))))
> > @@ -1496,7 +1496,7 @@ See also `multi-occur'."
> > ;; it is longer than window-width.
> > (if (> (+ (length regexp) 42) (window-width))
> > "" (format-message
> > - " for ‘%s’" (query-replace-descr
> regexp)))))
> > + " for `%s'" (query-replace-descr
> regexp)))))
> > (setq occur-revert-arguments (list regexp nlines bufs))
> > (if (= count 0)
> > (kill-buffer occur-buf)
> > diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el
> > index c46e05d..635990a 100644
> > --- a/lisp/scroll-bar.el
> > +++ b/lisp/scroll-bar.el
> > @@ -61,7 +61,7 @@ SIDE must be the symbol `left' or `right'."
> > (cols (nth 1 wsb)))
> > (cond
> > ((not (memq side '(left right)))
> > - (error "‘left’ or ‘right’ expected instead of %S" side))
> > + (error "`left' or `right' expected instead of %S" side))
> > ((and (eq vtype side) cols))
> > ((eq (frame-parameter nil 'vertical-scroll-bars) side)
> > ;; nil means it's a non-toolkit scroll bar, and its width in
> > diff --git a/lisp/server.el b/lisp/server.el
> > index b16a06e..5a67f12 100644
> > --- a/lisp/server.el
> > +++ b/lisp/server.el
> > @@ -575,7 +575,7 @@ If the key is not valid, signal an error."
> > (if server-auth-key
> > (if (string-match-p "^[!-~]\\{64\\}$" server-auth-key)
> > server-auth-key
> > - (error "The key ‘%s’ is invalid" server-auth-key))
> > + (error "The key `%s' is invalid" server-auth-key))
> > (server-generate-key)))
> >
> > ;;;###autoload
> > diff --git a/lisp/simple.el b/lisp/simple.el
> > index b8d4e74..f80faae 100644
> > --- a/lisp/simple.el
> > +++ b/lisp/simple.el
> > @@ -1655,7 +1655,7 @@ invoking, give a prefix argument to
> `execute-extended-command'."
> > (not executing-kbd-macro)
> > (where-is-internal function overriding-local-map
> t))))
> > (unless (commandp function)
> > - (error "‘%s’ is not a valid command name" command-name))
> > + (error "`%s' is not a valid command name" command-name))
> > (setq this-command function)
> > ;; Normally `real-this-command' should never be changed, but here
> we really
> > ;; want to pretend that M-x <cmd> RET is nothing more than a "key
> > @@ -1689,7 +1689,7 @@ invoking, give a prefix argument to
> `execute-extended-command'."
> > (symbol-name function) typed))))
> > (when binding
> > (with-temp-message
> > - (format-message "You can run the command ‘%s’ with %s"
> > + (format-message "You can run the command `%s' with %s"
> > function
> > (if (stringp binding)
> > (concat "M-x " binding " RET")
> > @@ -2801,7 +2801,7 @@ This variable only matters if
> `undo-ask-before-discard' is non-nil.")
> > (setq undo-extra-outer-limit (+ size 50000))
> > (if (let (use-dialog-box track-mouse executing-kbd-macro )
> > (yes-or-no-p (format-message
> > - "Buffer ‘%s’ undo info is %d bytes long;
> discard it? "
> > + "Buffer `%s' undo info is %d bytes long;
> discard it? "
> > (buffer-name) size)))
> > (progn (setq buffer-undo-list nil)
> > (setq undo-extra-outer-limit nil)
> > @@ -2810,7 +2810,7 @@ This variable only matters if
> `undo-ask-before-discard' is non-nil.")
> > (display-warning '(undo discard-info)
> > (concat
> > (format-message
> > - "Buffer ‘%s’ undo info was %d bytes long.\n"
> > + "Buffer `%s' undo info was %d bytes long.\n"
> > (buffer-name) size)
> > "The undo info was discarded because it exceeded \
> > `undo-outer-limit'.
> > @@ -3570,7 +3570,7 @@ Also, delete any process that is exited or
> signaled."
> > `(,(buffer-name buf)
> > face link
> > help-echo ,(format-message
> > - "Visit buffer ‘%s’"
> > + "Visit buffer `%s'"
> > (buffer-name buf))
> > follow-link t
> > process-buffer ,buf
> > @@ -7348,11 +7348,11 @@ buffer buried."
> > (push var warn-vars)))
> > (when warn-vars
> > (display-warning 'mail
> > - (format "\
> > + (format-message "\
> > The default mail mode is now Message mode.
> > You have the following Mail mode variable%s customized:
> > -\n %s\n\nTo use Mail mode, set ‘mail-user-agent’ to
> sendmail-user-agent.
> > -To disable this warning, set ‘compose-mail-user-agent-warnings’ to nil."
> > +\n %s\n\nTo use Mail mode, set `mail-user-agent' to
> sendmail-user-agent.
> > +To disable this warning, set `compose-mail-user-agent-warnings' to nil."
> > (if (> (length warn-vars) 1) "s" "")
> > (mapconcat 'symbol-name
> > warn-vars " "))))))
> > @@ -7423,8 +7423,8 @@ With a prefix argument, set VARIABLE to VALUE
> buffer-locally."
> > (t "globally"))))
> > (val (progn
> > (when obsolete
> > - (message (concat "‘%S’ is obsolete; "
> > - (if (symbolp obsolete) "use ‘%S’
> instead" "%s"))
> > + (message (concat "`%S' is obsolete; "
> > + (if (symbolp obsolete) "use `%S'
> instead" "%s"))
> > var obsolete)
> > (sit-for 3))
> > (if prop
> > @@ -7448,7 +7448,7 @@ With a prefix argument, set VARIABLE to VALUE
> buffer-locally."
> > (require 'cus-edit)
> > (setq type (widget-convert type))
> > (unless (widget-apply type :match value)
> > - (user-error "Value ‘%S’ does not match type %S of %S"
> > + (user-error "Value `%S' does not match type %S of %S"
> > value (car type) variable))))
> >
> > (if make-local
> > @@ -7659,7 +7659,7 @@ back on `completion-list-insert-choice-function'
> when nil."
> > ;; `base-position'. It's difficult to make any use of `base-size',
> > ;; so we just ignore it.
> > (unless (consp base-position)
> > - (message "Obsolete ‘base-size’ passed to choose-completion-string")
> > + (message "Obsolete `base-size' passed to choose-completion-string")
> > (setq base-position nil))
> >
> > (let* ((buffer (or buffer completion-reference-buffer))
> > @@ -8384,7 +8384,7 @@ CUSTOMIZATIONS, if non-nil, should be composed of
> alternating
> > `(progn
> >
> > (defcustom ,varalt-sym nil
> > - ,(format "Alist of alternative implementations for the ‘%s’
> command.
> > + ,(format "Alist of alternative implementations for the `%s'
> command.
> >
> > Each entry must be a pair (ALTNAME . ALTFUN), where:
> > ALTNAME - The name shown at user to describe the alternative
> implementation.
> > @@ -8397,22 +8397,22 @@ ALTFUN - The function called to implement this
> alternative."
> > (defvar ,varimp-sym nil "Internal use only.")
> >
> > (defun ,command (&optional arg)
> > - ,(format "Run generic command ‘%s’.
> > + ,(format "Run generic command `%s'.
> > If used for the first time, or with interactive ARG, ask the user which
> > -implementation to use for ‘%s’. The variable ‘%s’
> > +implementation to use for `%s'. The variable `%s'
> > contains the list of implementations currently supported for this
> command."
> > command-name command-name varalt-name)
> > (interactive "P")
> > (when (or arg (null ,varimp-sym))
> > (let ((val (completing-read
> > ,(format-message
> > - "Select implementation for command ‘%s’: "
> > + "Select implementation for command `%s': "
> > command-name)
> > ,varalt-sym nil t)))
> > (unless (string-equal val "")
> > (when (null ,varimp-sym)
> > (message
> > - "Use ‘C-u M-x %s RET’ to select another implementation"
> > + "Use C-u M-x %s RET`to select another implementation"
> > ,command-name)
> > (sit-for 3))
> > (customize-save-variable ',varimp-sym
> > @@ -8420,7 +8420,7 @@ contains the list of implementations currently
> supported for this command."
> > (if ,varimp-sym
> > (call-interactively ,varimp-sym)
> > (message "%s" ,(format-message
> > - "No implementation selected for command ‘%s’"
> > + "No implementation selected for command `%s'"
> > command-name)))))))
> >
> >
> > diff --git a/lisp/speedbar.el b/lisp/speedbar.el
> > index 2989274..97c977c 100644
> > --- a/lisp/speedbar.el
> > +++ b/lisp/speedbar.el
> > @@ -203,7 +203,7 @@ the user is done with the current expansion list.")
> > )
> > "List of functions to periodically call stealthily.
> > This list is of the form:
> > - '( (\"NAME\" FUNCTION ...)
> > + ( (\"NAME\" FUNCTION ...)
> > ...)
> > where NAME is the name of the major display mode these functions are
> > for, and the remaining elements FUNCTION are functions to call in order.
> > @@ -458,9 +458,9 @@ items is reached."
> > (defcustom speedbar-directory-button-trim-method 'span
> > "Indicates how the directory button will be displayed.
> > Possible values are:
> > - 'span - span large directories over multiple lines.
> > - 'trim - trim large directories to only show the last few.
> > - nil - no trimming."
> > + `span' - span large directories over multiple lines.
> > + `trim' - trim large directories to only show the last few.
> > + nil - no trimming."
> > :group 'speedbar
> > :type '(radio (const :tag "Span large directories over multiple
> lines."
> > span)
> > diff --git a/lisp/startup.el b/lisp/startup.el
> > index b5e258f..9caf485 100644
> > --- a/lisp/startup.el
> > +++ b/lisp/startup.el
> > @@ -86,7 +86,7 @@ or if your init file contains a line of this form:
> > (setq inhibit-startup-echo-area-message \"YOUR-USER-NAME\")
> > If your init file is byte-compiled, use the following form
> > instead:
> > - (eval '(setq inhibit-startup-echo-area-message \"YOUR-USER-NAME\"))
> > + (eval \\='(setq inhibit-startup-echo-area-message \"YOUR-USER-NAME\"))
> > Thus, someone else using a copy of your init file will see the
> > startup message unless he personally acts to inhibit it."
> > :type '(choice (const :tag "Don't inhibit")
> > @@ -360,7 +360,7 @@ this variable usefully is to set it while building
> and dumping Emacs."
> > :group 'initialization
> > :initialize #'custom-initialize-default
> > :set (lambda (_variable _value)
> > - (error "Customizing ‘site-run-file’ does not work")))
> > + (error "Customizing `site-run-file' does not work")))
> >
> > (make-obsolete-variable 'system-name "use (system-name) instead" "25.1")
> >
> > @@ -752,7 +752,7 @@ to prepare for opening the first frame (e.g. open a
> connection to an X server)."
> > (let ((elt (assoc completion tty-long-option-alist)))
> > ;; Check for abbreviated long option.
> > (or elt
> > - (error "Option ‘%s’ is ambiguous" argi))
> > + (error "Option `%s' is ambiguous" argi))
> > (setq argi (cdr elt)))
> > ;; Check for a short option.
> > (setq argval nil
> > @@ -804,13 +804,18 @@ to prepare for opening the first frame (e.g. open
> a connection to an X server)."
> > (defvar server-process)
> >
> > (defun startup--setup-quote-display ()
> > - "If curved quotes don't work, display ASCII approximations."
> > - (dolist (char-repl '((?‘ . ?\`) (?’ . ?\') (?“ . ?\") (?” . ?\")))
> > - (when (not (char-displayable-p (car char-repl)))
> > - (unless standard-display-table
> > - (setq standard-display-table (make-display-table)))
> > - (aset standard-display-table (car char-repl)
> > - (vector (make-glyph-code (cdr char-repl) 'shadow))))))
> > + "Display ASCII approximations on user request or if curved quotes
> don't work."
> > + (when (memq text-quoting-style '(nil grave straight))
> > + (dolist (char-repl '((?‘ . ?\`) (?’ . ?\') (?“ . ?\") (?” . ?\")))
> > + (let ((char (car char-repl))
> > + (repl (cdr char-repl)))
> > + (when (or text-quoting-style (not (char-displayable-p char)))
> > + (when (and (eq repl ?\`) (eq text-quoting-style 'straight))
> > + (setq repl ?\'))
> > + (unless standard-display-table
> > + (setq standard-display-table (make-display-table)))
> > + (aset standard-display-table char
> > + (vector (make-glyph-code repl 'shadow))))))))
> >
> > (defun command-line ()
> > "A subroutine of `normal-top-level'.
> > @@ -911,7 +916,7 @@ please check its value")
> > ((stringp completion)
> > (let ((elt (assoc completion longopts)))
> > (unless elt
> > - (error "Option ‘%s’ is ambiguous" argi))
> > + (error "Option `%s' is ambiguous" argi))
> > (setq argi (substring (car elt) 1))))
> > (t
> > (setq argval nil
> > @@ -954,7 +959,7 @@ please check its value")
> > (setq done t)))
> > ;; Was argval set but not used?
> > (and argval
> > - (error "Option ‘%s’ doesn't allow an argument" argi))))
> > + (error "Option `%s' doesn't allow an argument" argi))))
> >
> > ;; Re-attach the --display arg.
> > (and display-arg (setq args (append display-arg args)))
> > @@ -973,7 +978,7 @@ please check its value")
> > (not (featurep
> > (intern
> > (concat (symbol-name initial-window-system)
> "-win")))))
> > - (error "Unsupported window system ‘%s’" initial-window-system))
> > + (error "Unsupported window system `%s'" initial-window-system))
> > ;; Process window-system specific command line parameters.
> > (setq command-line-args
> > (let ((window-system initial-window-system)) ;Hack attack!
> > @@ -1184,10 +1189,10 @@ please check its value")
> > (display-warning
> > 'initialization
> > (format-message "\
> > -An error occurred while loading ‘%s’:\n\n%s%s%s\n\n\
> > +An error occurred while loading `%s':\n\n%s%s%s\n\n\
> > To ensure normal operation, you should investigate and remove the
> > cause of the error in your initialization file. Start Emacs with
> > -the ‘--debug-init’ option to view a complete error backtrace."
> > +the `--debug-init' option to view a complete error backtrace."
> > user-init-file
> > (get (car error) 'error-message)
> > (if (cdr error) ": " "")
> > @@ -1234,6 +1239,11 @@ the ‘--debug-init’ option to view a complete
> error backtrace."
> > ;; unibyte (display table, terminal coding system &c).
> > (set-language-environment current-language-environment)))
> >
> > + ;; Setup quote display again, if the init file sets
> > + ;; text-quoting-style to a non-nil value.
> > + (when (and (not noninteractive) text-quoting-style)
> > + (startup--setup-quote-display))
> > +
> > ;; Do this here in case the init file sets mail-host-address.
> > (if (equal user-mail-address "")
> > (setq user-mail-address (or (getenv "EMAIL")
> > @@ -1320,8 +1330,8 @@ the ‘--debug-init’ option to view a complete error
> backtrace."
> > (setq warned t)
> > (display-warning 'initialization
> > (format-message "\
> > -Your ‘load-path’ seems to contain\n\
> > -your ‘.emacs.d’ directory: %s\n\
> > +Your `load-path' seems to contain\n\
> > +your `.emacs.d' directory: %s\n\
> > This is likely to cause problems...\n\
> > Consider using a subdirectory instead, e.g.: %s"
> > dir (expand-file-name
> > @@ -1380,11 +1390,11 @@ settings will be marked as \"CHANGED outside of
> Customize\"."
> >
> > (defcustom initial-scratch-message (purecopy "\
> > ;; This buffer is for notes you don't want to save, and for Lisp
> evaluation.
> > -;; If you want to create a file, visit that file with C-x C-f,
> > +;; If you want to create a file, visit that file with \\[find-file],
> > ;; then enter the text in that file's own buffer.
> >
> > ")
> > - "Initial message displayed in *scratch* buffer at startup.
> > + "Initial documentation displayed in *scratch* buffer at startup.
> > If this is nil, no message will be displayed."
> > :type '(choice (text :tag "Message")
> > (const :tag "none" nil))
> > @@ -2270,7 +2280,7 @@ nil default-directory" name)
> > (if (stringp completion)
> > (let ((elt (member completion longopts)))
> > (or elt
> > - (error "Option ‘%s’ is ambiguous" argi))
> > + (error "Option `%s' is ambiguous" argi))
> > (setq argi (substring (car elt) 1)))
> > (setq argval nil
> > argi orig-argi)))))
> > @@ -2340,7 +2350,7 @@ nil default-directory" name)
> > (setq inhibit-startup-screen t)
> > (setq tem (or argval (pop command-line-args-left)))
> > (or (stringp tem)
> > - (error "File name omitted from ‘-insert’
> option"))
> > + (error "File name omitted from `-insert'
> option"))
> > (insert-file-contents
> (command-line-normalize-file-name tem)))
> >
> > ((equal argi "-kill")
> > @@ -2375,7 +2385,7 @@ nil default-directory" name)
> > ;; An explicit option to specify visiting a file.
> > (setq tem (or argval (pop command-line-args-left)))
> > (unless (stringp tem)
> > - (error "File name omitted from ‘%s’ option"
> argi))
> > + (error "File name omitted from `%s' option"
> argi))
> > (funcall process-file-arg tem))
> >
> > ;; These command lines now have no effect.
> > @@ -2396,7 +2406,7 @@ nil default-directory" name)
> > (unless did-hook
> > ;; Presume that the argument is a file name.
> > (if (string-match "\\`-" argi)
> > - (error "Unknown option ‘%s’" argi))
> > + (error "Unknown option `%s'" argi))
> > ;; FIXME: Why do we only inhibit the startup
> > ;; screen for -nw?
> > (unless initial-window-system
> > @@ -2420,7 +2430,7 @@ nil default-directory" name)
> > (get-buffer "*scratch*")
> > (with-current-buffer "*scratch*"
> > (when (zerop (buffer-size))
> > - (insert initial-scratch-message)
> > + (insert (substitute-command-keys initial-scratch-message))
> > (set-buffer-modified-p nil))))
> >
> > ;; Prepend `initial-buffer-choice' to `displayable-buffers'.
> > diff --git a/lisp/subr.el b/lisp/subr.el
> > index 61b8706..ce3011d 100644
> > --- a/lisp/subr.el
> > +++ b/lisp/subr.el
> > @@ -72,7 +72,7 @@ For more information, see Info node `(elisp)Declaring
> Functions'."
> > If FORM does return, signal an error."
> > (declare (debug t))
> > `(prog1 ,form
> > - (error "Form marked with ‘noreturn’ did return")))
> > + (error "Form marked with `noreturn' did return")))
> >
> > (defmacro 1value (form)
> > "Evaluate FORM, expecting a constant return value.
> > @@ -320,7 +320,7 @@ Defaults to `error'."
> > (mapcar (lambda (parent)
> > (cons parent
> > (or (get parent 'error-conditions)
> > - (error "Unknown signal ‘%s’"
> parent))))
> > + (error "Unknown signal `%s'"
> parent))))
> > parent))
> > (cons parent (get parent 'error-conditions)))))
> > (put name 'error-conditions
> > @@ -1607,7 +1607,7 @@ can do the job."
> > (let* ((sym (cadr list-var))
> > (append (eval append))
> > (msg (format-message
> > - "‘add-to-list’ can't use lexical var ‘%s’; use
> ‘push’ or ‘cl-pushnew’"
> > + "`add-to-list' can't use lexical var `%s'; use
> `push' or `cl-pushnew'"
> > sym))
> > ;; Big ugly hack so we only output a warning during
> > ;; byte-compilation, and so we can use
> > @@ -2208,7 +2208,7 @@ Any input that is not one of CHARS is ignored.
> > If optional argument INHIBIT-KEYBOARD-QUIT is non-nil, ignore
> > keyboard-quit events while waiting for a valid input."
> > (unless (consp chars)
> > - (error "Called ‘read-char-choice’ without valid char choices"))
> > + (error "Called `read-char-choice' without valid char choices"))
> > (let (char done show-help (helpbuf " *Char Help*"))
> > (let ((cursor-in-echo-area t)
> > (executing-kbd-macro executing-kbd-macro)
> > @@ -4773,7 +4773,7 @@ Examples of version conversion:
> >
> > See documentation for `version-separator' and `version-regexp-alist'."
> > (or (and (stringp ver) (> (length ver) 0))
> > - (error "Invalid version string: ‘%s’" ver))
> > + (error "Invalid version string: `%s'" ver))
> > ;; Change .x.y to 0.x.y
> > (if (and (>= (length ver) (length version-separator))
> > (string-equal (substring ver 0 (length version-separator))
> > @@ -4805,9 +4805,9 @@ See documentation for `version-separator' and
> `version-regexp-alist'."
> > ((string-match "^[-_+ ]?\\([a-zA-Z]\\)$" s)
> > (push (- (aref (downcase (match-string 1 s)) 0) ?a -1)
> > lst))
> > - (t (error "Invalid version syntax: ‘%s’" ver))))))
> > + (t (error "Invalid version syntax: `%s'" ver))))))
> > (if (null lst)
> > - (error "Invalid version syntax: ‘%s’" ver)
> > + (error "Invalid version syntax: `%s'" ver)
> > (nreverse lst)))))
> >
> >
> > diff --git a/lisp/term/common-win.el b/lisp/term/common-win.el
> > index ccac142..98ad5ac 100644
> > --- a/lisp/term/common-win.el
> > +++ b/lisp/term/common-win.el
> > @@ -112,7 +112,7 @@
> > ;; Handle the -xrm option.
> > (defun x-handle-xrm-switch (switch)
> > (unless (consp x-invocation-args)
> > - (error "%s: missing argument to ‘%s’ option" (invocation-name)
> switch))
> > + (error "%s: missing argument to `%s' option" (invocation-name)
> switch))
> > (setq x-command-line-resources
> > (if (null x-command-line-resources)
> > (pop x-invocation-args)
> > @@ -152,7 +152,7 @@
> > ;; the initial frame, too.
> > (defun x-handle-name-switch (switch)
> > (or (consp x-invocation-args)
> > - (error "%s: missing argument to ‘%s’ option" (invocation-name)
> switch))
> > + (error "%s: missing argument to `%s' option" (invocation-name)
> switch))
> > (setq x-resource-name (pop x-invocation-args)
> > initial-frame-alist (cons (cons 'name x-resource-name)
> > initial-frame-alist)))
> > @@ -207,7 +207,7 @@ have been processed."
> > (let ((elt (assoc completion option-alist)))
> > ;; Check for abbreviated long option.
> > (or elt
> > - (error "Option ‘%s’ is ambiguous" this-switch))
> > + (error "Option `%s' is ambiguous" this-switch))
> > (setq this-switch completion))))))
> > (setq aelt (assoc this-switch option-alist))
> > (if aelt (setq handler (nth 2 aelt)))
> > diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
> > index c325661..ebd76a6 100644
> > --- a/lisp/term/x-win.el
> > +++ b/lisp/term/x-win.el
> > @@ -93,7 +93,7 @@
> > ;; Handle the --parent-id option.
> > (defun x-handle-parent-id (switch)
> > (or (consp x-invocation-args)
> > - (error "%s: missing argument to ‘%s’ option" (invocation-name)
> switch))
> > + (error "%s: missing argument to `%s' option" (invocation-name)
> switch))
> > (setq initial-frame-alist (cons
> > (cons 'parent-id
> > (string-to-number (car
> x-invocation-args)))
> > @@ -104,7 +104,7 @@
> > ;; to give us back our session id we had on the previous run.
> > (defun x-handle-smid (switch)
> > (or (consp x-invocation-args)
> > - (error "%s: missing argument to ‘%s’ option" (invocation-name)
> switch))
> > + (error "%s: missing argument to `%s' option" (invocation-name)
> switch))
> > (setq x-session-previous-id (car x-invocation-args)
> > x-invocation-args (cdr x-invocation-args)))
> >
> > diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
> > index 3fe21c4..87c2a95 100644
> > --- a/lisp/textmodes/ispell.el
> > +++ b/lisp/textmodes/ispell.el
> > @@ -388,7 +388,7 @@ It consists of pairs (REGEXP . DICTIONARY). If
> REGEXP is found
> > in the message headers, `ispell-local-dictionary' will be set to
> > DICTIONARY if `ispell-local-dictionary' is not buffer-local.
> > E.g. you may use the following value:
> > - '((\"^Newsgroups:[ \\t]*de\\\\.\" . \"deutsch8\")
> > + ((\"^Newsgroups:[ \\t]*de\\\\.\" . \"deutsch8\")
> > (\"^To:[^\\n,]+\\\\.de[ \\t\\n,>]\" . \"deutsch8\"))"
> > :type '(repeat (cons regexp string))
> > :group 'ispell)
> > @@ -484,7 +484,7 @@ The function must take one string argument and
> return a string."
> > "When non-nil ispell uses framepop to display choices in a dedicated
> frame.
> > You can set this variable to dynamically use framepop if you are in a
> > window system by evaluating the following on startup to set this
> variable:
> > - (and window-system (condition-case () (require 'framepop) (error
> nil)))"
> > + (and window-system (condition-case () (require \\='framepop) (error
> nil)))"
> > :type 'boolean
> > :group 'ispell)
> >
> > diff --git a/lisp/textmodes/reftex-ref.el b/lisp/textmodes/reftex-ref.el
> > index 0714723..df78447 100644
> > --- a/lisp/textmodes/reftex-ref.el
> > +++ b/lisp/textmodes/reftex-ref.el
> > @@ -228,7 +228,7 @@ This function is controlled by the settings of
> reftex-insert-label-flags."
> > (symbol-value
> reftex-docstruct-symbol)))
> > (ding)
> > (if (y-or-n-p
> > - (format-message "Label ‘%s’ exists. Use anyway? "
> label))
> > +` (format-message "Label `%s' exists. Use anyway? "
> label))
> > (setq valid t)))
> >
> > ;; Label is ok
> > diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el
> > index b9d4b7c..bdae6e5 100644
> > --- a/lisp/textmodes/reftex-toc.el
> > +++ b/lisp/textmodes/reftex-toc.el
> > @@ -876,7 +876,7 @@ label prefix determines the wording of a reference."
> > (setq newlabel (read-string (format "Rename label \"%s\" to:"
> label)))
> > (if (assoc newlabel (symbol-value reftex-docstruct-symbol))
> > (if (not (y-or-n-p
> > - (format-message "Label ‘%s’ exists. Use anyway? "
> label)))
> > + (format-message "Label `%s' exists. Use anyway? "
> label)))
> > (error "Abort")))
> > (save-excursion
> > (save-window-excursion
> > diff --git a/lisp/textmodes/reftex-vars.el
> b/lisp/textmodes/reftex-vars.el
> > index a8f5fce..482dd4c 100644
> > --- a/lisp/textmodes/reftex-vars.el
> > +++ b/lisp/textmodes/reftex-vars.el
> > @@ -1153,9 +1153,9 @@ path."
> > "Sorting of the entries found in BibTeX databases by reftex-citation.
> > Possible values:
> > nil Do not sort entries.
> > -'author Sort entries by author name.
> > -'year Sort entries by increasing year.
> > -'reverse-year Sort entries by decreasing year."
> > +`author' Sort entries by author name.
> > +`year' Sort entries by increasing year.
> > +`reverse-year' Sort entries by decreasing year."
> > :group 'reftex-citation-support
> > :type '(choice (const :tag "not" nil)
> > (const :tag "by author" author)
> > diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
> > index f95f4fa..7dc9184 100644
> > --- a/lisp/textmodes/reftex.el
> > +++ b/lisp/textmodes/reftex.el
> > @@ -2932,7 +2932,7 @@ When LEVEL is non-nil, increase section numbers on
> that level.
> >
> > ;;;***
> >
> > -;;;### (autoloads nil "reftex-ref" "reftex-ref.el"
> "35c0c8fcf8eebfc4366bf0f78aed7f2f")
> > +;;;### (autoloads nil "reftex-ref" "reftex-ref.el"
> "86c0a243e49d55bb33a32ddac613e189")
> > ;;; Generated autoloads from reftex-ref.el
> >
> > (autoload 'reftex-label-location "reftex-ref" "\
> > @@ -3046,7 +3046,7 @@ During a selection process, these are the local
> bindings.
> >
> > ;;;***
> >
> > -;;;### (autoloads nil "reftex-toc" "reftex-toc.el"
> "e3514ef292edfce6722c75225456ffa1")
> > +;;;### (autoloads nil "reftex-toc" "reftex-toc.el"
> "db9b727d89e2a6ff01986e7c6aff1058")
> > ;;; Generated autoloads from reftex-toc.el
> >
> > (autoload 'reftex-toc "reftex-toc" "\
> > diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el
> > index 7a2857a..9625ec2 100644
> > --- a/lisp/textmodes/rst.el
> > +++ b/lisp/textmodes/rst.el
> > @@ -2138,15 +2138,15 @@ for completion and choices.
> >
> > (a) If user selects bullets or #, it's just added.
> > (b) If user selects enumerations, a further prompt is given. User
> needs to
> > - input a starting item, for example 'e' for 'A)' style.
> > + input a starting item, for example `e' for `A)' style.
> >
> > The position of the new list is arranged according to whether or not the
> > current line and the previous line are blank lines.
> >
> > 2. When continuing a list, one thing needs to be noticed:
> >
> > -List style alphabetical list, such as 'a.', and roman numerical list,
> such as
> > -'i.', have some overlapping items, for example 'v.' The function can
> deal with
> > +List style alphabetical list, such as `a.', and roman numerical list,
> such as
> > +`i.', have some overlapping items, for example `v.' The function can
> deal with
> > the problem elegantly in most situations. But when those overlapped
> list are
> > preceded by a blank line, it is hard to determine which type to use
> > automatically. The function uses alphabetical list by default. If you
> want
> > diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
> > index 1d872f0..cb65e5f 100644
> > --- a/lisp/textmodes/sgml-mode.el
> > +++ b/lisp/textmodes/sgml-mode.el
> > @@ -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 `''.
> > 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/table.el b/lisp/textmodes/table.el
> > index 9c50eca..151d648 100644
> > --- a/lisp/textmodes/table.el
> > +++ b/lisp/textmodes/table.el
> > @@ -2806,8 +2806,8 @@ ORIENTATION is a symbol either horizontally or
> vertically."
> > ;;;###autoload
> > (defun table-justify (what justify)
> > "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'."
> > (interactive
> > (list (let* ((_ (barf-if-buffer-read-only))
> > (completion-ignore-case t)
> > @@ -2822,8 +2822,8 @@ WHAT is a symbol ‘cell’, ‘row’ or ‘column’.
> JUSTIFY is a symbol
> > ;;;###autoload
> > (defun table-justify-cell (justify &optional paragraph)
> > "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."
> > (interactive
> > @@ -2835,8 +2835,8 @@ otherwise the entire cell contents is justified."
> > ;;;###autoload
> > (defun table-justify-row (justify)
> > "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."
> > (interactive
> > (list (table--query-justification)))
> > (let((cell-list (table--horizontal-cell-list nil nil 'top)))
> > @@ -2852,8 +2852,8 @@ or ‘top’, ‘middle’, ‘bottom’ or ‘none’ for
> vertical."
> > ;;;###autoload
> > (defun table-justify-column (justify)
> > "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."
> > (interactive
> > (list (table--query-justification)))
> > (let((cell-list (table--vertical-cell-list nil nil 'left)))
> > @@ -3341,8 +3341,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 a 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:
> >
> > @@ -4461,8 +4461,8 @@ looking at the appearance of the CELL contents."
> >
> > (defun table--justify-cell-contents (justify &optional paragraph)
> > "Justify the current cell contents.
> > -JUSTIFY is a symbol ‘left’, ‘center’ or ‘right’ for horizontal, or
> ‘top’,
> > -‘middle’, ‘bottom’ or ‘none’ for vertical. When PARAGRAPH is non-nil
> the
> > +JUSTIFY is a symbol `left', `center' or `right' for horizontal, or
> `top',
> > +`middle', `bottom' or `none' for vertical. When PARAGRAPH is non-nil
> the
> > justify operation is limited to the current paragraph."
> > (table-with-cache-buffer
> > (let ((beg (point-min))
> > diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
> > index 6244189..5fdf9e3 100644
> > --- a/lisp/textmodes/tex-mode.el
> > +++ b/lisp/textmodes/tex-mode.el
> > @@ -3410,6 +3410,8 @@ There might be text before point."
> > (not (or
> > ;; Don't compose \alpha@foo.
> > (eq after-syntax ?_)
> > + ;; Don't compose inside verbatim blocks!
> > + (nth 8 (syntax-ppss))
> > ;; The \alpha in \alpha2 may be composed but of course
> \alphax may not.
> > (and (eq after-syntax ?w)
> > (or (< after-char ?0)
> > diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el
> > index 0ce7064..0508426 100644
> > --- a/lisp/textmodes/texnfo-upd.el
> > +++ b/lisp/textmodes/texnfo-upd.el
> > @@ -1407,7 +1407,7 @@ level in the Texinfo file; when looking for the
> `Previous' pointer,
> > the section found will be at the same or higher hierarchical level in
> > the Texinfo file; when looking for the `Up' pointer, the section found
> > will be at some level higher in the Texinfo file. The fourth argument
> > -\(one of `next’, `previous’, or `up'\) specifies whether to find the
> > +\(one of `next', `previous', or `up'\) specifies whether to find the
> > `Next', `Previous', or `Up' pointer."
> > (let ((case-fold-search t))
> > (cond ((eq direction 'next)
> > diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el
> > index c94e417..0e645fc 100644
> > --- a/lisp/textmodes/tildify.el
> > +++ b/lisp/textmodes/tildify.el
> > @@ -160,7 +160,7 @@ a simple pass through function could be used:
> > (setq-local tildify-foreach-region-function
> > (lambda (cb beg end) (funcall cb beg end)))
> > or better still:
> > - (setq-local tildify-foreach-region-function 'funcall)
> > + (setq-local tildify-foreach-region-function \\='funcall)
> > See `tildify-foreach-ignore-environments' function for other ways to
> use the
> > variable."
> > :version "25.1"
> > diff --git a/lisp/textmodes/two-column.el b/lisp/textmodes/two-column.el
> > index 5e318b5..4133e0f 100644
> > --- a/lisp/textmodes/two-column.el
> > +++ b/lisp/textmodes/two-column.el
> > @@ -373,7 +373,7 @@ First column's text sSs Second column's text
> > \(See \\[describe-mode] .)"
> > (interactive "*p")
> > (and (2C-other)
> > - (if (y-or-n-p (format-message "Overwrite associated buffer ‘%s’?
> "
> > + (if (y-or-n-p (format-message "Overwrite associated buffer `%s'?
> "
> > (buffer-name (2C-other))))
> > (with-current-buffer (2C-other)
> > (erase-buffer))
> > diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el
> > index 84ffcca..a9c539b 100644
> > --- a/lisp/thingatpt.el
> > +++ b/lisp/thingatpt.el
> > @@ -145,7 +145,7 @@ a symbol as a valid THING."
> > (let ((bounds (bounds-of-thing-at-point thing)))
> > (when bounds
> > (buffer-substring (car bounds) (cdr bounds)))))))
> > - (when (and text no-properties)
> > + (when (and text no-properties (sequencep text))
> > (set-text-properties 0 (length text) nil text))
> > text))
> >
> > @@ -289,7 +289,7 @@ If nil, construct the regexp from
> `thing-at-point-uri-schemes'.")
> > "uuid:" "vemmi://" "webcal://" "xri://" "xmlrpc.beep://"
> > "xmlrpc.beeps://" "z39.50r://" "z39.50s://" "xmpp:"
> > ;; Compatibility
> > - "fax:" "mms://" "mmsh://" "modem:" "prospero:" "snews:"
> > + "fax:" "man:" "mms://" "mmsh://" "modem:" "prospero:" "snews:"
> > "wais://")
> > "List of URI schemes recognized by `thing-at-point-url-at-point'.
> > Each string in this list should correspond to the start of a
> > diff --git a/lisp/thumbs.el b/lisp/thumbs.el
> > index 409ba7c..da83f3a 100644
> > --- a/lisp/thumbs.el
> > +++ b/lisp/thumbs.el
> > @@ -235,7 +235,7 @@ Optional arguments are:
> > ARG any arguments to the ACTION command,
> > OUTPUT-FORMAT is the file format to output (default is jpeg),
> > ACTION-PREFIX is the symbol to place before the ACTION command
> > - (defaults to '-' but can sometimes be '+')."
> > + (defaults to `-' but can sometimes be `+')."
> > (call-process thumbs-conversion-program nil nil nil
> > (or action-prefix "-")
> > action
> > diff --git a/lisp/tree-widget.el b/lisp/tree-widget.el
> > index a29658a..0f1e4de 100644
> > --- a/lisp/tree-widget.el
> > +++ b/lisp/tree-widget.el
> > @@ -294,9 +294,9 @@ Typically it should contain something like this:
> >
> > (tree-widget-set-parent-theme \"my-parent-theme\")
> > (tree-widget-set-image-properties
> > - (if (featurep 'xemacs)
> > - '(:ascent center)
> > - '(:ascent center :mask (heuristic t))
> > + (if (featurep \\='xemacs)
> > + \\='(:ascent center)
> > + \\='(:ascent center :mask (heuristic t))
> > ))"
> > (or name (setq name (or tree-widget-theme "default")))
> > (unless (string-equal name (tree-widget-theme-name))
> > diff --git a/lisp/tutorial.el b/lisp/tutorial.el
> > index e9095b3..f8660f5 100644
> > --- a/lisp/tutorial.el
> > +++ b/lisp/tutorial.el
> > @@ -136,18 +136,18 @@ options:
> > (setq mapsym s)))))
> > (insert
> > (format
> > - "The default Emacs binding for the key %s is the command
> ‘%s’. "
> > + "The default Emacs binding for the key %s is the command
> `%s'. "
> > (key-description key)
> > db))
> > (insert "However, your customizations have "
> > (if cb
> > - (format-message "rebound it to the command
> ‘%s’" cb)
> > + (format-message "rebound it to the command
> `%s'" cb)
> > "unbound it"))
> > (insert ".")
> > (when mapsym
> > (insert " (For the more advanced user:"
> > (format-message
> > - " This binding is in the keymap ‘%s’.)" mapsym)))
> > + " This binding is in the keymap `%s'.)" mapsym)))
> > (if (string= where "")
> > (unless (keymapp db)
> > (insert "\n\nYou can use M-x "
> > @@ -159,7 +159,7 @@ options:
> > ""
> > "the key")
> > where
> > - (format-message " to get the function ‘%s’."
> db))))
> > + (format-message " to get the function `%s'."
> db))))
> > (fill-region (point-min) (point)))))
> > (help-print-return-message))))
> >
> > @@ -451,7 +451,7 @@ where
> > (lookup-key global-map
> > [menu-bar]))))
> > (stringp cwhere))
> > - (format-message "the ‘%s’ menu" cwhere)
> > + (format-message "the `%s' menu" cwhere)
> > "the menus"))))
> > (setq where ""))
> > (setq remark nil)
> > diff --git a/lisp/type-break.el b/lisp/type-break.el
> > index c7043b5..8503736 100644
> > --- a/lisp/type-break.el
> > +++ b/lisp/type-break.el
> > @@ -803,7 +803,7 @@ this or ask the user to start one right now."
> > (type-break-mode-line-message-mode)
> > (t
> > (beep t)
> > - (message "%sYou should take a typing break now. Do ‘%s’."
> > + (message "%sYou should take a typing break now. Do `%s'."
> > (type-break-time-stamp)
> > (substitute-command-keys "\\[type-break]"))
> > (sit-for 1)
> > diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
> > index 13b9774..e011b96 100644
> > --- a/lisp/url/url-util.el
> > +++ b/lisp/url/url-util.el
> > @@ -285,7 +285,7 @@ Will not do anything if `url-show-status' is nil."
> > "Build a query-string.
> >
> > Given a QUERY in the form:
> > -'((key1 val1)
> > + ((key1 val1)
> > (key2 val2)
> > (key3 val1 val2)
> > (key4)
> > diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el
> > index 7e75277..46c2ec3 100644
> > --- a/lisp/url/url-vars.el
> > +++ b/lisp/url/url-vars.el
> > @@ -122,9 +122,9 @@ cookies -- never accept HTTP cookies
> >
> > Samples:
> >
> > - (setq url-privacy-level 'high)
> > - (setq url-privacy-level '(email lastloc)) ;; equivalent to 'high
> > - (setq url-privacy-level '(os))
> > + (setq url-privacy-level \\='high)
> > + (setq url-privacy-level \\='(email lastloc)) ;; equivalent to
> \\='high
> > + (setq url-privacy-level \\='(os))
> >
> > ::NOTE::
> > This variable controls several other variables and is _NOT_
> automatically
> > diff --git a/lisp/vc/ediff-mult.el b/lisp/vc/ediff-mult.el
> > index c81afce..7bfc3b6 100644
> > --- a/lisp/vc/ediff-mult.el
> > +++ b/lisp/vc/ediff-mult.el
> > @@ -1456,7 +1456,8 @@ Useful commands:
> > (map-extents 'delete-extent)
> > (mapc 'delete-overlay (overlays-in 1 1)))
> >
> > - (insert "This is a registry of all active Ediff sessions.
> > + (insert (substitute-command-keys "\
> > +This is a registry of all active Ediff sessions.
> >
> > Useful commands:
> > button2, `v', RET over a session record: switch to that session
> > @@ -1471,7 +1472,7 @@ Useful commands:
> > \t\tActive Ediff Sessions:
> > \t\t----------------------
> >
> > -")
> > +"))
> > ;; purge registry list from dead buffers
> > (mapc (lambda (elt)
> > (if (not (ediff-buffer-live-p elt))
> > diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el
> > index b665034..b45d533 100644
> > --- a/lisp/vc/ediff-ptch.el
> > +++ b/lisp/vc/ediff-ptch.el
> > @@ -406,7 +406,7 @@ other files, enter /dev/null
> > (with-output-to-temp-buffer ediff-msg-buffer
> > (ediff-with-current-buffer standard-output
> > (fundamental-mode))
> > - (princ (format "
> > + (princ (format-message "
> > Ediff has inferred that
> > %s
> > %s
> > diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
> > index 50c6d96..8a0f554 100644
> > --- a/lisp/vc/vc-git.el
> > +++ b/lisp/vc/vc-git.el
> > @@ -270,8 +270,10 @@ matching the resulting Git log output, and KEYWORDS
> is a list of
> > (disp-rev (or (vc-git--symbolic-ref file)
> > (substring rev 0 7)))
> > (def-ml (vc-default-mode-line-string 'Git file))
> > - (help-echo (get-text-property 0 'help-echo def-ml)))
> > + (help-echo (get-text-property 0 'help-echo def-ml))
> > + (face (get-text-property 0 'face def-ml)))
> > (propertize (replace-regexp-in-string (concat rev "\\'") disp-rev
> def-ml t t)
> > + 'face face
> > 'help-echo (concat help-echo "\nCurrent revision: "
> rev))))
> >
> > (cl-defstruct (vc-git-extra-fileinfo
> > diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
> > index e674f0e..3e6d2a9 100644
> > --- a/lisp/vc/vc-hooks.el
> > +++ b/lisp/vc/vc-hooks.el
> > @@ -380,14 +380,14 @@ If the argument is a list, the files must all have
> the same back end."
> > If FILES are not registered, this function always returns nil.
> > For registered files, the possible values are:
> >
> > - 'implicit FILES are always writable, and checked out `implicitly'
> > + `implicit' FILES are always writable, and checked out `implicitly'
> > when the user saves the first changes to the file.
> >
> > - 'locking FILES are read-only if up-to-date; user must type
> > + `locking' FILES are read-only if up-to-date; user must type
> > \\[vc-next-action] before editing. Strict locking
> > is assumed.
> >
> > - 'announce FILES are read-only if up-to-date; user must type
> > + `announce' FILES are read-only if up-to-date; user must type
> > \\[vc-next-action] before editing. But other users
> > may be editing at the same time."
> > (vc-call-backend backend 'checkout-model files))
> > @@ -416,10 +416,10 @@ For registered files, the possible values are:
> > A return of nil from this function means we have no information on the
> > status of this file. Otherwise, the value returned is one of:
> >
> > - 'up-to-date The working file is unmodified with respect to the
> > + `up-to-date' The working file is unmodified with respect to the
> > latest version on the current branch, and not
> locked.
> >
> > - 'edited The working file has been edited by the user. If
> > + `edited' The working file has been edited by the user. If
> > locking is used for the file, this state means that
> > the current version is locked by the calling user.
> > This status should *not* be reported for files
> > @@ -429,44 +429,44 @@ status of this file. Otherwise, the value
> returned is one of:
> > USER The current version of the working file is locked
> by
> > some other USER (a string).
> >
> > - 'needs-update The file has not been edited by the user, but
> there is
> > + `needs-update' The file has not been edited by the user, but
> there is
> > a more recent version on the current branch stored
> > in the repository.
> >
> > - 'needs-merge The file has been edited by the user, and there is
> also
> > + `needs-merge' The file has been edited by the user, and there is
> also
> > a more recent version on the current branch stored
> in
> > the repository. This state can only occur if
> locking
> > is not used for the file.
> >
> > - 'unlocked-changes The working version of the file is not locked,
> > + `unlocked-changes' The working version of the file is not locked,
> > but the working file has been changed with respect
> > to that version. This state can only occur for
> files
> > with locking; it represents an erroneous condition
> that
> > should be resolved by the user (vc-next-action will
> > prompt the user to do it).
> >
> > - 'added Scheduled to go into the repository on the next
> commit.
> > + `added' Scheduled to go into the repository on the next
> commit.
> > Often represented by vc-working-revision = \"0\"
> in VCSes
> > with monotonic IDs like Subversion and Mercurial.
> >
> > - 'removed Scheduled to be deleted from the repository on
> next commit.
> > + `removed' Scheduled to be deleted from the repository on
> next commit.
> >
> > - 'conflict The file contains conflicts as the result of a
> merge.
> > + `conflict' The file contains conflicts as the result of a
> merge.
> > For now the conflicts are text conflicts. In the
> > future this might be extended to deal with metadata
> > conflicts too.
> >
> > - 'missing The file is not present in the file system, but
> the VC
> > + `missing' The file is not present in the file system, but
> the VC
> > system still tracks it.
> >
> > - 'ignored The file showed up in a dir-status listing with a
> flag
> > + `ignored' The file showed up in a dir-status listing with a
> flag
> > indicating the version-control system is ignoring
> it,
> > Note: This property is not set reliably (some VCSes
> > don't have useful directory-status commands) so
> assume
> > that any file with vc-state nil might be ignorable
> > without VC knowing it.
> >
> > - 'unregistered The file is not under version control."
> > + `unregistered' The file is not under version control."
> >
> > ;; Note: in Emacs 22 and older, return of nil meant the file was
> > ;; unregistered. This is potentially a source of
> > diff --git a/lisp/wdired.el b/lisp/wdired.el
> > index 0c113b3..a9e1e2a 100644
> > --- a/lisp/wdired.el
> > +++ b/lisp/wdired.el
> > @@ -494,7 +494,7 @@ non-nil means return old filename."
> > overwrite))
> > (error
> > (setq errors (1+ errors))
> > - (dired-log "Rename ‘%s’ to ‘%s’ failed:\n%s\n"
> > + (dired-log "Rename `%s' to `%s' failed:\n%s\n"
> > file-ori file-new
> > err)))))))))
> > errors))
> > @@ -651,7 +651,7 @@ If OLD, return the old target. If MOVE, move point
> before it."
> > (substitute-in-file-name link-to-new) link-from))
> > (error
> > (setq errors (1+ errors))
> > - (dired-log "Link ‘%s’ to ‘%s’ failed:\n%s\n"
> > + (dired-log "Link `%s' to `%s' failed:\n%s\n"
> > link-from link-to-new
> > err)))))
> > (cons changes errors)))
> > @@ -837,10 +837,10 @@ Like original function but it skips read-only
> words."
> > (unless (equal 0 (process-file dired-chmod-program
> > nil nil nil perm-tmp
> filename))
> > (setq errors (1+ errors))
> > - (dired-log "%s %s ‘%s’ failed\n\n"
> > + (dired-log "%s %s `%s' failed\n\n"
> > dired-chmod-program perm-tmp filename)))
> > (setq errors (1+ errors))
> > - (dired-log "Cannot parse permission ‘%s’ for file ‘%s’\n\n"
> > + (dired-log "Cannot parse permission `%s' for file `%s'\n\n"
> > perms-new filename)))
> > (goto-char (next-single-property-change (1+ (point)) prop-wanted
> > nil (point-max))))
> > diff --git a/lisp/whitespace.el b/lisp/whitespace.el
> > index 3191496..0c20850 100644
> > --- a/lisp/whitespace.el
> > +++ b/lisp/whitespace.el
> > @@ -1867,10 +1867,10 @@ cleaning up these problems."
> > (when has-bogus
> > (goto-char (point-max))
> > (insert (substitute-command-keys
> > - " Type ‘\\[whitespace-cleanup]’")
> > + " Type `\\[whitespace-cleanup]'")
> > " to cleanup the buffer.\n\n"
> > (substitute-command-keys
> > - " Type ‘\\[whitespace-cleanup-region]’")
> > + " Type `\\[whitespace-cleanup-region]'")
> > " to cleanup a region.\n\n"))
> > (whitespace-display-window (current-buffer)))))
> > has-bogus))))
> > @@ -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/widget.el b/lisp/widget.el
> > index d62f7ff..aadb063 100644
> > --- a/lisp/widget.el
> > +++ b/lisp/widget.el
> > @@ -80,7 +80,7 @@ create identical widgets:
> >
> > * (widget-create NAME)
> >
> > -* (apply 'widget-create CLASS ARGS)
> > +* (apply \\='widget-create CLASS ARGS)
> >
> > The third argument DOC is a documentation string for the widget."
> > ;;
> > diff --git a/lisp/window.el b/lisp/window.el
> > index 65b4ef0..6d18905 100644
> > --- a/lisp/window.el
> > +++ b/lisp/window.el
> > @@ -5868,7 +5868,7 @@ one of the regular expressions in
> `special-display-regexps'.
> >
> > This variable can be set in your init file, like this:
> >
> > - (setq special-display-frame-alist '((width . 80) (height . 20)))
> > + (setq special-display-frame-alist \\='((width . 80) (height . 20)))
> >
> > These supersede the values given in `default-frame-alist'."
> > :type '(repeat (cons :format "%v"
> > diff --git a/lisp/woman.el b/lisp/woman.el
> > index de2cbc1..f2e59e5 100644
> > --- a/lisp/woman.el
> > +++ b/lisp/woman.el
> > @@ -786,7 +786,7 @@ without interactive confirmation, if it exists as a
> topic."
> >
> > (defvar woman-file-regexp nil
> > "Regexp used to select (possibly compressed) man source files, e.g.
> > -\"\\.\\([0-9lmnt]\\w*\\)\\(\\.\\(g?z\\|bz2\\|xz\\)\\)?\\'\".
> > +\"\\.\\([0-9lmnt]\\w*\\)\\(\\.\\(g?z\\|bz2\\|xz\\)\\)?\\\\='\".
> > Built automatically from the customizable user options
> > `woman-uncompressed-file-regexp' and `woman-file-compression-regexp'.")
> >
> > @@ -816,7 +816,7 @@ becoming more common in the GNU world. For example,
> the man pages
> > in the ncurses package include `toe.1m', `form.3x', etc.
> >
> > Note: an optional compression regexp will be appended, so this regexp
> > -MUST NOT end with any kind of string terminator such as $ or \\'."
> > +MUST NOT end with any kind of string terminator such as $ or \\\\='."
> > :type 'regexp
> > :set 'set-woman-file-regexp
> > :group 'woman-interface)
> > @@ -826,8 +826,8 @@ MUST NOT end with any kind of string terminator such
> as $ or \\'."
> > "Do not change this unless you are sure you know what you are doing!
> > Regexp used to match compressed man file extensions for which
> > decompressors are available and handled by auto-compression mode,
> > -e.g. \"\\\\.\\\\(g?z\\\\|bz2\\\\|xz\\\\)\\\\'\" for `gzip', `bzip2', or
> `xz'.
> > -Should begin with \\. and end with \\' and MUST NOT be optional."
> > +e.g. \"\\\\.\\\\(g?z\\\\|bz2\\\\|xz\\\\)\\\\\\='\" for `gzip', `bzip2',
> or `xz'.
> > +Should begin with \\. and end with \\\\=' and MUST NOT be optional."
> > ;; Should be compatible with car of
> > ;; `jka-compr-file-name-handler-entry', but that is unduly
> > ;; complicated, includes an inappropriate extension (.tgz) and is
> > @@ -3719,7 +3719,7 @@ expression in parentheses. Leaves point after the
> value."
> > "Find and return start of next control line.
> > PAT, if non-nil, specifies an additional component of the control
> > line regexp to search for, which is appended to the default
> > -regexp, \"\\(\\\\c\\)?\\n[.']\"."
> > +regexp, \"\\(\\\\c\\)?\\n[.\\=']\"."
> > (let ((pattern (concat "\\(\\\\c\\)?\n[.']" pat))
> > to)
> > (save-excursion
> > @@ -3981,7 +3981,7 @@ Optional argument NUMERIC, if non-nil, means the
> argument is numeric."
> > (goto-char from)))
> >
> > (defun woman-horizontal-line ()
> > - "\\l'Nc' -- Draw a horizontal line of length N using character c,
> default _."
> > + "\\l\\='Nc\\=' -- Draw a horizontal line of length N using character
> c, default _."
> > (delete-char -1)
> > (delete-char 1)
> > (looking-at "\\(.\\)\\(.*\\)\\1")
> > diff --git a/src/dispextern.h b/src/dispextern.h
> > index 37ebab0..e5adeab 100644
> > --- a/src/dispextern.h
> > +++ b/src/dispextern.h
> > @@ -3245,6 +3245,7 @@ extern ptrdiff_t compute_display_string_end
> (ptrdiff_t,
> > struct bidi_string_data *);
> > extern void produce_stretch_glyph (struct it *);
> > extern int merge_glyphless_glyph_face (struct it *);
> > +extern void forget_escape_and_glyphless_faces (void);
> >
> > extern void get_font_ascent_descent (struct font *, int *, int *);
> >
> > diff --git a/src/doc.c b/src/doc.c
> > index 5d0aae7..b6963d2 100644
> > --- a/src/doc.c
> > +++ b/src/doc.c
> > @@ -724,7 +724,7 @@ as the keymap for future \\=\\[COMMAND] substrings.
> >
> > Each \\=‘ and \\=` is replaced by left quote, and each \\=’ and \\='
> > is replaced by right quote. Left and right quote characters are
> > -specified by ‘text-quoting-style’.
> > +specified by `text-quoting-style'.
> >
> > \\=\\= quotes the following character and is discarded; thus,
> > \\=\\=\\=\\= puts \\=\\= into the output, \\=\\=\\=\\[ puts \\=\\[ into
> the output, and
> > @@ -1024,15 +1024,15 @@ syms_of_doc (void)
> >
> > DEFVAR_LISP ("text-quoting-style", Vtext_quoting_style,
> > doc: /* Style to use for single quotes when generating
> text.
> > -‘curve’ means quote with curved single quotes \\=‘like this\\=’.
> > -‘straight’ means quote with straight apostrophes \\='like this\\='.
> > -‘grave’ means quote with grave accent and apostrophe \\=`like this\\='.
> > -The default value nil acts like ‘curve’ if curved single quotes are
> > -displayable, and like ‘grave’ otherwise. */);
> > +`curve' means quote with curved single quotes \\=‘like this\\=’.
> > +`straight' means quote with straight apostrophes \\='like this\\='.
> > +`grave' means quote with grave accent and apostrophe \\=`like this\\='.
> > +The default value nil acts like `curve' if curved single quotes are
> > +displayable, and like `grave' otherwise. */);
> > Vtext_quoting_style = Qnil;
> >
> > DEFVAR_BOOL ("internal--text-quoting-flag", text_quoting_flag,
> > - doc: /* If nil, a nil ‘text-quoting-style’ is treated as
> ‘grave’. */);
> > + doc: /* If nil, a nil `text-quoting-style' is treated as
> `grave'. */);
> > /* Initialized by ‘main’. */
> >
> > defsubr (&Sdocumentation);
> > diff --git a/src/editfns.c b/src/editfns.c
> > index e7d5dd8..831edb4 100644
> > --- a/src/editfns.c
> > +++ b/src/editfns.c
> > @@ -3837,11 +3837,11 @@ DEFUN ("format-message", Fformat_message,
> Sformat_message, 1, MANY, 0,
> > The first argument is a format control string.
> > The other arguments are substituted into it to make the result, a
> string.
> >
> > -This acts like ‘format’, except it also replaces each left single
> > +This acts like `format', except it also replaces each left single
> > quotation mark (\\=‘) and grave accent (\\=`) by a left quote, and each
> > right single quotation mark (\\=’) and apostrophe (\\=') by a right
> quote.
> > The left and right quote replacement characters are specified by
> > -‘text-quoting-style’.
> > +`text-quoting-style'.
> >
> > usage: (format-message STRING &rest OBJECTS) */)
> > (ptrdiff_t nargs, Lisp_Object *args)
> > diff --git a/src/keyboard.c b/src/keyboard.c
> > index a8b1e98..ccd3405 100644
> > --- a/src/keyboard.c
> > +++ b/src/keyboard.c
> > @@ -380,6 +380,11 @@ kset_echo_string (struct kboard *kb, Lisp_Object
> val)
> > kb->echo_string_ = val;
> > }
> > static void
> > +kset_echo_prompt (struct kboard *kb, Lisp_Object val)
> > +{
> > + kb->echo_prompt_ = val;
> > +}
> > +static void
> > kset_kbd_queue (struct kboard *kb, Lisp_Object val)
> > {
> > kb->kbd_queue_ = val;
> > @@ -501,8 +506,9 @@ echo_dash (void)
> > return;
> >
> > /* Do nothing if we just printed a prompt. */
> > - if (current_kboard->echo_after_prompt
> > - == SCHARS (KVAR (current_kboard, echo_string)))
> > + if (STRINGP (KVAR (current_kboard, echo_prompt))
> > + && (SCHARS (KVAR (current_kboard, echo_prompt))
> > + == SCHARS (KVAR (current_kboard, echo_string))))
> > return;
> >
> > /* Do nothing if we have already put a dash at the end. */
> > @@ -534,8 +540,12 @@ echo_update (void)
> > if (current_kboard->immediate_echo)
> > {
> > ptrdiff_t i;
> > + Lisp_Object prompt = KVAR (current_kboard, echo_prompt);
> > + Lisp_Object prefix = call0 (Qinternal_echo_keystrokes_prefix);
> > kset_echo_string (current_kboard,
> > - call0 (Qinternal_echo_keystrokes_prefix));
> > + NILP (prompt) ? prefix
> > + : NILP (prefix) ? prompt
> > + : concat2 (prompt, prefix));
> >
> > for (i = 0; i < this_command_key_count; i++)
> > {
> > @@ -584,7 +594,7 @@ void
> > cancel_echoing (void)
> > {
> > current_kboard->immediate_echo = false;
> > - current_kboard->echo_after_prompt = -1;
> > + kset_echo_prompt (current_kboard, Qnil);
> > kset_echo_string (current_kboard, Qnil);
> > ok_to_echo_at_next_pause = NULL;
> > echo_kboard = NULL;
> > @@ -693,11 +703,11 @@ force_auto_save_soon (void)
> >
> > DEFUN ("recursive-edit", Frecursive_edit, Srecursive_edit, 0, 0, "",
> > doc: /* Invoke the editor command loop recursively.
> > -To get out of the recursive edit, a command can throw to ‘exit’ -- for
> > -instance ‘(throw \\='exit nil)’.
> > -If you throw a value other than t, ‘recursive-edit’ returns normally
> > +To get out of the recursive edit, a command can throw to `exit' -- for
> > +instance (throw \\='exit nil).
> > +If you throw a value other than t, `recursive-edit' returns normally
> > to the function that called it. Throwing a t value causes
> > -‘recursive-edit’ to quit, so that control returns to the command loop
> > +`recursive-edit' to quit, so that control returns to the command loop
> > one level up.
> >
> > This function is called by the editor initialization to begin editing.
> */)
> > @@ -2942,7 +2952,7 @@ read_char (int commandflag, Lisp_Object map,
> > bool saved_immediate_echo = current_kboard->immediate_echo;
> > struct kboard *saved_ok_to_echo = ok_to_echo_at_next_pause;
> > Lisp_Object saved_echo_string = KVAR (current_kboard,
> echo_string);
> > - ptrdiff_t saved_echo_after_prompt =
> current_kboard->echo_after_prompt;
> > + Lisp_Object saved_echo_prompt = KVAR (current_kboard,
> echo_prompt);
> >
> > /* Save the this_command_keys status. */
> > key_count = this_command_key_count;
> > @@ -2984,15 +2994,8 @@ read_char (int commandflag, Lisp_Object map,
> >
> > cancel_echoing ();
> > ok_to_echo_at_next_pause = saved_ok_to_echo;
> > - /* Do not restore the echo area string when the user is
> > - introducing a prefix argument. Otherwise we end with
> > - repetitions of the partially introduced prefix
> > - argument. (bug#19875) */
> > - if (NILP (intern ("prefix-arg")))
> > - {
> > - kset_echo_string (current_kboard, saved_echo_string);
> > - }
> > - current_kboard->echo_after_prompt = saved_echo_after_prompt;
> > + kset_echo_string (current_kboard, saved_echo_string);
> > + kset_echo_prompt (current_kboard, saved_echo_prompt);
> > if (saved_immediate_echo)
> > echo_now ();
> >
> > @@ -8870,8 +8873,8 @@ read_key_sequence (Lisp_Object *keybuf, int
> bufsize, Lisp_Object prompt,
> > /* Install the string PROMPT as the beginning of the string
> > of echoing, so that it serves as a prompt for the next
> > character. */
> > - kset_echo_string (current_kboard, prompt);
> > - current_kboard->echo_after_prompt = SCHARS (prompt);
> > + kset_echo_prompt (current_kboard, prompt);
> > + current_kboard->immediate_echo = false;
> > echo_now ();
> > }
> > else if (cursor_in_echo_area
> > @@ -10695,7 +10698,7 @@ init_kboard (KBOARD *kb, Lisp_Object type)
> > kb->kbd_queue_has_data = false;
> > kb->immediate_echo = false;
> > kset_echo_string (kb, Qnil);
> > - kb->echo_after_prompt = -1;
> > + kset_echo_prompt (kb, Qnil);
> > kb->kbd_macro_buffer = 0;
> > kb->kbd_macro_bufsize = 0;
> > kset_defining_kbd_macro (kb, Qnil);
> > @@ -11758,6 +11761,7 @@ mark_kboards (void)
> > mark_object (KVAR (kb, Vlocal_function_key_map));
> > mark_object (KVAR (kb, Vdefault_minibuffer_frame));
> > mark_object (KVAR (kb, echo_string));
> > + mark_object (KVAR (kb, echo_prompt));
> > }
> > {
> > union buffered_input_event *event;
> > diff --git a/src/keyboard.h b/src/keyboard.h
> > index 3e4c475..0402e0a 100644
> > --- a/src/keyboard.h
> > +++ b/src/keyboard.h
> > @@ -175,9 +175,8 @@ struct kboard
> > /* True means echo each character as typed. */
> > bool_bf immediate_echo : 1;
> >
> > - /* If we have echoed a prompt string specified by the user,
> > - this is its length in characters. Otherwise this is -1. */
> > - ptrdiff_t echo_after_prompt;
> > + /* If we have a prompt string specified by the user, this is it. */
> > + Lisp_Object echo_prompt_;
> > };
> >
> > INLINE void
> > diff --git a/src/process.c b/src/process.c
> > index 1ab8378..f4613be 100644
> > --- a/src/process.c
> > +++ b/src/process.c
> > @@ -4859,6 +4859,10 @@ wait_reading_process_output (intmax_t time_limit,
> int nsecs, int read_kbd,
> > data is available in the buffers manually. */
> > if (nfds == 0)
> > {
> > + fd_set tls_available;
> > + int set = 0;
> > +
> > + FD_ZERO (&tls_available);
> > if (! wait_proc)
> > {
> > /* We're not waiting on a specific process, so loop
> > @@ -4879,7 +4883,8 @@ wait_reading_process_output (intmax_t time_limit,
> int nsecs, int read_kbd,
> > {
> > nfds++;
> > eassert (p->infd == channel);
> > - FD_SET (p->infd, &Available);
> > + FD_SET (p->infd, &tls_available);
> > + set++;
> > }
> > }
> > }
> > @@ -4896,9 +4901,12 @@ wait_reading_process_output (intmax_t time_limit,
> int nsecs, int read_kbd,
> > nfds = 1;
> > eassert (0 <= wait_proc->infd);
> > /* Set to Available. */
> > - FD_SET (wait_proc->infd, &Available);
> > + FD_SET (wait_proc->infd, &tls_available);
> > + set++;
> > }
> > }
> > + if (set)
> > + Available = tls_available;
> > }
> > #endif
> > }
> > diff --git a/src/w32.c b/src/w32.c
> > index cc55507..bb51496 100644
> > --- a/src/w32.c
> > +++ b/src/w32.c
> > @@ -4534,6 +4534,8 @@ sys_rmdir (const char * path)
> > int
> > sys_unlink (const char * path)
> > {
> > + int rmstatus, e;
> > +
> > path = map_w32_filename (path, NULL);
> >
> > if (w32_unicode_filenames)
> > @@ -4541,9 +4543,18 @@ sys_unlink (const char * path)
> > wchar_t path_w[MAX_PATH];
> >
> > filename_to_utf16 (path, path_w);
> > - /* On Unix, unlink works without write permission. */
> > + /* On Unix, unlink works without write permission. */
> > _wchmod (path_w, 0666);
> > - return _wunlink (path_w);
> > + rmstatus = _wunlink (path_w);
> > + e = errno;
> > + /* Symlinks to directories can only be deleted by _rmdir;
> > + _unlink returns EACCES. */
> > + if (rmstatus != 0
> > + && errno == EACCES
> > + && (is_symlink (path) & FILE_ATTRIBUTE_DIRECTORY) != 0)
> > + rmstatus = _wrmdir (path_w);
> > + else
> > + errno = e;
> > }
> > else
> > {
> > @@ -4551,8 +4562,17 @@ sys_unlink (const char * path)
> >
> > filename_to_ansi (path, path_a);
> > _chmod (path_a, 0666);
> > - return _unlink (path_a);
> > + rmstatus = _unlink (path_a);
> > + e = errno;
> > + if (rmstatus != 0
> > + && errno == EACCES
> > + && (is_symlink (path) & FILE_ATTRIBUTE_DIRECTORY) != 0)
> > + rmstatus = _rmdir (path_a);
> > + else
> > + errno = e;
> > }
> > +
> > + return rmstatus;
> > }
> >
> > static FILETIME utc_base_ft;
> > @@ -5626,7 +5646,8 @@ symlink (char const *filename, char const
> *linkname)
> > /* A quick inexpensive test of whether FILENAME identifies a file that
> > is a symlink. Returns non-zero if it is, zero otherwise. FILENAME
> > must already be in the normalized form returned by
> > - map_w32_filename.
> > + map_w32_filename. If the symlink is to a directory, the
> > + FILE_ATTRIBUTE_DIRECTORY bit will be set in the return value.
> >
> > Note: for repeated operations on many files, it is best to test
> > whether the underlying volume actually supports symlinks, by
> > @@ -5684,6 +5705,8 @@ is_symlink (const char *filename)
> > attrs_mean_symlink =
> > (wfdw.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) != 0
> > && (wfdw.dwReserved0 & IO_REPARSE_TAG_SYMLINK) ==
> IO_REPARSE_TAG_SYMLINK;
> > + if (attrs_mean_symlink)
> > + attrs_mean_symlink |= (wfdw.dwFileAttributes &
> FILE_ATTRIBUTE_DIRECTORY);
> > }
> > else if (_mbspbrk (filename_a, "?"))
> > {
> > @@ -5697,6 +5720,8 @@ is_symlink (const char *filename)
> > attrs_mean_symlink =
> > (wfda.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) != 0
> > && (wfda.dwReserved0 & IO_REPARSE_TAG_SYMLINK) ==
> IO_REPARSE_TAG_SYMLINK;
> > + if (attrs_mean_symlink)
> > + attrs_mean_symlink |= (wfda.dwFileAttributes &
> FILE_ATTRIBUTE_DIRECTORY);
> > }
> > if (fh == INVALID_HANDLE_VALUE)
> > return 0;
> > diff --git a/src/xdisp.c b/src/xdisp.c
> > index 9ff9f6c..82931b8 100644
> > --- a/src/xdisp.c
> > +++ b/src/xdisp.c
> > @@ -6787,6 +6787,18 @@ merge_glyphless_glyph_face (struct it *it)
> > return face_id;
> > }
> >
> > +/* Forget the `escape-glyph' and `glyphless-char' faces. This should
> > + be called before redisplaying windows, and when the frame's face
> > + cache is freed. */
> > +void
> > +forget_escape_and_glyphless_faces (void)
> > +{
> > + last_escape_glyph_frame = NULL;
> > + last_escape_glyph_face_id = (1 << FACE_ID_BITS);
> > + last_glyphless_glyph_frame = NULL;
> > + last_glyphless_glyph_face_id = (1 << FACE_ID_BITS);
> > +}
> > +
> > /* Load IT's display element fields with information about the next
> > display element from the current position of IT. Value is false if
> > end of buffer (or C string) is reached. */
> > @@ -10673,6 +10685,11 @@ display_echo_area_1 (ptrdiff_t a1, Lisp_Object
> a2)
> > Lisp_Object window;
> > struct text_pos start;
> >
> > + /* We are about to enter redisplay without going through
> > + redisplay_internal, so we need to forget these faces by hand
> > + here. */
> > + forget_escape_and_glyphless_faces ();
> > +
> > /* Do this before displaying, so that we have a large enough glyph
> > matrix for the display. If we can't get enough space for the
> > whole text, display the last N lines. That works by setting
> w->start. */
> > @@ -13326,10 +13343,7 @@ redisplay_internal (void)
> > sw = w;
> >
> > pending = false;
> > - last_escape_glyph_frame = NULL;
> > - last_escape_glyph_face_id = (1 << FACE_ID_BITS);
> > - last_glyphless_glyph_frame = NULL;
> > - last_glyphless_glyph_face_id = (1 << FACE_ID_BITS);
> > + forget_escape_and_glyphless_faces ();
> >
> > /* If face_change, init_iterator will free all realized faces, which
> > includes the faces referenced from current matrices. So, we
> > diff --git a/src/xfaces.c b/src/xfaces.c
> > index d89adca..0303249 100644
> > --- a/src/xfaces.c
> > +++ b/src/xfaces.c
> > @@ -4173,6 +4173,8 @@ free_realized_faces (struct face_cache *c)
> > c->faces_by_id[i] = NULL;
> > }
> >
> > + /* Forget the escape-glyph and glyphless-char faces. */
> > + forget_escape_and_glyphless_faces ();
> > c->used = 0;
> > size = FACE_CACHE_BUCKETS_SIZE * sizeof *c->buckets;
> > memset (c->buckets, 0, size);
> > diff --git a/test/automated/Makefile.in b/test/automated/Makefile.in
> > index 174b3b6..59a8866 100644
> > --- a/test/automated/Makefile.in
> > +++ b/test/automated/Makefile.in
> > @@ -52,9 +52,15 @@ unexport EMACSDATA EMACSDOC EMACSPATH GREP_OPTIONS
> > ## To run tests under a debugger, set this to eg: "gdb --args".
> > GDB =
> >
> > +# The locale to run tests under. Tests should work if this is set to
> > +# any supported locale. Use the C locale by default, as it should be
> > +# supported everywhere.
> > +TEST_LOCALE = C
> > +
> > # The actual Emacs command run in the targets below.
> > # Prevent any setting of EMACSLOADPATH in user environment causing
> problems.
> > -emacs = EMACSLOADPATH= LC_ALL=C EMACS_TEST_DIRECTORY=$(srcdir) $(GDB)
> "$(EMACS)" $(EMACSOPT)
> > +emacs = EMACSLOADPATH= LC_ALL=$(TEST_LOCALE)
> EMACS_TEST_DIRECTORY=$(srcdir) \
> > + $(GDB) "$(EMACS)" $(EMACSOPT)
> >
> > .PHONY: all check
> >
> > diff --git a/test/automated/flymake-tests.el
> b/test/automated/flymake-tests.el
> > index 23dbb3d..a77c316 100644
> > --- a/test/automated/flymake-tests.el
> > +++ b/test/automated/flymake-tests.el
> > @@ -34,6 +34,7 @@
> > (defun flymake-tests--current-face (file predicate)
> > (let ((buffer (find-file-noselect
> > (expand-file-name file flymake-tests-data-directory)))
> > + (process-environment (cons "LC_ALL=C" process-environment))
> > (i 0))
> > (unwind-protect
> > (with-current-buffer buffer
> > diff --git a/test/automated/map-tests.el b/test/automated/map-tests.el
> > index 1f3a07e..8693415 100644
> > --- a/test/automated/map-tests.el
> > +++ b/test/automated/map-tests.el
> > @@ -252,31 +252,29 @@ Evaluate BODY for each created map.
> > (should (not (map-empty-p "hello")))
> > (should (map-empty-p "")))
> >
> > -(ert-deftest test-map-contains-key-p ()
> > - (should (map-contains-key-p '((a . 1) (b . 2)) 'a))
> > - (should (not (map-contains-key-p '((a . 1) (b . 2)) 'c)))
> > - (should (map-contains-key-p '(("a" . 1)) "a"))
> > - (should (not (map-contains-key-p '(("a" . 1)) "a" #'eq)))
> > - (should (map-contains-key-p [a b c] 2))
> > - (should (not (map-contains-key-p [a b c] 3))))
> > -
> > -(ert-deftest test-map-some-p ()
> > +(ert-deftest test-map-contains-key ()
> > + (should (map-contains-key '((a . 1) (b . 2)) 'a))
> > + (should (not (map-contains-key '((a . 1) (b . 2)) 'c)))
> > + (should (map-contains-key '(("a" . 1)) "a"))
> > + (should (not (map-contains-key '(("a" . 1)) "a" #'eq)))
> > + (should (map-contains-key [a b c] 2))
> > + (should (not (map-contains-key [a b c] 3))))
> > +
> > +(ert-deftest test-map-some ()
> > (with-maps-do map
> > - (should (equal (map-some-p (lambda (k _v)
> > - (eq 1 k))
> > - map)
> > - (cons 1 4)))
> > - (should (not (map-some-p (lambda (k _v)
> > - (eq 'd k))
> > - map))))
> > + (should (map-some (lambda (k _v)
> > + (eq 1 k))
> > + map))
> > + (should-not (map-some (lambda (k _v)
> > + (eq 'd k))
> > + map)))
> > (let ((vec [a b c]))
> > - (should (equal (map-some-p (lambda (k _v)
> > - (> k 1))
> > - vec)
> > - (cons 2 'c)))
> > - (should (not (map-some-p (lambda (k _v)
> > - (> k 3))
> > - vec)))))
> > + (should (map-some (lambda (k _v)
> > + (> k 1))
> > + vec))
> > + (should-not (map-some (lambda (k _v)
> > + (> k 3))
> > + vec))))
> >
> > (ert-deftest test-map-every-p ()
> > (with-maps-do map
> > diff --git a/test/automated/python-tests.el
> b/test/automated/python-tests.el
> > index 219f99e..d9b4c3e 100644
> > --- a/test/automated/python-tests.el
> > +++ b/test/automated/python-tests.el
> > @@ -2920,7 +2920,8 @@ and `python-shell-interpreter-args' in the new
> shell buffer."
> > :type 'user-error)))
> > (should
> > (string= (cadr error-data)
> > - "Invalid regexp \\( in
> `python-shell-prompt-input-regexps'"))))
> > + (format-message
> > + "Invalid regexp \\( in
> `python-shell-prompt-input-regexps'")))))
> >
> > (ert-deftest python-shell-prompt-validate-regexps-2 ()
> > "Check `python-shell-prompt-output-regexps' are validated."
> > @@ -2929,7 +2930,8 @@ and `python-shell-interpreter-args' in the new
> shell buffer."
> > :type 'user-error)))
> > (should
> > (string= (cadr error-data)
> > - "Invalid regexp \\( in
> `python-shell-prompt-output-regexps'"))))
> > + (format-message
> > + "Invalid regexp \\( in
> `python-shell-prompt-output-regexps'")))))
> >
> > (ert-deftest python-shell-prompt-validate-regexps-3 ()
> > "Check `python-shell-prompt-regexp' is validated."
> > @@ -2938,7 +2940,8 @@ and `python-shell-interpreter-args' in the new
> shell buffer."
> > :type 'user-error)))
> > (should
> > (string= (cadr error-data)
> > - "Invalid regexp \\( in `python-shell-prompt-regexp'"))))
> > + (format-message
> > + "Invalid regexp \\( in `python-shell-prompt-regexp'")))))
> >
> > (ert-deftest python-shell-prompt-validate-regexps-4 ()
> > "Check `python-shell-prompt-block-regexp' is validated."
> > @@ -2947,7 +2950,8 @@ and `python-shell-interpreter-args' in the new
> shell buffer."
> > :type 'user-error)))
> > (should
> > (string= (cadr error-data)
> > - "Invalid regexp \\( in
> `python-shell-prompt-block-regexp'"))))
> > + (format-message
> > + "Invalid regexp \\( in
> `python-shell-prompt-block-regexp'")))))
> >
> > (ert-deftest python-shell-prompt-validate-regexps-5 ()
> > "Check `python-shell-prompt-pdb-regexp' is validated."
> > @@ -2956,7 +2960,8 @@ and `python-shell-interpreter-args' in the new
> shell buffer."
> > :type 'user-error)))
> > (should
> > (string= (cadr error-data)
> > - "Invalid regexp \\( in
> `python-shell-prompt-pdb-regexp'"))))
> > + (format-message
> > + "Invalid regexp \\( in
> `python-shell-prompt-pdb-regexp'")))))
> >
> > (ert-deftest python-shell-prompt-validate-regexps-6 ()
> > "Check `python-shell-prompt-output-regexp' is validated."
> > @@ -2965,7 +2970,8 @@ and `python-shell-interpreter-args' in the new
> shell buffer."
> > :type 'user-error)))
> > (should
> > (string= (cadr error-data)
> > - "Invalid regexp \\( in
> `python-shell-prompt-output-regexp'"))))
> > + (format-message
> > + "Invalid regexp \\( in
> `python-shell-prompt-output-regexp'")))))
> >
> > (ert-deftest python-shell-prompt-validate-regexps-7 ()
> > "Check default regexps are valid."
> > @@ -2982,7 +2988,8 @@ and `python-shell-interpreter-args' in the new
> shell buffer."
> > :type 'user-error)))
> > (should
> > (string= (cadr error-data)
> > - "Invalid regexp \\( in
> `python-shell-prompt-output-regexp'"))))
> > + (format-message
> > + "Invalid regexp \\( in
> `python-shell-prompt-output-regexp'")))))
> >
> > (ert-deftest python-shell-prompt-set-calculated-regexps-2 ()
> > "Check `python-shell-prompt-input-regexps' are set."
> > diff --git a/test/automated/seq-tests.el b/test/automated/seq-tests.el
> > index 482daee..07a183d 100644
> > --- a/test/automated/seq-tests.el
> > +++ b/test/automated/seq-tests.el
> > @@ -129,21 +129,22 @@ Evaluate BODY for each created sequence.
> > (should (eq (seq-reduce #'+ seq 0) 0))
> > (should (eq (seq-reduce #'+ seq 7) 7))))
> >
> > -(ert-deftest test-seq-some-p ()
> > +(ert-deftest test-seq-some ()
> > (with-test-sequences (seq '(4 3 2 1))
> > - (should (= (seq-some-p #'test-sequences-evenp seq) 4))
> > - (should (= (seq-some-p #'test-sequences-oddp seq) 3))
> > - (should-not (seq-some-p (lambda (elt) (> elt 10)) seq)))
> > + (should (seq-some #'test-sequences-evenp seq))
> > + (should (seq-some #'test-sequences-oddp seq))
> > + (should-not (seq-some (lambda (elt) (> elt 10)) seq)))
> > (with-test-sequences (seq '())
> > - (should-not (seq-some-p #'test-sequences-oddp seq))))
> > + (should-not (seq-some #'test-sequences-oddp seq)))
> > + (should (seq-some #'null '(1 nil 2))))
> >
> > -(ert-deftest test-seq-contains-p ()
> > +(ert-deftest test-seq-contains ()
> > (with-test-sequences (seq '(3 4 5 6))
> > - (should (seq-contains-p seq 3))
> > - (should-not (seq-contains-p seq 7)))
> > + (should (seq-contains seq 3))
> > + (should-not (seq-contains seq 7)))
> > (with-test-sequences (seq '())
> > - (should-not (seq-contains-p seq 3))
> > - (should-not (seq-contains-p seq nil))))
> > + (should-not (seq-contains seq 3))
> > + (should-not (seq-contains seq nil))))
> >
> > (ert-deftest test-seq-every-p ()
> > (with-test-sequences (seq '(43 54 22 1))
> > diff --git a/test/automated/textprop-tests.el
> b/test/automated/textprop-tests.el
> > index f6604fb..0baa911 100644
> > --- a/test/automated/textprop-tests.el
> > +++ b/test/automated/textprop-tests.el
> > @@ -25,7 +25,7 @@
> > (require 'ert)
> >
> > (ert-deftest textprop-tests-format ()
> > - "Test ‘format’ with text properties."
> > + "Test `format' with text properties."
> > ;; See Bug#21351.
> > (should (equal-including-properties
> > (format #("mouse-1, RET: %s -- w: copy %s"
> > diff --git a/test/automated/tildify-tests.el
> b/test/automated/tildify-tests.el
> > index b53f58c..788abe7 100644
> > --- a/test/automated/tildify-tests.el
> > +++ b/test/automated/tildify-tests.el
> > @@ -55,6 +55,7 @@ If IS-XML is non-nil, <pre> tag is not treated
> specially."
> > INPUT is the initial content of the buffer and EXPECTED is expected
> result
> > after `tildify-buffer' is run."
> > (with-temp-buffer
> > + (setq-local buffer-file-coding-system 'utf-8)
> > (dolist (mode modes)
> > (erase-buffer)
> > (funcall mode)
> > @@ -187,6 +188,7 @@ The function must terminate as soon as callback
> returns nil."
> >
> > (defun tildify-space-test--test (modes nbsp env-open &optional
> set-space-string)
> > (with-temp-buffer
> > + (setq-local buffer-file-coding-system 'utf-8)
> > (dolist (mode modes)
> > (funcall mode)
> > (when set-space-string
> > @@ -226,6 +228,7 @@ The function must terminate as soon as callback
> returns nil."
> > (defun tildify-space-undo-test--test
> > (modes nbsp env-open &optional set-space-string)
> > (with-temp-buffer
> > + (setq-local buffer-file-coding-system 'utf-8)
> > (dolist (mode modes)
> > (funcall mode)
> > (when set-space-string
> >
> > _______________________________________________
> > Emacs-diffs mailing list
> > Emacs-diffs@gnu.org
> > https://lists.gnu.org/mailman/listinfo/emacs-diffs
>
>
[-- Attachment #1.2: Type: text/html, Size: 905811 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Emacs-diffs] master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
2015-10-06 14:09 ` Kaushal Modi
@ 2015-10-06 14:47 ` Alan Mackenzie
2015-10-06 14:47 ` Óscar Fuentes
1 sibling, 0 replies; 11+ messages in thread
From: Alan Mackenzie @ 2015-10-06 14:47 UTC (permalink / raw)
To: Kaushal Modi, Artur Malabarba; +Cc: K. Handa, emacs-diffs, emacs-devel
Hey, you guys!
On Tue, Oct 06, 2015 at 10:09:54AM -0400, Kaushal Modi wrote:
> I'd like to know that too. I thought I was the only one who didn't
> understand how these huge commits were created.
Do you think you could stop sending meaningless 2 MB mails to the
mailing list? It would be much appreciated!
TIA!
> --
> Kaushal Modi
--
Alan Mackenzie (Nuremberg, Germany).
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
2015-10-06 14:09 ` Kaushal Modi
2015-10-06 14:47 ` [Emacs-diffs] " Alan Mackenzie
@ 2015-10-06 14:47 ` Óscar Fuentes
2015-10-06 14:59 ` Kaushal Modi
1 sibling, 1 reply; 11+ messages in thread
From: Óscar Fuentes @ 2015-10-06 14:47 UTC (permalink / raw)
To: emacs-devel; +Cc: emacs-diffs
Please trim your quotes. Having to download 2 MB of data for two lines
of added text is a waste of bandwidth and storage, not to mention the
added cost for those who pay by the MB or have a monthly limit of
traffic.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
2015-10-06 14:47 ` Óscar Fuentes
@ 2015-10-06 14:59 ` Kaushal Modi
2015-10-06 15:48 ` David Kastrup
0 siblings, 1 reply; 11+ messages in thread
From: Kaushal Modi @ 2015-10-06 14:59 UTC (permalink / raw)
To: Óscar Fuentes; +Cc: emacs-diffs, Emacs developers
[-- Attachment #1.1: Type: text/plain, Size: 150 bytes --]
> Please trim your quotes.
I didn't realize this problem as Gmail auto-folds the quoted email.
Will
ensure this does not happen next time.
[-- Attachment #1.2: Type: text/html, Size: 305 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
2015-10-06 14:59 ` Kaushal Modi
@ 2015-10-06 15:48 ` David Kastrup
0 siblings, 0 replies; 11+ messages in thread
From: David Kastrup @ 2015-10-06 15:48 UTC (permalink / raw)
To: Kaushal Modi; +Cc: Óscar Fuentes, emacs-diffs, Emacs developers
Kaushal Modi <kaushal.modi@gmail.com> writes:
>> Please trim your quotes.
>
> I didn't realize this problem as Gmail auto-folds the quoted email.
>
> Will ensure this does not happen next time.
Well, content that can be unfolded still needs to be in the mail. So
nothing but actually removing the content will reduce the actual (rather
than the apparent) size of the mail.
--
David Kastrup
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Emacs-diffs] master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
2015-10-06 9:18 ` master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs Artur Malabarba
2015-10-06 14:09 ` Kaushal Modi
@ 2015-10-06 16:20 ` Stefan Monnier
2015-10-06 17:01 ` Artur Malabarba
1 sibling, 1 reply; 11+ messages in thread
From: Stefan Monnier @ 2015-10-06 16:20 UTC (permalink / raw)
To: Artur Malabarba; +Cc: K. Handa, emacs-diffs, emacs-devel
> Quick question. Could someone explain to me what the subject of this
> email means?
>> master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
> Is that what you get when you merge the remote's master onto your
> local master?
Yes.
For that reason, it is much better to merge your branch into a clone of
"master" than the other way around.
Stefan
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Emacs-diffs] master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
2015-10-06 16:20 ` [Emacs-diffs] " Stefan Monnier
@ 2015-10-06 17:01 ` Artur Malabarba
2015-10-06 17:25 ` Eli Zaretskii
0 siblings, 1 reply; 11+ messages in thread
From: Artur Malabarba @ 2015-10-06 17:01 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Kenichi Handa, emacs-diffs, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 683 bytes --]
On 6 Oct 2015 5:20 pm, "Stefan Monnier" <monnier@iro.umontreal.ca> wrote:
>
> > Quick question. Could someone explain to me what the subject of this
> > email means?
> >> master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:
/srv/git/emacs
> > Is that what you get when you merge the remote's master onto your
> > local master?
>
> Yes.
>
> For that reason, it is much better to merge your branch into a clone of
> "master" than the other way around.
Yes. Doing your work on a separate dev branch (and pulling master before
merging dev onto master) is an important piece of git workflow. Perhaps we
ought to document that in the same place we teach people to clone the repo?
[-- Attachment #2: Type: text/html, Size: 905 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
2015-10-06 17:01 ` Artur Malabarba
@ 2015-10-06 17:25 ` Eli Zaretskii
2015-10-06 20:55 ` Artur Malabarba
0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2015-10-06 17:25 UTC (permalink / raw)
To: bruce.connor.am; +Cc: handa, emacs-devel, emacs-diffs
> Date: Tue, 6 Oct 2015 18:01:18 +0100
> From: Artur Malabarba <bruce.connor.am@gmail.com>
> Cc: Kenichi Handa <handa@gnu.org>, emacs-diffs@gnu.org,
> emacs-devel <emacs-devel@gnu.org>
>
> Doing your work on a separate dev branch (and pulling master before
> merging dev onto master) is an important piece of git workflow.
AFAIU, it all depends on the workflow. We indeed prefer it that way,
but I understand it's on no way a universal rule.
> Perhaps we ought to document that in the same place we teach people
> to clone the repo?
We already explain this in CONTRIBUTE.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
2015-10-06 17:25 ` Eli Zaretskii
@ 2015-10-06 20:55 ` Artur Malabarba
2015-10-07 15:06 ` [Emacs-diffs] " Eli Zaretskii
0 siblings, 1 reply; 11+ messages in thread
From: Artur Malabarba @ 2015-10-06 20:55 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Kenichi Handa, emacs-diffs, emacs-devel
[-- Attachment #1.1: Type: text/plain, Size: 156 bytes --]
On 6 Oct 2015 6:25 pm, "Eli Zaretskii" <eliz@gnu.org> wrote:
>...
> We already explain this in CONTRIBUTE.
Oh well... Then I guess there's not much to do.
[-- Attachment #1.2: Type: text/html, Size: 290 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Emacs-diffs] master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
2015-10-06 20:55 ` Artur Malabarba
@ 2015-10-07 15:06 ` Eli Zaretskii
0 siblings, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2015-10-07 15:06 UTC (permalink / raw)
To: bruce.connor.am; +Cc: handa, emacs-diffs, monnier, emacs-devel
> Date: Tue, 6 Oct 2015 21:55:16 +0100
> From: Artur Malabarba <bruce.connor.am@gmail.com>
> Cc: emacs-devel <emacs-devel@gnu.org>, Kenichi Handa <handa@gnu.org>,
> Stefan Monnier <monnier@iro.umontreal.ca>, emacs-diffs@gnu.org
>
> On 6 Oct 2015 6:25 pm, "Eli Zaretskii" <eliz@gnu.org> wrote:
> >...
> > We already explain this in CONTRIBUTE.
>
> Oh well... Then I guess there's not much to do.
On second look, perhaps we don't explain that in a situation general
enough, please take a look and feel free to make the explanation more
general, if you think it's a good idea.
Thanks.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-10-07 15:06 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20151005140014.24070.46905@vcs.savannah.gnu.org>
[not found] ` <E1Zj6JL-0006Qd-Ij@vcs.savannah.gnu.org>
2015-10-06 9:18 ` master 94ed516 2/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs Artur Malabarba
2015-10-06 14:09 ` Kaushal Modi
2015-10-06 14:47 ` [Emacs-diffs] " Alan Mackenzie
2015-10-06 14:47 ` Óscar Fuentes
2015-10-06 14:59 ` Kaushal Modi
2015-10-06 15:48 ` David Kastrup
2015-10-06 16:20 ` [Emacs-diffs] " Stefan Monnier
2015-10-06 17:01 ` Artur Malabarba
2015-10-06 17:25 ` Eli Zaretskii
2015-10-06 20:55 ` Artur Malabarba
2015-10-07 15:06 ` [Emacs-diffs] " Eli Zaretskii
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.