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