MFC: Apply arch= selection to the qandatoc mode. This fixes

link generation with no actual target.

Reported by:	Tim Witthoeft (tim.witthoeft at gmail.com)
This commit is contained in:
hrs 2005-11-28 06:26:56 +00:00
parent c078111780
commit 29d1e5bb9f

View File

@ -54,7 +54,6 @@
((equal? STR (car s)) #t)
(else (loop (cdr s))))))
; Deal with conditional inclusion of text via entities.
(default
(let* ((arch (attribute-string (normalize "arch")))
(role (attribute-string (normalize "role")))
@ -97,6 +96,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