diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2019-02-05 22:06:42 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-02-11 10:22:53 -0500 |
commit | d2d2fc545ac706683a2da0118ec1c4842ed87d7f (patch) | |
tree | 95d37c5347570b9f4f639c3ee092dbbf5995a28b | |
parent | 48511c3b35be8251517ab50ceea6dd2b33c32b86 (diff) | |
download | sway-d2d2fc545ac706683a2da0118ec1c4842ed87d7f.zip sway-d2d2fc545ac706683a2da0118ec1c4842ed87d7f.tar.gz sway-d2d2fc545ac706683a2da0118ec1c4842ed87d7f.tar.bz2 |
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.
-rw-r--r-- | sway/config.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/sway/config.c b/sway/config.c index 0c23fad..18fb69d 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) { |