diff options
author | Max Kellermann <max@duempel.org> | 2009-04-28 20:25:07 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-04-28 20:25:07 +0200 |
commit | 61b083551265c78110855e79b5f12adcd422affb (patch) | |
tree | 705eeff7aa3bba81f84a5032e83312e7c59b47fb /src/command.c | |
parent | 610940a06dc09fc14581cffc2829358e926ec9c3 (diff) | |
download | mpd-61b083551265c78110855e79b5f12adcd422affb.tar.gz mpd-61b083551265c78110855e79b5f12adcd422affb.tar.xz mpd-61b083551265c78110855e79b5f12adcd422affb.zip |
command: added "sticker delete" command
Diffstat (limited to 'src/command.c')
-rw-r--r-- | src/command.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/command.c b/src/command.c index 1290a34e7..d30b63594 100644 --- a/src/command.c +++ b/src/command.c @@ -1589,6 +1589,28 @@ handle_sticker_song(struct client *client, int argc, char *argv[]) } return COMMAND_RETURN_OK; + } else if ((argc == 4 || argc == 5) && + strcmp(argv[1], "delete") == 0) { + struct song *song; + bool ret; + + song = db_get_song(argv[3]); + if (song == NULL) { + command_error(client, ACK_ERROR_NO_EXIST, + "no such song"); + return COMMAND_RETURN_ERROR; + } + + ret = argc == 4 + ? sticker_song_delete(song) + : sticker_song_delete_value(song, argv[4]); + if (!ret) { + command_error(client, ACK_ERROR_SYSTEM, + "no such sticker"); + return COMMAND_RETURN_ERROR; + } + + return COMMAND_RETURN_OK; } else if (argc == 5 && strcmp(argv[1], "find") == 0) { /* "sticker find song a/directory name" */ struct directory *directory; |