aboutsummaryrefslogtreecommitdiff
path: root/window-copy.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2020-04-17 10:01:38 +0100
committerThomas Adam <thomas@xteddy.org>2020-04-17 10:01:38 +0100
commit413c4cfd1bdf40cfbb65400abe7edff97ba821c9 (patch)
tree4e9cdfb152d585a79e22443c574fc4985b16f0e3 /window-copy.c
parent2846be326aba333cec6005a55d4853fbe581743b (diff)
parent5aba26f2cb7aa9609a3c3d2bd38a3942b6a378b8 (diff)
downloadrtmux-413c4cfd1bdf40cfbb65400abe7edff97ba821c9.tar.gz
rtmux-413c4cfd1bdf40cfbb65400abe7edff97ba821c9.tar.bz2
rtmux-413c4cfd1bdf40cfbb65400abe7edff97ba821c9.zip
Merge branch 'obsd-master'
Diffstat (limited to 'window-copy.c')
-rw-r--r--window-copy.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/window-copy.c b/window-copy.c
index 8364ef11..bdf2c148 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -1728,11 +1728,10 @@ window_copy_cmd_copy_pipe_no_clear(struct window_copy_cmd_state *cs)
if (cs->args->argc == 3)
prefix = format_single(NULL, cs->args->argv[2], c, s, wl, wp);
- if (s != NULL && *cs->args->argv[1] != '\0') {
+ if (s != NULL && cs->args->argc > 1 && *cs->args->argv[1] != '\0')
command = format_single(NULL, cs->args->argv[1], c, s, wl, wp);
- window_copy_copy_pipe(wme, s, prefix, command);
- free(command);
- }
+ window_copy_copy_pipe(wme, s, prefix, command);
+ free(command);
free(prefix);
return (WINDOW_COPY_CMD_NOTHING);
@@ -2066,11 +2065,11 @@ static const struct {
window_copy_cmd_copy_end_of_line },
{ "copy-line", 0, 1, 0,
window_copy_cmd_copy_line },
- { "copy-pipe-no-clear", 1, 2, 0,
+ { "copy-pipe-no-clear", 0, 2, 0,
window_copy_cmd_copy_pipe_no_clear },
- { "copy-pipe", 1, 2, 0,
+ { "copy-pipe", 0, 2, 0,
window_copy_cmd_copy_pipe },
- { "copy-pipe-and-cancel", 1, 2, 0,
+ { "copy-pipe-and-cancel", 0, 2, 0,
window_copy_cmd_copy_pipe_and_cancel },
{ "copy-selection-no-clear", 0, 1, 0,
window_copy_cmd_copy_selection_no_clear },
@@ -3471,8 +3470,13 @@ window_copy_copy_pipe(struct window_mode_entry *wme, struct session *s,
if (buf == NULL)
return;
- job = job_run(cmd, s, NULL, NULL, NULL, NULL, NULL, JOB_NOWAIT, -1, -1);
- bufferevent_write(job_get_event(job), buf, len);
+ if (cmd == NULL || *cmd == '\0')
+ cmd = options_get_string(global_options, "copy-command");
+ if (cmd != NULL && *cmd != '\0') {
+ job = job_run(cmd, s, NULL, NULL, NULL, NULL, NULL, JOB_NOWAIT,
+ -1, -1);
+ bufferevent_write(job_get_event(job), buf, len);
+ }
window_copy_copy_buffer(wme, prefix, buf, len);
}