]> git.ozlabs.org Git - ccan/blob - ccan/memmem/memmem.c
4d3c2e62f75f8a9b057976e0ac10f0acd6deff90
[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