Apache Portable Runtime
include
apr-1
apr_fnmatch.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 1992, 1993
3
* The Regents of the University of California. All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 3. All advertising materials mentioning features or use of this software
14
* must display the following acknowledgement:
15
* This product includes software developed by the University of
16
* California, Berkeley and its contributors.
17
* 4. Neither the name of the University nor the names of its contributors
18
* may be used to endorse or promote products derived from this software
19
* without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31
* SUCH DAMAGE.
32
*
33
* @(#)fnmatch.h 8.1 (Berkeley) 6/2/93
34
*/
35
36
/* This file has been modified by the Apache Software Foundation. */
37
#ifndef _APR_FNMATCH_H_
38
#define _APR_FNMATCH_H_
39
40
/**
41
* @file apr_fnmatch.h
42
* @brief APR FNMatch Functions
43
*/
44
45
#include "
apr_errno.h
"
46
#include "
apr_tables.h
"
47
48
#ifdef __cplusplus
49
extern
"C"
{
50
#endif
51
52
/**
53
* @defgroup apr_fnmatch Filename Matching Functions
54
* @ingroup APR
55
* @{
56
*/
57
58
#define APR_FNM_NOMATCH 1
/**< Match failed. */
59
60
#define APR_FNM_NOESCAPE 0x01
/**< Disable backslash escaping. */
61
#define APR_FNM_PATHNAME 0x02
/**< Slash must be matched by slash. */
62
#define APR_FNM_PERIOD 0x04
/**< Period must be matched by period. */
63
#define APR_FNM_CASE_BLIND 0x08
/**< Compare characters case-insensitively. */
64
65
/**
66
* Try to match the string to the given pattern, return APR_SUCCESS if
67
* match, else return APR_FNM_NOMATCH. Note that there is no such thing as
68
* an illegal pattern.
69
*
70
* With all flags unset, a pattern is interpreted as such:
71
*
72
* PATTERN: Backslash followed by any character, including another
73
* backslash.<br/>
74
* MATCHES: That character exactly.
75
*
76
* <p>
77
* PATTERN: ?<br/>
78
* MATCHES: Any single character.
79
* </p>
80
*
81
* <p>
82
* PATTERN: *<br/>
83
* MATCHES: Any sequence of zero or more characters. (Note that multiple
84
* *s in a row are equivalent to one.)
85
*
86
* PATTERN: Any character other than \?*[ or a \ at the end of the pattern<br/>
87
* MATCHES: That character exactly. (Case sensitive.)
88
*
89
* PATTERN: [ followed by a class description followed by ]<br/>
90
* MATCHES: A single character described by the class description.
91
* (Never matches, if the class description reaches until the
92
* end of the string without a ].) If the first character of
93
* the class description is ^ or !, the sense of the description
94
* is reversed. The rest of the class description is a list of
95
* single characters or pairs of characters separated by -. Any
96
* of those characters can have a backslash in front of them,
97
* which is ignored; this lets you use the characters ] and -
98
* in the character class, as well as ^ and ! at the
99
* beginning. The pattern matches a single character if it
100
* is one of the listed characters or falls into one of the
101
* listed ranges (inclusive, case sensitive). Ranges with
102
* the first character larger than the second are legal but
103
* never match. Edge cases: [] never matches, and [^] and [!]
104
* always match without consuming a character.
105
*
106
* Note that these patterns attempt to match the entire string, not
107
* just find a substring matching the pattern.
108
*
109
* @param pattern The pattern to match to
110
* @param strings The string we are trying to match
111
* @param flags flags to use in the match. Bitwise OR of:
112
* <pre>
113
* APR_FNM_NOESCAPE Disable backslash escaping
114
* APR_FNM_PATHNAME Slash must be matched by slash
115
* APR_FNM_PERIOD Period must be matched by period
116
* APR_FNM_CASE_BLIND Compare characters case-insensitively.
117
* </pre>
118
*/
119
120
APR_DECLARE
(
apr_status_t
)
apr_fnmatch
(
const
char
*pattern,
121
const
char
*strings,
int
flags);
122
123
/**
124
* Determine if the given pattern is a regular expression.
125
* @param pattern The pattern to search for glob characters.
126
* @return non-zero if pattern has any glob characters in it
127
*/
128
APR_DECLARE
(
int
)
apr_fnmatch_test
(
const
char
*pattern);
129
130
/**
131
* Find all files that match a specified pattern in a directory.
132
* @param dir_pattern The pattern to use for finding files, appended
133
* to the search directory. The pattern is anything following the
134
* final forward or backward slash in the parameter. If no slash
135
* is found, the current directory is searched.
136
* @param result Array to use when storing the results
137
* @param p The pool to use.
138
* @return APR_SUCCESS if no processing errors occurred, APR error
139
* code otherwise
140
* @remark The returned array may be empty even if APR_SUCCESS was
141
* returned.
142
*/
143
APR_DECLARE
(
apr_status_t
)
apr_match_glob
(
const
char
*dir_pattern,
144
apr_array_header_t
**result,
145
apr_pool_t
*p);
146
147
/** @} */
148
149
#ifdef __cplusplus
150
}
151
#endif
152
153
#endif
/* !_APR_FNMATCH_H_ */
apr_errno.h
APR Error Codes.
apr_array_header_t
Definition:
apr_tables.h:62
apr_tables.h
APR Table library.
APR_DECLARE
#define APR_DECLARE(type)
Definition:
apr.h:498
apr_match_glob
apr_status_t apr_match_glob(const char *dir_pattern, apr_array_header_t **result, apr_pool_t *p)
apr_fnmatch_test
int apr_fnmatch_test(const char *pattern)
apr_status_t
int apr_status_t
Definition:
apr_errno.h:44
apr_fnmatch
apr_status_t apr_fnmatch(const char *pattern, const char *strings, int flags)
apr_pool_t
struct apr_pool_t apr_pool_t
Definition:
apr_pools.h:60
Generated by
1.8.17