Commit a1d46159 authored by Philipp's avatar Philipp Committed by Philipp Stephani

Make `old-style-backquotes' variable internal

* src/lread.c (load_warn_old_style_backquotes, Fload, read1)
(syms_of_lread): Rename `old-style-backquotes' to
`lread--old-style-backquotes', and clarify that it's for internal
use only.
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Rename
variable.
* test/src/lread-tests.el (lread-tests--old-style-backquotes): Add
unit test.
* emacs-lisp/bytecomp-tests.el
(bytecomp-tests--old-style-backquotes): Add unit test.
parent 16004397
...@@ -907,6 +907,11 @@ which was sometimes numerically incorrect. For example, on a 64-bit ...@@ -907,6 +907,11 @@ which was sometimes numerically incorrect. For example, on a 64-bit
host (max 1e16 10000000000000001) now returns its second argument host (max 1e16 10000000000000001) now returns its second argument
instead of its first. instead of its first.
+++
** The variable 'old-style-backquotes' has been made internal and
renamed to 'lread--old-style-backquotes'. No user code should use
this variable.
* Lisp Changes in Emacs 26.1 * Lisp Changes in Emacs 26.1
......
...@@ -2021,11 +2021,11 @@ With argument ARG, insert value in current buffer after the form." ...@@ -2021,11 +2021,11 @@ With argument ARG, insert value in current buffer after the form."
(not (eobp))) (not (eobp)))
(setq byte-compile-read-position (point) (setq byte-compile-read-position (point)
byte-compile-last-position byte-compile-read-position) byte-compile-last-position byte-compile-read-position)
(let* ((old-style-backquotes nil) (let* ((lread--old-style-backquotes nil)
(lread--unescaped-character-literals nil) (lread--unescaped-character-literals nil)
(form (read inbuffer))) (form (read inbuffer)))
;; Warn about the use of old-style backquotes. ;; Warn about the use of old-style backquotes.
(when old-style-backquotes (when lread--old-style-backquotes
(byte-compile-warn "!! The file uses old-style backquotes !! (byte-compile-warn "!! The file uses old-style backquotes !!
This functionality has been obsolete for more than 10 years already This functionality has been obsolete for more than 10 years already
and will be removed soon. See (elisp)Backquote in the manual.")) and will be removed soon. See (elisp)Backquote in the manual."))
......
...@@ -948,7 +948,7 @@ load_error_handler (Lisp_Object data) ...@@ -948,7 +948,7 @@ load_error_handler (Lisp_Object data)
static void static void
load_warn_old_style_backquotes (Lisp_Object file) load_warn_old_style_backquotes (Lisp_Object file)
{ {
if (!NILP (Vold_style_backquotes)) if (!NILP (Vlread_old_style_backquotes))
{ {
AUTO_STRING (format, "Loading `%s': old-style backquotes detected!"); AUTO_STRING (format, "Loading `%s': old-style backquotes detected!");
CALLN (Fmessage, format, file); CALLN (Fmessage, format, file);
...@@ -1216,7 +1216,7 @@ Return t if the file exists and loads successfully. */) ...@@ -1216,7 +1216,7 @@ Return t if the file exists and loads successfully. */)
version = -1; version = -1;
/* Check for the presence of old-style quotes and warn about them. */ /* Check for the presence of old-style quotes and warn about them. */
specbind (Qold_style_backquotes, Qnil); specbind (Qlread_old_style_backquotes, Qnil);
record_unwind_protect (load_warn_old_style_backquotes, file); record_unwind_protect (load_warn_old_style_backquotes, file);
/* Check for the presence of unescaped character literals and warn /* Check for the presence of unescaped character literals and warn
...@@ -3040,7 +3040,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) ...@@ -3040,7 +3040,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
"(\`" anyway). */ "(\`" anyway). */
if (!new_backquote_flag && first_in_list && next_char == ' ') if (!new_backquote_flag && first_in_list && next_char == ' ')
{ {
Vold_style_backquotes = Qt; Vlread_old_style_backquotes = Qt;
goto default_label; goto default_label;
} }
else else
...@@ -3094,7 +3094,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) ...@@ -3094,7 +3094,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
} }
else else
{ {
Vold_style_backquotes = Qt; Vlread_old_style_backquotes = Qt;
goto default_label; goto default_label;
} }
} }
...@@ -4843,10 +4843,11 @@ variables, this must be set in the first line of a file. */); ...@@ -4843,10 +4843,11 @@ variables, this must be set in the first line of a file. */);
doc: /* List of buffers being read from by calls to `eval-buffer' and `eval-region'. */); doc: /* List of buffers being read from by calls to `eval-buffer' and `eval-region'. */);
Veval_buffer_list = Qnil; Veval_buffer_list = Qnil;
DEFVAR_LISP ("old-style-backquotes", Vold_style_backquotes, DEFVAR_LISP ("lread--old-style-backquotes", Vlread_old_style_backquotes,
doc: /* Set to non-nil when `read' encounters an old-style backquote. */); doc: /* Set to non-nil when `read' encounters an old-style backquote.
Vold_style_backquotes = Qnil; For internal use only. */);
DEFSYM (Qold_style_backquotes, "old-style-backquotes"); Vlread_old_style_backquotes = Qnil;
DEFSYM (Qlread_old_style_backquotes, "lread--old-style-backquotes");
DEFVAR_LISP ("lread--unescaped-character-literals", DEFVAR_LISP ("lread--unescaped-character-literals",
Vlread_unescaped_character_literals, Vlread_unescaped_character_literals,
......
...@@ -530,6 +530,21 @@ literals (Bug#20852)." ...@@ -530,6 +530,21 @@ literals (Bug#20852)."
"`?\"', `?(', `?)', `?;', `?[', `?]' " "`?\"', `?(', `?)', `?;', `?[', `?]' "
"detected!")))))))) "detected!"))))))))
(ert-deftest bytecomp-tests--old-style-backquotes ()
"Check that byte compiling warns about old-style backquotes."
(should (boundp 'lread--old-style-backquotes))
(bytecomp-tests--with-temp-file source
(write-region "(` (a b))" nil source)
(bytecomp-tests--with-temp-file destination
(let* ((byte-compile-dest-file-function (lambda (_) destination))
(byte-compile-error-on-warn t)
(byte-compile-debug t)
(err (should-error (byte-compile-file source))))
(should (equal (cdr err)
(list "!! 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.")))))))
;; Local Variables: ;; Local Variables:
;; no-byte-compile: t ;; no-byte-compile: t
;; End: ;; End:
......
...@@ -155,4 +155,13 @@ literals (Bug#20852)." ...@@ -155,4 +155,13 @@ literals (Bug#20852)."
(load "somelib" nil t) (load "somelib" nil t)
(should (string-suffix-p "/somelib.el" (caar load-history))))) (should (string-suffix-p "/somelib.el" (caar load-history)))))
(ert-deftest lread-tests--old-style-backquotes ()
"Check that loading warns about old-style backquotes."
(lread-tests--with-temp-file file-name
(write-region "(` (a b))" nil file-name)
(should (equal (load file-name nil :nomessage :nosuffix) t))
(should (equal (lread-tests--last-message)
(concat (format-message "Loading `%s': " file-name)
"old-style backquotes detected!")))))
;;; lread-tests.el ends here ;;; lread-tests.el ends here
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment