22 lines
710 B
Text
22 lines
710 B
Text
( source dest -- )
|
|
{
|
|
value| source dest size buffer |
|
|
{
|
|
{
|
|
[ "W" file.open to dest ] is open-dest
|
|
[ "R" file.open to source ] is open-source
|
|
[ open-dest open-source ]
|
|
} is open-files
|
|
{
|
|
[ source file.size to size ] is obtain-size
|
|
[ size malloc to buffer ] is allocate-buffer
|
|
[ obtain-size allocate-buffer ]
|
|
} is create-buffer
|
|
[ source dest and 0 <> ] is check
|
|
[ open-files create-buffer check ]
|
|
} is prepare
|
|
[ source buffer size file.read drop ] is read-source
|
|
[ dest buffer size file.write drop ] is write-dest
|
|
[ source file.close dest file.close ] is close-files
|
|
[ prepare [ read-source write-dest close-files ] ifTrue ]
|
|
} is copy-file
|