/*************************************************************************** * __________ __ ___. * Open \______ \ ____ ____ | | _\_ |__ _______ ___ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ * \/ \/ \/ \/ \/ * * Copyright (C) 2002 Manuel Novoa III * Copyright (C) 2000-2005 Erik Andersen * * Licensed under the LGPL v2.1, code originally in uclibc * ****************************************************************************/ #include /* NOTE: This is the simple-minded O(len(s1) * len(s2)) worst-case approach. */ char *strstr(const char *s1, const char *s2) { register const char *s = s1; register const char *p = s2; do { if (!*p) { return (char *) s1; } if (*p == *s) { ++p; ++s; } else { p = s2; if (!*s) { return NULL; } s = ++s1; } } while (1); }