Annotation of win32/apache22/srclib/apr/include/apr_fnmatch.h, revision 1.1
1.1 ! moko 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: * @remark This flag is an Apache addition
! 65: */
! 66:
! 67: /**
! 68: * Try to match the string to the given pattern, return APR_SUCCESS if
! 69: * match, else return APR_FNM_NOMATCH. Note that there is no such thing as
! 70: * an illegal pattern.
! 71: *
! 72: * With all flags unset, a pattern is interpreted as such:
! 73: *
! 74: * PATTERN: Backslash followed by any character, including another
! 75: * backslash.<br/>
! 76: * MATCHES: That character exactly.
! 77: *
! 78: * <p>
! 79: * PATTERN: ?<br/>
! 80: * MATCHES: Any single character.
! 81: * </p>
! 82: *
! 83: * <p>
! 84: * PATTERN: *<br/>
! 85: * MATCHES: Any sequence of zero or more characters. (Note that multiple
! 86: * *s in a row are equivalent to one.)
! 87: *
! 88: * PATTERN: Any character other than \?*[ or a \ at the end of the pattern<br/>
! 89: * MATCHES: That character exactly. (Case sensitive.)
! 90: *
! 91: * PATTERN: [ followed by a class description followed by ]<br/>
! 92: * MATCHES: A single character described by the class description.
! 93: * (Never matches, if the class description reaches until the
! 94: * end of the string without a ].) If the first character of
! 95: * the class description is ^ or !, the sense of the description
! 96: * is reversed. The rest of the class description is a list of
! 97: * single characters or pairs of characters separated by -. Any
! 98: * of those characters can have a backslash in front of them,
! 99: * which is ignored; this lets you use the characters ] and -
! 100: * in the character class, as well as ^ and ! at the
! 101: * beginning. The pattern matches a single character if it
! 102: * is one of the listed characters or falls into one of the
! 103: * listed ranges (inclusive, case sensitive). Ranges with
! 104: * the first character larger than the second are legal but
! 105: * never match. Edge cases: [] never matches, and [^] and [!]
! 106: * always match without consuming a character.
! 107: *
! 108: * Note that these patterns attempt to match the entire string, not
! 109: * just find a substring matching the pattern.
! 110: *
! 111: * @param pattern The pattern to match to
! 112: * @param strings The string we are trying to match
! 113: * @param flags flags to use in the match. Bitwise OR of:
! 114: * <pre>
! 115: * APR_FNM_NOESCAPE Disable backslash escaping
! 116: * APR_FNM_PATHNAME Slash must be matched by slash
! 117: * APR_FNM_PERIOD Period must be matched by period
! 118: * APR_FNM_CASE_BLIND Compare characters case-insensitively.
! 119: * </pre>
! 120: */
! 121:
! 122: APR_DECLARE(apr_status_t) apr_fnmatch(const char *pattern,
! 123: const char *strings, int flags);
! 124:
! 125: /**
! 126: * Determine if the given pattern is a regular expression.
! 127: * @param pattern The pattern to search for glob characters.
! 128: * @return non-zero if pattern has any glob characters in it
! 129: */
! 130: APR_DECLARE(int) apr_fnmatch_test(const char *pattern);
! 131:
! 132: /**
! 133: * Find all files that match a specified pattern.
! 134: * @param pattern The pattern to use for finding files.
! 135: * @param result Array to use when storing the results
! 136: * @param p The pool to use.
! 137: * @return non-zero if pattern has any glob characters in it
! 138: */
! 139: APR_DECLARE(apr_status_t) apr_match_glob(const char *pattern,
! 140: apr_array_header_t **result,
! 141: apr_pool_t *p);
! 142:
! 143: /** @} */
! 144:
! 145: #ifdef __cplusplus
! 146: }
! 147: #endif
! 148:
! 149: #endif /* !_APR_FNMATCH_H_ */
E-mail: