=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-copy-mode.c,v retrieving revision 1.40 retrieving revision 1.41 diff -c -r1.40 -r1.41 *** src/usr.bin/tmux/cmd-copy-mode.c 2020/03/20 17:59:39 1.40 --- src/usr.bin/tmux/cmd-copy-mode.c 2020/04/10 07:44:26 1.41 *************** *** 1,4 **** ! /* $OpenBSD: cmd-copy-mode.c,v 1.40 2020/03/20 17:59:39 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: cmd-copy-mode.c,v 1.41 2020/04/10 07:44:26 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 30,38 **** .name = "copy-mode", .alias = NULL, ! .args = { "eHMt:uq", 0, 0 }, ! .usage = "[-eHMuq] " CMD_TARGET_PANE_USAGE, .target = { 't', CMD_FIND_PANE, 0 }, .flags = CMD_AFTERHOOK, --- 30,39 ---- .name = "copy-mode", .alias = NULL, ! .args = { "eHMs:t:uq", 0, 0 }, ! .usage = "[-eHMuq] [-s src-pane] " CMD_TARGET_PANE_USAGE, + .source = { 's', CMD_FIND_PANE, 0 }, .target = { 't', CMD_FIND_PANE, 0 }, .flags = CMD_AFTERHOOK, *************** *** 59,65 **** struct cmdq_shared *shared = item->shared; struct client *c = item->client; struct session *s; ! struct window_pane *wp = item->target.wp; if (args_has(args, 'q')) { window_pane_reset_mode_all(wp); --- 60,66 ---- struct cmdq_shared *shared = item->shared; struct client *c = item->client; struct session *s; ! struct window_pane *wp = item->target.wp, *swp; if (args_has(args, 'q')) { window_pane_reset_mode_all(wp); *************** *** 74,84 **** } if (self->entry == &cmd_clock_mode_entry) { ! window_pane_set_mode(wp, &window_clock_mode, NULL, NULL); return (CMD_RETURN_NORMAL); } ! if (!window_pane_set_mode(wp, &window_copy_mode, NULL, args)) { if (args_has(args, 'M')) window_copy_start_drag(c, &shared->mouse); } --- 75,89 ---- } if (self->entry == &cmd_clock_mode_entry) { ! window_pane_set_mode(wp, NULL, &window_clock_mode, NULL, NULL); return (CMD_RETURN_NORMAL); } ! if (args_has(args, 's')) ! swp = item->source.wp; ! else ! swp = wp; ! if (!window_pane_set_mode(wp, swp, &window_copy_mode, NULL, args)) { if (args_has(args, 'M')) window_copy_start_drag(c, &shared->mouse); }