+2012-06-28 Juanma Barranquero <lekktu@gmail.com>
+
+ * emacs-lisp/cl-lib.el (cl-pushnew): Don't capture X (bug#11811).
+
2012-06-28 Julien Danjou <julien@danjou.info>
* term.el (term-handle-colors-array): Use a set of new faces to
[keywordp form])))
(if (symbolp place)
(if (null keys)
- `(let ((x ,x))
- (if (memql x ,place)
- ;; This symbol may later on expand to actual code which then
- ;; trigger warnings like "value unused" since cl-pushnew's return
- ;; value is rarely used. It should not matter that other
- ;; warnings may be silenced, since `place' is used earlier and
- ;; should have triggered them already.
- (with-no-warnings ,place)
- (setq ,place (cons x ,place))))
+ (let ((var (make-symbol "--cl-x--")))
+ `(let ((,var ,x))
+ (if (memql ,var ,place)
+ ;; This symbol may later on expand to actual code which then
+ ;; trigger warnings like "value unused" since cl-pushnew's return
+ ;; value is rarely used. It should not matter that other
+ ;; warnings may be silenced, since `place' is used earlier and
+ ;; should have triggered them already.
+ (with-no-warnings ,place)
+ (setq ,place (cons ,var ,place)))))
(list 'setq place (cl-list* 'cl-adjoin x place keys)))
(cl-list* 'cl-callf2 'cl-adjoin x place keys)))