From: Alejandro Colomar Date: Wed, 11 Dec 2024 00:57:29 +0000 (+0100) Subject: lib/string/ctype/strisascii/: strisdigit(): Add function X-Git-Tag: 4.17.3~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=79142cd28173e3d089581366c809957552b40900;p=thirdparty%2Fshadow.git lib/string/ctype/strisascii/: strisdigit(): Add function Reviewed-by: Serge Hallyn Signed-off-by: Alejandro Colomar --- diff --git a/lib/Makefile.am b/lib/Makefile.am index fc39e0179..307e70469 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -186,6 +186,8 @@ libshadow_la_SOURCES = \ spawn.c \ sssd.c \ sssd.h \ + string/ctype/strisascii/strisdigit.c \ + string/ctype/strisascii/strisdigit.h \ string/memset/memzero.c \ string/memset/memzero.h \ string/sprintf/snprintf.c \ diff --git a/lib/string/ctype/strisascii/strisdigit.c b/lib/string/ctype/strisascii/strisdigit.c new file mode 100644 index 000000000..a0e144994 --- /dev/null +++ b/lib/string/ctype/strisascii/strisdigit.c @@ -0,0 +1,12 @@ +// SPDX-FileCopyrightText: 2024, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#include + +#include "string/ctype/strisascii/strisdigit.h" + +#include + + +extern inline bool strisdigit(const char *s); diff --git a/lib/string/ctype/strisascii/strisdigit.h b/lib/string/ctype/strisascii/strisdigit.h new file mode 100644 index 000000000..065ba19fe --- /dev/null +++ b/lib/string/ctype/strisascii/strisdigit.h @@ -0,0 +1,32 @@ +// SPDX-FileCopyrightText: 2024, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#ifndef SHADOW_INCLUDE_LIB_STRING_CTYPE_STRISASCII_STRISDIGIT_H_ +#define SHADOW_INCLUDE_LIB_STRING_CTYPE_STRISASCII_STRISDIGIT_H_ + + +#include + +#include + +#include "string/strcmp/streq.h" +#include "string/strspn/stpspn.h" + + +inline bool strisdigit(const char *s); + + +// string is [:digit:] +// Like isdigit(3), but check all characters in the string. +inline bool +strisdigit(const char *s) +{ + if (streq(s, "")) + return false; + + return streq(stpspn(s, "0123456789"), ""); +} + + +#endif // include guard