From 28d57000306f68f4ef8f0ada970c5733f9ed99f4 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 11 Sep 2011 21:11:58 +0200 Subject: [PATCH] dirent: Don't assume exists. * lib/dirent.in.h: Include only if HAVE_DIRENT_H is 1. * m4/dirent_h.m4 (gl_DIRENT_H): Set HAVE_DIRENT_H. * modules/dirent (Makefile.am): Substitute HAVE_DIRENT_H. * doc/posix-headers/dirent.texi: Mention the MSVC problem. --- ChangeLog | 8 ++++++++ doc/posix-headers/dirent.texi | 3 +++ lib/dirent.in.h | 4 +++- m4/dirent_h.m4 | 8 +++++++- modules/dirent | 1 + 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8f5725ae6..f6987e2e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2011-09-11 Bruno Haible + dirent: Don't assume exists. + * lib/dirent.in.h: Include only if HAVE_DIRENT_H is 1. + * m4/dirent_h.m4 (gl_DIRENT_H): Set HAVE_DIRENT_H. + * modules/dirent (Makefile.am): Substitute HAVE_DIRENT_H. + * doc/posix-headers/dirent.texi: Mention the MSVC problem. + +2011-09-11 Bruno Haible + Fix wint_t on MSVC. * lib/wchar.in.h (wint_t): On MSVC, override it. * lib/wctype.in.h (wint_t): Likewise. diff --git a/doc/posix-headers/dirent.texi b/doc/posix-headers/dirent.texi index a89b2bf0b..84b407829 100644 --- a/doc/posix-headers/dirent.texi +++ b/doc/posix-headers/dirent.texi @@ -14,4 +14,7 @@ glibc 2.8 and others. Portability problems not fixed by Gnulib: @itemize +@item +This header file is missing on some platforms: +MSVC 9. @end itemize diff --git a/lib/dirent.in.h b/lib/dirent.in.h index ebbc42551..a8b3f490a 100644 --- a/lib/dirent.in.h +++ b/lib/dirent.in.h @@ -22,7 +22,9 @@ @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_DIRENT_H@ +#if @HAVE_DIRENT_H@ +# @INCLUDE_NEXT@ @NEXT_DIRENT_H@ +#endif #ifndef _@GUARD_PREFIX@_DIRENT_H #define _@GUARD_PREFIX@_DIRENT_H diff --git a/m4/dirent_h.m4 b/m4/dirent_h.m4 index fdc2c440d..5ecfd8305 100644 --- a/m4/dirent_h.m4 +++ b/m4/dirent_h.m4 @@ -1,4 +1,4 @@ -# dirent_h.m4 serial 14 +# dirent_h.m4 serial 15 dnl Copyright (C) 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -14,6 +14,12 @@ AC_DEFUN([gl_DIRENT_H], dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([dirent.h]) + if test $ac_cv_header_dirent_h = yes; then + HAVE_DIRENT_H=1 + else + HAVE_DIRENT_H=0 + fi + AC_SUBST([HAVE_DIRENT_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/dirent b/modules/dirent index 2e4fbee17..0fdf94b37 100644 --- a/modules/dirent +++ b/modules/dirent @@ -24,6 +24,7 @@ dirent.h: dirent.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H $(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_DIRENT_H''@|$(HAVE_DIRENT_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' \ -- 2.11.0