--- documentation.scm.~1.8.~ 2003-04-07 08:04:58.000000000 +1000 +++ documentation.scm 2003-05-06 13:44:39.000000000 +1000 @@ -115,8 +115,9 @@ default-scrub (let ((v (caddr cust))) (cond ((procedure? v) v) - (else default-scrub))))) - (port (open-input-file filename))) + (else default-scrub)))))) + (call-with-input-file filename + (lambda (port) (let loop ((line (read-delimited "\n" port)) (doc "") (parse-state 'before)) @@ -132,7 +133,7 @@ (if (and (eq? 'in new-state) (eq? 'in parse-state)) (string-append doc (scrub line) "\n") doc) - new-state))))))) + new-state))))))))) @@ -151,8 +152,9 @@ (define (find-documentation-in-file name file) (and (file-exists? file) - (let ((port (open-input-file file)) - (name (symbol->string name))) + (call-with-input-file file + (lambda (port) + (let ((name (symbol->string name))) (let ((len (string-length name))) (read-delimited entry-delimiter port) ;skip to first entry (let loop ((entry (read-delimited entry-delimiter port))) @@ -166,7 +168,7 @@ (memq (string-ref entry len) '(#\newline))) ;; cut away name tag and extra surrounding newlines (substring entry (+ len 2) (- (string-length entry) 2))) - (else (loop (read-delimited entry-delimiter port))))))))) + (else (loop (read-delimited entry-delimiter port))))))))))) (define (search-documentation-files name . files) (or-map (lambda (file)