diff options
author | Max Kellermann <max@duempel.org> | 2009-07-19 17:59:36 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-07-19 17:59:36 +0200 |
commit | 5e2f98fdad1b4a552fd872c643f5584267a40dcc (patch) | |
tree | db775be2cd8ccaad3c58f38b6d66f71493794893 /src | |
parent | 7b92750622b2d0b2332ddf8e6f5a5824ac04249d (diff) | |
download | mpd-5e2f98fdad1b4a552fd872c643f5584267a40dcc.tar.gz mpd-5e2f98fdad1b4a552fd872c643f5584267a40dcc.tar.xz mpd-5e2f98fdad1b4a552fd872c643f5584267a40dcc.zip |
tag_ape: moved code to tag_ape_import_item()
Improve code readability.
Diffstat (limited to 'src')
-rw-r--r-- | src/tag_ape.c | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/src/tag_ape.c b/src/tag_ape.c index 189b66e8f..999e045eb 100644 --- a/src/tag_ape.c +++ b/src/tag_ape.c @@ -44,6 +44,26 @@ static const int tagItems[7] = { TAG_ITEM_DATE, }; +static struct tag * +tag_ape_import_item(struct tag *tag, unsigned long flags, + const char *key, const char *value, size_t value_length) +{ + /* we only care about utf-8 text tags */ + if ((flags & (0x3 << 1)) != 0) + return tag; + + for (unsigned i = 0; i < 7; i++) { + if (g_ascii_strcasecmp(key, apeItems[i]) == 0) { + if (tag == NULL) + tag = tag_new(); + tag_add_item_n(tag, tagItems[i], + value, value_length); + } + } + + return tag; +} + struct tag * tag_ape_load(const char *file) { @@ -55,7 +75,6 @@ tag_ape_load(const char *file) size_t tagLen; size_t size; unsigned long flags; - int i; char *key; struct { @@ -123,17 +142,8 @@ tag_ape_load(const char *file) if (tagLen < size) goto fail; - /* we only care about utf-8 text tags */ - if (!(flags & (0x3 << 1))) { - for (i = 0; i < 7; i++) { - if (g_ascii_strcasecmp(key, apeItems[i]) == 0) { - if (!ret) - ret = tag_new(); - tag_add_item_n(ret, tagItems[i], - p, size); - } - } - } + ret = tag_ape_import_item(ret, flags, key, p, size); + p += size; tagLen -= size; } |