emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master a1d4615: Make `old-style-backquotes' variable inter


From: Philipp Stephani
Subject: [Emacs-diffs] master a1d4615: Make `old-style-backquotes' variable internal
Date: Sat, 13 May 2017 06:34:07 -0400 (EDT)

branch: master
commit a1d461592172ca4c8aac0e4e923ef5e909cfb361
Author: Philipp <address@hidden>
Commit: Philipp Stephani <address@hidden>

    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.
---
 etc/NEWS                               |  5 +++++
 lisp/emacs-lisp/bytecomp.el            |  4 ++--
 src/lread.c                            | 17 +++++++++--------
 test/lisp/emacs-lisp/bytecomp-tests.el | 15 +++++++++++++++
 test/src/lread-tests.el                |  9 +++++++++
 5 files changed, 40 insertions(+), 10 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index 9be6ee0..380ce71 100644
--- a/etc/NEWS
+++ b/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
 
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index daad93d..e716eef 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -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."))
diff --git a/src/lread.c b/src/lread.c
index 0e5b476..c03aad4 100644
--- a/src/lread.c
+++ b/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,
diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el 
b/test/lisp/emacs-lisp/bytecomp-tests.el
index 84004a9..d15bd8b 100644
--- a/test/lisp/emacs-lisp/bytecomp-tests.el
+++ b/test/lisp/emacs-lisp/bytecomp-tests.el
@@ -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:
diff --git a/test/src/lread-tests.el b/test/src/lread-tests.el
index 685ea68..98cbb6a 100644
--- a/test/src/lread-tests.el
+++ b/test/src/lread-tests.el
@@ -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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]