1 extern void abort (void);
2 typedef __SIZE_TYPE__
size_t;
3 extern size_t strlen(const char *);
4 extern char *strchr(const char *, int);
5 extern int strcmp(const char *, const char *);
6 extern int strncmp(const char *, const char *, size_t);
7 extern int inside_main
;
11 my_strstr (const char *s1
, const char *s2
)
13 const size_t len
= strlen (s2
);
16 /* If optimizing, we should be called only in the strstr (foo + 2, p)
17 case. All other cases should be optimized. */
19 if (s2
!= p
|| strcmp (s1
, "hello world" + 2) != 0)
24 for (s1
= strchr (s1
, *s2
); s1
; s1
= strchr (s1
+ 1, *s2
))
25 if (strncmp (s1
, s2
, len
) == 0)
31 strstr (const char *s1
, const char *s2
)
36 return my_strstr (s1
, s2
);