remove buggy short-string wcsstr implementation; always use twoway
authorRich Felker <dalias@aerifal.cx>
Sat, 11 Aug 2012 22:39:12 +0000 (18:39 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 11 Aug 2012 22:39:12 +0000 (18:39 -0400)
since this interface is rarely used, it's probably best to lean
towards keeping code size down anyway. one-character needles will
still be found immediately by the initial wcschr call anyway.

src/string/wcsstr.c

index 966174f805e55056bc538aa6c527aca6cc8111ca..fc4bacece5d6f891650574b3054fbff05dcbd4be 100644 (file)
@@ -3,14 +3,6 @@
 #include <stdlib.h>
 #include <stdint.h>
 
-static wchar_t *naive_wcsstr(const wchar_t *h, const wchar_t *n)
-{
-       size_t i;
-       for (i=0; n[i] && h[i]; i++)
-       for (   ; n[i] != h[i]; h++, i=0);
-       return n[i] ? 0 : (wchar_t *)h;
-}
-
 #define MAX(a,b) ((a)>(b)?(a):(b))
 #define MIN(a,b) ((a)<(b)?(a):(b))
 
@@ -111,7 +103,6 @@ wchar_t *wcsstr(const wchar_t *h, const wchar_t *n)
        h = wcschr(h, *n);
        if (!h || !n[1]) return (wchar_t *)h;
        if (!h[1]) return 0;
-       if (!n[2] || !n[3] || !n[4]) return naive_wcsstr(h, n);
 
        return twoway_wcsstr(h, n);
 }