From: Alejandro Colomar Date: Fri, 13 Dec 2024 02:46:33 +0000 (+0100) Subject: lib/string/ctype/strchrisascii/: strchriscntrl(): Add function X-Git-Tag: 4.18.0-rc1~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a0c8876b9e96517eeaf5c5f0e54d1fd8d98a0347;p=thirdparty%2Fshadow.git lib/string/ctype/strchrisascii/: strchriscntrl(): Add function Signed-off-by: Alejandro Colomar --- diff --git a/lib/Makefile.am b/lib/Makefile.am index fd9292a3e..42a439b41 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -179,6 +179,8 @@ libshadow_la_SOURCES = \ spawn.c \ sssd.c \ sssd.h \ + string/ctype/strchrisascii/strchriscntrl.c \ + string/ctype/strchrisascii/strchriscntrl.h \ string/ctype/strisascii/strisdigit.c \ string/ctype/strisascii/strisdigit.h \ string/ctype/strisascii/strisprint.c \ diff --git a/lib/string/ctype/strchrisascii/strchriscntrl.c b/lib/string/ctype/strchrisascii/strchriscntrl.c new file mode 100644 index 000000000..cb99c6f3d --- /dev/null +++ b/lib/string/ctype/strchrisascii/strchriscntrl.c @@ -0,0 +1,12 @@ +// SPDX-FileCopyrightText: 2024, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#include + +#include "string/ctype/strchrisascii/strchriscntrl.h" + +#include + + +extern inline bool strchriscntrl(const char *s); diff --git a/lib/string/ctype/strchrisascii/strchriscntrl.h b/lib/string/ctype/strchrisascii/strchriscntrl.h new file mode 100644 index 000000000..966aa945f --- /dev/null +++ b/lib/string/ctype/strchrisascii/strchriscntrl.h @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2024-2025, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#ifndef SHADOW_INCLUDE_LIB_STRING_CTYPE_STRCHRISASCII_STRCHRISCNTRL_H_ +#define SHADOW_INCLUDE_LIB_STRING_CTYPE_STRCHRISASCII_STRCHRISCNTRL_H_ + + +#include + +#include +#include + +#include "string/strcmp/streq.h" + + +inline bool strchriscntrl(const char *s); + + +// string character is [:cntrl:] +// Return true if any iscntrl(3) character is found in the string. +inline bool +strchriscntrl(const char *s) +{ + for (; !streq(s, ""); s++) { + unsigned char c = *s; + + if (iscntrl(c)) + return true; + } + + return false; +} + + +#endif // include guard