aboutsummaryrefslogtreecommitdiff
path: root/sway/config.c
diff options
context:
space:
mode:
authorBrian Ashworth <bosrsf04@gmail.com>2019-02-05 22:06:42 -0500
committeremersion <contact@emersion.fr>2019-02-06 09:36:33 +0100
commitc65057ef8b03ce11d4c002ed8d1615926486b7a4 (patch)
tree95d37c5347570b9f4f639c3ee092dbbf5995a28b /sway/config.c
parent9b1905acf9b4de7bacbb57f5cc20d6a356b0d92d (diff)
load_main_config: add realpath to config_chain
Since `load_include_config` compares against the realpath of a config file when checking if a config has already been added, the main config's realpath has to be added to the config_chain.
Diffstat (limited to 'sway/config.c')
-rw-r--r--sway/config.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/sway/config.c b/sway/config.c
index 0c23fad8..18fb69d9 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -379,6 +379,14 @@ bool load_main_config(const char *file, bool is_active, bool validating) {
path = get_config_path();
}
+ char *real_path = realpath(path, NULL);
+ if (real_path == NULL) {
+ sway_log(SWAY_DEBUG, "%s not found.", path);
+ free(path);
+ return false;
+ }
+ free(path);
+
struct sway_config *old_config = config;
config = calloc(1, sizeof(struct sway_config));
if (!config) {
@@ -401,8 +409,8 @@ bool load_main_config(const char *file, bool is_active, bool validating) {
input_manager_reset_all_inputs();
}
- config->current_config_path = path;
- list_add(config->config_chain, path);
+ config->current_config_path = real_path;
+ list_add(config->config_chain, real_path);
config->reading = true;
@@ -454,7 +462,7 @@ bool load_main_config(const char *file, bool is_active, bool validating) {
}
*/
- success = success && load_config(path, config,
+ success = success && load_config(real_path, config,
&config->swaynag_config_errors);
if (validating) {