(svn r5762) - Codechange: Implementation of POSIX-style opendir/readdir/closedir functions for windows using FindFirstFile/FindNextFile/FindClose.
- Add new header file fios.h that will be the place for all FIOS (game-list) types.pull/155/head
parent
1995313619
commit
9e0fb16d0e
@ -0,0 +1,38 @@
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef FIOS_H
|
||||
#define FIOS_H
|
||||
|
||||
/* Implementation of opendir/readdir/closedir for Windows */
|
||||
#if defined(WIN32)
|
||||
#include <windows.h>
|
||||
typedef struct DIR DIR;
|
||||
|
||||
typedef struct dirent { // XXX - only d_name implemented
|
||||
char *d_name; /* name of found file */
|
||||
/* little hack which will point to parent DIR struct which will
|
||||
* save us a call to GetFileAttributes if we want information
|
||||
* about the file (for example in function fio_bla */
|
||||
DIR *dir;
|
||||
} dirent;
|
||||
|
||||
struct DIR {
|
||||
HANDLE hFind;
|
||||
/* the dirent returned by readdir.
|
||||
* note: having only one global instance is not possible because
|
||||
* multiple independent opendir/readdir sequences must be supported. */
|
||||
dirent ent;
|
||||
WIN32_FIND_DATA fd;
|
||||
/* since opendir calls FindFirstFile, we need a means of telling the
|
||||
* first call to readdir that we already have a file.
|
||||
* that's the case iff this is true */
|
||||
bool at_first_entry;
|
||||
};
|
||||
|
||||
DIR *opendir(const char *path);
|
||||
struct dirent *readdir(DIR *d);
|
||||
int closedir(DIR *d);
|
||||
|
||||
#endif /* defined(WIN32) */
|
||||
|
||||
#endif /* FIOS_H */
|
Loading…
Reference in New Issue