aboutsummaryrefslogtreecommitdiffstats
path: root/swaybg
diff options
context:
space:
mode:
authorLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-02-26 09:08:05 +0100
committerLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-02-26 09:42:21 +0100
commit5e253fdd9ac5c8733203eec9870aa0ca2cd238fd (patch)
tree3bfaae22500ddfc326dfd4fa4b81bbab285a4c2f /swaybg
parentMerge pull request #494 from gpyh/argsegfault (diff)
downloadsway-5e253fdd9ac5c8733203eec9870aa0ca2cd238fd.tar.gz
sway-5e253fdd9ac5c8733203eec9870aa0ca2cd238fd.tar.zst
sway-5e253fdd9ac5c8733203eec9870aa0ca2cd238fd.zip
Correctly exit sway on errors.
Calling `exit` in sway_terminate prevents sway from correctly shutting down (freeing data, cleanly terminating the ipc server, etc.). A better way is to exit straight away if the failure occurs before `wlc_run` and use sway_abort as usual if it occur when wlc is running.
Diffstat (limited to 'swaybg')
-rw-r--r--swaybg/main.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/swaybg/main.c b/swaybg/main.c
index b936be2b..fbd0d16b 100644
--- a/swaybg/main.c
+++ b/swaybg/main.c
@@ -21,7 +21,7 @@ enum scaling_mode {
21 SCALING_MODE_TILE, 21 SCALING_MODE_TILE,
22}; 22};
23 23
24void sway_terminate(void) { 24void sway_terminate(int exit_code) {
25 int i; 25 int i;
26 for (i = 0; i < surfaces->length; ++i) { 26 for (i = 0; i < surfaces->length; ++i) {
27 struct window *window = surfaces->items[i]; 27 struct window *window = surfaces->items[i];
@@ -29,7 +29,7 @@ void sway_terminate(void) {
29 } 29 }
30 list_free(surfaces); 30 list_free(surfaces);
31 registry_teardown(registry); 31 registry_teardown(registry);
32 exit(EXIT_FAILURE); 32 exit(exit_code);
33} 33}
34 34
35int main(int argc, const char **argv) { 35int main(int argc, const char **argv) {