|
|
1.1 root 1: long
2: atol(s)
3: register char *s;
4: {
5: register long n;
6: int f;
7:
8: n = 0;
9: f = 0;
10: while((*s == ' ') || (*s == '\t'))
11: s++;
12: if(*s == '-') {
13: f = 1;
14: s++;
15: }
16: if(s[0]=='0' && s[1]){
17: if(s[1]=='x' || s[1]=='X'){
18: s += 2;
19: for(;;){
20: if(*s >= '0' && *s <= '9')
21: n = n*16 + *s++ - '0';
22: else if(*s >= 'a' && *s <= 'f')
23: n = n*16 + *s++ - 'a' + 10;
24: else if(*s >= 'A' && *s <= 'F')
25: n = n*16 + *s++ - 'A' + 10;
26: else
27: break;
28: }
29: } else
30: while(*s >= '0' && *s <= '7')
31: n = n*8 + *s++ - '0';
32: } else
33: while(*s >= '0' && *s <= '9')
34: n = n*10 + *s++ - '0';
35: if(f)
36: n = -n;
37: return n;
38: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.