diff --git a/release/doc/share/sgml/release.dsl b/release/doc/share/sgml/release.dsl index 193f80897a85..1d41fc89b092 100644 --- a/release/doc/share/sgml/release.dsl +++ b/release/doc/share/sgml/release.dsl @@ -97,6 +97,49 @@ ; None of the above (else (empty-sosofo))))) +(mode qandatoc + (default + (let* ((arch (attribute-string (normalize "arch"))) + (role (attribute-string (normalize "role"))) + (for-arch (entity-text "arch"))) + (cond + + ; If role=historic, and we're not printing historic things, then + ; don't output this element. + ((and (equal? role "historic") + (not %include-historic%)) + (empty-sosofo)) + + + ; If arch= not specified, then print unconditionally. This clause + ; handles the majority of cases. + ((or (equal? arch #f) (equal? arch "")) + (next-match)) + + ; arch= specified, see if it's equal to "all". If so, then + ; print unconditionally. Note that this clause could be + ; combined with the check to see if arch= wasn't specified + ; or was empty; they have the same outcome. + ((equal? arch "all") + (next-match)) + + ; arch= specified. If we're building for all architectures, + ; then print it prepended with the set of architectures to which + ; this element applies. + ; + ; XXX This doesn't work. +; ((equal? for-arch "all") +; (sosofo-append (literal "[") (literal arch) (literal "] ") +; (process-children))) + + ; arch= specified, so we need to check to see if the specified + ; parameter includes the architecture we're building for. + ((string-list-match? for-arch (split-string-to-list arch)) + (next-match)) + + ; None of the above + (else (empty-sosofo)))))) + ; We might have some sect1 level elements where the modification times ; are significant. An example of this is the "What's New" section in ; the release notes. We enable the printing of pubdate entry in