xref: /csrg-svn/lib/libc/stdlib/atol.c (revision 26543)
1*26543Sdonn #if defined(LIBC_SCCS) && !defined(lint)
2*26543Sdonn static char sccsid[] = "@(#)atol.c	5.2 (Berkeley) 03/09/86";
3*26543Sdonn #endif LIBC_SCCS and not lint
422081Smckusick 
51955Swnj long
61955Swnj atol(p)
71955Swnj register char *p;
81955Swnj {
91955Swnj 	long n;
101955Swnj 	register int f;
111955Swnj 
121955Swnj 	n = 0;
131955Swnj 	f = 0;
141955Swnj 	for(;;p++) {
151955Swnj 		switch(*p) {
161955Swnj 		case ' ':
171955Swnj 		case '\t':
181955Swnj 			continue;
191955Swnj 		case '-':
201955Swnj 			f++;
211955Swnj 		case '+':
221955Swnj 			p++;
231955Swnj 		}
241955Swnj 		break;
251955Swnj 	}
261955Swnj 	while(*p >= '0' && *p <= '9')
271955Swnj 		n = n*10 + *p++ - '0';
281955Swnj 	return(f? -n: n);
291955Swnj }
30