From 1e4ece4ab9850fbfa88c9ec43ea518c7bc266792 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 26 Jan 2007 22:16:55 +0000 Subject: [PATCH] * doc/gnulib-tool.texi (Initial import): Update to match current 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 . * 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 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 , 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 now suffices. * tests/test-memmem.c: Don't include "memmem.h", since now suffices. --- ChangeLog | 100 ++++++++++++++++++++++++++++++ doc/gnulib-tool.texi | 31 +++++++--- lib/.cppi-disable | 4 -- lib/argp-namefrob.h | 7 +-- lib/canon-host.c | 5 +- lib/chdir-long.c | 3 +- lib/concatpath.c | 3 +- lib/exclude.c | 3 +- lib/fchdir.c | 4 +- lib/getaddrinfo.c | 5 +- lib/getcwd.c | 4 +- lib/getsubopt.c | 3 +- lib/glob.c | 4 +- lib/hard-locale.c | 4 +- lib/iconvme.c | 5 +- lib/javacomp.c | 3 +- lib/memmem.h | 32 ---------- lib/mempcpy.c | 4 +- lib/mempcpy.h | 36 ----------- lib/memrchr.c | 3 +- lib/memrchr.h | 27 -------- lib/mountlist.c | 6 +- lib/regex_internal.h | 4 -- lib/stpcpy.h | 41 ------------ lib/stpncpy.c | 4 +- lib/stpncpy.h | 47 -------------- lib/strcase.h | 56 ----------------- lib/strcasecmp.c | 4 +- lib/strchrnul.c | 4 +- lib/strchrnul.h | 28 --------- lib/strdup.c | 8 +-- lib/strdup.h | 39 ------------ lib/striconv.c | 1 - lib/striconveh.c | 1 - lib/striconveha.c | 1 - lib/string_.h | 171 +++++++++++++++++++++++++++++++++++++++++++++++++++ lib/strncasecmp.c | 4 +- lib/strndup.c | 8 +-- lib/strndup.h | 32 ---------- lib/strnlen.c | 4 +- lib/strnlen.h | 32 ---------- lib/strpbrk.h | 28 --------- lib/strsep.c | 6 +- lib/strsep.h | 52 ---------------- lib/strstr.c | 6 +- lib/strstr.h | 37 ----------- lib/strtok_r.c | 4 +- lib/strtok_r.h | 53 ---------------- lib/userspec.c | 1 - lib/w32spawn.h | 4 +- lib/xstrndup.c | 4 +- m4/memmem.m4 | 7 ++- m4/mempcpy.m4 | 5 +- m4/memrchr.m4 | 7 ++- m4/stpcpy.m4 | 6 +- m4/stpncpy.m4 | 6 +- m4/strcase.m4 | 10 ++- m4/strchrnul.m4 | 5 +- m4/strdup.m4 | 10 ++- m4/string_h.m4 | 41 ++++++++++++ m4/strndup.m4 | 8 ++- m4/strnlen.m4 | 13 ++-- m4/strpbrk.m4 | 5 +- m4/strsep.m4 | 9 ++- m4/strstr.m4 | 1 + m4/strtok_r.m4 | 9 ++- modules/memmem | 4 +- modules/mempcpy | 4 +- modules/memrchr | 4 +- modules/stpcpy | 5 +- modules/stpncpy | 5 +- modules/strcase | 5 +- modules/strchrnul | 4 +- modules/strdup | 4 +- modules/string | 52 ++++++++++++++++ modules/strndup | 4 +- modules/strnlen | 4 +- modules/strpbrk | 5 +- modules/strsep | 4 +- modules/strstr | 5 +- modules/strtok_r | 4 +- tests/test-dirname.c | 4 +- tests/test-memmem.c | 3 +- 83 files changed, 529 insertions(+), 713 deletions(-) delete mode 100644 lib/memmem.h delete mode 100644 lib/mempcpy.h delete mode 100644 lib/memrchr.h delete mode 100644 lib/stpcpy.h delete mode 100644 lib/stpncpy.h delete mode 100644 lib/strcase.h delete mode 100644 lib/strchrnul.h delete mode 100644 lib/strdup.h create mode 100644 lib/string_.h delete mode 100644 lib/strndup.h delete mode 100644 lib/strnlen.h delete mode 100644 lib/strpbrk.h delete mode 100644 lib/strsep.h delete mode 100644 lib/strstr.h delete mode 100644 lib/strtok_r.h create mode 100644 m4/string_h.m4 create mode 100644 modules/string diff --git a/ChangeLog b/ChangeLog index 5e1e74a96..f1748b959 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,103 @@ +2007-01-26 Paul Eggert + + * doc/gnulib-tool.texi (Initial import): Update to match current + 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 . + * 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 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 , 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 + now suffices. + * tests/test-memmem.c: Don't include "memmem.h", since + now suffices. + 2007-01-25 Bruno Haible * lib/striconveh.c (mem_cd_iconveh_internal): Ignore *lengthp if diff --git a/doc/gnulib-tool.texi b/doc/gnulib-tool.texi index 01ea29d12..ca49a17d9 100644 --- a/doc/gnulib-tool.texi +++ b/doc/gnulib-tool.texi @@ -1,7 +1,7 @@ @node Invoking gnulib-tool @chapter Invoking gnulib-tool -@c Copyright (C) 2005, 2006 Free Software Foundation, Inc. +@c Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. @c Permission is granted to copy, distribute and/or modify this document @c under the terms of the GNU Free Documentation License, Version 1.2 or @@ -48,29 +48,42 @@ Gnulib is used. Our example will be a library that uses Autoconf, Automake and Libtool. It calls @code{strdup}, and you wish to use gnulib to make -the package portable to C89 (which doesn't have @code{strdup}). +the package portable to C89 and C99 (which don't have @code{strdup}). @example ~/src/libfoo$ gnulib-tool --import strdup Module list with included dependencies: + absolute-header + extensions strdup + string File list: + lib/dummy.c lib/strdup.c - lib/strdup.h - m4/onceonly_2_57.m4 + lib/string_.h + m4/absolute-header.m4 + m4/extensions.m4 + m4/gnulib-common.m4 m4/strdup.m4 -Copying file m4/gnulib-tool.m4 -Copying file m4/onceonly_2_57.m4 + m4/string_h.m4 +Creating directory ./lib +Creating directory ./m4 +Copying file lib/dummy.c Copying file lib/strdup.c -Copying file lib/strdup.h +Copying file lib/string_.h +Copying file m4/absolute-header.m4 +Copying file m4/extensions.m4 +Copying file m4/gnulib-common.m4 +Copying file m4/gnulib-tool.m4 Copying file m4/strdup.m4 +Copying file m4/string_h.m4 Creating lib/Makefile.am Creating m4/gnulib-cache.m4 Creating m4/gnulib-comp.m4 Finished. You may need to add #include directives for the following .h files. - #include "strdup.h" + #include Don't forget to - add "lib/Makefile" to AC_CONFIG_FILES in ./configure.ac, @@ -212,7 +225,7 @@ LDADD = lib/libgnu.a @end example Don't forget to @code{#include} the various header files. In this -example, you would need to make sure that @samp{#include "strdup.h"} +example, you would need to make sure that @samp{#include } is evaluated when compiling all source code files, that want to make use of @code{strdup}. diff --git a/lib/.cppi-disable b/lib/.cppi-disable index 049783935..465cbbf8c 100644 --- a/lib/.cppi-disable +++ b/lib/.cppi-disable @@ -34,10 +34,6 @@ socket_.h stat-time.h stdbool_.h stdint_.h -strcase.h -strdup.h -strndup.h -strnlen.h strnlen1.h strtoul.c time_r.h diff --git a/lib/argp-namefrob.h b/lib/argp-namefrob.h index f10f58297..6fe99cd7a 100644 --- a/lib/argp-namefrob.h +++ b/lib/argp-namefrob.h @@ -1,5 +1,5 @@ /* Name frobnication for compiling argp outside of glibc - Copyright (C) 1997, 2003 Free Software Foundation, Inc. + Copyright (C) 1997, 2003, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -76,11 +76,6 @@ #undef __argp_fmtstream_wmargin #define __argp_fmtstream_wmargin argp_fmtstream_wmargin -#include "mempcpy.h" -#include "strcase.h" -#include "strchrnul.h" -#include "strndup.h" - /* normal libc functions we call */ #undef __flockfile #define __flockfile flockfile diff --git a/lib/canon-host.c b/lib/canon-host.c index c29f31431..50ba67a6c 100644 --- a/lib/canon-host.c +++ b/lib/canon-host.c @@ -1,6 +1,6 @@ /* Host name canonicalization - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. Written by Derek Price . @@ -22,8 +22,9 @@ #include "canon-host.h" +#include + #include "getaddrinfo.h" -#include "strdup.h" /* Store the last error for the single-threaded version of this function. */ static int last_cherror; diff --git a/lib/chdir-long.c b/lib/chdir-long.c index 8d0f06222..3fc7ef2a8 100644 --- a/lib/chdir-long.c +++ b/lib/chdir-long.c @@ -1,5 +1,5 @@ /* provide a chdir function that tries not to fail due to ENAMETOOLONG - Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -29,7 +29,6 @@ #include #include -#include "memrchr.h" #include "openat.h" #ifndef PATH_MAX diff --git a/lib/concatpath.c b/lib/concatpath.c index 01e47f393..a6d417356 100644 --- a/lib/concatpath.c +++ b/lib/concatpath.c @@ -1,5 +1,5 @@ /* Construct a full pathname from a directory and a filename. - Copyright (C) 2001-2004, 2006 Free Software Foundation, Inc. + Copyright (C) 2001-2004, 2006, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -26,7 +26,6 @@ #include #include "xalloc.h" -#include "stpcpy.h" /* Concatenate a directory pathname, a relative pathname and an optional suffix. The directory may end with the directory separator. The second diff --git a/lib/exclude.c b/lib/exclude.c index 508b88844..5b726ff23 100644 --- a/lib/exclude.c +++ b/lib/exclude.c @@ -1,7 +1,7 @@ /* exclude.c -- exclude file names Copyright (C) 1992, 1993, 1994, 1997, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006 Free Software Foundation, Inc. + 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,7 +33,6 @@ #include "exclude.h" #include "fnmatch.h" -#include "strcase.h" #include "xalloc.h" #include "verify.h" diff --git a/lib/fchdir.c b/lib/fchdir.c index c05a9f314..f3a9dfd62 100644 --- a/lib/fchdir.c +++ b/lib/fchdir.c @@ -1,5 +1,5 @@ /* fchdir replacement. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -28,7 +29,6 @@ #include "canonicalize.h" #include "dirfd.h" -#include "strdup.h" /* This replacement assumes that a directory is not renamed while opened through a file descriptor. */ diff --git a/lib/getaddrinfo.c b/lib/getaddrinfo.c index f523f7658..add56ba1b 100644 --- a/lib/getaddrinfo.c +++ b/lib/getaddrinfo.c @@ -1,5 +1,5 @@ /* Get address information (partial implementation). - Copyright (C) 1997, 2001, 2002, 2004, 2005, 2006 Free Software + Copyright (C) 1997, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. Contributed by Simon Josefsson . @@ -28,7 +28,7 @@ /* Get calloc. */ #include -/* Get memcpy. */ +/* Get memcpy, strdup. */ #include #include @@ -39,7 +39,6 @@ #include "inet_ntop.h" #include "snprintf.h" -#include "strdup.h" /* BeOS has AF_INET, but not PF_INET. */ #ifndef PF_INET diff --git a/lib/getcwd.c b/lib/getcwd.c index f13da4dcc..978c53837 100644 --- a/lib/getcwd.c +++ b/lib/getcwd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,92,93,94,95,96,97,98,99,2004,2005,2006 Free Software +/* Copyright (C) 1991,92,93,94,95,96,97,98,99,2004,2005,2006,2007 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -49,8 +49,6 @@ # ifndef mempcpy # define mempcpy __mempcpy # endif -#else -# include "mempcpy.h" #endif #include diff --git a/lib/getsubopt.c b/lib/getsubopt.c index 2625249b9..4e9f1b084 100644 --- a/lib/getsubopt.c +++ b/lib/getsubopt.c @@ -1,5 +1,5 @@ /* Parse comma separate list into words. - Copyright (C) 1996, 1997, 1999, 2004 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999, 2004, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -24,7 +24,6 @@ /* This code is written for inclusion in gnu-libc, and uses names in the namespace reserved for libc. If we're compiling in gnulib, define those names to be the normal ones instead. */ -# include "strchrnul.h" # undef __strchrnul # define __strchrnul strchrnul #endif diff --git a/lib/glob.c b/lib/glob.c index edef095e6..ccd0e7afc 100644 --- a/lib/glob.c +++ b/lib/glob.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2002,2003,2004,2005,2006 Free Software Foundation, Inc. +/* Copyright (C) 1991-2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -133,8 +133,6 @@ # define struct_stat64 struct stat64 #else /* !_LIBC */ # include "getlogin_r.h" -# include "mempcpy.h" -# include "strdup.h" # define __stat64(fname, buf) stat (fname, buf) # define struct_stat64 struct stat # define __stat(fname, buf) stat (fname, buf) diff --git a/lib/hard-locale.c b/lib/hard-locale.c index ef3912698..dd2ba4843 100644 --- a/lib/hard-locale.c +++ b/lib/hard-locale.c @@ -1,6 +1,6 @@ /* hard-locale.c -- Determine whether a locale is hard. - Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004, 2006 Free + Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -25,8 +25,6 @@ #include #include -#include "strdup.h" - #ifdef __GLIBC__ # define GLIBC_VERSION __GLIBC__ #else diff --git a/lib/iconvme.c b/lib/iconvme.c index 7403242ba..0018aa308 100644 --- a/lib/iconvme.c +++ b/lib/iconvme.c @@ -23,7 +23,7 @@ /* Get malloc. */ #include -/* Get strcmp. */ +/* Get strcmp, strdup. */ #include /* Get errno. */ @@ -31,9 +31,6 @@ #ifdef _LIBC # define HAVE_ICONV 1 -#else -/* Get strdup. */ -# include "strdup.h" #endif #if HAVE_ICONV diff --git a/lib/javacomp.c b/lib/javacomp.c index 5d3d60be4..3e0ca1b96 100644 --- a/lib/javacomp.c +++ b/lib/javacomp.c @@ -1,5 +1,5 @@ /* Compile a Java program. - Copyright (C) 2001-2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006, 2007 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software; you can redistribute it and/or modify @@ -48,7 +48,6 @@ #include "clean-temp.h" #include "error.h" #include "xvasprintf.h" -#include "strstr.h" #include "gettext.h" #define _(str) gettext (str) diff --git a/lib/memmem.h b/lib/memmem.h deleted file mode 100644 index 915a08be0..000000000 --- a/lib/memmem.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2004 Free Software Foundation - * Written by Simon Josefsson - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. */ - -#ifndef MEMMEM_H -# define MEMMEM_H - -/* Get memmem, if available. */ -# include - -# if defined HAVE_DECL_MEMMEM && !HAVE_DECL_MEMMEM -void * -memmem (const void *haystack, size_t haystack_len, - const void *needle, size_t needle_len); -# endif - -#endif /* MEMMEM_H */ diff --git a/lib/mempcpy.c b/lib/mempcpy.c index 3502da244..af0ed452e 100644 --- a/lib/mempcpy.c +++ b/lib/mempcpy.c @@ -1,5 +1,5 @@ /* Copy memory area and return pointer after last written byte. - Copyright (C) 2003 Free Software Foundation, Inc. + Copyright (C) 2003, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,8 +16,6 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Specification. */ -#include "mempcpy.h" - #include /* Copy N bytes of SRC to DEST, return pointer to bytes after the diff --git a/lib/mempcpy.h b/lib/mempcpy.h deleted file mode 100644 index fa2032107..000000000 --- a/lib/mempcpy.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copy memory area and return pointer after last written byte. - Copyright (C) 2003, 2004 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef mempcpy - -# if HAVE_MEMPCPY - -/* Get mempcpy() declaration. */ -# include - -# else - -/* Get size_t */ -# include - -/* Copy N bytes of SRC to DEST, return pointer to bytes after the - last written byte. */ -extern void *mempcpy (void *dest, const void *src, size_t n); - -# endif - -#endif diff --git a/lib/memrchr.c b/lib/memrchr.c index 471511c57..0b5661b07 100644 --- a/lib/memrchr.c +++ b/lib/memrchr.c @@ -1,7 +1,7 @@ /* memrchr -- find the last occurrence of a byte in a memory block Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004, 2005, - 2006 Free Software Foundation, Inc. + 2006, 2007 Free Software Foundation, Inc. Based on strlen implementation by Torbjorn Granlund (tege@sics.se), with help from Dan Sahlin (dan@sics.se) and @@ -28,7 +28,6 @@ # include #else # include -# include "memrchr.h" # define reg_char char #endif diff --git a/lib/memrchr.h b/lib/memrchr.h deleted file mode 100644 index d4785c215..000000000 --- a/lib/memrchr.h +++ /dev/null @@ -1,27 +0,0 @@ -/* memrchr -- Find the last occurrence of a byte in a memory block. - - Copyright (C) 2005 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#if HAVE_DECL_MEMRCHR -# include -#else -# include - -/* Search backwards through a block for a byte (specified as an int). */ -void *memrchr (void const *, int, size_t); - -#endif diff --git a/lib/mountlist.c b/lib/mountlist.c index bb01f91ef..a50828e39 100644 --- a/lib/mountlist.c +++ b/lib/mountlist.c @@ -1,7 +1,7 @@ /* mountlist.c -- return a list of mounted file systems Copyright (C) 1991, 1992, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006 Free Software Foundation, Inc. + 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -28,10 +28,6 @@ #include "xalloc.h" -#ifndef strstr -char *strstr (); -#endif - #include #include diff --git a/lib/regex_internal.h b/lib/regex_internal.h index b0f7e657c..bd12572f4 100644 --- a/lib/regex_internal.h +++ b/lib/regex_internal.h @@ -27,10 +27,6 @@ #include #include -#ifndef _LIBC -# include "strcase.h" -#endif - #if defined HAVE_LANGINFO_H || defined HAVE_LANGINFO_CODESET || defined _LIBC # include #endif diff --git a/lib/stpcpy.h b/lib/stpcpy.h deleted file mode 100644 index 53c4ce00a..000000000 --- a/lib/stpcpy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* String copying. - Copyright (C) 1995, 2001, 2003 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _STPCPY_H -#define _STPCPY_H - -#if HAVE_STPCPY - -/* Get stpcpy() declaration. */ -#include - -#else - -#ifdef __cplusplus -extern "C" { -#endif - -/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ -extern char *stpcpy (char *dst, const char *src); - -#ifdef __cplusplus -} -#endif - -#endif - -#endif /* _STPCPY_H */ diff --git a/lib/stpncpy.c b/lib/stpncpy.c index 9c0b1670b..2a5f81c58 100644 --- a/lib/stpncpy.c +++ b/lib/stpncpy.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995-1997, 2002-2003, 2005-2006 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995-1997, 2002-2003, 2005-2007 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@gnu.org. @@ -22,7 +22,7 @@ #include /* Specification. */ -#include "stpncpy.h" +#include #ifndef weak_alias # define __stpncpy stpncpy diff --git a/lib/stpncpy.h b/lib/stpncpy.h deleted file mode 100644 index 1ecb3e82c..000000000 --- a/lib/stpncpy.h +++ /dev/null @@ -1,47 +0,0 @@ -/* String copying. - Copyright (C) 1995, 2001-2005 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _STPNCPY_H -#define _STPNCPY_H - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -#if !HAVE_STPNCPY - -/* When not using the GNU libc we use the stpncpy implementation we - provide here. */ -#define stpncpy gnu_stpncpy - -/* Copy no more than N bytes of SRC to DST, returning a pointer past the - last non-NUL byte written into DST. */ -extern char *stpncpy (char *dst, const char *src, size_t n); - -#endif - - -#ifdef __cplusplus -} -#endif - - -#endif /* _STPNCPY_H */ diff --git a/lib/strcase.h b/lib/strcase.h deleted file mode 100644 index 07d4c9a42..000000000 --- a/lib/strcase.h +++ /dev/null @@ -1,56 +0,0 @@ -/* Case-insensitive string comparison functions. - Copyright (C) 1995-1996, 2001, 2003, 2005-2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _STRCASE_H -#define _STRCASE_H - -#include -/* Include header files with a possibly conflicting declarations of strcasecmp - before we define it as a macro, so that they will be no-ops if included - after strcasecmp is defined as a macro. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* No known system has a strcasecmp() function that works correctly in - multibyte locales. Therefore we use our version always. */ -#define strcasecmp rpl_strcasecmp -/* Compare strings S1 and S2, ignoring case, returning less than, equal to or - greater than zero if S1 is lexicographically less than, equal to or greater - than S2. - Note: This function may, in multibyte locales, return 0 for strings of - different lengths! */ -extern int strcasecmp (const char *s1, const char *s2); - -/* Compare no more than N characters of strings S1 and S2, ignoring case, - returning less than, equal to or greater than zero if S1 is - lexicographically less than, equal to or greater than S2. - Note: This function can not work correctly in multibyte locales. */ -#if ! HAVE_DECL_STRNCASECMP -extern int strncasecmp (const char *s1, const char *s2, size_t n); -#endif - - -#ifdef __cplusplus -} -#endif - - -#endif /* _STRCASE_H */ diff --git a/lib/strcasecmp.c b/lib/strcasecmp.c index 99d5dd22a..f63e64e3b 100644 --- a/lib/strcasecmp.c +++ b/lib/strcasecmp.c @@ -1,5 +1,5 @@ /* Case-insensitive string comparison function. - Copyright (C) 1998-1999, 2005-2006 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2007 Free Software Foundation, Inc. Written by Bruno Haible , 2005, based on earlier glibc code. @@ -20,7 +20,7 @@ #include /* Specification. */ -#include "strcase.h" +#include #include #include diff --git a/lib/strchrnul.c b/lib/strchrnul.c index 8d17f1590..03c49c3ea 100644 --- a/lib/strchrnul.c +++ b/lib/strchrnul.c @@ -1,5 +1,5 @@ /* Searching in a string. - Copyright (C) 2003 Free Software Foundation, Inc. + Copyright (C) 2003, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Specification. */ -#include "strchrnul.h" +#include /* Find the first occurrence of C in S or the final NUL byte. */ char * diff --git a/lib/strchrnul.h b/lib/strchrnul.h deleted file mode 100644 index 5a31b9675..000000000 --- a/lib/strchrnul.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Searching in a string. - Copyright (C) 2003 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#if HAVE_STRCHRNUL - -/* Get strchrnul() declaration. */ -#include - -#else - -/* Find the first occurrence of C in S or the final NUL byte. */ -extern char *strchrnul (const char *s, int c_in); - -#endif diff --git a/lib/strdup.c b/lib/strdup.c index 17d40d622..c61410878 100644 --- a/lib/strdup.c +++ b/lib/strdup.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1996, 1997, 1998, 2002, 2003, 2004, 2006 Free +/* Copyright (C) 1991, 1996, 1997, 1998, 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -19,13 +19,13 @@ #ifndef _LIBC # include -/* Get specification. */ -# include "strdup.h" #endif -#include +/* Get specification. */ #include +#include + #undef __strdup #ifdef _LIBC # undef strdup diff --git a/lib/strdup.h b/lib/strdup.h deleted file mode 100644 index 73e66e3d7..000000000 --- a/lib/strdup.h +++ /dev/null @@ -1,39 +0,0 @@ -/* strdup.h -- duplicate a string - Copyright (C) 2004, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef STRDUP_H_ -#define STRDUP_H_ - -/* Get strdup declaration, if available. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#if defined HAVE_DECL_STRDUP && !HAVE_DECL_STRDUP && !defined strdup -/* Duplicate S, returning an identical malloc'd string. */ -extern char *strdup (const char *s); -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* STRDUP_H_ */ diff --git a/lib/striconv.c b/lib/striconv.c index 3703e9c58..ea4fa2979 100644 --- a/lib/striconv.c +++ b/lib/striconv.c @@ -31,7 +31,6 @@ # include #endif -#include "strdup.h" #include "c-strcase.h" #ifndef SIZE_MAX diff --git a/lib/striconveh.c b/lib/striconveh.c index 191598b84..167ac92af 100644 --- a/lib/striconveh.c +++ b/lib/striconveh.c @@ -33,7 +33,6 @@ # include "unistr.h" #endif -#include "strdup.h" #include "c-strcase.h" #include "c-strcaseeq.h" diff --git a/lib/striconveha.c b/lib/striconveha.c index 78dfddc42..fdb842165 100644 --- a/lib/striconveha.c +++ b/lib/striconveha.c @@ -26,7 +26,6 @@ #include #include "allocsa.h" -#include "strdup.h" #include "c-strcase.h" #define SIZEOF(a) (sizeof(a)/sizeof(a[0])) diff --git a/lib/string_.h b/lib/string_.h new file mode 100644 index 000000000..4bd7518b3 --- /dev/null +++ b/lib/string_.h @@ -0,0 +1,171 @@ +/* A GNU-like . + + Copyright (C) 2007 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#ifndef _GL_STRING_H +#define _GL_STRING_H + +#include @ABSOLUTE_STRING_H@ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Return the first occurrence of NEEDLE in HAYSTACK. */ +#if ! @HAVE_DECL_MEMMEM@ +void * +memmem (void const *__haystack, size_t __haystack_len, + void const *__needle, size_t __needle_len); +#endif + +/* Copy N bytes of SRC to DEST, return pointer to bytes after the + last written byte. */ +#if ! @HAVE_MEMPCPY@ +void *mempcpy (void *restrict __dest, void const *restrict __src, size_t __n); +#endif + +/* Search backwards through a block for a byte (specified as an int). */ +#if ! @HAVE_DECL_MEMRCHR@ +void *memrchr (void const *, int, size_t); +#endif + +/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ +#if ! @HAVE_STPCPY@ +char *stpcpy (char *restrict __dst, char const *restrict __src); +#endif + +/* Copy no more than N bytes of SRC to DST, returning a pointer past the + last non-NUL byte written into DST. */ +#if ! @HAVE_STPNCPY@ +# define stpncpy gnu_stpncpy +char *stpncpy (char *restrict __dst, char const *restrict __src, size_t __n); +#endif + +/* Compare strings S1 and S2, ignoring case, returning less than, equal to or + greater than zero if S1 is lexicographically less than, equal to or greater + than S2. + Note: This function may, in multibyte locales, return 0 for strings of + different lengths! + No known system has a strcasecmp() function that works correctly in + multibyte locales. Therefore use our version always, if the + strcase module is available. */ +#if @REPLACE_STRCASECMP@ +# define strcasecmp rpl_strcasecmp +int strcasecmp (char const *__s1, char const *__s2); +#endif + +/* Compare no more than N bytes of strings S1 and S2, ignoring case, + returning less than, equal to or greater than zero if S1 is + lexicographically less than, equal to or greater than S2. + Note: This function cannot work correctly in multibyte locales. */ +#if ! @HAVE_DECL_STRNCASECMP@ +int strncasecmp (char const *__s1, char const *__s2, size_t __n); +#endif + +/* Find the first occurrence of C in S or the final NUL byte. */ +#if ! @HAVE_STRCHRNUL@ +char *strchrnul (char const *__s, int __c_in); +#endif + +/* Duplicate S, returning an identical malloc'd string. */ +#if ! @HAVE_DECL_STRDUP@ && ! defined strdup +char *strdup (char const *__s); +#endif + +/* Return a newly allocated copy of at most N bytes of STRING. */ +#if ! @HAVE_STRNDUP@ +# undef strndup +# define strndup rpl_strndup +# if ! @HAVE_DECL_STRNDUP@ +char *strndup (char const *__string, size_t __n); +# endif +#endif + +/* Find the length (number of bytes) of STRING, but scan at most + MAXLEN bytes. If no '\0' terminator is found in that many bytes, + return MAXLEN. */ +#if ! @HAVE_DECL_STRNLEN@ +size_t strnlen (char const *__string, size_t __maxlen); +#endif + +/* Find the first occurrence in S of any character in ACCEPT. */ +#if ! @HAVE_STRPBRK@ +char *strpbrk (char const *__s, char const *__accept); +#endif + +/* Search the next delimiter (char listed in DELIM) starting at *STRINGP. + If one is found, overwrite it with a NUL, and advance *STRINGP + to point to the next char after it. Otherwise, set *STRINGP to NULL. + If *STRINGP was already NULL, nothing happens. + Return the old value of *STRINGP. + + This is a variant of strtok() that is multithread-safe and supports + empty fields. + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + Caveat: It doesn't work with multibyte strings unless all of the delimiter + characters are ASCII characters < 0x30. + + See also strtok_r(). */ +#if ! @HAVE_STRSEP@ +char *strsep (char **restrict __stringp, char const *restrict __delim); +#endif + +/* Find the first occurrence of NEEDLE in HAYSTACK. + No known system has a strstr() function that works correctly in + multibyte locales. Therefore use our version always, if the strstr + module is available. */ +#if @REPLACE_STRSTR@ +# undef strstr +# define strstr rpl_strstr +char *strstr (char const *__haystack, char const *__needle); +#endif + +/* Parse S into tokens separated by characters in DELIM. + If S is NULL, the saved pointer in SAVE_PTR is used as + the next starting point. For example: + char s[] = "-abc-=-def"; + char *sp; + x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" + x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL + x = strtok_r(NULL, "=", &sp); // x = NULL + // s = "abc\0-def\0" + + This is a variant of strtok() that is multithread-safe. + + For the POSIX documentation for this function, see: + http://www.opengroup.org/susv3xsh/strtok.html + + Caveat: It modifies the original string. + Caveat: These functions cannot be used on constant strings. + Caveat: The identity of the delimiting character is lost. + Caveat: It doesn't work with multibyte strings unless all of the delimiter + characters are ASCII characters < 0x30. + + See also strsep(). */ +#if ! @HAVE_DECL_STRTOK_R@ +char *strtok_r (char *restrict __s, char const *restrict __sep, + char **restrict __lasts); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/lib/strncasecmp.c b/lib/strncasecmp.c index f59b953a7..14ae204b9 100644 --- a/lib/strncasecmp.c +++ b/lib/strncasecmp.c @@ -1,5 +1,5 @@ /* strncasecmp.c -- case insensitive string comparator - Copyright (C) 1998-1999, 2005-2006 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,7 +18,7 @@ #include /* Specification. */ -#include "strcase.h" +#include #include #include diff --git a/lib/strndup.c b/lib/strndup.c index 290f494f4..3a1b0eae2 100644 --- a/lib/strndup.c +++ b/lib/strndup.c @@ -1,7 +1,7 @@ /* A replacement function, for systems that lack strndup. - Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2005, 2006 Free - Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2005, 2006, 2007 + Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -18,12 +18,10 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include -#include "strndup.h" -#include #include -#include "strnlen.h" +#include char * strndup (char const *s, size_t n) diff --git a/lib/strndup.h b/lib/strndup.h deleted file mode 100644 index b983dd228..000000000 --- a/lib/strndup.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Duplicate a size-bounded string. - Copyright (C) 2003, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Get size_t. */ -#include -/* If HAVE_STRNDUP, get the strndup declaration. - If !HAVE_STRNDUP, include now so that it doesn't cause - trouble if included later. */ -#include - -#if !HAVE_STRNDUP -# undef strndup -# define strndup rpl_strndup -# if !HAVE_DECL_STRNDUP /* Don't risk conflicting declarations. */ -/* Return a newly allocated copy of at most N bytes of STRING. */ -extern char *strndup (const char *string, size_t n); -# endif -#endif diff --git a/lib/strnlen.c b/lib/strnlen.c index 593fd1b7c..d346d3272 100644 --- a/lib/strnlen.c +++ b/lib/strnlen.c @@ -1,5 +1,5 @@ /* Find the length of STRING, but scan at most MAXLEN characters. - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. Written by Simon Josefsson. This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ #include -#include "strnlen.h" +#include /* Find the length of STRING, but scan at most MAXLEN characters. If no '\0' terminator is found in that many characters, return MAXLEN. */ diff --git a/lib/strnlen.h b/lib/strnlen.h deleted file mode 100644 index ba74dba7b..000000000 --- a/lib/strnlen.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Find the length of STRING, but scan at most MAXLEN characters. - Copyright (C) 2005 Free Software Foundation, Inc. - Written by Simon Josefsson. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef STRNLEN_H -#define STRNLEN_H - -/* Get strnlen declaration, if available. */ -#include - -#if defined HAVE_DECL_STRNLEN && !HAVE_DECL_STRNLEN -/* Find the length (number of bytes) of STRING, but scan at most - MAXLEN bytes. If no '\0' terminator is found in that many bytes, - return MAXLEN. */ -extern size_t strnlen(const char *string, size_t maxlen); -#endif - -#endif /* STRNLEN_H */ diff --git a/lib/strpbrk.h b/lib/strpbrk.h deleted file mode 100644 index acc8d358b..000000000 --- a/lib/strpbrk.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Searching in a string. - Copyright (C) 2001-2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#if HAVE_STRPBRK - -/* Get strpbrk() declaration. */ -#include - -#else - -/* Find the first occurrence in S of any character in ACCEPT. */ -extern char *strpbrk (const char *s, const char *accept); - -#endif diff --git a/lib/strsep.c b/lib/strsep.c index db2b074c8..1a86852b8 100644 --- a/lib/strsep.c +++ b/lib/strsep.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 Free Software Foundation, Inc. +/* Copyright (C) 2004, 2007 Free Software Foundation, Inc. Written by Yoann Vandoorselaere . @@ -21,12 +21,8 @@ #endif /* Specification. */ -#include "strsep.h" - #include -#include "strpbrk.h" - char * strsep (char **stringp, const char *delim) { diff --git a/lib/strsep.h b/lib/strsep.h deleted file mode 100644 index ca28a2ffe..000000000 --- a/lib/strsep.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (C) 2004 Free Software Foundation, Inc. - - Written by Yoann Vandoorselaere . - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef GNULIB_STRSEP_H_ -#define GNULIB_STRSEP_H_ - -#if HAVE_STRSEP - -/* - * Get strsep() declaration. - */ -#include - -#else - -/* Searches the next delimiter (char listed in DELIM) starting at *STRINGP. - If one is found, it is overwritten with a NUL, and *STRINGP is advanced - to point to the next char after it. Otherwise, *STRINGP is set to NULL. - If *STRINGP was already NULL, nothing happens. - Returns the old value of *STRINGP. - - This is a variant of strtok() that is multithread-safe and supports - empty fields. - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - Caveat: It doesn't work with multibyte strings unless all of the delimiter - characters are ASCII characters < 0x30. - - See also strtok_r(). */ - -extern char *strsep (char **stringp, const char *delim); - -#endif - -#endif /* GNULIB_STRSEP_H_ */ diff --git a/lib/strstr.c b/lib/strstr.c index f1e2ef698..2ee16507a 100644 --- a/lib/strstr.c +++ b/lib/strstr.c @@ -1,5 +1,5 @@ /* Searching in a string. - Copyright (C) 2005-2006 Free Software Foundation, Inc. + Copyright (C) 2005-2007 Free Software Foundation, Inc. Written by Bruno Haible , 2005. This program is free software; you can redistribute it and/or modify @@ -19,9 +19,9 @@ #include /* Specification. */ -#include "strstr.h" +#include -#include /* for NULL */ +#include /* for NULL, in case a nonstandard string.h lacks it */ #if HAVE_MBRTOWC # include "mbuiter.h" diff --git a/lib/strstr.h b/lib/strstr.h deleted file mode 100644 index a28b1401e..000000000 --- a/lib/strstr.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Searching in a string. - Copyright (C) 2001-2003, 2005 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - - -/* Include string.h: on glibc systems, it contains a macro definition of - strstr() that would collide with our definition if included afterwards. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* No known system has a strstr() function that works correctly in - multibyte locales. Therefore we use our version always. */ -#undef strstr -#define strstr rpl_strstr - -/* Find the first occurrence of NEEDLE in HAYSTACK. */ -extern char *strstr (const char *haystack, const char *needle); - -#ifdef __cplusplus -} -#endif diff --git a/lib/strtok_r.c b/lib/strtok_r.c index 4a21cae97..fde7b5cda 100644 --- a/lib/strtok_r.c +++ b/lib/strtok_r.c @@ -1,5 +1,5 @@ /* Reentrant string tokenizer. Generic version. - Copyright (C) 1991,1996-1999,2001,2004 Free Software Foundation, Inc. + Copyright (C) 1991,1996-1999,2001,2004,2007 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify @@ -26,8 +26,6 @@ #undef __strtok_r #ifndef _LIBC -/* Get specification. */ -# include "strtok_r.h" # define __strtok_r strtok_r # define __rawmemchr strchr #endif diff --git a/lib/strtok_r.h b/lib/strtok_r.h deleted file mode 100644 index 7d3f21b5f..000000000 --- a/lib/strtok_r.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Split string into tokens - Copyright (C) 2004-2005 Free Software Foundation, Inc. - Written by Simon Josefsson. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef STRTOK_R_H -#define STRTOK_R_H - -/* Get strtok_r declaration, if available. */ -#include - -/* Parse S into tokens separated by characters in DELIM. - If S is NULL, the saved pointer in SAVE_PTR is used as - the next starting point. For example: - char s[] = "-abc-=-def"; - char *sp; - x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" - x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL - x = strtok_r(NULL, "=", &sp); // x = NULL - // s = "abc\0-def\0" - - This is a variant of strtok() that is multithread-safe. - - For the POSIX documentation for this function, see: - http://www.opengroup.org/susv3xsh/strtok.html - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - Caveat: It doesn't work with multibyte strings unless all of the delimiter - characters are ASCII characters < 0x30. - - See also strsep(). -*/ -#if defined HAVE_DECL_STRTOK_R && !HAVE_DECL_STRTOK_R -extern char *strtok_r(char *restrict s, const char *restrict sep, - char **restrict lasts); -#endif - -#endif /* STRTOK_R_H */ diff --git a/lib/userspec.c b/lib/userspec.c index 5f4f2af31..c1f580a17 100644 --- a/lib/userspec.c +++ b/lib/userspec.c @@ -41,7 +41,6 @@ #include "intprops.h" #include "inttostr.h" -#include "strdup.h" #include "xalloc.h" #include "xstrtol.h" diff --git a/lib/w32spawn.h b/lib/w32spawn.h index 6beaafd22..18c78242e 100644 --- a/lib/w32spawn.h +++ b/lib/w32spawn.h @@ -1,5 +1,5 @@ /* Auxiliary functions for the creation of subprocesses. Native Woe32 API. - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc. Written by Bruno Haible , 2003. This program is free software; you can redistribute it and/or modify @@ -24,9 +24,9 @@ #include #include +#include #include -#include "strpbrk.h" #include "xalloc.h" /* Duplicates a file handle, making the copy uninheritable. */ diff --git a/lib/xstrndup.c b/lib/xstrndup.c index afcbc1ab2..7ccefd798 100644 --- a/lib/xstrndup.c +++ b/lib/xstrndup.c @@ -1,6 +1,6 @@ /* Duplicate a bounded initial segment of a string, with out-of-memory checking. - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ /* Specification. */ #include "xstrndup.h" -#include "strndup.h" +#include #include "xalloc.h" /* Return a newly allocated copy of at most N bytes of STRING. diff --git a/m4/memmem.m4 b/m4/memmem.m4 index 86072eaac..e4806950f 100644 --- a/m4/memmem.m4 +++ b/m4/memmem.m4 @@ -1,5 +1,5 @@ -# memmem.m4 serial 2 -dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +# memmem.m4 serial 3 +dnl Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -11,6 +11,9 @@ AC_DEFUN([gl_FUNC_MEMMEM], AC_REPLACE_FUNCS(memmem) AC_CHECK_DECLS_ONCE(memmem) + if test $ac_cv_have_decl_memmem = no; then + HAVE_DECL_MEMMEM=0 + fi gl_PREREQ_MEMMEM ]) diff --git a/m4/mempcpy.m4 b/m4/mempcpy.m4 index 9aec73dc5..efb2eb05b 100644 --- a/m4/mempcpy.m4 +++ b/m4/mempcpy.m4 @@ -1,5 +1,5 @@ -# mempcpy.m4 serial 4 -dnl Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. +# mempcpy.m4 serial 5 +dnl Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -12,6 +12,7 @@ AC_DEFUN([gl_FUNC_MEMPCPY], AC_REPLACE_FUNCS(mempcpy) if test $ac_cv_func_mempcpy = no; then + HAVE_MEMPCPY=0 gl_PREREQ_MEMPCPY fi ]) diff --git a/m4/memrchr.m4 b/m4/memrchr.m4 index 5d971551d..8d511b061 100644 --- a/m4/memrchr.m4 +++ b/m4/memrchr.m4 @@ -1,5 +1,5 @@ -# memrchr.m4 serial 5 -dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +# memrchr.m4 serial 6 +dnl Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -10,6 +10,9 @@ AC_DEFUN([gl_FUNC_MEMRCHR], AC_REQUIRE([AC_GNU_SOURCE]) AC_CHECK_DECLS_ONCE([memrchr]) + if test $ac_cv_have_decl_memrchr = no; then + HAVE_DECL_MEMRCHR=0 + fi AC_REPLACE_FUNCS(memrchr) if test $ac_cv_func_memrchr = no; then diff --git a/m4/stpcpy.m4 b/m4/stpcpy.m4 index ce8d92fb1..b64a66250 100644 --- a/m4/stpcpy.m4 +++ b/m4/stpcpy.m4 @@ -1,5 +1,5 @@ -# stpcpy.m4 serial 1 -dnl Copyright (C) 2002 Free Software Foundation, Inc. +# stpcpy.m4 serial 2 +dnl Copyright (C) 2002, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -11,6 +11,7 @@ AC_DEFUN([gl_FUNC_STPCPY], AC_REPLACE_FUNCS(stpcpy) if test $ac_cv_func_stpcpy = no; then + HAVE_STPCPY=0 gl_PREREQ_STPCPY fi ]) @@ -19,4 +20,3 @@ AC_DEFUN([gl_FUNC_STPCPY], AC_DEFUN([gl_PREREQ_STPCPY], [ : ]) - diff --git a/m4/stpncpy.m4 b/m4/stpncpy.m4 index ec88b5442..885257936 100644 --- a/m4/stpncpy.m4 +++ b/m4/stpncpy.m4 @@ -1,5 +1,5 @@ -# stpncpy.m4 serial 4 -dnl Copyright (C) 2002-2003, 2005-2006 Free Software Foundation, Inc. +# stpncpy.m4 serial 5 +dnl Copyright (C) 2002-2003, 2005-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -51,6 +51,7 @@ int main () { AC_DEFINE(HAVE_STPNCPY, 1, [Define if you have the stpncpy() function and it works.]) else + HAVE_STPNCPY=0 AC_LIBOBJ([stpncpy]) gl_PREREQ_STPNCPY fi @@ -60,4 +61,3 @@ int main () { AC_DEFUN([gl_PREREQ_STPNCPY], [ : ]) - diff --git a/m4/strcase.m4 b/m4/strcase.m4 index ae8279078..bcb969e99 100644 --- a/m4/strcase.m4 +++ b/m4/strcase.m4 @@ -1,5 +1,5 @@ -# strcase.m4 serial 4 -dnl Copyright (C) 2002, 2005-2006 Free Software Foundation, Inc. +# strcase.m4 serial 5 +dnl Copyright (C) 2002, 2005-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -16,15 +16,19 @@ AC_DEFUN([gl_FUNC_STRCASECMP], dnl multibyte locales. Therefore we use our version always. AC_LIBOBJ(strcasecmp) gl_PREREQ_STRCASECMP + REPLACE_STRCASECMP=1 ]) AC_DEFUN([gl_FUNC_STRNCASECMP], [ AC_REPLACE_FUNCS(strncasecmp) - AC_CHECK_DECLS(strncasecmp) if test $ac_cv_func_strncasecmp = no; then gl_PREREQ_STRNCASECMP fi + AC_CHECK_DECLS(strncasecmp) + if test $ac_cv_have_decl_strncasecmp = no; then + HAVE_DECL_STRNCASECMP=0 + fi ]) # Prerequisites of lib/strcasecmp.c. diff --git a/m4/strchrnul.m4 b/m4/strchrnul.m4 index 8492b9f17..e778d51c7 100644 --- a/m4/strchrnul.m4 +++ b/m4/strchrnul.m4 @@ -1,5 +1,5 @@ -# strchrnul.m4 serial 3 -dnl Copyright (C) 2003 Free Software Foundation, Inc. +# strchrnul.m4 serial 4 +dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -11,6 +11,7 @@ AC_DEFUN([gl_FUNC_STRCHRNUL], AC_REPLACE_FUNCS(strchrnul) if test $ac_cv_func_strchrnul = no; then + HAVE_STRCHRNUL=0 gl_PREREQ_STRCHRNUL fi ]) diff --git a/m4/strdup.m4 b/m4/strdup.m4 index f7786e944..bb38f25ac 100644 --- a/m4/strdup.m4 +++ b/m4/strdup.m4 @@ -1,5 +1,8 @@ -# strdup.m4 serial 7 -dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# strdup.m4 serial 8 + +dnl Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software +dnl Foundation, Inc. + dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -8,6 +11,9 @@ AC_DEFUN([gl_FUNC_STRDUP], [ AC_REPLACE_FUNCS(strdup) AC_CHECK_DECLS_ONCE(strdup) + if test $ac_cv_have_decl_strdup = no; then + HAVE_DECL_STRDUP=0 + fi gl_PREREQ_STRDUP ]) diff --git a/m4/string_h.m4 b/m4/string_h.m4 new file mode 100644 index 000000000..91e5c6772 --- /dev/null +++ b/m4/string_h.m4 @@ -0,0 +1,41 @@ +# Configure a GNU-like replacement for . + +# Copyright (C) 2007 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Written by Paul Eggert. + +AC_DEFUN([gl_HEADER_STRING_H], +[ + dnl Use AC_REQUIRE here, so that the default behavior below is expanded + dnl once only, before all statements that occur in other macros. + AC_REQUIRE([gl_HEADER_STRING_H_BODY]) +]) + +AC_DEFUN([gl_HEADER_STRING_H_BODY], +[ + AC_REQUIRE([AC_C_RESTRICT]) + gl_ABSOLUTE_HEADER([string.h]) + ABSOLUTE_STRING_H=\"$gl_cv_absolute_string_h\" + AC_SUBST([ABSOLUTE_STRING_H]) + + dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM]) + HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY]) + HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR]) + HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY]) + HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY]) + HAVE_DECL_STRNCASECMP=1; AC_SUBST([HAVE_DECL_STRNCASECMP]) + HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL]) + HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP]) + HAVE_STRNDUP=1; AC_SUBST([HAVE_STRNDUP]) + HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP]) + HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN]) + HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK]) + HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP]) + HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R]) + REPLACE_STRCASECMP=0; AC_SUBST([REPLACE_STRCASECMP]) + REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) +]) diff --git a/m4/strndup.m4 b/m4/strndup.m4 index dd5780b63..d421caebb 100644 --- a/m4/strndup.m4 +++ b/m4/strndup.m4 @@ -1,5 +1,5 @@ -# strndup.m4 serial 11 -dnl Copyright (C) 2002-2003, 2005-2006 Free Software Foundation, Inc. +# strndup.m4 serial 12 +dnl Copyright (C) 2002-2003, 2005-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -10,6 +10,9 @@ AC_DEFUN([gl_FUNC_STRNDUP], AC_REQUIRE([AC_GNU_SOURCE]) AC_CHECK_DECLS_ONCE([strndup]) + if test $ac_cv_have_decl_strndup = no; then + HAVE_DECL_STRNDUP=0 + fi # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'. AC_CACHE_CHECK([for working strndup], gl_cv_func_strndup, @@ -39,6 +42,7 @@ AC_DEFUN([gl_FUNC_STRNDUP], AC_DEFINE([HAVE_STRNDUP], 1, [Define if you have the strndup() function and it works.]) else + HAVE_STRNDUP=0 AC_LIBOBJ([strndup]) gl_PREREQ_STRNDUP fi diff --git a/m4/strnlen.m4 b/m4/strnlen.m4 index 0213a8ae3..e72288347 100644 --- a/m4/strnlen.m4 +++ b/m4/strnlen.m4 @@ -1,5 +1,5 @@ -# strnlen.m4 serial 6 -dnl Copyright (C) 2002-2003, 2005, 2006 Free Software Foundation, Inc. +# strnlen.m4 serial 7 +dnl Copyright (C) 2002-2003, 2005, 2006, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -9,6 +9,11 @@ AC_DEFUN([gl_FUNC_STRNLEN], dnl Persuade glibc to declare strnlen(). AC_REQUIRE([AC_GNU_SOURCE]) + AC_CHECK_DECLS_ONCE([strnlen]) + if test $ac_cv_have_decl_strnlen = no; then + HAVE_DECL_STRNLEN=0 + fi + AC_FUNC_STRNLEN if test $ac_cv_func_strnlen_working = no; then # This is necessary because automake-1.6.1 doens't understand @@ -22,6 +27,4 @@ AC_DEFUN([gl_FUNC_STRNLEN], ]) # Prerequisites of lib/strnlen.c. -AC_DEFUN([gl_PREREQ_STRNLEN], [ - AC_CHECK_DECLS_ONCE(strnlen) -]) +AC_DEFUN([gl_PREREQ_STRNLEN], [:]) diff --git a/m4/strpbrk.m4 b/m4/strpbrk.m4 index 68360684e..80f71d49f 100644 --- a/m4/strpbrk.m4 +++ b/m4/strpbrk.m4 @@ -1,5 +1,5 @@ -# strpbrk.m4 serial 2 -dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. +# strpbrk.m4 serial 3 +dnl Copyright (C) 2002-2003, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -8,6 +8,7 @@ AC_DEFUN([gl_FUNC_STRPBRK], [ AC_REPLACE_FUNCS(strpbrk) if test $ac_cv_func_strpbrk = no; then + HAVE_STRPBRK=0 gl_PREREQ_STRPBRK fi ]) diff --git a/m4/strsep.m4 b/m4/strsep.m4 index 40a087b3d..a1a624b56 100644 --- a/m4/strsep.m4 +++ b/m4/strsep.m4 @@ -1,5 +1,5 @@ -# strsep.m4 serial 3 -dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +# strsep.m4 serial 4 +dnl Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -10,7 +10,10 @@ AC_DEFUN([gl_FUNC_STRSEP], AC_REQUIRE([AC_GNU_SOURCE]) AC_REPLACE_FUNCS(strsep) - gl_PREREQ_STRSEP + if test $ac_cv_func_strsep = no; then + HAVE_STRSEP=0 + gl_PREREQ_STRSEP + fi ]) # Prerequisites of lib/strsep.c. diff --git a/m4/strstr.m4 b/m4/strstr.m4 index a785d4286..3639131c7 100644 --- a/m4/strstr.m4 +++ b/m4/strstr.m4 @@ -10,6 +10,7 @@ AC_DEFUN([gl_FUNC_STRSTR], dnl multibyte locales. Therefore we use our version always. AC_LIBOBJ(strstr) gl_PREREQ_STRSTR + REPLACE_STRSTR=1 ]) # Prerequisites of lib/strstr.c. diff --git a/m4/strtok_r.m4 b/m4/strtok_r.m4 index 332701cc5..c18dc5877 100644 --- a/m4/strtok_r.m4 +++ b/m4/strtok_r.m4 @@ -1,5 +1,5 @@ -# strtok_r.m4 serial 3 -dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +# strtok_r.m4 serial 4 +dnl Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -8,10 +8,13 @@ AC_DEFUN([gl_FUNC_STRTOK_R], [ AC_REPLACE_FUNCS(strtok_r) AC_CHECK_DECLS_ONCE(strtok_r) + if test $ac_cv_have_decl_strtok_r = no; then + HAVE_DECL_STRTOK_R=0 + fi gl_PREREQ_STRTOK_R ]) -# Prerequisites of lib/strtok_r.h and lib/strtok_r.c. +# Prerequisites of lib/strtok_r.c. AC_DEFUN([gl_PREREQ_STRTOK_R], [ AC_REQUIRE([AC_C_RESTRICT]) ]) diff --git a/modules/memmem b/modules/memmem index a6b7b93ea..2e8b29838 100644 --- a/modules/memmem +++ b/modules/memmem @@ -2,11 +2,11 @@ Description: memmem() function: locate first substring in a buffer. Files: -lib/memmem.h lib/memmem.c m4/memmem.m4 Depends-on: +string configure.ac: gl_FUNC_MEMMEM @@ -14,7 +14,7 @@ gl_FUNC_MEMMEM Makefile.am: Include: -"memmem.h" + License: LGPL diff --git a/modules/mempcpy b/modules/mempcpy index da13ec831..fc093deb3 100644 --- a/modules/mempcpy +++ b/modules/mempcpy @@ -2,11 +2,11 @@ Description: mempcpy() function: copy memory area, return point after last written byte. Files: -lib/mempcpy.h lib/mempcpy.c m4/mempcpy.m4 Depends-on: +string configure.ac: gl_FUNC_MEMPCPY @@ -14,7 +14,7 @@ gl_FUNC_MEMPCPY Makefile.am: Include: -"mempcpy.h" + License: LGPL diff --git a/modules/memrchr b/modules/memrchr index 618c38951..039b1325d 100644 --- a/modules/memrchr +++ b/modules/memrchr @@ -3,10 +3,10 @@ memrchr() function: scan memory for a byte, from the right end. Files: lib/memrchr.c -lib/memrchr.h m4/memrchr.m4 Depends-on: +string configure.ac: gl_FUNC_MEMRCHR @@ -14,7 +14,7 @@ gl_FUNC_MEMRCHR Makefile.am: Include: -"memrchr.h" + License: LGPL diff --git a/modules/stpcpy b/modules/stpcpy index 13a74df1f..d30c1cf6f 100644 --- a/modules/stpcpy +++ b/modules/stpcpy @@ -2,11 +2,11 @@ Description: stpcpy() function: copy a string, returning a pointer to its end. Files: -lib/stpcpy.h lib/stpcpy.c m4/stpcpy.m4 Depends-on: +string configure.ac: gl_FUNC_STPCPY @@ -14,11 +14,10 @@ gl_FUNC_STPCPY Makefile.am: Include: -"stpcpy.h" + License: LGPL Maintainer: Bruno Haible, glibc - diff --git a/modules/stpncpy b/modules/stpncpy index 78f72a4b5..87847103d 100644 --- a/modules/stpncpy +++ b/modules/stpncpy @@ -2,11 +2,11 @@ Description: stpncpy() function: copy a size-bounded string, returning a pointer to its end. Files: -lib/stpncpy.h lib/stpncpy.c m4/stpncpy.m4 Depends-on: +string configure.ac: gl_FUNC_STPNCPY @@ -14,11 +14,10 @@ gl_FUNC_STPNCPY Makefile.am: Include: -"stpncpy.h" + License: LGPL Maintainer: Bruno Haible, glibc - diff --git a/modules/strcase b/modules/strcase index 7d5c026c1..05c1c921c 100644 --- a/modules/strcase +++ b/modules/strcase @@ -2,7 +2,6 @@ Description: Case-insensitive string comparison functions. Files: -lib/strcase.h lib/strcasecmp.c lib/strncasecmp.c m4/strcase.m4 @@ -10,6 +9,7 @@ m4/mbrtowc.m4 Depends-on: mbuiter +string configure.ac: gl_STRCASE @@ -17,11 +17,10 @@ gl_STRCASE Makefile.am: Include: -"strcase.h" + License: LGPL Maintainer: Bruno Haible - diff --git a/modules/strchrnul b/modules/strchrnul index 4cd869826..ee2307ac3 100644 --- a/modules/strchrnul +++ b/modules/strchrnul @@ -2,11 +2,11 @@ Description: strchrnul(): Find the first occurrence of C in S or the final NUL byte. Files: -lib/strchrnul.h lib/strchrnul.c m4/strchrnul.m4 Depends-on: +string configure.ac: gl_FUNC_STRCHRNUL @@ -14,7 +14,7 @@ gl_FUNC_STRCHRNUL Makefile.am: Include: -"strchrnul.h" + License: LGPL diff --git a/modules/strdup b/modules/strdup index a42129962..e267a68a3 100644 --- a/modules/strdup +++ b/modules/strdup @@ -2,11 +2,11 @@ Description: strdup() function: duplicate a string. Files: -lib/strdup.h lib/strdup.c m4/strdup.m4 Depends-on: +string configure.ac: gl_FUNC_STRDUP @@ -14,7 +14,7 @@ gl_FUNC_STRDUP Makefile.am: Include: -"strdup.h" + License: LGPL diff --git a/modules/string b/modules/string new file mode 100644 index 000000000..54a5498e2 --- /dev/null +++ b/modules/string @@ -0,0 +1,52 @@ +Description: +A GNU-like . + +Files: +lib/string_.h +m4/string_h.m4 + +Depends-on: +absolute-header +extensions + +configure.ac: +gl_HEADER_STRING_H + +Makefile.am: +BUILT_SOURCES += string.h + +# We need the following in order to create when the system +# doesn't have one that works with the given compiler. +string.h: string_.h + rm -f $@-t $@ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''ABSOLUTE_STRING_H''@|$(ABSOLUTE_STRING_H)|g' \ + -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ + -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ + -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ + -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ + -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ + -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \ + -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ + -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ + -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \ + -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ + -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ + -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ + -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ + -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ + -e 's|@''REPLACE_STRCASECMP''@|$(REPLACE_STRCASECMP)|g' \ + -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ + < $(srcdir)/string_.h; \ + } > $@-t + mv $@-t $@ +MOSTLYCLEANFILES += string.h string.h-t + +Include: +#include + +License: +LGPL + +Maintainer: +all diff --git a/modules/strndup b/modules/strndup index 6b434ec1a..7246e0af0 100644 --- a/modules/strndup +++ b/modules/strndup @@ -2,11 +2,11 @@ Description: strndup() function: duplicate a size-bounded string. Files: -lib/strndup.h lib/strndup.c m4/strndup.m4 Depends-on: +string strnlen configure.ac: @@ -15,7 +15,7 @@ gl_FUNC_STRNDUP Makefile.am: Include: -"strndup.h" + License: LGPL diff --git a/modules/strnlen b/modules/strnlen index 74f4c1af4..56f20512b 100644 --- a/modules/strnlen +++ b/modules/strnlen @@ -2,12 +2,12 @@ Description: strnlen() function: determine the length of a size-bounded string. Files: -lib/strnlen.h lib/strnlen.c m4/strnlen.m4 Depends-on: extensions +string configure.ac: gl_FUNC_STRNLEN @@ -15,7 +15,7 @@ gl_FUNC_STRNLEN Makefile.am: Include: -"strnlen.h" + License: LGPL diff --git a/modules/strpbrk b/modules/strpbrk index bad245443..1222c00b9 100644 --- a/modules/strpbrk +++ b/modules/strpbrk @@ -2,11 +2,11 @@ Description: strpbrk() function: search a string for any of a set of characters. Files: -lib/strpbrk.h lib/strpbrk.c m4/strpbrk.m4 Depends-on: +string configure.ac: gl_FUNC_STRPBRK @@ -14,11 +14,10 @@ gl_FUNC_STRPBRK Makefile.am: Include: -"strpbrk.h" + License: LGPL Maintainer: Bruno Haible, glibc - diff --git a/modules/strsep b/modules/strsep index 4fd75a007..3510fbaca 100644 --- a/modules/strsep +++ b/modules/strsep @@ -2,11 +2,11 @@ Description: strsep() function: extract token from string. Files: -lib/strsep.h lib/strsep.c m4/strsep.m4 Depends-on: +string strpbrk configure.ac: @@ -15,7 +15,7 @@ gl_FUNC_STRSEP Makefile.am: Include: -"strsep.h" + License: LGPL diff --git a/modules/strstr b/modules/strstr index 586787269..f4868a4f5 100644 --- a/modules/strstr +++ b/modules/strstr @@ -2,13 +2,13 @@ Description: strstr() function: search for a substring in a string. Files: -lib/strstr.h lib/strstr.c m4/strstr.m4 m4/mbrtowc.m4 Depends-on: mbuiter +string configure.ac: gl_FUNC_STRSTR @@ -16,11 +16,10 @@ gl_FUNC_STRSTR Makefile.am: Include: -"strstr.h" + License: LGPL Maintainer: Bruno Haible, glibc - diff --git a/modules/strtok_r b/modules/strtok_r index 508b79d32..e5691d483 100644 --- a/modules/strtok_r +++ b/modules/strtok_r @@ -3,10 +3,10 @@ strtok_r() function: split string into tokens, thread safe. Files: lib/strtok_r.c -lib/strtok_r.h m4/strtok_r.m4 Depends-on: +string configure.ac: gl_FUNC_STRTOK_R @@ -14,7 +14,7 @@ gl_FUNC_STRTOK_R Makefile.am: Include: -"strtok_r.h" + License: LGPL diff --git a/tests/test-dirname.c b/tests/test-dirname.c index 20279d2a8..eace24e87 100644 --- a/tests/test-dirname.c +++ b/tests/test-dirname.c @@ -1,5 +1,5 @@ /* Test the gnulib dirname module. - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,8 +26,6 @@ #include #include -#include "strdup.h" - const char *program_name = "test-dirname"; struct test { diff --git a/tests/test-memmem.c b/tests/test-memmem.c index a2240fa3a..2308bbb54 100644 --- a/tests/test-memmem.c +++ b/tests/test-memmem.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004 Free Software Foundation + * Copyright (C) 2004, 2007 Free Software Foundation * Written by Simon Josefsson * * This program is free software; you can redistribute it and/or modify @@ -23,7 +23,6 @@ #include #include -#include "memmem.h" int main (int argc, char *argv[]) -- 2.11.0