From 976372ff6334db52e2e2beef24794cd4549de592 Mon Sep 17 00:00:00 2001 From: John Regan Date: Tue, 18 Feb 2020 15:06:52 -0500 Subject: [PATCH] gme: check for empty metadata strings instead of nullptr Using libgme 0.6.2 on macOS, it appears that gme_info_t strings can be empty, which creates weird track titles: (001/050) This adds an additional check for an empty string. --- NEWS | 2 ++ src/decoder/plugins/GmeDecoderPlugin.cxx | 11 ++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index 4e35fd90a..4648d09a0 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ ver 0.21.21 (not yet released) +* decoder + - gme: ignore empty tags ver 0.21.20 (2020/02/16) * decoder diff --git a/src/decoder/plugins/GmeDecoderPlugin.cxx b/src/decoder/plugins/GmeDecoderPlugin.cxx index 64f0a1ad4..fcea526af 100644 --- a/src/decoder/plugins/GmeDecoderPlugin.cxx +++ b/src/decoder/plugins/GmeDecoderPlugin.cxx @@ -28,6 +28,7 @@ #include "fs/AllocatedPath.hxx" #include "fs/FileSystem.hxx" #include "util/ScopeExit.hxx" +#include "util/StringCompare.hxx" #include "util/StringFormat.hxx" #include "util/UriUtil.hxx" #include "util/Domain.hxx" @@ -222,7 +223,7 @@ ScanGmeInfo(const gme_info_t &info, unsigned song_num, int track_count, if (track_count > 1) handler.OnTag(TAG_TRACK, StringFormat<16>("%u", song_num + 1)); - if (info.song != nullptr) { + if (!StringIsEmpty(info.song)) { if (track_count > 1) { /* start numbering subtunes from 1 */ const auto tag_title = @@ -234,16 +235,16 @@ ScanGmeInfo(const gme_info_t &info, unsigned song_num, int track_count, handler.OnTag(TAG_TITLE, info.song); } - if (info.author != nullptr) + if (!StringIsEmpty(info.author)) handler.OnTag(TAG_ARTIST, info.author); - if (info.game != nullptr) + if (!StringIsEmpty(info.game)) handler.OnTag(TAG_ALBUM, info.game); - if (info.comment != nullptr) + if (!StringIsEmpty(info.comment)) handler.OnTag(TAG_COMMENT, info.comment); - if (info.copyright != nullptr) + if (!StringIsEmpty(info.copyright)) handler.OnTag(TAG_DATE, info.copyright); }