summaryrefslogtreecommitdiffstats
path: root/cmd-run-shell.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-run-shell.c
parent1e6e606f54537c732cce48e5d3eae7fc29281fe5 (diff)
Add a helper function for the most common format_create/defaults/expand
pattern.
Diffstat (limited to 'cmd-run-shell.c')
-rw-r--r--cmd-run-shell.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/cmd-run-shell.c b/cmd-run-shell.c
index e6cd7936..d06d7f99 100644
--- a/cmd-run-shell.c
+++ b/cmd-run-shell.c
@@ -86,11 +86,10 @@ cmd_run_shell_exec(struct cmd *self, struct cmdq_item *item)
{
struct args *args = self->args;
struct cmd_run_shell_data *cdata;
- char *shellcmd;
+ struct client *c = item->state.c;
struct session *s = item->state.tflag.s;
struct winlink *wl = item->state.tflag.wl;
struct window_pane *wp = item->state.tflag.wp;
- struct format_tree *ft;
const char *cwd;
if (item->client != NULL && item->client->session == NULL)
@@ -100,13 +99,8 @@ cmd_run_shell_exec(struct cmd *self, struct cmdq_item *item)
else
cwd = NULL;
- ft = format_create(item, FORMAT_NONE, 0);
- format_defaults(ft, item->state.c, s, wl, wp);
- shellcmd = format_expand(ft, args->argv[0]);
- format_free(ft);
-
cdata = xcalloc(1, sizeof *cdata);
- cdata->cmd = shellcmd;
+ cdata->cmd = format_single(item, args->argv[0], c, s, wl, wp);
if (args_has(args, 't') && wp != NULL)
cdata->wp_id = wp->id;
@@ -116,7 +110,7 @@ cmd_run_shell_exec(struct cmd *self, struct cmdq_item *item)
if (!args_has(args, 'b'))
cdata->item = item;
- job_run(shellcmd, s, cwd, cmd_run_shell_callback, cmd_run_shell_free,
+ job_run(cdata->cmd, s, cwd, cmd_run_shell_callback, cmd_run_shell_free,
cdata);
if (args_has(args, 'b'))