Skip to content

Commit

Permalink
Make strstr.c in libiberty ANSI compliant
Browse files Browse the repository at this point in the history
libiberty/

	* strstr.c (strstr): Make implementation ANSI/POSIX compliant.
  • Loading branch information
Seija Kijin authored and Jeff Law committed Nov 13, 2020
1 parent d503104 commit 16b00dc
Showing 1 changed file with 5 additions and 11 deletions.
16 changes: 5 additions & 11 deletions libiberty/strstr.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

0 comments on commit 16b00dc

Please sign in to comment.