aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ack.h12
-rw-r--r--src/command.c4
2 files changed, 16 insertions, 0 deletions
diff --git a/src/ack.h b/src/ack.h
index f86b605f7..440bc27d8 100644
--- a/src/ack.h
+++ b/src/ack.h
@@ -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: