diff options
-rw-r--r-- | src/ack.h | 12 | ||||
-rw-r--r-- | src/command.c | 4 |
2 files changed, 16 insertions, 0 deletions
@@ -20,6 +20,8 @@ #ifndef MPD_ACK_H #define MPD_ACK_H +#include <glib.h> + enum ack { ACK_ERROR_NOT_LIST = 1, ACK_ERROR_ARG = 2, @@ -36,4 +38,14 @@ enum ack { ACK_ERROR_EXIST = 56, }; +/** + * Quark for GError.domain; the code is an enum #ack. + */ +G_GNUC_CONST +static inline GQuark +ack_quark(void) +{ + return g_quark_from_static_string("ack"); +} + #endif diff --git a/src/command.c b/src/command.c index 4641f671b..655ed7b1a 100644 --- a/src/command.c +++ b/src/command.c @@ -183,6 +183,10 @@ print_error(struct client *client, GError *error) enum playlist_result result = error->code; g_error_free(error); return print_playlist_result(client, result); + } else if (error->domain == ack_quark()) { + command_error(client, error->code, "%s", error->message); + g_error_free(error); + return COMMAND_RETURN_ERROR; } else if (error->domain == db_quark()) { switch ((enum db_error)error->code) { case DB_DISABLED: |