# HG changeset patch # User Bruno Haible # Date 1315768540 -7200 # Node ID 4adac94541e02ff307ba3b747c0ed43e0d3bca9c # Parent 550b8b7d6140de4788708d490f560336c3f8280b strings: Don't assume exists. * lib/strings.in.h: Include only if HAVE_STRINGS_H is 1. * m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Set HAVE_STRINGS_H. * modules/strings (Makefile.am): Substitute HAVE_STRINGS_H. * doc/posix-headers/strings.texi: Mention the MSVC problem. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2011-09-11 Bruno Haible + + strings: Don't assume exists. + * lib/strings.in.h: Include only if HAVE_STRINGS_H is 1. + * m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Set HAVE_STRINGS_H. + * modules/strings (Makefile.am): Substitute HAVE_STRINGS_H. + * doc/posix-headers/strings.texi: Mention the MSVC problem. + 2011-09-11 Bruno Haible dirent: Don't assume exists. diff --git a/doc/posix-headers/strings.texi b/doc/posix-headers/strings.texi --- a/doc/posix-headers/strings.texi +++ b/doc/posix-headers/strings.texi @@ -15,6 +15,9 @@ Portability problems not fixed by Gnulib: @itemize @item +This header file is missing on some platforms: +MSVC 9. +@item This header file defines symbols, such as @samp{index}, often used for variables, making debugging harder. @end itemize diff --git a/lib/strings.in.h b/lib/strings.in.h --- a/lib/strings.in.h +++ b/lib/strings.in.h @@ -30,7 +30,9 @@ #endif /* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_STRINGS_H@ +#if @HAVE_STRINGS_H@ +# @INCLUDE_NEXT@ @NEXT_STRINGS_H@ +#endif #ifndef _@GUARD_PREFIX@_STRINGS_H #define _@GUARD_PREFIX@_STRINGS_H diff --git a/m4/strings_h.m4 b/m4/strings_h.m4 --- a/m4/strings_h.m4 +++ b/m4/strings_h.m4 @@ -1,5 +1,5 @@ # Configure a replacement for . -# serial 5 +# serial 6 # Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation @@ -16,7 +16,14 @@ AC_DEFUN([gl_HEADER_STRINGS_H_BODY], [ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS]) + gl_CHECK_NEXT_HEADERS([strings.h]) + if test $ac_cv_header_strings_h = yes; then + HAVE_STRINGS_H=1 + else + HAVE_STRINGS_H=0 + fi + AC_SUBST([HAVE_STRINGS_H]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. diff --git a/modules/strings b/modules/strings --- a/modules/strings +++ b/modules/strings @@ -24,6 +24,7 @@ $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \ + -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \