Minor bug in edit-callers under lispworks;
Alain Picard <[email protected]>
| Newsgroups | gmane.lisp.ilisp.devel |
|---|---|
| Message-ID | <[email protected]> |
Dear Maintainers,
Please replace the function ilisp-source-files with the
definition below in lispworks.lisp v 1.9 (checked out yesterday)
with the following.
The original doesn't appear to handle #P"/foo/bar" pathname syntax,
hence the addition of the NAMESTRING around the pathname.
If it _is_ supposed to handle the #P notation, then I think
there is a bug in LISP-READ-CL-SYNTAX, as I get
(lisp-read-cl-syntax "#P\"/tmp/foo.bar\"")
==>
(\#P "/tmp/foo.bar")
On which ilisp later barfs mightily.
It might be preferable to fix lisp-read-cl-syntax instead
of ilisp-source-files, but I don't understand the specification
of that function well enough to do that (or to rewrite it).
I have a weird déja-vu of having fixed exact same bug sometimes last
year. Weird.
Thanks.
(defun ilisp-source-files (symbol package type)
"Print each file for PACKAGE:SYMBOL's TYPE definition on a line.
Returns T if successful."
;; A function to limit the search with type?
(ilisp-errors
(let ((symbol (ilisp-find-symbol symbol package))
(processed-pathnames ())
(types (ilisp->lispworks-types type)))
(flet ((process-symbol (symbol)
(loop for (ignore pathname) in (dspec:find-name-locations types symbol)
when (and (pathnamep pathname)
(not (member pathname processed-pathnames :test #'equal)))
do (print (namestring (truename pathname)))
(push pathname processed-pathnames))))
(process-symbol symbol)
;; Process setf
(when (or (string-equal type "any")
(string-equal type "setf"))
(process-symbol (system:underlying-setf-name (list 'setf symbol)))))
(if processed-pathnames
t
nil))))--
Alain Picard
Memetrics
-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php