mem0 && mem && ... is redundant since mem can only be nonzero when mem0 is nonzero.
@@ -100,7 +100,7 @@ static char *twoway_memmem(const unsigned char *h, const unsigned char *z, const
if (BITOP(byteset, h[l-1], &)) {
k = l-shift[h[l-1]];
if (k) {
- if (mem0 && mem && k < p) k = l-p;
+ if (mem && k < p) k = l-p;
h += k;
mem = 0;
continue;
@@ -110,7 +110,7 @@ static char *twoway_strstr(const unsigned char *h, const unsigned char *n)
//printf("adv by %zu (on %c) at [%s] (%zu;l=%zu)\n", k, h[l-1], h, shift[h[l-1]], l);