path: root/git-compat-util.h
diff options
authorRené Scharfe <>2007-09-06 22:32:54 (GMT)
committerJunio C Hamano <>2007-09-07 05:46:00 (GMT)
commitb21b9f1de313acb5550c070911ae58c735cdb451 (patch)
tree1c271b15eff9d772828cd634f3a1f6303bc49726 /git-compat-util.h
parent89b4256cfbb8d878cc4cd1104ac4865ba1f2a58e (diff)
add memmem()
memmem() is a nice GNU extension for searching a length limited string in another one. This compat version is based on the version found in glibc 2.2 (GPL 2); I only removed the optimization of checking the first char by hand, and generally tried to keep the code simple. We can add it back if memcmp shows up high in a profile, but for now I prefer to keep it (almost trivially) simple. Since I don't really know which platforms beside those with a glibc have their own memmem(), I used a heuristic: if NO_STRCASESTR is set, then NO_MEMMEM is set, too. Signed-off-by: Rene Scharfe <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'git-compat-util.h')
1 files changed, 6 insertions, 0 deletions
diff --git a/git-compat-util.h b/git-compat-util.h
index ca0a597..1bfbdeb 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -172,6 +172,12 @@ extern uintmax_t gitstrtoumax(const char *, char **, int);
extern const char *githstrerror(int herror);
+#ifdef NO_MEMMEM
+#define memmem gitmemmem
+void *gitmemmem(const void *haystack, size_t haystacklen,
+ const void *needle, size_t needlelen);
extern void release_pack_memory(size_t, int);
static inline char* xstrdup(const char *str)