X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fstring%2Fstrstr.c;h=915c0a22f6c239125bafbec63571519d9ac52bd7;hb=6fbdeff0e51f6afc38fbb1476a4db81322779da4;hp=4d536a73c378201e33dfecd7033607d3bda45950;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01;p=musl diff --git a/src/string/strstr.c b/src/string/strstr.c index 4d536a73..915c0a22 100644 --- a/src/string/strstr.c +++ b/src/string/strstr.c @@ -1,5 +1,4 @@ #include -#include #include static char *twobyte_strstr(const unsigned char *h, const unsigned char *n) @@ -25,16 +24,6 @@ static char *fourbyte_strstr(const unsigned char *h, const unsigned char *n) return *h ? (char *)h-3 : 0; } -#if 0 -static char *naive_strstr(const char *h, const char *n) -{ - size_t i; - for (i=0; n[i] && h[i]; i++) - for ( ; n[i] != h[i]; h++, i=0); - return n[i] ? 0 : (char *)h; -} -#endif - #define MAX(a,b) ((a)>(b)?(a):(b)) #define MIN(a,b) ((a)<(b)?(a):(b)) @@ -109,7 +98,7 @@ static char *twoway_strstr(const unsigned char *h, const unsigned char *n) if (z-h < l) { /* Fast estimate for MIN(l,63) */ size_t grow = l | 63; - const char *z2 = memchr(z, 0, grow); + const unsigned char *z2 = memchr(z, 0, grow); if (z2) { z = z2; if (z-h < l) return 0; @@ -156,11 +145,11 @@ char *strstr(const char *h, const char *n) h = strchr(h, *n); if (!h || !n[1]) return (char *)h; if (!h[1]) return 0; - if (!n[2]) return twobyte_strstr(h, n); + if (!n[2]) return twobyte_strstr((void *)h, (void *)n); if (!h[2]) return 0; - if (!n[3]) return threebyte_strstr(h, n); + if (!n[3]) return threebyte_strstr((void *)h, (void *)n); if (!h[3]) return 0; - if (!n[4]) return fourbyte_strstr(h, n); + if (!n[4]) return fourbyte_strstr((void *)h, (void *)n); - return twoway_strstr(h, n); + return twoway_strstr((void *)h, (void *)n); }