Merge branch 'obsd-master'

This commit is contained in:
Thomas Adam 2019-11-07 08:01:26 +00:00
commit eb215d3d3f
3 changed files with 35 additions and 8 deletions

View File

@ -33,8 +33,9 @@ const struct cmd_entry cmd_send_keys_entry = {
.name = "send-keys", .name = "send-keys",
.alias = "send", .alias = "send",
.args = { "HlXRMN:t:", 0, -1 }, .args = { "FHlMN:Rt:X", 0, -1 },
.usage = "[-HlXRM] [-N repeat-count] " CMD_TARGET_PANE_USAGE " key ...", .usage = "[-FHlMRX] [-N repeat-count] " CMD_TARGET_PANE_USAGE
" key ...",
.target = { 't', CMD_FIND_PANE, 0 }, .target = { 't', CMD_FIND_PANE, 0 },

6
tmux.1
View File

@ -2677,7 +2677,7 @@ With
only only
.Ar key-table . .Ar key-table .
.It Xo Ic send-keys .It Xo Ic send-keys
.Op Fl HlMRX .Op Fl FHlMRX
.Op Fl N Ar repeat-count .Op Fl N Ar repeat-count
.Op Fl t Ar target-pane .Op Fl t Ar target-pane
.Ar key Ar ... .Ar key Ar ...
@ -2716,7 +2716,9 @@ the
.Sx WINDOWS AND PANES .Sx WINDOWS AND PANES
section. section.
.Fl N .Fl N
specifies a repeat count. specifies a repeat count and
.Fl F
expands formats in arguments where appropriate.
.It Xo Ic send-prefix .It Xo Ic send-prefix
.Op Fl 2 .Op Fl 2
.Op Fl t Ar target-pane .Op Fl t Ar target-pane

View File

@ -1673,14 +1673,26 @@ window_copy_cmd_search_backward(struct window_copy_cmd_state *cs)
struct window_copy_mode_data *data = wme->data; struct window_copy_mode_data *data = wme->data;
u_int np = wme->prefix; u_int np = wme->prefix;
const char *argument; const char *argument;
char *expanded;
if (cs->args->argc == 2) { if (cs->args->argc == 2) {
argument = cs->args->argv[1]; argument = cs->args->argv[1];
if (*argument != '\0') { if (*argument != '\0') {
if (args_has(cs->args, 'F')) {
expanded = format_single(NULL, argument, NULL,
NULL, NULL, wme->wp);
if (*expanded == '\0') {
free(expanded);
return (WINDOW_COPY_CMD_NOTHING);
}
free(data->searchstr);
data->searchstr = expanded;
} else {
free(data->searchstr); free(data->searchstr);
data->searchstr = xstrdup(argument); data->searchstr = xstrdup(argument);
} }
} }
}
if (data->searchstr != NULL) { if (data->searchstr != NULL) {
data->searchtype = WINDOW_COPY_SEARCHUP; data->searchtype = WINDOW_COPY_SEARCHUP;
for (; np != 0; np--) for (; np != 0; np--)
@ -1696,14 +1708,26 @@ window_copy_cmd_search_forward(struct window_copy_cmd_state *cs)
struct window_copy_mode_data *data = wme->data; struct window_copy_mode_data *data = wme->data;
u_int np = wme->prefix; u_int np = wme->prefix;
const char *argument; const char *argument;
char *expanded;
if (cs->args->argc == 2) { if (cs->args->argc == 2) {
argument = cs->args->argv[1]; argument = cs->args->argv[1];
if (*argument != '\0') { if (*argument != '\0') {
if (args_has(cs->args, 'F')) {
expanded = format_single(NULL, argument, NULL,
NULL, NULL, wme->wp);
if (*expanded == '\0') {
free(expanded);
return (WINDOW_COPY_CMD_NOTHING);
}
free(data->searchstr);
data->searchstr = expanded;
} else {
free(data->searchstr); free(data->searchstr);
data->searchstr = xstrdup(argument); data->searchstr = xstrdup(argument);
} }
} }
}
if (data->searchstr != NULL) { if (data->searchstr != NULL) {
data->searchtype = WINDOW_COPY_SEARCHDOWN; data->searchtype = WINDOW_COPY_SEARCHDOWN;
for (; np != 0; np--) for (; np != 0; np--)