shithub: mc

Download patch

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
+}