]> git.ozlabs.org Git - ccan/blob - ccan/memmem/memmem.c
memmem: Trivial module to provide memmem() function
[ccan] / ccan / memmem / memmem.c
1 /* CC0 (Public domain) - see LICENSE file for details */
2
3 #include <string.h>
4 #include <ccan/memmem/memmem.h>
5
6 #if !HAVE_MEMMEM
7 void *memmem(const void *haystack, size_t haystacklen,
8              const void *needle, size_t needlelen)
9 {
10         const char *p;
11
12         if (needlelen > haystacklen)
13                 return NULL;
14
15         p = haystack;
16
17         for (p = haystack;
18              (p + needlelen) <= (haystack + haystacklen);
19              p++)
20                 if (memcmp(p, needle, needlelen) == 0)
21                         return (void *)p;
22
23         return NULL;
24 }
25 #endif