summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@cvs.openbsd.org>2020-04-05 08:40:32 +0000
committerNicholas Marriott <nicm@cvs.openbsd.org>2020-04-05 08:40:32 +0000
commit12c2b4ec5cf1ede574660f81565ad2764ed0c1cc (patch)
tree87b586c0cf676cf2a5486049d5d294cef0a7d737 /usr.bin
parent9c96720d515800fd269c991cf9c24741f941e95c (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.c16
-rw-r--r--usr.bin/tmux/tmux.111
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.