=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-run-shell.c,v retrieving revision 1.84 retrieving revision 1.85 diff -c -r1.84 -r1.85 *** src/usr.bin/tmux/cmd-run-shell.c 2022/06/02 21:19:32 1.84 --- src/usr.bin/tmux/cmd-run-shell.c 2023/08/23 08:40:25 1.85 *************** *** 1,4 **** ! /* $OpenBSD: cmd-run-shell.c,v 1.84 2022/06/02 21:19:32 nicm Exp $ */ /* * Copyright (c) 2009 Tiago Cunha --- 1,4 ---- ! /* $OpenBSD: cmd-run-shell.c,v 1.85 2023/08/23 08:40:25 nicm Exp $ */ /* * Copyright (c) 2009 Tiago Cunha *************** *** 44,51 **** .name = "run-shell", .alias = "run", ! .args = { "bd:Ct:", 0, 1, cmd_run_shell_args_parse }, ! .usage = "[-bC] [-d delay] " CMD_TARGET_PANE_USAGE " [shell-command]", .target = { 't', CMD_FIND_PANE, CMD_FIND_CANFAIL }, --- 44,52 ---- .name = "run-shell", .alias = "run", ! .args = { "bd:Ct:c:", 0, 2, cmd_run_shell_args_parse }, ! .usage = "[-bC] [-c start-directory] [-d delay] " CMD_TARGET_PANE_USAGE ! " [shell-command]", .target = { 't', CMD_FIND_PANE, CMD_FIND_CANFAIL }, *************** *** 103,108 **** --- 104,110 ---- struct args *args = cmd_get_args(self); struct cmd_find_state *target = cmdq_get_target(item); struct cmd_run_shell_data *cdata; + struct client *c = cmdq_get_client(item); struct client *tc = cmdq_get_target_client(item); struct session *s = target->s; struct window_pane *wp = target->wp; *************** *** 137,143 **** cdata->wp_id = -1; if (wait) { ! cdata->client = cmdq_get_client(item); cdata->item = item; } else { cdata->client = tc; --- 139,145 ---- cdata->wp_id = -1; if (wait) { ! cdata->client = c; cdata->item = item; } else { cdata->client = tc; *************** *** 145,152 **** } if (cdata->client != NULL) cdata->client->references++; ! ! cdata->cwd = xstrdup(server_client_get_cwd(cmdq_get_client(item), s)); cdata->s = s; if (s != NULL) --- 147,156 ---- } if (cdata->client != NULL) cdata->client->references++; ! if (args_has(args, 'c')) ! cdata->cwd = xstrdup(args_get(args, 'c')); ! else ! cdata->cwd = xstrdup(server_client_get_cwd(c, s)); cdata->s = s; if (s != NULL)