1 // ----------------------------------------------------------------------------
3 // ----------------------------------------------------------------------------
4 // Public Domain C Library - http://pdclib.sourceforge.net
5 // This code is Public Domain. Use, modify, and redistribute at will.
6 // ----------------------------------------------------------------------------
8 double atof( const char * s ) { /* TODO */ };
9 int atoi( const char * s ) { /* TODO */ };
10 long atol( const char * s ) { /* TODO */ };
11 long long atoll( const char * s) { /* TODO */ };
13 double strtod( const char * restrict s, char * * restrict endptr ) { /* TODO */ };
14 float strtof( const char * restrict s, char * * restrict endptr ) { /* TODO */ };
15 long double strtold( const char * restrict s, char * * restrict endptr ) { /* TODO */ };
17 long long strtoll( const char * restrict s, char * * restrict endptr, int base ) { /* TODO */ };
18 unsigned long long strtoull( const char * restrict s, char * * restrict endptr, int base) { /* TODO */ };
20 long strtol( const char * restrict s, char * * restrict endptr, int base ) { /* TODO */ };
21 unsigned long strtoul( const char * restrict s, char * * restrict endptr, int base) { /* TODO */ };
23 /* PDPC code - unreviewed, verbatim
24 double atof(const char *nptr)
26 return (strtod(nptr, (char **)NULL));
29 double strtod(const char *nptr, char **endptr)
37 x = x * 10 + (*nptr - '0');
43 *endptr = (char *)nptr;
52 int atoi(const char *nptr)
54 return ((int)strtol(nptr, (char **)NULL, 10));
57 long int atol(const char *nptr)
59 return (strtol(nptr, (char **)NULL, 10));
62 long int strtol(const char *nptr, char **endptr, int base)
87 x = x * base + (*nptr - '0');
90 else if (isalpha(*nptr))
92 if ((*nptr == 'X') || (*nptr == 'x'))
94 if ((base == 0) || ((base == 8) && undecided))
106 x = x * base + (toupper((unsigned char)*nptr) - 'A') + 10;
117 *endptr = (char *)nptr;
122 unsigned long int strtoul(const char *nptr, char **endptr, int base)
130 x = x * base + (*nptr - '0');
133 else if (isalpha(*nptr) && (base > 10))
135 x = x * base + (toupper((unsigned char)*nptr) - 'A') + 10;
145 *endptr = (char *)nptr;