diff options
author | Philipp Stephani <phst@google.com> | 2018-06-02 11:59:02 +0200 |
---|---|---|
committer | Philipp Stephani <phst@google.com> | 2019-04-19 19:19:35 +0200 |
commit | 0b4b380ce4989afc59848d2b6a350bd1dd7dc7ca (patch) | |
tree | d48cd46b86ff19c609dd16f7ef799dd720014ef3 /src/lread.c | |
parent | 8aadf6e415b7801cb9fa4c5670b1750da207cf87 (diff) | |
download | emacs-0b4b380ce4989afc59848d2b6a350bd1dd7dc7ca.tar.gz |
Make warning about unescaped character literals more helpful.
See Bug#31676.
* lisp/emacs-lisp/byte-run.el
(byte-run--unescaped-character-literals-warning): New defun.
* src/lread.c (load_warn_unescaped_character_literals): Use new defun.
(syms_of_lread): Define symbol for new defun.
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Use new
defun.
* 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.
Diffstat (limited to 'src/lread.c')
-rw-r--r-- | src/lread.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/src/lread.c b/src/lread.c index 8cb4b63cc3a..8b38cacde07 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1034,18 +1034,12 @@ load_error_old_style_backquotes (void) static void load_warn_unescaped_character_literals (Lisp_Object file) { - if (NILP (Vlread_unescaped_character_literals)) return; - CHECK_CONS (Vlread_unescaped_character_literals); - Lisp_Object format = - build_string ("Loading `%s': unescaped character literals %s detected!"); - Lisp_Object separator = build_string (", "); - Lisp_Object inner_format = build_string ("`?%c'"); - CALLN (Fmessage, - format, file, - Fmapconcat (list3 (Qlambda, list1 (Qchar), - list3 (Qformat, inner_format, Qchar)), - Fsort (Vlread_unescaped_character_literals, Qlss), - separator)); + Lisp_Object warning + = call0 (Qbyte_run_unescaped_character_literals_warning); + if (NILP (warning)) + return; + Lisp_Object format = build_string ("Loading `%s': %s"); + CALLN (Fmessage, format, file, warning); } DEFUN ("get-load-suffixes", Fget_load_suffixes, Sget_load_suffixes, 0, 0, 0, @@ -5014,9 +5008,9 @@ For internal use only. */); DEFSYM (Qlread_unescaped_character_literals, "lread--unescaped-character-literals"); - DEFSYM (Qlss, "<"); - DEFSYM (Qchar, "char"); - DEFSYM (Qformat, "format"); + /* Defined in lisp/emacs-lisp/byte-run.el. */ + DEFSYM (Qbyte_run_unescaped_character_literals_warning, + "byte-run--unescaped-character-literals-warning"); DEFVAR_BOOL ("load-prefer-newer", load_prefer_newer, doc: /* Non-nil means `load' prefers the newest version of a file. |