* 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