Change the format strings to change the two-space indent to just one
space. This looks perfectly fine, and for the normal case enables half
the strings to be dropped as they are now suffixes of other strings.
We also move the strings in help_print_desc into the table, as one of
these is a suffix of the other, but out of the box GCC does not fully
perform this optimization.
# incorporate the output directly into help.c
@macro
# incorporate the output directly into help.c
@macro
-&fmt_long_optional_arg \ -%s [%s]
-&fmt_long_mandatory_arg \ -%s %s
-&fmt_long_without_arg \ -%s
+&fmt_long_optional_arg \ -%s [%s]
+&fmt_long_mandatory_arg \ -%s %s
+&fmt_long_without_arg \ -%s
+
+&&fmt_desc %*s%.*s\n
+&&fmt_nl \n
# incorporate the output directly into help.c
@macro
# incorporate the output directly into help.c
@macro
-&fmt_short_optional_arg \ -%c, --%s[=%s]
-&fmt_long_optional_arg \ --%s[=%s]
-&fmt_short_mandatory_arg \ -%c, --%s=%s
-&fmt_long_mandatory_arg \ --%s=%s
-&fmt_short_without_arg \ -%c, --%s
-&fmt_long_without_arg \ --%s
+&fmt_short_optional_arg \ -%c, --%s[=%s]
+&fmt_long_optional_arg \ --%s[=%s]
+&fmt_short_mandatory_arg \ -%c, --%s=%s
+&fmt_long_mandatory_arg \ --%s=%s
+&fmt_short_without_arg \ -%c, --%s
+&fmt_long_without_arg \ --%s
+
+&&fmt_desc %*s%.*s\n
+&&fmt_nl \n
#if HELP_GETOPT_LONG_ONLY
/* String table generated by gen-strtab.awk from help-glo.str */
#define STRTAB_INITIALIZER \
#if HELP_GETOPT_LONG_ONLY
/* String table generated by gen-strtab.awk from help-glo.str */
#define STRTAB_INITIALIZER \
- N_(" -%s [%s]") \
- "\0" N_(" -%s %s") \
- "\0" N_(" -%s") \
+ N_(" -%s [%s]") \
+ "\0" "%*s%.*s\n" \
+ "\0" N_(" -%s %s") \
+ "\0" N_(" -%s") \
""
enum {
fmt_long_optional_arg = 0,
""
enum {
fmt_long_optional_arg = 0,
- fmt_long_mandatory_arg = 11,
- fmt_long_without_arg = 20
+ fmt_long_mandatory_arg = 19,
+ fmt_long_without_arg = 27,
+ fmt_desc = 10,
+ fmt_nl = 17
};
#else
/* String table generated by gen-strtab.awk from help-std.str */
#define STRTAB_INITIALIZER \
};
#else
/* String table generated by gen-strtab.awk from help-std.str */
#define STRTAB_INITIALIZER \
- N_(" -%c, --%s[=%s]") \
- "\0" N_(" -%c, --%s=%s") \
- "\0" N_(" --%s[=%s]") \
- "\0" N_(" -%c, --%s") \
- "\0" N_(" --%s=%s") \
- "\0" N_(" --%s") \
+ STR_L10N_(N_(" --%s[=%s]")) \
+ STR_L10N_(N_(" --%s=%s")) \
+ STR_L10N_(N_(" --%s")) \
+ N_(" -%c, --%s[=%s]") \
+ "\0" N_(" -%c, --%s=%s") \
+ "\0" N_(" -%c, --%s") \
+ "\0" "%*s%.*s\n" \
""
enum {
fmt_short_optional_arg = 0,
""
enum {
fmt_short_optional_arg = 0,
- fmt_long_optional_arg = 32,
- fmt_short_mandatory_arg = 17,
- fmt_long_mandatory_arg = 56,
- fmt_short_without_arg = 44,
- fmt_long_without_arg = 66
+ fmt_long_optional_arg = 5,
+ fmt_short_mandatory_arg = 16,
+ fmt_long_mandatory_arg = 21,
+ fmt_short_without_arg = 30,
+ fmt_long_without_arg = 35,
+ fmt_desc = 41,
+ fmt_nl = 48
s = pgettext_expr(opt->name, s);
do {
s = pgettext_expr(opt->name, s);
do {
- size_t n = strcspn(s, "\n");
+ size_t n = strcspn(s, &optstr.tab[fmt_nl]);
- printf("%*s%.*s\n", n ? i-w : 0, "", (int)n, s);
+ printf(&optstr.tab[fmt_desc], n ? i-w : 0, "", (int)n, s);
s += n + (s[n] != '\0');
w = 0;
} while (*s);
s += n + (s[n] != '\0');
w = 0;
} while (*s);
[--hello-this-is-a-very-long-option 50],
[--not-long 12],
[--flagged -f \&])], [0],
[--hello-this-is-a-very-long-option 50],
[--not-long 12],
[--flagged -f \&])], [0],
-[[ --foo 7
- -b, --bar 11
- --baz=ARG 11
- -B, --baz=ARG 15
- --quux[=ARG] 14
- -q, --quux[=ARG] 18
- --hello-this-is-a-very-long-option
+[[ --foo 6
+ -b, --bar 10
+ --baz=ARG 10
+ -B, --baz=ARG 14
+ --quux[=ARG] 13
+ -q, --quux[=ARG] 17
+ --hello-this-is-a-very-long-option
- --hello-this-is-a-very-long-option 36
- --not-long 12
- --flagged 11
+ --hello-this-is-a-very-long-option 35
+ --not-long 11
+ --flagged 10
[--hello-this-is-a-very-long-option 50],
[--not-long 12],
[--flagged -f \&])], [0],
[--hello-this-is-a-very-long-option 50],
[--not-long 12],
[--flagged -f \&])], [0],
-[[ -foo 6
- -bar 6
- -baz ARG 10
- -baz ARG 10
- -quux [ARG] 13
- -quux [ARG] 13
- -hello-this-is-a-very-long-option
+[[ -foo 5
+ -bar 5
+ -baz ARG 9
+ -baz ARG 9
+ -quux [ARG] 12
+ -quux [ARG] 12
+ -hello-this-is-a-very-long-option
- -hello-this-is-a-very-long-option 35
- -not-long 11
- -flagged 10
+ -hello-this-is-a-very-long-option 34
+ -not-long 10
+ -flagged 9
print zenkaku, hankaku >"args"
print zenkaku, hankaku >"args"
- print " " zenkaku "\t" "8"
- print " " hankaku "\t" "8"
+ print " " zenkaku "\t" "7"
+ print " " hankaku "\t" "7"