From: Enrico Scholz Date: Mon, 4 Jul 2005 22:35:47 +0000 (+0000) Subject: isNumber(): added X-Git-Tag: version_0_30_210~139 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=581649cd6c06712f0f6c3cf927d6cf4cb06a2e6c;p=util-vserver.git isNumber(): added git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2142 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/util-vserver/lib_internal/Makefile-files b/util-vserver/lib_internal/Makefile-files index 5e8922f..aca43da 100644 --- a/util-vserver/lib_internal/Makefile-files +++ b/util-vserver/lib_internal/Makefile-files @@ -96,6 +96,7 @@ lib_internal_libinternal_common_SRCS = \ lib_internal/unify-isiunlinkable.c \ lib_internal/util-canonify.c \ lib_internal/util-exitlikeprocess.c \ + lib_internal/util-isnumber.c \ lib_internal/util-lockfile.c \ lib_internal/util-safechdir.c \ $(command_SRCS) \ diff --git a/util-vserver/lib_internal/util-isnumber.c b/util-vserver/lib_internal/util-isnumber.c new file mode 100644 index 0000000..f5a41c7 --- /dev/null +++ b/util-vserver/lib_internal/util-isnumber.c @@ -0,0 +1,38 @@ +// $Id$ --*- c -*-- + +// Copyright (C) 2005 Enrico Scholz +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "util.h" + +bool +isNumber(char const *str, signed long *result) +{ + char * errptr; + signed long val; + + val = strtol(str, &errptr, 0); + if (*errptr!='\0' || errptr==str) + return false; + else { + if (result) *result = val; + return true; + } +} diff --git a/util-vserver/lib_internal/util.h b/util-vserver/lib_internal/util.h index 3d43c12..955fbe6 100644 --- a/util-vserver/lib_internal/util.h +++ b/util-vserver/lib_internal/util.h @@ -35,5 +35,6 @@ bool switchToWatchXid(char const **); size_t canonifyVserverName(char *); +bool isNumber(char const *, signed long *result); #endif // H_UTILVSERVER_LIB_INTERNAL_UTIL_H