}
-static long double decfloat(FILE *f, int bits, int emin, int sign, int pok)
+static long double decfloat(FILE *f, int c, int bits, int emin, int sign, int pok)
{
uint32_t x[KMAX];
static const uint32_t th[] = { LD_B1B_MAX };
long double y;
long double frac=0;
long double bias=0;
- int c;
j=0;
k=0;
- c = shgetc(f);
-
/* Don't let leading zeros consume buffer space */
for (; c=='0'; c = shgetc(f)) gotdig=1;
}
e2 = 0;
}
+ } else {
+ shunget(f);
}
e2 += 4*rp - 32;
c = shgetc(f);
if ((c|32) == 'x')
return hexfloat(f, bits, emin, sign, pok);
+ shunget(f);
c = '0';
}
- shunget(f);
- return decfloat(f, bits, emin, sign, pok);
+ return decfloat(f, c, bits, emin, sign, pok);
}