From 8f405ca9a72d446da26916298dc5bad175ba2671 Mon Sep 17 00:00:00 2001 From: William Casarin Date: Mon, 8 Oct 2018 18:15:44 -0700 Subject: [PATCH] cli: fix human help output for the new jsonrpc help response Now that we're returning all the help data, we need to update the human_help formatter to handle the extra data. Signed-off-by: William Casarin --- cli/lightning-cli.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/cli/lightning-cli.c b/cli/lightning-cli.c index de64a0ea7..d4f371e8b 100644 --- a/cli/lightning-cli.c +++ b/cli/lightning-cli.c @@ -89,22 +89,24 @@ static size_t human_readable(const char *buffer, const jsmntok_t *t, char term) abort(); } -static void human_help(const char *buffer, const jsmntok_t *result) { +static void human_help(const char *buffer, const jsmntok_t *result, bool has_command) { int i; const jsmntok_t * help_array = result + 2; /* the first command object */ const jsmntok_t * curr = help_array + 1; /* iterate through all commands, printing the name and description */ - for (i = 0; isize; i++) { + for (i = 0; i < help_array->size; i++) { curr += 2; printf("%.*s\n", curr->end - curr->start, buffer + curr->start); curr += 2; printf(" %.*s\n\n", curr->end - curr->start, buffer + curr->start); + curr += 2; /* advance to next command */ curr++; } - printf("---\nrun `lightning-cli help ` for more information on a specific command\n"); + if (!has_command) + printf("---\nrun `lightning-cli help ` for more information on a specific command\n"); } enum format { @@ -363,9 +365,12 @@ int main(int argc, char *argv[]) json_tok_len(id), json_tok_contents(resp, id)); if (!error || json_tok_is_null(resp, error)) { + // if we have specific help command if (format == HUMAN) - if (streq(method, "help")) human_help(resp, result); - else human_readable(resp, result, '\n'); + if (streq(method, "help") && command == NULL) + human_help(resp, result, false); + else + human_readable(resp, result, '\n'); else printf("%.*s\n", json_tok_len(result),