1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2025-08-08 17:22:05 +03:00

stpncpy: Fix C++ test error on mingw.

This commit is contained in:
Bruno Haible
2010-04-03 13:21:17 +02:00
parent 759d93d57c
commit f550ae27cb
5 changed files with 38 additions and 12 deletions

View File

@@ -1,3 +1,13 @@
2010-04-03 Bruno Haible <bruno@clisp.org>
stpncpy: Fix C++ test error on mingw.
* lib/string.in.h (stpncpy): Use modern idiom.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Distinguish the case that the
function is missing and that it needs to be replaced.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
REPLACE_STPNCPY.
* modules/string (Makefile.am): Replace REPLACE_STPNCPY.
2010-04-03 Bruno Haible <bruno@clisp.org> 2010-04-03 Bruno Haible <bruno@clisp.org>
sys_stat: Fix C++ test error on mingw. sys_stat: Fix C++ test error on mingw.

View File

@@ -222,7 +222,7 @@ _GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - "
/* Copy no more than N bytes of SRC to DST, returning a pointer past the /* Copy no more than N bytes of SRC to DST, returning a pointer past the
last non-NUL byte written into DST. */ last non-NUL byte written into DST. */
#if @GNULIB_STPNCPY@ #if @GNULIB_STPNCPY@
# if ! @HAVE_STPNCPY@ # if @REPLACE_STPNCPY@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE) # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define stpncpy rpl_stpncpy # define stpncpy rpl_stpncpy
# endif # endif
@@ -234,6 +234,12 @@ _GL_CXXALIAS_RPL (stpncpy, char *,
(char *restrict __dst, char const *restrict __src, (char *restrict __dst, char const *restrict __src,
size_t __n)); size_t __n));
# else # else
# if ! @HAVE_STPNCPY@
_GL_FUNCDECL_SYS (stpncpy, char *,
(char *restrict __dst, char const *restrict __src,
size_t __n)
_GL_ARG_NONNULL ((1, 2)));
# endif
_GL_CXXALIAS_SYS (stpncpy, char *, _GL_CXXALIAS_SYS (stpncpy, char *,
(char *restrict __dst, char const *restrict __src, (char *restrict __dst, char const *restrict __src,
size_t __n)); size_t __n));

View File

@@ -1,4 +1,4 @@
# stpncpy.m4 serial 10 # stpncpy.m4 serial 11
dnl Copyright (C) 2002-2003, 2005-2007, 2009-2010 Free Software Foundation, dnl Copyright (C) 2002-2003, 2005-2007, 2009-2010 Free Software Foundation,
dnl Inc. dnl Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
@@ -25,8 +25,10 @@ AC_DEFUN([gl_FUNC_STPNCPY],
dnl in AIX: dest + max(0,n-1) dnl in AIX: dest + max(0,n-1)
dnl Only the glibc return value is useful in practice. dnl Only the glibc return value is useful in practice.
AC_CACHE_CHECK([for working stpncpy], [gl_cv_func_stpncpy], [ AC_CHECK_FUNCS_ONCE([stpncpy])
AC_TRY_RUN([ if test $ac_cv_func_stpncpy = yes; then
AC_CACHE_CHECK([for working stpncpy], [gl_cv_func_stpncpy], [
AC_TRY_RUN([
#include <stdlib.h> #include <stdlib.h>
#include <string.h> /* for strcpy */ #include <string.h> /* for strcpy */
/* The stpncpy prototype is missing in <string.h> on AIX 4. */ /* The stpncpy prototype is missing in <string.h> on AIX 4. */
@@ -45,17 +47,23 @@ int main () {
if (stpncpy (dest, src, 7) != dest + 5) exit(1); if (stpncpy (dest, src, 7) != dest + 5) exit(1);
exit(0); exit(0);
} }
], gl_cv_func_stpncpy=yes, gl_cv_func_stpncpy=no, ], [gl_cv_func_stpncpy=yes], [gl_cv_func_stpncpy=no],
[AC_EGREP_CPP([Thanks for using GNU], [ [AC_EGREP_CPP([Thanks for using GNU], [
#include <features.h> #include <features.h>
#ifdef __GNU_LIBRARY__ #ifdef __GNU_LIBRARY__
Thanks for using GNU Thanks for using GNU
#endif #endif
], gl_cv_func_stpncpy=yes, gl_cv_func_stpncpy=no)])]) ], [gl_cv_func_stpncpy=yes], [gl_cv_func_stpncpy=no])
])
if test $gl_cv_func_stpncpy = yes; then ])
AC_DEFINE([HAVE_STPNCPY], [1], if test $gl_cv_func_stpncpy = yes; then
[Define if you have the stpncpy() function and it works.]) AC_DEFINE([HAVE_STPNCPY], [1],
[Define if you have the stpncpy() function and it works.])
else
REPLACE_STPNCPY=1
AC_LIBOBJ([stpncpy])
gl_PREREQ_STPNCPY
fi
else else
HAVE_STPNCPY=0 HAVE_STPNCPY=0
AC_LIBOBJ([stpncpy]) AC_LIBOBJ([stpncpy])

View File

@@ -5,7 +5,7 @@
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
# serial 13 # serial 14
# Written by Paul Eggert. # Written by Paul Eggert.
@@ -95,6 +95,7 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP]) HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP])
REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR]) REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR])
REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM])
REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY])
REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP])
REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR])
REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR])

View File

@@ -79,6 +79,7 @@ string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \ -e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \
-e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
-e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
-e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
-e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
-e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
-e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \