From: Duy Nguyen Date: Mon, 03 Mar 2014 23:37:25 GMT Subject: Re: [PATCH v3] skip_prefix: rewrite so that prefix is scanned once Message-ID: In-Reply-To: On Tue, Mar 4, 2014 at 5:43 AM, Junio C Hamano wrote: > diff --git a/git-compat-util.h b/git-compat-util.h > index cbd86c3..68ffaef 100644 > --- a/git-compat-util.h > +++ b/git-compat-util.h > @@ -357,8 +357,14 @@ extern int suffixcmp(const char *str, const char *suffix); > > static inline const char *skip_prefix(const char *str, const char *prefix) > { > - size_t len = strlen(prefix); > - return strncmp(str, prefix, len) ? NULL : str + len; Just a note. gcc does optimize strlen("abcdef") to 6, and with that information at compile time built-in strncmp might do better. > + while (1) { > + if (!*prefix) > + return str; > + if (*str != *prefix) > + return NULL; > + prefix++; > + str++; > + } > } > > #if defined(NO_MMAP) || defined(USE_WIN32_MMAP) -- Duy