fputs ("Options:\n", stderr);
for (cs = switches; cs->c != '\0'; ++cs)
{
- char buf[1024], arg[50], *p;
+ char buf[1024], shortarg[50], longarg[50], *p;
if (cs->description[0] == '-')
continue;
switch (long_options[cs - switches].has_arg)
{
case no_argument:
- arg[0] = '\0';
+ shortarg[0] = longarg[0] = '\0';
break;
case required_argument:
- sprintf (arg, " %s", cs->argdesc);
+ sprintf (longarg, "=%s", cs->argdesc);
+ sprintf (shortarg, " %s", cs->argdesc);
break;
case optional_argument:
- sprintf (arg, " [%s]", cs->argdesc);
+ sprintf (longarg, "[=%s]", cs->argdesc);
+ sprintf (shortarg, " [%s]", cs->argdesc);
break;
}
if (isalnum (cs->c))
{
- sprintf (buf, " -%c%s", cs->c, arg);
+ sprintf (buf, " -%c%s", cs->c, shortarg);
p += strlen (p);
}
if (cs->long_name != 0)
unsigned int i;
sprintf (p, "%s--%s%s",
!isalnum (cs->c) ? " " : ", ",
- cs->long_name, arg);
+ cs->long_name, longarg);
p += strlen (p);
for (i = 0; i < (sizeof (long_option_aliases) /
sizeof (long_option_aliases[0]));
++i)
if (long_option_aliases[i].val == cs->c)
{
- sprintf (p, ", --%s%s", long_option_aliases[i].name, arg);
+ sprintf (p, ", --%s%s",
+ long_option_aliases[i].name, longarg);
p += strlen (p);
}
}
/* This is another switch that does the same
one as the one we are processing. We want
to list them all together on one line. */
- sprintf (p, ", -%c%s", ncs->c, arg);
+ sprintf (p, ", -%c%s", ncs->c, shortarg);
p += strlen (p);
if (ncs->long_name != 0)
{
- sprintf (p, ", --%s%s", ncs->long_name, arg);
+ sprintf (p, ", --%s%s", ncs->long_name, longarg);
p += strlen (p);
}
}