Make strstr.c in libiberty ANSI compliant

libiberty/

	* strstr.c (strstr): Make implementation ANSI/POSIX compliant.
This commit is contained in:
Seija Kijin 2020-11-13 11:51:27 -07:00 committed by Jeff Law
parent d50310408f
commit 16b00dc63f

View File

@ -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);
}