SongFilter: simplify Parse() loop
Consume the ConstBuffer instead of iterating it. This will allow adding more complex parsers.
This commit is contained in:
parent
821f77325c
commit
b34fd905c8
@ -216,11 +216,17 @@ SongFilter::Parse(const char *tag_string, const char *value, bool fold_case)
|
|||||||
void
|
void
|
||||||
SongFilter::Parse(ConstBuffer<const char *> args, bool fold_case)
|
SongFilter::Parse(ConstBuffer<const char *> args, bool fold_case)
|
||||||
{
|
{
|
||||||
if (args.size == 0 || args.size % 2 != 0)
|
if (args.empty())
|
||||||
throw std::runtime_error("Incorrect number of filter arguments");
|
throw std::runtime_error("Incorrect number of filter arguments");
|
||||||
|
|
||||||
for (unsigned i = 0; i < args.size; i += 2)
|
do {
|
||||||
Parse(args[i], args[i + 1], fold_case);
|
if (args.size < 2)
|
||||||
|
throw std::runtime_error("Incorrect number of filter arguments");
|
||||||
|
|
||||||
|
const char *tag = args.shift();
|
||||||
|
const char *value = args.shift();
|
||||||
|
Parse(tag, value, fold_case);
|
||||||
|
} while (!args.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
Loading…
Reference in New Issue
Block a user