summaryrefslogtreecommitdiff
path: root/Build/source/libs/zziplib/zziplib-0.13.62/zzip/__dirent.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/zziplib/zziplib-0.13.62/zzip/__dirent.h')
-rw-r--r--Build/source/libs/zziplib/zziplib-0.13.62/zzip/__dirent.h393
1 files changed, 0 insertions, 393 deletions
diff --git a/Build/source/libs/zziplib/zziplib-0.13.62/zzip/__dirent.h b/Build/source/libs/zziplib/zziplib-0.13.62/zzip/__dirent.h
deleted file mode 100644
index fc3e08f03d1..00000000000
--- a/Build/source/libs/zziplib/zziplib-0.13.62/zzip/__dirent.h
+++ /dev/null
@@ -1,393 +0,0 @@
-#ifndef ZZIP_INTERNAL_DIRENT_H
-#define ZZIP_INTERNAL_DIRENT_H
-#include <zzip/conf.h>
-
-/*
- * DO NOT USE THIS CODE.
- *
- * It is an internal header file for zziplib that carries some inline
- * functions (or just static members) and a few defines, simply to be
- * able to reuse these across - and have everything in a specific place.
- *
- * Copyright (c) 2002,2003 Guido Draheim
- * All rights reserved,
- * use under the restrictions of the
- * Lesser GNU General Public License
- * or alternatively the restrictions
- * of the Mozilla Public License 1.1
- */
-
-#ifdef ZZIP_HAVE_DIRENT_H
-#define USE_DIRENT 1
-
-#define _zzip_opendir opendir
-#define _zzip_readdir readdir
-#define _zzip_closedir closedir
-#define _zzip_rewinddir rewinddir
-#define _zzip_telldir telldir
-#define _zzip_seekdir seekdir
-#define _zzip_DIR DIR
-
-#include <dirent.h>
-
-#elif defined ZZIP_HAVE_WINBASE_H
-#define USE_DIRENT 2
-
-#define _zzip_opendir win32_opendir
-#define _zzip_readdir win32_readdir
-#define _zzip_closedir win32_closedir
-#define _zzip_rewinddir win32_rewinddir
-#define _zzip_telldir win32_telldir
-#define _zzip_seekdir win32_seekdir
-#define _zzip_DIR DIR
-
-/*
- * DIRENT.H (formerly DIRLIB.H)
- *
- * by M. J. Weinstein Released to public domain 1-Jan-89
- *
- * Because I have heard that this feature (opendir, readdir, closedir)
- * it so useful for programmers coming from UNIX or attempting to port
- * UNIX code, and because it is reasonably light weight, I have included
- * it in the Mingw32 package. I have also added an implementation of
- * rewinddir, seekdir and telldir.
- * - Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
- *
- * This code is distributed in the hope that is will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAMED. This includeds but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-#include <io.h>
-
-struct dirent
-{
- long d_ino; /* Always zero. */
- unsigned short d_reclen; /* Always zero. */
- unsigned short d_namlen; /* Length of name in d_name. */
- char* d_name; /* File name. */
- /* NOTE: The name in the dirent structure points to the name in the
- * finddata_t structure in the DIR. */
-};
-
-/*
- * This is an internal data structure. Good programmers will not use it
- * except as an argument to one of the functions below.
- */
-typedef struct
-{
- /* disk transfer area for this dir */
- struct _finddata_t dd_dta;
-
- /* dirent struct to return from dir (NOTE: this makes this thread
- * safe as long as only one thread uses a particular DIR struct at
- * a time) */
- struct dirent dd_dir;
-
- /* _findnext handle */
- long dd_handle;
-
- /*
- * Status of search:
- * 0 = not started yet (next entry to read is first entry)
- * -1 = off the end
- * positive = 0 based index of next entry
- */
- short dd_stat;
-
- /* given path for dir with search pattern (struct is extended) */
- char dd_name[1];
-} DIR;
-
-/*
- * dirent.c
- *
- * Derived from DIRLIB.C by Matt J. Weinstein
- * This note appears in the DIRLIB.H
- * DIRLIB.H by M. J. Weinstein Released to public domain 1-Jan-89
- *
- * Updated by Jeremy Bettis <jeremy@hksys.com>
- * Significantly revised and rewinddir, seekdir and telldir added by Colin
- * Peters <colin@fu.is.saga-u.ac.jp>
- */
-
-#include <direct.h>
-#include <errno.h>
-#include <io.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#define win32_SUFFIX "*"
-#define win32_SLASH "\\"
-
-#ifndef S_ISDIR
-#define S_ISDIR(m) ((m & S_IFMT) == S_IFDIR) /* is a directory */
-#endif S_ISDIR
-
-
-/*
- opendir
-
- Returns a pointer to a DIR structure appropriately filled in to begin
- searching a directory.
-*/
-static DIR*
-win32_opendir (const char *szPath)
-{
- DIR *nd;
- struct _stat statDir;
-
- errno = 0;
-
- if (!szPath) {
- errno = EFAULT;
- return (DIR *) 0;
- }
-
- if (szPath[0] == '\0') {
- errno = ENOTDIR;
- return (DIR *) 0;
- }
-
- /* Attempt to determine if the given path really is a directory. */
- if (_stat (szPath, &statDir)) {
- /* Error, stat should have set an error value. */
- return (DIR *) 0;
- }
-
- if (!S_ISDIR (statDir.st_mode)) {
- /* Error, stat reports not a directory. */
- errno = ENOTDIR;
- return (DIR *) 0;
- }
-
- /* Allocate enough space to store DIR structure and the complete *
- directory path given. */
- nd = (DIR *) calloc (1, sizeof (DIR) + strlen (szPath)
- + strlen (win32_SLASH) + strlen (win32_SUFFIX));
-
- if (!nd) {
- /* Error, out of memory. */
- errno = ENOMEM;
- return (DIR *) 0;
- }
-
- /* Create the search expression. */
- strcpy (nd->dd_name, szPath);
-
- /* Add on a slash if the path does not end with one. */
- if (nd->dd_name[0] != '\0' &&
- nd->dd_name[strlen (nd->dd_name) - 1] != '/' &&
- nd->dd_name[strlen (nd->dd_name) - 1] != '\\') {
- strcat (nd->dd_name, win32_SLASH);
- }
-
- /* Add on the search pattern */
- strcat (nd->dd_name, win32_SUFFIX);
-
- /* Initialize handle to -1 so that a premature closedir doesn't try * to
- call _findclose on it. */
- nd->dd_handle = -1;
-
- /* Initialize the status. */
- nd->dd_stat = 0;
-
- /* Initialize the dirent structure. ino and reclen are invalid under *
- Win32, and name simply points at the appropriate part of the *
- findfirst_t structure. */
- nd->dd_dir.d_ino = 0;
- nd->dd_dir.d_reclen = 0;
- nd->dd_dir.d_namlen = 0;
- nd->dd_dir.d_name = nd->dd_dta.name;
-
- return nd;
-}
-
-/*
- readdir
-
- Return a pointer to a dirent structure filled with the information on the
- next entry in the directory.
-*/
-static struct dirent *
-win32_readdir (DIR * dirp)
-{
- errno = 0;
-
- /* Check for valid DIR struct. */
- if (!dirp) {
- errno = EFAULT;
- return (struct dirent *) 0;
- }
-
- if (dirp->dd_dir.d_name != dirp->dd_dta.name) {
- /* The structure does not seem to be set up correctly. */
- errno = EINVAL;
- return (struct dirent *) 0;
- }
-
- if (dirp->dd_stat < 0) {
- /* We have already returned all files in the directory * (or the
- structure has an invalid dd_stat). */
- return (struct dirent *) 0;
- } else if (dirp->dd_stat == 0) {
- /* We haven't started the search yet. */
- /* Start the search */
- dirp->dd_handle = _findfirst (dirp->dd_name, &(dirp->dd_dta));
-
- if (dirp->dd_handle == -1) {
- /* Whoops! Seems there are no files in that * directory. */
- dirp->dd_stat = -1;
- } else {
- dirp->dd_stat = 1;
- }
- } else {
- /* Get the next search entry. */
- if (_findnext (dirp->dd_handle, &(dirp->dd_dta))) {
- /* We are off the end or otherwise error. */
- _findclose (dirp->dd_handle);
- dirp->dd_handle = -1;
- dirp->dd_stat = -1;
- } else {
- /* Update the status to indicate the correct * number. */
- dirp->dd_stat++;
- }
- }
-
- if (dirp->dd_stat > 0) {
- /* Successfully got an entry. Everything about the file is * already
- appropriately filled in except the length of the * file name. */
- dirp->dd_dir.d_namlen = (unsigned short) strlen (dirp->dd_dir.d_name);
- return &dirp->dd_dir;
- }
-
- return (struct dirent *) 0;
-}
-
-/*
- closedir
-
- Frees up resources allocated by opendir.
-*/
-static int
-win32_closedir (DIR * dirp)
-{
- int rc;
-
- errno = 0;
- rc = 0;
-
- if (!dirp) {
- errno = EFAULT;
- return -1;
- }
-
- if (dirp->dd_handle != -1) {
- rc = _findclose (dirp->dd_handle);
- }
-
- /* Delete the dir structure. */
- free (dirp);
-
- return rc;
-}
-
-/*
- rewinddir
-
- Return to the beginning of the directory "stream". We simply call findclose
- and then reset things like an opendir.
-*/
-static void
-win32_rewinddir (DIR * dirp)
-{
- errno = 0;
-
- if (!dirp) {
- errno = EFAULT;
- return;
- }
-
- if (dirp->dd_handle != -1) {
- _findclose (dirp->dd_handle);
- }
-
- dirp->dd_handle = -1;
- dirp->dd_stat = 0;
-}
-
-/*
- telldir
-
- Returns the "position" in the "directory stream" which can be used with
- seekdir to go back to an old entry. We simply return the value in stat.
-*/
-static long
-win32_telldir (DIR * dirp)
-{
- errno = 0;
-
- if (!dirp) {
- errno = EFAULT;
- return -1;
- }
- return dirp->dd_stat;
-}
-
-/*
- seekdir
-
- Seek to an entry previously returned by telldir. We rewind the directory
- and call readdir repeatedly until either dd_stat is the position number
- or -1 (off the end). This is not perfect, in that the directory may
- have changed while we weren't looking. But that is probably the case with
- any such system.
-*/
-static void
-win32_seekdir (DIR * dirp, long lPos)
-{
- errno = 0;
-
- if (!dirp) {
- errno = EFAULT;
- return;
- }
-
- if (lPos < -1) {
- /* Seeking to an invalid position. */
- errno = EINVAL;
- return;
- } else if (lPos == -1) {
- /* Seek past end. */
- if (dirp->dd_handle != -1) {
- _findclose (dirp->dd_handle);
- }
- dirp->dd_handle = -1;
- dirp->dd_stat = -1;
- } else {
- /* Rewind and read forward to the appropriate index. */
- win32_rewinddir (dirp);
-
- while ((dirp->dd_stat < lPos) && win32_readdir (dirp));
- }
-}
-
-#else
-#define USE_DIRENT 0
-
-#define _zzip_opendir(_N_) 0
-#define _zzip_readdir(_D_) 0
-#define _zzip_closedir(_D_) /* omit return code */
-#define _zzip_rewinddir(_D_)
-#define _zzip_telldir(_D_) 0
-#define _zzip_seekdir(_D_,_V_) /* omit return code */
-#define _zzip_DIR void*
-
-/* end of DIRENT implementation */
-#endif
-
-/* once */
-#endif