diff options
Diffstat (limited to 'src/lib9/fmt/dofmt.c')
| -rw-r--r-- | src/lib9/fmt/dofmt.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/lib9/fmt/dofmt.c b/src/lib9/fmt/dofmt.c index cee3f4e4..873d6926 100644 --- a/src/lib9/fmt/dofmt.c +++ b/src/lib9/fmt/dofmt.c @@ -13,7 +13,7 @@ */ #include <stdarg.h> #include <string.h> -#include "utf.h" +#include "plan9.h" #include "fmt.h" #include "fmtdef.h" @@ -339,10 +339,12 @@ __ifmt(Fmt *f) * Unsigned verbs */ switch(f->r){ - case 'o': - case 'u': + /* unsigned by default only on Unix case 'x': case 'X': + */ + case 'o': + case 'u': fl |= FmtUnsigned; break; } @@ -402,7 +404,9 @@ __ifmt(Fmt *f) default: return -1; } - if(!(fl & FmtUnsigned)){ + if(fl & FmtUnsigned) + fl &= ~(FmtSign|FmtSpace); + else{ if(isv && (vlong)vu < 0){ vu = -(vlong)vu; neg = 1; @@ -410,8 +414,6 @@ __ifmt(Fmt *f) u = -(long)u; neg = 1; } - }else{ - fl &= ~(FmtSign|FmtSpace); /* no + for unsigned conversions */ } p = buf + sizeof buf - 1; n = 0; |
