ref: effa98dac67fd796ef9414afef330722657e45cb
parent: 3aac04fb7bef769b7d3fc6389c7dd76ea196fdc0
author: Ori Bernstein <[email protected]>
date: Wed Jun 5 11:30:30 EDT 2013
Add code for a 'blat()' function.
--- /dev/null
+++ b/libstd/blat.myr
@@ -1,0 +1,28 @@
+use "sys.use"
+use "fmt.use"
+
+pkg std =
+ const blat : (path : byte[:], buf : byte[:] -> bool)
+;;
+
+const blat = {path, buf
+ var fd
+ var written
+ var n
+
+ fd = open(path, Ocreat|Owronly, 0o777)
+ if fd < 0
+ fatal(1, "Could not open file \"%s\"", path)
+ ;;
+
+ n = 0
+ while true
+ written = write(fd, buf[n:])
+ if written <= 0
+ goto done
+ ;;
+ n += written
+ ;;
+:done
+ -> written == 0
+}