diff options
Diffstat (limited to '')
-rw-r--r-- | src/decoder/oggvorbis_plugin.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/decoder/oggvorbis_plugin.c b/src/decoder/oggvorbis_plugin.c index 60ad0d07c..772526225 100644 --- a/src/decoder/oggvorbis_plugin.c +++ b/src/decoder/oggvorbis_plugin.c @@ -144,8 +144,7 @@ static const char *VORBIS_COMMENT_DISC_KEY = "discnumber"; static bool vorbis_parse_comment(struct tag *tag, char *comment, enum tag_type tag_type) { - const char *needle; - unsigned int len; + const char *needle, *value; assert(tag != NULL); @@ -159,10 +158,10 @@ vorbis_parse_comment(struct tag *tag, char *comment, enum tag_type tag_type) default: needle = mpdTagItemKeys[tag_type]; } - len = strlen(needle); - if (strncasecmp(comment, needle, len) == 0 && *(comment + len) == '=') { - tag_add_item(tag, tag_type, comment + len + 1); + value = vorbis_comment_value(comment, needle); + if (value != NULL) { + tag_add_item(tag, tag_type, value); return true; } |