This commit was generated by cvs2svn to track changes on a CVS vendor
[external/binutils.git] / libiberty / strstr.c
1 /* Simple implementation of strstr for systems without it.
2    This function is in the public domain.  */
3
4 /*
5
6 NAME
7
8         strstr -- locate first occurance of a substring
9
10 SYNOPSIS
11
12         #include <string.h>
13
14         char *strstr (char *s1, char *s2)
15
16 DESCRIPTION
17
18         Locates the first occurance in the string pointed to by S1 of
19         the string pointed to by S2.  Returns a pointer to the substring
20         found, or a NULL pointer if not found.  If S2 points to a string
21         with zero length, the function returns S1.
22         
23 BUGS
24
25 */
26
27
28 /* FIXME:  The above description is ANSI compiliant.  This routine has not
29    been validated to comply with it.  -fnf */
30
31 char *
32 strstr (s1, s2)
33   char *s1, *s2;
34 {
35   register char *p = s1;
36   extern char *strchr ();
37   extern int strncmp ();
38 #if __GNUC__==2
39   extern __SIZE_TYPE__ strlen ();
40 #endif
41   register int len = strlen (s2);
42
43   for (; (p = strchr (p, *s2)) != 0; p++)
44     {
45       if (strncmp (p, s2, len) == 0)
46         {
47           return (p);
48         }
49     }
50   return (0);
51 }