X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fd-ino.m4;h=baf0dcc916b8ba4b05d167e65e33de73569daf0b;hb=4c55ba7831f4ce8d3c7addcb20be418330a22239;hp=56614ff465ab005f0ba8081a87807440f9dcf5e1;hpb=7d77e06edcae9cb6ce90850cf161853cea5dc1c3;p=gnulib.git diff --git a/m4/d-ino.m4 b/m4/d-ino.m4 index 56614ff46..baf0dcc91 100644 --- a/m4/d-ino.m4 +++ b/m4/d-ino.m4 @@ -1,40 +1,46 @@ -#serial 1 +# serial 12 dnl From Jim Meyering. dnl dnl Check whether struct dirent has a member named d_ino. dnl -AC_DEFUN(jm_STRUCT_DIRENT_D_INO, - [AC_REQUIRE([AC_HEADER_DIRENT])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 /* not HAVE_DIRENT_H */ -# define dirent direct -# ifdef HAVE_SYS_NDIR_H -# include -# endif /* HAVE_SYS_NDIR_H */ -# ifdef HAVE_SYS_DIR_H -# include -# endif /* HAVE_SYS_DIR_H */ -# ifdef HAVE_NDIR_H -# include -# endif /* HAVE_NDIR_H */ -#endif /* HAVE_DIRENT_H */ - ], - [struct dirent dp; dp.d_ino = 0;], +# Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009-2011 Free Software +# Foundation, Inc. - 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_DEFINE(D_INO_IN_DIRENT) +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO], + [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); + if (! e) + return 2; + if (stat (e->d_name, &st) != 0) + return 3; + if (e->d_ino != st.st_ino) + return 4; + return 0; + ]])], + [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 struct dirent has a member d_ino that actually works.]) fi ] )