diff options
author | Eric Blake <eblake@redhat.com> | 2008-01-12 04:25:55 +0000 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2008-01-12 04:25:55 +0000 |
commit | 40617efc8b9309006af1f0c72425fc4a404f40d4 (patch) | |
tree | 5f97df24fcf156b492ae2123f201de1528abf0cf /newlib/libc/include/string.h | |
parent | 978e84cf602994e44570fbac0c7adcd2ef5690e1 (diff) | |
download | cygnal-40617efc8b9309006af1f0c72425fc4a404f40d4.tar.gz cygnal-40617efc8b9309006af1f0c72425fc4a404f40d4.tar.bz2 cygnal-40617efc8b9309006af1f0c72425fc4a404f40d4.zip |
Make strstr and strcasestr O(n), not O(n^2); add memmem.
* libc/string/str-two-way.h: New file.
* libc/string/memmem.c (memmem): New file.
* libc/include/string.h (memmem): Declare for all platforms.
* libc/string/strstr.c (strstr): Provide O(n) implementation when
not optimizing for space.
* libc/string/strcasestr.c (strcasestr): Likewise.
* libc/string/Makefile.am (ELIX_SOURCES): Rename to...
(ELIX_2_SOURCES): ...this.
(ELIX_4_SOURCES): New category, for memmem.
(lib_a_SOURCES, libstring_la_SOURCES): Build new file.
(CHEWOUT_FILES): Build documentation for memmem.
* libc/string/strings.tex: Include new docs.
Diffstat (limited to 'newlib/libc/include/string.h')
-rw-r--r-- | newlib/libc/include/string.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/newlib/libc/include/string.h b/newlib/libc/include/string.h index 27c314620..99990da8b 100644 --- a/newlib/libc/include/string.h +++ b/newlib/libc/include/string.h @@ -56,9 +56,7 @@ int _EXFUN(ffs,(int)); char *_EXFUN(index,(const char *, int)); _PTR _EXFUN(memccpy,(_PTR, const _PTR, int, size_t)); _PTR _EXFUN(mempcpy,(_PTR, const _PTR, size_t)); -#ifdef __CYGWIN__ -extern void *memmem (__const void *, size_t, __const void *, size_t); -#endif +_PTR _EXFUN(memmem, (const _PTR, size_t, const _PTR, size_t)); char *_EXFUN(rindex,(const char *, int)); char *_EXFUN(stpcpy,(char *, const char *)); char *_EXFUN(stpncpy,(char *, const char *, size_t)); |