77 size_t lastCmd= size_t(
commands.size() - 1 );
78 bool lastWasAsterisk=
false;
80 for( actCmd= 0; actCmd <= lastCmd ; ++actCmd ) {
85 if ( haystack.
Length() < cmd.first )
87 haystack.template ConsumeChars<NC>( cmd.first );
92 if( cmd.first == ASTERISK ) {
93 if ( actCmd == lastCmd )
96 lastWasAsterisk=
true;
101 if( cmd.second.Length() > haystack.
Length() )
104 if( lastWasAsterisk ) {
106 : haystack.template IndexOf<NC, lang::Case::Ignore >( cmd.second, 0, haystack.
Length() - cmd.second.Length() + 1 );
110 lastWasAsterisk=
false;
114 if( sensitivity==
lang::Case::Sensitive ? (!haystack.template StartsWith<NC, lang::Case::Sensitive>( cmd.second ) )
115 : (!haystack.template StartsWith<NC, lang::Case::Ignore >( cmd.second ) ) )
118 haystack.template ConsumeChars<NC>( cmd.second.Length() );
121 return haystack.
IsEmpty() || lastWasAsterisk;