diff options
Diffstat (limited to 'src/lib9/fmt/fltfmt.c')
-rw-r--r-- | src/lib9/fmt/fltfmt.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/lib9/fmt/fltfmt.c b/src/lib9/fmt/fltfmt.c index 9f3f3edab..dec6f8480 100644 --- a/src/lib9/fmt/fltfmt.c +++ b/src/lib9/fmt/fltfmt.c @@ -103,7 +103,7 @@ xadd1(char *a, int n) for(b = a+n-1; b >= a; b--) { c = *b + 1; if(c <= '9') { - *b = c; + *b = (char)c; return 0; } *b = '0'; @@ -144,7 +144,7 @@ xsub1(char *a, int n) *b = '9'; return 1; } - *b = c; + *b = (char)c; return 0; } *b = '9'; @@ -173,7 +173,7 @@ xfmtexp(char *p, int e, int ucase) *p++ = '+'; i = 0; while(e) { - se[i++] = e % 10 + '0'; + se[i++] = (char)(e % 10 + '0'); e /= 10; } while(i < 2) @@ -192,7 +192,8 @@ xfmtexp(char *p, int e, int ucase) static void xdtoa(double f, char *s, int *exp, int *neg, int *ns) { - int c, d, e2, e, ee, i, ndigit, oerrno; + int d, e2, e, ee, i, ndigit, oerrno; + char c; char tmp[NSIGNIF+10]; double g; @@ -239,7 +240,7 @@ xdtoa(double f, char *s, int *exp, int *neg, int *ns) */ for(i=0; i<NSIGNIF; i++) { d = (int)g; - s[i] = d+'0'; + s[i] = (char)(d+'0'); g = (g-d) * 10; } s[i] = 0; @@ -350,12 +351,13 @@ __efgfmt(Fmt *fmt) { char buf[NSIGNIF+10], *dot, *digits, *p, *s, suf[10], *t; double f; - int c, chr, dotwid, e, exp, fl, ndigits, neg, newndigits; + int c, chr, dotwid, e, exp, ndigits, neg, newndigits; int pad, point, prec, realchr, sign, sufwid, ucase, wid, z1, z2; + ulong fl; Rune r, *rs, *rt; if(fmt->flags&FmtLong) - f = va_arg(fmt->args, long double); + f = (double)va_arg(fmt->args, long double); else f = va_arg(fmt->args, double); @@ -367,7 +369,7 @@ __efgfmt(Fmt *fmt) prec = FDEFLT; if(fl & FmtPrec) prec = fmt->prec; - chr = fmt->r; + chr = (int)fmt->r; ucase = 0; switch(chr) { case 'A': @@ -386,7 +388,7 @@ __efgfmt(Fmt *fmt) s = special[0+ucase]; special: fmt->flags = fl & (FmtWidth|FmtLeft); - return __fmtcpy(fmt, s, strlen(s), strlen(s)); + return __fmtcpy(fmt, s, (int)strlen(s), (int)strlen(s)); } if(__isInf(f, 1)) { s = special[2+ucase]; @@ -488,7 +490,7 @@ __efgfmt(Fmt *fmt) z2 = 0; } xfmtexp(suf, e, ucase); - sufwid = strlen(suf); + sufwid = (int)strlen(suf); break; casef: @@ -638,7 +640,7 @@ __efgfmt(Fmt *fmt) } } } - fmt->nfmt += rt - (Rune*)fmt->to; + fmt->nfmt += (int)(rt - (Rune*)fmt->to); fmt->to = rt; if(sufwid && __fmtcpy(fmt, suf, sufwid, sufwid) < 0) return -1; @@ -667,7 +669,7 @@ __efgfmt(Fmt *fmt) for(p=dot; *p; p++) FMTCHAR(fmt, t, s, *p); } - fmt->nfmt += t - (char*)fmt->to; + fmt->nfmt += (int)(t - (char*)fmt->to); fmt->to = t; if(sufwid && __fmtcpy(fmt, suf, sufwid, sufwid) < 0) return -1; |