# HG changeset patch # User Bruno Haible # Date 1222001694 -7200 # Node ID 2d8e9a72916b51c0b32158358be7030a6c1ad386 # Parent 2fedcdb714475314e99bc8845c03dcb517f440d6 New module 'strdup-posix'. diff -r 2fedcdb71447 -r 2d8e9a72916b ChangeLog --- a/ChangeLog Sat Sep 20 15:32:21 2008 +0200 +++ b/ChangeLog Sun Sep 21 14:54:54 2008 +0200 @@ -1,3 +1,20 @@ +2008-09-21 Bruno Haible + + * modules/getpass (Depends-on): Add strdup-posix. + + New module 'strdup-posix'. + * modules/strdup-posix: New file. + * m4/strdup.m4 (gl_FUNC_STRDUP_POSIX): New macro. + * lib/string.in.h (strdup): Replace if REPLACE_STRDUP is 1. + * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize + REPLACE_STRDUP. + * modules/string (Makefile.am): Substitute REPLACE_STRDUP. + * doc/posix-functions/strdup.texi: Mention module strdup-posix. + * MODULES.html.sh (Support for systems lacking POSIX:2001): Add + strdup-posix. + + * modules/strdup (Depends-on): Remove malloc-posix. + 2008-09-20 Bruno Haible * lib/fstrcmp.c: Add data about branch probabilities, from Ralf diff -r 2fedcdb71447 -r 2d8e9a72916b MODULES.html.sh --- a/MODULES.html.sh Sat Sep 20 15:32:21 2008 +0200 +++ b/MODULES.html.sh Sun Sep 21 14:54:54 2008 +0200 @@ -2121,6 +2121,7 @@ func_module sleep func_module snprintf-posix func_module sprintf-posix + func_module strdup-posix func_module string func_module strings func_module tempname diff -r 2fedcdb71447 -r 2d8e9a72916b doc/posix-functions/strdup.texi --- a/doc/posix-functions/strdup.texi Sat Sep 20 15:32:21 2008 +0200 +++ b/doc/posix-functions/strdup.texi Sun Sep 21 14:54:54 2008 +0200 @@ -4,9 +4,9 @@ POSIX specification: @url{http://www.opengroup.org/susv3xsh/strdup.html} -Gnulib module: strdup +Gnulib module: strdup or strdup-posix -Portability problems fixed by Gnulib: +Portability problems fixed by either Gnulib module @code{strdup} or @code{strdup-posix}: @itemize @item This function is missing on some old platforms. @@ -14,10 +14,14 @@ This function has no prototype in @code{} on some old platforms. @end itemize -Portability problems not fixed by Gnulib: +Portability problems fixed by Gnulib module @code{strdup-posix}: @itemize @item Upon failure, the function does not set @code{errno} to @code{ENOMEM} on some platforms: mingw. @end itemize + +Portability problems not fixed by Gnulib: +@itemize +@end itemize diff -r 2fedcdb71447 -r 2d8e9a72916b lib/string.in.h --- a/lib/string.in.h Sat Sep 20 15:32:21 2008 +0200 +++ b/lib/string.in.h Sun Sep 21 14:54:54 2008 +0200 @@ -167,7 +167,11 @@ /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_STRDUP@ -# if ! @HAVE_DECL_STRDUP@ && ! defined strdup +# if @REPLACE_STRDUP@ +# undef strdup +# define strdup rpl_strdup +# endif +# if !(@HAVE_DECL_STRDUP@ || defined strdup) || @REPLACE_STRDUP@ extern char *strdup (char const *__s); # endif #elif defined GNULIB_POSIXCHECK diff -r 2fedcdb71447 -r 2d8e9a72916b m4/strdup.m4 --- a/m4/strdup.m4 Sat Sep 20 15:32:21 2008 +0200 +++ b/m4/strdup.m4 Sun Sep 21 14:54:54 2008 +0200 @@ -1,7 +1,6 @@ -# strdup.m4 serial 9 +# strdup.m4 serial 10 -dnl Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software -dnl Foundation, Inc. +dnl Copyright (C) 2002-2008 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -18,5 +17,22 @@ gl_PREREQ_STRDUP ]) +AC_DEFUN([gl_FUNC_STRDUP_POSIX], +[ + AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) + AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) + if test $gl_cv_func_malloc_posix != yes; then + REPLACE_STRDUP=1 + AC_LIBOBJ([strdup]) + else + AC_REPLACE_FUNCS(strdup) + fi + AC_CHECK_DECLS_ONCE(strdup) + if test $ac_cv_have_decl_strdup = no; then + HAVE_DECL_STRDUP=0 + fi + gl_PREREQ_STRDUP +]) + # Prerequisites of lib/strdup.c. AC_DEFUN([gl_PREREQ_STRDUP], [:]) diff -r 2fedcdb71447 -r 2d8e9a72916b m4/string_h.m4 --- a/m4/string_h.m4 Sat Sep 20 15:32:21 2008 +0200 +++ b/m4/string_h.m4 Sun Sep 21 14:54:54 2008 +0200 @@ -5,7 +5,7 @@ # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 5 +# serial 6 # Written by Paul Eggert. @@ -83,9 +83,10 @@ HAVE_DECL_STRERROR=1; AC_SUBST([HAVE_DECL_STRERROR]) HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL]) HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP]) + REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) + REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) + REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) + REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) - REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) - REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) - REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) ]) diff -r 2fedcdb71447 -r 2d8e9a72916b modules/getpass --- a/modules/getpass Sat Sep 20 15:32:21 2008 +0200 +++ b/modules/getpass Sun Sep 21 14:54:54 2008 +0200 @@ -10,6 +10,7 @@ fseeko getline stdbool +strdup-posix configure.ac: gl_FUNC_GETPASS diff -r 2fedcdb71447 -r 2d8e9a72916b modules/strdup --- a/modules/strdup Sat Sep 20 15:32:21 2008 +0200 +++ b/modules/strdup Sun Sep 21 14:54:54 2008 +0200 @@ -7,7 +7,6 @@ Depends-on: string -malloc-posix configure.ac: gl_FUNC_STRDUP diff -r 2fedcdb71447 -r 2d8e9a72916b modules/strdup-posix --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/strdup-posix Sun Sep 21 14:54:54 2008 +0200 @@ -0,0 +1,25 @@ +Description: +strdup() function: duplicate a string. + +Files: +lib/strdup.c +m4/strdup.m4 + +Depends-on: +string +malloc-posix + +configure.ac: +gl_FUNC_STRDUP_POSIX +gl_STRING_MODULE_INDICATOR([strdup]) + +Makefile.am: + +Include: + + +License: +LGPLv2+ + +Maintainer: +all, glibc diff -r 2fedcdb71447 -r 2d8e9a72916b modules/string --- a/modules/string Sat Sep 20 15:32:21 2008 +0200 +++ b/modules/string Sun Sep 21 14:54:54 2008 +0200 @@ -76,6 +76,7 @@ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ + -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \