Commit 976372ff authored by John Regan's avatar John Regan Committed by Max Kellermann

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.
parent 9abb686e
ver 0.21.21 (not yet released) ver 0.21.21 (not yet released)
* decoder
- gme: ignore empty tags
ver 0.21.20 (2020/02/16) ver 0.21.20 (2020/02/16)
* decoder * decoder
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include "fs/AllocatedPath.hxx" #include "fs/AllocatedPath.hxx"
#include "fs/FileSystem.hxx" #include "fs/FileSystem.hxx"
#include "util/ScopeExit.hxx" #include "util/ScopeExit.hxx"
#include "util/StringCompare.hxx"
#include "util/StringFormat.hxx" #include "util/StringFormat.hxx"
#include "util/UriUtil.hxx" #include "util/UriUtil.hxx"
#include "util/Domain.hxx" #include "util/Domain.hxx"
...@@ -222,7 +223,7 @@ ScanGmeInfo(const gme_info_t &info, unsigned song_num, int track_count, ...@@ -222,7 +223,7 @@ ScanGmeInfo(const gme_info_t &info, unsigned song_num, int track_count,
if (track_count > 1) if (track_count > 1)
handler.OnTag(TAG_TRACK, StringFormat<16>("%u", song_num + 1)); handler.OnTag(TAG_TRACK, StringFormat<16>("%u", song_num + 1));
if (info.song != nullptr) { if (!StringIsEmpty(info.song)) {
if (track_count > 1) { if (track_count > 1) {
/* start numbering subtunes from 1 */ /* start numbering subtunes from 1 */
const auto tag_title = const auto tag_title =
...@@ -234,16 +235,16 @@ ScanGmeInfo(const gme_info_t &info, unsigned song_num, int track_count, ...@@ -234,16 +235,16 @@ ScanGmeInfo(const gme_info_t &info, unsigned song_num, int track_count,
handler.OnTag(TAG_TITLE, info.song); handler.OnTag(TAG_TITLE, info.song);
} }
if (info.author != nullptr) if (!StringIsEmpty(info.author))
handler.OnTag(TAG_ARTIST, info.author); handler.OnTag(TAG_ARTIST, info.author);
if (info.game != nullptr) if (!StringIsEmpty(info.game))
handler.OnTag(TAG_ALBUM, info.game); handler.OnTag(TAG_ALBUM, info.game);
if (info.comment != nullptr) if (!StringIsEmpty(info.comment))
handler.OnTag(TAG_COMMENT, info.comment); handler.OnTag(TAG_COMMENT, info.comment);
if (info.copyright != nullptr) if (!StringIsEmpty(info.copyright))
handler.OnTag(TAG_DATE, info.copyright); handler.OnTag(TAG_DATE, info.copyright);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment