From 4de30befaee2141e410bf0df5d5f7e3906bc0111 Mon Sep 17 00:00:00 2001 From: Darkvater Date: Fri, 4 Aug 2006 23:41:13 +0000 Subject: (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. --- fios.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 fios.h (limited to 'fios.h') diff --git a/fios.h b/fios.h new file mode 100644 index 000000000..76c63b99c --- /dev/null +++ b/fios.h @@ -0,0 +1,38 @@ +/* $Id$ */ + +#ifndef FIOS_H +#define FIOS_H + +/* Implementation of opendir/readdir/closedir for Windows */ +#if defined(WIN32) +#include +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 */ -- cgit v1.2.3-54-g00ecf