from autoconf
[gnulib.git] / m4 / readdir.m4
index d2b1a55..03ac331 100644 (file)
@@ -1,4 +1,4 @@
-#serial 1
+#serial 4
 
 dnl SunOS's readdir is broken in such a way that rm.c has to add extra code
 dnl to test whether a NULL return value really means there are no more files
@@ -12,7 +12,7 @@ dnl Define HAVE_WORKING_READDIR if readdir does *not* have this problem.
 
 dnl Written by Jim Meyering.
 
-AC_DEFUN(jm_FUNC_READDIR,
+AC_DEFUN([jm_FUNC_READDIR],
 [dnl
 AC_REQUIRE([AC_HEADER_DIRENT])
 AC_CHECK_HEADERS(string.h)
@@ -23,9 +23,7 @@ AC_CACHE_CHECK([for working readdir], jm_cv_func_working_readdir,
   ac_clean_files="$ac_clean_files conf-dir"
 
   AC_TRY_RUN(
-  changequote(<<, >>)dnl
-  <<
-#   include <stdio.h>
+[#   include <stdio.h>
 #   include <sys/types.h>
 #   if HAVE_STRING_H
 #    include <string.h>
@@ -52,6 +50,9 @@ AC_CACHE_CHECK([for working readdir], jm_cv_func_working_readdir,
      (Basename[0] == '.' && (Basename[1] == '\0' \
                             || (Basename[1] == '.' && Basename[2] == '\0')))
 
+/* Don't try to use replacement mkdir; it wouldn't resolve at link time.  */
+#   undef mkdir
+
     static void
     create_300_file_dir (const char *dir)
     {
@@ -119,23 +120,13 @@ AC_CACHE_CHECK([for working readdir], jm_cv_func_working_readdir,
       create_300_file_dir (dir);
       remove_dir (dir);
       exit (0);
-    }
-  >>,
-  changequote([, ])dnl
+    }],
   jm_cv_func_working_readdir=yes,
   jm_cv_func_working_readdir=no,
   jm_cv_func_working_readdir=no)])
 
-  if test x = y; then
-    dnl This code is deliberately never run via ./configure.
-    dnl FIXME: this is a gross hack to make autoheader put an entry
-    dnl for this HAVE_-prefixed symbol in config.h.in.
-    AC_CHECK_FUNCS(WORKING_READDIR)
-  fi
-
-
   if test $jm_cv_func_working_readdir = yes; then
-    ac_kludge=HAVE_WORKING_READDIR
-    AC_DEFINE_UNQUOTED($ac_kludge)
+    AC_DEFINE(HAVE_WORKING_READDIR, 1,
+[Define if readdir is found to work properly in some unusual cases. ])
   fi
 ])