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:
10
ChangeLog
10
ChangeLog
@@ -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.
|
||||||
|
@@ -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));
|
||||||
|
@@ -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,6 +25,8 @@ 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_CHECK_FUNCS_ONCE([stpncpy])
|
||||||
|
if test $ac_cv_func_stpncpy = yes; then
|
||||||
AC_CACHE_CHECK([for working stpncpy], [gl_cv_func_stpncpy], [
|
AC_CACHE_CHECK([for working stpncpy], [gl_cv_func_stpncpy], [
|
||||||
AC_TRY_RUN([
|
AC_TRY_RUN([
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -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
|
if test $gl_cv_func_stpncpy = yes; then
|
||||||
AC_DEFINE([HAVE_STPNCPY], [1],
|
AC_DEFINE([HAVE_STPNCPY], [1],
|
||||||
[Define if you have the stpncpy() function and it works.])
|
[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])
|
||||||
|
@@ -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])
|
||||||
|
@@ -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' \
|
||||||
|
Reference in New Issue
Block a user