[alexandria.git] updated branch master: fc3312e copy-sequence returns the number of bytes written

Attila Lendvai alendvai at common-lisp.net
Fri Oct 8 17:03:00 UTC 2010


The branch master has been updated:
       via  fc3312e6578efd62d5dd5f61715e56b578c0d4ee (commit)
      from  e6d5005b43bc3bb70db40df7c103dc637b0dde39 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit fc3312e6578efd62d5dd5f61715e56b578c0d4ee
Author: Attila Lendvai <attila.lendvai at gmail.com>
Date:   Fri Oct 8 19:01:51 2010 +0200

    copy-sequence returns the number of bytes written

-----------------------------------------------------------------------

Summary of changes:
 io.lisp |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/io.lisp b/io.lisp
index 5df1619..59d6a8c 100644
--- a/io.lisp
+++ b/io.lisp
@@ -111,11 +111,13 @@ unless it's NIL, which means the system default."
   "Reads data from INPUT and writes it to OUTPUT. Both INPUT and OUTPUT must
 be streams, they will be passed to READ-SEQUENCE and WRITE-SEQUENCE and must have
 compatible element-types."
-  (loop
-     :for bytes-read = (read-sequence buffer input)
-     :while (= bytes-read buffer-size)
-     :do (write-sequence buffer output)
-     :finally (progn
-                (write-sequence buffer output :end bytes-read)
-                (when finish-output
-                  (finish-output output)))))
+  (let ((bytes-written 0))
+    (loop
+      :for bytes-read = (read-sequence buffer input)
+      :until (zerop bytes-read)
+      :do (progn
+            (write-sequence buffer output :end bytes-read)
+            (incf bytes-written bytes-read)))
+    (when finish-output
+      (finish-output output))
+    bytes-written))
-- 
Alexandria hooks/post-receive




More information about the alexandria-cvs mailing list