From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Philipp Stephani
* 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.
---
=C2=A0etc/NEWS=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 5 +++++
=C2=A0lisp/emacs-lisp/bytecomp.el=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = |=C2=A0 4 ++--
=C2=A0src/lread.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | 17 +++++++++--------
=C2=A0test/lisp/emacs-lisp/bytecomp-tests.el | 15 +++++++++++++++
=C2=A0test/src/lread-tests.el=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 |=C2=A0 9 +++++++++
=C2=A05 files changed, 40 insertions(+), 10 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index 1f1f4b4b4b..166744b848 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -896,6 +896,11 @@ which was sometimes numerically incorrect.=C2=A0 For e= xample, on a 64-bit
=C2=A0host (max 1e16 10000000000000001) now returns its second argument
=C2=A0instead of its first.
++++
+** The variable 'old-style-backquotes' has been made internal and<= br> +renamed to 'lread--old-style-backquotes'.=C2=A0 No user code shoul= d use
+this variable.
+
=C2=A0* Lisp Changes in Emacs 26.1
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 201733ff03..04335ffbfe 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2021,11 +2021,11 @@ byte-compile-from-buffer
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(not (eobp)))=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (setq byte-compile-read-position (point)=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 byte-compile-last-p= osition byte-compile-read-position)
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(let* ((old-style-backquotes nil)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(let* ((lread--old-style-backquotes nil)=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (lread--unes= caped-character-literals nil)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (form (read = inbuffer)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0;; Warn about the use of ol= d-style backquotes.
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (when old-style-backquotes
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (when lread--old-style-backquote= s
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(byte-compile-warn &= quot;!! The file uses old-style backquotes !!
=C2=A0This functionality has been obsolete for more than 10 years already =C2=A0and will be removed soon.=C2=A0 See (elisp)Backquote in the manual.&q= uot;))
diff --git a/src/lread.c b/src/lread.c
index 6467043b1d..3cf8ef5a4e 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -948,7 +948,7 @@ load_error_handler (Lisp_Object data)
=C2=A0static void
=C2=A0load_warn_old_style_backquotes (Lisp_Object file)
=C2=A0{
-=C2=A0 if (!NILP (Vold_style_backquotes))
+=C2=A0 if (!NILP (Vlread_old_style_backquotes))
=C2=A0 =C2=A0 =C2=A0{
=C2=A0 =C2=A0 =C2=A0 =C2=A0AUTO_STRING (format, "Loading `%s': old= -style backquotes detected!");
=C2=A0 =C2=A0 =C2=A0 =C2=A0CALLN (Fmessage, format, file);
@@ -1214,7 +1214,7 @@ Return t if the file exists and loads successfully.= =C2=A0 */)
=C2=A0 =C2=A0version =3D -1;
=C2=A0 =C2=A0/* Check for the presence of old-style quotes and warn about t= hem.=C2=A0 */
-=C2=A0 specbind (Qold_style_backquotes, Qnil);
+=C2=A0 specbind (Qlread_old_style_backquotes, Qnil);
=C2=A0 =C2=A0record_unwind_protect (load_warn_old_style_backquotes, file);<= br>
=C2=A0 =C2=A0/* Check for the presence of unescaped character literals and = warn
@@ -3037,7 +3037,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_= in_list)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"(\`" anyway).=C2=A0 */<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!new_backquote_flag && first_in_lis= t && next_char =3D=3D ' ')
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Vold_style_backquotes =3D Qt;
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Vlread_old_style_backquotes =3D Q= t;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 goto default_label;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=C2=A0 =C2=A0 =C2=A0 =C2=A0 else
@@ -3091,7 +3091,7 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_= in_list)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=C2=A0 =C2=A0 =C2=A0 =C2=A0 else
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Vold_style_backquotes =3D Qt;
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Vlread_old_style_backquotes =3D Q= t;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 goto default_label;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=C2=A0 =C2=A0 =C2=A0 =C2=A0}
@@ -4840,10 +4840,11 @@ variables, this must be set in the first line of a = file.=C2=A0 */);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0doc: /* List of buff= ers being read from by calls to `eval-buffer' and `eval-region'.=C2= =A0 */);
=C2=A0 =C2=A0Veval_buffer_list =3D Qnil;
-=C2=A0 DEFVAR_LISP ("old-style-backquotes", Vold_style_backquote= s,
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 doc: /* Set to non-nil wh= en `read' encounters an old-style backquote.=C2=A0 */);
-=C2=A0 Vold_style_backquotes =3D Qnil;
-=C2=A0 DEFSYM (Qold_style_backquotes, "old-style-backquotes"); +=C2=A0 DEFVAR_LISP ("lread--old-style-backquotes", Vlread_old_st= yle_backquotes,
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 doc: /* Set to non-nil wh= en `read' encounters an old-style backquote.
+For internal use only.=C2=A0 */);
+=C2=A0 Vlread_old_style_backquotes =3D Qnil;
+=C2=A0 DEFSYM (Qlread_old_style_backquotes, "lread--old-style-backquo= tes");
=C2=A0 =C2=A0DEFVAR_LISP ("lread--unescaped-character-literals",<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Vlread_unescaped_ch= aracter_literals,
diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el b/test/lisp/emacs-lisp/= bytecomp-tests.el
index 3624904753..a83c998a59 100644
--- a/test/lisp/emacs-lisp/bytecomp-tests.el
+++ b/test/lisp/emacs-lisp/bytecomp-tests.el
@@ -529,6 +529,21 @@ bytecomp-tests--with-temp-file
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 (list (concat "unescaped character literals "
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "\", = (, ), ;, [, ] detected!"))))))))
+(ert-deftest bytecomp-tests--old-style-backquotes ()
+=C2=A0 "Check that byte compiling warns about old-style backquotes.&q= uot;
+=C2=A0 (should (boundp 'lread--old-style-backquotes))
+=C2=A0 (bytecomp-tests--with-temp-file source
+=C2=A0 =C2=A0 (write-region "(` (a b))" nil source)
+=C2=A0 =C2=A0 (bytecomp-tests--with-temp-file destination
+=C2=A0 =C2=A0 =C2=A0 (let* ((byte-compile-dest-file-function (lambda (_) d= estination))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (byte-compile-error-on-warn t) +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (byte-compile-debug t)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (err (should-error (byte-compile= -file source))))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 (should (equal (cdr err)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0(list "!! The file uses old-style backquotes !!
+This functionality has been obsolete for more than 10 years already
+and will be removed soon.=C2=A0 See (elisp)Backquote in the manual.")= ))))))
+
=C2=A0;; Local Variables:
=C2=A0;; no-byte-compile: t
=C2=A0;; End:
diff --git a/test/src/lread-tests.el b/test/src/lread-tests.el
index 84342348d4..e45d184cad 100644
--- a/test/src/lread-tests.el
+++ b/test/src/lread-tests.el
@@ -142,4 +142,13 @@ lread-tests--last-message
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 "unescaped character literals "
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 "\", (, ), ;, [, ] detected!")))))<= br>
+(ert-deftest lread-tests--old-style-backquotes ()
+=C2=A0 "Check that loading warns about old-style backquotes."
+=C2=A0 (lread-tests--with-temp-file file-name
+=C2=A0 =C2=A0 (write-region "(` (a b))" nil file-name)
+=C2=A0 =C2=A0 (should (equal (load file-name nil :nomessage :nosuffix) t))=
+=C2=A0 =C2=A0 (should (equal (lread-tests--last-message)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(conc= at (format-message "Loading `%s': " file-name)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0"old-style backquotes detected!")))))
+
=C2=A0;;; lread-tests.el ends here
--
2.12.2