diff options
author | nicm <nicm> | 2021-08-27 17:25:55 +0000 |
---|---|---|
committer | nicm <nicm> | 2021-08-27 17:25:55 +0000 |
commit | daec63e5e6eb3390d53f4bf7f8a327df77e46c95 (patch) | |
tree | cf78624cb0b4a80a6eeb8e29b368ea4f9beb5610 /cmd-choose-tree.c | |
parent | fd756a150b43d319d08ac4117f34edef9e0438c4 (diff) | |
download | rtmux-daec63e5e6eb3390d53f4bf7f8a327df77e46c95.tar.gz rtmux-daec63e5e6eb3390d53f4bf7f8a327df77e46c95.tar.bz2 rtmux-daec63e5e6eb3390d53f4bf7f8a327df77e46c95.zip |
Replace %% in command lists (by copying them) for template arguments ,
this means they can be used with {} as well. Also make argument
processing from an existing vector preserve commands. GitHub issue 2858.
Diffstat (limited to 'cmd-choose-tree.c')
-rw-r--r-- | cmd-choose-tree.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/cmd-choose-tree.c b/cmd-choose-tree.c index 9258f366..7aa1d217 100644 --- a/cmd-choose-tree.c +++ b/cmd-choose-tree.c @@ -24,13 +24,16 @@ * Enter a mode. */ -static enum cmd_retval cmd_choose_tree_exec(struct cmd *, struct cmdq_item *); +static enum args_parse_type cmd_choose_tree_args_parse(struct args *args, + u_int idx, char **cause); +static enum cmd_retval cmd_choose_tree_exec(struct cmd *, + struct cmdq_item *); const struct cmd_entry cmd_choose_tree_entry = { .name = "choose-tree", .alias = NULL, - .args = { "F:f:GK:NO:rst:wZ", 0, 1, NULL }, + .args = { "F:f:GK:NO:rst:wZ", 0, 1, cmd_choose_tree_args_parse }, .usage = "[-GNrswZ] [-F format] [-f filter] [-K key-format] " "[-O sort-order] " CMD_TARGET_PANE_USAGE " [template]", @@ -44,7 +47,7 @@ const struct cmd_entry cmd_choose_client_entry = { .name = "choose-client", .alias = NULL, - .args = { "F:f:K:NO:rt:Z", 0, 1, NULL }, + .args = { "F:f:K:NO:rt:Z", 0, 1, cmd_choose_tree_args_parse }, .usage = "[-NrZ] [-F format] [-f filter] [-K key-format] " "[-O sort-order] " CMD_TARGET_PANE_USAGE " [template]", @@ -58,7 +61,7 @@ const struct cmd_entry cmd_choose_buffer_entry = { .name = "choose-buffer", .alias = NULL, - .args = { "F:f:K:NO:rt:Z", 0, 1, NULL }, + .args = { "F:f:K:NO:rt:Z", 0, 1, cmd_choose_tree_args_parse }, .usage = "[-NrZ] [-F format] [-f filter] [-K key-format] " "[-O sort-order] " CMD_TARGET_PANE_USAGE " [template]", @@ -81,6 +84,13 @@ const struct cmd_entry cmd_customize_mode_entry = { .exec = cmd_choose_tree_exec }; +static enum args_parse_type +cmd_choose_tree_args_parse(__unused struct args *args, __unused u_int idx, + __unused char **cause) +{ + return (ARGS_PARSE_COMMANDS_OR_STRING); +} + static enum cmd_retval cmd_choose_tree_exec(struct cmd *self, struct cmdq_item *item) { |