io.streams.zeros: adding zero-file.
parent
7847b55cea
commit
032458e5d7
|
@ -1,6 +1,7 @@
|
||||||
! Copyright (C) 2010 Doug Coleman.
|
! Copyright (C) 2010 Doug Coleman.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! 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
|
IN: io.streams.zeros
|
||||||
|
|
||||||
TUPLE: zero-stream ;
|
TUPLE: zero-stream ;
|
||||||
|
@ -18,3 +19,20 @@ M: zero-stream stream-read-partial-unsafe stream-read-unsafe ;
|
||||||
M: zero-stream dispose drop ;
|
M: zero-stream dispose drop ;
|
||||||
|
|
||||||
INSTANCE: zero-stream input-stream
|
INSTANCE: zero-stream input-stream
|
||||||
|
|
||||||
|
<PRIVATE
|
||||||
|
|
||||||
|
: (zero-file) ( n path -- )
|
||||||
|
binary
|
||||||
|
[ 1 - seek-absolute seek-output 0 write1 ] with-file-writer ;
|
||||||
|
|
||||||
|
PRIVATE>
|
||||||
|
|
||||||
|
ERROR: invalid-file-size n path ;
|
||||||
|
|
||||||
|
: zero-file ( n path -- )
|
||||||
|
{
|
||||||
|
{ [ over 0 < ] [ invalid-file-size ] }
|
||||||
|
{ [ over 0 = ] [ nip touch-file ] }
|
||||||
|
[ (zero-file) ]
|
||||||
|
} cond ;
|
||||||
|
|
Loading…
Reference in New Issue