summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 5f7b202)
raw | patch | inline | side by side (parent: 5f7b202)
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | |
Sat, 29 Dec 2007 19:22:14 +0000 (20:22 +0100) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 2 Jan 2008 10:28:54 +0000 (02:28 -0800) |
Certain codepaths (notably "git log --pretty=format...") use
prefixcmp() extensively, with very short prefixes. In those cases,
calling strlen() is a wasteful operation, so avoid it.
Initial patch by Marco Costalba.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
prefixcmp() extensively, with very short prefixes. In those cases,
calling strlen() is a wasteful operation, so avoid it.
Initial patch by Marco Costalba.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-compat-util.h | patch | blob | history |
diff --git a/git-compat-util.h b/git-compat-util.h
index 79eb10eacba955e0c58a0a540c4ac577f84953e9..7059cbdab7d79ecde6f0533776ba9d73c9b60a1b 100644 (file)
--- a/git-compat-util.h
+++ b/git-compat-util.h
static inline int prefixcmp(const char *str, const char *prefix)
{
- return strncmp(str, prefix, strlen(prefix));
+ for (; ; str++, prefix++)
+ if (!*prefix)
+ return 0;
+ else if (*str != *prefix)
+ return (unsigned char)*prefix - (unsigned char)*str;
}
static inline int strtoul_ui(char const *s, int base, unsigned int *result)