OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [libiberty/] [strstr.c] - Diff between revs 154 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 154 Rev 816
/* Simple implementation of strstr for systems without it.
/* Simple implementation of strstr for systems without it.
   This function is in the public domain.  */
   This function is in the public domain.  */
 
 
/*
/*
 
 
@deftypefn Supplemental char* strstr (const char *@var{string}, const char *@var{sub})
@deftypefn Supplemental char* strstr (const char *@var{string}, const char *@var{sub})
 
 
This function searches for the substring @var{sub} in the string
This function searches for the substring @var{sub} in the string
@var{string}, not including the terminating null characters.  A pointer
@var{string}, not including the terminating null characters.  A pointer
to the first occurrence of @var{sub} is returned, or @code{NULL} if the
to the first occurrence of @var{sub} is returned, or @code{NULL} if the
substring is absent.  If @var{sub} points to a string with zero
substring is absent.  If @var{sub} points to a string with zero
length, the function returns @var{string}.
length, the function returns @var{string}.
 
 
@end deftypefn
@end deftypefn
 
 
 
 
*/
*/
 
 
 
 
/* FIXME:  The above description is ANSI compiliant.  This routine has not
/* FIXME:  The above description is ANSI compiliant.  This routine has not
   been validated to comply with it.  -fnf */
   been validated to comply with it.  -fnf */
 
 
#include <stddef.h>
#include <stddef.h>
 
 
extern char *strchr (const char *, int);
extern char *strchr (const char *, int);
extern int strncmp (const void *, const void *, size_t);
extern int strncmp (const void *, const void *, size_t);
extern size_t strlen (const char *);
extern size_t strlen (const char *);
 
 
char *
char *
strstr (const char *s1, const char *s2)
strstr (const char *s1, const char *s2)
{
{
  const char *p = s1;
  const char *p = s1;
  const size_t len = strlen (s2);
  const size_t len = strlen (s2);
 
 
  for (; (p = strchr (p, *s2)) != 0; p++)
  for (; (p = strchr (p, *s2)) != 0; p++)
    {
    {
      if (strncmp (p, s2, len) == 0)
      if (strncmp (p, s2, len) == 0)
        return (char *)p;
        return (char *)p;
    }
    }
  return (0);
  return (0);
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.