unsigned int i, num, len;
char *ret, *p;
+ if (!extra) {
+ extra = "";
+ for (i = 0; i < opt_count; i++) {
+ if (opt_table[i].cb == (void *)opt_usage_and_exit
+ && opt_table[i].arg) {
+ extra = opt_table[i].arg;
+ break;
+ }
+ }
+ }
+
/* An overestimate of our length. */
len = strlen("Usage: %s ") + strlen(argv0)
+ strlen("[-%.*s]") + opt_num_short + 1
len += sprintf(p + len, " <arg>");
len += sprintf(p + len, "%.*s",
len < strlen(OPT_SPACE_PAD)
- ? strlen(OPT_SPACE_PAD) - len : 1,
+ ? (unsigned)strlen(OPT_SPACE_PAD) - len : 1,
OPT_SPACE_PAD);
len += sprintf(p + len, "%s", opt_table[i].desc);