strod() & _str_ext_cvt() made more strictly conforming

This commit is contained in:
eck 1990-09-07 11:00:24 +00:00
parent 33c9811ba9
commit 2c9fbebe4e
2 changed files with 7 additions and 6 deletions

View file

@ -455,7 +455,7 @@ add_exponent(struct EXTEND *e, int exp)
}
}
_str_ext_cvt(char *s, char **ss, struct EXTEND *e)
_str_ext_cvt(const char *s, char **ss, struct EXTEND *e)
{
/* Like strtod, but for extended precision */
register int c;
@ -463,7 +463,7 @@ _str_ext_cvt(char *s, char **ss, struct EXTEND *e)
int digitseen = 0;
int exp = 0;
if (ss) *ss = s;
if (ss) *ss = (char *)s;
while (isspace(*s)) s++;
e->sign = 0;
@ -496,7 +496,7 @@ _str_ext_cvt(char *s, char **ss, struct EXTEND *e)
}
if (! digitseen) return;
if (ss) *ss = s - 1;
if (ss) *ss = (char *)s - 1;
if (c == 'E' || c == 'e') {
int exp1 = 0;
@ -519,7 +519,7 @@ _str_ext_cvt(char *s, char **ss, struct EXTEND *e)
exp_overflow = 1;
}
} while (c = *++s, isdigit(c));
if (ss) *ss = s;
if (ss) *ss = (char *)s;
}
exp += sign * exp1;
if (exp_overflow) {

View file

@ -1,12 +1,13 @@
/* $Header$ */
#include <stdlib.h>
#include "ext_fmt.h"
void _str_ext_cvt(char *s, char **ss, struct EXTEND *e);
void _str_ext_cvt(const char *s, char **ss, struct EXTEND *e);
double _ext_dbl_cvt(struct EXTEND *e);
double
strtod(char *p, char **pp)
strtod(const char *p, char **pp)
{
struct EXTEND e;