summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd-run-shell.c14
-rw-r--r--server.c6
2 files changed, 15 insertions, 5 deletions
diff --git a/cmd-run-shell.c b/cmd-run-shell.c
index 08f6120a..e5726b26 100644
--- a/cmd-run-shell.c
+++ b/cmd-run-shell.c
@@ -59,12 +59,20 @@ cmd_run_shell_print(struct job *job, const char *msg)
{
struct cmd_run_shell_data *cdata = job->data;
struct window_pane *wp = NULL;
+ struct cmd_find_state fs;
if (cdata->wp_id != -1)
wp = window_pane_find_by_id(cdata->wp_id);
- if (cdata->item != NULL && wp == NULL) {
- cmdq_print(cdata->item, "%s", msg);
- return;
+ if (wp == NULL) {
+ if (cdata->item != NULL) {
+ cmdq_print(cdata->item, "%s", msg);
+ return;
+ }
+ if (cmd_find_current (&fs, NULL, CMD_FIND_QUIET) != 0)
+ return;
+ wp = fs.wp;
+ if (wp == NULL)
+ return;
}
if (window_pane_set_mode(wp, &window_copy_mode) == 0)
diff --git a/server.c b/server.c
index e9c22987..1fbaf37c 100644
--- a/server.c
+++ b/server.c
@@ -196,8 +196,10 @@ server_loop(void)
do {
items = cmdq_next(NULL);
- TAILQ_FOREACH(c, &clients, entry)
- items += cmdq_next(c);
+ TAILQ_FOREACH(c, &clients, entry) {
+ if (c->flags & CLIENT_IDENTIFIED)
+ items += cmdq_next(c);
+ }
} while (items != 0);
server_client_loop();