From: Alejandro Colomar Date: Fri, 2 Jan 2026 12:57:19 +0000 (+0100) Subject: lib/: Merge directories "lib/string/ctype/*" into unified files X-Git-Tag: 4.20.0-rc1~16 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4478d537f3cf099baeb573cc21aecf9ade7ad744;p=thirdparty%2Fshadow.git lib/: Merge directories "lib/string/ctype/*" into unified files The APIs defined under each of those subdirs are too similar and related that it makes more sense to define them in the same files. (BTW, we only had one API per subdir, except in one subdir that had two APIs, so in the end, we have almost the same separation.) Signed-off-by: Alejandro Colomar --- diff --git a/lib/Makefile.am b/lib/Makefile.am index f65e25622..69bbd14db 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -193,14 +193,12 @@ libshadow_la_SOURCES = \ sssd.h \ string/ctype/isascii.c \ string/ctype/isascii.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 \ - string/ctype/strisascii/strisprint.h \ - string/ctype/strtoascii/strtolower.c \ - string/ctype/strtoascii/strtolower.h \ + string/ctype/strchrisascii.c \ + string/ctype/strchrisascii.h \ + string/ctype/strisascii.c \ + string/ctype/strisascii.h \ + string/ctype/strtoascii.c \ + string/ctype/strtoascii.h \ string/memset/memzero.c \ string/memset/memzero.h \ string/sprintf/aprintf.c \ diff --git a/lib/chkname.c b/lib/chkname.c index 853c3d7f5..ad5d70db0 100644 --- a/lib/chkname.c +++ b/lib/chkname.c @@ -33,8 +33,8 @@ #include "defines.h" #include "chkname.h" -#include "string/ctype/strchrisascii/strchriscntrl.h" -#include "string/ctype/strisascii/strisdigit.h" +#include "string/ctype/strchrisascii.h" +#include "string/ctype/strisascii.h" #include "string/strcmp/streq.h" #include "string/strcmp/strcaseeq.h" #include "sysconf.h" diff --git a/lib/fields.c b/lib/fields.c index 759dea755..77eb8c2d4 100644 --- a/lib/fields.c +++ b/lib/fields.c @@ -19,8 +19,8 @@ #include "io/fgets/fgets.h" #include "prototypes.h" -#include "string/ctype/strisascii/strisprint.h" -#include "string/ctype/strchrisascii/strchriscntrl.h" +#include "string/ctype/strisascii.h" +#include "string/ctype/strchrisascii.h" #include "string/strcmp/streq.h" #include "string/strspn/stpspn.h" #include "string/strspn/stprspn.h" diff --git a/lib/obscure.c b/lib/obscure.c index 9a53df85e..3f0a4ca66 100644 --- a/lib/obscure.c +++ b/lib/obscure.c @@ -19,7 +19,7 @@ #include "prototypes.h" #include "defines.h" #include "getdef.h" -#include "string/ctype/strtoascii/strtolower.h" +#include "string/ctype/strtoascii.h" #include "string/memset/memzero.h" #include "string/sprintf/aprintf.h" #include "string/strcmp/streq.h" diff --git a/lib/string/README b/lib/string/README index 4ef415cbe..77b8b9316 100644 --- a/lib/string/README +++ b/lib/string/README @@ -75,21 +75,21 @@ ctype/ - Character classification and conversion functions if the character belongs to the category specified in the function name. - strchrisascii/ - The functions defined under this directory + strchrisascii.h + The functions defined in this file return true if the string has any characters that belong to the category specified in the function name. - strisascii/ - The functions defined under this directory + strisascii.h + The functions defined in this file return true if all of the characters of the string belong to the category specified in the function name and the string is not an empty string. - strtoascii/ - The functions defined under this directory + strtoascii.h + The functions defined in this file translate all characters in a string. memset/ - Memory zeroing diff --git a/lib/string/ctype/strchrisascii/strchriscntrl.c b/lib/string/ctype/strchrisascii.c similarity index 79% rename from lib/string/ctype/strchrisascii/strchriscntrl.c rename to lib/string/ctype/strchrisascii.c index ca77b4cfb..b9b7e919a 100644 --- a/lib/string/ctype/strchrisascii/strchriscntrl.c +++ b/lib/string/ctype/strchrisascii.c @@ -4,7 +4,7 @@ #include "config.h" -#include "string/ctype/strchrisascii/strchriscntrl.h" +#include "string/ctype/strchrisascii.h" #include diff --git a/lib/string/ctype/strchrisascii/strchriscntrl.h b/lib/string/ctype/strchrisascii.h similarity index 78% rename from lib/string/ctype/strchrisascii/strchriscntrl.h rename to lib/string/ctype/strchrisascii.h index 8fe6e0575..a2be4e321 100644 --- a/lib/string/ctype/strchrisascii/strchriscntrl.h +++ b/lib/string/ctype/strchrisascii.h @@ -2,8 +2,8 @@ // SPDX-License-Identifier: BSD-3-Clause -#ifndef SHADOW_INCLUDE_LIB_STRING_CTYPE_STRCHRISASCII_STRCHRISCNTRL_H_ -#define SHADOW_INCLUDE_LIB_STRING_CTYPE_STRCHRISASCII_STRCHRISCNTRL_H_ +#ifndef SHADOW_INCLUDE_LIB_STRING_CTYPE_STRCHRISASCII_H_ +#define SHADOW_INCLUDE_LIB_STRING_CTYPE_STRCHRISASCII_H_ #include "config.h" diff --git a/lib/string/ctype/strisascii/strisprint.c b/lib/string/ctype/strisascii.c similarity index 70% rename from lib/string/ctype/strisascii/strisprint.c rename to lib/string/ctype/strisascii.c index 47fb2a3bf..564dac250 100644 --- a/lib/string/ctype/strisascii/strisprint.c +++ b/lib/string/ctype/strisascii.c @@ -4,9 +4,10 @@ #include "config.h" -#include "string/ctype/strisascii/strisprint.h" +#include "string/ctype/strisascii.h" #include +extern inline bool strisdigit(const char *s); extern inline bool strisprint(const char *s); diff --git a/lib/string/ctype/strisascii/strisdigit.h b/lib/string/ctype/strisascii.h similarity index 58% rename from lib/string/ctype/strisascii/strisdigit.h rename to lib/string/ctype/strisascii.h index 1e4f69d2c..1ee66c2fe 100644 --- a/lib/string/ctype/strisascii/strisdigit.h +++ b/lib/string/ctype/strisascii.h @@ -2,8 +2,8 @@ // SPDX-License-Identifier: BSD-3-Clause -#ifndef SHADOW_INCLUDE_LIB_STRING_CTYPE_STRISASCII_STRISDIGIT_H_ -#define SHADOW_INCLUDE_LIB_STRING_CTYPE_STRISASCII_STRISDIGIT_H_ +#ifndef SHADOW_INCLUDE_LIB_STRING_CTYPE_STRISASCII_H_ +#define SHADOW_INCLUDE_LIB_STRING_CTYPE_STRISASCII_H_ #include "config.h" @@ -16,6 +16,7 @@ inline bool strisdigit(const char *s); +inline bool strisprint(const char *s); // strisdigit - string is [:digit:] @@ -29,4 +30,20 @@ strisdigit(const char *s) } +// strisprint - string is [:print:] +inline bool +strisprint(const char *s) +{ + if (streq(s, "")) + return false; + + for (; !streq(s, ""); s++) { + if (!isprint_c(*s)) + return false; + } + + return true; +} + + #endif // include guard diff --git a/lib/string/ctype/strisascii/strisdigit.c b/lib/string/ctype/strisascii/strisdigit.c deleted file mode 100644 index acd452288..000000000 --- a/lib/string/ctype/strisascii/strisdigit.c +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-FileCopyrightText: 2024, Alejandro Colomar -// SPDX-License-Identifier: BSD-3-Clause - - -#include "config.h" - -#include "string/ctype/strisascii/strisdigit.h" - -#include - - -extern inline bool strisdigit(const char *s); diff --git a/lib/string/ctype/strisascii/strisprint.h b/lib/string/ctype/strisascii/strisprint.h deleted file mode 100644 index 652c6544d..000000000 --- a/lib/string/ctype/strisascii/strisprint.h +++ /dev/null @@ -1,36 +0,0 @@ -// SPDX-FileCopyrightText: 2024-2025, Alejandro Colomar -// SPDX-License-Identifier: BSD-3-Clause - - -#ifndef SHADOW_INCLUDE_LIB_STRING_CTYPE_STRISASCII_STRISPRINT_H_ -#define SHADOW_INCLUDE_LIB_STRING_CTYPE_STRISASCII_STRISPRINT_H_ - - -#include "config.h" - -#include - -#include "string/ctype/isascii.h" -#include "string/strcmp/streq.h" - - -inline bool strisprint(const char *s); - - -// strisprint - string is [:print:] -inline bool -strisprint(const char *s) -{ - if (streq(s, "")) - return false; - - for (; !streq(s, ""); s++) { - if (!isprint_c(*s)) - return false; - } - - return true; -} - - -#endif // include guard diff --git a/lib/string/ctype/strtoascii/strtolower.c b/lib/string/ctype/strtoascii.c similarity index 78% rename from lib/string/ctype/strtoascii/strtolower.c rename to lib/string/ctype/strtoascii.c index 99ea4097c..1e89acaaf 100644 --- a/lib/string/ctype/strtoascii/strtolower.c +++ b/lib/string/ctype/strtoascii.c @@ -4,7 +4,7 @@ #include "config.h" -#include "string/ctype/strtoascii/strtolower.h" +#include "string/ctype/strtoascii.h" extern inline char *strtolower(char *str); diff --git a/lib/string/ctype/strtoascii/strtolower.h b/lib/string/ctype/strtoascii.h similarity index 61% rename from lib/string/ctype/strtoascii/strtolower.h rename to lib/string/ctype/strtoascii.h index d283fe1e8..c0c3be717 100644 --- a/lib/string/ctype/strtoascii/strtolower.h +++ b/lib/string/ctype/strtoascii.h @@ -2,8 +2,8 @@ // SPDX-License-Identifier: BSD-3-Clause -#ifndef SHADOW_INCLUDE_LIB_STRING_CTYPE_STRTOASCII_STRTOLOWER_H_ -#define SHADOW_INCLUDE_LIB_STRING_CTYPE_STRTOASCII_STRTOLOWER_H_ +#ifndef SHADOW_INCLUDE_LIB_STRING_CTYPE_STRTOASCII_H_ +#define SHADOW_INCLUDE_LIB_STRING_CTYPE_STRTOASCII_H_ #include "config.h" @@ -16,9 +16,7 @@ inline char *strtolower(char *str); -// string convert-to lower-case -// Like tolower(3), but convert all characters in the string. -// Returns the input pointer. +// strtolower - string convert-to lower-case inline char * strtolower(char *str) { diff --git a/lib/subordinateio.c b/lib/subordinateio.c index 357ec5462..7f6db7e42 100644 --- a/lib/subordinateio.c +++ b/lib/subordinateio.c @@ -24,7 +24,7 @@ #include "atoi/a2i.h" #include "atoi/getnum.h" #include "shadow/passwd/getpw.h" -#include "string/ctype/strisascii/strisdigit.h" +#include "string/ctype/strisascii.h" #include "string/sprintf/stprintf.h" #include "string/strcmp/streq.h" #include "string/strtok/strsep2arr.h"