104 size_t lastCmd= size_t(
commands.size() - 1 );
105 bool lastWasAsterisk=
false;
107 for( actCmd= 0; actCmd <= lastCmd ; ++actCmd )
114 if ( haystack.
Length() < cmd.first )
116 haystack.template ConsumeChars<NC>( cmd.first );
121 if( cmd.first == ASTERISK )
123 if ( actCmd == lastCmd )
126 lastWasAsterisk=
true;
131 if( cmd.second.Length() > haystack.
Length() )
134 if( lastWasAsterisk )
137 : haystack.template IndexOf<NC, lang::Case::Ignore >( cmd.second, 0, haystack.
Length() - cmd.second.Length() + 1 );
141 lastWasAsterisk=
false;
145 if( sensitivity==
lang::Case::Sensitive ? (!haystack.template StartsWith<NC, lang::Case::Sensitive>( cmd.second ) )
146 : (!haystack.template StartsWith<NC, lang::Case::Ignore >( cmd.second ) ) )
149 haystack.template ConsumeChars<NC>( cmd.second.Length() );
152 return haystack.
IsEmpty() || lastWasAsterisk;