]> git.sesse.net Git - vlc/blobdiff - src/extras/dirent.c
Use var_Inherit* instead of var_CreateGet*.
[vlc] / src / extras / dirent.c
index 073cc137da51b24504f6acbfa6604f3fb4fc7dd8..d19b762890a5f4ee7dae03631116e4be719bab7d 100644 (file)
@@ -1,14 +1,14 @@
 /*
  * dirent.c
  *
- * Derived from DIRLIB.C by Matt J. Weinstein 
+ * 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>
- *      
+ *
  * $Revision: 1.6 $
  * $Author: sam $
  * $Date: 2002/11/13 20:51:04 $
 #include <stdlib.h>
 #include <stdio.h>
 
-#ifdef HAVE_ERRNO_H
-#   include <errno.h>
-#else
-    static int errno;
-    /* FIXME: anything clever to put here? */
-#   define EFAULT 12
-#   define ENOTDIR 12
-#   define ENOENT 12
-#   define ENOMEM 12
-#   define EINVAL 12
-#endif
+#include <errno.h>
 #include <string.h>
 #ifndef UNDER_CE
 #   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[FILENAME_MAX]; /* File name. */
+    long        d_ino;        /* Always zero. */
+    unsigned short    d_reclen;    /* Always zero. */
+    unsigned short    d_namlen;    /* Length of name in d_name. */
+    char            d_name[FILENAME_MAX]; /* File name. */
 };
 
 typedef struct
 {
-       /* disk transfer area for this dir */
-       WIN32_FIND_DATA         dd_dta;
+    /* disk transfer area for this dir */
+    WIN32_FIND_DATA        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;
+    /* 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 */
-       HANDLE                  dd_handle;
+    /* findnext handle */
+    HANDLE            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
-        */
-       int                     dd_stat;
-
-       /* given path for dir with search pattern (struct is extended) */
-       char                    dd_name[1];
+     *   0 = not started yet (next entry to read is first entry)
+     *  -1 = off the end
+     *   positive = 0 based index of next entry
+     */
+    int            dd_stat;
+
+    /* given path for dir with search pattern (struct is extended) */
+    char            dd_name[1];
 } DIR;
 
 /*
@@ -85,7 +75,7 @@ typedef struct
  * Returns a pointer to a DIR structure appropriately filled in to begin
  * searching a directory.
  */
-DIR * 
+DIR *
 vlc_opendir (const CHAR *szPath)
 {
   DIR *nd;
@@ -342,68 +332,3 @@ vlc_rewinddir (DIR * dirp)
   dirp->dd_handle = INVALID_HANDLE_VALUE;
   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.
- */
-long
-vlc_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.
- */
-void
-vlc_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 != INVALID_HANDLE_VALUE)
-        {
-          FindClose ((HANDLE)dirp->dd_handle);
-        }
-      dirp->dd_handle = INVALID_HANDLE_VALUE;
-      dirp->dd_stat = -1;
-    }
-  else
-    {
-      /* Rewind and read forward to the appropriate index. */
-      vlc_rewinddir (dirp);
-
-      while ((dirp->dd_stat < lPos) && vlc_readdir (dirp))
-        ;
-    }
-}