version 1.215, 2019/04/02 09:03:39 |
version 1.216, 2019/04/23 09:39:07 |
|
|
} |
} |
|
|
static enum window_copy_cmd_action |
static enum window_copy_cmd_action |
window_copy_cmd_copy_selection(struct window_copy_cmd_state *cs) |
window_copy_cmd_copy_selection_no_clear(struct window_copy_cmd_state *cs) |
{ |
{ |
struct window_mode_entry *wme = cs->wme; |
struct window_mode_entry *wme = cs->wme; |
struct client *c = cs->c; |
struct client *c = cs->c; |
|
|
|
|
if (s != NULL) |
if (s != NULL) |
window_copy_copy_selection(wme, prefix); |
window_copy_copy_selection(wme, prefix); |
window_copy_clear_selection(wme); |
|
|
|
free(prefix); |
free(prefix); |
|
return (WINDOW_COPY_CMD_NOTHING); |
|
} |
|
|
|
static enum window_copy_cmd_action |
|
window_copy_cmd_copy_selection(struct window_copy_cmd_state *cs) |
|
{ |
|
struct window_mode_entry *wme = cs->wme; |
|
|
|
window_copy_cmd_copy_selection_no_clear(cs); |
|
window_copy_clear_selection(wme); |
return (WINDOW_COPY_CMD_REDRAW); |
return (WINDOW_COPY_CMD_REDRAW); |
} |
} |
|
|
|
|
window_copy_cmd_copy_selection_and_cancel(struct window_copy_cmd_state *cs) |
window_copy_cmd_copy_selection_and_cancel(struct window_copy_cmd_state *cs) |
{ |
{ |
struct window_mode_entry *wme = cs->wme; |
struct window_mode_entry *wme = cs->wme; |
struct client *c = cs->c; |
|
struct session *s = cs->s; |
|
struct winlink *wl = cs->wl; |
|
struct window_pane *wp = wme->wp; |
|
char *prefix = NULL; |
|
|
|
if (cs->args->argc == 2) |
window_copy_cmd_copy_selection_no_clear(cs); |
prefix = format_single(NULL, cs->args->argv[1], c, s, wl, wp); |
|
|
|
if (s != NULL) |
|
window_copy_copy_selection(wme, prefix); |
|
window_copy_clear_selection(wme); |
window_copy_clear_selection(wme); |
|
|
free(prefix); |
|
return (WINDOW_COPY_CMD_CANCEL); |
return (WINDOW_COPY_CMD_CANCEL); |
} |
} |
|
|
|
|
} |
} |
|
|
static enum window_copy_cmd_action |
static enum window_copy_cmd_action |
window_copy_cmd_copy_pipe(struct window_copy_cmd_state *cs) |
window_copy_cmd_copy_pipe_no_clear(struct window_copy_cmd_state *cs) |
{ |
{ |
struct window_mode_entry *wme = cs->wme; |
struct window_mode_entry *wme = cs->wme; |
struct client *c = cs->c; |
struct client *c = cs->c; |
|
|
} |
} |
|
|
static enum window_copy_cmd_action |
static enum window_copy_cmd_action |
window_copy_cmd_copy_pipe_and_cancel(struct window_copy_cmd_state *cs) |
window_copy_cmd_copy_pipe(struct window_copy_cmd_state *cs) |
{ |
{ |
struct window_mode_entry *wme = cs->wme; |
struct window_mode_entry *wme = cs->wme; |
struct client *c = cs->c; |
|
struct session *s = cs->s; |
|
struct winlink *wl = cs->wl; |
|
struct window_pane *wp = wme->wp; |
|
char *command = NULL; |
|
char *prefix = NULL; |
|
|
|
if (cs->args->argc == 3) |
window_copy_cmd_copy_pipe_no_clear(cs); |
prefix = format_single(NULL, cs->args->argv[2], c, s, wl, wp); |
window_copy_clear_selection(wme); |
|
return (WINDOW_COPY_CMD_REDRAW); |
|
} |
|
|
if (s != NULL && *cs->args->argv[1] != '\0') { |
static enum window_copy_cmd_action |
command = format_single(NULL, cs->args->argv[1], c, s, wl, wp); |
window_copy_cmd_copy_pipe_and_cancel(struct window_copy_cmd_state *cs) |
window_copy_copy_pipe(wme, s, prefix, command); |
{ |
free(command); |
struct window_mode_entry *wme = cs->wme; |
|
|
free(prefix); |
window_copy_cmd_copy_pipe_no_clear(cs); |
return (WINDOW_COPY_CMD_CANCEL); |
window_copy_clear_selection(wme); |
} |
return (WINDOW_COPY_CMD_CANCEL); |
|
|
free(prefix); |
|
return (WINDOW_COPY_CMD_NOTHING); |
|
} |
} |
|
|
static enum window_copy_cmd_action |
static enum window_copy_cmd_action |
|
|
window_copy_cmd_copy_end_of_line }, |
window_copy_cmd_copy_end_of_line }, |
{ "copy-line", 0, 1, |
{ "copy-line", 0, 1, |
window_copy_cmd_copy_line }, |
window_copy_cmd_copy_line }, |
|
{ "copy-pipe-no-clear", 1, 2, |
|
window_copy_cmd_copy_pipe_no_clear }, |
{ "copy-pipe", 1, 2, |
{ "copy-pipe", 1, 2, |
window_copy_cmd_copy_pipe }, |
window_copy_cmd_copy_pipe }, |
{ "copy-pipe-and-cancel", 1, 2, |
{ "copy-pipe-and-cancel", 1, 2, |
window_copy_cmd_copy_pipe_and_cancel }, |
window_copy_cmd_copy_pipe_and_cancel }, |
|
{ "copy-selection-no-clear", 0, 1, |
|
window_copy_cmd_copy_selection_no_clear }, |
{ "copy-selection", 0, 1, |
{ "copy-selection", 0, 1, |
window_copy_cmd_copy_selection }, |
window_copy_cmd_copy_selection }, |
{ "copy-selection-and-cancel", 0, 1, |
{ "copy-selection-and-cancel", 0, 1, |