summaryrefslogtreecommitdiff
path: root/src/lib9/fmt/fltfmt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib9/fmt/fltfmt.c')
-rw-r--r--src/lib9/fmt/fltfmt.c26
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;