X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib_internal%2Futil-isnumber.c;fp=lib_internal%2Futil-isnumber.c;h=2fea0e4ecd1199df6c4e24bcd38cb57d773ab914;hb=2822ba293eb308225c50d346930c47bf98d9927b;hp=66e01fec4e68865f5885fe58ddfc085a6e95c84d;hpb=2894fc5a4c8335e4d7221311fed0556f33f8047c;p=util-vserver.git diff --git a/lib_internal/util-isnumber.c b/lib_internal/util-isnumber.c index 66e01fe..2fea0e4 100644 --- a/lib_internal/util-isnumber.c +++ b/lib_internal/util-isnumber.c @@ -1,4 +1,4 @@ -// $Id: util-isnumber.c 2255 2006-01-22 11:23:47Z ensc $ --*- c -*-- +// $Id: util-isnumber.c,v 1.1 2005/07/04 22:35:47 ensc Exp $ --*- c -*-- // Copyright (C) 2005 Enrico Scholz // @@ -21,15 +21,18 @@ #endif #include "util.h" -#include "util-isnumber.hc" -#include -static inline bool -checkConstraints(signed long val, unsigned int fac) +bool +isNumber(char const *str, signed long *result) { - if (val>0 && (signed long)(LONG_MAX/fac) <= val) return false; - if (val<0 && (signed long)(LONG_MIN/fac) >= val) return false; - return true; -} + char * errptr; + signed long val; -ENSC_DECL_UTIL_ISNUMBER(isNumber, signed long, strtol) + val = strtol(str, &errptr, 0); + if (*errptr!='\0' || errptr==str) + return false; + else { + if (result) *result = val; + return true; + } +}