diff options
author | René Scharfe <rene.scharfe@lsrfire.ath.cx> | 2007-09-07 00:32:54 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-09-06 22:46:00 -0700 |
commit | b21b9f1de313acb5550c070911ae58c735cdb451 (patch) | |
tree | 1c271b15eff9d772828cd634f3a1f6303bc49726 /git-compat-util.h | |
parent | 89b4256cfbb8d878cc4cd1104ac4865ba1f2a58e (diff) | |
download | git-b21b9f1de313acb5550c070911ae58c735cdb451.tar.gz |
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 <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-compat-util.h')
-rw-r--r-- | git-compat-util.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/git-compat-util.h b/git-compat-util.h index ca0a597a28..1bfbdeb94f 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); #endif +#ifdef NO_MEMMEM +#define memmem gitmemmem +void *gitmemmem(const void *haystack, size_t haystacklen, + const void *needle, size_t needlelen); +#endif + extern void release_pack_memory(size_t, int); static inline char* xstrdup(const char *str) |