mirror of
https://github.com/tmux/tmux.git
synced 2024-12-04 19:58:48 +00:00
Add -F flag to send-keys to expand formats in search-backward and
forward copy mode commands, this makes it easier to use the cursor_word and cursor_line formats. From Anindya Mukherjee in GitHub issue 1964.
This commit is contained in:
parent
bad95db878
commit
c225262e13
@ -33,8 +33,9 @@ const struct cmd_entry cmd_send_keys_entry = {
|
||||
.name = "send-keys",
|
||||
.alias = "send",
|
||||
|
||||
.args = { "HlXRMN:t:", 0, -1 },
|
||||
.usage = "[-HlXRM] [-N repeat-count] " CMD_TARGET_PANE_USAGE " key ...",
|
||||
.args = { "FHlMN:Rt:X", 0, -1 },
|
||||
.usage = "[-FHlMRX] [-N repeat-count] " CMD_TARGET_PANE_USAGE
|
||||
" key ...",
|
||||
|
||||
.target = { 't', CMD_FIND_PANE, 0 },
|
||||
|
||||
|
6
tmux.1
6
tmux.1
@ -2672,7 +2672,7 @@ With
|
||||
only
|
||||
.Ar key-table .
|
||||
.It Xo Ic send-keys
|
||||
.Op Fl HlMRX
|
||||
.Op Fl FHlMRX
|
||||
.Op Fl N Ar repeat-count
|
||||
.Op Fl t Ar target-pane
|
||||
.Ar key Ar ...
|
||||
@ -2711,7 +2711,9 @@ the
|
||||
.Sx WINDOWS AND PANES
|
||||
section.
|
||||
.Fl N
|
||||
specifies a repeat count.
|
||||
specifies a repeat count and
|
||||
.Fl F
|
||||
expands formats in arguments where appropriate.
|
||||
.It Xo Ic send-prefix
|
||||
.Op Fl 2
|
||||
.Op Fl t Ar target-pane
|
||||
|
@ -1673,12 +1673,24 @@ window_copy_cmd_search_backward(struct window_copy_cmd_state *cs)
|
||||
struct window_copy_mode_data *data = wme->data;
|
||||
u_int np = wme->prefix;
|
||||
const char *argument;
|
||||
char *expanded;
|
||||
|
||||
if (cs->args->argc == 2) {
|
||||
argument = cs->args->argv[1];
|
||||
if (*argument != '\0') {
|
||||
free(data->searchstr);
|
||||
data->searchstr = xstrdup(argument);
|
||||
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);
|
||||
data->searchstr = xstrdup(argument);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (data->searchstr != NULL) {
|
||||
@ -1696,12 +1708,24 @@ window_copy_cmd_search_forward(struct window_copy_cmd_state *cs)
|
||||
struct window_copy_mode_data *data = wme->data;
|
||||
u_int np = wme->prefix;
|
||||
const char *argument;
|
||||
char *expanded;
|
||||
|
||||
if (cs->args->argc == 2) {
|
||||
argument = cs->args->argv[1];
|
||||
if (*argument != '\0') {
|
||||
free(data->searchstr);
|
||||
data->searchstr = xstrdup(argument);
|
||||
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);
|
||||
data->searchstr = xstrdup(argument);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (data->searchstr != NULL) {
|
||||
|
Loading…
Reference in New Issue
Block a user