]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/subr.el (add-to-list): Preserve return value in compiler-macro.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 25 Oct 2013 01:10:27 +0000 (21:10 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 25 Oct 2013 01:10:27 +0000 (21:10 -0400)
Fixes: debbugs:15692
lisp/ChangeLog
lisp/subr.el

index 00d8c4240bde15aef664b72be6b837d91d5e67e1..2513f838b57c7211f24f5896dec59ee3788270c6 100644 (file)
@@ -1,3 +1,8 @@
+2013-10-25  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * subr.el (add-to-list): Preserve return value in compiler-macro
+       (bug#15692).
+
 2013-10-25  RĂ¼diger Sonderfeld  <ruediger@c-plusplus.de>
 
        * progmodes/octave.el (octave-lookfor): Handle empty lookfor
index 952b9b601dc27b58193eb24ec3f5a3b691df762e..05bbe6ea649e6b549f68a3929100e73aebae0888 100644 (file)
@@ -1541,13 +1541,14 @@ other hooks, such as major mode hooks, can do the job."
                             (byte-compile-log-warning msg t :error))))
                (code
                 (macroexp-let2 macroexp-copyable-p x element
-                  `(unless ,(if compare-fn
-                                (progn
-                                  (require 'cl-lib)
-                                  `(cl-member ,x ,sym :test ,compare-fn))
-                              ;; For bootstrapping reasons, don't rely on
-                              ;; cl--compiler-macro-member for the base case.
-                              `(member ,x ,sym))
+                  `(if ,(if compare-fn
+                            (progn
+                              (require 'cl-lib)
+                              `(cl-member ,x ,sym :test ,compare-fn))
+                          ;; For bootstrapping reasons, don't rely on
+                          ;; cl--compiler-macro-member for the base case.
+                          `(member ,x ,sym))
+                       ,sym
                      ,(if append
                           `(setq ,sym (append ,sym (list ,x)))
                         `(push ,x ,sym))))))