Mercurial > hg > octave-lojdl > gnulib-hg
changeset 10456:a821fdd7b2b7
New module 'strdup-posix'.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 21 Sep 2008 14:54:54 +0200 |
parents | e8f55251d47e |
children | 85455fe7164d |
files | ChangeLog MODULES.html.sh doc/posix-functions/strdup.texi lib/string.in.h m4/strdup.m4 m4/string_h.m4 modules/getpass modules/strdup modules/strdup-posix modules/string |
diffstat | 10 files changed, 81 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2008-09-21 Bruno Haible <bruno@clisp.org> + + * 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 <bruno@clisp.org> * lib/fstrcmp.c: Add data about branch probabilities, from Ralf
--- a/MODULES.html.sh +++ b/MODULES.html.sh @@ -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
--- a/doc/posix-functions/strdup.texi +++ b/doc/posix-functions/strdup.texi @@ -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{<string.h>} 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
--- a/lib/string.in.h +++ b/lib/string.in.h @@ -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
--- a/m4/strdup.m4 +++ b/m4/strdup.m4 @@ -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], [:])
--- a/m4/string_h.m4 +++ b/m4/string_h.m4 @@ -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]) ])
--- a/modules/getpass +++ b/modules/getpass @@ -10,6 +10,7 @@ fseeko getline stdbool +strdup-posix configure.ac: gl_FUNC_GETPASS
--- a/modules/strdup +++ b/modules/strdup @@ -7,7 +7,6 @@ Depends-on: string -malloc-posix configure.ac: gl_FUNC_STRDUP
new file mode 100644 --- /dev/null +++ b/modules/strdup-posix @@ -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: +<string.h> + +License: +LGPLv2+ + +Maintainer: +all, glibc
--- a/modules/string +++ b/modules/string @@ -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' \