summaryrefslogtreecommitdiffstats
path: root/cmd-new-window.c
diff options
context:
space:
mode:
authornicm <nicm>2017-03-08 13:36:12 +0000
committernicm <nicm>2017-03-08 13:36:12 +0000
commit6b2009ad725b662853b8e94aee233fabdc5490f9 (patch)
treea38064466deb34fce243a7051e0139afc6c56080 /cmd-new-window.c
parent1e6e606f54537c732cce48e5d3eae7fc29281fe5 (diff)
Add a helper function for the most common format_create/defaults/expand
pattern.
Diffstat (limited to 'cmd-new-window.c')
-rw-r--r--cmd-new-window.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/cmd-new-window.c b/cmd-new-window.c
index 082b7443..c10a4aaf 100644
--- a/cmd-new-window.c
+++ b/cmd-new-window.c
@@ -59,7 +59,6 @@ cmd_new_window_exec(struct cmd *self, struct cmdq_item *item)
const char *cmd, *path, *template, *cwd, *to_free;
char **argv, *cause, *cp;
int argc, detached;
- struct format_tree *ft;
struct environ_entry *envent;
struct cmd_find_state fs;
@@ -95,10 +94,8 @@ cmd_new_window_exec(struct cmd *self, struct cmdq_item *item)
to_free = NULL;
if (args_has(args, 'c')) {
- ft = format_create(item, FORMAT_NONE, 0);
- format_defaults(ft, c, s, NULL, NULL);
- cwd = to_free = format_expand(ft, args_get(args, 'c'));
- format_free(ft);
+ cwd = args_get(args, 'c');
+ to_free = cwd = format_single(item, cwd, c, s, NULL, NULL);
} else if (item->client != NULL && item->client->session == NULL)
cwd = item->client->cwd;
else
@@ -142,15 +139,9 @@ cmd_new_window_exec(struct cmd *self, struct cmdq_item *item)
if (args_has(args, 'P')) {
if ((template = args_get(args, 'F')) == NULL)
template = NEW_WINDOW_TEMPLATE;
-
- ft = format_create(item, FORMAT_NONE, 0);
- format_defaults(ft, c, s, wl, NULL);
-
- cp = format_expand(ft, template);
+ cp = format_single(item, template, c, s, wl, NULL);
cmdq_print(item, "%s", cp);
free(cp);
-
- format_free(ft);
}
if (to_free != NULL)