Re: [PATCH v10 3/9] strbuf: add a case insensitive starts_with()
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Mar 8, 2018, 00:31 UTC
- Message-ID
- <CACsJy8DWMmC9mvz783XQFHUopbVMH00LoqpW-CQunzg0qgiEEA@mail.gmail.com>
- In-Reply-To
- <20180307173026.30058-4-lars.schneider@autodesk.com>
On Thu, Mar 8, 2018 at 12:30 AM, <lars.schneider@autodesk.com> wrote:
Show 22 quoted lines
> From: Lars Schneider <larsxschneider@gmail.com> > > Check in a case insensitive manner if one string is a prefix of another > string. > > This function is used in a subsequent commit. > > Signed-off-by: Lars Schneider <larsxschneider@gmail.com> > --- > git-compat-util.h | 1 + > strbuf.c | 9 +++++++++ > 2 files changed, 10 insertions(+) > > diff --git a/git-compat-util.h b/git-compat-util.h > index 68b2ad531e..f648da0c11 100644 > --- a/git-compat-util.h > +++ b/git-compat-util.h > @@ -455,6 +455,7 @@ extern void (*get_warn_routine(void))(const char *warn, va_list params); > extern void set_die_is_recursing_routine(int (*routine)(void)); > > extern int starts_with(const char *str, const char *prefix); > +extern int startscase_with(const char *str, const char *prefix);
This name is a bit hard to read. Boost [1] goes with istarts_with. I wonder if it's better. If not I guess either starts_with_case or starts_case_with will improve readability.
[1] http://www.boost.org/doc/libs/1_41_0/doc/html/boost/algorithm/istarts_with.html
Show 26 quoted lines
>
> /*
> * If the string "str" begins with the string found in "prefix", return 1.
> diff --git a/strbuf.c b/strbuf.c
> index b635f0bdc4..5779a2d591 100644
> --- a/strbuf.c
> +++ b/strbuf.c
> @@ -11,6 +11,15 @@ int starts_with(const char *str, const char *prefix)
> return 0;
> }
>
> +int startscase_with(const char *str, const char *prefix)
> +{
> + for (; ; str++, prefix++)
> + if (!*prefix)
> + return 1;
> + else if (tolower(*str) != tolower(*prefix))
> + return 0;
> +}
> +
> int skip_to_optional_arg_default(const char *str, const char *prefix,
> const char **arg, const char *def)
> {
> --
> 2.16.2
>-- Duy