summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorPhilipp Stephani <phst@google.com>2015-06-30 22:38:35 +0200
committerPhilipp Stephani <phst@google.com>2017-05-01 20:39:10 +0200
commitc2bbdc3316487e34eba1470dd059c0c290431e00 (patch)
treebed5315e69d89c99c62be4a78e8f26d799643f70 /lisp/emacs-lisp
parentb72e36047c9a5d46b02e12252e0fc640b6839903 (diff)
downloademacs-c2bbdc3316487e34eba1470dd059c0c290431e00.tar.gz
emacs-c2bbdc3316487e34eba1470dd059c0c290431e00.tar.bz2
emacs-c2bbdc3316487e34eba1470dd059c0c290431e00.zip
Warn about missing backslashes during load
* src/lread.c (load_warn_unescaped_character_literals, Fload, read1) (syms_of_lread): Warn if unescaped character literals are found (Bug#20152). * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Check for unescaped character literals during byte compilation. * test/src/lread-tests.el (lread-tests--unescaped-char-literals): New unit test. (lread-tests--with-temp-file, lread-tests--last-message): Helper functions for unit test. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--unescaped-char-literals): New unit test. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--with-temp-file): Helper macro for unit test.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/bytecomp.el7
1 files changed, 7 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 15dc24060aa..25102548a9d 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2027,12 +2027,19 @@ With argument ARG, insert value in current buffer after the form."
(setq byte-compile-read-position (point)
byte-compile-last-position byte-compile-read-position)
(let* ((old-style-backquotes nil)
+ (lread--unescaped-character-literals nil)
(form (read inbuffer)))
;; Warn about the use of old-style backquotes.
(when old-style-backquotes
(byte-compile-warn "!! The file uses old-style backquotes !!
This functionality has been obsolete for more than 10 years already
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
+ (sort lread--unescaped-character-literals #'<)
+ ", ")))
(byte-compile-toplevel-file-form form)))
;; Compile pending forms at end of file.
(byte-compile-flush-pending)