diff options
author | Thomas Adam <thomas@xteddy.org> | 2015-04-25 10:02:46 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2015-04-25 10:02:46 +0000 |
commit | 56e1132db485aeb0730ce7782533ca441e63afef (patch) | |
tree | 310f172893f10f8f2f3a249ee88fed51b03b39cc /cmd-if-shell.c | |
parent | 0a88377086329786c438d4973365fdb21186f4e4 (diff) | |
parent | aeedb464a6ee038289ddcfefae437928ab020cb1 (diff) | |
download | rtmux-56e1132db485aeb0730ce7782533ca441e63afef.tar.gz rtmux-56e1132db485aeb0730ce7782533ca441e63afef.tar.bz2 rtmux-56e1132db485aeb0730ce7782533ca441e63afef.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'cmd-if-shell.c')
-rw-r--r-- | cmd-if-shell.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/cmd-if-shell.c b/cmd-if-shell.c index cdd2135c..a307bd2f 100644 --- a/cmd-if-shell.c +++ b/cmd-if-shell.c @@ -66,16 +66,24 @@ cmd_if_shell_exec(struct cmd *self, struct cmd_q *cmdq) struct winlink *wl = NULL; struct window_pane *wp = NULL; struct format_tree *ft; + int cwd; - if (args_has(args, 't')) + if (args_has(args, 't')) { wl = cmd_find_pane(cmdq, args_get(args, 't'), &s, &wp); - else { + cwd = wp->cwd; + } else { c = cmd_find_client(cmdq, NULL, 1); if (c != NULL && c->session != NULL) { s = c->session; wl = s->curw; wp = wl->window->active; } + if (cmdq->client != NULL && cmdq->client->session == NULL) + cwd = cmdq->client->cwd; + else if (s != NULL) + cwd = s->cwd; + else + cwd = -1; } ft = format_create(); @@ -118,7 +126,8 @@ cmd_if_shell_exec(struct cmd *self, struct cmd_q *cmdq) cmdq->references++; cdata->references = 1; - job_run(shellcmd, s, cmd_if_shell_callback, cmd_if_shell_free, cdata); + job_run(shellcmd, s, cwd, cmd_if_shell_callback, cmd_if_shell_free, + cdata); free(shellcmd); if (cdata->bflag) |