diff options
Diffstat (limited to 'sway/main.c')
-rw-r--r-- | sway/main.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sway/main.c b/sway/main.c index 477ffa5a..de2445a8 100644 --- a/sway/main.c +++ b/sway/main.c @@ -415,12 +415,14 @@ int main(int argc, char **argv) { ipc_init(&server); log_env(); + char *errors = NULL; if (validate) { - bool valid = load_main_config(config_path, false); + bool valid = load_main_config(config_path, false, &errors); + free(errors); return valid ? 0 : 1; } - if (!load_main_config(config_path, false)) { + if (!load_main_config(config_path, false, &errors)) { sway_terminate(EXIT_FAILURE); } @@ -433,6 +435,7 @@ int main(int argc, char **argv) { setenv("WAYLAND_DISPLAY", server.socket, true); if (!terminate_request) { if (!server_start_backend(&server)) { + free(errors); sway_terminate(EXIT_FAILURE); } } @@ -452,6 +455,11 @@ int main(int argc, char **argv) { } transaction_commit_dirty(); + if (errors) { + spawn_swaynag_config_errors(config, errors); + free(errors); + } + if (!terminate_request) { server_run(&server); } |