mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +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:
		@@ -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
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								tmux.1
									
									
									
									
									
								
							@@ -2672,7 +2672,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 ...
 | 
				
			||||||
@@ -2711,7 +2711,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
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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--)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user