diff options
Diffstat (limited to 'src/fmt.cff')
| -rw-r--r-- | src/fmt.cff | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/fmt.cff b/src/fmt.cff index 27bfe0e..699777a 100644 --- a/src/fmt.cff +++ b/src/fmt.cff @@ -45,7 +45,7 @@ extern fn vpfmt(proc *fn(u8, *void) void, parg *void, fmt *const u8, ap va_list) case :bool; ps(tok.u.bool ? "#t" : "#f"); case :str; - pfmt(proc, parg, "%S", tok.u.str); + pfmt(proc, parg, "%S", &tok.u.str); case :chr; let t = bswap64(tok.u.uint); p('\''); @@ -184,7 +184,7 @@ extern fn vpfmt(proc *fn(u8, *void) void, parg *void, fmt *const u8, ap va_list) case Ty ty; pfmt(proc, parg, "%t", ty); case Val tok; - pfmt(proc, parg, "%T", tok); + pfmt(proc, parg, "%T", &tok); } if i < agg.tpargs.#len - 1 { ps(", "); @@ -275,15 +275,15 @@ extern fn vpfmt(proc *fn(u8, *void) void, parg *void, fmt *const u8, ap va_list) ps(s); } case 'S'; - let str = ap->arg([#]const u8); + let str = *ap->arg(*[#]const u8); p('"'); foreach(c, i, str) { pch(c); } p('"'); case 'T'; - let tok = ap->arg(Tok); - pritok(proc, parg, quote, &tok); + let tok = ap->arg(*Tok); + pritok(proc, parg, quote, tok); case 'k'; let tokt = ap->arg(TokT); pritokt(proc, parg, tokt); @@ -292,7 +292,7 @@ extern fn vpfmt(proc *fn(u8, *void) void, parg *void, fmt *const u8, ap va_list) pritype(proc, parg, ap->arg(*const Type)); ps("\e[0m"); case 'l'; - let loc = ap->arg(Loc); + let loc = ap->arg(*Loc); pfmt(proc, parg, "\e[1m%s:%d:%d\e[0m", fileid2path(loc.fileid), loc.line, loc.col); case else assert(#f, "bad fmt '%c'", c); @@ -372,7 +372,7 @@ extern fn vdiag(P *Parser, loc Loc, kind *const u8, fmt *const u8, ap va_list) v for let ep = P.curexpan; ep; ep = ep.prev { if ep.name != #null and (i++ < 8 or ep.prev == #null or ep.prev.prev == #null) { efmt("* while expanding %s `%s' at %l\n", - ep.tepl ? "template" : "macro", ep.name, ep.loc); + ep.tepl ? "template" : "macro", ep.name, &ep.loc); eprifileline(ep.loc); } else if ep.name != #null and i == 8 { efmt(" ... (some expansions omitted)\n"); |