Browse Source

Update goodbyedpi.c

pull/319/head
SashaXser 2 years ago
committed by GitHub
parent
commit
b7d3bf4abe
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 15
      src/goodbyedpi.c

15
src/goodbyedpi.c

@ -234,7 +234,7 @@ static void finalize_filter_strings() {
} }
static char* dumb_memmem(const char* haystack, unsigned int hlen, static char* dumb_memmem(const char* haystack, unsigned int hlen,
const char* needle, unsigned int nlen) const char* needle, unsigned int nlen)
{ {
if (nlen > hlen) return NULL; if (nlen > hlen) return NULL;
if (nlen == 0) return (char*)haystack; if (nlen == 0) return (char*)haystack;
@ -243,17 +243,10 @@ static char* dumb_memmem(const char* haystack, unsigned int hlen,
for (size_t i = 0; i < 256; ++i) skip[i] = nlen; for (size_t i = 0; i < 256; ++i) skip[i] = nlen;
for (size_t i = 0; i < nlen - 1; ++i) skip[(unsigned char)needle[i]] = nlen - i - 1; for (size_t i = 0; i < nlen - 1; ++i) skip[(unsigned char)needle[i]] = nlen - i - 1;
size_t i = nlen - 1; for (size_t i = nlen - 1; i < hlen; i += skip[(unsigned char)haystack[i]]) {
while (i < hlen) { if (memcmp(haystack + i - nlen + 1, needle, nlen) == 0) {
size_t j = nlen - 1; return (char*)(haystack + i - nlen + 1);
while (j >= 0 && haystack[i] == needle[j]) {
--i;
--j;
} }
if (j == (size_t)-1) {
return (char*)(haystack + i + 1);
}
i += skip[(unsigned char)haystack[i]];
} }
return NULL; return NULL;

Loading…
Cancel
Save