aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeija Kijin <doremylover456@gmail.com>2020-11-13 11:51:27 -0700
committerJeff Law <law@redhat.com>2020-11-13 11:53:16 -0700
commit16b00dc63f6106fe0964716ddca9af8a29fbf453 (patch)
tree2e9b9c62281ff5588d50f5ca95e2a3cac66c5fd2
parentd50310408f54e38031f34931e591c63ff36fee09 (diff)
downloadgcc-16b00dc63f6106fe0964716ddca9af8a29fbf453.zip
gcc-16b00dc63f6106fe0964716ddca9af8a29fbf453.tar.gz
gcc-16b00dc63f6106fe0964716ddca9af8a29fbf453.tar.bz2
Make strstr.c in libiberty ANSI compliant
libiberty/ * strstr.c (strstr): Make implementation ANSI/POSIX compliant.
-rw-r--r--libiberty/strstr.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/libiberty/strstr.c b/libiberty/strstr.c
index 60902ea..c6f6849 100644
--- a/libiberty/strstr.c
+++ b/libiberty/strstr.c
@@ -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);
}