X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fextras%2Fdirent.c;h=d0a0f3329305e1b5a5f467c47f1d07ebf48200a7;hb=dc9d7d9bbbf1e8e45ff6f3ca612bf5b302578ee8;hp=073cc137da51b24504f6acbfa6604f3fb4fc7dd8;hpb=dffe74e2d2eb9591cc08cf03a97e449d0091cf8b;p=vlc diff --git a/src/extras/dirent.c b/src/extras/dirent.c index 073cc137da..d0a0f33293 100644 --- a/src/extras/dirent.c +++ b/src/extras/dirent.c @@ -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 * Significantly revised and rewinddir, seekdir and telldir added by Colin * Peters - * + * * $Revision: 1.6 $ * $Author: sam $ * $Date: 2002/11/13 20:51:04 $ @@ -48,35 +48,35 @@ 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 +85,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 +342,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)) - ; - } -}