1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19: #ifndef _GLOB_H
20: #define _GLOB_H 1
21:
22: #include <sys/cdefs.h>
23:
24: __BEGIN_DECLS
25:
26:
27: #ifndef __size_t
28: # if defined __GNUC__ && __GNUC__ >= 2
29: typedef __SIZE_TYPE__ __size_t;
30: # ifdef __USE_XOPEN
31: typedef __SIZE_TYPE__ size_t;
32: # endif
33: # else
34: # include <stddef.h>
35: # ifndef __size_t
36: # define __size_t size_t
37: # endif
38: # endif
39: #else
40:
41:
42: # undef __size_t
43: # define __size_t size_t
44: #endif
45:
46:
47: #define GLOB_ERR (1 << 0)
48: #define GLOB_MARK (1 << 1)
49: #define GLOB_NOSORT (1 << 2)
50: #define GLOB_DOOFFS (1 << 3)
51: #define GLOB_NOCHECK (1 << 4)
52: #define GLOB_APPEND (1 << 5)
53: #define GLOB_NOESCAPE (1 << 6)
54: #define GLOB_PERIOD (1 << 7)
55:
56: #if !defined __USE_POSIX2 || defined __USE_BSD || defined __USE_GNU
57: # define GLOB_MAGCHAR (1 << 8)
58: # define GLOB_ALTDIRFUNC (1 << 9)
59: # define GLOB_BRACE (1 << 10)
60: # define GLOB_NOMAGIC (1 << 11)
61: # define GLOB_TILDE (1 << 12)
62: # define GLOB_ONLYDIR (1 << 13)
63: # define GLOB_TILDE_CHECK (1 << 14)
64:
65: # define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \
66: GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \
67: GLOB_PERIOD|GLOB_ALTDIRFUNC|GLOB_BRACE| \
68: GLOB_NOMAGIC|GLOB_TILDE|GLOB_ONLYDIR|GLOB_TILDE_CHECK)
69: #else
70: # define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \
71: GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \
72: GLOB_PERIOD)
73: #endif
74:
75:
76: #define GLOB_NOSPACE 1
77: #define GLOB_ABORTED 2
78: #define GLOB_NOMATCH 3
79: #define GLOB_NOSYS 4
80: #ifdef __USE_GNU
81:
82:
83: # define GLOB_ABEND GLOB_ABORTED
84: #endif
85:
86:
87: #ifdef __USE_GNU
88: struct stat;
89: #endif
90: typedef struct
91: {
92: __size_t gl_pathc;
93: char **gl_pathv;
94: __size_t gl_offs;
95: int gl_flags;
96:
97:
98:
99: void (*gl_closedir) (void *);
100: #ifdef __USE_GNU
101: struct dirent *(*gl_readdir) (void *);
102: #else
103: void *(*gl_readdir) (void *);
104: #endif
105: void *(*gl_opendir) (__const char *);
106: #ifdef __USE_GNU
107: int (*gl_lstat) (__const char *__restrict, struct stat *__restrict);
108: int (*gl_stat) (__const char *__restrict, struct stat *__restrict);
109: #else
110: int (*gl_lstat) (__const char *__restrict, void *__restrict);
111: int (*gl_stat) (__const char *__restrict, void *__restrict);
112: #endif
113: } glob_t;
114:
115: #ifdef __USE_LARGEFILE64
116: # ifdef __USE_GNU
117: struct stat64;
118: # endif
119: typedef struct
120: {
121: __size_t gl_pathc;
122: char **gl_pathv;
123: __size_t gl_offs;
124: int gl_flags;
125:
126:
127:
128: void (*gl_closedir) (void *);
129: # ifdef __USE_GNU
130: struct dirent64 *(*gl_readdir) (void *);
131: # else
132: void *(*gl_readdir) (void *);
133: # endif
134: void *(*gl_opendir) (__const char *);
135: # ifdef __USE_GNU
136: int (*gl_lstat) (__const char *__restrict, struct stat64 *__restrict);
137: int (*gl_stat) (__const char *__restrict, struct stat64 *__restrict);
138: # else
139: int (*gl_lstat) (__const char *__restrict, void *__restrict);
140: int (*gl_stat) (__const char *__restrict, void *__restrict);
141: # endif
142: } glob64_t;
143: #endif
144:
145: #if __USE_FILE_OFFSET64 && __GNUC__ < 2
146: # define glob glob64
147: # define globfree globfree64
148: #endif
149:
150:
151:
152:
153:
154:
155:
156:
157:
158: #if !defined __USE_FILE_OFFSET64 || __GNUC__ < 2
159: extern int glob (__const char *__restrict __pattern, int __flags,
160: int (*__errfunc) (__const char *, int),
161: glob_t *__restrict __pglob) __THROW;
162:
163:
164: extern void globfree (glob_t *__pglob) __THROW;
165: #else
166: extern int __REDIRECT_NTH (glob, (__const char *__restrict __pattern,
167: int __flags,
168: int (*__errfunc) (__const char *, int),
169: glob_t *__restrict __pglob), glob64);
170:
171: extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64);
172: #endif
173:
174: #ifdef __USE_LARGEFILE64
175: extern int glob64 (__const char *__restrict __pattern, int __flags,
176: int (*__errfunc) (__const char *, int),
177: glob64_t *__restrict __pglob) __THROW;
178:
179: extern void globfree64 (glob64_t *__pglob) __THROW;
180: #endif
181:
182:
183: #ifdef __USE_GNU
184:
185:
186:
187:
188:
189: extern int glob_pattern_p (__const char *__pattern, int __quote) __THROW;
190: #endif
191:
192: __END_DECLS
193:
194: #endif