From 5ccd8303476a78d6595920081048c2c206835fbd Mon Sep 17 00:00:00 2001 From: ceriel Date: Wed, 18 Dec 1991 16:15:18 +0000 Subject: [PATCH] replaced atol definition --- mach/proto/cg/fillem.c | 24 +++++++++++++++++++++++- mach/proto/ncg/fillem.c | 25 ++++++++++++++++++++++++- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/mach/proto/cg/fillem.c b/mach/proto/cg/fillem.c index f29e3d647..aab981c34 100644 --- a/mach/proto/cg/fillem.c +++ b/mach/proto/cg/fillem.c @@ -82,9 +82,31 @@ int regallowed=0; extern char em_flag[]; extern short em_ptyp[]; -extern long atol(); extern double atof(); +/* Own version of atol that continues computing on overflow. + We don't know that about the ANSI C one. +*/ +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); +} + #define sp_cstx sp_cst2 string tostring(); diff --git a/mach/proto/ncg/fillem.c b/mach/proto/ncg/fillem.c index af152979d..ad107a44d 100644 --- a/mach/proto/ncg/fillem.c +++ b/mach/proto/ncg/fillem.c @@ -80,9 +80,32 @@ int regallowed=0; extern char em_flag[]; extern short em_ptyp[]; -extern long atol(); extern double atof(); +/* Own version of atol that continues computing on overflow. + We don't know that about the ANSI C one. +*/ +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); +} + + #define sp_cstx sp_cst2 string tostring();