From 22f68bbd9f0cb9b39eddb5228e14fe2367b8c811 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Mon, 5 Apr 2010 12:51:03 +0200 Subject: [PATCH] strdup: Improve idiom. --- ChangeLog | 9 +++++++++ m4/strdup.m4 | 23 +++++++++++++++-------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index fd9fb9951..f4f3c7e0e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2010-04-05 Bruno Haible + strdup: Improve idiom. + * m4/strdup.m4 (gl_FUNC_STRDUP): Invoke gl_PREREQ_STRDUP only when + AC_LIBOBJ is used. + (gl_FUNC_STRDUP_POSIX): When strdup is missing and malloc is not POSIX + compliant, don't set REPLACE_STRDUP to 1. Invoke gl_PREREQ_STRDUP only + when AC_LIBOBJ is used. + +2010-04-05 Bruno Haible + mbsinit, mbrtowc, wcrtomb: Improve idioms. * m4/mbsinit.m4 (gl_FUNC_MBSINIT): When the function does not exist, don't set REPLACE_MBSINIT to 1. diff --git a/m4/strdup.m4 b/m4/strdup.m4 index 3a3b07dd5..ce40c2152 100644 --- a/m4/strdup.m4 +++ b/m4/strdup.m4 @@ -1,4 +1,4 @@ -# strdup.m4 serial 11 +# strdup.m4 serial 12 dnl Copyright (C) 2002-2010 Free Software Foundation, Inc. @@ -9,29 +9,36 @@ dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRDUP], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) - AC_REPLACE_FUNCS([strdup]) + AC_CHECK_FUNCS_ONCE([strdup]) + if test $ac_cv_func_strdup != yes; then + AC_LIBOBJ([strdup]) + gl_PREREQ_STRDUP + fi AC_CHECK_DECLS_ONCE([strdup]) if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi - 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]) + AC_CHECK_FUNCS_ONCE([strdup]) + if test $ac_cv_func_strdup = yes; then + if test $gl_cv_func_malloc_posix != yes; then + REPLACE_STRDUP=1 + AC_LIBOBJ([strdup]) + gl_PREREQ_STRDUP + fi else - AC_REPLACE_FUNCS([strdup]) + AC_LIBOBJ([strdup]) + gl_PREREQ_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. -- 2.11.0