diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2005-05-06 02:43:04 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2005-05-06 02:43:04 +0000 |
commit | 4e506c9aefe5b89970ae6894d05ad53c81af0d83 (patch) | |
tree | 2fac98df209e72eaba773cad2d7b90c99d9d9249 /mdk-stage1/dietlibc/lib/strtod.c | |
parent | 793707b39bf2e9df40a6d2d60b83b3061088ae9e (diff) | |
download | drakx-backup-do-not-use-4e506c9aefe5b89970ae6894d05ad53c81af0d83.tar drakx-backup-do-not-use-4e506c9aefe5b89970ae6894d05ad53c81af0d83.tar.gz drakx-backup-do-not-use-4e506c9aefe5b89970ae6894d05ad53c81af0d83.tar.bz2 drakx-backup-do-not-use-4e506c9aefe5b89970ae6894d05ad53c81af0d83.tar.xz drakx-backup-do-not-use-4e506c9aefe5b89970ae6894d05ad53c81af0d83.zip |
use installed dietlibc, not our forked cvs version
Diffstat (limited to 'mdk-stage1/dietlibc/lib/strtod.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/strtod.c | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/mdk-stage1/dietlibc/lib/strtod.c b/mdk-stage1/dietlibc/lib/strtod.c deleted file mode 100644 index 5d50cc535..000000000 --- a/mdk-stage1/dietlibc/lib/strtod.c +++ /dev/null @@ -1,66 +0,0 @@ -#include <string.h> -#include <stdlib.h> -#include <ctype.h> - -double strtod(const char* s, char** endptr) { - register const char* p = s; - register long double value = 0.L; - int sign = +1; - long double factor; - unsigned int expo; - - while ( isspace(*p) ) - p++; - - switch (*p) { - case '-': sign = -1; - case '+': p++; - default : break; - } - - while ( (unsigned int)(*p - '0') < 10u ) - value = value*10 + (*p++ - '0'); - - if ( *p == '.' ) { - factor = 1.; - - p++; - while ( (unsigned int)(*p - '0') < 10u ) { - factor *= 0.1; - value += (*p++ - '0') * factor; - } - } - - if ( (*p | 32) == 'e' ) { - expo = 0; - factor = 10.L; - - switch (*++p) { // ja hier weiß ich nicht, was mindestens nach einem 'E' folgenden MUSS. - case '-': factor = 0.1; - case '+': p++; - break; - case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': - break; - default : value = 0.L; - p = s; - goto done; - } - - while ( (unsigned int)(*p - '0') < 10u ) - expo = 10 * expo + (*p++ - '0'); - - while ( 1 ) { - if ( expo & 1 ) - value *= factor; - if ( (expo >>= 1) == 0 ) - break; - factor *= factor; - } - } - -done: - if ( endptr != NULL ) - *endptr = (char*)p; - - return value * sign; -} |