diff options
author | Seija Kijin <doremylover456@gmail.com> | 2020-11-13 11:51:27 -0700 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 2020-11-13 11:53:16 -0700 |
commit | 16b00dc63f6106fe0964716ddca9af8a29fbf453 (patch) | |
tree | 2e9b9c62281ff5588d50f5ca95e2a3cac66c5fd2 | |
parent | d50310408f54e38031f34931e591c63ff36fee09 (diff) | |
download | gcc-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.c | 16 |
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); } |