summaryrefslogtreecommitdiffstats
path: root/cfg.c
diff options
context:
space:
mode:
authornicm <nicm>2021-02-22 08:18:13 +0000
committernicm <nicm>2021-02-22 08:18:13 +0000
commit6876381276ff2c2a40d304ada27651fdaf1cd8a7 (patch)
tree1b38398f851f7062ea015584b660a327c5939165 /cfg.c
parente858270006a9041b9016ed9e6cc12d622ac8fe31 (diff)
Move config file path expansion much earlier, keep the list of paths
around rather than freeing later, and add a config_files format variable containing it. Suggested by kn@ a while back.
Diffstat (limited to 'cfg.c')
-rw-r--r--cfg.c30
1 files changed, 11 insertions, 19 deletions
diff --git a/cfg.c b/cfg.c
index 7c01f614..55c91bc4 100644
--- a/cfg.c
+++ b/cfg.c
@@ -28,12 +28,15 @@
#include "tmux.h"
struct client *cfg_client;
-static char *cfg_file;
int cfg_finished;
static char **cfg_causes;
static u_int cfg_ncauses;
static struct cmdq_item *cfg_item;
+int cfg_quiet = 1;
+char **cfg_files;
+u_int cfg_nfiles;
+
static enum cmd_retval
cfg_client_done(__unused struct cmdq_item *item, __unused void *data)
{
@@ -61,18 +64,10 @@ cfg_done(__unused struct cmdq_item *item, __unused void *data)
}
void
-set_cfg_file(const char *path)
-{
- free(cfg_file);
- cfg_file = xstrdup(path);
-}
-
-void
start_cfg(void)
{
struct client *c;
- char **paths;
- u_int i, n;
+ u_int i;
/*
* Configuration files are loaded without a client, so commands are run
@@ -90,15 +85,12 @@ start_cfg(void)
cmdq_append(c, cfg_item);
}
- if (cfg_file == NULL) {
- expand_paths(TMUX_CONF, &paths, &n);
- for (i = 0; i < n; i++) {
- load_cfg(paths[i], c, NULL, CMD_PARSE_QUIET, NULL);
- free(paths[i]);
- }
- free(paths);
- } else
- load_cfg(cfg_file, c, NULL, 0, NULL);
+ for (i = 0; i < cfg_nfiles; i++) {
+ if (cfg_quiet)
+ load_cfg(cfg_files[i], c, NULL, CMD_PARSE_QUIET, NULL);
+ else
+ load_cfg(cfg_files[i], c, NULL, 0, NULL);
+ }
cmdq_append(NULL, cmdq_get_callback(cfg_done, NULL));
}