Fix bug: incorrect binding of *BNODES*.
authorChris Hanson <org/chris-hanson/cph>
Thu, 2 Mar 2006 03:18:42 +0000 (03:18 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 2 Mar 2006 03:18:42 +0000 (03:18 +0000)
v7/src/xml/rdf-nt.scm

index 53db0c67a21d269143bc4c7cedcac598c0c09425..e93611db52c0864f597cb211056205bcea507c80 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: rdf-nt.scm,v 1.2 2006/02/24 17:47:25 cph Exp $
+$Id: rdf-nt.scm,v 1.3 2006/03/02 03:18:42 cph Exp $
 
 Copyright 2006 Massachusetts Institute of Technology
 
@@ -40,13 +40,15 @@ USA.
                (loop (cons triple triples)))))))))
 
 (define (rdf/nt-file->source pathname)
-  (fluid-let ((*bnodes* (make-bnode-table)))
-    (let ((port (open-input-file pathname)))
-      (lambda ()
-       (let ((triple (%read-rdf/nt port)))
-         (if (eof-object? triple)
-             #f
-             triple))))))
+  (let ((port (open-input-file pathname))
+       (table (make-bnode-table)))
+    (lambda ()
+      (let ((triple
+            (fluid-let ((*bnodes* table))
+              (%read-rdf/nt port))))
+       (if (eof-object? triple)
+           #f
+           triple)))))
 
 (define (read-rdf/nt port)
   (fluid-let ((*bnodes* (bnode-table port)))