X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fd-ino.m4;h=6e6dab3d23053bc0af0be91e4f7263217702e0f3;hb=6c560a52fc22a10c65449aaa59d6c37c76e6e118;hp=c86f7bb42de669ecf77a189d1fe13a4cb1797ad0;hpb=d76a6493392c315ba9da4a262efaa430b1a72476;p=gnulib.git diff --git a/m4/d-ino.m4 b/m4/d-ino.m4 index c86f7bb42..6e6dab3d2 100644 --- a/m4/d-ino.m4 +++ b/m4/d-ino.m4 @@ -1,11 +1,11 @@ -#serial 8 +#serial 10 dnl From Jim Meyering. dnl dnl Check whether struct dirent has a member named d_ino. dnl -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2006 Free Software +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2006, 2007 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation @@ -13,29 +13,29 @@ dnl # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO], - [AC_CHECK_HEADERS_ONCE([dirent.h])dnl - AC_CACHE_CHECK([for d_ino member in directory struct], - jm_cv_struct_dirent_d_ino, - [AC_TRY_LINK(dnl - [ -#include -#ifdef HAVE_DIRENT_H -# include -#else -# define dirent direct -# include -#endif - ], - [struct dirent dp; dp.d_ino = 0;], - - jm_cv_struct_dirent_d_ino=yes, - jm_cv_struct_dirent_d_ino=no) - ] - ) - if test $jm_cv_struct_dirent_d_ino = yes; then + [AC_CACHE_CHECK([for d_ino member in directory struct], + gl_cv_struct_dirent_d_ino, + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #include + #include + ]], + [[DIR *dp = opendir ("."); + struct dirent *e; + struct stat st; + if (! dp) + return 1; + e = readdir (dp); + return ! (e + && stat (e->d_name, &st) == 0 + && e->d_ino == st.st_ino);]])], + [gl_cv_struct_dirent_d_ino=yes], + [gl_cv_struct_dirent_d_ino=no], + [gl_cv_struct_dirent_d_ino=no])]) + if test $gl_cv_struct_dirent_d_ino = yes; then AC_DEFINE(D_INO_IN_DIRENT, 1, - [Define if there is a member named d_ino in the struct describing - directory headers.]) + [Define if struct dirent has a member d_ino that actually works.]) fi ] )