X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fopt%2Fusage.c;fp=ccan%2Fopt%2Fusage.c;h=568e4661d8098bf1fd009a169867b0d369339fb2;hp=e96298382c3d018f16b55281115ceace40164939;hb=3beff01ae4dfb8b843bf5e78905fb8bc434cb270;hpb=995d2aff223e70ef5c60ac0416645b27ac84d5ff diff --git a/ccan/opt/usage.c b/ccan/opt/usage.c index e9629838..568e4661 100644 --- a/ccan/opt/usage.c +++ b/ccan/opt/usage.c @@ -151,20 +151,20 @@ static char *add_desc(char *base, size_t *len, size_t *max, if (opt->show) { char buf[OPT_SHOW_LEN + sizeof("...")]; strcpy(buf + OPT_SHOW_LEN, "..."); - opt->show(buf, OPT_SHOW_LEN, opt->u.arg); + if (opt->show(buf, OPT_SHOW_LEN, opt->u.arg)) { + /* If it doesn't fit on this line, indent. */ + if (off + strlen(" (default: ") + strlen(buf) + strlen(")") + > width) { + base = add_indent(base, len, max, indent); + } else { + /* Remove \n. */ + (*len)--; + } - /* If it doesn't fit on this line, indent. */ - if (off + strlen(" (default: ") + strlen(buf) + strlen(")") - > width) { - base = add_indent(base, len, max, indent); - } else { - /* Remove \n. */ - (*len)--; + base = add_str(base, len, max, " (default: "); + base = add_str(base, len, max, buf); + base = add_str(base, len, max, ")\n"); } - - base = add_str(base, len, max, " (default: "); - base = add_str(base, len, max, buf); - base = add_str(base, len, max, ")\n"); } return base; }