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) { | |||
415 | ipc_init(&server); | 415 | ipc_init(&server); |
416 | log_env(); | 416 | log_env(); |
417 | 417 | ||
418 | char *errors = NULL; | ||
418 | if (validate) { | 419 | if (validate) { |
419 | bool valid = load_main_config(config_path, false); | 420 | bool valid = load_main_config(config_path, false, &errors); |
421 | free(errors); | ||
420 | return valid ? 0 : 1; | 422 | return valid ? 0 : 1; |
421 | } | 423 | } |
422 | 424 | ||
423 | if (!load_main_config(config_path, false)) { | 425 | if (!load_main_config(config_path, false, &errors)) { |
424 | sway_terminate(EXIT_FAILURE); | 426 | sway_terminate(EXIT_FAILURE); |
425 | } | 427 | } |
426 | 428 | ||
@@ -433,6 +435,7 @@ int main(int argc, char **argv) { | |||
433 | setenv("WAYLAND_DISPLAY", server.socket, true); | 435 | setenv("WAYLAND_DISPLAY", server.socket, true); |
434 | if (!terminate_request) { | 436 | if (!terminate_request) { |
435 | if (!server_start_backend(&server)) { | 437 | if (!server_start_backend(&server)) { |
438 | free(errors); | ||
436 | sway_terminate(EXIT_FAILURE); | 439 | sway_terminate(EXIT_FAILURE); |
437 | } | 440 | } |
438 | } | 441 | } |
@@ -452,6 +455,11 @@ int main(int argc, char **argv) { | |||
452 | } | 455 | } |
453 | transaction_commit_dirty(); | 456 | transaction_commit_dirty(); |
454 | 457 | ||
458 | if (errors) { | ||
459 | spawn_swaynag_config_errors(config, errors); | ||
460 | free(errors); | ||
461 | } | ||
462 | |||
455 | if (!terminate_request) { | 463 | if (!terminate_request) { |
456 | server_run(&server); | 464 | server_run(&server); |
457 | } | 465 | } |