ref: 29c376fb854767c551415cd858c462f8ac03280d
dir: /fmt.myr/
use "die.use"
use "sys.use"
use "types.use"
use "utf.use"
pkg std =
const bfmt : (buf : byte[,], fmt : byte[,], args:... -> size)
const fmt : (fmt : byte[,], args:... -> size)
;;
const bfmt = {buf, fmt, args
var c
var n
n = 0
while fmt.len
(c, fmt) = striter(fmt)
if c == '%'
(c, fmt) = striter(fmt)
match c
's':
write(1, "str\n")
;;
'd':
write(1, "int\n")
;;
'p':
write(1, "ptr\n")
;;
;;
else
n += encode(buf[n,buf.len], c)
;;
;;
-> n
}
const fmt = {fmt, args
var buf : byte[2048]
var n
n = bfmt(buf[0,2048], fmt, args)
write(1, buf[0,n])
-> n
}