From: Alejandro Colomar Date: Mon, 17 Feb 2025 11:26:41 +0000 (+0100) Subject: lib/string/ctype/strtoascii/: strtolower(): Add API X-Git-Tag: 4.18.0-rc1~64 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=abafa63be192cedb745b7c54e5fa12d54f37de32;p=thirdparty%2Fshadow.git lib/string/ctype/strtoascii/: strtolower(): Add API Signed-off-by: Alejandro Colomar --- diff --git a/lib/Makefile.am b/lib/Makefile.am index 0c0284a9b..279971bda 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -183,6 +183,8 @@ libshadow_la_SOURCES = \ sssd.h \ string/ctype/strisascii/strisdigit.c \ string/ctype/strisascii/strisdigit.h \ + string/ctype/strtoascii/strtolower.c \ + string/ctype/strtoascii/strtolower.h \ string/memset/memzero.c \ string/memset/memzero.h \ string/sprintf/snprintf.c \ diff --git a/lib/string/ctype/strtoascii/strtolower.c b/lib/string/ctype/strtoascii/strtolower.c new file mode 100644 index 000000000..b46e19a81 --- /dev/null +++ b/lib/string/ctype/strtoascii/strtolower.c @@ -0,0 +1,10 @@ +// SPDX-FileCopyrightText: 2025, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#include + +#include "string/ctype/strtoascii/strtolower.h" + + +extern inline char *strtolower(char *str); diff --git a/lib/string/ctype/strtoascii/strtolower.h b/lib/string/ctype/strtoascii/strtolower.h new file mode 100644 index 000000000..a19e851b0 --- /dev/null +++ b/lib/string/ctype/strtoascii/strtolower.h @@ -0,0 +1,34 @@ +// SPDX-FileCopyrightText: 2025, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#ifndef SHADOW_INCLUDE_LIB_STRING_CTYPE_STRTOASCII_STRTOLOWER_H_ +#define SHADOW_INCLUDE_LIB_STRING_CTYPE_STRTOASCII_STRTOLOWER_H_ + + +#include + +#include + +#include "string/strcmp/streq.h" + + +inline char *strtolower(char *str); + + +// string convert-to lower-case +// Like tolower(3), but convert all characters in the string. +// Returns the input pointer. +inline char * +strtolower(char *str) +{ + for (char *s = str; !streq(s, ""); s++) { + unsigned char c = *s; + + *s = tolower(c); + } + return str; +} + + +#endif // include guard