mirror of
https://github.com/swaywm/sway.git
synced 2024-12-28 07:56:31 +01:00
fix swaymsg: errors are displayed again
Command errors didn't get displayed, because the success function didn't accept objects
This commit is contained in:
parent
d3ea07f828
commit
659871de1e
1 changed files with 21 additions and 6 deletions
|
@ -19,30 +19,44 @@ void sway_terminate(int exit_code) {
|
||||||
exit(exit_code);
|
exit(exit_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool success_object(json_object *result) {
|
||||||
|
json_object *success;
|
||||||
|
|
||||||
|
if (!json_object_object_get_ex(result, "success", &success)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!json_object_get_boolean(success)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// Iterate results array and return false if any of them failed
|
// Iterate results array and return false if any of them failed
|
||||||
static bool success(json_object *r, bool fallback) {
|
static bool success(json_object *r, bool fallback) {
|
||||||
if (!json_object_is_type(r, json_type_array)) {
|
if (!json_object_is_type(r, json_type_array)) {
|
||||||
return fallback;
|
return fallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t results_len = json_object_array_length(r);
|
size_t results_len = json_object_array_length(r);
|
||||||
if (!results_len) {
|
if (!results_len) {
|
||||||
return fallback;
|
return fallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < results_len; ++i) {
|
for (size_t i = 0; i < results_len; ++i) {
|
||||||
json_object *result = json_object_array_get_idx(r, i);
|
json_object *result = json_object_array_get_idx(r, i);
|
||||||
json_object *success;
|
|
||||||
if (!json_object_object_get_ex(result, "success", &success)) {
|
if (!success_object(result)) {
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!json_object_get_boolean(success)) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pretty_print_cmd(json_object *r) {
|
static void pretty_print_cmd(json_object *r) {
|
||||||
if (!success(r, true)) {
|
if (!success_object(r)) {
|
||||||
json_object *error;
|
json_object *error;
|
||||||
if (!json_object_object_get_ex(r, "error", &error)) {
|
if (!json_object_object_get_ex(r, "error", &error)) {
|
||||||
printf("An unknkown error occurred");
|
printf("An unknkown error occurred");
|
||||||
|
@ -402,6 +416,7 @@ int main(int argc, char **argv) {
|
||||||
} else {
|
} else {
|
||||||
sway_abort("Unknown message type %s", cmdtype);
|
sway_abort("Unknown message type %s", cmdtype);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(cmdtype);
|
free(cmdtype);
|
||||||
|
|
||||||
char *command = NULL;
|
char *command = NULL;
|
||||||
|
|
Loading…
Reference in a new issue