]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/backquote.el: Fix bug with unoptimized exp.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 30 Jan 2015 21:00:29 +0000 (16:00 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 30 Jan 2015 21:00:29 +0000 (16:00 -0500)
Fixes: debbugs:19734
* lisp/emacs-lisp/backquote.el (backquote-delay-process): Don't reuse `s'
since it may be "equivalent" in some sense, yet different.
* test/automated/core-elisp-tests.el (core-elisp-tests-3-backquote): New test.

lisp/ChangeLog
lisp/emacs-lisp/backquote.el
test/ChangeLog
test/automated/core-elisp-tests.el

index eac2e44ee5a20f494d9200a19e61d7df09e558a9..3724388dfda0dc4f81db61b1ed3317dbfbffbfc7 100644 (file)
@@ -1,3 +1,8 @@
+2015-01-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/backquote.el (backquote-delay-process): Don't reuse `s'
+       since it may be "equivalent" in some sense, yet different (bug#19734).
+
 2015-01-30  Oleh Krehel  <ohwoeowho@gmail.com>
 
        * outline.el (outline-font-lock-face): Add docstring.
index 082955e08235c3f9b9c6c389033c9bc4fd4ddd8a..d5cdca2b1b5921723df92d98b094078bb5829403 100644 (file)
@@ -120,9 +120,7 @@ Vectors work just like lists.  Nested backquotes are permitted."
 This simply recurses through the body."
   (let ((exp (backquote-listify (list (cons 0 (list 'quote (car s))))
                                 (backquote-process (cdr s) level))))
-    (if (eq (car-safe exp) 'quote)
-        (cons 0 (list 'quote s))
-      (cons 1 exp))))
+    (cons (if (eq (car-safe exp) 'quote) 0 1) exp)))
 
 (defun backquote-process (s &optional level)
   "Process the body of a backquote.
index 3ae980755a9a283245a1795c5e605bb373f2ee02..8e4fdb884a16b9cba9517850320194bce99f2b5e 100644 (file)
@@ -1,3 +1,7 @@
+2015-01-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * automated/core-elisp-tests.el (core-elisp-tests-3-backquote): New test.
+
 2015-01-28  Fabián Ezequiel Gallina  <fgallina@gnu.org>
 
        * automated/python-tests.el (python-indent-pep8-1)
index 1b76c767b9565f74a1aaf2b71bff7fdaf8b00cd2..c31ecef4a32751c645ab0441f109f326c9b27bbe 100644 (file)
@@ -24,7 +24,7 @@
 
 ;;; Code:
 
-(ert-deftest core-elisp-tests ()
+(ert-deftest core-elisp-tests-1-defvar-in-let ()
   "Test some core Elisp rules."
   (with-temp-buffer
     ;; Check that when defvar is run within a let-binding, the toplevel default
@@ -36,7 +36,7 @@
                          c-e-x)
                    '(1 2)))))
 
-(ert-deftest core-elisp-test-window-configurations ()
+(ert-deftest core-elisp-tests-2-window-configurations ()
   "Test properties of window-configurations."
   (let ((wc (current-window-configuration)))
     (with-current-buffer (window-buffer (frame-selected-window))
@@ -45,5 +45,8 @@
     (set-window-configuration wc)
     (should (or (not mark-active) (mark)))))
 
+(ert-deftest core-elisp-tests-3-backquote ()
+  (should (eq 3 (eval ``,,'(+ 1 2)))))
+
 (provide 'core-elisp-tests)
 ;;; core-elisp-tests.el ends here