exp2l: Work around a NetBSD 10.0/i386 bug.
[gnulib.git] / lib / dirent-private.h
blob335fbc351a59bbf18049f76076a7e839313cfe94
1 /* Private details of the DIR type.
2 Copyright (C) 2011-2024 Free Software Foundation, Inc.
4 This file is free software: you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as
6 published by the Free Software Foundation; either version 2.1 of the
7 License, or (at your option) any later version.
9 This file is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public License
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17 #ifndef _DIRENT_PRIVATE_H
18 #define _DIRENT_PRIVATE_H 1
20 #if HAVE_DIRENT_H /* mingw */
22 # undef DIR
24 struct gl_directory
26 /* File descriptor to close during closedir().
27 Needed for implementing fdopendir(). */
28 int fd_to_close;
29 /* Pointer to the real DIR. */
30 DIR *real_dirp;
33 /* Restore definition from dirent.h. */
34 # define DIR struct gl_directory
36 #else /* MSVC */
38 # define WIN32_LEAN_AND_MEAN
39 # include <windows.h>
41 /* Don't assume that UNICODE is not defined. */
42 # undef WIN32_FIND_DATA
43 # define WIN32_FIND_DATA WIN32_FIND_DATAA
45 struct gl_directory
47 /* File descriptor to close during closedir().
48 Needed for implementing fdopendir(). */
49 int fd_to_close;
50 /* Status, or error code to produce in next readdir() call.
51 -2 means the end of the directory is already reached,
52 -1 means the entry was already filled by FindFirstFile,
53 0 means the entry needs to be filled using FindNextFile.
54 A positive value is an error code. */
55 int status;
56 /* Handle, reading the directory, at current position. */
57 HANDLE current;
58 /* Found directory entry. */
59 WIN32_FIND_DATA entry;
60 /* Argument to pass to FindFirstFile. It consists of the absolutized
61 directory name, followed by a directory separator and the wildcards. */
62 char dir_name_mask[1];
65 #endif
67 #endif /* _DIRENT_PRIVATE_H */