Merge branch 'obsd-master'

This commit is contained in:
Thomas Adam 2020-06-04 12:01:20 +01:00
commit 81ba6477ff
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).
If
.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
.Fl k
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).
If
.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
.Fl k
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;
const char *features;
} 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",
.features = TTY_FEATURES_BASE_MODERN_XTERM ",ccolour,cstyle,extkeys,margins,overline"
.features = TTY_FEATURES_BASE_MODERN_XTERM
",ccolour,cstyle,extkeys,margins,overline"
},
{ .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",
.features = "256,bpaste,ccolour,cstyle,title"
},
{ .name = "iTerm2",
.features = TTY_FEATURES_BASE_MODERN_XTERM ",cstyle,extkeys,margins,sync"
.features = TTY_FEATURES_BASE_MODERN_XTERM
",cstyle,extkeys,margins,sync"
},
{ .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;

View File

@ -177,6 +177,12 @@ enum window_copy_cmd_action {
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_mode_entry *wme;
struct args *args;
@ -2116,144 +2122,144 @@ static const struct {
const char *command;
int minargs;
int maxargs;
int ismotion;
enum window_copy_cmd_clear clear;
enum window_copy_cmd_action (*f)(struct window_copy_cmd_state *);
} window_copy_cmd_table[] = {
{ "append-selection", 0, 0, 0,
{ "append-selection", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
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 },
{ "back-to-indentation", 0, 0, 0,
{ "back-to-indentation", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
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 },
{ "bottom-line", 0, 0, 1,
{ "bottom-line", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_bottom_line },
{ "cancel", 0, 0, 0,
{ "cancel", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_cancel },
{ "clear-selection", 0, 0, 0,
{ "clear-selection", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
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 },
{ "copy-line", 0, 1, 0,
{ "copy-line", 0, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
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 },
{ "copy-pipe", 0, 2, 0,
{ "copy-pipe", 0, 2, WINDOW_COPY_CMD_CLEAR_ALWAYS,
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 },
{ "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 },
{ "copy-selection", 0, 1, 0,
{ "copy-selection", 0, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
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 },
{ "cursor-down", 0, 0, 1,
{ "cursor-down", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "cursor-left", 0, 0, 1,
{ "cursor-left", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "cursor-up", 0, 0, 1,
{ "cursor-up", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "goto-line", 1, 1, 1,
{ "goto-line", 1, 1, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "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 },
{ "halfpage-up", 0, 0, 1,
{ "halfpage-up", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "history-top", 0, 0, 1,
{ "history-top", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "jump-backward", 1, 1, 1,
{ "jump-backward", 1, 1, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "jump-reverse", 0, 0, 1,
{ "jump-reverse", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "jump-to-forward", 1, 1, 1,
{ "jump-to-forward", 1, 1, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "middle-line", 0, 0, 1,
{ "middle-line", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "next-paragraph", 0, 0, 1,
{ "next-paragraph", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "next-space-end", 0, 0, 1,
{ "next-space-end", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "next-word-end", 0, 0, 1,
{ "next-word-end", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "page-down", 0, 0, 1,
{ "page-down", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "page-up", 0, 0, 1,
{ "page-up", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "previous-paragraph", 0, 0, 1,
{ "previous-paragraph", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "previous-word", 0, 0, 1,
{ "previous-word", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_previous_word },
{ "rectangle-toggle", 0, 0, 0,
{ "rectangle-toggle", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
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 },
{ "scroll-down", 0, 0, 1,
{ "scroll-down", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
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 },
{ "scroll-up", 0, 0, 1,
{ "scroll-up", 0, 0, WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,
window_copy_cmd_scroll_up },
{ "search-again", 0, 0, 0,
{ "search-again", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_search_again },
{ "search-backward", 0, 1, 0,
{ "search-backward", 0, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
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 },
{ "search-backward-incremental", 1, 1, 0,
{ "search-backward-incremental", 1, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
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 },
{ "search-forward-text", 0, 1, 0,
{ "search-forward-text", 0, 1, WINDOW_COPY_CMD_CLEAR_ALWAYS,
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 },
{ "search-reverse", 0, 0, 0,
{ "search-reverse", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_search_reverse },
{ "select-line", 0, 0, 0,
{ "select-line", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_select_line },
{ "select-word", 0, 0, 0,
{ "select-word", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
window_copy_cmd_select_word },
{ "set-mark", 0, 0, 0,
{ "set-mark", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
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 },
{ "stop-selection", 0, 0, 0,
{ "stop-selection", 0, 0, WINDOW_COPY_CMD_CLEAR_ALWAYS,
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 },
};
@ -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_cmd_state cs;
enum window_copy_cmd_action action;
enum window_copy_cmd_clear clear = WINDOW_COPY_CMD_CLEAR_NEVER;
const char *command;
u_int i;
int ismotion = 0, keys;
int keys;
if (args->argc == 0)
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 ||
args->argc - 1 > window_copy_cmd_table[i].maxargs)
break;
ismotion = window_copy_cmd_table[i].ismotion;
clear = window_copy_cmd_table[i].clear;
action = window_copy_cmd_table[i].f (&cs);
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) {
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);
data->searchx = data->searchy = -1;
} else if (data->searchthis != -1) {