fix conversion to handle -0x0p+0 (negatives) properly - or at least matching

the output.


SVN revision: 31810
This commit is contained in:
Carsten Haitzler 2007-09-25 23:41:03 +00:00
parent e769f25d10
commit d88b5cfe37
2 changed files with 7 additions and 6 deletions

View File

@ -402,8 +402,8 @@ static int
eet_data_get_double(void *src, void *src_end, void *dst)
{
double *d;
long long mantisse;
long exponent;
long long mantisse = 0;
long exponent = 0;
char *s, *str, *p;
int len;

View File

@ -73,20 +73,20 @@ _eet_string_to_double_convert(const char *src, long long *m, long *e)
sign = -1;
str++;
}
else if (*str == '0')
if (*str == '0')
{
str++;
if (*str == 'x')
str++;
else
{
fprintf(stderr, "[Eet] Error during conversion\n");
fprintf(stderr, "[Eet] Error 1 during conversion of '%s'\n", src);
return 0;
}
}
else
{
fprintf(stderr, "[Eet] Error during conversion\n");
fprintf(stderr, "[Eet] Error 2 during conversion of '%s'\n", src);
return 0;
}
@ -108,7 +108,8 @@ _eet_string_to_double_convert(const char *src, long long *m, long *e)
mantisse = -mantisse;
if (*str != 'p')
{
fprintf(stderr, "[Eet] Error during conversion\n");
fprintf(stderr, "[Eet] Error 3 during conversion '%s'\n", src);
abort();
return 0;
}
sign = +1;