aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2015-01-30 16:00:29 -0500
committerStefan Monnier2015-01-30 16:00:29 -0500
commitd5e3922e08587e7eb9e5aec2e9f84cbda405f857 (patch)
tree6ab951b35a3ee24d7b5248e214500ece03ae0044
parentadebc14b9c1794e49cfab9b3f2c4866acfbdf175 (diff)
downloademacs-d5e3922e08587e7eb9e5aec2e9f84cbda405f857.tar.gz
emacs-d5e3922e08587e7eb9e5aec2e9f84cbda405f857.zip
* 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.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/emacs-lisp/backquote.el4
-rw-r--r--test/ChangeLog4
-rw-r--r--test/automated/core-elisp-tests.el7
4 files changed, 15 insertions, 5 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index eac2e44ee5a..3724388dfda 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12015-01-30 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * emacs-lisp/backquote.el (backquote-delay-process): Don't reuse `s'
4 since it may be "equivalent" in some sense, yet different (bug#19734).
5
12015-01-30 Oleh Krehel <ohwoeowho@gmail.com> 62015-01-30 Oleh Krehel <ohwoeowho@gmail.com>
2 7
3 * outline.el (outline-font-lock-face): Add docstring. 8 * outline.el (outline-font-lock-face): Add docstring.
diff --git a/lisp/emacs-lisp/backquote.el b/lisp/emacs-lisp/backquote.el
index 082955e0823..d5cdca2b1b5 100644
--- a/lisp/emacs-lisp/backquote.el
+++ b/lisp/emacs-lisp/backquote.el
@@ -120,9 +120,7 @@ Vectors work just like lists. Nested backquotes are permitted."
120This simply recurses through the body." 120This simply recurses through the body."
121 (let ((exp (backquote-listify (list (cons 0 (list 'quote (car s)))) 121 (let ((exp (backquote-listify (list (cons 0 (list 'quote (car s))))
122 (backquote-process (cdr s) level)))) 122 (backquote-process (cdr s) level))))
123 (if (eq (car-safe exp) 'quote) 123 (cons (if (eq (car-safe exp) 'quote) 0 1) exp)))
124 (cons 0 (list 'quote s))
125 (cons 1 exp))))
126 124
127(defun backquote-process (s &optional level) 125(defun backquote-process (s &optional level)
128 "Process the body of a backquote. 126 "Process the body of a backquote.
diff --git a/test/ChangeLog b/test/ChangeLog
index 3ae980755a9..8e4fdb884a1 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,7 @@
12015-01-30 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * automated/core-elisp-tests.el (core-elisp-tests-3-backquote): New test.
4
12015-01-28 Fabián Ezequiel Gallina <fgallina@gnu.org> 52015-01-28 Fabián Ezequiel Gallina <fgallina@gnu.org>
2 6
3 * automated/python-tests.el (python-indent-pep8-1) 7 * automated/python-tests.el (python-indent-pep8-1)
diff --git a/test/automated/core-elisp-tests.el b/test/automated/core-elisp-tests.el
index 1b76c767b95..c31ecef4a32 100644
--- a/test/automated/core-elisp-tests.el
+++ b/test/automated/core-elisp-tests.el
@@ -24,7 +24,7 @@
24 24
25;;; Code: 25;;; Code:
26 26
27(ert-deftest core-elisp-tests () 27(ert-deftest core-elisp-tests-1-defvar-in-let ()
28 "Test some core Elisp rules." 28 "Test some core Elisp rules."
29 (with-temp-buffer 29 (with-temp-buffer
30 ;; Check that when defvar is run within a let-binding, the toplevel default 30 ;; Check that when defvar is run within a let-binding, the toplevel default
@@ -36,7 +36,7 @@
36 c-e-x) 36 c-e-x)
37 '(1 2))))) 37 '(1 2)))))
38 38
39(ert-deftest core-elisp-test-window-configurations () 39(ert-deftest core-elisp-tests-2-window-configurations ()
40 "Test properties of window-configurations." 40 "Test properties of window-configurations."
41 (let ((wc (current-window-configuration))) 41 (let ((wc (current-window-configuration)))
42 (with-current-buffer (window-buffer (frame-selected-window)) 42 (with-current-buffer (window-buffer (frame-selected-window))
@@ -45,5 +45,8 @@
45 (set-window-configuration wc) 45 (set-window-configuration wc)
46 (should (or (not mark-active) (mark))))) 46 (should (or (not mark-active) (mark)))))
47 47
48(ert-deftest core-elisp-tests-3-backquote ()
49 (should (eq 3 (eval ``,,'(+ 1 2)))))
50
48(provide 'core-elisp-tests) 51(provide 'core-elisp-tests)
49;;; core-elisp-tests.el ends here 52;;; core-elisp-tests.el ends here