summaryrefslogtreecommitdiff
path: root/m4/readdir.m4
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2002-07-28 13:15:48 +0000
committerJim Meyering <jim@meyering.net>2002-07-28 13:15:48 +0000
commitaf8dd6d427766acb124e57a1c7fc758e5b09daa9 (patch)
tree7240f334e4737569812d71baa72e409a313e097f /m4/readdir.m4
parente1b511adc6bc5ff934e67c01cd92525c6191e1d1 (diff)
downloadcoreutils-af8dd6d427766acb124e57a1c7fc758e5b09daa9.tar.xz
(jm_FUNC_READDIR): Remove file/macro. No longer needed.
Diffstat (limited to 'm4/readdir.m4')
-rw-r--r--m4/readdir.m4132
1 files changed, 0 insertions, 132 deletions
diff --git a/m4/readdir.m4 b/m4/readdir.m4
deleted file mode 100644
index 03ac3312d..000000000
--- a/m4/readdir.m4
+++ /dev/null
@@ -1,132 +0,0 @@
-#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
-dnl in the directory.
-dnl
-dnl Detect the problem by creating a directory containing 300 files (254 not
-dnl counting . and .. is the minimum) and see if a loop doing `readdir; unlink'
-dnl removes all of them.
-dnl
-dnl Define HAVE_WORKING_READDIR if readdir does *not* have this problem.
-
-dnl Written by Jim Meyering.
-
-AC_DEFUN([jm_FUNC_READDIR],
-[dnl
-AC_REQUIRE([AC_HEADER_DIRENT])
-AC_CHECK_HEADERS(string.h)
-AC_CACHE_CHECK([for working readdir], jm_cv_func_working_readdir,
- [dnl
- # Arrange for deletion of the temporary directory this test creates, in
- # case the test itself fails to delete everything -- as happens on Sunos.
- ac_clean_files="$ac_clean_files conf-dir"
-
- AC_TRY_RUN(
-[# include <stdio.h>
-# include <sys/types.h>
-# if HAVE_STRING_H
-# include <string.h>
-# endif
-
-# ifdef HAVE_DIRENT_H
-# include <dirent.h>
-# define NLENGTH(direct) (strlen((direct)->d_name))
-# else /* not HAVE_DIRENT_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 */
-
-# define DOT_OR_DOTDOT(Basename) \
- (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)
- {
- int i;
-
- if (mkdir (dir, 0700))
- abort ();
- if (chdir (dir))
- abort ();
-
- for (i = 0; i < 300; i++)
- {
- char file_name[4];
- FILE *out;
-
- sprintf (file_name, "%03d", i);
- out = fopen (file_name, "w");
- if (!out)
- abort ();
- if (fclose (out) == EOF)
- abort ();
- }
-
- if (chdir (".."))
- abort ();
- }
-
- static void
- remove_dir (const char *dir)
- {
- DIR *dirp;
-
- if (chdir (dir))
- abort ();
-
- dirp = opendir (".");
- if (dirp == NULL)
- abort ();
-
- while (1)
- {
- struct dirent *dp = readdir (dirp);
- if (dp == NULL)
- break;
-
- if (DOT_OR_DOTDOT (dp->d_name))
- continue;
-
- if (unlink (dp->d_name))
- abort ();
- }
- closedir (dirp);
-
- if (chdir (".."))
- abort ();
-
- if (rmdir (dir))
- exit (1);
- }
-
- int
- main ()
- {
- const char *dir = "conf-dir";
- create_300_file_dir (dir);
- remove_dir (dir);
- exit (0);
- }],
- jm_cv_func_working_readdir=yes,
- jm_cv_func_working_readdir=no,
- jm_cv_func_working_readdir=no)])
-
- if test $jm_cv_func_working_readdir = yes; then
- AC_DEFINE(HAVE_WORKING_READDIR, 1,
-[Define if readdir is found to work properly in some unusual cases. ])
- fi
-])