aboutsummaryrefslogtreecommitdiff
path: root/sway/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/main.c')
-rw-r--r--sway/main.c12
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);
}