summary refs log tree commit diff
path: root/src/guile
diff options
context:
space:
mode:
authorLudovic Courtès2008-02-03 21:18:23 +0100
committerLudovic Courtès2008-02-03 21:18:23 +0100
commit75065b6540212f9989ecc5e535e932938eeb7d68 (patch)
tree413a4a03a675d23270b286a503262bc459b52c48 /src/guile
parent9370de4fcf573790e46e53b2b7aa4834f999ddb0 (diff)
downloadskribilo-75065b6540212f9989ecc5e535e932938eeb7d68.tar.gz
skribilo-75065b6540212f9989ecc5e535e932938eeb7d68.tar.lz
skribilo-75065b6540212f9989ecc5e535e932938eeb7d68.zip
Bind the nodes returned by <unresolved> nodes.
* src/guile/skribilo/resolve.scm (do-resolve!<unresolved>): Use
  `ast-fold' to bind all nodes in RES and assign them the proper
  location.
Diffstat (limited to 'src/guile')
-rw-r--r--src/guile/skribilo/resolve.scm12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/guile/skribilo/resolve.scm b/src/guile/skribilo/resolve.scm
index 6405ebd..f902f69 100644
--- a/src/guile/skribilo/resolve.scm
+++ b/src/guile/skribilo/resolve.scm
@@ -202,9 +202,15 @@
 
        (let* ((proc (slot-ref node 'proc))
               (res  (proc node engine env))
-              (loc  (ast-loc node)))
-         (when (ast? res)
-           (ast-loc-set! res loc))
+              (loc  (ast-loc node))
+              (doc  (ast-document node)))
+         (ast-fold (lambda (node result)
+                     (if (markup? node)
+                         (document-bind-node! doc node))
+                     (if (ast? node)
+                         (ast-loc-set! node loc)))
+                   #t ;; unused
+                   res)
          (debug-item "res=" res)
          (*unresolved* #t)
          res))))