1*c9945492SAndroid Build Coastguard Worker #include <stdlib.h> 2*c9945492SAndroid Build Coastguard Worker #include <ctype.h> 3*c9945492SAndroid Build Coastguard Worker atol(const char * s)4*c9945492SAndroid Build Coastguard Workerlong atol(const char *s) 5*c9945492SAndroid Build Coastguard Worker { 6*c9945492SAndroid Build Coastguard Worker long n=0; 7*c9945492SAndroid Build Coastguard Worker int neg=0; 8*c9945492SAndroid Build Coastguard Worker while (isspace(*s)) s++; 9*c9945492SAndroid Build Coastguard Worker switch (*s) { 10*c9945492SAndroid Build Coastguard Worker case '-': neg=1; 11*c9945492SAndroid Build Coastguard Worker case '+': s++; 12*c9945492SAndroid Build Coastguard Worker } 13*c9945492SAndroid Build Coastguard Worker /* Compute n as a negative number to avoid overflow on LONG_MIN */ 14*c9945492SAndroid Build Coastguard Worker while (isdigit(*s)) 15*c9945492SAndroid Build Coastguard Worker n = 10*n - (*s++ - '0'); 16*c9945492SAndroid Build Coastguard Worker return neg ? n : -n; 17*c9945492SAndroid Build Coastguard Worker } 18