summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2019-02-07 02:16:38 -0500
committerFurkan Sahin <furkan-dev@proton.me>2019-02-07 02:16:38 -0500
commit9136cb75dabf44dc7ffb7ac93a33c2291cc19c3b (patch)
treea75a0501eb55dcb4f2ef7c18f76f3721000e07c7
parent7d370b87b1771f5cbb194a03e8c5bf71ad0cdcde (diff)
load_main_config: use given path, store realpath
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. However, includes from the main config should be processed relative to the path given to allow for symbolic links. This stores the realpath in `config->config_chain`, but uses the given path for all other operations.
-rw-r--r--sway/config.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sway/config.c b/sway/config.c
index 18fb69d9..ae8d11e3 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -385,7 +385,6 @@ bool load_main_config(const char *file, bool is_active, bool validating) {
free(path);
return false;
}
- free(path);
struct sway_config *old_config = config;
config = calloc(1, sizeof(struct sway_config));
@@ -409,7 +408,7 @@ bool load_main_config(const char *file, bool is_active, bool validating) {
input_manager_reset_all_inputs();
}
- config->current_config_path = real_path;
+ config->current_config_path = path;
list_add(config->config_chain, real_path);
config->reading = true;
@@ -462,7 +461,7 @@ bool load_main_config(const char *file, bool is_active, bool validating) {
}
*/
- success = success && load_config(real_path, config,
+ success = success && load_config(path, config,
&config->swaynag_config_errors);
if (validating) {