From 0f19108ce34ba523b2a652c10879c9e312155426 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 10 Aug 2018 18:22:59 +0200 Subject: [PATCH] tag/Config: use SplitString() --- src/tag/Config.cxx | 38 +++++++++----------------------------- 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/src/tag/Config.cxx b/src/tag/Config.cxx index 07232f3f3..94899df14 100644 --- a/src/tag/Config.cxx +++ b/src/tag/Config.cxx @@ -23,12 +23,9 @@ #include "ParseName.hxx" #include "config/Data.hxx" #include "config/Option.hxx" -#include "util/Alloc.hxx" #include "util/ASCII.hxx" -#include "util/StringStrip.hxx" #include "util/RuntimeError.hxx" - -#include +#include "util/SplitString.hxx" void TagLoadConfig(const ConfigData &config) @@ -42,31 +39,14 @@ TagLoadConfig(const ConfigData &config) if (StringEqualsCaseASCII(value, "none")) return; - bool quit = false; - char *temp, *c, *s; - temp = c = s = xstrdup(value); - do { - if (*s == ',' || *s == '\0') { - if (*s == '\0') - quit = true; - *s = '\0'; + for (const auto &i : SplitString(value, ',')) { + const char *name = i.c_str(); - c = Strip(c); - if (*c == 0) - continue; + const auto type = tag_name_parse_i(name); + if (type == TAG_NUM_OF_ITEM_TYPES) + throw FormatRuntimeError("error parsing metadata item \"%s\"", + name); - const auto type = tag_name_parse_i(c); - if (type == TAG_NUM_OF_ITEM_TYPES) - throw FormatRuntimeError("error parsing metadata item \"%s\"", - c); - - global_tag_mask |= type; - - s++; - c = s; - } - s++; - } while (!quit); - - free(temp); + global_tag_mask |= type; + } }