commit cc1fc3b4a656a544254a80cf32a48d826e7946b2
parent b2c0ba5b180b75a18e622934bbed61b0f14b1661
Author: emersion <contact@emersion.fr>
Date: Mon, 28 May 2018 09:15:02 +0100
Merge pull request #2057 from RyanDwyer/swaymsg-fix-exit-code
swaymsg: Fix exit code
Diffstat:
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/swaymsg/main.c b/swaymsg/main.c
@@ -19,13 +19,26 @@ void sway_terminate(int exit_code) {
exit(exit_code);
}
+// Iterate results array and return false if any of them failed
static bool success(json_object *r, bool fallback) {
- json_object *success;
- if (!json_object_object_get_ex(r, "success", &success)) {
+ if (!json_object_is_type(r, json_type_array)) {
return fallback;
- } else {
- return json_object_get_boolean(success);
}
+ size_t results_len = json_object_array_length(r);
+ if (!results_len) {
+ return fallback;
+ }
+ for (size_t i = 0; i < results_len; ++i) {
+ json_object *result = json_object_array_get_idx(r, i);
+ json_object *success;
+ if (!json_object_object_get_ex(result, "success", &success)) {
+ return false;
+ }
+ if (!json_object_get_boolean(success)) {
+ return false;
+ }
+ }
+ return true;
}
static void pretty_print_cmd(json_object *r) {