[slime-cvs] CVS update: slime/swank-lispworks.lisp

Helmut Eller heller at common-lisp.net
Thu Feb 26 07:12:02 UTC 2004


Update of /project/slime/cvsroot/slime
In directory common-lisp.net:/tmp/cvs-serv7201

Modified Files:
	swank-lispworks.lisp 
Log Message:
(dspec-buffer-position): Renamed from dspec-buffer-buffer-position.
Handle dspecs of the form (defmacro foo).

(arglist-string): Handle unknown arglists properly.
Date: Thu Feb 26 02:12:02 2004
Author: heller

Index: slime/swank-lispworks.lisp
diff -u slime/swank-lispworks.lisp:1.23 slime/swank-lispworks.lisp:1.24
--- slime/swank-lispworks.lisp:1.23	Tue Feb 24 18:31:34 2004
+++ slime/swank-lispworks.lisp	Thu Feb 26 02:12:02 2004
@@ -81,7 +81,13 @@
   "lispworks")
 
 (defimplementation arglist-string (fname)
-  (format-arglist fname #'lw:function-lambda-list))
+  (format-arglist fname 
+                  (lambda (symbol)
+                    (let ((arglist (lw:function-lambda-list symbol)))
+                      (etypecase arglist
+                        ((member :dont-know)
+                         (error "<arglist-unavailable>"))
+                        (cons arglist))))))
 
 (defimplementation macroexpand-all (form)
   (walker:walk-form form))
@@ -296,14 +302,11 @@
              (delete-file binary-filename))))
     (delete-file filename)))
 
-
-;; (dspec:dspec-primary-name '(:top-level-form 19))
-
-(defun dspec-buffer-buffer-position (dspec)
+(defun dspec-buffer-position (dspec)
   (etypecase dspec
     (cons (ecase (car dspec)
-            (defun `(:function-name ,(symbol-name (cadr dspec))))
-            (method `(:function-name ,(symbol-name (cadr dspec))))
+            ((defun method defmacro)
+             `(:function-name ,(symbol-name (cadr dspec))))
             ;; XXX this isn't quite right
             (lw:top-level-form `(:source-path ,(cdr dspec) nil))))
     (symbol `(:function-name ,(symbol-name dspec)))))
@@ -329,7 +332,7 @@
            (etypecase location
              ((or pathname string) 
               (make-location `(:file ,(filename location))
-                             (dspec-buffer-buffer-position dspec)))
+                             (dspec-buffer-position dspec)))
              ((member :listener)
               `(:error ,(format nil "Function defined in listener: ~S" dspec)))
              ((member :unknown)





More information about the slime-cvs mailing list