diff --git a/NEWS b/NEWS index 8b0029784..2ca870de9 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,7 @@ ver 0.20.22 (not yet released) * protocol - add tag fallbacks for AlbumArtistSort, ArtistSort + - fix empty string filter on fallback tags - "count group ..." can print an empty group - fix broken command "list ... group" * storage diff --git a/src/SongFilter.cxx b/src/SongFilter.cxx index faf5deb2a..8f6d3c67f 100644 --- a/src/SongFilter.cxx +++ b/src/SongFilter.cxx @@ -110,15 +110,6 @@ SongFilter::Item::Match(const Tag &_tag) const noexcept } if (tag < TAG_NUM_OF_ITEM_TYPES && !visited_types[tag]) { - /* If the search critieron was not visited during the - sweep through the song's tag, it means this field - is absent from the tag or empty. Thus, if the - searched string is also empty - then it's a match as well and we should return - true. */ - if (value.empty()) - return true; - bool result = false; if (ApplyTagFallback(TagType(tag), [&](TagType tag2) { @@ -136,6 +127,15 @@ SongFilter::Item::Match(const Tag &_tag) const noexcept return true; })) return result; + + /* If the search critieron was not visited during the + sweep through the song's tag, it means this field + is absent from the tag or empty. Thus, if the + searched string is also empty + then it's a match as well and we should return + true. */ + if (value.empty()) + return true; } return false;