(root)/
binutils-2.41/
libiberty/
strstr.c
       1  /* Simple implementation of strstr for systems without it.
       2     This function is in the public domain.  */
       3  
       4  /*
       5  
       6  @deftypefn Supplemental char* strstr (const char *@var{string}, const char *@var{sub})
       7  
       8  This function searches for the substring @var{sub} in the string
       9  @var{string}, not including the terminating null characters.  A pointer
      10  to the first occurrence of @var{sub} is returned, or @code{NULL} if the
      11  substring is absent.  If @var{sub} points to a string with zero
      12  length, the function returns @var{string}.
      13  
      14  @end deftypefn
      15  
      16  
      17  */
      18  
      19  #include <stddef.h>
      20  
      21  extern char *strchr (const char *, int);
      22  extern int strncmp (const void *, const void *, size_t);
      23  extern size_t strlen (const char *);
      24  
      25  char *
      26  strstr (const char *s1, const char *s2)
      27  {
      28    const char *p = s1;
      29    const size_t len = strlen (s2);
      30  
      31    if (!len)
      32      return s1;
      33  
      34    for (; (p = strchr (p, *s2)) != 0; p++)
      35      {
      36        if (strncmp (p, s2, len) == 0)
      37  	return (char *)p;
      38      }
      39    return (0);
      40  }