+2010-04-05 Bruno Haible <bruno@clisp.org>
+
+ 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 <bruno@clisp.org>
mbsinit, mbrtowc, wcrtomb: Improve idioms.
-# strdup.m4 serial 11
+# strdup.m4 serial 12
dnl Copyright (C) 2002-2010 Free Software Foundation, Inc.
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.