From: Junio C Hamano Date: Mon, 03 Mar 2014 23:35:30 GMT Subject: Re: [PATCH v3] skip_prefix: rewrite so that prefix is scanned once Message-ID: In-Reply-To: <87bnxmkguw.fsf@fencepost.gnu.org> David Kastrup writes: > 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.