mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 05:21:10 +00:00
Work out config file when needed not at startup.
This commit is contained in:
18
cfg.c
18
cfg.c
@ -28,6 +28,7 @@
|
||||
|
||||
#include "tmux.h"
|
||||
|
||||
char *cfg_file;
|
||||
struct cmd_q *cfg_cmd_q;
|
||||
int cfg_finished;
|
||||
int cfg_references;
|
||||
@ -37,10 +38,18 @@ struct client *cfg_client;
|
||||
|
||||
void cfg_default_done(struct cmd_q *);
|
||||
|
||||
void
|
||||
set_cfg_file(const char *path)
|
||||
{
|
||||
free(cfg_file);
|
||||
cfg_file = xstrdup(path);
|
||||
}
|
||||
|
||||
void
|
||||
start_cfg(void)
|
||||
{
|
||||
char *cause = NULL;
|
||||
char *cause = NULL;
|
||||
const char *home;
|
||||
|
||||
cfg_cmd_q = cmdq_new(NULL);
|
||||
cfg_cmd_q->emptyfn = cfg_default_done;
|
||||
@ -58,6 +67,13 @@ start_cfg(void)
|
||||
} else if (errno != ENOENT)
|
||||
cfg_add_cause("%s: %s", TMUX_CONF, strerror(errno));
|
||||
|
||||
if (cfg_file == NULL && (home = find_home()) != NULL) {
|
||||
xasprintf(&cfg_file, "%s/.tmux.conf", home);
|
||||
if (access(cfg_file, R_OK) != 0 && errno == ENOENT) {
|
||||
free(cfg_file);
|
||||
cfg_file = NULL;
|
||||
}
|
||||
}
|
||||
if (cfg_file != NULL && load_cfg(cfg_file, cfg_cmd_q, &cause) == -1)
|
||||
cfg_add_cause("%s: %s", cfg_file, cause);
|
||||
free(cause);
|
||||
|
Reference in New Issue
Block a user