Filter out this extra data and leading zeroes in "track" and "disc" tags.

This commit is contained in:
Andreas Mair 2015-10-21 08:30:33 +02:00
parent 0366dcf604
commit bea5973e0c
1 changed files with 14 additions and 1 deletions

View File

@ -22,6 +22,9 @@
#include "TagBuilder.hxx"
#include "util/ASCII.hxx"
#include <stdio.h>
#include <stdlib.h>
static void
add_tag_duration(SongTime duration, void *ctx)
{
@ -35,7 +38,17 @@ add_tag_tag(TagType type, const char *value, void *ctx)
{
TagBuilder &tag = *(TagBuilder *)ctx;
tag.AddItem(type, value);
if (type == TAG_TRACK || type == TAG_DISC) {
/* filter out this extra data and leading zeroes */
char *end;
unsigned n = strtoul(value, &end, 10);
if (value != end) {
char s[21];
if (snprintf(s, 21, "%u", n) >= 0)
tag.AddItem(type, s);
}
} else
tag.AddItem(type, value);
}
const struct tag_handler add_tag_handler = {