diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2019-02-07 02:16:38 -0500 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2019-02-07 09:41:05 +0100 |
commit | 5a32a74b2d0e4685527bd78d5052aafe2df4b8f2 (patch) | |
tree | cab7212e3b0f6e3ec395b03194b5b4d20cdf04bf | |
parent | ee56428b642d8f75350ae2698706c1b88898acf5 (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.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sway/config.c b/sway/config.c index 9072f7d7..0c791a35 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) { |