changeset 23779:56aa4200a492

Remove unused scandir() check and fallback implementation.
author diego
date Tue, 17 Jul 2007 09:45:10 +0000
parents ba16c3a35250
children c356d375517d
files configure osdep/Makefile osdep/scandir.c
diffstat 3 files changed, 0 insertions(+), 154 deletions(-) [+]
line wrap: on
line diff
--- a/configure	Tue Jul 17 09:41:47 2007 +0000
+++ b/configure	Tue Jul 17 09:45:10 2007 +0000
@@ -3323,22 +3323,6 @@
 echores "$_shm"
 
 
-echocheck "scandir()"
-cat > $TMPC << EOF
-int main (void) { scandir("", 0, 0, 0); alphasort(0, 0); return 0; }
-EOF
-_scandir=no
-cc_check && _scandir=yes
-if test "$_scandir" = yes ; then
- _def_scandir='#define HAVE_SCANDIR 1'
- _need_scandir=no
-else
- _def_scandir='#undef HAVE_SCANDIR'
- _need_scandir=yes
-fi
-echores "$_scandir"
-
-
 echocheck "strsep()"
 cat > $TMPC << EOF
 #include <string.h>
@@ -7396,7 +7380,6 @@
 
 NEED_GETTIMEOFDAY    = $_need_gettimeofday
 NEED_GLOB    = $_need_glob
-NEED_SCANDIR = $_need_scandir
 NEED_SETENV  = $_need_setenv
 NEED_SHMEM   = $_need_shmem
 NEED_STRSEP  = $_need_strsep
@@ -7749,9 +7732,6 @@
 /* Define this if you have shm support */
 $_def_shm
 
-/* Define this if your system has scandir & alphasort */
-$_def_scandir
-
 /* Define this if your system has strsep */
 $_def_strsep
 
--- a/osdep/Makefile	Tue Jul 17 09:41:47 2007 +0000
+++ b/osdep/Makefile	Tue Jul 17 09:45:10 2007 +0000
@@ -7,7 +7,6 @@
 
 SRCS_COMMON-$(NEED_GETTIMEOFDAY)     += gettimeofday.c
 SRCS_COMMON-$(NEED_GLOB)             += glob-win.c
-SRCS_COMMON-$(NEED_SCANDIR)          += scandir.c
 SRCS_COMMON-$(NEED_SETENV)           += setenv.c
 SRCS_COMMON-$(NEED_SHMEM)            += shmem.c
 SRCS_COMMON-$(NEED_STRSEP)           += strsep.c
--- a/osdep/scandir.c	Tue Jul 17 09:41:47 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-/*
- * scandir, alphasort - scan a directory
- *
- * implementation for systems that do not have it in libc
- */
-
-#include "config.h"
-
-#include <sys/types.h>
-#include <dirent.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <string.h>
-
-/*
- * convenience helper function for scandir's |compar()| function: 
- * sort directory entries using strcoll(3)
- */
-int
-alphasort(const void *_a, const void *_b)
-{
-    struct dirent **a = (struct dirent **)_a;
-    struct dirent **b = (struct dirent **)_b;
-    return strcoll((*a)->d_name, (*b)->d_name);
-}
-
-
-#define strverscmp(a,b) strcoll(a,b) /* for now */
-
-/*
- * convenience helper function for scandir's |compar()| function: 
- * sort directory entries using GNU |strverscmp()|
- */
-int
-versionsort(const void *_a, const void *_b)
-{
-    struct dirent **a = (struct dirent **)_a;
-    struct dirent **b = (struct dirent **)_b;
-    return strverscmp((*a)->d_name, (*b)->d_name);
-}
-
-/*
- * The scandir() function reads the directory dirname and builds an
- * array of pointers to directory entries using malloc(3).  It returns
- * the number of entries in the array.  A pointer to the array of
- * directory entries is stored in the location referenced by namelist.
- *
- * The select parameter is a pointer to a user supplied subroutine
- * which is called by scandir() to select which entries are to be
- * included in the array.  The select routine is passed a pointer to
- * a directory entry and should return a non-zero value if the
- * directory entry is to be included in the array.  If select is null,
- * then all the directory entries will be included.
- *
- * The compar parameter is a pointer to a user supplied subroutine
- * which is passed to qsort(3) to sort the completed array.  If this
- * pointer is null, the array is not sorted.
- */
-int
-scandir(const char *dirname,
-	struct dirent ***ret_namelist,
-	int (*select)(const struct dirent *),
-	int (*compar)(const struct dirent **, const struct dirent **))
-{
-    int i, len;
-    int used, allocated;
-    DIR *dir;
-    struct dirent *ent, *ent2;
-    struct dirent **namelist = NULL;
-
-    if ((dir = opendir(dirname)) == NULL)
-	return -1;
-
-    used = 0;
-    allocated = 2;
-    namelist = malloc(allocated * sizeof(struct dirent *));
-    if (!namelist)
-	goto error;
-
-    while ((ent = readdir(dir)) != NULL) {
-
-	if (select != NULL && !select(ent))
-	    continue;
-
-	/* duplicate struct direct for this entry */
-	len = offsetof(struct dirent, d_name) + strlen(ent->d_name) + 1;
-	if ((ent2 = malloc(len)) == NULL)
-	    goto error;
-	
-	if (used >= allocated) {
-	    allocated *= 2;
-	    namelist = realloc(namelist, allocated * sizeof(struct dirent *));
-	    if (!namelist)
-		goto error;
-	}
-	memcpy(ent2, ent, len);
-	namelist[used++] = ent2;
-    }
-    closedir(dir);
-
-    if (compar)
-	qsort(namelist, used, sizeof(struct dirent *),
-	      (int (*)(const void *, const void *)) compar);
-
-    *ret_namelist = namelist;
-    return used;
-
-
-error:
-    closedir(dir);
-
-    if (namelist) {
-	for (i = 0; i < used; i++) 
-	    free(namelist[i]);
-	free(namelist);
-    }
-    return -1;
-}
-
-
-#if	STANDALONE_MAIN
-int
-main(int argc, char **argv)
-{
-	struct dirent **namelist;
-	int i, n;
-
-	n = scandir("/etc", &namelist, NULL, alphasort);
-
-	for (i = 0; i < n; i++)
-		printf("%s\n", namelist[i]->d_name);
-}
-#endif