aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-10-22 21:15:43 -0400
committerDrew DeVault <sir@cmpwn.com>2017-10-23 21:17:57 -0400
commit0c1ef88a8d967673d0b6dc187ffb105441215782 (patch)
tree06c66f34523546b3a21dae6a6edcadc6f7decc6d
parent6383c4d91c7a71492556046c603eea1704ae7b8d (diff)
downloadsway-0c1ef88a8d967673d0b6dc187ffb105441215782.zip
sway-0c1ef88a8d967673d0b6dc187ffb105441215782.tar.gz
sway-0c1ef88a8d967673d0b6dc187ffb105441215782.tar.bz2
Merge pull request #1425 from ggreer/grab-error0.15-rc3
swaygrab: Add some error handling.
-rw-r--r--swaygrab/json.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/swaygrab/json.c b/swaygrab/json.c
index 32b6861..286085c 100644
--- a/swaygrab/json.c
+++ b/swaygrab/json.c
@@ -21,6 +21,14 @@ void init_json_tree(int socketfd) {
if (!tree || tok->err != json_tokener_success) {
sway_abort("Unable to parse IPC response as JSON: %s", json_tokener_error_desc(tok->err));
}
+ json_object *success;
+ json_object_object_get_ex(tree, "success", &success);
+ if (success && !json_object_get_boolean(success)) {
+ json_object *error;
+ json_object_object_get_ex(tree, "error", &error);
+ sway_abort("IPC request failed: %s", json_object_get_string(error));
+ }
+ json_object_put(success);
json_tokener_free(tok);
}
@@ -72,7 +80,9 @@ json_object *get_focused_container() {
char *get_focused_output() {
json_object *outputs, *output, *name;
json_object_object_get_ex(tree, "nodes", &outputs);
-
+ if (!outputs) {
+ sway_abort("Unabled to get focused output. No nodes in tree.");
+ }
for (int i = 0; i < json_object_array_length(outputs); i++) {
output = json_object_array_get_idx(outputs, i);