From 032458e5d72b3081ff076273d8dca1bae5baf37a Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Thu, 25 Oct 2012 21:46:11 -0700 Subject: [PATCH] io.streams.zeros: adding zero-file. --- extra/io/streams/zeros/zeros.factor | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) 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 ;