]> git.ozlabs.org Git - ccan/blobdiff - ccan/memmem/memmem.c
memmem: Trivial module to provide memmem() function
[ccan] / ccan / memmem / memmem.c
diff --git a/ccan/memmem/memmem.c b/ccan/memmem/memmem.c
new file mode 100644 (file)
index 0000000..4d3c2e6
--- /dev/null
@@ -0,0 +1,25 @@
+/* CC0 (Public domain) - see LICENSE file for details */
+
+#include <string.h>
+#include <ccan/memmem/memmem.h>
+
+#if !HAVE_MEMMEM
+void *memmem(const void *haystack, size_t haystacklen,
+            const void *needle, size_t needlelen)
+{
+       const char *p;
+
+       if (needlelen > haystacklen)
+               return NULL;
+
+       p = haystack;
+
+       for (p = haystack;
+            (p + needlelen) <= (haystack + haystacklen);
+            p++)
+               if (memcmp(p, needle, needlelen) == 0)
+                       return (void *)p;
+
+       return NULL;
+}
+#endif