From 13208bf5a7c91a6406195139f1068f173ccdac94 Mon Sep 17 00:00:00 2001 From: Jeffrey Middleton Date: Thu, 26 Mar 2009 22:02:56 +0100 Subject: queue/playlist/command: move range The move command now accepts a range for the first argument, in the same form as other range commands, e.g. move 15:17 3. The first song in the range is placed at the destination position. Note that as with other range commands, the range is inclusive on the left only; this example would move only songs 15 and 16, not 17. [mk: fixed signed/unsigned warnings; use G_MAXUINT instead of UINT_MAX] --- src/command.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/command.c') diff --git a/src/command.c b/src/command.c index 7603f669c..1b8c45f26 100644 --- a/src/command.c +++ b/src/command.c @@ -1181,14 +1181,16 @@ handle_list(struct client *client, int argc, char *argv[]) static enum command_return handle_move(struct client *client, G_GNUC_UNUSED int argc, char *argv[]) { - int from, to; + unsigned start, end; + int to; enum playlist_result result; - if (!check_int(client, &from, argv[1], check_integer, argv[1])) + if (!check_range(client, &start, &end, + argv[1], need_range)) return COMMAND_RETURN_ERROR; if (!check_int(client, &to, argv[2], check_integer, argv[2])) return COMMAND_RETURN_ERROR; - result = moveSongInPlaylist(&g_playlist, from, to); + result = moveSongRangeInPlaylist(&g_playlist, start, end, to); return print_playlist_result(client, result); } -- cgit v1.2.3