Re: [PATCH] use strpbrk(3) to search for characters from a given set
- From
- Martin Ågren <martin.agren@gmail.com>
- Date
- Feb 23, 2020, 09:01 UTC
- Message-ID
- <CAN0heSpwNg0MKN7SCRi9b2CnxwQdCwxpc4LEkeVV4f9mxtYkLA@mail.gmail.com>
- In-Reply-To
- <4140dade-d999-a74a-1f8e-06eedb84ed20@web.de>
On Sat, 22 Feb 2020 at 19:53, René Scharfe <l.s.r@web.de> wrote:
Show 13 quoted lines
> > We can check if certain characters are present in a string by calling > strchr(3) on each of them, or we can pass them all to a single > strpbrk(3) call. The latter is shorter, less repetitive and slightly > more efficient, so let's do that instead. > > Signed-off-by: René Scharfe <l.s.r@web.de> > --- > builtin/show-branch.c | 2 +- > compat/mingw.c | 2 +- > mailinfo.c | 3 +-- > t/helper/test-windows-named-pipe.c | 2 +- > 4 files changed, 4 insertions(+), 5 deletions(-)
I failed to identify any other spots, except for some hits in test data (in t/t4256/1/) which are probably better left alone.
> - if (strchr(av, '*') || strchr(av, '?') || strchr(av, '[')) {
> + if (strpbrk(av, "*?[")) {Indeed, the `strchr()` calls use the same haystack `av`, as opposed to `av`/`aw` or `av++`/`av++` or so. All conversions in this patch look good to me.
Martin