version 1.34, 2016/01/19 15:59:12 |
version 1.35, 2016/06/15 08:54:11 |
|
|
* List key bindings. |
* List key bindings. |
*/ |
*/ |
|
|
enum cmd_retval cmd_list_keys_exec(struct cmd *, struct cmd_q *); |
static enum cmd_retval cmd_list_keys_exec(struct cmd *, struct cmd_q *); |
|
|
enum cmd_retval cmd_list_keys_table(struct cmd *, struct cmd_q *); |
static enum cmd_retval cmd_list_keys_table(struct cmd *, struct cmd_q *); |
enum cmd_retval cmd_list_keys_commands(struct cmd_q *); |
static enum cmd_retval cmd_list_keys_commands(struct cmd *, struct cmd_q *); |
|
|
const struct cmd_entry cmd_list_keys_entry = { |
const struct cmd_entry cmd_list_keys_entry = { |
.name = "list-keys", |
.name = "list-keys", |
|
|
.name = "list-commands", |
.name = "list-commands", |
.alias = "lscm", |
.alias = "lscm", |
|
|
.args = { "", 0, 0 }, |
.args = { "F:", 0, 0 }, |
.usage = "", |
.usage = "[-F format]", |
|
|
.flags = CMD_STARTSERVER, |
.flags = CMD_STARTSERVER, |
.exec = cmd_list_keys_exec |
.exec = cmd_list_keys_exec |
}; |
}; |
|
|
enum cmd_retval |
static enum cmd_retval |
cmd_list_keys_exec(struct cmd *self, struct cmd_q *cmdq) |
cmd_list_keys_exec(struct cmd *self, struct cmd_q *cmdq) |
{ |
{ |
struct args *args = self->args; |
struct args *args = self->args; |
|
|
int repeat, width, tablewidth, keywidth; |
int repeat, width, tablewidth, keywidth; |
|
|
if (self->entry == &cmd_list_commands_entry) |
if (self->entry == &cmd_list_commands_entry) |
return (cmd_list_keys_commands(cmdq)); |
return (cmd_list_keys_commands(self, cmdq)); |
|
|
if (args_has(args, 't')) |
if (args_has(args, 't')) |
return (cmd_list_keys_table(self, cmdq)); |
return (cmd_list_keys_table(self, cmdq)); |
|
|
return (CMD_RETURN_NORMAL); |
return (CMD_RETURN_NORMAL); |
} |
} |
|
|
enum cmd_retval |
static enum cmd_retval |
cmd_list_keys_table(struct cmd *self, struct cmd_q *cmdq) |
cmd_list_keys_table(struct cmd *self, struct cmd_q *cmdq) |
{ |
{ |
struct args *args = self->args; |
struct args *args = self->args; |
|
|
return (CMD_RETURN_NORMAL); |
return (CMD_RETURN_NORMAL); |
} |
} |
|
|
enum cmd_retval |
static enum cmd_retval |
cmd_list_keys_commands(struct cmd_q *cmdq) |
cmd_list_keys_commands(struct cmd *self, struct cmd_q *cmdq) |
{ |
{ |
|
struct args *args = self->args; |
const struct cmd_entry **entryp; |
const struct cmd_entry **entryp; |
const struct cmd_entry *entry; |
const struct cmd_entry *entry; |
|
struct format_tree *ft; |
|
const char *template; |
|
char *line; |
|
|
|
if ((template = args_get(args, 'F')) == NULL) { |
|
template = "#{command_list_name}" |
|
"#{?command_list_alias, (#{command_list_alias}),} " |
|
"#{command_list_usage}"; |
|
} |
|
|
|
ft = format_create(cmdq, 0); |
|
format_defaults(ft, NULL, NULL, NULL, NULL); |
|
|
for (entryp = cmd_table; *entryp != NULL; entryp++) { |
for (entryp = cmd_table; *entryp != NULL; entryp++) { |
entry = *entryp; |
entry = *entryp; |
if (entry->alias == NULL) { |
|
cmdq_print(cmdq, "%s %s", entry->name, entry->usage); |
format_add(ft, "command_list_name", "%s", entry->name); |
continue; |
if (entry->alias != NULL) { |
|
format_add(ft, "command_list_alias", "%s", |
|
entry->alias); |
} |
} |
cmdq_print(cmdq, "%s (%s) %s", entry->name, entry->alias, |
if (entry->alias != NULL) { |
entry->usage); |
format_add(ft, "command_list_usage", "%s", |
|
entry->usage); |
|
} |
|
|
|
line = format_expand(ft, template); |
|
if (*line != '\0') |
|
cmdq_print(cmdq, "%s", line); |
|
free(line); |
} |
} |
|
|
|
format_free(ft); |
return (CMD_RETURN_NORMAL); |
return (CMD_RETURN_NORMAL); |
} |
} |