summaryrefslogtreecommitdiff
path: root/db2/os/db_os_dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'db2/os/db_os_dir.c')
-rw-r--r--db2/os/db_os_dir.c138
1 files changed, 0 insertions, 138 deletions
diff --git a/db2/os/db_os_dir.c b/db2/os/db_os_dir.c
deleted file mode 100644
index 1206e3faa7..0000000000
--- a/db2/os/db_os_dir.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*-
- * See the file LICENSE for redistribution information.
- *
- * Copyright (c) 1997
- * Sleepycat Software. All rights reserved.
- */
-
-#include "config.h"
-
-#ifndef lint
-static const char sccsid[] = "@(#)db_os_dir.c 10.10 (Sleepycat) 9/17/97";
-#endif /* not lint */
-
-#ifndef NO_SYSTEM_INCLUDES
-#include <sys/types.h>
-
-#if HAVE_DIRENT_H
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# if HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#endif
-
-#include "db_int.h"
-#include "os_ext.h"
-#include "common_ext.h"
-
-/*
- * __db_dir --
- * Return a list of the files in a directory.
- *
- * PUBLIC: int __db_dir __P((DB_ENV *, const char *, char ***, int *));
- */
-int
-__db_dir(dbenv, dir, namesp, cntp)
- DB_ENV *dbenv;
- const char *dir;
- char ***namesp;
- int *cntp;
-{
- int arraysz, cnt;
- char **names;
-#ifdef _WIN32
- struct _finddata_t fdata;
- long dirhandle;
- int finished;
- char filespec[MAX_PATH];
-
- (void)snprintf(filespec, sizeof(filespec), "%s/*", dir);
- if ((dirhandle = _findfirst(filespec, &fdata)) == -1) {
- __db_err(dbenv, "%s: %s", filespec, strerror(errno));
- return (errno);
- }
-
- names = NULL;
- finished = 0;
- for (arraysz = cnt = 0; finished != 1; ++cnt) {
- if (cnt >= arraysz) {
- arraysz += 100;
- names = (char **)(names == NULL ?
- malloc(arraysz * sizeof(names[0])) :
- realloc(names, arraysz * sizeof(names[0])));
- if (names == NULL)
- goto nomem;
- }
- if ((names[cnt] = (char *)strdup(fdata.name)) == NULL)
- goto nomem;
- if (_findnext(dirhandle,&fdata) != 0)
- finished = 1;
- }
- _findclose(dirhandle);
-#else /* !_WIN32 */
- struct dirent *dp;
- DIR *dirp;
-
- if ((dirp = opendir(dir)) == NULL) {
- __db_err(dbenv, "%s: %s", dir, strerror(errno));
- return (errno);
- }
- names = NULL;
- for (arraysz = cnt = 0; (dp = readdir(dirp)) != NULL; ++cnt) {
- if (cnt >= arraysz) {
- arraysz += 100;
- names = (char **)(names == NULL ?
- malloc(arraysz * sizeof(names[0])) :
- realloc(names, arraysz * sizeof(names[0])));
- if (names == NULL)
- goto nomem;
- }
- if ((names[cnt] = (char *)strdup(dp->d_name)) == NULL)
- goto nomem;
- }
- (void)closedir(dirp);
-#endif /* !_WIN32 */
-
- *namesp = names;
- *cntp = cnt;
- return (0);
-
-nomem: if (names != NULL)
- __db_dirf(dbenv, names, cnt);
- __db_err(dbenv, "%s", strerror(ENOMEM));
- return (ENOMEM);
-}
-
-/*
- * __db_dirf --
- * Free the list of files.
- *
- * PUBLIC: void __db_dirf __P((DB_ENV *, char **, int));
- */
-void
-__db_dirf(dbenv, names, cnt)
- DB_ENV *dbenv;
- char **names;
- int cnt;
-{
- dbenv = dbenv; /* XXX: Shut the compiler up. */
- while (cnt > 0)
- free(names[--cnt]);
- free (names);
-}