[slime-cvs] CVS update: slime/swank-allegro.lisp
Helmut Eller
heller at common-lisp.net
Fri May 21 08:19:48 UTC 2004
Update of /project/slime/cvsroot/slime
In directory common-lisp.net:/tmp/cvs-serv20691
Modified Files:
swank-allegro.lisp
Log Message:
(find-fspec-location): Better handling of methods. Reported by Bill
Clementson.
Date: Fri May 21 04:19:48 2004
Author: heller
Index: slime/swank-allegro.lisp
diff -u slime/swank-allegro.lisp:1.30 slime/swank-allegro.lisp:1.31
--- slime/swank-allegro.lisp:1.30 Mon Apr 26 13:11:36 2004
+++ slime/swank-allegro.lisp Fri May 21 04:19:47 2004
@@ -30,7 +30,6 @@
;;;; TCP Server
-
(defimplementation preferred-communication-style ()
:spawn)
@@ -62,8 +61,8 @@
(defimplementation set-default-directory (directory)
(excl:chdir directory)
- (namestring (setf *default-pathname-defaults* (truename (merge-pathnames directory)))))
-
+ (namestring (setf *default-pathname-defaults*
+ (truename (merge-pathnames directory)))))
;;;; Misc
@@ -92,16 +91,6 @@
(doc 'class)))
result)))
-
-(defimplementation describe-definition (symbol namespace)
- (ecase namespace
- (:variable
- (describe symbol))
- ((:function :generic-function)
- (describe (symbol-function symbol)))
- (:class
- (describe (find-class symbol)))))
-
(defimplementation describe-definition (symbol namespace)
(ecase namespace
(:variable
@@ -214,14 +203,18 @@
;;;; Definition Finding
(defun find-fspec-location (fspec type)
- (let ((file (excl::fspec-pathname fspec type)))
+ (let* ((fspec (if (consp fspec)
+ (excl::to-internal-fspec fspec)
+ fspec))
+ (info (car (excl::fspec-fspec-info fspec)))
+ (file (excl::fspec-info-pathname info)))
(etypecase file
(pathname
(let ((start (scm:find-definition-in-file fspec type file)))
(make-location (list :file (namestring (truename file)))
(if start
(list :position (1+ start))
- (list :function-name (string fspec))))))
+ (list :function-name (string (third info)))))))
((member :top-level)
(list :error (format nil "Defined at toplevel: ~A" fspec)))
(null
More information about the slime-cvs
mailing list