aboutsummaryrefslogtreecommitdiff
path: root/src/lib9/fmt/dofmt.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2006-05-26 00:53:07 +0000
committerrsc <devnull@localhost>2006-05-26 00:53:07 +0000
commitab239cb5ba1e3e72d53a55ca2a2e97469c29e884 (patch)
tree688432115f6e76cbf2d03fc7dee59bc5a0b35680 /src/lib9/fmt/dofmt.c
parentf3b8bf7f4ee326d9de31947584c6e9dbbfa75ce6 (diff)
downloadplan9port-ab239cb5ba1e3e72d53a55ca2a2e97469c29e884.tar.gz
plan9port-ab239cb5ba1e3e72d53a55ca2a2e97469c29e884.tar.bz2
plan9port-ab239cb5ba1e3e72d53a55ca2a2e97469c29e884.zip
oops
Diffstat (limited to 'src/lib9/fmt/dofmt.c')
-rw-r--r--src/lib9/fmt/dofmt.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib9/fmt/dofmt.c b/src/lib9/fmt/dofmt.c
index 74697eb5..e4e32bf4 100644
--- a/src/lib9/fmt/dofmt.c
+++ b/src/lib9/fmt/dofmt.c
@@ -252,9 +252,17 @@ fmtstrcpy(Fmt *f, char *s)
return __fmtcpy(f, "<nil>", 5, 5);
/* if precision is specified, make sure we don't wander off the end */
if(f->flags & FmtPrec){
+#ifdef PLAN9PORT
i = 0;
for(j=0; j<f->prec && s[i]; j++)
i += chartorune(&r, s+i);
+#else
+ /* ANSI requires precision in bytes, not Runes */
+ for(i=0; i<f->prec; i++)
+ if(s[i] == 0)
+ break;
+ j = utfnlen(s, i); /* won't print partial at end */
+#endif
return __fmtcpy(f, s, j, i);
}
return __fmtcpy(f, s, utflen(s), strlen(s));