summaryrefslogtreecommitdiffstats
path: root/tmux.c
diff options
context:
space:
mode:
authornicm <nicm>2021-06-10 07:52:29 +0000
committernicm <nicm>2021-06-10 07:52:29 +0000
commit73bf358f6da9ce8b6c2dd51849ab88a22bb883ad (patch)
treed4d132de0e4b50df8533fa18b47f050cd747ddd2 /tmux.c
parentf706a7e2366ba19bb06265a331fa22a3c7546d90 (diff)
Do not expand the file given with -f so it can contain :s.
Diffstat (limited to 'tmux.c')
-rw-r--r--tmux.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/tmux.c b/tmux.c
index 71cbccba..16877407 100644
--- a/tmux.c
+++ b/tmux.c
@@ -338,7 +338,7 @@ main(int argc, char **argv)
char *path = NULL, *label = NULL;
char *cause, **var;
const char *s, *cwd;
- int opt, keys, feat = 0;
+ int opt, keys, feat = 0, fflag = 0;
uint64_t flags = 0;
const struct options_table_entry *oe;
u_int i;
@@ -383,10 +383,15 @@ main(int argc, char **argv)
flags |= CLIENT_CONTROL;
break;
case 'f':
- for (i = 0; i < cfg_nfiles; i++)
- free(cfg_files[i]);
- free(cfg_files);
- expand_paths(optarg, &cfg_files, &cfg_nfiles, 0);
+ if (!fflag) {
+ fflag = 1;
+ for (i = 0; i < cfg_nfiles; i++)
+ free(cfg_files[i]);
+ cfg_nfiles = 0;
+ }
+ cfg_files = xreallocarray(cfg_files, cfg_nfiles + 1,
+ sizeof *cfg_files);
+ cfg_files[cfg_nfiles++] = xstrdup(optarg);
cfg_quiet = 0;
break;
case 'V':