From 6b1d264b352a17bf0ed59f79960359cd4949d8df Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 15 Feb 2021 20:51:12 +0100 Subject: [PATCH] command/queue: better error message for open-ended range with "move" The "move" command doesn't allow open-ended ranges because they don't make a lot of sense; moving an open-ended range is only possible if the destination index is before the range, and in that case, the client should be well aware how many songs there are. Closes https://github.com/MusicPlayerDaemon/MPD/pull/1057 --- NEWS | 1 + src/command/QueueCommands.cxx | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/NEWS b/NEWS index 9bda29812..7a85fb437 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,7 @@ ver 0.22.5 (not yet released) * protocol - error for malformed ranges instead of ignoring silently + - better error message for open-ended range with "move" * database - simple: fix missing CUE sheet metadata in "addid" command * tags diff --git a/src/command/QueueCommands.cxx b/src/command/QueueCommands.cxx index c77b62b3e..ba8c5a423 100644 --- a/src/command/QueueCommands.cxx +++ b/src/command/QueueCommands.cxx @@ -326,6 +326,11 @@ CommandResult handle_move(Client &client, Request args, [[maybe_unused]] Response &r) { RangeArg range = args.ParseRange(0); + if (range.IsOpenEnded()) { + r.Error(ACK_ERROR_ARG, "Open-ended range not supported"); + return CommandResult::ERROR; + } + int to = args.ParseInt(1); client.GetPartition().MoveRange(range.start, range.end, to); return CommandResult::OK;