1989-05-16 13:13:53 +00:00
|
|
|
/*
|
|
|
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
|
|
*/
|
1994-06-24 14:02:31 +00:00
|
|
|
/* $Id$ */
|
1989-05-16 13:13:53 +00:00
|
|
|
|
2018-06-21 20:33:47 +00:00
|
|
|
#include <ctype.h>
|
1989-05-16 13:13:53 +00:00
|
|
|
|
1990-05-22 10:48:12 +00:00
|
|
|
/* We do not use strtol here for backwards compatibility in behaviour on
|
|
|
|
overflow.
|
|
|
|
*/
|
2018-06-21 20:33:47 +00:00
|
|
|
long atol(register const char* nptr)
|
1989-05-16 13:13:53 +00:00
|
|
|
{
|
1990-05-22 10:48:12 +00:00
|
|
|
long total = 0;
|
|
|
|
int minus = 0;
|
1989-12-18 15:14:14 +00:00
|
|
|
|
2018-06-21 20:33:47 +00:00
|
|
|
while (isspace(*nptr))
|
|
|
|
nptr++;
|
|
|
|
if (*nptr == '+')
|
|
|
|
nptr++;
|
|
|
|
else if (*nptr == '-')
|
|
|
|
{
|
1990-05-22 10:48:12 +00:00
|
|
|
minus = 1;
|
|
|
|
nptr++;
|
|
|
|
}
|
2018-06-21 20:33:47 +00:00
|
|
|
while (isdigit(*nptr))
|
|
|
|
{
|
1990-05-22 10:48:12 +00:00
|
|
|
total *= 10;
|
|
|
|
total += (*nptr++ - '0');
|
|
|
|
}
|
|
|
|
return minus ? -total : total;
|
1989-05-16 13:13:53 +00:00
|
|
|
}
|