summaryrefslogtreecommitdiff
path: root/src/lread.c
diff options
context:
space:
mode:
authorPhilipp Stephani <phst@google.com>2018-06-02 11:59:02 +0200
committerPhilipp Stephani <phst@google.com>2019-04-19 19:19:35 +0200
commit0b4b380ce4989afc59848d2b6a350bd1dd7dc7ca (patch)
treed48cd46b86ff19c609dd16f7ef799dd720014ef3 /src/lread.c
parent8aadf6e415b7801cb9fa4c5670b1750da207cf87 (diff)
downloademacs-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.c24
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.