forsyth20121205-174063a80cc13 years agoHistory
47 lines · 716 B · C
RawDownload
#include <lib9.h> longatol(char *s){	long n;	int f; 	n = 0;	f = 0;	while(*s == ' ' || *s == '\t')		s++;	if(*s == '-' || *s == '+') {		if(*s++ == '-')			f = 1;		while(*s == ' ' || *s == '\t')			s++;	}	if(s[0]=='0' && s[1]){		if(s[1]=='x' || s[1]=='X'){			s += 2;			for(;;){				if(*s >= '0' && *s <= '9')					n = n*16 + *s++ - '0';				else if(*s >= 'a' && *s <= 'f')					n = n*16 + *s++ - 'a' + 10;				else if(*s >= 'A' && *s <= 'F')					n = n*16 + *s++ - 'A' + 10;				else					break;			}		} else			while(*s >= '0' && *s <= '7')				n = n*8 + *s++ - '0';	} else		while(*s >= '0' && *s <= '9')			n = n*10 + *s++ - '0';	if(f)		n = -n;	return n;} atoi(char *s){ 	return atol(s);}