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.
This commit is contained in:
parent
9abb686eeb
commit
976372ff63
2
NEWS
2
NEWS
|
@ -1,4 +1,6 @@
|
||||||
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 @@
|
||||||
#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,
|
||||||
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,
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue