mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-26 10:49:33 +00:00
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.
This commit is contained in:
parent
16004397f4
commit
a1d4615921
5
etc/NEWS
5
etc/NEWS
@ -907,6 +907,11 @@ which was sometimes numerically incorrect. For example, on a 64-bit
|
||||
host (max 1e16 10000000000000001) now returns its second argument
|
||||
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
|
||||
|
||||
|
@ -2021,11 +2021,11 @@ With argument ARG, insert value in current buffer after the form."
|
||||
(not (eobp)))
|
||||
(setq byte-compile-read-position (point)
|
||||
byte-compile-last-position byte-compile-read-position)
|
||||
(let* ((old-style-backquotes nil)
|
||||
(let* ((lread--old-style-backquotes nil)
|
||||
(lread--unescaped-character-literals nil)
|
||||
(form (read inbuffer)))
|
||||
;; 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 !!
|
||||
This functionality has been obsolete for more than 10 years already
|
||||
and will be removed soon. See (elisp)Backquote in the manual."))
|
||||
|
17
src/lread.c
17
src/lread.c
@ -948,7 +948,7 @@ load_error_handler (Lisp_Object data)
|
||||
static void
|
||||
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!");
|
||||
CALLN (Fmessage, format, file);
|
||||
@ -1216,7 +1216,7 @@ Return t if the file exists and loads successfully. */)
|
||||
version = -1;
|
||||
|
||||
/* 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);
|
||||
|
||||
/* Check for the presence of unescaped character literals and warn
|
||||
@ -3040,7 +3040,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
|
||||
"(\`" anyway). */
|
||||
if (!new_backquote_flag && first_in_list && next_char == ' ')
|
||||
{
|
||||
Vold_style_backquotes = Qt;
|
||||
Vlread_old_style_backquotes = Qt;
|
||||
goto default_label;
|
||||
}
|
||||
else
|
||||
@ -3094,7 +3094,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
|
||||
}
|
||||
else
|
||||
{
|
||||
Vold_style_backquotes = Qt;
|
||||
Vlread_old_style_backquotes = Qt;
|
||||
goto default_label;
|
||||
}
|
||||
}
|
||||
@ -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'. */);
|
||||
Veval_buffer_list = Qnil;
|
||||
|
||||
DEFVAR_LISP ("old-style-backquotes", Vold_style_backquotes,
|
||||
doc: /* Set to non-nil when `read' encounters an old-style backquote. */);
|
||||
Vold_style_backquotes = Qnil;
|
||||
DEFSYM (Qold_style_backquotes, "old-style-backquotes");
|
||||
DEFVAR_LISP ("lread--old-style-backquotes", Vlread_old_style_backquotes,
|
||||
doc: /* Set to non-nil when `read' encounters an old-style backquote.
|
||||
For internal use only. */);
|
||||
Vlread_old_style_backquotes = Qnil;
|
||||
DEFSYM (Qlread_old_style_backquotes, "lread--old-style-backquotes");
|
||||
|
||||
DEFVAR_LISP ("lread--unescaped-character-literals",
|
||||
Vlread_unescaped_character_literals,
|
||||
|
@ -530,6 +530,21 @@ literals (Bug#20852)."
|
||||
"`?\"', `?(', `?)', `?;', `?[', `?]' "
|
||||
"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:
|
||||
;; no-byte-compile: t
|
||||
;; End:
|
||||
|
@ -155,4 +155,13 @@ literals (Bug#20852)."
|
||||
(load "somelib" nil t)
|
||||
(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
|
||||
|
Loading…
Reference in New Issue
Block a user