summaryrefslogtreecommitdiffstats
path: root/tmux.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2021-05-10 07:51:30 +0100
committerNicholas Marriott <nicholas.marriott@gmail.com>2021-05-10 07:51:30 +0100
commitbde3829131bd851b8210fd4a35871b01286da1eb (patch)
tree612e38256f0a415be7bd4525782f79682c0aa8f8 /tmux.c
parentd00d6820691947b00a1049a435e702e32453bcbe (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 3a49c803..29921781 100644
--- a/tmux.c
+++ b/tmux.c
@@ -328,7 +328,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;
@@ -373,10 +373,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':