annotate glob/glob.h @ 4720:e759d01692db ss-2-1-53

[project @ 2004-01-23 04:13:37 by jwe]
author jwe
date Fri, 23 Jan 2004 04:13:37 +0000
parents 66d7394f5822
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
1 /* Copyright (C) 1991, 92, 95, 96, 97, 98 Free Software Foundation, Inc.
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
2
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
3 The GNU C Library is free software; you can redistribute it and/or
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
4 modify it under the terms of the GNU Library General Public License as
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
5 published by the Free Software Foundation; either version 2 of the
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
6 License, or (at your option) any later version.
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
7
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
8 The GNU C Library is distributed in the hope that it will be useful,
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
11 Library General Public License for more details.
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
12
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
13 You should have received a copy of the GNU Library General Public
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
14 License along with the GNU C Library; see the file COPYING.LIB. If not,
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
15 write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
16 Boston, MA 02111-1307, USA. */
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
17
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
18 #ifndef _GLOB_H
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
19 #define _GLOB_H 1
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
20
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
21 #ifdef __cplusplus
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
22 extern "C" {
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
23 #endif
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
24
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
25 #undef __ptr_t
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
26 #if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
27 # if !defined __GLIBC__ || !defined __P
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
28 # undef __P
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
29 # undef __PMT
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
30 # define __P(protos) protos
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
31 # define __PMT(protos) protos
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
32 # if !defined __GNUC__ || __GNUC__ < 2
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
33 # undef __const
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
34 # define __const const
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
35 # endif
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
36 # endif
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
37 # define __ptr_t void *
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
38 #else /* Not C++ or ANSI C. */
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
39 # undef __P
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
40 # undef __PMT
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
41 # define __P(protos) ()
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
42 # define __PMT(protos) ()
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
43 # undef __const
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
44 # define __const
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
45 # define __ptr_t char *
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
46 #endif /* C++ or ANSI C. */
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
47
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
48 /* We need `size_t' for the following definitions. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
49 #ifndef __size_t
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
50 # if defined __GNUC__ && __GNUC__ >= 2
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
51 typedef __SIZE_TYPE__ __size_t;
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
52 # else
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
53 /* This is a guess. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
54 /*hb
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
55 * Conflicts with DECCs aready defined type __size_t.
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
56 * Defining an own type with a name beginning with '__' is no good.
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
57 * Anyway if DECC is used and __SIZE_T is defined then __size_t is
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
58 * already defined (and I hope it's exactly the one we need here).
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
59 */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
60 #if !(defined __DECC && defined __SIZE_T)
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
61 typedef unsigned long int __size_t;
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
62 #endif
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
63 # endif
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
64 #else
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
65 /* The GNU CC stddef.h version defines __size_t as empty. We need a real
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
66 definition. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
67 # undef __size_t
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
68 # define __size_t size_t
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
69 #endif
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
70
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
71 /* Bits set in the FLAGS argument to `glob'. */
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
72 #define GLOB_ERR (1 << 0)/* Return on read errors. */
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
73 #define GLOB_MARK (1 << 1)/* Append a slash to each name. */
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
74 #define GLOB_NOSORT (1 << 2)/* Don't sort the names. */
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
75 #define GLOB_DOOFFS (1 << 3)/* Insert PGLOB->gl_offs NULLs. */
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
76 #define GLOB_NOCHECK (1 << 4)/* If nothing matches, return the pattern. */
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
77 #define GLOB_APPEND (1 << 5)/* Append to results of a previous call. */
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
78 #define GLOB_NOESCAPE (1 << 6)/* Backslashes don't quote metacharacters. */
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
79 #define GLOB_PERIOD (1 << 7)/* Leading `.' can be matched by metachars. */
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
80
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
81 #if (!defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _BSD_SOURCE \
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
82 || defined _GNU_SOURCE)
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
83 # define GLOB_MAGCHAR (1 << 8)/* Set in gl_flags if any metachars seen. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
84 # define GLOB_ALTDIRFUNC (1 << 9)/* Use gl_opendir et al functions. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
85 # define GLOB_BRACE (1 << 10)/* Expand "{a,b}" to "a" "b". */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
86 # define GLOB_NOMAGIC (1 << 11)/* If no magic chars, return the pattern. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
87 # define GLOB_TILDE (1 << 12)/* Expand ~user and ~ to home directories. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
88 # define GLOB_ONLYDIR (1 << 13)/* Match only directories. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
89 # define GLOB_TILDE_CHECK (1 << 14)/* Like GLOB_TILDE but return an error
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
90 if the user name is not available. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
91 # define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \
2755
655b1615eb54 [project @ 1997-02-26 19:21:14 by jwe]
jwe
parents: 1315
diff changeset
92 GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \
655b1615eb54 [project @ 1997-02-26 19:21:14 by jwe]
jwe
parents: 1315
diff changeset
93 GLOB_PERIOD|GLOB_ALTDIRFUNC|GLOB_BRACE| \
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
94 GLOB_NOMAGIC|GLOB_TILDE|GLOB_ONLYDIR|GLOB_TILDE_CHECK)
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
95 #else
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
96 # define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
97 GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
98 GLOB_PERIOD)
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
99 #endif
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
100
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
101 /* Error returns from `glob'. */
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
102 #define GLOB_NOSPACE 1 /* Ran out of memory. */
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
103 #define GLOB_ABORTED 2 /* Read error. */
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
104 #define GLOB_NOMATCH 3 /* No matches found. */
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
105 #define GLOB_NOSYS 4 /* Not implemented. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
106 #ifdef _GNU_SOURCE
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
107 /* Previous versions of this file defined GLOB_ABEND instead of
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
108 GLOB_ABORTED. Provide a compatibility definition here. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
109 # define GLOB_ABEND GLOB_ABORTED
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
110 #endif
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
111
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
112 /* Structure describing a globbing run. */
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
113 #if !defined _AMIGA && !defined VMS /* Buggy compiler. */
2755
655b1615eb54 [project @ 1997-02-26 19:21:14 by jwe]
jwe
parents: 1315
diff changeset
114 struct stat;
655b1615eb54 [project @ 1997-02-26 19:21:14 by jwe]
jwe
parents: 1315
diff changeset
115 #endif
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
116 typedef struct
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
117 {
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
118 __size_t gl_pathc; /* Count of paths matched by the pattern. */
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
119 char **gl_pathv; /* List of matched pathnames. */
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
120 __size_t gl_offs; /* Slots to reserve in `gl_pathv'. */
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
121 int gl_flags; /* Set to FLAGS, maybe | GLOB_MAGCHAR. */
2755
655b1615eb54 [project @ 1997-02-26 19:21:14 by jwe]
jwe
parents: 1315
diff changeset
122
655b1615eb54 [project @ 1997-02-26 19:21:14 by jwe]
jwe
parents: 1315
diff changeset
123 /* If the GLOB_ALTDIRFUNC flag is set, the following functions
655b1615eb54 [project @ 1997-02-26 19:21:14 by jwe]
jwe
parents: 1315
diff changeset
124 are used instead of the normal file access functions. */
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
125 void (*gl_closedir) __PMT ((void *));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
126 struct dirent *(*gl_readdir) __PMT ((void *));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
127 __ptr_t (*gl_opendir) __PMT ((__const char *));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
128 int (*gl_lstat) __PMT ((__const char *, struct stat *));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
129 #if defined(VMS) && defined(__DECC) && !defined(_POSIX_C_SOURCE)
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
130 int (*gl_stat) __PMT ((__const char *, struct stat *, ...));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
131 #else
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
132 int (*gl_stat) __PMT ((__const char *, struct stat *));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
133 #endif
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
134 } glob_t;
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
135
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
136 #ifdef _LARGEFILE64_SOURCE
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
137 struct stat64;
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
138 typedef struct
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
139 {
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
140 __size_t gl_pathc;
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
141 char **gl_pathv;
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
142 __size_t gl_offs;
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
143 int gl_flags;
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
144
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
145 /* If the GLOB_ALTDIRFUNC flag is set, the following functions
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
146 are used instead of the normal file access functions. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
147 void (*gl_closedir) __PMT ((void *));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
148 struct dirent64 *(*gl_readdir) __PMT ((void *));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
149 __ptr_t (*gl_opendir) __PMT ((__const char *));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
150 int (*gl_lstat) __PMT ((__const char *, struct stat64 *));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
151 int (*gl_stat) __PMT ((__const char *, struct stat64 *));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
152 } glob64_t;
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
153 #endif
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
154
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
155 #if _FILE_OFFSET_BITS == 64 && __GNUC__ < 2
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
156 # define glob glob64
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
157 # define globfree globfree64
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
158 #else
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
159 # ifdef _LARGEFILE64_SOURCE
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
160 extern int glob64 __P ((__const char *__pattern, int __flags,
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
161 int (*__errfunc) (__const char *, int),
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
162 glob64_t *__pglob));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
163
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
164 extern void globfree64 __P ((glob64_t *__pglob));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
165 # endif
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
166 #endif
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
167
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
168 /* Do glob searching for PATTERN, placing results in PGLOB.
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
169 The bits defined above may be set in FLAGS.
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
170 If a directory cannot be opened or read and ERRFUNC is not nil,
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
171 it is called with the pathname that caused the error, and the
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
172 `errno' value from the failing call; if it returns non-zero
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
173 `glob' returns GLOB_ABEND; if it returns zero, the error is ignored.
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
174 If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
175 Otherwise, `glob' returns zero. */
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
176 #if _FILE_OFFSET_BITS != 64 || __GNUC__ < 2
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
177 extern int glob __P ((__const char *__pattern, int __flags,
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
178 int (*__errfunc) (__const char *, int),
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
179 glob_t *__pglob));
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
180
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
181 /* Free storage allocated in PGLOB by a previous `glob' call. */
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
182 extern void globfree __P ((glob_t *__pglob));
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
183 #else
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
184 extern int glob __P ((__const char *__pattern, int __flags,
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
185 int (*__errfunc) (__const char *, int),
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
186 glob_t *__pglob)) __asm__ ("glob64");
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
187
4096
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
188 extern void globfree __P ((glob_t *__pglob)) __asm__ ("globfree64");
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
189 #endif
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
190
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
191
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
192 #ifdef _GNU_SOURCE
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
193 /* Return nonzero if PATTERN contains any metacharacters.
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
194 Metacharacters can be quoted with backslashes if QUOTE is nonzero.
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
195
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
196 This function is not part of the interface specified by POSIX.2
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
197 but several programs want to use it. */
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
198 extern int glob_pattern_p __P ((__const char *__pattern, int __quote));
66d7394f5822 [project @ 2002-10-09 18:47:16 by jwe]
jwe
parents: 2863
diff changeset
199 #endif
1313
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
200
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
201 #ifdef __cplusplus
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
202 }
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
203 #endif
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
204
f0dcdcc9a780 [project @ 1995-06-25 18:42:38 by jwe]
jwe
parents:
diff changeset
205 #endif /* glob.h */