Merge branch 'obsd-master'

This commit is contained in:
Thomas Adam
2020-06-04 12:01:20 +01:00
3 changed files with 96 additions and 79 deletions

6
tmux.1
View File

@ -2519,7 +2519,8 @@ Reactivate a pane in which the command has exited (see the
window option). window option).
If If
.Ar shell-command .Ar shell-command
is not given, the command used when the pane was created is executed. is not given, the command used when the pane was created or last respawned is
executed.
The pane must be already inactive, unless The pane must be already inactive, unless
.Fl k .Fl k
is given, in which case any existing command is killed. is given, in which case any existing command is killed.
@ -2543,7 +2544,8 @@ Reactivate a window in which the command has exited (see the
window option). window option).
If If
.Ar shell-command .Ar shell-command
is not given, the command used when the window was created is executed. is not given, the command used when the window was created or last respawned is
executed.
The window must be already inactive, unless The window must be already inactive, unless
.Fl k .Fl k
is given, in which case any existing command is killed. is given, in which case any existing command is killed.

View File

@ -332,21 +332,26 @@ tty_default_features(int *feat, const char *name, u_int version)
u_int version; u_int version;
const char *features; const char *features;
} table[] = { } table[] = {
#define TTY_FEATURES_BASE_MODERN_XTERM "256,RGB,bpaste,clipboard,strikethrough,title" #define TTY_FEATURES_BASE_MODERN_XTERM \
"256,RGB,bpaste,clipboard,strikethrough,title"
{ .name = "mintty", { .name = "mintty",
.features = TTY_FEATURES_BASE_MODERN_XTERM ",ccolour,cstyle,extkeys,margins,overline" .features = TTY_FEATURES_BASE_MODERN_XTERM
",ccolour,cstyle,extkeys,margins,overline"
}, },
{ .name = "tmux", { .name = "tmux",
.features = TTY_FEATURES_BASE_MODERN_XTERM ",ccolour,cstyle,focus,overline,usstyle" .features = TTY_FEATURES_BASE_MODERN_XTERM
",ccolour,cstyle,focus,overline,usstyle"
}, },
{ .name = "rxvt-unicode", { .name = "rxvt-unicode",
.features = "256,bpaste,ccolour,cstyle,title" .features = "256,bpaste,ccolour,cstyle,title"
}, },
{ .name = "iTerm2", { .name = "iTerm2",
.features = TTY_FEATURES_BASE_MODERN_XTERM ",cstyle,extkeys,margins,sync" .features = TTY_FEATURES_BASE_MODERN_XTERM
",cstyle,extkeys,margins,sync"
}, },
{ .name = "XTerm", { .name = "XTerm",
.features = TTY_FEATURES_BASE_MODERN_XTERM ",ccolour,cstyle,extkeys,focus,margins,rectfill" .features = TTY_FEATURES_BASE_MODERN_XTERM
",ccolour,cstyle,extkeys,focus,margins,rectfill"
} }
}; };
u_int i; u_int i;

View File

@ -177,6 +177,12 @@ enum window_copy_cmd_action {
WINDOW_COPY_CMD_CANCEL, WINDOW_COPY_CMD_CANCEL,
}; };
enum window_copy_cmd_clear {
WINDOW_COPY_CMD_CLEAR_ALWAYS,
WINDOW_COPY_CMD_CLEAR_NEVER,
WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
};
struct window_copy_cmd_state { struct window_copy_cmd_state {
struct window_mode_entry *wme; struct window_mode_entry *wme;
struct args *args; struct args *args;
@ -2116,144 +2122,144 @@ static const struct {
const char *command; const char *command;
int minargs; int minargs;
int maxargs; int maxargs;
int ismotion; enum window_copy_cmd_clear clear;
enum window_copy_cmd_action (*f)(struct window_copy_cmd_state *); enum window_copy_cmd_action (*f)(struct window_copy_cmd_state *);
} window_copy_cmd_table[] = { } window_copy_cmd_table[] = {
{ "append-selection", 0, 0, 0, { "append-selection", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_append_selection }, window_copy_cmd_append_selection },
{ "append-selection-and-cancel", 0, 0, 0, { "append-selection-and-cancel", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_append_selection_and_cancel }, window_copy_cmd_append_selection_and_cancel },
{ "back-to-indentation", 0, 0, 0, { "back-to-indentation", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_back_to_indentation }, window_copy_cmd_back_to_indentation },
{ "begin-selection", 0, 0, 0, { "begin-selection", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_begin_selection }, window_copy_cmd_begin_selection },
{ "bottom-line", 0, 0, 1, { "bottom-line", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_bottom_line }, window_copy_cmd_bottom_line },
{ "cancel", 0, 0, 0, { "cancel", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_cancel }, window_copy_cmd_cancel },
{ "clear-selection", 0, 0, 0, { "clear-selection", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_clear_selection }, window_copy_cmd_clear_selection },
{ "copy-end-of-line", 0, 1, 0, { "copy-end-of-line", 0, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_copy_end_of_line }, window_copy_cmd_copy_end_of_line },
{ "copy-line", 0, 1, 0, { "copy-line", 0, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_copy_line }, window_copy_cmd_copy_line },
{ "copy-pipe-no-clear", 0, 2, 0, { "copy-pipe-no-clear", 0, 2, WINDOW_COPY_CMD_CLEAR_NEVER,
window_copy_cmd_copy_pipe_no_clear }, window_copy_cmd_copy_pipe_no_clear },
{ "copy-pipe", 0, 2, 0, { "copy-pipe", 0, 2, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_copy_pipe }, window_copy_cmd_copy_pipe },
{ "copy-pipe-and-cancel", 0, 2, 0, { "copy-pipe-and-cancel", 0, 2, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_copy_pipe_and_cancel }, window_copy_cmd_copy_pipe_and_cancel },
{ "copy-selection-no-clear", 0, 1, 0, { "copy-selection-no-clear", 0, 1, WINDOW_COPY_CMD_CLEAR_NEVER,
window_copy_cmd_copy_selection_no_clear }, window_copy_cmd_copy_selection_no_clear },
{ "copy-selection", 0, 1, 0, { "copy-selection", 0, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_copy_selection }, window_copy_cmd_copy_selection },
{ "copy-selection-and-cancel", 0, 1, 0, { "copy-selection-and-cancel", 0, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_copy_selection_and_cancel }, window_copy_cmd_copy_selection_and_cancel },
{ "cursor-down", 0, 0, 1, { "cursor-down", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_cursor_down }, window_copy_cmd_cursor_down },
{ "cursor-down-and-cancel", 0, 0, 0, { "cursor-down-and-cancel", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_cursor_down_and_cancel }, window_copy_cmd_cursor_down_and_cancel },
{ "cursor-left", 0, 0, 1, { "cursor-left", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_cursor_left }, window_copy_cmd_cursor_left },
{ "cursor-right", 0, 0, 1, { "cursor-right", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_cursor_right }, window_copy_cmd_cursor_right },
{ "cursor-up", 0, 0, 1, { "cursor-up", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_cursor_up }, window_copy_cmd_cursor_up },
{ "end-of-line", 0, 0, 1, { "end-of-line", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_end_of_line }, window_copy_cmd_end_of_line },
{ "goto-line", 1, 1, 1, { "goto-line", 1, 1, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_goto_line }, window_copy_cmd_goto_line },
{ "halfpage-down", 0, 0, 1, { "halfpage-down", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_halfpage_down }, window_copy_cmd_halfpage_down },
{ "halfpage-down-and-cancel", 0, 0, 0, { "halfpage-down-and-cancel", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_halfpage_down_and_cancel }, window_copy_cmd_halfpage_down_and_cancel },
{ "halfpage-up", 0, 0, 1, { "halfpage-up", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_halfpage_up }, window_copy_cmd_halfpage_up },
{ "history-bottom", 0, 0, 1, { "history-bottom", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_history_bottom }, window_copy_cmd_history_bottom },
{ "history-top", 0, 0, 1, { "history-top", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_history_top }, window_copy_cmd_history_top },
{ "jump-again", 0, 0, 1, { "jump-again", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_jump_again }, window_copy_cmd_jump_again },
{ "jump-backward", 1, 1, 1, { "jump-backward", 1, 1, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_jump_backward }, window_copy_cmd_jump_backward },
{ "jump-forward", 1, 1, 1, { "jump-forward", 1, 1, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_jump_forward }, window_copy_cmd_jump_forward },
{ "jump-reverse", 0, 0, 1, { "jump-reverse", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_jump_reverse }, window_copy_cmd_jump_reverse },
{ "jump-to-backward", 1, 1, 1, { "jump-to-backward", 1, 1, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_jump_to_backward }, window_copy_cmd_jump_to_backward },
{ "jump-to-forward", 1, 1, 1, { "jump-to-forward", 1, 1, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_jump_to_forward }, window_copy_cmd_jump_to_forward },
{ "jump-to-mark", 0, 0, 0, { "jump-to-mark", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_jump_to_mark }, window_copy_cmd_jump_to_mark },
{ "middle-line", 0, 0, 1, { "middle-line", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_middle_line }, window_copy_cmd_middle_line },
{ "next-matching-bracket", 0, 0, 0, { "next-matching-bracket", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_next_matching_bracket }, window_copy_cmd_next_matching_bracket },
{ "next-paragraph", 0, 0, 1, { "next-paragraph", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_next_paragraph }, window_copy_cmd_next_paragraph },
{ "next-space", 0, 0, 1, { "next-space", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_next_space }, window_copy_cmd_next_space },
{ "next-space-end", 0, 0, 1, { "next-space-end", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_next_space_end }, window_copy_cmd_next_space_end },
{ "next-word", 0, 0, 1, { "next-word", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_next_word }, window_copy_cmd_next_word },
{ "next-word-end", 0, 0, 1, { "next-word-end", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_next_word_end }, window_copy_cmd_next_word_end },
{ "other-end", 0, 0, 1, { "other-end", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_other_end }, window_copy_cmd_other_end },
{ "page-down", 0, 0, 1, { "page-down", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_page_down }, window_copy_cmd_page_down },
{ "page-down-and-cancel", 0, 0, 0, { "page-down-and-cancel", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_page_down_and_cancel }, window_copy_cmd_page_down_and_cancel },
{ "page-up", 0, 0, 1, { "page-up", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_page_up }, window_copy_cmd_page_up },
{ "previous-matching-bracket", 0, 0, 0, { "previous-matching-bracket", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_previous_matching_bracket }, window_copy_cmd_previous_matching_bracket },
{ "previous-paragraph", 0, 0, 1, { "previous-paragraph", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_previous_paragraph }, window_copy_cmd_previous_paragraph },
{ "previous-space", 0, 0, 1, { "previous-space", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_previous_space }, window_copy_cmd_previous_space },
{ "previous-word", 0, 0, 1, { "previous-word", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_previous_word }, window_copy_cmd_previous_word },
{ "rectangle-toggle", 0, 0, 0, { "rectangle-toggle", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_rectangle_toggle }, window_copy_cmd_rectangle_toggle },
{ "refresh-from-pane", 0, 0, 0, { "refresh-from-pane", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_refresh_from_pane }, window_copy_cmd_refresh_from_pane },
{ "scroll-down", 0, 0, 1, { "scroll-down", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_scroll_down }, window_copy_cmd_scroll_down },
{ "scroll-down-and-cancel", 0, 0, 0, { "scroll-down-and-cancel", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_scroll_down_and_cancel }, window_copy_cmd_scroll_down_and_cancel },
{ "scroll-up", 0, 0, 1, { "scroll-up", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_scroll_up }, window_copy_cmd_scroll_up },
{ "search-again", 0, 0, 0, { "search-again", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_search_again }, window_copy_cmd_search_again },
{ "search-backward", 0, 1, 0, { "search-backward", 0, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_search_backward }, window_copy_cmd_search_backward },
{ "search-backward-text", 0, 1, 0, { "search-backward-text", 0, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_search_backward_text }, window_copy_cmd_search_backward_text },
{ "search-backward-incremental", 1, 1, 0, { "search-backward-incremental", 1, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_search_backward_incremental }, window_copy_cmd_search_backward_incremental },
{ "search-forward", 0, 1, 0, { "search-forward", 0, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_search_forward }, window_copy_cmd_search_forward },
{ "search-forward-text", 0, 1, 0, { "search-forward-text", 0, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_search_forward_text }, window_copy_cmd_search_forward_text },
{ "search-forward-incremental", 1, 1, 0, { "search-forward-incremental", 1, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_search_forward_incremental }, window_copy_cmd_search_forward_incremental },
{ "search-reverse", 0, 0, 0, { "search-reverse", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_search_reverse }, window_copy_cmd_search_reverse },
{ "select-line", 0, 0, 0, { "select-line", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_select_line }, window_copy_cmd_select_line },
{ "select-word", 0, 0, 0, { "select-word", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_select_word }, window_copy_cmd_select_word },
{ "set-mark", 0, 0, 0, { "set-mark", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_set_mark }, window_copy_cmd_set_mark },
{ "start-of-line", 0, 0, 1, { "start-of-line", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_start_of_line }, window_copy_cmd_start_of_line },
{ "stop-selection", 0, 0, 0, { "stop-selection", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_stop_selection }, window_copy_cmd_stop_selection },
{ "top-line", 0, 0, 1, { "top-line", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_top_line }, window_copy_cmd_top_line },
}; };
@ -2265,9 +2271,10 @@ window_copy_command(struct window_mode_entry *wme, struct client *c,
struct window_copy_mode_data *data = wme->data; struct window_copy_mode_data *data = wme->data;
struct window_copy_cmd_state cs; struct window_copy_cmd_state cs;
enum window_copy_cmd_action action; enum window_copy_cmd_action action;
enum window_copy_cmd_clear clear = WINDOW_COPY_CMD_CLEAR_NEVER;
const char *command; const char *command;
u_int i; u_int i;
int ismotion = 0, keys; int keys;
if (args->argc == 0) if (args->argc == 0)
return; return;
@ -2290,7 +2297,7 @@ window_copy_command(struct window_mode_entry *wme, struct client *c,
if (args->argc - 1 < window_copy_cmd_table[i].minargs || if (args->argc - 1 < window_copy_cmd_table[i].minargs ||
args->argc - 1 > window_copy_cmd_table[i].maxargs) args->argc - 1 > window_copy_cmd_table[i].maxargs)
break; break;
ismotion = window_copy_cmd_table[i].ismotion; clear = window_copy_cmd_table[i].clear;
action = window_copy_cmd_table[i].f (&cs); action = window_copy_cmd_table[i].f (&cs);
break; break;
} }
@ -2298,7 +2305,10 @@ window_copy_command(struct window_mode_entry *wme, struct client *c,
if (strncmp(command, "search-", 7) != 0 && data->searchmark != NULL) { if (strncmp(command, "search-", 7) != 0 && data->searchmark != NULL) {
keys = options_get_number(wme->wp->window->options, "mode-keys"); keys = options_get_number(wme->wp->window->options, "mode-keys");
if (keys != MODEKEY_VI || !ismotion) { if (clear == WINDOW_COPY_CMD_CLEAR_EMACS_ONLY &&
keys == MODEKEY_VI)
clear = WINDOW_COPY_CMD_CLEAR_NEVER;
if (clear != WINDOW_COPY_CMD_CLEAR_NEVER) {
window_copy_clear_marks(wme); window_copy_clear_marks(wme);
data->searchx = data->searchy = -1; data->searchx = data->searchy = -1;
} else if (data->searchthis != -1) { } else if (data->searchthis != -1) {