aboutsummaryrefslogtreecommitdiff
path: root/src/lib9/fmt/dofmt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib9/fmt/dofmt.c')
-rw-r--r--src/lib9/fmt/dofmt.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/lib9/fmt/dofmt.c b/src/lib9/fmt/dofmt.c
index 214b71db..353c76e3 100644
--- a/src/lib9/fmt/dofmt.c
+++ b/src/lib9/fmt/dofmt.c
@@ -605,12 +605,13 @@ __flagfmt(Fmt *f)
int
__badfmt(Fmt *f)
{
- char x[3];
+ char x[2+UTFmax];
+ int n;
x[0] = '%';
- x[1] = f->r;
- x[2] = '%';
- f->prec = 3;
- __fmtcpy(f, (const void*)x, 3, 3);
+ n = 1 + runetochar(x+1, &f->r);
+ x[n++] = '%';
+ f->prec = n;
+ __fmtcpy(f, (const void*)x, n, n);
return 0;
}