emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 1600439: Improve unescaped character literal warnin


From: Philipp Stephani
Subject: [Emacs-diffs] master 1600439: Improve unescaped character literal warnings
Date: Sat, 13 May 2017 06:30:38 -0400 (EDT)

branch: master
commit 16004397f40d15d9db6b90632c236c804f38fc40
Author: Philipp Stephani <address@hidden>
Commit: Philipp Stephani <address@hidden>

    Improve unescaped character literal warnings
    
    * src/lread.c (load_warn_unescaped_character_literals)
    (syms_of_lread):
    lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Improve
    formatting of unescaped character literal warnings.
    
    * test/src/lread-tests.el (lread-tests--unescaped-char-literals):
    test/lisp/emacs-lisp/bytecomp-tests.el
    (bytecomp-tests--unescaped-char-literals): Adapt unit tests.
---
 lisp/emacs-lisp/bytecomp.el            | 2 +-
 src/lread.c                            | 6 +++++-
 test/lisp/emacs-lisp/bytecomp-tests.el | 3 ++-
 test/src/lread-tests.el                | 2 +-
 4 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 201733f..daad93d 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2032,7 +2032,7 @@ and will be removed soon.  See (elisp)Backquote in the 
manual."))
             (when lread--unescaped-character-literals
               (byte-compile-warn
                "unescaped character literals %s detected!"
-               (mapconcat #'string
+               (mapconcat (lambda (char) (format "`?%c'" char))
                           (sort lread--unescaped-character-literals #'<)
                           ", ")))
            (byte-compile-toplevel-file-form form)))
diff --git a/src/lread.c b/src/lread.c
index f0ad0c2..0e5b476 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -963,9 +963,11 @@ load_warn_unescaped_character_literals (Lisp_Object file)
   AUTO_STRING (format,
                "Loading `%s': unescaped character literals %s detected!");
   AUTO_STRING (separator, ", ");
+  AUTO_STRING (inner_format, "`?%c'");
   CALLN (Fmessage,
          format, file,
-         Fmapconcat (Qstring,
+         Fmapconcat (list3 (Qlambda, list1 (Qchar),
+                            list3 (Qformat, inner_format, Qchar)),
                      Fsort (Vlread_unescaped_character_literals, Qlss),
                      separator));
 }
@@ -4855,6 +4857,8 @@ For internal use only.  */);
           "lread--unescaped-character-literals");
 
   DEFSYM (Qlss, "<");
+  DEFSYM (Qchar, "char");
+  DEFSYM (Qformat, "format");
 
   DEFVAR_BOOL ("load-prefer-newer", load_prefer_newer,
                doc: /* Non-nil means `load' prefers the newest version of a 
file.
diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el 
b/test/lisp/emacs-lisp/bytecomp-tests.el
index 3624904..84004a9 100644
--- a/test/lisp/emacs-lisp/bytecomp-tests.el
+++ b/test/lisp/emacs-lisp/bytecomp-tests.el
@@ -527,7 +527,8 @@ literals (Bug#20852)."
             (err (should-error (byte-compile-file source))))
         (should (equal (cdr err)
                        (list (concat "unescaped character literals "
-                                     "\", (, ), ;, [, ] detected!"))))))))
+                                     "`?\"', `?(', `?)', `?;', `?[', `?]' "
+                                     "detected!"))))))))
 
 ;; Local Variables:
 ;; no-byte-compile: t
diff --git a/test/src/lread-tests.el b/test/src/lread-tests.el
index 0427fe6..685ea68 100644
--- a/test/src/lread-tests.el
+++ b/test/src/lread-tests.el
@@ -140,7 +140,7 @@ literals (Bug#20852)."
     (should (equal (lread-tests--last-message)
                    (concat (format-message "Loading `%s': " file-name)
                            "unescaped character literals "
-                           "\", (, ), ;, [, ] detected!")))))
+                           "`?\"', `?(', `?)', `?;', `?[', `?]' detected!")))))
 
 (ert-deftest lread-test-bug26837 ()
   "Test for http://debbugs.gnu.org/26837 ."



reply via email to

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