diff lisp/cl-macs.el @ 5476:f2881cb841b4

Merged with trunk.
author Mats Lidell <matsl@xemacs.org>
date Tue, 26 Apr 2011 23:41:47 +0200
parents 248176c74e6b 97ac18bd1fa3
children 4813ff11c6e2
line wrap: on
line diff
--- a/lisp/cl-macs.el	Sat Apr 23 23:47:13 2011 +0200
+++ b/lisp/cl-macs.el	Tue Apr 26 23:41:47 2011 +0200
@@ -1789,12 +1789,14 @@
   "Make symbol macro definitions.
 Within the body FORMs, references to the variable NAME will be replaced
 by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...)."
+  (check-type name symbol)
   (cl-macroexpand-all (cons 'progn form)
-                      (append (list (list (symbol-name name) expansion))
-                              (loop
-                                for (name expansion) in symbol-macros
-                                collect (list (symbol-name name) expansion))
-                              cl-macro-environment)))
+                      (nconc (list (list (eq-hash name) expansion))
+			     (loop
+			       for (name expansion) in symbol-macros
+			       do (check-type name symbol)
+			       collect (list (eq-hash name) expansion))
+			     cl-macro-environment)))
 
 (defvar cl-closure-vars nil)
 ;;;###autoload
@@ -1805,8 +1807,9 @@
   (let* ((cl-closure-vars cl-closure-vars)
 	 (vars (mapcar #'(lambda (x)
 			   (or (consp x) (setq x (list x)))
-			   (push (gensym (format "--%s--" (car x)))
-				    cl-closure-vars)
+			   (push (gensym (concat "--" (symbol-name (car x))
+						 "--" ))
+				 cl-closure-vars)
 			   (set (car cl-closure-vars) [bad-lexical-ref])
 			   (list (car x) (cadr x) (car cl-closure-vars)))
 		       bindings))
@@ -1814,7 +1817,7 @@
 	  (cl-macroexpand-all
 	   (cons 'progn body)
 	   (nconc (mapcar #'(lambda (x)
-			      (list (symbol-name (car x))
+			      (list (eq-hash (car x))
 				    (list 'symbol-value (caddr x))
 				    t))
 			  vars)