- switch (option_type(opt)) {
-#if HELP_GETOPT_LONG_ONLY
- case OPT_SHORT_WITH_OPTIONAL_ARG:
- case OPT_LONG_WITH_OPTIONAL_ARG:
- w = snprintf(optstring, sizeof optstring,
- _(" -%s [%s]"), opt->name,
- pgettext_expr(opt->name, argname));
- break;
- case OPT_SHORT_WITH_MANDATORY_ARG:
- case OPT_LONG_WITH_MANDATORY_ARG:
- w = snprintf(optstring, sizeof optstring,
- _(" -%s %s"), opt->name,
- pgettext_expr(opt->name, argname));
- break;
- case OPT_SHORT_WITHOUT_ARG:
- case OPT_LONG_WITHOUT_ARG:
- w = snprintf(optstring, sizeof optstring,
- _(" -%s"), opt->name);
- break;
-#else
- case OPT_SHORT_WITH_OPTIONAL_ARG:
- w = snprintf(optstring, sizeof optstring,
- _(" -%c, --%s[=%s]"), opt->val, opt->name,
- pgettext_expr(opt->name, argname));
- break;
- case OPT_LONG_WITH_OPTIONAL_ARG:
- w = snprintf(optstring, sizeof optstring,
- _(" --%s[=%s]"), opt->name,
- pgettext_expr(opt->name, argname));
- break;
- case OPT_SHORT_WITH_MANDATORY_ARG:
- w = snprintf(optstring, sizeof optstring,
- _(" -%c, --%s=%s"), opt->val, opt->name,
- pgettext_expr(opt->name, argname));
- break;
- case OPT_LONG_WITH_MANDATORY_ARG:
- w = snprintf(optstring, sizeof optstring,
- _(" --%s=%s"), opt->name,
- pgettext_expr(opt->name, argname));
- break;
- case OPT_SHORT_WITHOUT_ARG:
- w = snprintf(optstring, sizeof optstring,
- _(" -%c, --%s"), opt->val, opt->name);
- break;
- case OPT_LONG_WITHOUT_ARG:
- w = snprintf(optstring, sizeof optstring,
- _(" --%s"), opt->name);
- break;
-#endif
- default:
- assert(0);
+ nls_arg = argname ? pgettext_expr(opt->name, argname) : argname;
+ if (has_short_char(type)) {
+ w = help_do_snprintf(optstring, sizeof optstring,
+ gettext(fmt), opt->val, opt->name,
+ nls_arg);
+ } else {
+ w = help_do_snprintf(optstring, sizeof optstring,
+ gettext(fmt), opt->name,
+ nls_arg);