extern void abort (void); | |
extern int inside_main; | |
char * | |
strstr(const char *s1, const char *s2) | |
{ | |
const char *p, *q; | |
#ifdef __OPTIMIZE__ | |
if (inside_main) | |
abort (); | |
#endif | |
/* deliberately dumb algorithm */ | |
for (; *s1; s1++) | |
{ | |
p = s1, q = s2; | |
while (*q && *p) | |
{ | |
if (*q != *p) | |
break; | |
p++, q++; | |
} | |
if (*q == 0) | |
return (char *)s1; | |
} | |
return 0; | |
} |