From 86f95bb42fccfa85741b93eadfb9d9f76c636b80 Mon Sep 17 00:00:00 2001 From: Simon Long Date: Fri, 5 Jan 2024 14:07:19 +0000 Subject: [PATCH] Save explicit filename for rc if supplied so reload works correctly --- src/config/rcxml.c | 10 +++++++++- src/main.c | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/config/rcxml.c b/src/config/rcxml.c index a6928632..84e32264 100644 --- a/src/config/rcxml.c +++ b/src/config/rcxml.c @@ -1460,7 +1460,12 @@ rcxml_read(const char *filename) char *line = NULL; size_t len = 0; struct buf b; - static char rcxml[4096] = {0}; + char rcxml[4096] = {0}; + static char saved_filename[4096] = {0}; + + if (filename) { + snprintf(saved_filename, sizeof(rcxml), "%s", filename); + } rcxml_init(); @@ -1475,6 +1480,9 @@ rcxml_read(const char *filename) if (filename) { snprintf(rcxml, sizeof(rcxml), "%s", filename); i = 0; + } else if (saved_filename[0] != 0) { + snprintf(rcxml, sizeof(rcxml), "%s", saved_filename); + i = 0; } else { snprintf(rcxml, sizeof(rcxml), "%s/rc.xml", config_dir_n(i)); } diff --git a/src/main.c b/src/main.c index 8aeffc7e..ae76c161 100644 --- a/src/main.c +++ b/src/main.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "common/dir.h" #include "common/fd_util.h" #include "common/font.h" @@ -135,6 +136,8 @@ main(int argc, char *argv[]) if (!rc.config_dir) { rc.config_dir = config_dir(); + } else if (!config_file) { + config_file = g_strdup_printf ("%s/rc.xml", rc.config_dir); } wlr_log(WLR_INFO, "using config dir (%s)\n", rc.config_dir); session_environment_init(rc.config_dir);