1a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner/* Windows version of dirent.h 2a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerCopyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 3a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner2006 Free Software Foundation, Inc. 4a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerThis file is part of GNU Make. 5a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 6a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerGNU Make is free software; you can redistribute it and/or modify it under the 7a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnerterms of the GNU General Public License as published by the Free Software 8a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerFoundation; either version 2, or (at your option) any later version. 9a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 10a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerGNU Make is distributed in the hope that it will be useful, but WITHOUT ANY 11a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 12a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerA PARTICULAR PURPOSE. See the GNU General Public License for more details. 13a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 14a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerYou should have received a copy of the GNU General Public License along with 15a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerGNU Make; see the file COPYING. If not, write to the Free Software 16a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerFoundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ 17a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 18a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#ifndef _DIRENT_H 19a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#define _DIRENT_H 20a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 21a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#ifdef __MINGW32__ 22a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner# include <windows.h> 23a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner# include_next <dirent.h> 24a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#else 25a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 26a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#include <stdlib.h> 27a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#include <windows.h> 28a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#include <limits.h> 29a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#include <sys/types.h> 30a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 31a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#ifndef NAME_MAX 32a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#define NAME_MAX 255 33a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#endif 34a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 35a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#define __DIRENT_COOKIE 0xfefeabab 36a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 37a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 38a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnerstruct dirent 39a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner{ 40a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner ino_t d_ino; /* unused - no equivalent on WINDOWS32 */ 41a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner char d_name[NAME_MAX+1]; 42a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner}; 43a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 44a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnertypedef struct dir_struct { 45a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner ULONG dir_ulCookie; 46a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner HANDLE dir_hDirHandle; 47a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner DWORD dir_nNumFiles; 48a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner char dir_pDirectoryName[NAME_MAX+1]; 49a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner struct dirent dir_sdReturn; 50a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner} DIR; 51a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 52a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' TurnerDIR *opendir(const char *); 53a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnerstruct dirent *readdir(DIR *); 54a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnervoid rewinddir(DIR *); 55a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnervoid closedir(DIR *); 56a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnerint telldir(DIR *); 57a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turnervoid seekdir(DIR *, long); 58a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner 59a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#endif /* !__MINGW32__ */ 60a86d4c1bde70365cbbe874ad9ddb3f06916d2085David 'Digit' Turner#endif 61