From: Alejandro Colomar Date: Thu, 13 Mar 2025 02:19:09 +0000 (+0100) Subject: lib/atoi/str2i/, *: Simplify implementations X-Git-Tag: 4.18.0-rc1~65 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4fed0094958737710b55f23c69e6a2d6a1c87e7a;p=thirdparty%2Fshadow.git lib/atoi/str2i/, *: Simplify implementations Signed-off-by: Alejandro Colomar --- diff --git a/lib/Makefile.am b/lib/Makefile.am index 1fb2827db..0c0284a9b 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -59,12 +59,8 @@ libshadow_la_SOURCES = \ atoi/a2i/a2u_nc.h \ atoi/getnum.c \ atoi/getnum.h \ - atoi/str2i/str2i.c \ - atoi/str2i/str2i.h \ - atoi/str2i/str2s.c \ - atoi/str2i/str2s.h \ - atoi/str2i/str2u.c \ - atoi/str2i/str2u.h \ + atoi/str2i.c \ + atoi/str2i.h \ atoi/strtoi/strtoi.c \ atoi/strtoi/strtoi.h \ atoi/strtoi/strtou.c \ diff --git a/lib/atoi/str2i/str2i.c b/lib/atoi/str2i.c similarity index 57% rename from lib/atoi/str2i/str2i.c rename to lib/atoi/str2i.c index ff5ad8f02..cb055723c 100644 --- a/lib/atoi/str2i/str2i.c +++ b/lib/atoi/str2i.c @@ -1,8 +1,8 @@ // SPDX-FileCopyrightText: 2007-2009, Nicolas François -// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar +// SPDX-FileCopyrightText: 2023-2025, Alejandro Colomar // SPDX-License-Identifier: BSD-3-Clause #include -#include "atoi/str2i/str2i.h" +#include "atoi/str2i.h" diff --git a/lib/atoi/str2i.h b/lib/atoi/str2i.h new file mode 100644 index 000000000..ca15ac5e4 --- /dev/null +++ b/lib/atoi/str2i.h @@ -0,0 +1,31 @@ +// SPDX-FileCopyrightText: 2007-2009, Nicolas François +// SPDX-FileCopyrightText: 2023-2025, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#ifndef SHADOW_INCLUDE_LIB_ATOI_STR2I_H_ +#define SHADOW_INCLUDE_LIB_ATOI_STR2I_H_ + + +#include + +#include + +#include "atoi/a2i/a2i.h" +#include "typetraits.h" + + +#define str2i(T, ...) a2i(T, __VA_ARGS__, NULL, 0, type_min(T), type_max(T)) + +#define str2sh(...) str2i(short, __VA_ARGS__) +#define str2si(...) str2i(int, __VA_ARGS__) +#define str2sl(...) str2i(long, __VA_ARGS__) +#define str2sll(...) str2i(long long, __VA_ARGS__) + +#define str2uh(...) str2i(unsigned short, __VA_ARGS__) +#define str2ui(...) str2i(unsigned int, __VA_ARGS__) +#define str2ul(...) str2i(unsigned long, __VA_ARGS__) +#define str2ull(...) str2i(unsigned long long, __VA_ARGS__) + + +#endif // include guard diff --git a/lib/atoi/str2i/str2i.h b/lib/atoi/str2i/str2i.h deleted file mode 100644 index e2cecc753..000000000 --- a/lib/atoi/str2i/str2i.h +++ /dev/null @@ -1,31 +0,0 @@ -// SPDX-FileCopyrightText: 2007-2009, Nicolas François -// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar -// SPDX-License-Identifier: BSD-3-Clause - - -#ifndef SHADOW_INCLUDE_LIB_ATOI_STR2I_STR2I_H_ -#define SHADOW_INCLUDE_LIB_ATOI_STR2I_STR2I_H_ - - -#include - -#include "atoi/str2i/str2s.h" -#include "atoi/str2i/str2u.h" - - -#define str2i(TYPE, ...) \ -( \ - _Generic((TYPE) 0, \ - short: str2sh, \ - int: str2si, \ - long: str2sl, \ - long long: str2sll, \ - unsigned short: str2uh, \ - unsigned int: str2ui, \ - unsigned long: str2ul, \ - unsigned long long: str2ull \ - )(__VA_ARGS__) \ -) - - -#endif // include guard diff --git a/lib/atoi/str2i/str2s.c b/lib/atoi/str2i/str2s.c deleted file mode 100644 index f77c594e5..000000000 --- a/lib/atoi/str2i/str2s.c +++ /dev/null @@ -1,14 +0,0 @@ -// SPDX-FileCopyrightText: 2007-2009, Nicolas François -// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar -// SPDX-License-Identifier: BSD-3-Clause - - -#include - -#include "atoi/str2i/str2s.h" - - -extern inline int str2sh(short *restrict n, const char *restrict s); -extern inline int str2si(int *restrict n, const char *restrict s); -extern inline int str2sl(long *restrict n, const char *restrict s); -extern inline int str2sll(long long *restrict n, const char *restrict s); diff --git a/lib/atoi/str2i/str2s.h b/lib/atoi/str2i/str2s.h deleted file mode 100644 index dc20faa19..000000000 --- a/lib/atoi/str2i/str2s.h +++ /dev/null @@ -1,57 +0,0 @@ -// SPDX-FileCopyrightText: 2007-2009, Nicolas François -// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar -// SPDX-License-Identifier: BSD-3-Clause - - -#ifndef SHADOW_INCLUDE_LIB_ATOI_STR2I_STR2S_H_ -#define SHADOW_INCLUDE_LIB_ATOI_STR2I_STR2S_H_ - - -#include - -#include -#include - -#include "atoi/a2i/a2s.h" -#include "attr.h" - - -ATTR_STRING(2) ATTR_ACCESS(write_only, 1) -inline int str2sh(short *restrict n, const char *restrict s); -ATTR_STRING(2) ATTR_ACCESS(write_only, 1) -inline int str2si(int *restrict n, const char *restrict s); -ATTR_STRING(2) ATTR_ACCESS(write_only, 1) -inline int str2sl(long *restrict n, const char *restrict s); -ATTR_STRING(2) ATTR_ACCESS(write_only, 1) -inline int str2sll(long long *restrict n, const char *restrict s); - - -inline int -str2sh(short *restrict n, const char *restrict s) -{ - return a2sh(n, s, NULL, 0, SHRT_MIN, SHRT_MAX); -} - - -inline int -str2si(int *restrict n, const char *restrict s) -{ - return a2si(n, s, NULL, 0, INT_MIN, INT_MAX); -} - - -inline int -str2sl(long *restrict n, const char *restrict s) -{ - return a2sl(n, s, NULL, 0, LONG_MIN, LONG_MAX); -} - - -inline int -str2sll(long long *restrict n, const char *restrict s) -{ - return a2sll(n, s, NULL, 0, LLONG_MIN, LLONG_MAX); -} - - -#endif // include guard diff --git a/lib/atoi/str2i/str2u.c b/lib/atoi/str2i/str2u.c deleted file mode 100644 index 25fffda9c..000000000 --- a/lib/atoi/str2i/str2u.c +++ /dev/null @@ -1,14 +0,0 @@ -// SPDX-FileCopyrightText: 2007-2009, Nicolas François -// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar -// SPDX-License-Identifier: BSD-3-Clause - - -#include - -#include "atoi/str2i/str2u.h" - - -extern inline int str2uh(unsigned short *restrict n, const char *restrict s); -extern inline int str2ui(unsigned int *restrict n, const char *restrict s); -extern inline int str2ul(unsigned long *restrict n, const char *restrict s); -extern inline int str2ull(unsigned long long *restrict n, const char *restrict s); diff --git a/lib/atoi/str2i/str2u.h b/lib/atoi/str2i/str2u.h deleted file mode 100644 index c25941ce9..000000000 --- a/lib/atoi/str2i/str2u.h +++ /dev/null @@ -1,57 +0,0 @@ -// SPDX-FileCopyrightText: 2007-2009, Nicolas François -// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar -// SPDX-License-Identifier: BSD-3-Clause - - -#ifndef SHADOW_INCLUDE_LIB_ATOI_STR2I_STR2U_H_ -#define SHADOW_INCLUDE_LIB_ATOI_STR2I_STR2U_H_ - - -#include - -#include -#include - -#include "atoi/a2i/a2u.h" -#include "attr.h" - - -ATTR_STRING(2) ATTR_ACCESS(write_only, 1) -inline int str2uh(unsigned short *restrict n, const char *restrict s); -ATTR_STRING(2) ATTR_ACCESS(write_only, 1) -inline int str2ui(unsigned int *restrict n, const char *restrict s); -ATTR_STRING(2) ATTR_ACCESS(write_only, 1) -inline int str2ul(unsigned long *restrict n, const char *restrict s); -ATTR_STRING(2) ATTR_ACCESS(write_only, 1) -inline int str2ull(unsigned long long *restrict n, const char *restrict s); - - -inline int -str2uh(unsigned short *restrict n, const char *restrict s) -{ - return a2uh(n, s, NULL, 0, 0, USHRT_MAX); -} - - -inline int -str2ui(unsigned int *restrict n, const char *restrict s) -{ - return a2ui(n, s, NULL, 0, 0, UINT_MAX); -} - - -inline int -str2ul(unsigned long *restrict n, const char *restrict s) -{ - return a2ul(n, s, NULL, 0, 0, ULONG_MAX); -} - - -inline int -str2ull(unsigned long long *restrict n, const char *restrict s) -{ - return a2ull(n, s, NULL, 0, 0, ULLONG_MAX); -} - - -#endif // include guard diff --git a/lib/getdef.c b/lib/getdef.c index f963e5bc8..9cc8bbfe5 100644 --- a/lib/getdef.c +++ b/lib/getdef.c @@ -24,7 +24,7 @@ #include "atoi/a2i/a2s.h" #include "atoi/a2i/a2u.h" -#include "atoi/str2i/str2u.h" +#include "atoi/str2i.h" #include "defines.h" #include "getdef.h" #include "prototypes.h" diff --git a/lib/limits.c b/lib/limits.c index 55a5fa9d9..d0598f0bb 100644 --- a/lib/limits.c +++ b/lib/limits.c @@ -32,9 +32,7 @@ #include "atoi/a2i/a2i.h" #include "atoi/a2i/a2s.h" -#include "atoi/str2i/str2i.h" -#include "atoi/str2i/str2s.h" -#include "atoi/str2i/str2u.h" +#include "atoi/str2i.h" #include "string/memset/memzero.h" #include "string/strcmp/streq.h" #include "string/strcmp/strprefix.h" diff --git a/lib/sgetspent.c b/lib/sgetspent.c index f34853ec6..db85cd024 100644 --- a/lib/sgetspent.c +++ b/lib/sgetspent.c @@ -20,7 +20,7 @@ #include #include "atoi/a2i/a2s.h" -#include "atoi/str2i/str2u.h" +#include "atoi/str2i.h" #include "defines.h" #include "prototypes.h" #include "shadowlog_internal.h" diff --git a/lib/strtoday.c b/lib/strtoday.c index fb242bfbb..c37c90abe 100644 --- a/lib/strtoday.c +++ b/lib/strtoday.c @@ -11,7 +11,7 @@ #include -#include "atoi/str2i/str2s.h" +#include "atoi/str2i.h" #include "getdate.h" #include "prototypes.h" #include "string/ctype/strisascii/strisdigit.h" diff --git a/lib/subordinateio.c b/lib/subordinateio.c index 229f27cb3..903724767 100644 --- a/lib/subordinateio.c +++ b/lib/subordinateio.c @@ -21,7 +21,7 @@ #include "alloc/malloc.h" #include "alloc/realloc.h" #include "alloc/reallocf.h" -#include "atoi/str2i/str2u.h" +#include "atoi/str2i.h" #include "string/ctype/strisascii/strisdigit.h" #include "string/sprintf/snprintf.h" #include "string/strcmp/streq.h" diff --git a/src/check_subid_range.c b/src/check_subid_range.c index a33f92238..cc40ed825 100644 --- a/src/check_subid_range.c +++ b/src/check_subid_range.c @@ -13,7 +13,7 @@ #include #include "atoi/getnum.h" -#include "atoi/str2i/str2u.h" +#include "atoi/str2i.h" #include "defines.h" #include "idmapping.h" #include "prototypes.h" diff --git a/src/chgpasswd.c b/src/chgpasswd.c index c5f302844..e77596578 100644 --- a/src/chgpasswd.c +++ b/src/chgpasswd.c @@ -23,7 +23,7 @@ #include "pam_defs.h" #endif /* USE_PAM */ #endif /* ACCT_TOOLS_SETUID */ -#include "atoi/str2i/str2s.h" +#include "atoi/str2i.h" #include "defines.h" #include "nscd.h" #include "sssd.h" diff --git a/src/chpasswd.c b/src/chpasswd.c index edab544ec..315e91cef 100644 --- a/src/chpasswd.c +++ b/src/chpasswd.c @@ -21,7 +21,7 @@ #ifdef USE_PAM #include "pam_defs.h" #endif /* USE_PAM */ -#include "atoi/str2i/str2s.h" +#include "atoi/str2i.h" #include "defines.h" #include "nscd.h" #include "sssd.h" diff --git a/src/faillog.c b/src/faillog.c index 709d741ce..ae0ea3d93 100644 --- a/src/faillog.c +++ b/src/faillog.c @@ -19,7 +19,7 @@ #include #include -#include "atoi/str2i/str2s.h" +#include "atoi/str2i.h" #include "defines.h" #include "faillog.h" #include "prototypes.h" diff --git a/src/free_subid_range.c b/src/free_subid_range.c index bff6f7b2b..4bdacfb7d 100644 --- a/src/free_subid_range.c +++ b/src/free_subid_range.c @@ -4,7 +4,7 @@ #include #include -#include "atoi/str2i/str2u.h" +#include "atoi/str2i.h" #include "subid.h" #include "stdlib.h" #include "prototypes.h" diff --git a/src/lastlog.c b/src/lastlog.c index 1a5e1a631..6ae0de9d7 100644 --- a/src/lastlog.c +++ b/src/lastlog.c @@ -23,7 +23,7 @@ #include #endif -#include "atoi/str2i/str2u.h" +#include "atoi/str2i.h" #include "defines.h" #include "prototypes.h" #include "getdef.h" diff --git a/src/new_subid_range.c b/src/new_subid_range.c index 6c62cc08b..6be957409 100644 --- a/src/new_subid_range.c +++ b/src/new_subid_range.c @@ -3,7 +3,7 @@ #include #include -#include "atoi/str2i/str2u.h" +#include "atoi/str2i.h" #include "subid.h" #include "stdlib.h" #include "prototypes.h" diff --git a/src/newusers.c b/src/newusers.c index e3685efe9..ef20541a2 100644 --- a/src/newusers.c +++ b/src/newusers.c @@ -34,7 +34,7 @@ #include "alloc/reallocf.h" #include "atoi/getnum.h" -#include "atoi/str2i/str2s.h" +#include "atoi/str2i.h" #ifdef ACCT_TOOLS_SETUID #ifdef USE_PAM #include "pam_defs.h"