Re: [PATCH] rev-parse: match @{u}, @{push} and ^{<type>} case-insensitively
- From
Jeff King <peff@peff.net>
- Date
- Mar 21, 2017, 19:43 UTC
- Message-ID
- <20170321194330.5nghzisbud5yy6wq@sigill.intra.peff.net>
- In-Reply-To
- <CACBZZX6g694p9WkiK75+HJCLUPwjpdQhjBrAU713KahAKm53hA@mail.gmail.com>
On Tue, Mar 21, 2017 at 08:19:34PM +0100, Ævar Arnfjörð Bjarmason wrote:
Show 23 quoted lines
> On Sat, Mar 18, 2017 at 11:34 PM, Ævar Arnfjörð Bjarmason
> <avarab@gmail.com> wrote:
>
> > The new starts_with_case() function is a copy of the existing adjacent
> > starts_with(), just with a tolower() in the "else if".
> > [...]
> > +int starts_with_case(const char *str, const char *prefix)
> > +{
> > + for (; ; str++, prefix++)
> > + if (!*prefix)
> > + return 1;
> > + else if (tolower(*str) != tolower(*prefix))
> > + return 0;
> > +}
> > +
> > /*
>
> One thing I'd like feedback on is whether I should be adding this to
> strbuf.c. There are >300 uses of starts_with(), but sha1_name.c will
> be the only one using this modified starts_with_case() function.
> Wouldn't it be better to just add it to sha1_name.c rather than
> expanding the strbuf API with something that'll likely be used by
> nothing else for a while?I was thinking that I had written this same function before (in a patch that didn't end up merged), but it was actually the related skip_prefix_icase(). I'm fine with it either next to starts_with() or as a static next to its callers.
-Peff