Fix scanf handling of float numbers (beginning with a dot).

This commit is contained in:
Raphael Junqueira 2004-05-17 19:49:44 +00:00 committed by Alexandre Julliard
parent c4be01a745
commit d134aa5945

View File

@ -262,16 +262,20 @@ _FUNCTION_ {
nch = _GETC_(file);
}
/* get first digit. */
if (!_ISDIGIT_(nch)) break;
cur = (nch - '0');
nch = _GETC_(file);
if (width>0) width--;
/* read until no more digits */
while (width!=0 && (nch!=_EOF_) && _ISDIGIT_(nch)) {
if ('.' != nch) {
if (!_ISDIGIT_(nch)) break;
cur = (nch - '0');
nch = _GETC_(file);
if (width>0) width--;
/* read until no more digits */
while (width!=0 && (nch!=_EOF_) && _ISDIGIT_(nch)) {
cur = cur*10 + (nch - '0');
nch = _GETC_(file);
if (width>0) width--;
}
}
} else {
cur = 0; /* MaxPayneDemo Fix: .8 -> 0.8 */
}
/* handle decimals */
if (width!=0 && nch == '.') {
float dec = 1;