Subject: Re: [PATCH v8 03/12] Move lower case functions into wrapper.c

From: Junio C Hamano <[email-masked]>
Date: Wed, 26 Mar 2014 16:07:34 -0700

Christian Couder <[email-masked]> writes:

> diff --git a/wrapper.c b/wrapper.c
> index 0cc5636..c46026a 100644
> --- a/wrapper.c
> +++ b/wrapper.c
> @@ -455,3 +455,17 @@ struct passwd *xgetpwuid_self(void)
>  		    errno ? strerror(errno) : _("no such user"));
>  	return pw;
>  }
> +
> +void lowercase(char *p)
> +{
> +	for (; *p; p++)
> +		*p = tolower(*p);
> +}
> +
> +char *xstrdup_tolower(const char *str)
> +{
> +	char *dup = xstrdup(str);
> +	lowercase(dup);
> +	return dup;
> +}
> +

As a pure code-movement step, this may be OK, but I am not sure if
both of them want to be public functions in this shape.

Perhaps

char *downcase_copy(const char *str)
{
	char *copy = xmalloc(strlen(str) + 1);
        int i;
        for (i = 0; str[i]; i++)
        	copy[i] = tolower(str[i]);
	copy[i] = '\0';
        return copy;
}

may avoid having to copy things twice.  Do you need the other
function exposed?