- (if* (keywordp possible-kwd)
- then (if* (null (setq ent (gethash possible-kwd *html-process-table*)))
- then (if unknown
- (return-from html-print-subst
- (funcall unknown form stream))
- (error "unknown html tag: ~s" possible-kwd))
- else ; see if we should subst
- (if* (and subst
- attrs
- (setq attr-name (html-process-name-attr ent))
- (setq name (getf attrs attr-name))
- (setq attrs (html-find-value name subst)))
- then
- (return-from html-print-subst
- (if* (functionp (cdr attrs))
- then
- (funcall (cdr attrs) stream)
- else (html-print-subst
- (cdr attrs)
- subst
- stream
- unknown)))))
-
- (setq print-handler
- (html-process-print ent)))
- (if* (atom form)
- then (if* (keywordp form)
- then (funcall print-handler ent :set nil nil nil nil stream)
- elseif (stringp form)
- then (write-string form stream)
- else (princ form stream))
- elseif ent
- then (funcall print-handler
- ent
- :full
- (when (consp (car form)) (cdr (car form)))
- form
- subst
- unknown
- stream)
- else (error "Illegal form: ~s" form))))
+ (when (keywordp possible-kwd)
+ (if (null (setq ent (gethash possible-kwd *html-process-table*)))
+ (if unknown
+ (return-from html-print-subst
+ (funcall unknown form stream))
+ (error "unknown html tag: ~s" possible-kwd))
+ ;; see if we should subst
+ (when (and subst
+ attrs
+ (setq attr-name (html-process-name-attr ent))
+ (setq name (getf attrs attr-name))
+ (setq attrs (html-find-value name subst)))
+ (return-from html-print-subst
+ (if (functionp (cdr attrs))
+ (funcall (cdr attrs) stream)
+ (html-print-subst
+ (cdr attrs)
+ subst
+ stream
+ unknown)))))
+
+ (setq print-handler
+ (html-process-print ent)))
+
+ (cond
+ ((atom form)
+ (cond
+ ((keywordp form)
+ (funcall print-handler ent :set nil nil nil nil stream))
+ ((stringp form)
+ (write-string form stream))
+ (t
+ (princ form stream))))
+ (ent
+ (funcall print-handler
+ ent
+ :full
+ (when (consp (car form)) (cdr (car form)))
+ form
+ subst
+ unknown
+ stream))
+ (t
+ (error "Illegal form: ~s" form)))))