12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /*
- * 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
|