|
ccf404b1
|
2010-04-10T11:29:14
|
|
strnlen: Fix warning in C++ mode on MacOS X.
|
|
097fd2f5
|
2010-04-05T21:14:58
|
|
New module 'strncat'.
|
|
3e51bfce
|
2010-04-05T13:12:59
|
|
memchr: Avoid a possible C++ test error.
|
|
f550ae27
|
2010-04-03T13:21:17
|
|
stpncpy: Fix C++ test error on mingw.
|
|
e046ffb1
|
2010-03-30T02:35:49
|
|
Emit #pragma system_header after the inclusion guard, not before.
|
|
40aa4775
|
2010-03-25T16:28:02
|
|
maint: use pragma consistently across replacement headers
Several headers set #pragma GCC system_header prior to checking
any multiple inclusion guards; maintenance is easiest if all
replacement headers follow the same paradigm.
* lib/ctype.in.h (system_header): Hoist for consistent placement.
* lib/dirent.in.h (system_header): Likewise.
* lib/errno.in.h (system_header): Likewise.
* lib/float.in.h (system_header): Likewise.
* lib/getopt.in.h (system_header): Likewise.
* lib/iconv.in.h (system_header): Likewise.
* lib/inttypes.in.h (system_header): Likewise.
* lib/langinfo.in.h (system_header): Likewise.
* lib/locale.in.h (system_header): Likewise.
* lib/math.in.h (system_header): Likewise.
* lib/netdb.in.h (system_header): Likewise.
* lib/netinet_in.in.h (system_header): Likewise.
* lib/pty.in.h (system_header): Likewise.
* lib/sched.in.h (system_header): Likewise.
* lib/se-selinux.in.h (system_header): Likewise.
* lib/search.in.h (system_header): Likewise.
* lib/spawn.in.h (system_header): Likewise.
* lib/stdarg.in.h (system_header): Likewise.
* lib/stdint.in.h (system_header): Likewise.
* lib/string.in.h (system_header): Likewise.
* lib/strings.in.h (system_header): Likewise.
* lib/sys_file.in.h (system_header): Likewise.
* lib/sys_ioctl.in.h (system_header): Likewise.
* lib/sys_socket.in.h (system_header): Likewise.
* lib/sys_times.in.h (system_header): Likewise.
* lib/sys_utsname.in.h (system_header): Likewise.
* lib/sys_wait.in.h (system_header): Likewise.
* lib/sysexits.in.h (system_header): Likewise.
* lib/unistd.in.h (system_header): Likewise.
* lib/wctype.in.h (system_header): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
b0768fa3
|
2010-03-13T12:06:23
|
|
Fix compilation error with glibc >= 2.10 and g++ >= 4.4.
|
|
3c6b938c
|
2010-03-11T12:39:15
|
|
Fix problems with overloaded C++ definitions of memchr, strpbrk, etc.
|
|
e377b2bd
|
2010-03-08T01:26:36
|
|
string: Avoid #define replacements in C++ mode.
|
|
cbd5934b
|
2009-12-16T16:20:28
|
|
warn-on-use: use instead of link-warning
Each *.in.h file serves two purposes - provide enough self-contained
content to serve as a replacement for the system header regardless of
the user's compiler, and offer the developer the ability to detect any
gnulib modules that might have been inadvertantly excluded. The
former requires independence from config.h, and routes everything
through a Makefile.am snippet that uses @@ substitution specific to
the modules that were in use, with details learned at configure time.
The latter works by poisoning anything that gnulib did not replace,
but which the developer had natively available, explaining why their
tests passed during development. Poisoning relies on gcc features,
and requires manual triggering by adding -DGNULIB_POSIXCHECK to
CFLAGS; it assumes that <config.h> is properly included. In fact, we
do not want to use @@ substitution for HAVE_DECL_* during poisoning,
because the warning is only relevant for the gnulib modules which were
not included, and thus where the m4 macros to set proper @@ values
have not been run. Furthermore, we only need to poison interfaces
that already have a declaration; if something is not declared, then
the developer wouldn't have been able to link, so their code won't be
using the problematic interface in the first place.
* modules/stdio (Depends-on, Makefile.am): Drop link-warning.
* modules/unistd (Depends-on, Makefile.am): Likewise.
* modules/arpa_inet (Depends-on): Replace link-warning with
warn-on-use.
(Makefile.am): Update rules accordingly.
* modules/ctype (Depends-on, Makefile.am): Likewise.
* modules/dirent (Depends-on, Makefile.am): Likewise.
* modules/fcntl-h (Depends-on, Makefile.am): Likewise.
* modules/inttypes (Depends-on, Makefile.am): Likewise.
* modules/langinfo (Depends-on, Makefile.am): Likewise.
* modules/locale (Depends-on, Makefile.am): Likewise.
* modules/math (Depends-on, Makefile.am): Likewise.
* modules/search (Depends-on, Makefile.am): Likewise.
* modules/signal (Depends-on, Makefile.am): Likewise.
* modules/spawn (Depends-on, Makefile.am): Likewise.
* modules/stdlib (Depends-on, Makefile.am): Likewise.
* modules/string (Depends-on, Makefile.am): Likewise.
* modules/strings (Depends-on, Makefile.am): Likewise.
* modules/sys_file (Depends-on, Makefile.am): Likewise.
* modules/sys_ioctl (Depends-on, Makefile.am): Likewise.
* modules/sys_select (Depends-on, Makefile.am): Likewise.
* modules/sys_socket (Depends-on, Makefile.am): Likewise.
* modules/sys_stat (Depends-on, Makefile.am): Likewise.
* modules/sys_times (Depends-on, Makefile.am): Likewise.
* modules/sys_utsname (Depends-on, Makefile.am): Likewise.
* modules/wchar (Depends-on, Makefile.am): Likewise.
* m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Check which functions
should be poisoned.
* m4/ctype.m4 (gl_CTYPE_H): Likewise.
* m4/dirent_h.m4 (gl_DIRENT_H): Likewise.
* m4/fcntl_h.m4 (gl_FCNTL_H): Likewise.
* m4/inttypes.m4 (gl_INTTYPES_H): Likewise.
* m4/langinfo_h.m4 (gl_LANGINFO_H): Likewise.
* m4/locale_h.m4 (gl_LOCALE_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/spawn_h.m4 (gl_SPAWN_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/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Likewise.
* m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H_DEFAULTS): Likewise.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise.
* m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise.
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
* m4/wchar.m4 (gl_WCHAR_H): Likewise.
* lib/arpa_inet.in.h: Use _GL_WARN_ON_USE instead of
GL_LINK_WARNING.
* lib/ctype.in.h: Likewise.
* lib/dirent.in.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/langinfo.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/strings.in.h: Likewise.
* lib/sys_file.in.h: Likewise.
* lib/sys_ioctl.in.h: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_times.in.h: Likewise.
* lib/sys_utsname.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/wchar.in.h: Likewise.
Signed-off-by: Eric Blake <ebb9@byu.net>
|
|
969fe755
|
2010-01-07T23:42:03
|
|
mbslen: Avoid collision with system function.
|
|
b2e2010c
|
2010-01-01T10:31:12
|
|
update nearly all FSF copyright year lists to include 2010
Use the same procedure as for 2009, outlined in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/20081
|
|
69482508
|
2009-12-11T01:15:28
|
|
New module 'arg-nonnull'. Declare which arguments expect non-NULL values.
|
|
441aa304
|
2009-12-10T20:28:30
|
|
Use spaces for indentation, not tabs.
|
|
587f0eda
|
2009-09-09T21:34:32
|
|
strndup: fix improper m4 caching
* m4/strndup.m4 (gl_FUNC_STRNDUP): Rework to avoid side effects
inside AC_CACHE_CHECK. Use REPLACE_STRNDUP, not HAVE_STRNDUP.
(gl_PREREQ_STRNDUP): Delete.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Update default.
* modules/string (Makefile.am): Substitute it.
* lib/string.in.h (strndup): Modernize prototype.
Signed-off-by: Eric Blake <ebb9@byu.net>
|
|
59858051
|
2009-09-06T17:17:41
|
|
Work around a glibc bug in strtok_r.
|
|
2f5181b1
|
2009-08-12T10:23:03
|
|
stddef: fix NetBSD 5.0 NULL bug, rather than working around it
* tests/test-locale.c: Revert previous patch related to NULL.
* tests/test-stdio.c: Likewise.
* tests/test-stdlib.c: Likewise.
* tests/test-string.c: Likewise.
* tests/test-unistd.c: Likewise.
* modules/time-tests (Depends-on): Add verify.
* modules/wchar-tests (Depends-on): Likewise.
* tests/test-time.c: Test for NULL compliance.
* tests/test-wchar.c: Likewise.
* modules/locale (Depends-on): Add stddef.
* modules/stdio (Depends-on): Likewise.
* modules/stdlib (Depends-on): Likewise.
* modules/string (Depends-on): Likewise.
* modules/time (Depends-on): Likewise.
* modules/unistd (Depends-on): Likewise.
* modules/wchar (Depends-on): Likewise.
* lib/locale.in.h (includes): Use <stddef.h> to fix NULL.
* lib/stdlib.in.h (includes): Likewise.
* lib/string.in.h (includes): Likewise.
* lib/time.in.h (includes): Likewise.
* lib/unistd.in.h (includes): Likewise.
* m4/locale_h.m4 (gl_LOCALE_H): Replace locale.h if stddef.h was
replaced.
* m4/wchar.m4 (gl_WCHAR_H): Likewise.
* m4/stddef_h.m4: New file.
* modules/stddef: Likewise.
* lib/stddef.in.h: Likewise.
* modules/stddef-tests: Likewise.
* tests/test-stddef.c: Likewise.
* MODULES.html.sh (Basic types <stddef.h>): Mention new module.
* doc/posix-headers/stddef.texi (stddef.h): Document the bug.
* doc/posix-headers/locale.texi (locale.h): Likewise.
* doc/posix-headers/stdio.texi (stdio.h): Likewise.
* doc/posix-headers/stdlib.texi (stdlib.h): Likewise.
* doc/posix-headers/string.texi (string.h): Likewise.
* doc/posix-headers/time.texi (time.h): Likewise.
* doc/posix-headers/unistd.texi (unistd.h): Likewise.
* doc/posix-headers/wchar.texi (wchar.h): Likewise.
Signed-off-by: Eric Blake <ebb9@byu.net>
|
|
e06226e3
|
2009-06-15T07:49:35
|
|
docs: memchr is no longer obsolete
* MODULES.html.sh: Move memchr from obsolete to string.h section.
* lib/string.in.h (memchr): Simplify logic.
Signed-off-by: Eric Blake <ebb9@byu.net>
|
|
7cf183c3
|
2009-06-08T06:29:17
|
|
memchr: detect broken x86_64 and alpha implementations
* modules/memchr-tests (Depends-on): Move mmap detection...
* modules/memchr (Depends-on): ...here.
(configure.ac): Set indicator.
* lib/string.in.h (memchr): Declare replacement.
* modules/string (Makefile.am): Trigger replacement.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Likewise.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Use mmap to detect platform
bugs.
* doc/posix-functions/memchr.texi (memchr): Document the bug.
* modules/getpagesize (License): Relax license.
Signed-off-by: Eric Blake <ebb9@byu.net>
|
|
3c08dcc3
|
2008-10-18T02:43:18
|
|
Avoid gcc warnings because of #pragma GCC system_header on older gcc.
|
|
cfa381fc
|
2008-09-21T14:54:54
|
|
New module 'strdup-posix'.
|
|
c2318e88
|
2008-08-30T03:09:15
|
|
Avoid some "gcc -pedantic" warnings.
|
|
b6d87f53
|
2008-08-19T09:23:40
|
|
strverscmp: migrate from "strverscmp.h" to <string.h>
* 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>
|
|
2b430e39
|
2008-04-28T17:08:43
|
|
Add rawmemchr module, matching glibc.
* 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>
|
|
9c063a2a
|
2008-01-10T22:22:51
|
|
Convert strcasestr module to use Two-Way algorithm.
* 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>
|
|
f9462738
|
2008-01-15T02:25:14
|
|
Replace strsignal if it does not work fine.
|
|
bd642010
|
2008-01-14T00:26:30
|
|
New module 'strsignal'.
|
|
15834b98
|
2008-01-13T16:51:48
|
|
Don't redefine __attribute__ without a need.
|
|
96facb24
|
2008-01-10T07:38:11
|
|
Avoid quadratic strstr implementations.
* 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>
|
|
c01669e0
|
2008-01-08T17:15:27
|
|
Give gcc some memmem optimization hints.
* lib/string.in.h (memmem, memrchr, strchrnul, strnlen, strpbrk)
(strcasestr): Declare as pure.
* modules/memmem (Maintainer): Claim my implementation.
Signed-off-by: Eric Blake <ebb9@byu.net>
|
|
fc068cf4
|
2007-12-19T16:09:03
|
|
Fix memmem to avoid O(n^2) worst-case complexity.
* 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>
|
|
a8c5982a
|
2007-12-03T12:50:59
|
|
Move declarations of str{,n}casecmp from <string.h> to <strings.h>.
|
|
73f48e6f
|
2007-10-11T14:43:30
|
|
Simplify and modernize strerror substitute, partly to fix Solaris 8 bug.
* lib/strerror.c: Include <string.h> always, to test interface,
and to remove the need for the dummy.
Include intprops.h to compute width instead of doing it ourselves
and missing a CHAR_BIT declaration, which broke tar 1.19 on Solaris 8.
(strerror): Define it to return NULL if there's no system strerror.
(rpl_strerror): Use INT_STRLEN_BOUND to compute bound.
Omit !HAVE_STRERROR code. We don't need to worry about supporting
ancient pre-strerror Unix systems well any more. Saying "unknown
system error" is enough.
* lib/string.in.h (strerror): Simplify the ifdef to reflect the
simpler strerror.c implementation.
* m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE, gl_PREREQ_STDERROR):
Simplify the tests to reflect the simpler strerror implementation.
* modules/strerror (Depends-on): Add intprops.
|
|
3e74d283
|
2007-10-02T00:33:23
|
|
Rename string_.h to string.in.h.
|