From 6cadd03bbeace1c256ba875c2e6a877f924877cd Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Mon, 31 Dec 2012 21:09:46 +0100 Subject: fix utf and rune handling in preparation for 32bit runes --- sys/src/cmd/unix/drawterm/libc/dofmt.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'sys/src/cmd/unix/drawterm/libc/dofmt.c') diff --git a/sys/src/cmd/unix/drawterm/libc/dofmt.c b/sys/src/cmd/unix/drawterm/libc/dofmt.c index 826360d0a..f905c0ad8 100644 --- a/sys/src/cmd/unix/drawterm/libc/dofmt.c +++ b/sys/src/cmd/unix/drawterm/libc/dofmt.c @@ -528,12 +528,15 @@ __flagfmt(Fmt *f) int __badfmt(Fmt *f) { - char x[3]; + char x[2+UTFmax]; + Rune r; + int n; + r = f->r; x[0] = '%'; - x[1] = f->r; - x[2] = '%'; - f->prec = 3; - __fmtcpy(f, (const void*)x, 3, 3); + n = 1+runetochar(x+1, &r); + x[n++] = '%'; + f->prec = n; + _fmtcpy(f, x, n, n); return 0; } -- cgit v1.2.3