Victor Kryukov wrote:
Jeff,
That was fast! I'm holding my breath...
Victor.
Victor,
I'm not sure anything I'm doing really exercises your changes, but I now have it running on three servers without any sign of trouble (or difference in output, for that matter).
I sat down this evening to try to understand it better, and for awhile I thought I might be able to use it to solve a macro expansion problem that's been bothering me. I don't think it can be applied, but I'm not sure. Here's a simplified version of a macro I use :
(defmacro section (title &rest body) `(with-html-output (*standard-output* nil :indent t) (:table (:a :name ,title) (:tr (:td (:h2 (str ,title)) ,@body)))))
Here is a trivial example showing how I use it:
(section "A Title" (:p "A cl-who formatted form") (:p "The body could be any collection of cl-who code"))
What I'd like to be able to do is feed it unexpanded cl-who code like this:
(let ((code1 '("A Title" (:p "A cl-who formatted form") (:p "The body could be any collection of cl-who code"))) (code2 '("Another title" (:h2 "Different code here")))) (section* code1) (section* code2))
And I've tried to make the first macro work by wrapping it in a second one like this:
(defmacro section* (lst) (let ((ttl (gensym)) (bdy (gensym))) `(let ((,ttl (car ,lst)) (,bdy (cdr ,lst))) (section ,ttl ,bdy))))
Of course, the last form isn't right and evaluates without the body statements. I had expected to use ,@bdy in the last form, but that give an error.
Do you have any idea how to do something like this?
--Jeff
cl-who-devel site list cl-who-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cl-who-devel