From abafa63be192cedb745b7c54e5fa12d54f37de32 Mon Sep 17 00:00:00 2001 From: Alejandro Colomar Date: Mon, 17 Feb 2025 12:26:41 +0100 Subject: [PATCH] lib/string/ctype/strtoascii/: strtolower(): Add API Signed-off-by: Alejandro Colomar --- lib/Makefile.am | 2 ++ lib/string/ctype/strtoascii/strtolower.c | 10 +++++++ lib/string/ctype/strtoascii/strtolower.h | 34 ++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 lib/string/ctype/strtoascii/strtolower.c create mode 100644 lib/string/ctype/strtoascii/strtolower.h 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 -- 2.47.3