* lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): Defend against
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 15 Nov 2012 01:26:52 +0000 (20:26 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 15 Nov 2012 01:26:52 +0000 (20:26 -0500)
potential binding of print-gensym to t, and prettify (back)quotes in
case they appear in args's default values.

Fixes: debbugs:12884

lisp/ChangeLog
lisp/emacs-lisp/cl-macs.el

index 01b7532..1a86637 100644 (file)
@@ -1,3 +1,9 @@
+2012-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/cl-macs.el (cl--transform-lambda): Defend against
+       potential binding of print-gensym to t, and prettify (back)quotes in
+       case they appear in args's default values (bug#12884).
+
 2012-11-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * emacs-lisp/nadvice.el: Add around advice for interactive specs.
index 3c46c40..f83bfe0 100644 (file)
@@ -260,9 +260,11 @@ The name is made by appending a number to PREFIX, default \"G\"."
                         (require 'help-fns)
                         (cons (help-add-fundoc-usage
                                (if (stringp (car hdr)) (pop hdr))
-                               (format "%S"
-                                       (cons 'fn
-                                             (cl--make-usage-args orig-args))))
+                               ;; Be careful with make-symbol and (back)quote,
+                               ;; see bug#12884.
+                               (let ((print-gensym nil) (print-quoted t))
+                                 (format "%S" (cons 'fn (cl--make-usage-args
+                                                         orig-args)))))
                               hdr)))
                    (list `(let* ,cl--bind-lets
                              ,@(nreverse cl--bind-forms)