summaryrefslogtreecommitdiffstats
path: root/cmd-queue.c
diff options
context:
space:
mode:
authornicm <nicm>2019-05-20 11:46:06 +0000
committernicm <nicm>2019-05-20 11:46:06 +0000
commite128c7fcd8441f3fa885eafc9328f0937cc7384c (patch)
tree2cd1ef8259cb2bcc22e52425d4515d2a7d1bd100 /cmd-queue.c
parent8db89f8efba007bab51dd8b8979a828730892f56 (diff)
Replace the various identical error callbacks with a single one in cmd-queue.c.
Diffstat (limited to 'cmd-queue.c')
-rw-r--r--cmd-queue.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/cmd-queue.c b/cmd-queue.c
index 93b9788e..68bedae8 100644
--- a/cmd-queue.c
+++ b/cmd-queue.c
@@ -329,6 +329,25 @@ cmdq_get_callback1(const char *name, cmdq_cb cb, void *data)
return (item);
}
+/* Generic error callback. */
+static enum cmd_retval
+cmdq_error_callback(struct cmdq_item *item, void *data)
+{
+ char *error = data;
+
+ cmdq_error(item, "%s", error);
+ free(error);
+
+ return (CMD_RETURN_NORMAL);
+}
+
+/* Get an error callback for the command queue. */
+struct cmdq_item *
+cmdq_get_error(const char *error)
+{
+ return (cmdq_get_callback(cmdq_error_callback, xstrdup(error)));
+}
+
/* Fire callback on callback queue. */
static enum cmd_retval
cmdq_fire_callback(struct cmdq_item *item)