Added atol() that ignores overflow, so that unsigned long constants are dealt with properly

This commit is contained in:
Ceriel Jacobs 2011-06-15 11:13:48 +02:00
parent 2483e5723d
commit 1072a8797e

View file

@ -849,8 +849,28 @@ extxcon(header) {
return ;
}
/* Added atol() that ignores overflow. --Ceriel */
long atol(s)
register char *s;
{
register long total = 0;
register unsigned digit;
int minus = 0;
while (*s == ' ' || *s == '\t') s++;
if (*s == '+') s++;
else if (*s == '-') {
s++;
minus = 1;
}
while ((digit = *s++ - '0') < 10) {
total *= 10;
total += digit;
}
return(minus ? -total : total);
}
extvcon(header) {
extern long atol() ;
/*
* generate data for a constant initialized by a string.
*/