- if (opt_table[i].desc) {
- len += sprintf(p + len, "%.*s",
- len < 20 ? 20 - len : 1,
- " ");
- len += sprintf(p + len, "%s", opt_table[i].desc);
+ len += sprintf(p + len, "%.*s",
+ len < strlen(OPT_SPACE_PAD)
+ ? (unsigned)strlen(OPT_SPACE_PAD) - len : 1,
+ OPT_SPACE_PAD);
+
+ 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].u.arg);
+ len += sprintf(p + len, " (default: %s)", buf);