From c5728261c324a75f8d23dd7d10cb42dde9420227 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Mon, 16 Aug 2010 02:09:11 +0200 Subject: [PATCH] stpncpy: Allow stpncpy to be defined as a macro. --- ChangeLog | 8 ++++++++ lib/string.in.h | 1 + m4/stpncpy.m4 | 5 ++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d86bbc37e..86de94dde 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2010-08-15 Bruno Haible + + stpncpy: Allow stpncpy to be defined as a macro. + * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Don't attempt to redeclare stpncpy + if it's already correctly declared. + * lib/string.in.h (stpncpy): Undefine before redefining. + Reported by Jeremy Huddleston . + 2010-08-14 Bruno Haible Rename module 'memxfrm' to 'amemxfrm'. diff --git a/lib/string.in.h b/lib/string.in.h index fb7377006..bb6aa58e2 100644 --- a/lib/string.in.h +++ b/lib/string.in.h @@ -233,6 +233,7 @@ _GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " #if @GNULIB_STPNCPY@ # if @REPLACE_STPNCPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef stpncpy # define stpncpy rpl_stpncpy # endif _GL_FUNCDECL_RPL (stpncpy, char *, diff --git a/m4/stpncpy.m4 b/m4/stpncpy.m4 index d2344acc4..158cc087d 100644 --- a/m4/stpncpy.m4 +++ b/m4/stpncpy.m4 @@ -1,4 +1,4 @@ -# stpncpy.m4 serial 11 +# stpncpy.m4 serial 12 dnl Copyright (C) 2002-2003, 2005-2007, 2009-2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation @@ -25,6 +25,7 @@ AC_DEFUN([gl_FUNC_STPNCPY], dnl in AIX: dest + max(0,n-1) dnl Only the glibc return value is useful in practice. + AC_CHECK_DECLS_ONCE([stpncpy]) AC_CHECK_FUNCS_ONCE([stpncpy]) if test $ac_cv_func_stpncpy = yes; then AC_CACHE_CHECK([for working stpncpy], [gl_cv_func_stpncpy], [ @@ -32,7 +33,9 @@ AC_DEFUN([gl_FUNC_STPNCPY], #include #include /* for strcpy */ /* The stpncpy prototype is missing in on AIX 4. */ +#if !HAVE_DECL_STPNCPY extern char *stpncpy (char *dest, const char *src, size_t n); +#endif int main () { const char *src = "Hello"; char dest[10]; -- 2.11.0