[Nouveau] [PATCH 1/6] lib: string: add function strtolower()

Michel Hermier michel.hermier at gmail.com
Sun Jul 3 08:22:11 UTC 2016


Le 01/07/2016 à 01:50, Markus Mayer a écrit :
> Add a function called strtolower() to convert strings to lower case
> in-place, overwriting the original string.
>
> This seems to be a recurring requirement in the kernel that is
> currently being solved by several duplicated implementations doing the
> same thing.
>
> Signed-off-by: Markus Mayer <mmayer at broadcom.com>
> ---
>   include/linux/string.h |  1 +
>   lib/string.c           | 14 ++++++++++++++
>   2 files changed, 15 insertions(+)
>
> diff --git a/include/linux/string.h b/include/linux/string.h
> index 26b6f6a..aad605e 100644
> --- a/include/linux/string.h
> +++ b/include/linux/string.h
> @@ -116,6 +116,7 @@ extern void * memchr(const void *,int,__kernel_size_t);
>   #endif
>   void *memchr_inv(const void *s, int c, size_t n);
>   char *strreplace(char *s, char old, char new);
> +char *strtolower(char *s);
>   
>   extern void kfree_const(const void *x);
>   
> diff --git a/lib/string.c b/lib/string.c
> index ed83562..6e3b560 100644
> --- a/lib/string.c
> +++ b/lib/string.c
> @@ -952,3 +952,17 @@ char *strreplace(char *s, char old, char new)
>   	return s;
>   }
>   EXPORT_SYMBOL(strreplace);
> +
> +char *strtolower(char *s)
> +{
> +	char *p;
> +
> +        if (unlikely(!s))
> +                return NULL;
> +
> +	for (p = s; *p; p++)
> +		*p = tolower(*p);
> +
> +	return s;
> +}
> +EXPORT_SYMBOL(strtolower);

Why not char *strtolower(char *dest, const char *src) ? This would avoid 
multiple string iteration in what I believe is a common usage: string 
duplication than strtolower.



More information about the Nouveau mailing list