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 }