From 5c6f3d7266ab0c63015715f12c8e15eb144311a2 Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Tue, 27 Nov 2018 21:42:09 -0500 Subject: Change execute_command to return a list of results This matches i3's behavior of returning a list of results that contain the result of each command that was executed. Additionally, the `parse_error` attribute has been added to the IPC JSON reply. --- sway/main.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'sway/main.c') diff --git a/sway/main.c b/sway/main.c index a21970e2..a74183fe 100644 --- a/sway/main.c +++ b/sway/main.c @@ -392,11 +392,16 @@ int main(int argc, char **argv) { wlr_log(WLR_DEBUG, "Running deferred commands"); while (config->cmd_queue->length) { char *line = config->cmd_queue->items[0]; - struct cmd_results *res = execute_command(line, NULL, NULL); - if (res->status != CMD_SUCCESS) { - wlr_log(WLR_ERROR, "Error on line '%s': %s", line, res->error); + list_t *res_list = execute_command(line, NULL, NULL); + while (res_list->length) { + struct cmd_results *res = res_list->items[0]; + if (res->status != CMD_SUCCESS) { + wlr_log(WLR_ERROR, "Error on line '%s': %s", line, res->error); + } + free_cmd_results(res); + list_del(res_list, 0); } - free_cmd_results(res); + list_free(res_list); free(line); list_del(config->cmd_queue, 0); } -- cgit v1.2.3