summaryrefslogtreecommitdiff
path: root/m4/string_h.m4
Commit message (Collapse)AuthorAgeFilesLines
...
* New module 'strdup-posix'.Bruno Haible2008-09-211-4/+5
|
* strverscmp: migrate from "strverscmp.h" to <string.h>Eric Blake2008-08-191-1/+3
| | | | | | | | | | | | | | | | | | | * modules/string (Makefile.am): Add new hooks. * modules/strverscmp (Files): Remove strverscmp.h. (Depends-on): Add string. (configure.ac): Add indicator. (Include): Mention new header. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Provide new defaults. * m4/strverscmp.m4 (gl_FUNC_STRVERSCMP): Inform string module of results. * lib/strverscmp.h: Delete. * lib/string.in.h (strverscmp): Provide declaration, when needed. * tests/test-strverscmp.c (includes): Adjust client. * lib/check-version.c (includes): Likewise. * NEWS: Document the change. Signed-off-by: Eric Blake <ebb9@byu.net>
* Add rawmemchr module, matching glibc.Eric Blake2008-04-281-0/+2
| | | | | | | | | | | | | | | | | * modules/string (Makefile.am): New indicator. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Set it. * lib/string.in.h (rawmemchr): Declare when appropriate. * modules/rawmemchr: New file. * m4/rawmemchr.m4: Likewise. * lib/rawmemchr.c: Likewise. * modules/rawmemchr-tests: Likewise. * tests/test-rawmemchr.c: Likewise. * doc/glibc-functions/rawmemchr.texi (rawmemchr): Document module. * modules/strchrnul (Depends-on): Add rawmemchr. * lib/strchrnul.c (strchrnul): Optimize a corner case. Signed-off-by: Eric Blake <ebb9@byu.net>
* Convert strcasestr module to use Two-Way algorithm.Eric Blake2008-01-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | * modules/strcasestr-simple: New module, based on the old strcasestr, but with Two-Way rather than KMP. * modules/strcasestr (Depends-on): Change to strcasestr-simple. * lib/string.in.h (rpl_strcasestr): Declare. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Check for linear performance. * lib/strcasestr.c (strcasestr): Simplify, and avoid malloc. * modules/string (Makefile.am): Support strcasestr. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Likewise. * modules/strcasestr-tests (Depends-on): Check for alarm. * tests/test-strcasestr.c: Augment test. * lib/str-two-way.h: Clean up stray macro. * NEWS: Document new module. * MODULES.html.sh (string handling): Likewise. * doc/functions/strcasestr.texi: New file. * doc/gnulib.texi (Function Substitutes): New node. Move memmem here, since it is not a POSIX function. Signed-off-by: Eric Blake <ebb9@byu.net>
* Replace strsignal if it does not work fine.Bruno Haible2008-01-151-1/+2
|
* New module 'strsignal'.Colin Watson2008-01-141-0/+2
|
* Avoid quadratic strstr implementations.Eric Blake2008-01-101-2/+4
| | | | | | | | | | | | | | | | * lib/strstr.c: New file. * m4/strstr.m4: Likewise. * modules/strstr: Likewise. * modules/strstr-tests: Likewise. * tests/test-strstr.c: Likewise. * lib/string.in.h (rpl_strstr): Declare. (memmem) [GNULIB_POSIXCHECK]: Document speed issue. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Support strstr. * modules/string (Makefile.am): Likewise. * MODULES.html.sh (string handling): Mention new module. * doc/functions/strstr.texi (strstr): Document the bug. Signed-off-by: Eric Blake <ebb9@byu.net>
* Fix memmem to avoid O(n^2) worst-case complexity.Eric Blake2007-12-201-0/+3
| | | | | | | | | | | | | | | | | | | * lib/memmem.c (knuth_morris_pratt): New function. (memmem): Use it if first few naive iterations fail. * m4/memmem.m4 (gl_FUNC_MEMMEM): Detect cygwin bug. * modules/memcmp (License): Set to LGPLv2+, not LGPL. * modules/memchr (License): Likewise. * modules/memmem (Depends-on): Add memcmp, memchr, stdbool, and malloca. * tests/test-memmem.c: Rewrite, borrowing ideas from test-mbsstr1.c; the old version wouldn't even compile! * modules/memmem-tests: New file. * lib/string.in.h (rpl_memmem): Add declaration. * modules/string (Makefile.am): Substitute REPLACE_MEMMEM. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Default for REPLACE_MEMMEM. Signed-off-by: Eric Blake <ebb9@byu.net>
* Move declarations of str{,n}casecmp from <string.h> to <strings.h>.Bruno Haible2007-12-031-2/+0
|
* Fix strerror on Interix.Eric Blake2007-09-251-0/+3
| | | | | | | | | | | | | | | | | | | | | * lib/string_.h (strerror): Declare replacement. * doc/functions/strerror.texi (strerror): Document the Interix shortcoming. * modules/string (Makefile.am): Support new hooks. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Add new hooks. * m4/strerror.m4 (gl_FUNC_STRERROR): Defer to gl_FUNC_STRERROR_SEPARATE. (gl_FUNC_STRERROR_SEPARATE): Check for Interix bug. * lib/strerror.c (rpl_strerror): Provide replacement. * modules/strerror (Depends-on): Add string. (configure.ac): Detect use of module. * tests/test-strerror.c: New file. * modules/strerror-tests: New test module. * modules/argp (Depends-on): Add strerror. * modules/error (Depends-on): Likewise. Reported by Martin Koeppe. Signed-off-by: Eric Blake <ebb9@byu.net>
* * m4/include_next.m4 (gl_INCLUDE_NEXT): Define and AC_SUBSTPaul Eggert2007-06-211-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | INCLUDE_NEXT. (gl_CHECK_NEXT_HEADERS): New macro. * m4/fcntl_h.m4 (gl_FCNTL_H): use gl_CHECK_NEXT_HEADERS instead of the obsolescent gl_ABSOLUTE_HEADER. * m4/float_h.m4 (gl_FLOAT_H): Likewise. * m4/inttypes.m4 (gl_INTTYPES_H): Likewise. * m4/math_h.m4 (gl_MATH_H): Likewise. * m4/search_h.m4 (gl_SEARCH_H): Likewise. * m4/signal_h.m4 (gl_SIGNAL_H): Likewise. * m4/stdint.m4 (gl_STDINT_H): Likewise. * m4/stdio_h.m4 (gl_STDIO_H): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H): Likewise. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Likewise. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise. * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Likewise. * m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H): Likewise. * m4/wchar.m4 (gl_WCHAR_H): Likewise. * m4/wctype.m4 (gl_WCTYPE_H): Likewise. * m4/inttypes.m4 (gl_INTTYPES_H): Define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H to avoid the problem of unclean builds, since ABSOLUTE_INTTYPES_H is no longer being defined. * m4/stdint.m4 (gl_STDINT_H): Likewise, for _GL_JUST_INCLUDE_SYSTEM_STDINT_H. * lib/fcntl_.h: Use @INCLUDE_NEXT@ @NEXT_foo_H@ rather than @HAVE_INCLUDE_NEXT@ and @ABSOLUTE_foo_H@. * lib/float_.h: Likewise. * lib/inttypes_.h: Likewise. * lib/math_.h: Likewise. * lib/search_.h: Likewise. * lib/signal_.h: Likewise. * lib/stdint_.h: Likewise. * lib/stdio_.h: Likewise. * lib/stdlib_.h: Likewise. * lib/string_.h: Likewise. * lib/sys_stat_.h: Likewise. * lib/sys_time_.h: Likewise. * lib/time_.h: Likewise. * lib/unistd_.h: Likewise. * lib/wchar_.h: Likewise. * lib/wctype_.h: Likewise. * modules/fcntl (Depends-on): Depend on absolute-header, not include_next. (Makefile): Substitute INCLUDE_NEXT and NEXT_foo_H, not HAVE_INCLUDE_NEXT and ABSOLUTE_foo_H. * modules/float: Likewise. * modules/inttypes: Likewise. * modules/math: Likewise. * modules/search: Likewise. * modules/signal: Likewise. * modules/stdint: Likewise. * modules/stdio: Likewise. * modules/stdlib: Likewise. * modules/string: Likewise. * modules/sys_stat: Likewise. * modules/sys_time: Likewise. * modules/time: Likewise. * modules/unistd: Likewise. * modules/wchar: Likewise. * modules/wctype: Likewise. * modules/sys_stat: Change maintainer to "all". * modules/unistd: Likewise.
* New module 'mbsnlen'.Bruno Haible2007-06-111-0/+1
|
* Merge gl_HEADER_STRING_H_DEFAULTS and gl_STRING_MODULE_INDICATOR_DEFAULTS intoBruno Haible2007-02-181-24/+19
| | | | a single macro.
* New module 'mbspcasecmp'.Bruno Haible2007-02-151-0/+1
|
* New module 'mbsncasecmp'.Bruno Haible2007-02-151-0/+1
|
* New module 'mbslen'.Bruno Haible2007-02-111-0/+1
|
* New module 'mbssep'.Bruno Haible2007-02-061-0/+1
|
* New module 'mbstok_r'.Bruno Haible2007-02-051-0/+1
|
* New module 'mbsspn'.Bruno Haible2007-02-051-0/+1
|
* New module 'mbspbrk'.Bruno Haible2007-02-051-0/+1
|
* New module 'mbscspn'.Bruno Haible2007-02-051-0/+1
|
* New module 'mbscasestr'. Reduced goal of 'strcasestr'.Bruno Haible2007-02-051-1/+2
|
* Addendum to last patch.Bruno Haible2007-02-051-1/+1
|
* Simplify handling of strncasecmp. Improve link warning.Bruno Haible2007-02-051-1/+0
|
* New module 'mbscasecmp'. strcasecmp is not expected to work with multibyteBruno Haible2007-02-051-0/+1
| | | | strings.
* New module 'mbsstr'. Remove module 'strstr'.Bruno Haible2007-02-051-2/+1
|
* New module 'mbsrchr'.Bruno Haible2007-02-051-0/+1
|
* New module 'mbschr'.Bruno Haible2007-02-051-0/+1
|
* * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): Correct m4 usageEric Blake2007-02-011-1/+1
| | | | | | bug. * modules/string (Makefile.am): Remove redundant replacement. * modules/regex (Depends-on): Add mempcpy.
* Enforce the use of gnulib modules for unportable <string.h> functions.Bruno Haible2007-02-011-0/+27
|
* Enforce ordering constraints between gl_HEADER_STRING_H_DEFAULTS and theBruno Haible2007-01-271-0/+4
| | | | statements that assign non-default values.
* Declare strcasestr() in the <string.h> replacement, rather than inBruno Haible2007-01-271-0/+1
| | | | strcasestr.h.
* * doc/gnulib-tool.texi (Initial import): Update to match currentPaul Eggert2007-01-261-0/+41
behavior with strdup module. * lib/.cppi-disable: Remove strcase.h, strdup.h, strndup.h, strnlen.h. * lib/memmem.h: Remove; all uses removed. This is now done by <string.h>. * lib/mempcpy.h: Likewise. * lib/memrchr.h: Likewise. * lib/stpcpy.h: Likewise. * lib/stpncpy.h: Likewise. * lib/strcase.h: Likewise. * lib/strchrnul.h: Likewise. * lib/strdup.h: Likewise. * lib/strndup.h: Likewise. * lib/strnlen.h: Likewise. * lib/strpbrk.h: Likewise. * lib/strsep.h: Likewise. * lib/strstr.h: Likewise. * lib/strtok_r.h: Likewise. * lib/string_.h: New file. * lib/argp-namefrob.h: Don't include no-longer-existent include files. Rely on <string.h> instead. * lib/canon-host.c: Likewise. * lib/chdir-long.c: Likewise. * lib/concatpath.c: Likewise. * lib/exclude.c: Likewise. * lib/fchdir.c: Likewise. * lib/getaddrinfo.c: Likewise. * lib/getcwd.c: Likewise. * lib/getsubopt.c: Likewise. * lib/glob.c: Likewise. * lib/hard-locale.c: Likewise. * lib/iconvme.c: Likewise. * lib/javacomp.c: Likewise. * lib/mempcpy.c: Likewise. * lib/memrchr.c: Likewise. * lib/regex_internal.h: Likewise. * lib/stpncpy.c: Likewise. * lib/strcasecmp.c: Likewise. * lib/strchrnul.c: Likewise. * lib/strdup.c: Likewise. * lib/striconv.c: Likewise. * lib/striconveh.c: Likewise. * lib/striconveha.c: Likewise. * lib/strncasecmp.c: Likewise. * lib/strndup.c: Likewise. * lib/strnlen.c: Likewise. * lib/strsep.c: Likewise. * lib/strstr.c: Likewise. * lib/strtok_r.c: Likewise. * lib/userspec.c: Likewise. * lib/w32spawn.h: Likewise. * lib/xstrndup.c: Likewise. * lib/mountlist.c (strstr): Remove decl. * m4/string_h.m4: New file. * m4/memmem.m4 (gl_FUNC_MEMMEM): Set HAVE_DECL_MEMMEM if necessary. * m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Set HAVE_MEMPCPY if necessary. * m4/memrchr.m4 (gl_FUNC_MEMRCHR): Set HAVE_MEMRCHR * m4/stpcpy.m4 (gl_FUNC_STPCPY): Set HAVE_STPCPY if necessary. * m4/stpncpy.m4 (gl_PREREQ_STPNCPY): Set HAVE_STPNCPY if necessary. * m4/strcase.m4 (gl_FUNC_STRCASECMP): Set REPLACE_STRCASECMP if necessary. (gl_FUNC_STRNCASECMP): Set HAVE_DECL_STRNCASECMP if necessary. * m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Set HAVE_STRCHRNUL if necessary. * m4/strdup.m4 (gl_FUNC_STRDUP): Set HAVE_DECL_STRDUP if necessary. * m4/strndup.m4 (gl_FUNC_STRNDUP): Set HAVE_DECL_STRNLEN and HAVE_DECL_STRDUP if necessary. (gl_PREREQ_STRNLEN): Don't bother to check for strnlen decl, since gl_FUNC_STRNDUP does that now. * m4/strnlen.m4 (gl_FUNC_STRNLEN): Set HAVE_DECL_STRNLEN if necessary. Check for decl here... (gl_PREREQ_STRNLEN): ... not here. * m4/strpbrk.m4 (gl_FUNC_STRPBRK): Set HAVE_STRPBRK if necessary. * m4/strsep.m4 (gl_FUNC_STRSEP): Set HAVE_STRSEP if necessary. * m4/strstr.m4 (gl_FUNC_STRSTR): Set REPLACE_STRSTR if necessary. * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Set HAVE_DECL_STRTOK_R if necessary. * modules/string: New file. * modules/memmem (Files): Remove special-purpose include file. (Depends-on): Add string. (Include): Include <string.h>, not the removed file. * modules/mempcpy: Likewise. * modules/memrchr: Likewise. * modules/stpcpy: Likewise. * modules/stpncpy: Likewise. * modules/strcase: Likewise. * modules/strchrnul: Likewise. * modules/strdup: Likewise. * modules/strndup: Likewise. * modules/strnlen: Likewise. * modules/strpbrk: Likewise. * modules/strsep: Likewise. * modules/strstr: Likewise. * modules/strtok_r: Likewise. * tests/test-dirname.c: Don't include "stdup.h", since <string.h> now suffices. * tests/test-memmem.c: Don't include "memmem.h", since <string.h> now suffices.