diff options
author | Nicholas Marriott <nicm@cvs.openbsd.org> | 2020-04-05 08:40:32 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@cvs.openbsd.org> | 2020-04-05 08:40:32 +0000 |
commit | 12c2b4ec5cf1ede574660f81565ad2764ed0c1cc (patch) | |
tree | 87b586c0cf676cf2a5486049d5d294cef0a7d737 /usr.bin | |
parent | 9c96720d515800fd269c991cf9c24741f941e95c (diff) |
Add an argument to list-commands to show only a single command.
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/tmux/cmd-list-keys.c | 16 | ||||
-rw-r--r-- | usr.bin/tmux/tmux.1 | 11 |
2 files changed, 19 insertions, 8 deletions
diff --git a/usr.bin/tmux/cmd-list-keys.c b/usr.bin/tmux/cmd-list-keys.c index 8af03f38587..1b083c91dcb 100644 --- a/usr.bin/tmux/cmd-list-keys.c +++ b/usr.bin/tmux/cmd-list-keys.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-list-keys.c,v 1.51 2020/02/15 15:08:08 nicm Exp $ */ +/* $OpenBSD: cmd-list-keys.c,v 1.52 2020/04/05 08:40:31 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com> @@ -47,8 +47,8 @@ const struct cmd_entry cmd_list_commands_entry = { .name = "list-commands", .alias = "lscm", - .args = { "F:", 0, 0 }, - .usage = "[-F format]", + .args = { "F:", 0, 1 }, + .usage = "[-F format] [command]", .flags = CMD_STARTSERVER|CMD_AFTERHOOK, .exec = cmd_list_keys_exec @@ -317,9 +317,12 @@ cmd_list_keys_commands(struct cmd *self, struct cmdq_item *item) const struct cmd_entry **entryp; const struct cmd_entry *entry; struct format_tree *ft; - const char *template, *s; + const char *template, *s, *command = NULL; char *line; + if (args->argc != 0) + command = args->argv[0]; + if ((template = args_get(args, 'F')) == NULL) { template = "#{command_list_name}" "#{?command_list_alias, (#{command_list_alias}),} " @@ -331,6 +334,11 @@ cmd_list_keys_commands(struct cmd *self, struct cmdq_item *item) for (entryp = cmd_table; *entryp != NULL; entryp++) { entry = *entryp; + if (command != NULL && + (strcmp(entry->name, command) != 0 && + (entry->alias == NULL || + strcmp(entry->alias, command) != 0))) + continue; format_add(ft, "command_list_name", "%s", entry->name); if (entry->alias != NULL) diff --git a/usr.bin/tmux/tmux.1 b/usr.bin/tmux/tmux.1 index 6e03f7510f6..32bb7bf15ab 100644 --- a/usr.bin/tmux/tmux.1 +++ b/usr.bin/tmux/tmux.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: tmux.1,v 1.730 2020/04/02 05:35:15 nicm Exp $ +.\" $OpenBSD: tmux.1,v 1.731 2020/04/05 08:40:31 nicm Exp $ .\" .\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com> .\" @@ -14,7 +14,7 @@ .\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: April 2 2020 $ +.Dd $Mdocdate: April 5 2020 $ .Dt TMUX 1 .Os .Sh NAME @@ -1048,9 +1048,12 @@ If is specified, list only clients connected to that session. .It Xo Ic list-commands .Op Fl F Ar format +.Op Ar command .Xc .D1 (alias: Ic lscm ) -List the syntax of all commands supported by +List the syntax of +.Ar command +or - if omitted - of all commands supported by .Nm . .It Ic list-sessions Op Fl F Ar format .D1 (alias: Ic ls ) @@ -2731,7 +2734,7 @@ command. .It Xo Ic list-keys .Op Fl 1aN .Op Fl P Ar prefix-string Fl T Ar key-table -.Op key +.Op Ar key .Xc .D1 (alias: Ic lsk ) List key bindings. |