99 size_t lastCmd= size_t(
commands.size() - 1 );
100 bool lastWasAsterisk=
false;
102 for( actCmd= 0; actCmd <= lastCmd ; ++actCmd ) {
106 if( cmd.first > 0 ) {
107 if ( haystack.
Length() < cmd.first )
109 haystack.template ConsumeChars<NC>( cmd.first );
114 if( cmd.first == ASTERISK ) {
115 if ( actCmd == lastCmd )
118 lastWasAsterisk=
true;
123 if( cmd.second.Length() > haystack.
Length() )
126 if( lastWasAsterisk ) {
128 : haystack.template IndexOf<NC, lang::Case::Ignore >( cmd.second, 0, haystack.
Length() - cmd.second.Length() + 1 );
132 lastWasAsterisk=
false;
136 if( sensitivity==
lang::Case::Sensitive ? (!haystack.template StartsWith<NC, lang::Case::Sensitive>( cmd.second ) )
137 : (!haystack.template StartsWith<NC, lang::Case::Ignore >( cmd.second ) ) )
140 haystack.template ConsumeChars<NC>( cmd.second.Length() );
143 return haystack.
IsEmpty() || lastWasAsterisk;