# HG changeset patch # User Bruno Haible # Date 1315768318 -7200 # Node ID 550b8b7d6140de4788708d490f560336c3f8280b # Parent 2ef7d0e76b27ef0a06c62098941bfd525ec17792 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. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +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. diff --git a/doc/posix-headers/dirent.texi b/doc/posix-headers/dirent.texi --- a/doc/posix-headers/dirent.texi +++ b/doc/posix-headers/dirent.texi @@ -14,4 +14,7 @@ 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 --- 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 --- 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 @@ 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 --- a/modules/dirent +++ b/modules/dirent @@ -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_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' \