| /* |
| * Copyright (C) 2002 Manuel Novoa III |
| * Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> |
| * |
| * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. |
| */ |
| |
| #include "_string.h" |
| |
| #ifdef WANT_WIDE |
| # define Wstrstr wcsstr |
| #else |
| # define Wstrstr strstr |
| #endif |
| |
| /* NOTE: This is the simple-minded O(len(s1) * len(s2)) worst-case approach. */ |
| |
| Wchar *Wstrstr(const Wchar *s1, const Wchar *s2) |
| { |
| register const Wchar *s = s1; |
| register const Wchar *p = s2; |
| |
| do { |
| if (!*p) { |
| return (Wchar *) s1;; |
| } |
| if (*p == *s) { |
| ++p; |
| ++s; |
| } else { |
| p = s2; |
| if (!*s) { |
| return NULL; |
| } |
| s = ++s1; |
| } |
| } while (1); |
| } |
| #ifndef WANT_WIDE |
| libc_hidden_def(strstr) |
| #elif defined __UCLIBC_SUSV3_LEGACY__ |
| strong_alias(wcsstr,wcswcs) |
| #endif |