degesch: show help for program options

This commit is contained in:
Přemysl Eric Janouch 2015-05-03 05:58:56 +02:00
parent bef6b42d9e
commit f308b3fb5d
1 changed files with 28 additions and 3 deletions

View File

@ -3886,9 +3886,9 @@ static struct command_handler
g_command_handlers[] = g_command_handlers[] =
{ {
{ "help", handle_command_help, "Show help", { "help", handle_command_help, "Show help",
"[command]" }, "[<command> | <option>]" },
{ "quit", handle_command_quit, "Quit the program", { "quit", handle_command_quit, "Quit the program",
"[message]" }, "[<message>]" },
{ "buffer", handle_command_buffer, "Manage buffers", { "buffer", handle_command_buffer, "Manage buffers",
"list | clear | move | { close [<number> | <name>] } | <number>" }, "list | clear | move | { close [<number> | <name>] } | <number>" },
@ -3964,8 +3964,33 @@ handle_command_help (struct app_context *ctx, char *arguments)
return true; return true;
} }
} }
struct config_item_ *item =
config_item_get (ctx->config.root, command, NULL);
if (item)
{
struct config_schema *schema = item->schema;
buffer_send_status (ctx, ctx->global_buffer, "%s", "");
buffer_send_status (ctx, ctx->global_buffer,
"Option \"%s\":", command);
buffer_send_status (ctx, ctx->global_buffer,
" Description: %s", schema->comment);
buffer_send_status (ctx, ctx->global_buffer,
" Type: %s", config_item_type_name (schema->type));
buffer_send_status (ctx, ctx->global_buffer,
" Default: %s", schema->default_ ? schema->default_ : "null");
struct str tmp;
str_init (&tmp);
config_item_write (item, false, &tmp);
buffer_send_status (ctx, ctx->global_buffer,
" Current value: %s", tmp.str);
str_free (&tmp);
return true;
}
buffer_send_error (ctx, ctx->global_buffer, buffer_send_error (ctx, ctx->global_buffer,
"%s: %s", "No such command", command); "%s: %s", "No such command or option", command);
return true; return true;
} }