X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/e05aabbb81cddec46b3d9da802f632c3b20c67d1..6afec9101d5ea87e3df4bda2239ffd05f8154fa6:/src/module-output.lisp diff --git a/src/module-output.lisp b/src/module-output.lisp index f9eb3a4..90ecb75 100644 --- a/src/module-output.lisp +++ b/src/module-output.lisp @@ -102,26 +102,27 @@ ;;;-------------------------------------------------------------------------- ;;; Output implementation. -(defmethod hook-output progn ((module module) reason sequencer) +(defmethod hook-output :after ((module module) reason sequencer) ;; Ask the module's items to sequence themselves. (dolist (item (module-items module)) (hook-output item reason sequencer))) -(defmethod hook-output progn ((frag code-fragment-item) reason sequencer) +(defmethod hook-output ((frag code-fragment-item) reason sequencer) ;; Output fragments when their reasons are called up. (when (eq reason (code-fragment-reason frag)) (dolist (constraint (code-fragment-constraints frag)) (add-sequencer-constraint sequencer constraint)) - (add-sequencer-item-function sequencer (code-fragment-name frag) - (lambda (stream) - (write (code-fragment frag) - :stream stream - :pretty nil - :escape nil))))) - -(defmethod hook-output progn ((module module) (reason (eql :h)) sequencer) + (awhen (code-fragment-name frag) + (add-sequencer-item-function sequencer it + (lambda (stream) + (write (code-fragment frag) + :stream stream + :pretty nil + :escape nil)))))) + +(defmethod hook-output ((module module) (reason (eql :h)) sequencer) (sequence-output (stream sequencer) :constraint @@ -173,7 +174,7 @@ ((:includes :end) (terpri stream)))) -(defmethod hook-output progn ((module module) (reason (eql :c)) sequencer) +(defmethod hook-output ((module module) (reason (eql :c)) sequencer) (sequence-output (stream sequencer) :constraint