[cldoc-devel] use of format and intern in function generating macros
Iban Hatchondo
hatchond at free.fr
Sat Jul 15 23:05:58 UTC 2006
Hi all,
Thanks for reporting the bug.
What about generalizing your solution and define something like:
(defun cludg-intern (&rest parts)
"Returns an interned symbol made from the concatenation of the given
parts."
(intern (apply #'concatenate 'string (mapcar #'string parts))))
that we would use instead of the those, three at least, (intern (format
..)) forms ?
Joshua, can you confirm this fix the problem using your all favorite
settings ?
Kind regards,
Iban.
Taylor, Joshua wrote:
> Hello CLDOC list,
>
> I've just recently checked out a copy CLDOC, and am quite pleased with the
> results I'm getting. At first, however, I was running into a slight
> bug, but one which
> is easy to fix.
>
> In several places in the code:
>
> cludg.lisp:186: (defun ,(intern (format nil "~a" s-purger)) (string)
> cludg.lisp:191: (defun ,(intern (format nil "~a" ll-purger))
> (lambda-list)
> cludg.lisp:618: (with-standard-io-syntax (intern (format nil "~a~a"
> s1 s2) pkg)))
>
> intern is being called with a string coming from format. In most Lisps
> this is not
> a problem, and in the one I use (Lispworks) the default settings would
> have no
> problem either. Out of personal preference however, I set *print-case* to
> :capitalize, which means that, e.g., (format nil "~a" s-purger) would
> give me
> "Purge-String-For-Html" and that the function defined was actually
> cldoc:|Purge-String-For-Html|.
>
> Fortunately the fix is easy: just change instances of (format nil "~a"
> sym) tp
> (symbol-name s-sym), and
> cludg.lisp:618: (with-standard-io-syntax (intern (format nil "~a~a"
> s1 s2) pkg)))
> to
> cludg.lisp:618: (with-standard-io-syntax (intern (concatenate 'string
> (symbol-name s1) (symbol-name s2)) pkg)))
> although I'm not sure if it's necessary in that second case (as I
> don't know the context
> of that code).
>
> Once I got those purgers working, the HTML documentation is really
> beautiful.
> I'm very impressed with the project. Thanks for all your hard work!
___________________________________________________________________________
Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire.
http://fr.mail.yahoo.com
More information about the cldoc-devel
mailing list