aboutsummaryrefslogtreecommitdiff
path: root/src/fmt.cff
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2022-08-18 09:47:54 +0200
committerlemon <lsof@mailbox.org>2022-08-18 09:47:54 +0200
commitf0214ff61b5a94b9629db6f43d7a5b010bd4ffbc (patch)
treec8517b4950bc3937e82ff49c757fb24a7364e3b0 /src/fmt.cff
parent8c81c70b904a41b8a0d44dc418b7c39bf325c2a2 (diff)
fix bodyarg
Diffstat (limited to 'src/fmt.cff')
-rw-r--r--src/fmt.cff12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/fmt.cff b/src/fmt.cff
index 755bbda..0dce9d3 100644
--- a/src/fmt.cff
+++ b/src/fmt.cff
@@ -155,12 +155,12 @@ extern fn vpfmt(proc *fn(u8, *void) void, parg *void, fmt *const u8, ap va_list)
pfmt(proc, parg, "[#]%t", child);
case Fn f;
ps("fn (");
- foreach(ty, i, f.params,
+ foreach(ty, i, f.params) {
pfmt(proc, parg, "%t", ty);
if f.variadic or i < f.params.#len - 1 {
ps(", ");
}
- )
+ }
if f.variadic {
ps("...");
}
@@ -220,7 +220,9 @@ extern fn vpfmt(proc *fn(u8, *void) void, parg *void, fmt *const u8, ap va_list)
}
case 's';
let s = ap->arg(*const u8);
- if quote {
+ if s == #null {
+ ps("(null)");
+ } else if quote {
extern fn isprint(int) int;
p('\"');
for let c u8 #?; (c = *s++) != 0; {
@@ -233,9 +235,9 @@ extern fn vpfmt(proc *fn(u8, *void) void, parg *void, fmt *const u8, ap va_list)
case 'S';
let str = ap->arg([#]const u8);
p('"');
- foreach(c, i, str,
+ foreach(c, i, str) {
pch(c);
- )
+ }
p('"');
case 'T';
let tok = ap->arg(Tok);