aboutsummaryrefslogtreecommitdiffstats
path: root/src/mem/memmem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/memmem.c')
-rw-r--r--src/mem/memmem.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/mem/memmem.c b/src/mem/memmem.c
index 14be8cc..68060cd 100644
--- a/src/mem/memmem.c
+++ b/src/mem/memmem.c
@@ -6,5 +6,15 @@
#include <mem.h>
-extern inline void *calt_memmem(void const *haystack, size_t haystacklen,
- void const *needle, size_t needlelen);
+void *calt_memmem(void const *haystack, size_t haystacklen,
+ void const *needle, size_t needlelen) {
+ unsigned char const *p = haystack;
+ unsigned char const *end = p + haystacklen - needlelen;
+ while (p <= end) {
+ if (calt_memcmp(p, needle, needlelen) == 0) {
+ return (void *)p;
+ }
+ p++;
+ }
+ return NULL;
+}