[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: vasnwprintf: Port to older platforms without swprintf
From: |
Bruno Haible |
Subject: |
Re: vasnwprintf: Port to older platforms without swprintf |
Date: |
Wed, 22 Mar 2023 21:34:09 +0100 |
Now, on Solaris 11.3 with gcc, I see a warning
../../gllib/vasnprintf.c:275:25: warning: implicit declaration of function
‘wcsnlen’ [-Wimplicit-function-declaration]
I don't know whether that's a Solaris 11 bug or a GCC installation/configuration
problem. Anyway, this simple patch fixes it.
2023-03-22 Bruno Haible <bruno@clisp.org>
vasnwprintf: Fix a warning: implicit declaration of function ‘wcsnlen’.
* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Test also whether wcsnlen is
declared.
* lib/vasnprintf.c (local_wcsnlen): Together with HAVE_WCSNLEN, test
also HAVE_DECL_WCSNLEN.
diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
index 618fae7c77..732d13661f 100644
--- a/lib/vasnprintf.c
+++ b/lib/vasnprintf.c
@@ -271,7 +271,7 @@ local_wcslen (const wchar_t *s)
#endif
#if (!USE_SNPRINTF || (WIDE_CHAR_VERSION && DCHAR_IS_TCHAR) ||
!HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && HAVE_WCHAR_T &&
WIDE_CHAR_VERSION
-# if HAVE_WCSNLEN
+# if HAVE_WCSNLEN && HAVE_DECL_WCSNLEN
# define local_wcsnlen wcsnlen
# else
# ifndef local_wcsnlen_defined
diff --git a/m4/vasnprintf.m4 b/m4/vasnprintf.m4
index 911e77c874..a42b5f83ac 100644
--- a/m4/vasnprintf.m4
+++ b/m4/vasnprintf.m4
@@ -1,4 +1,4 @@
-# vasnprintf.m4 serial 45
+# vasnprintf.m4 serial 46
dnl Copyright (C) 2002-2004, 2006-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -96,6 +96,7 @@ AC_DEFUN_ONCE([gl_PREREQ_VASNWPRINTF]
[
AC_CHECK_FUNCS_ONCE([swprintf wcsnlen mbrtowc])
AC_CHECK_DECLS([_snwprintf], , , [[#include <stdio.h>]])
+ AC_CHECK_DECLS([wcsnlen], , , [[#include <wchar.h>]])
gl_SWPRINTF_WORKS
case "$gl_cv_func_swprintf_works" in
*yes)