14 #include <solv/repo.h>
57 case SEARCH_STRING:
return STRING;
break;
59 case SEARCH_STRINGEND:
return STRINGEND;
break;
60 case SEARCH_SUBSTRING:
return SUBSTRING;
break;
61 case SEARCH_GLOB:
return GLOB;
break;
62 case SEARCH_REGEX:
return REGEX;
break;
72 case STRING:
return SEARCH_STRING;
break;
74 case STRINGEND:
return SEARCH_STRINGEND;
break;
75 case SUBSTRING:
return SEARCH_SUBSTRING;
break;
76 case GLOB:
return SEARCH_GLOB;
break;
77 case REGEX:
return SEARCH_REGEX;
break;
78 case OTHER:
return SEARCH_STRINGMASK;
break;
80 return SEARCH_STRINGMASK;
84 { std::ostringstream str; str << *
this;
return str.str(); }
90 #define OUTS(V) case Match::V: return str << #V; break
101 return str <<
"Match::Mode::UNKNOWN";
107 return str <<
"NOTHING";
109 const char * sep =
"|";
117 str << mode<<
"("<<obj.
modeval()<<
")";
127 #define OUTS(V) if ( val & Match::V.get() ) { val &= ~Match::V.get(); if ( sep ) str << sep; else sep = "|"; str << #V; }
129 OUTS( NO_STORAGE_SOLVABLE );
131 OUTS( ARRAYSENTINEL );
132 OUTS( DISABLED_REPOS );
133 OUTS( COMPLETE_FILELIST );
140 if ( sep ) str << sep;
153 : str::
form(
_(
"Unknown match mode '%s' for pattern '%s'"), mode_r.
asString().c_str(), msg_r.c_str() ) )
157 :
MatchException( regcomp_r ? str::
form(
_(
"Invalid regular expression '%s': regcomp returned %d"), regex_r.c_str(), regcomp_r )
158 : str::
form(
_(
"Invalid regular expression '%s'"), regex_r.c_str() ) )
174 :
_search( std::move(search_r) )
210 return ::datamatcher_match(
_matcher.get(), string_r );
234 ::datamatcher_free(
_matcher.get() );
241 mutable scoped_ptr< sat::detail::CDatamatcher>
_matcher;
244 friend Impl * rwcowClone<Impl>(
const Impl * rhs );
265 : _pimpl( new
Impl( search_r,
Match::STRING ) )
268 : _pimpl( new
Impl( std::move(search_r),
Match::STRING ) )
272 : _pimpl( new
Impl( search_r, flags_r ) )
275 : _pimpl( new
Impl( std::move(search_r), flags_r ) )
279 : _pimpl( new
Impl( search_r, flags_r ) )
282 : _pimpl( new
Impl( std::move(search_r), flags_r ) )
286 : _pimpl( new
Impl( search_r,
Match(flags_r) ) )
289 : _pimpl( new
Impl( std::move(search_r),
Match(flags_r) ) )
327 {
return str << *obj.
_pimpl; }