diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2017-10-22 21:15:43 -0400 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2017-10-22 21:15:43 -0400 |
| commit | ef5a891a8064d3935fdaacf6e03e075892ee04fa (patch) | |
| tree | 06c66f34523546b3a21dae6a6edcadc6f7decc6d | |
| parent | 31e3f773e8a286962179b8ee997ee7faca2f2509 (diff) | |
| parent | bfa1fd9f5cb2da60b0a231294a7581cfa10dccc3 (diff) | |
Merge pull request #1425 from ggreer/grab-error
swaygrab: Add some error handling.
| -rw-r--r-- | swaygrab/json.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/swaygrab/json.c b/swaygrab/json.c index 32b68612..286085c3 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); |
