emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master c87523b: text-quoting-style in emacs-lisp diagnosti


From: Paul Eggert
Subject: [Emacs-diffs] master c87523b: text-quoting-style in emacs-lisp diagnostics
Date: Sat, 22 Aug 2015 03:22:36 +0000

branch: master
commit c87523bd8dbd9c9c5b8afdae43107f0badc0c924
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    text-quoting-style in emacs-lisp diagnostics
    
    * lisp/emacs-lisp/advice.el (ad-read-advised-function)
    (ad-read-advice-class, ad-read-advice-name, ad-enable-advice)
    (ad-disable-advice, ad-remove-advice, ad-set-argument)
    (ad-set-arguments):
    * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand)
    (byte-compile-unfold-lambda, byte-optimize-form-code-walker)
    (byte-optimize-while, byte-optimize-apply):
    * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode)
    (byte-compile-log-file, byte-compile-format-warn)
    (byte-compile-nogroup-warn, byte-compile-arglist-warn)
    (byte-compile-cl-warn)
    (byte-compile-warn-about-unresolved-functions)
    (byte-compile-file, byte-compile-fix-header)
    (byte-compile--declare-var, byte-compile-file-form-defmumble)
    (byte-compile-form, byte-compile-normal-call)
    (byte-compile-variable-ref, byte-compile-variable-set)
    (byte-compile-subr-wrong-args, byte-compile-setq-default)
    (byte-compile-negation-optimizer)
    (byte-compile-condition-case--old)
    (byte-compile-condition-case--new, byte-compile-save-excursion)
    (byte-compile-defvar, byte-compile-autoload)
    (byte-compile-lambda-form)
    (byte-compile-make-variable-buffer-local, display-call-tree)
    (batch-byte-compile):
    * lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use)
    (cconv-analyze-form):
    * lisp/emacs-lisp/chart.el (chart-space-usage):
    * lisp/emacs-lisp/check-declare.el (check-declare-scan)
    (check-declare-warn, check-declare-file)
    (check-declare-directory):
    * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine)
    (checkdoc-message-text-engine):
    * lisp/emacs-lisp/cl-extra.el (cl-parse-integer):
    * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause, cl-tagbody)
    (cl-symbol-macrolet):
    * lisp/emacs-lisp/cl.el (cl-unload-function, flet):
    * lisp/emacs-lisp/copyright.el (copyright)
    (copyright-update-directory):
    * lisp/emacs-lisp/edebug.el (edebug-read-list):
    * lisp/emacs-lisp/eieio-base.el (eieio-persistent-read):
    * lisp/emacs-lisp/eieio-core.el (eieio--slot-override)
    (eieio-oref, eieio-oset-default):
    * lisp/emacs-lisp/eieio-speedbar.el:
    (eieio-speedbar-child-make-tag-lines)
    (eieio-speedbar-child-description):
    * lisp/emacs-lisp/eieio.el (defclass, change-class):
    * lisp/emacs-lisp/elint.el (elint-file, elint-get-top-forms)
    (elint-init-form, elint-check-defalias-form)
    (elint-check-let-form):
    * lisp/emacs-lisp/ert.el (ert-get-test):
    * lisp/emacs-lisp/find-func.el (find-function-search-for-symbol)
    (find-function-library):
    * lisp/emacs-lisp/generator.el (iter-yield):
    * lisp/emacs-lisp/gv.el (gv-define-simple-setter):
    * lisp/emacs-lisp/lisp-mnt.el (lm-verify):
    * lisp/emacs-lisp/package-x.el (package-upload-file):
    * lisp/emacs-lisp/package.el (package-version-join)
    (package-disabled-p, package-activate-1, package-activate)
    (package--download-one-archive)
    (package--download-and-read-archives)
    (package-compute-transaction, package-install-from-archive)
    (package-install, package-install-selected-packages)
    (package-delete, package-autoremove)
    (package-install-button-action, package-delete-button-action)
    (package-menu-hide-package, package-menu--list-to-prompt)
    (package-menu--perform-transaction)
    (package-menu--find-and-notify-upgrades):
    * lisp/emacs-lisp/pcase.el (pcase-exhaustive, pcase--u1):
    * lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode):
    * lisp/emacs-lisp/ring.el (ring-next, ring-previous):
    * lisp/emacs-lisp/rx.el (rx-check, rx-anything):
    * lisp/emacs-lisp/smie.el (smie-config-save):
    * lisp/emacs-lisp/subr-x.el (internal--check-binding):
    * lisp/emacs-lisp/testcover.el (testcover-1value):
    Use curved quotes in diagnostic format strings.
---
 lisp/emacs-lisp/advice.el         |   34 +++++++-------
 lisp/emacs-lisp/byte-opt.el       |   24 +++++-----
 lisp/emacs-lisp/bytecomp.el       |   92 ++++++++++++++++++------------------
 lisp/emacs-lisp/cconv.el          |    8 ++--
 lisp/emacs-lisp/chart.el          |    2 +-
 lisp/emacs-lisp/check-declare.el  |   10 ++--
 lisp/emacs-lisp/checkdoc.el       |   24 +++++-----
 lisp/emacs-lisp/cl-extra.el       |    2 +-
 lisp/emacs-lisp/cl-macs.el        |   30 ++++++------
 lisp/emacs-lisp/cl.el             |    8 ++--
 lisp/emacs-lisp/copyright.el      |    4 +-
 lisp/emacs-lisp/edebug.el         |    2 +-
 lisp/emacs-lisp/eieio-base.el     |    2 +-
 lisp/emacs-lisp/eieio-core.el     |    8 ++--
 lisp/emacs-lisp/eieio-speedbar.el |    4 +-
 lisp/emacs-lisp/eieio.el          |    6 +-
 lisp/emacs-lisp/elint.el          |   14 +++---
 lisp/emacs-lisp/ert.el            |    2 +-
 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       |    8 ++--
 lisp/emacs-lisp/package-x.el      |    2 +-
 lisp/emacs-lisp/package.el        |   54 +++++++++++-----------
 lisp/emacs-lisp/pcase.el          |    6 +-
 lisp/emacs-lisp/re-builder.el     |    2 +-
 lisp/emacs-lisp/ring.el           |    4 +-
 lisp/emacs-lisp/rx.el             |   38 ++++++++--------
 lisp/emacs-lisp/smie.el           |    6 +-
 lisp/emacs-lisp/subr-x.el         |    2 +-
 lisp/emacs-lisp/testcover.el      |    2 +-
 31 files changed, 205 insertions(+), 205 deletions(-)

diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el
index 1915d94..bbff34d 100644
--- a/lisp/emacs-lisp/advice.el
+++ b/lisp/emacs-lisp/advice.el
@@ -168,7 +168,7 @@
 ;;  "Switch to non-existing buffers only upon confirmation."
 ;;  (interactive "BSwitch to buffer: ")
 ;;  (if (or (get-buffer (ad-get-arg 0))
-;;          (y-or-n-p (format "`%s' does not exist, create? " (ad-get-arg 0))))
+;;          (y-or-n-p (format "‘%s’ does not exist, create? " (ad-get-arg 0))))
 ;;      ad-do-it))
 ;;
 ;;(defadvice find-file (before existing-files-only activate)
@@ -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,...
@@ -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 1a34fa7..490d9a8 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/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 197df3b..0ae7824 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 "Leaving directory `%s'\n" default-directory))))
+              (insert (format "Leaving directory ‘%s’\n" default-directory))))
           (unless (bolp)
             (insert "\n"))
           (setq pt (point-marker))
@@ -1135,7 +1135,7 @@ Each function's symbol gets added to 
`byte-compile-noruntime-functions'."
           (when dir
             (setq default-directory dir)
             (unless was-same
-              (insert (format "Entering directory `%s'\n"
+              (insert (format "Entering directory ‘%s’\n"
                                default-directory))))
           (setq byte-compile-last-logged-file byte-compile-current-file
                 byte-compile-last-warned-form nil)
@@ -1338,7 +1338,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))
@@ -1358,7 +1358,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)
@@ -1377,7 +1377,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.
@@ -1385,7 +1385,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 <))
@@ -1464,7 +1464,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)
 
@@ -1506,12 +1506,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)
@@ -1813,11 +1813,11 @@ The value is non-nil if there were no errors, nil if 
errors."
     ;; compile this file.
     (if (with-current-buffer input-buffer no-byte-compile)
        (progn
-         ;; (message "%s not compiled because of `no-byte-compile: %s'"
+         ;; (message "%s not compiled because of ‘no-byte-compile: %s’"
          ;;       (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)))
@@ -2014,7 +2014,7 @@ and will be removed soon.  See (elisp)Backquote in the 
manual."))
        (format "     (string-lessp emacs-version \"%s\")\n" minimum-version)
        ;; Because the header must fit in a fixed width, we cannot
        ;; insert arbitrary-length file names (Bug#11585).
-       "     (error \"`%s' was compiled for "
+       "     (error \"'%s' was compiled for "
        (format "Emacs %s or later\" #$))\n\n" minimum-version))
       ;; Now compensate for any change in size, to make sure all
       ;; positions in the file remain valid.
@@ -2300,12 +2300,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)
@@ -2422,7 +2422,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
@@ -2430,13 +2430,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")))
@@ -2453,7 +2453,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))
@@ -2979,19 +2979,19 @@ for symbols generated by the byte compiler itself."
             (`(',var . ,_)
              (when (assq var byte-compile-lexical-variables)
                (byte-compile-log-warning
-                (format "%s cannot use lexical var `%s'" fn var)
+                (format "%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" interactive-only))
                                   ((and (symbolp 'interactive-only)
                                         (not (eq interactive-only t)))
-                                   (format "; use `%s' instead."
+                                   (format "; use ‘%s’ instead."
                                            interactive-only))
                                   (t "."))))
         (if (eq (car-safe (symbol-function (car form))) 'macro)
@@ -3036,7 +3036,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))))
@@ -3124,8 +3124,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)))
@@ -3163,7 +3163,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))))
 
@@ -3179,7 +3179,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))))
 
@@ -3360,7 +3360,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.
@@ -3728,7 +3728,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)))))))
@@ -4102,7 +4102,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))))
 
@@ -4165,7 +4165,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
@@ -4184,14 +4184,14 @@ 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))
                       ;;              (consp (get condition
                       ;;                          'error-conditions)))))
                       ;; (byte-compile-warn
-                      ;;   "`%s' is not a known condition name
+                      ;;   "‘%s’ is not a known condition name
                       ;;   (in condition-case)"
                       ;;   condition))
                       )
@@ -4217,7 +4217,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)))
@@ -4225,12 +4225,12 @@ 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))
           ;;  (byte-compile-warn
-          ;;   "`%s' is not a known condition name (in condition-case)"
+          ;;   "‘%s’ is not a known condition name (in condition-case)"
           ;;   c))
           )
         (byte-compile-push-constant condition))
@@ -4267,7 +4267,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))
@@ -4307,7 +4307,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))
@@ -4318,7 +4318,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")
@@ -4327,7 +4327,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
@@ -4350,7 +4350,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))
 
@@ -4358,7 +4358,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)
@@ -4430,7 +4430,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)
@@ -4562,7 +4562,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)
@@ -4675,7 +4675,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 fa82407..ac5144c 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 "Malformed `%S' binding: %S" letsym binder)))
+                          (format "Malformed ‘%S’ binding: %S" letsym binder)))
                       (setq value (cadr binder))
                       (car binder)))
                (new-val
@@ -545,7 +545,7 @@ FORM is the parent form that binds this var."
     (`((,(and var (guard (eq ?_ (aref (symbol-name var) 0)))) . ,_)
        ,_ ,_ ,_ ,_)
      (byte-compile-log-warning
-      (format "%s `%S' not left unused" varkind var))))
+      (format "%s ‘%S’ not left unused" varkind var))))
   (pcase vardata
     (`((,var . ,_) nil ,_ ,_ nil)
      ;; FIXME: This gives warnings in the wrong order, with imprecise line
@@ -557,7 +557,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 "Unused lexical %s `%S'"
+       (byte-compile-log-warning (format "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.
@@ -678,7 +678,7 @@ and updates the data stored in ENV."
 
     ;; ((and `(quote ,v . ,_) (guard (assq v env)))
     ;;  (byte-compile-log-warning
-    ;;   (format "Possible confusion variable/symbol for `%S'" v)))
+    ;;   (format "Possible confusion variable/symbol for ‘%S’" v)))
 
     (`(quote . ,_) nil)                 ; quote form
     (`(function . ,_) nil)              ; same as quote
diff --git a/lisp/emacs-lisp/chart.el b/lisp/emacs-lisp/chart.el
index 0660125..d972879 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 ea865f2..2c2f684 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 "said `%s' was defined in %s: %s"
+                     (format "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 c22aff4..14c2a1b 100644
--- a/lisp/emacs-lisp/checkdoc.el
+++ b/lisp/emacs-lisp/checkdoc.el
@@ -1663,7 +1663,7 @@ function,command,variable,option or symbol." ms1))))))
             ;;           (concat "\\<" (regexp-quote (car fp)) "\\>")
             ;;           newname))
             ;;         (checkdoc-create-error
-            ;;          "Flag variable names should normally end in `-flag'" s
+            ;;          "Flag variable names should normally end in ‘-flag’" s
             ;;          (marker-position e)))))
             ;; Done with variables
             ))
@@ -1715,7 +1715,7 @@ function,command,variable,option or symbol." ms1))))))
                             (if (checkdoc-autofix-ask-replace
                                  (match-beginning 1) (match-end 1)
                                  (format
-                                  "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
-                      "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))
@@ -1824,7 +1824,7 @@ Replace with \"%s\"? " original replace)
                    (setq found (intern-soft ms))
                    (or (boundp found) (fboundp found)))
               (progn
-                (setq msg (format "Add quotes around Lisp symbol `%s'? "
+                (setq msg (format "Add quotes around Lisp symbol ‘%s’? "
                                   ms))
                 (if (checkdoc-autofix-ask-replace
                      (match-beginning 1) (+ (match-beginning 1)
@@ -1832,7 +1832,7 @@ Replace with \"%s\"? " original replace)
                      msg (concat "‘" ms "’") t)
                     (setq msg nil)
                   (setq msg
-                        (format "Lisp symbol `%s' should appear in quotes"
+                        (format "Lisp symbol ‘%s’ should appear in quotes"
                                 ms))))))
         (if msg
             (checkdoc-create-error msg (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 ‘...’ quotes"
              (match-beginning 1) (match-end 1)))))
      ;; Here is some basic sentence formatting
      (checkdoc-sentencespace-region-engine (point) e)
@@ -2487,22 +2487,22 @@ 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? "
+                   "‘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? "
+                     "‘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 +2510,11 @@ 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? "
+                    "‘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 132aaa5..6f436db 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -416,7 +416,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)))))))
 
 
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index f5e1ffb..ea77c92 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 "Malformed `cl-symbol-macrolet' binding: %S"
+                   (format "Malformed ‘cl-symbol-macrolet’ binding: %S"
                            (car bindings))
                    expansion)
                 expansion)))
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el
index c966ace..38deeae 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 1317d69..ece6883 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/edebug.el b/lisp/emacs-lisp/edebug.el
index b5b68d2..d7e3903 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 400bdb9..e1051b2 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 7fcf85c..2ecf412 100644
--- a/lisp/emacs-lisp/eieio-core.el
+++ b/lisp/emacs-lisp/eieio-core.el
@@ -544,7 +544,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 +564,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 +733,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 "Unknown slot `%S'" name) exp 'compile-only))
+                  (format "Unknown slot ‘%S’" name) exp 'compile-only))
                 (_ exp)))))
   (cl-check-type slot symbol)
   (cl-check-type obj (or eieio-object class))
@@ -847,7 +847,7 @@ Fills in the default value in CLASS' in SLOT with VALUE."
       ;; gnus/registry.el, so it might be used elsewhere as well, so let's
       ;; keep it for now.
       ;; FIXME: Generate a compile-time warning for it!
-      ;; (error "Can't `oset-default' an instance-allocated slot: %S of %S"
+      ;; (error "Can't ‘oset-default’ an instance-allocated slot: %S of %S"
       ;;        slot class)
       (eieio--validate-slot-value class c value slot)
       ;; Set this into the storage for defaults.
diff --git a/lisp/emacs-lisp/eieio-speedbar.el 
b/lisp/emacs-lisp/eieio-speedbar.el
index a1eabcf..ac8124a 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 70a7c5c..96de2a4 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
@@ -941,7 +941,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
diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el
index fc66c82..3365a85 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 "\nLeaving directory `%s'"
+       (elint-log-message (format "\nLeaving directory ‘%s’"
                                   default-directory) t)
-       (elint-log-message (format "Entering directory `%s'" dir) t)
+       (elint-log-message (format "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 ‘'%.20s...’"
                           (read (current-buffer)))
            (condition-case nil
                (setq tops (cons
@@ -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 99c5ede..91fc157 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)
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index 4dc0596..3b103e0 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))
@@ -367,9 +367,9 @@ message about the whole chain of aliases."
           (not verbose)
           (setq aliases (if aliases
                             (concat aliases
-                                    (format ", which is an alias for `%s'"
+                                    (format ", which is an alias for ‘%s’"
                                             (symbol-name def)))
-                          (format "`%s' is an alias for `%s'"
+                          (format "‘%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 123f64b..79e760d 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 e67888c..bed9024 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 01ba656..b37d013 100644
--- a/lisp/emacs-lisp/lisp-mnt.el
+++ b/lisp/emacs-lisp/lisp-mnt.el
@@ -542,15 +542,15 @@ 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")
               ((not (lm-history-mark))
diff --git a/lisp/emacs-lisp/package-x.el b/lisp/emacs-lisp/package-x.el
index 81d0b83..608bf73 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 4ff6e07..f7cd6a1 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -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.
@@ -651,7 +651,7 @@ correspond to previously loaded files (those returned by
          (pkg-dir (package-desc-dir pkg-desc))
          (pkg-dir-dir (file-name-as-directory pkg-dir)))
     (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)
@@ -754,8 +754,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)))))))
@@ -1465,7 +1465,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 +1495,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 +1564,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
@@ -1592,20 +1592,20 @@ SEEN is used internally to detect infinite recursion."
                 (unless problem
                   (setq problem
                         (if (stringp disabled)
-                            (format "Package `%s' held at version %s, but 
version %s required"
+                            (format "Package ‘%s’ held at version %s, but 
version %s required"
                                     next-pkg disabled
                                     (package-version-join next-version))
-                          (format "Required package '%s' is disabled"
+                          (format "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)
@@ -1765,7 +1765,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)
@@ -1906,7 +1906,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.
@@ -1981,7 +1981,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
@@ -2046,13 +2046,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
@@ -2067,7 +2067,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)
@@ -2096,7 +2096,7 @@ will be deleted."
   ;; do absolutely nothing.
   (when (or package-selected-packages
             (yes-or-no-p
-             "`package-selected-packages' is empty! Really remove ALL 
packages? "))
+             "‘package-selected-packages’ is empty! Really remove ALL 
packages? "))
     (let ((removable (package--removable-packages)))
       (if removable
           (when (y-or-n-p
@@ -2364,7 +2364,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 "Install package `%s'? "
+    (when (y-or-n-p (format "Install package ‘%s’? "
                             (package-desc-full-name pkg-desc)))
       (package-install pkg-desc nil)
       (revert-buffer nil t)
@@ -2372,7 +2372,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 "Delete package `%s'? "
+    (when (y-or-n-p (format "Delete package ‘%s’? "
                       (package-desc-full-name pkg-desc)))
       (package-delete pkg-desc)
       (revert-buffer nil t)
@@ -2891,8 +2891,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)))))
 
@@ -3076,7 +3076,7 @@ prompt (see `package-menu--prompt-transaction-p')."
       (length packages)
       (mapconcat #'package-desc-full-name packages ", ")))
    ;; Exactly 1
-   (t (format "package `%s'"
+   (t (format "package ‘%s’"
         (package-desc-full-name (car packages))))))
 
 (defun package-menu--prompt-transaction-p (delete install upgrade)
@@ -3132,7 +3132,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))))))
 
@@ -3263,7 +3263,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 50a2507..7268457 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -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 a499b03..de1f6d1 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/ring.el b/lisp/emacs-lisp/ring.el
index 2447dfa..8badac3 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 5202106..0129d93 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/smie.el b/lisp/emacs-lisp/smie.el
index 0c24f79..9678cfa 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 e6d451a..9637e42 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/testcover.el b/lisp/emacs-lisp/testcover.el
index 110c63f..3e6039e 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)
 
 



reply via email to

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