From 072c2c23e58d2ef9620c9f4bd7e8d522afdc5cd9 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 23 Jun 2023 21:32:47 +1000 Subject: [PATCH] Parse and zero-pad track numbers --- src/database/tag_parser.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/database/tag_parser.cpp b/src/database/tag_parser.cpp index 49febe27..b2d206d2 100644 --- a/src/database/tag_parser.cpp +++ b/src/database/tag_parser.cpp @@ -8,7 +8,10 @@ #include #include +#include #include +#include +#include namespace database { @@ -74,7 +77,14 @@ static void tag(Tagctx* ctx, Aux* aux = reinterpret_cast(ctx->aux); auto tag = convert_tag(t); if (tag) { - aux->tags->set(*tag, v); + std::string value{v}; + if (*tag == Tag::kAlbumTrack) { + uint32_t as_int = std::atoi(v); + std::ostringstream oss; + oss << std::setw(4) << std::setfill('0') << as_int; + value = oss.str(); + } + aux->tags->set(*tag, value); } }