, secretmode(creator, "secret")
, privatemode(creator, "private")
{
+ allow_empty_last_param = false;
Penalty = 5;
}
* @param user The user issuing the command
* @return A value from CmdResult to indicate command success or failure.
*/
- CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+ CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
};
/** Handle /LIST
*/
-CmdResult CommandList::Handle (const std::vector<std::string>& parameters, User *user)
+CmdResult CommandList::Handle(User* user, const Params& parameters)
{
// C: Searching based on creation time, via the "C<val" and "C>val" modifiers
// to search for a channel creation time that is lower or higher than val
size_t minusers = 0;
size_t maxusers = 0;
- if ((parameters.size() == 1) && (!parameters[0].empty()))
+ for (Params::const_iterator iter = parameters.begin(); iter != parameters.end(); ++iter)
{
- if (parameters[0][0] == '<')
+ const std::string& constraint = *iter;
+ if (constraint[0] == '<')
{
- maxusers = ConvToNum<size_t>(parameters[0].c_str() + 1);
+ maxusers = ConvToNum<size_t>(constraint.c_str() + 1);
}
- else if (parameters[0][0] == '>')
+ else if (constraint[0] == '>')
{
- minusers = ConvToNum<size_t>(parameters[0].c_str() + 1);
+ minusers = ConvToNum<size_t>(constraint.c_str() + 1);
}
- else if (!parameters[0].compare(0, 2, "C<", 2))
+ else if (!constraint.compare(0, 2, "C<", 2) || !constraint.compare(0, 2, "c<", 2))
{
- mincreationtime = ParseMinutes(parameters[0]);
+ mincreationtime = ParseMinutes(constraint);
}
- else if (!parameters[0].compare(0, 2, "C>", 2))
+ else if (!constraint.compare(0, 2, "C>", 2) || !constraint.compare(0, 2, "c>", 2))
{
- maxcreationtime = ParseMinutes(parameters[0]);
+ maxcreationtime = ParseMinutes(constraint);
}
- else if (!parameters[0].compare(0, 2, "T<", 2))
+ else if (!constraint.compare(0, 2, "T<", 2) || !constraint.compare(0, 2, "t<", 2))
{
- mintopictime = ParseMinutes(parameters[0]);
+ mintopictime = ParseMinutes(constraint);
}
- else if (!parameters[0].compare(0, 2, "T>", 2))
+ else if (!constraint.compare(0, 2, "T>", 2) || !constraint.compare(0, 2, "t>", 2))
{
- maxtopictime = ParseMinutes(parameters[0]);
+ maxtopictime = ParseMinutes(constraint);
}
else
{
// If the glob is prefixed with ! it is inverted.
- match = parameters[0].c_str();
+ match = constraint.c_str();
if (match[0] == '!')
{
match_inverted = true;