xref: /csrg-svn/lib/libc/stdlib/atol.c (revision 1955)
1*1955Swnj /* @(#)atol.c	4.1 (Berkeley) 12/21/80 */
2*1955Swnj long
3*1955Swnj atol(p)
4*1955Swnj register char *p;
5*1955Swnj {
6*1955Swnj 	long n;
7*1955Swnj 	register int f;
8*1955Swnj 
9*1955Swnj 	n = 0;
10*1955Swnj 	f = 0;
11*1955Swnj 	for(;;p++) {
12*1955Swnj 		switch(*p) {
13*1955Swnj 		case ' ':
14*1955Swnj 		case '\t':
15*1955Swnj 			continue;
16*1955Swnj 		case '-':
17*1955Swnj 			f++;
18*1955Swnj 		case '+':
19*1955Swnj 			p++;
20*1955Swnj 		}
21*1955Swnj 		break;
22*1955Swnj 	}
23*1955Swnj 	while(*p >= '0' && *p <= '9')
24*1955Swnj 		n = n*10 + *p++ - '0';
25*1955Swnj 	return(f? -n: n);
26*1955Swnj }
27