This class can be used to test for string matches against standard Unix- shell filename globbing conventions. More...
#include "globPattern.h"
Public Member Functions | |
GlobPattern (const std::string &pattern=std::string()) | |
GlobPattern (const GlobPattern ©) | |
bool | get_case_sensitive () const |
std::string | get_const_prefix () const |
Returns the initial part of the pattern before the first glob character. More... | |
const std::string & | get_nomatch_chars () const |
const std::string & | get_pattern () const |
bool | has_glob_characters () const |
Returns true if the pattern includes any special globbing characters, or false if it is just a literal string. More... | |
int | match_files (vector_string &results, const Filename &cwd=Filename()) const |
Treats the GlobPattern as a filename pattern, and returns a list of any actual files that match the pattern. More... | |
bool | matches (const std::string &candidate) const |
Returns true if the candidate string matches the pattern, false otherwise. More... | |
bool | matches_file (Filename candidate) const |
Treats the GlobPattern as a filename pattern, and returns true if the given filename matches the pattern. More... | |
bool | operator != (const GlobPattern &other) const |
bool | operator< (const GlobPattern &other) const |
void | operator= (const GlobPattern ©) |
bool | operator== (const GlobPattern &other) const |
void | output (std::ostream &out) const |
void | set_case_sensitive (bool case_sensitive) |
void | set_nomatch_chars (const std::string &nomatch_chars) |
void | set_pattern (const std::string &pattern) |
Public Attributes | |
get_case_sensitive | |
Returns whether the match is case sensitive (true) or case insensitive (false). More... | |
get_nomatch_chars | |
Returns the set of characters that are not matched by * or ?. More... | |
get_pattern | |
Returns the pattern string that the GlobPattern object matches. More... | |
set_case_sensitive | |
Sets whether the match is case sensitive (true) or case insensitive (false). More... | |
set_nomatch_chars | |
Specifies a set of characters that are not matched by * or ?. More... | |
set_pattern | |
Changes the pattern string that the GlobPattern object matches. More... | |
This class can be used to test for string matches against standard Unix- shell filename globbing conventions.
It serves as a portable standin for the Posix fnmatch() call.
A GlobPattern is given a pattern string, which can contain operators like *, ?, and []. Then it can be tested against any number of candidate strings; for each candidate, it will indicate whether the string matches the pattern or not. It can be used, for example, to scan a directory for all files matching a particular pattern.
Definition at line 32 of file globPattern.h.
string GlobPattern::get_const_prefix | ( | ) | const |
Returns the initial part of the pattern before the first glob character.
Since many glob patterns begin with a sequence of static characters and end with one or more glob characters, this can be used to optimized searches through sorted indices.
Definition at line 53 of file globPattern.cxx.
Referenced by AsyncTaskManager::find_tasks_matching().
bool GlobPattern::has_glob_characters | ( | ) | const |
Returns true if the pattern includes any special globbing characters, or false if it is just a literal string.
Definition at line 25 of file globPattern.cxx.
Treats the GlobPattern as a filename pattern, and returns a list of any actual files that match the pattern.
This is the behavior of the standard Posix glob() function. Any part of the filename may contain glob characters, including intermediate directory names.
If cwd is specified, it is the directory that relative filenames are taken to be relative to; otherwise, the actual current working directory is assumed.
The return value is the number of files matched, which are added to the results vector.
Definition at line 90 of file globPattern.cxx.
References set_case_sensitive.
|
inline |
Returns true if the candidate string matches the pattern, false otherwise.
Definition at line 122 of file globPattern.I.
Referenced by AsyncTaskManager::find_tasks_matching(), ConfigVariableManager::make_variable(), QtessInputEntry::match(), MayaNodeTree::tag_joint_named(), MayaNodeTree::tag_named(), and MayaNodeTree::untag_named().
bool GlobPattern::matches_file | ( | Filename | candidate | ) | const |
Treats the GlobPattern as a filename pattern, and returns true if the given filename matches the pattern.
Unlike matches(), this will not match slash characters for single asterisk characters, and it will ignore path components that only contain a dot.
Definition at line 236 of file globPattern.cxx.
References Filename::is_local().
|
inline |
Returns whether the match is case sensitive (true) or case insensitive (false).
The default is case sensitive.
Definition at line 48 of file globPattern.h.
|
inline |
Returns the set of characters that are not matched by * or ?.
Definition at line 52 of file globPattern.h.
|
inline |
Returns the pattern string that the GlobPattern object matches.
Definition at line 44 of file globPattern.h.
|
inline |
Sets whether the match is case sensitive (true) or case insensitive (false).
The default is case sensitive.
Definition at line 48 of file globPattern.h.
Referenced by match_files().
|
inline |
Specifies a set of characters that are not matched by * or ?.
Definition at line 52 of file globPattern.h.
|
inline |
Changes the pattern string that the GlobPattern object matches.
Definition at line 44 of file globPattern.h.