Make strstr.c in libiberty ANSI compliant
libiberty/ * strstr.c (strstr): Make implementation ANSI/POSIX compliant.
This commit is contained in:
parent
d50310408f
commit
16b00dc63f
@ -16,26 +16,20 @@ length, the function returns @var{string}.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/* FIXME: The above description is ANSI compiliant. This routine has not
|
||||
been validated to comply with it. -fnf */
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
extern char *strchr (const char *, int);
|
||||
extern int strncmp (const void *, const void *, size_t);
|
||||
extern int memcmp (const void *, const void *, size_t);
|
||||
extern size_t strlen (const char *);
|
||||
|
||||
char *
|
||||
strstr (const char *s1, const char *s2)
|
||||
{
|
||||
const char *p = s1;
|
||||
const size_t len = strlen (s2);
|
||||
|
||||
for (; (p = strchr (p, *s2)) != 0; p++)
|
||||
while (*s1)
|
||||
{
|
||||
if (strncmp (p, s2, len) == 0)
|
||||
return (char *)p;
|
||||
if (!memcmp (s1, s2, len))
|
||||
return (char *)s1;
|
||||
++s1;
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user