[slime-cvs] CVS slime/contrib

heller heller at common-lisp.net
Tue Sep 4 15:45:20 UTC 2007


Update of /project/slime/cvsroot/slime/contrib
In directory clnet:/tmp/cvs-serv29758/contrib

Modified Files:
	ChangeLog swank-arglists.lisp 
Log Message:
Abcl fixes.


--- /project/slime/cvsroot/slime/contrib/ChangeLog	2007/09/04 10:51:24	1.31
+++ /project/slime/cvsroot/slime/contrib/ChangeLog	2007/09/04 15:45:20	1.32
@@ -1,5 +1,10 @@
 2007-09-04  Helmut Eller  <heller at common-lisp.net>
 
+	* swank-arglists.lisp (parse-first-valid-form-spec): Rewrite it for
+	ABCL.
+
+2007-09-04  Helmut Eller  <heller at common-lisp.net>
+
 	Some bug fixes for slime-complete-symbol*.
 	Patches by Mr. Madhu <enometh at meer.net>
 
--- /project/slime/cvsroot/slime/contrib/swank-arglists.lisp	2007/09/04 09:49:10	1.6
+++ /project/slime/cvsroot/slime/contrib/swank-arglists.lisp	2007/09/04 15:45:20	1.7
@@ -164,21 +164,17 @@
             (values :function operator-designator)) ; functions, macros, special ops
       (values type operator arguments))))           ;  are all fbound.
 
-
 (defun parse-first-valid-form-spec (raw-specs &optional arg-indices reader)
   "Returns the first parsed form spec in RAW-SPECS that can
 successfully be parsed. Additionally returns its respective index
 in ARG-INDICES (or NIL.), and all newly interned symbols as tertiary
 return value."
-  (block traversal
-    (mapc #'(lambda (raw-spec index)
-              (multiple-value-bind (spec symbols) (parse-form-spec raw-spec reader)
-                (when spec (return-from traversal
-                             (values spec index symbols)))))
-          raw-specs
-          (append arg-indices '#1=(nil . #1#)))
-    nil)) ; found nothing
-
+  (do ((raw raw-specs (cdr raw))
+       (arg arg-indices (cdr arg)))
+      ((null raw) nil)
+    (let ((raw-spec (car raw)) (index (car arg)))
+      (multiple-value-bind (spec symbols) (parse-form-spec raw-spec reader) 
+	(when spec (return (values spec index symbols)))))))
 
 (defun read-form-spec (spec &optional reader)
   "Turns the ``raw form spec'' SPEC into a proper Common Lisp




More information about the slime-cvs mailing list