summaryrefslogtreecommitdiffstats
path: root/tmux.c
diff options
context:
space:
mode:
authornicm <nicm>2015-09-01 10:10:59 +0000
committernicm <nicm>2015-09-01 10:10:59 +0000
commit952ba846111fb91d9882846a4061955262f34212 (patch)
treeeb22a9459bcf676b7d0f152330dddc50623adf9b /tmux.c
parent83157c02d6935d3ea4dcf6e39d6a531849a775d6 (diff)
Work out config file when needed not at startup.
Diffstat (limited to 'tmux.c')
-rw-r--r--tmux.c28
1 files changed, 8 insertions, 20 deletions
diff --git a/tmux.c b/tmux.c
index 6eb2a301..69097bf9 100644
--- a/tmux.c
+++ b/tmux.c
@@ -41,7 +41,6 @@ struct options global_s_options; /* session options */
struct options global_w_options; /* window options */
struct environ global_environ;
-char *cfg_file;
char *shell_cmd;
int debug_level;
time_t start_time;
@@ -171,8 +170,11 @@ setblocking(int fd, int state)
const char *
find_home(void)
{
- struct passwd *pw;
- const char *home;
+ struct passwd *pw;
+ static const char *home;
+
+ if (home != NULL)
+ return (home);
home = getenv("HOME");
if (home == NULL || *home == '\0') {
@@ -189,9 +191,8 @@ find_home(void)
int
main(int argc, char **argv)
{
- char *s, *path, *label, **var, tmp[PATH_MAX];
- const char *home;
- int opt, flags, keys;
+ char *s, *path, *label, **var, tmp[PATH_MAX];
+ int opt, flags, keys;
#ifdef DEBUG
malloc_options = (char *) "AFGJPX";
@@ -221,8 +222,7 @@ main(int argc, char **argv)
flags |= CLIENT_CONTROL;
break;
case 'f':
- free(cfg_file);
- cfg_file = xstrdup(optarg);
+ set_cfg_file(optarg);
break;
case 'l':
flags |= CLIENT_LOGIN;
@@ -306,18 +306,6 @@ main(int argc, char **argv)
options_set_number(&global_w_options, "mode-keys", keys);
}
- /* Locate the configuration file. */
- if (cfg_file == NULL) {
- home = find_home();
- if (home != NULL) {
- xasprintf(&cfg_file, "%s/.tmux.conf", home);
- if (access(cfg_file, R_OK) != 0 && errno == ENOENT) {
- free(cfg_file);
- cfg_file = NULL;
- }
- }
- }
-
/*
* Figure out the socket path. If specified on the command-line with -S
* or -L, use it, otherwise try $TMUX or assume -L default.