Re: [PATCH v3] skip_prefix: rewrite so that prefix is scanned once
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 3, 2014, 23:35 UTC
- Message-ID
- <xmqqk3can9dp.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <87bnxmkguw.fsf@fencepost.gnu.org>
David Kastrup <dak@gnu.org> writes:
Show 12 quoted lines
> How about a function body of
>
> do {
> if (!*prefix)
> return str;
> } while (*str++ == *prefix++);
> return NULL;
>
> I'm not too fond of while (1) and tend to use for (;;) instead, but that
> may again partly be due to some incredibly non-optimizing compiler back
> in the days of my youth. At any rate, the do-while loop seems a bit
> brisker.I do not have strong preference between "while (1)" and "for (;;)", but I tend to agree
for (;; prefix++, str++) {
if (!*prefix)
return str;
if (*str != *prefix)
return NULL;
}may be easier to read than what I suggested. Your do-while loop is concise and very readable, so let's take that one (I'll forge your Sign-off ;-)).
I haven't looked at the generated assembly of any of these, though.