aboutsummaryrefslogtreecommitdiff
path: root/cmd-run-shell.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2020-03-21 14:01:27 +0000
committerThomas Adam <thomas@xteddy.org>2020-03-21 14:01:27 +0000
commit5123bb7db4ce2f8744957a888c8fa264c1423166 (patch)
tree4696260f9d7eab850f37f6d85610cd1714b69aef /cmd-run-shell.c
parentc6d4baa4e5d5d36990049917cb9cbb0ca4092b86 (diff)
parentaf6ae35900a066389c1c9b4dbd430b557fcb8816 (diff)
downloadrtmux-5123bb7db4ce2f8744957a888c8fa264c1423166.tar.gz
rtmux-5123bb7db4ce2f8744957a888c8fa264c1423166.tar.bz2
rtmux-5123bb7db4ce2f8744957a888c8fa264c1423166.zip
Merge branch 'obsd-master'
Diffstat (limited to 'cmd-run-shell.c')
-rw-r--r--cmd-run-shell.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/cmd-run-shell.c b/cmd-run-shell.c
index 1cf97d51..a57beb83 100644
--- a/cmd-run-shell.c
+++ b/cmd-run-shell.c
@@ -160,6 +160,7 @@ cmd_run_shell_callback(struct job *job)
{
struct cmd_run_shell_data *cdata = job_get_data(job);
struct bufferevent *event = job_get_event(job);
+ struct cmdq_item *item = cdata->item;
char *cmd = cdata->cmd, *msg = NULL, *line;
size_t size;
int retcode, status;
@@ -189,13 +190,17 @@ cmd_run_shell_callback(struct job *job)
} else if (WIFSIGNALED(status)) {
retcode = WTERMSIG(status);
xasprintf(&msg, "'%s' terminated by signal %d", cmd, retcode);
+ retcode += 128;
}
if (msg != NULL)
cmd_run_shell_print(job, msg);
free(msg);
- if (cdata->item != NULL)
- cmdq_continue(cdata->item);
+ if (item != NULL) {
+ if (item->client != NULL && item->client->session == NULL)
+ item->client->retval = retcode;
+ cmdq_continue(item);
+ }
}
static void