]> git.draconx.ca Git - dxcommon.git/blobdiff - src/help.c
help: Perform some suffix merging.
[dxcommon.git] / src / help.c
index c537eefa29f05eacf08c596158d23d6a6ef0ffd5..3886c272ac6e4cd5145b4f17462f66a28ccee9f0 100644 (file)
@@ -78,32 +78,38 @@ enum {
 #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,
-       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 \
-            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,
-       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
 };
 #endif
 
@@ -191,9 +197,9 @@ void help_print_desc(const struct option *opt, const char *s, int i, int w)
                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);