command/database: fix "list" with filter expression

Disable the 0.11 compatibility mode if the only argument is a filter
expression.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/506
This commit is contained in:
Max Kellermann 2019-03-14 19:50:09 +01:00
parent 0d98677212
commit 59fdfd25cb
2 changed files with 5 additions and 1 deletions

1
NEWS
View File

@ -1,6 +1,7 @@
ver 0.21.6 (not yet released)
* protocol
- allow loading playlists specified as absolute filesystem paths
- fix "list" with filter expression
* input
- cdio_paranoia: fix build failure due to missing #include
* playlist

View File

@ -268,7 +268,10 @@ handle_list(Client &client, Request args, Response &r)
std::unique_ptr<SongFilter> filter;
TagType group = TAG_NUM_OF_ITEM_TYPES;
if (args.size == 1) {
if (args.size == 1 &&
/* parantheses are the syntax for filter expressions: no
compatibility mode */
args.front()[0] != '(') {
/* for compatibility with < 0.12.0 */
if (tagType != TAG_ALBUM) {
r.FormatError(ACK_ERROR_ARG,