1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
#include "cmdfinderbase.ih"
void CmdFinderBase::setMode(size_t mode)
{
if (mode & ~s_all)
throw Exception{1} << "CmdFinder: " << "mode 0x" << hex << mode <<
" not recognized (allowed bits: 0x" << s_all << ")";
d_useCmd = mode & USE_FIRST ?
&CmdFinderBase::useFirstCmd
:
&CmdFinderBase::useCmd;
switch (mode & (UNIQUE | INSENSITIVE))
{
case 0:
d_match = &CmdFinderBase::matchExact;
break;
case UNIQUE:
d_match = &CmdFinderBase::matchUnique;
break;
case INSENSITIVE:
d_match = &CmdFinderBase::matchInsensitive;
break;
default:
d_match = &CmdFinderBase::matchUniqueInsensitive;
break;
}
}
|