|
|
1.1 ! root 1: /* ! 2: * C general utilities library. ! 3: * atol() ! 4: * ANSI 4.10.1.3. ! 5: * Convert ASCII to long (the old fashioned way). ! 6: */ ! 7: ! 8: #include <stdlib.h> ! 9: #include <ctype.h> ! 10: ! 11: long ! 12: atol(nptr) register char *nptr; ! 13: { ! 14: register long val; ! 15: register int c; ! 16: register int sign; ! 17: ! 18: val = sign = 0; ! 19: ! 20: /* Leading whitespace. */ ! 21: while (isspace(c = *nptr++)) ! 22: ; ! 23: ! 24: /* Optional sign. */ ! 25: if (c == '-') { ! 26: sign = 1; ! 27: c = *nptr++; ! 28: } else if (c == '+') ! 29: c = *nptr++; ! 30: ! 31: /* Process digit string. */ ! 32: for ( ; isdigit(c); c = *nptr++) ! 33: val = val * 10 + c - '0'; ! 34: return (sign ? -val : val); ! 35: } ! 36: ! 37: /* end of atol.c */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.