Loading...
Searching...
No Matches
Filename Matching Functions
Apache Portability Runtime library
Collaboration diagram for Filename Matching Functions:

## Macros

#define | APR_FNM_NOMATCH 1
#define | APR_FNM_NOESCAPE 0x01
#define | APR_FNM_PATHNAME 0x02
#define | APR_FNM_PERIOD 0x04
#define | APR_FNM_CASE_BLIND 0x08

## Functions

apr_status_t | apr_fnmatch (const char *pattern, const char *strings, int flags)
int | apr_fnmatch_test (const char *pattern)
apr_status_t | apr_match_glob (const char *dir_pattern, apr_array_header_t **result, apr_pool_t *p)

## Detailed Description

## Macro Definition Documentation

## APR_FNM_CASE_BLIND

#define APR_FNM_CASE_BLIND 0x08

Compare characters case-insensitively.

## APR_FNM_NOESCAPE

#define APR_FNM_NOESCAPE 0x01

Disable backslash escaping.

## APR_FNM_NOMATCH

#define APR_FNM_NOMATCH 1

Match failed.

## APR_FNM_PATHNAME

#define APR_FNM_PATHNAME 0x02

Slash must be matched by slash.

## APR_FNM_PERIOD

#define APR_FNM_PERIOD 0x04

Period must be matched by period.

## Function Documentation

## apr_fnmatch()

apr_status_t apr_fnmatch | ( | const char * | pattern,
|  | const char * | strings,
|  | int | flags
| ) |  |

Try to match the string to the given pattern, return APR_SUCCESS if match, else return APR_FNM_NOMATCH. Note that there is no such thing as an illegal pattern.

With all flags unset, a pattern is interpreted as such:

PATTERN: Backslash followed by any character, including another backslash.
MATCHES: That character exactly.

PATTERN: ?
MATCHES: Any single character.

PATTERN: *
MATCHES: Any sequence of zero or more characters. (Note that multiple *s in a row are equivalent to one.)

PATTERN: Any character other than \?*[ or a \ at the end of the pattern
MATCHES: That character exactly. (Case sensitive.)

PATTERN: [ followed by a class description followed by ]
MATCHES: A single character described by the class description. (Never matches, if the class description reaches until the end of the string without a ].) If the first character of the class description is ^ or !, the sense of the description is reversed. The rest of the class description is a list of single characters or pairs of characters separated by -. Any of those characters can have a backslash in front of them, which is ignored; this lets you use the characters ] and - in the character class, as well as ^ and ! at the beginning. The pattern matches a single character if it is one of the listed characters or falls into one of the listed ranges (inclusive, case sensitive). Ranges with the first character larger than the second are legal but never match. Edge cases: [] never matches, and [^] and [!] always match without consuming a character.

Note that these patterns attempt to match the entire string, not just find a substring matching the pattern.

Parameters

  pattern | The pattern to match to
  strings | The string we are trying to match

  flags

  flags to use in the match. Bitwise OR of:

                   APR_FNM_NOESCAPE       Disable backslash escaping
                   APR_FNM_PATHNAME       Slash must be matched by slash
                   APR_FNM_PERIOD         Period must be matched by period
                   APR_FNM_CASE_BLIND     Compare characters case-insensitively.

## apr_fnmatch_test()

int apr_fnmatch_test | ( | const char * | pattern | ) |

Determine if the given pattern is a regular expression.

Parameters

  pattern | The pattern to search for glob characters.

Returns
  non-zero if pattern has any glob characters in it

## apr_match_glob()

apr_status_t apr_match_glob | ( | const char * | dir_pattern,
|  | apr_array_header_t ** | result,
|  | apr_pool_t * | p
| ) |  |

Find all files that match a specified pattern in a directory.

Parameters

  dir_pattern | The pattern to use for finding files, appended to the search directory. The pattern is anything following the final forward or backward slash in the parameter. If no slash is found, the current directory is searched.
  result | Array to use when storing the results
  p | The pool to use.

Returns
  APR_SUCCESS if no processing errors occurred, APR error code otherwise

Remarks
  The returned array may be empty even if APR_SUCCESS was returned.