This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Aug 26 21:28, Sichen Zhao wrote: > --- > newlib/libc/string/strnstr.c | 24 ++++++++---------------- > 1 file changed, 8 insertions(+), 16 deletions(-) > > diff --git a/newlib/libc/string/strnstr.c b/newlib/libc/string/strnstr.c > index da5e5bd..7c87bbd 100644 > --- a/newlib/libc/string/strnstr.c > +++ b/newlib/libc/string/strnstr.c > @@ -44,22 +44,14 @@ __FBSDID("$FreeBSD: head/lib/libc/string/strnstr.c 251069 2013-05-28 20:57:40Z e > * first slen characters of s. > */ > char * > -strnstr(const char *s, const char *find, size_t slen) > +strnstr(const char *haystack, const char *needle, size_t haystack_len) > { > - char c, sc; > - size_t len; > + size_t needle_len = strnlen(needle, haystack_len); > > - if ((c = *find++) != '\0') { > - len = strlen(find); > - do { > - do { > - if (slen-- < 1 || (sc = *s++) == '\0') > - return (NULL); > - } while (sc != c); > - if (len > slen) > - return (NULL); > - } while (strncmp(s, find, len) != 0); > - s--; > - } > - return ((char *)s); > + if (needle_len < haystack_len || !needle[needle_len]) { > + char *x = memmem(haystack, haystack_len, needle, needle_len); > + if (x && !memchr(haystack, 0, x - haystack)) > + return x; > + } > + return NULL; > } > -- > 2.7.4 Input needed: Given this is a complete reimplementation not based on FreeBSD code at all, and given the code has been contributed by Eric, shouldn't we remove the entire copyright header and move this under newlib default licensing? Thanks, Corinna -- Corinna Vinschen Cygwin Maintainer Red Hat
Attachment:
signature.asc
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |