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>
|
||||
|
||||
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
|
||||
last non-NUL byte written into DST. */
|
||||
#if @GNULIB_STPNCPY@
|
||||
# if ! @HAVE_STPNCPY@
|
||||
# if @REPLACE_STPNCPY@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# define stpncpy rpl_stpncpy
|
||||
# endif
|
||||
@@ -234,6 +234,12 @@ _GL_CXXALIAS_RPL (stpncpy, char *,
|
||||
(char *restrict __dst, char const *restrict __src,
|
||||
size_t __n));
|
||||
# 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 *,
|
||||
(char *restrict __dst, char const *restrict __src,
|
||||
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 Inc.
|
||||
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 Only the glibc return value is useful in practice.
|
||||
|
||||
AC_CACHE_CHECK([for working stpncpy], [gl_cv_func_stpncpy], [
|
||||
AC_TRY_RUN([
|
||||
AC_CHECK_FUNCS_ONCE([stpncpy])
|
||||
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 <string.h> /* for strcpy */
|
||||
/* 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);
|
||||
exit(0);
|
||||
}
|
||||
], gl_cv_func_stpncpy=yes, gl_cv_func_stpncpy=no,
|
||||
[AC_EGREP_CPP([Thanks for using GNU], [
|
||||
], [gl_cv_func_stpncpy=yes], [gl_cv_func_stpncpy=no],
|
||||
[AC_EGREP_CPP([Thanks for using GNU], [
|
||||
#include <features.h>
|
||||
#ifdef __GNU_LIBRARY__
|
||||
Thanks for using GNU
|
||||
#endif
|
||||
], gl_cv_func_stpncpy=yes, gl_cv_func_stpncpy=no)])])
|
||||
|
||||
if test $gl_cv_func_stpncpy = yes; then
|
||||
AC_DEFINE([HAVE_STPNCPY], [1],
|
||||
[Define if you have the stpncpy() function and it works.])
|
||||
], [gl_cv_func_stpncpy=yes], [gl_cv_func_stpncpy=no])
|
||||
])
|
||||
])
|
||||
if test $gl_cv_func_stpncpy = yes; then
|
||||
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
|
||||
HAVE_STPNCPY=0
|
||||
AC_LIBOBJ([stpncpy])
|
||||
|
@@ -5,7 +5,7 @@
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 13
|
||||
# serial 14
|
||||
|
||||
# Written by Paul Eggert.
|
||||
|
||||
@@ -95,6 +95,7 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
|
||||
HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP])
|
||||
REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR])
|
||||
REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM])
|
||||
REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY])
|
||||
REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP])
|
||||
REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR])
|
||||
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_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|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_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
|
||||
-e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
|
||||
|
Reference in New Issue
Block a user