fnmatch() errors encountered with charset conversion errors on file names were treated as matches
This commit is contained in:
parent
e7eafe4ab4
commit
60b9845b83
4 changed files with 39 additions and 12 deletions
|
@ -26,12 +26,22 @@
|
|||
using std::string;
|
||||
|
||||
#include "cstr.h"
|
||||
|
||||
#include "debuglog.h"
|
||||
#include "strmatcher.h"
|
||||
|
||||
bool StrWildMatcher::match(const string& val) const
|
||||
{
|
||||
return fnmatch(m_sexp.c_str(), val.c_str(), 0) != FNM_NOMATCH;
|
||||
LOGDEB2(("StrWildMatcher::match: [%s] against [%s]\n",
|
||||
m_sexp.c_str(), val.c_str()));
|
||||
int ret = fnmatch(m_sexp.c_str(), val.c_str(), FNM_NOESCAPE);
|
||||
switch (ret) {
|
||||
case 0: return true;
|
||||
case FNM_NOMATCH: return false;
|
||||
default:
|
||||
LOGDEB0(("StrWildMatcher::match error: [%s] against [%s]\n",
|
||||
m_sexp.c_str(), val.c_str()));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
string::size_type StrWildMatcher::baseprefixlen() const
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue