From: Junio C Hamano Date: Thu, 27 Feb 2014 22:16:13 GMT Subject: Re: [PATCH] Rewrite git-compat-util.h:skip_prefix() as a loop Message-ID: In-Reply-To: <87k3cg47o6.fsf@fencepost.gnu.org> David Kastrup writes: > Junio C Hamano writes: > >> Sun He writes: >> >>> Signed-off-by: Sun He >>> --- >>> git-compat-util.h | 4 ++-- >>> 1 files changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/git-compat-util.h b/git-compat-util.h >>> index cbd86c3..4daa6cf 100644 >>> --- a/git-compat-util.h >>> +++ b/git-compat-util.h >>> @@ -357,8 +357,8 @@ 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; >>> + while( *prefix != '\0' && *str++ == *prefix++ ); >>> + return *prefix == '\0' ? str : NULL; >> >> Documentation/CodingGuidelines? > > Mostly relevant for tabification here, not helping much otherwise. "Imitate existing code" would let you spot that we have SP outside the () pair, not inside, for controls like while/for/if, and we usually do not explicitly compare things with 0, NULL or '\0'. Together with the "empty statement should occupy its own line" you mentioned, I tend to agree with you that some people may benefit from them explicitly spelled out.