diff --git a/extra/io/streams/zeros/zeros.factor b/extra/io/streams/zeros/zeros.factor index d64c7e0369..6fa5f4984b 100644 --- a/extra/io/streams/zeros/zeros.factor +++ b/extra/io/streams/zeros/zeros.factor @@ -1,6 +1,7 @@ ! Copyright (C) 2010 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. -USING: destructors io kernel sequences ; +USING: combinators destructors io io.directories +io.encodings.binary io.files kernel math sequences ; IN: io.streams.zeros TUPLE: zero-stream ; @@ -18,3 +19,20 @@ M: zero-stream stream-read-partial-unsafe stream-read-unsafe ; M: zero-stream dispose drop ; INSTANCE: zero-stream input-stream + + + +ERROR: invalid-file-size n path ; + +: zero-file ( n path -- ) + { + { [ over 0 < ] [ invalid-file-size ] } + { [ over 0 = ] [ nip touch-file ] } + [ (zero-file) ] + } cond ;