mirror of
https://github.com/swaywm/sway.git
synced 2026-04-21 06:46:22 -04:00
Make load_include_configs void. Fix some cases where WD would not be restored.
This commit is contained in:
parent
713883f04c
commit
d4b1e71b91
3 changed files with 17 additions and 29 deletions
|
|
@ -549,43 +549,34 @@ static bool load_include_config(const char *path, const char *parent_dir,
|
|||
return true;
|
||||
}
|
||||
|
||||
bool load_include_configs(const char *path, struct sway_config *config,
|
||||
void load_include_configs(const char *path, struct sway_config *config,
|
||||
struct swaynag_instance *swaynag) {
|
||||
char *wd = getcwd(NULL, 0);
|
||||
char *parent_path = strdup(config->current_config_path);
|
||||
const char *parent_dir = dirname(parent_path);
|
||||
|
||||
if (chdir(parent_dir) < 0) {
|
||||
free(parent_path);
|
||||
free(wd);
|
||||
return false;
|
||||
sway_log(SWAY_ERROR, "failed to change working directory");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
wordexp_t p;
|
||||
|
||||
if (wordexp(path, &p, 0) != 0) {
|
||||
free(parent_path);
|
||||
free(wd);
|
||||
return false;
|
||||
if (wordexp(path, &p, 0) == 0) {
|
||||
char **w = p.we_wordv;
|
||||
size_t i;
|
||||
for (i = 0; i < p.we_wordc; ++i) {
|
||||
load_include_config(w[i], parent_dir, config, swaynag);
|
||||
}
|
||||
wordfree(&p);
|
||||
}
|
||||
|
||||
char **w = p.we_wordv;
|
||||
size_t i;
|
||||
for (i = 0; i < p.we_wordc; ++i) {
|
||||
load_include_config(w[i], parent_dir, config, swaynag);
|
||||
}
|
||||
free(parent_path);
|
||||
wordfree(&p);
|
||||
|
||||
// restore wd
|
||||
// Attempt to restore working directory before returning.
|
||||
if (chdir(wd) < 0) {
|
||||
free(wd);
|
||||
sway_log(SWAY_ERROR, "failed to restore working directory");
|
||||
return false;
|
||||
sway_log(SWAY_ERROR, "failed to change working directory");
|
||||
}
|
||||
|
||||
cleanup:
|
||||
free(parent_path);
|
||||
free(wd);
|
||||
return true;
|
||||
}
|
||||
|
||||
void run_deferred_commands(void) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue