bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AC_HEADER_DIRENT (was Re: [bug-gnulib] Last few obsolescent macros)


From: Derek R. Price
Subject: Re: AC_HEADER_DIRENT (was Re: [bug-gnulib] Last few obsolescent macros)
Date: Wed, 05 Jul 2006 12:52:55 -0400
User-agent: Thunderbird 1.5.0.4 (Windows/20060516)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Bruno & bug-gnulib, sorry for the double-copy, but I realized belatedly
that it may be useful to CC bug-cvs on this one:

Derek R. Price wrote:
> Bruno Haible wrote:
>> Derek R. Price wrote:
>>> Removing references to AC_HEADER_DIRENT (replacing with
>>> AC_CHECK_HEADERS_ONCE([dirent.h]))
>> Yes. All Unix systems nowadays have <dirent.h>, OpenVMS too. But native Woe32
>> (MSVCRT, not mingw) doesn't.
> 
> Thanks, Bruno.  I've attached a patch that replaces all the references
> to AC_HEADER_DIRENT with calls to AC_CHECK_HEADERS_ONCE([dirent.h
> ndir.h]) and makes the accompanying changes in lib/*.  This patch does
> simplify, though not quite as much as I was originally hoping, since I
> had to leave in the <ndir.h> support for Windows.
> 
> I did leave these potentially unneeded lines in glob.c that I was unsure of:
> 
> # ifdef HAVE_VMSDIR_H
> #  include "vmsdir.h"
> # endif /* HAVE_VMSDIR_H */
> 
> Is OpenVMS the only practical VMS target left?  Do any others have
> <dirent.h>?  A quick bug-cvs search shows that all the VMS bug reports
> for the last few years have been for OpenVMS.  CVS also appears to still
> be including a replacment <ndir.h> for VMS that looks much like the
> "vmsdir.h"s I could find online, though I would not be surprised to find
> out it was no longer necessary.
> 
> 
> 2006-07-05  Derek R. Price  <address@hidden>
> 
>       * lib/backupfile.c, lib/dirfd.h, lib/fts.c, lib/getcwd.c,
>       lib/glob.c, lib/savedir.c:  Remove obsolescent support for
>       <sys/ndir.h> and <sys/dir.h>.
>       * m4/backupfile.m4, m4/d-ino.m4, m4/d-type.m4, m4/dirfd.m4,
>       m4/fts.m4, m4/getcwd.m4, m4/glob.m4, m4/readdir.m4,
>       m4/savedir.m4: Likewise.  Check for <dirent.h> and <ndir.h>
>       explicitly instead of calling the obsolescent AC_HEADER_DIRENT.
> 
> Cheers,
> 
> Derek
> 
> 
> ------------------------------------------------------------------------
> 
> Index: lib/backupfile.c
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/lib/backupfile.c,v
> retrieving revision 1.48
> diff -u -p -r1.48 backupfile.c
> --- lib/backupfile.c  3 Jul 2006 08:32:46 -0000       1.48
> +++ lib/backupfile.c  5 Jul 2006 16:18:52 -0000
> @@ -44,21 +44,13 @@
>  #if HAVE_DIRENT_H
>  # include <dirent.h>
>  # define NLENGTH(direct) strlen ((direct)->d_name)
> -#else
> +#elif HAVE_NDIR_H
>  # define dirent direct
>  # define NLENGTH(direct) ((size_t) (direct)->d_namlen)
> -# if HAVE_SYS_NDIR_H
> -#  include <sys/ndir.h>
> -# endif
> -# if HAVE_SYS_DIR_H
> -#  include <sys/dir.h>
> -# endif
> -# if HAVE_NDIR_H
> -#  include <ndir.h>
> -# endif
> +# include <ndir.h>
>  #endif
>  
> -#if HAVE_DIRENT_H || HAVE_NDIR_H || HAVE_SYS_DIR_H || HAVE_SYS_NDIR_H
> +#if HAVE_DIRENT_H || HAVE_NDIR_H
>  # define HAVE_DIR 1
>  #else
>  # define HAVE_DIR 0
> Index: lib/dirfd.h
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/lib/dirfd.h,v
> retrieving revision 1.6
> diff -u -p -r1.6 dirfd.h
> --- lib/dirfd.h       19 Sep 2005 17:28:14 -0000      1.6
> +++ lib/dirfd.h       5 Jul 2006 16:18:52 -0000
> @@ -21,18 +21,10 @@
>  
>  #if HAVE_DIRENT_H
>  # include <dirent.h>
> -#else /* not HAVE_DIRENT_H */
> +#elif HAVE_NDIR_H
>  # define dirent direct
> -# if HAVE_SYS_NDIR_H
> -#  include <sys/ndir.h>
> -# endif /* HAVE_SYS_NDIR_H */
> -# if HAVE_SYS_DIR_H
> -#  include <sys/dir.h>
> -# endif /* HAVE_SYS_DIR_H */
> -# if HAVE_NDIR_H
> -#  include <ndir.h>
> -# endif /* HAVE_NDIR_H */
> -#endif /* HAVE_DIRENT_H */
> +# include <ndir.h>
> +#endif
>  
>  #ifndef HAVE_DECL_DIRFD
>  "this configure-time declaration test was not run"
> Index: lib/fts.c
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/lib/fts.c,v
> retrieving revision 1.11
> diff -u -p -r1.11 fts.c
> --- lib/fts.c 26 Jan 2006 22:12:26 -0000      1.11
> +++ lib/fts.c 5 Jul 2006 16:18:52 -0000
> @@ -82,18 +82,10 @@ static char sccsid[] = "@(#)fts.c 8.6 (B
>  # if HAVE_DIRENT_H
>  #  include <dirent.h>
>  #  define NAMLEN(dirent) strlen ((dirent)->d_name)
> -# else
> +# elif HAVE_NDIR_H
>  #  define dirent direct
>  #  define NAMLEN(dirent) (dirent)->d_namlen
> -#  if HAVE_SYS_NDIR_H
> -#   include <sys/ndir.h>
> -#  endif
> -#  if HAVE_SYS_DIR_H
> -#   include <sys/dir.h>
> -#  endif
> -#  if HAVE_NDIR_H
> -#   include <ndir.h>
> -#  endif
> +#  include <ndir.h>
>  # endif
>  #endif
>  
> Index: lib/getcwd.c
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/lib/getcwd.c,v
> retrieving revision 1.12
> diff -u -p -r1.12 getcwd.c
> --- lib/getcwd.c      3 Jul 2006 08:32:46 -0000       1.12
> +++ lib/getcwd.c      5 Jul 2006 16:18:52 -0000
> @@ -41,17 +41,9 @@
>  # ifndef _D_EXACT_NAMLEN
>  #  define _D_EXACT_NAMLEN(d) strlen ((d)->d_name)
>  # endif
> -#else
> +#elif HAVE_NDIR_H
>  # define dirent direct
> -# if HAVE_SYS_NDIR_H
> -#  include <sys/ndir.h>
> -# endif
> -# if HAVE_SYS_DIR_H
> -#  include <sys/dir.h>
> -# endif
> -# if HAVE_NDIR_H
> -#  include <ndir.h>
> -# endif
> +# include <ndir.h>
>  #endif
>  #ifndef _D_EXACT_NAMLEN
>  # define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
> Index: lib/glob.c
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/lib/glob.c,v
> retrieving revision 1.6
> diff -u -p -r1.6 glob.c
> --- lib/glob.c        22 Jun 2006 23:40:20 -0000      1.6
> +++ lib/glob.c        5 Jul 2006 16:18:52 -0000
> @@ -50,15 +50,9 @@
>  #if defined HAVE_DIRENT_H || defined __GNU_LIBRARY__
>  # include <dirent.h>
>  # define NAMLEN(dirent) strlen((dirent)->d_name)
> -#else
> +#elif HAVE_NDIR_H
>  # define dirent direct
>  # define NAMLEN(dirent) (dirent)->d_namlen
> -# ifdef HAVE_SYS_NDIR_H
> -#  include <sys/ndir.h>
> -# endif
> -# ifdef HAVE_SYS_DIR_H
> -#  include <sys/dir.h>
> -# endif
>  # ifdef HAVE_NDIR_H
>  #  include <ndir.h>
>  # endif
> Index: lib/savedir.c
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/lib/savedir.c,v
> retrieving revision 1.29
> diff -u -p -r1.29 savedir.c
> --- lib/savedir.c     28 Jun 2006 22:25:49 -0000      1.29
> +++ lib/savedir.c     5 Jul 2006 16:18:52 -0000
> @@ -31,17 +31,9 @@
>  
>  #if HAVE_DIRENT_H
>  # include <dirent.h>
> -#else
> +#elif HAVE_NDIR_H
>  # define dirent direct
> -# if HAVE_SYS_NDIR_H
> -#  include <sys/ndir.h>
> -# endif
> -# if HAVE_SYS_DIR_H
> -#  include <sys/dir.h>
> -# endif
> -# if HAVE_NDIR_H
> -#  include <ndir.h>
> -# endif
> +# include <ndir.h>
>  #endif
>  
>  #include <stddef.h>
> Index: m4/backupfile.m4
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/m4/backupfile.m4,v
> retrieving revision 1.10
> diff -u -p -r1.10 backupfile.m4
> --- m4/backupfile.m4  23 Sep 2005 04:15:13 -0000      1.10
> +++ m4/backupfile.m4  5 Jul 2006 16:18:52 -0000
> @@ -10,7 +10,7 @@ AC_DEFUN([gl_BACKUPFILE],
>    AC_LIBOBJ([backupfile])
>  
>    dnl Prerequisites of lib/backupfile.c.
> -  AC_REQUIRE([AC_HEADER_DIRENT])
> +  AC_CHECK_HEADERS_ONCE([dirent.h ndir.h])
>    AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO])
>    AC_REQUIRE([gl_AC_DOS])
>    AC_REQUIRE([AC_SYS_LONG_FILE_NAMES])
> Index: m4/d-ino.m4
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/m4/d-ino.m4,v
> retrieving revision 1.8
> diff -u -p -r1.8 d-ino.m4
> --- m4/d-ino.m4       23 Jan 2005 08:06:57 -0000      1.8
> +++ m4/d-ino.m4       5 Jul 2006 16:18:52 -0000
> @@ -13,7 +13,7 @@ dnl
>  # with or without modifications, as long as this notice is preserved.
>  
>  AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO],
> -  [AC_REQUIRE([AC_HEADER_DIRENT])dnl
> +  [AC_CHECK_HEADERS_ONCE([dirent.h ndir.h])dnl
>     AC_CACHE_CHECK([for d_ino member in directory struct],
>                 jm_cv_struct_dirent_d_ino,
>       [AC_TRY_LINK(dnl
> @@ -21,18 +21,10 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_
>  #include <sys/types.h>
>  #ifdef HAVE_DIRENT_H
>  # include <dirent.h>
> -#else /* not HAVE_DIRENT_H */
> +#elif HAVE_NDIR_H
>  # define dirent direct
> -# ifdef HAVE_SYS_NDIR_H
> -#  include <sys/ndir.h>
> -# endif /* HAVE_SYS_NDIR_H */
> -# ifdef HAVE_SYS_DIR_H
> -#  include <sys/dir.h>
> -# endif /* HAVE_SYS_DIR_H */
> -# ifdef HAVE_NDIR_H
> -#  include <ndir.h>
> -# endif /* HAVE_NDIR_H */
> -#endif /* HAVE_DIRENT_H */
> +# include <ndir.h>
> +#endif
>         ],
>         [struct dirent dp; dp.d_ino = 0;],
>  
> Index: m4/d-type.m4
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/m4/d-type.m4,v
> retrieving revision 1.9
> diff -u -p -r1.9 d-type.m4
> --- m4/d-type.m4      23 Jan 2005 08:06:57 -0000      1.9
> +++ m4/d-type.m4      5 Jul 2006 16:18:52 -0000
> @@ -13,7 +13,7 @@ dnl
>  # with or without modifications, as long as this notice is preserved.
>  
>  AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE],
> -  [AC_REQUIRE([AC_HEADER_DIRENT])dnl
> +  [AC_CHECK_HEADERS_ONCE([dirent.h ndir.h])dnl
>     AC_CACHE_CHECK([for d_type member in directory struct],
>                 jm_cv_struct_dirent_d_type,
>       [AC_TRY_LINK(dnl
> @@ -21,18 +21,10 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_
>  #include <sys/types.h>
>  #ifdef HAVE_DIRENT_H
>  # include <dirent.h>
> -#else /* not HAVE_DIRENT_H */
> +#elif HAVE_NDIR_H
>  # define dirent direct
> -# ifdef HAVE_SYS_NDIR_H
> -#  include <sys/ndir.h>
> -# endif /* HAVE_SYS_NDIR_H */
> -# ifdef HAVE_SYS_DIR_H
> -#  include <sys/dir.h>
> -# endif /* HAVE_SYS_DIR_H */
> -# ifdef HAVE_NDIR_H
> -#  include <ndir.h>
> -# endif /* HAVE_NDIR_H */
> -#endif /* HAVE_DIRENT_H */
> +# include <ndir.h>
> +#endif
>         ],
>         [struct dirent dp; dp.d_type = 0;],
>  
> Index: m4/dirfd.m4
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/m4/dirfd.m4,v
> retrieving revision 1.19
> diff -u -p -r1.19 dirfd.m4
> --- m4/dirfd.m4       15 Mar 2006 21:16:25 -0000      1.19
> +++ m4/dirfd.m4       5 Jul 2006 16:18:52 -0000
> @@ -17,23 +17,15 @@ AC_DEFUN([gl_FUNC_DIRFD],
>    dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
>    AC_REQUIRE([AC_PROG_CPP])
>    AC_REQUIRE([AC_PROG_EGREP])
> -  AC_REQUIRE([AC_HEADER_DIRENT])
> +  AC_CHECK_HEADERS_ONCE([dirent.h ndir.h])dnl
>  
>    dirfd_headers='
>  #if HAVE_DIRENT_H
>  # include <dirent.h>
> -#else /* not HAVE_DIRENT_H */
> +#elif HAVE_NDIR_H
>  # define dirent direct
> -# if HAVE_SYS_NDIR_H
> -#  include <sys/ndir.h>
> -# endif /* HAVE_SYS_NDIR_H */
> -# if HAVE_SYS_DIR_H
> -#  include <sys/dir.h>
> -# endif /* HAVE_SYS_DIR_H */
> -# if HAVE_NDIR_H
> -#  include <ndir.h>
> -# endif /* HAVE_NDIR_H */
> -#endif /* HAVE_DIRENT_H */
> +# include <ndir.h>
> +#endif
>  '
>    AC_CHECK_FUNCS(dirfd)
>    AC_CHECK_DECLS([dirfd], , , $dirfd_headers)
> Index: m4/fts.m4
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/m4/fts.m4,v
> retrieving revision 1.6
> diff -u -p -r1.6 fts.m4
> --- m4/fts.m4 23 Sep 2005 04:15:13 -0000      1.6
> +++ m4/fts.m4 5 Jul 2006 16:18:52 -0000
> @@ -29,6 +29,5 @@ AC_DEFUN([gl_FUNC_FTS_CORE],
>    dnl Prerequisites of lib/fts.c.
>  
>    # Checks for header files.
> -  AC_REQUIRE([AC_HEADER_DIRENT])
> -  AC_CHECK_HEADERS_ONCE([sys/param.h])
> +  AC_CHECK_HEADERS_ONCE([dirent.h ndir.h sys/param.h])dnl
>  ])
> Index: m4/getcwd.m4
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/m4/getcwd.m4,v
> retrieving revision 1.10
> diff -u -p -r1.10 getcwd.m4
> --- m4/getcwd.m4      3 Jul 2006 08:32:46 -0000       1.10
> +++ m4/getcwd.m4      5 Jul 2006 16:18:52 -0000
> @@ -61,7 +61,7 @@ AC_DEFUN([gl_FUNC_GETCWD],
>  AC_DEFUN([gl_PREREQ_GETCWD],
>  [
>    AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
> -  AC_REQUIRE([AC_HEADER_DIRENT])
> +  AC_CHECK_HEADERS_ONCE([dirent.h ndir.h])dnl
>    AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO])
>    :
>  ])
> Index: m4/glob.m4
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/m4/glob.m4,v
> retrieving revision 1.5
> diff -u -p -r1.5 glob.m4
> --- m4/glob.m4        13 Sep 2005 03:47:45 -0000      1.5
> +++ m4/glob.m4        5 Jul 2006 16:18:52 -0000
> @@ -74,7 +74,7 @@ if (glob ("conf*-globtest", 0, NULL, &fo
>  AC_DEFUN([gl_PREREQ_GLOB],
>  [ AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])dnl
>    AC_REQUIRE([AC_GNU_SOURCE])dnl
> -  AC_REQUIRE([AC_HEADER_DIRENT])dnl
> +  AC_CHECK_HEADERS_ONCE([dirent.h ndir.h])dnl
>    AC_CHECK_HEADERS_ONCE([sys/cdefs.h unistd.h])dnl
>    AC_CHECK_FUNCS_ONCE([getlogin_r getpwnam_r])dnl
>    :])
> Index: m4/readdir.m4
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/m4/readdir.m4,v
> retrieving revision 1.14
> diff -u -p -r1.14 readdir.m4
> --- m4/readdir.m4     24 Apr 2006 07:35:24 -0000      1.14
> +++ m4/readdir.m4     5 Jul 2006 16:18:52 -0000
> @@ -24,7 +24,7 @@ dnl Written by Jim Meyering.
>  
>  AC_DEFUN([GL_FUNC_READDIR],
>  [dnl
> -AC_REQUIRE([AC_HEADER_DIRENT])
> +AC_CHECK_HEADERS_ONCE([dirent.h ndir.h])dnl
>  AC_CACHE_CHECK([for working readdir], gl_cv_func_working_readdir,
>    [dnl
>    # Arrange for deletion of the temporary directory this test creates, in
> @@ -40,19 +40,11 @@ AC_CACHE_CHECK([for working readdir], gl
>  #   ifdef HAVE_DIRENT_H
>  #    include <dirent.h>
>  #    define NLENGTH(direct) (strlen((direct)->d_name))
> -#   else /* not HAVE_DIRENT_H */
> +#   elif HAVE_NDIR_H
>  #    define dirent direct
>  #    define NLENGTH(direct) ((direct)->d_namlen)
> -#    ifdef HAVE_SYS_NDIR_H
> -#     include <sys/ndir.h>
> -#    endif /* HAVE_SYS_NDIR_H */
> -#    ifdef HAVE_SYS_DIR_H
> -#     include <sys/dir.h>
> -#    endif /* HAVE_SYS_DIR_H */
> -#    ifdef HAVE_NDIR_H
> -#     include <ndir.h>
> -#    endif /* HAVE_NDIR_H */
> -#   endif /* HAVE_DIRENT_H */
> +#    include <ndir.h>
> +#   endif
>  
>  #   define DOT_OR_DOTDOT(Basename) \
>       (Basename[0] == '.' && (Basename[1] == '\0' \
> Index: m4/savedir.m4
> ===================================================================
> RCS file: /cvsroot/gnulib/gnulib/m4/savedir.m4,v
> retrieving revision 1.5
> diff -u -p -r1.5 savedir.m4
> --- m4/savedir.m4     28 Jun 2006 22:25:49 -0000      1.5
> +++ m4/savedir.m4     5 Jul 2006 16:18:52 -0000
> @@ -10,5 +10,5 @@ AC_DEFUN([gl_SAVEDIR],
>    AC_LIBOBJ([savedir])
>  
>    dnl Prerequisites of lib/savedir.c.
> -  AC_REQUIRE([AC_HEADER_DIRENT])
> +  AC_CHECK_HEADERS_ONCE([dirent.h ndir.h])dnl
>  ])


- --
Derek R. Price
CVS Solutions Architect
Get CVS support at Ximbiot <http://ximbiot.com>!
v: +1 248.835.1260
f: +1 248.835.1263
<mailto:address@hidden>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEq+5nLD1OTBfyMaQRAtQUAJ4i2BjdnJRZYmKpQdMGPm/jFiDbXwCeP2WL
hJY42Kqj9gl9WR0r7SptUFM=
=pCJm
-----END PGP SIGNATURE-----





reply via email to

[Prev in Thread] Current Thread [Next in Thread]