Commit d5e3922e authored by Stefan Monnier's avatar Stefan Monnier
Browse files

* lisp/emacs-lisp/backquote.el: Fix bug with unoptimized exp.

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.
parent adebc14b
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> 2015-01-30 Oleh Krehel <ohwoeowho@gmail.com>
   
* outline.el (outline-font-lock-face): Add docstring. * outline.el (outline-font-lock-face): Add docstring.
......
...@@ -120,9 +120,7 @@ Vectors work just like lists. Nested backquotes are permitted." ...@@ -120,9 +120,7 @@ Vectors work just like lists. Nested backquotes are permitted."
This simply recurses through the body." This simply recurses through the body."
(let ((exp (backquote-listify (list (cons 0 (list 'quote (car s)))) (let ((exp (backquote-listify (list (cons 0 (list 'quote (car s))))
(backquote-process (cdr s) level)))) (backquote-process (cdr s) level))))
(if (eq (car-safe exp) 'quote) (cons (if (eq (car-safe exp) 'quote) 0 1) exp)))
(cons 0 (list 'quote s))
(cons 1 exp))))
(defun backquote-process (s &optional level) (defun backquote-process (s &optional level)
"Process the body of a backquote. "Process the body of a backquote.
......
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> 2015-01-28 Fabián Ezequiel Gallina <fgallina@gnu.org>
* automated/python-tests.el (python-indent-pep8-1) * automated/python-tests.el (python-indent-pep8-1)
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
;;; Code: ;;; Code:
(ert-deftest core-elisp-tests () (ert-deftest core-elisp-tests-1-defvar-in-let ()
"Test some core Elisp rules." "Test some core Elisp rules."
(with-temp-buffer (with-temp-buffer
;; Check that when defvar is run within a let-binding, the toplevel default ;; Check that when defvar is run within a let-binding, the toplevel default
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
c-e-x) c-e-x)
'(1 2))))) '(1 2)))))
(ert-deftest core-elisp-test-window-configurations () (ert-deftest core-elisp-tests-2-window-configurations ()
"Test properties of window-configurations." "Test properties of window-configurations."
(let ((wc (current-window-configuration))) (let ((wc (current-window-configuration)))
(with-current-buffer (window-buffer (frame-selected-window)) (with-current-buffer (window-buffer (frame-selected-window))
...@@ -45,5 +45,8 @@ ...@@ -45,5 +45,8 @@
(set-window-configuration wc) (set-window-configuration wc)
(should (or (not mark-active) (mark))))) (should (or (not mark-active) (mark)))))
(ert-deftest core-elisp-tests-3-backquote ()
(should (eq 3 (eval ``,,'(+ 1 2)))))
(provide 'core-elisp-tests) (provide 'core-elisp-tests)
;;; core-elisp-tests.el ends here ;;; core-elisp-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