Files
sbase/libutil/strmem.c
FRIGN 3396088666 Implement strmem() and use it in join(1)
We want our delimiters to also contain 0 characters and have them
handled gracefully.
To accomplish this, I wrote a function strmem(), which looks for a
certain, arbitrarily long memory subset in a given string.
memmem() is a GNU extension and forces you to call strlen every time.
2016-02-26 09:54:46 +00:00

24 lines
417 B
C

/* See LICENSE file for copyright and license details. */
#include <stddef.h>
#include <string.h>
char *
strmem(char *haystack, char *needle, size_t needlelen)
{
size_t i;
for (i = 0; i < needlelen; i++) {
if (haystack[i] == '\0') {
return NULL;
}
}
for (; haystack[i]; i++) {
if (!(memcmp(haystack + i - needlelen, needle, needlelen))) {
return (haystack + i - needlelen);
}
}
return NULL;
}