From 7221ccf9edd1ebde56a7915a338dacf537e8f3fb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 26 May 2009 19:02:01 +0200 Subject: Make sure to bind nodes that are in the body of non-markup nodes. * src/guile/skribilo/ast.scm (document-bind-nodes!): Traverse other nodes as well, such as processors. * src/guile/skribilo/resolve.scm (do-resolve!>): Likewise. * tests/resolve.test ("resolved nested document bindings"): New test. --- src/guile/skribilo/ast.scm | 3 +++ src/guile/skribilo/resolve.scm | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/guile/skribilo/ast.scm b/src/guile/skribilo/ast.scm index 86fa781..99ce3cf 100644 --- a/src/guile/skribilo/ast.scm +++ b/src/guile/skribilo/ast.scm @@ -510,6 +510,9 @@ (document-bind-node! doc node) (loop (markup-body node) doc)) + ((node? node) + (loop (node-body node) doc)) + ((pair? node) (for-each (lambda (n) (loop n doc)) node)) diff --git a/src/guile/skribilo/resolve.scm b/src/guile/skribilo/resolve.scm index 2073f25..d8efe08 100644 --- a/src/guile/skribilo/resolve.scm +++ b/src/guile/skribilo/resolve.scm @@ -206,7 +206,7 @@ ;; Bind non-unresolved children of RES now so that unresolved ;; children of RES (if any) can look them up in the next `resolve!' - ;; run. (XXX: This largely duplicated `document-bind-nodes!'.) + ;; run. (XXX: This largely duplicates `document-bind-nodes!'.) (let loop ((node res) (doc (ast-document node))) (if (ast? node) @@ -224,6 +224,9 @@ (document-bind-node! doc node) (loop (markup-body node) doc)) + ((node? node) + (loop (node-body node) doc)) + ((pair? node) (for-each (lambda (n) (loop n doc)) node)) -- cgit v1.2.3