* 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.
This commit is contained in:
Stefan Monnier 2015-01-30 16:00:29 -05:00
parent adebc14b9c
commit d5e3922e08
4 changed files with 15 additions and 5 deletions

View 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.

View 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.

View 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)

View 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