aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/duck_streams.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/clojure/contrib/duck_streams.clj')
-rw-r--r--src/clojure/contrib/duck_streams.clj12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/clojure/contrib/duck_streams.clj b/src/clojure/contrib/duck_streams.clj
index 68d94c47..781449f1 100644
--- a/src/clojure/contrib/duck_streams.clj
+++ b/src/clojure/contrib/duck_streams.clj
@@ -1,7 +1,7 @@
;;; duck_streams.clj -- duck-typed I/O streams for Clojure
;; by Stuart Sierra, http://stuartsierra.com/
-;; January 10, 2009
+;; February 16, 2009
;; Copyright (c) Stuart Sierra, 2008. All rights reserved. The use
;; and distribution terms for this software are covered by the Eclipse
@@ -26,6 +26,9 @@
;; CHANGE LOG
;;
+;; February 16, 2009: (lazy branch) fixed read-lines to work with lazy
+;; Clojure.
+;;
;; January 10, 2009: added *default-encoding*, so streams are always
;; opened as UTF-8.
;;
@@ -169,9 +172,10 @@
closes the reader AFTER YOU CONSUME THE ENTIRE SEQUENCE."
[f]
(let [read-line (fn this [#^BufferedReader rdr]
- (if-let [line (.readLine rdr)]
- (lazy-cons line (this rdr))
- (.close rdr)))]
+ (lazy-seq
+ (if-let [line (.readLine rdr)]
+ (cons line (this rdr))
+ (.close rdr))))]
(read-line (reader f))))
(defn slurp*