return num;
}
+#define OPT_SPACE_PAD " "
+
/* FIXME: Get all purdy. */
char *opt_usage(const char *argv0, const char *extra)
{
len += strlen("--%s/-%c") + strlen(" <arg>");
if (opt_table[i].longopt)
len += strlen(opt_table[i].longopt);
- if (opt_table[i].desc)
- len += 20 + strlen(opt_table[i].desc);
+ if (opt_table[i].desc) {
+ len += strlen(OPT_SPACE_PAD)
+ + strlen(opt_table[i].desc) + 1;
+ }
+ if (opt_table[i].show) {
+ len += strlen("(default: %s)")
+ + OPT_SHOW_LEN + sizeof("...");
+ }
len += strlen("\n");
}
}
len = sprintf(p, "--%s", opt_table[i].longopt);
if (opt_table[i].flags == OPT_HASARG)
len += sprintf(p + len, " <arg>");
- if (opt_table[i].desc) {
+ if (opt_table[i].desc || opt_table[i].show)
len += sprintf(p + len, "%.*s",
- len < 20 ? 20 - len : 1,
- " ");
+ len < strlen(OPT_SPACE_PAD)
+ ? strlen(OPT_SPACE_PAD) - len : 1,
+ OPT_SPACE_PAD);
+
+ if (opt_table[i].desc)
len += sprintf(p + len, "%s", opt_table[i].desc);
+ if (opt_table[i].show) {
+ char buf[OPT_SHOW_LEN + sizeof("...")];
+ strcpy(buf + OPT_SHOW_LEN, "...");
+ opt_table[i].show(buf, opt_table[i].arg);
+ len += sprintf(p + len, "%s(default: %s)",
+ opt_table[i].desc ? " " : "", buf);
}
p += len;
p += sprintf(p, "\n");