Here's a patch for a cosmetic oddity in the help texts.
(And yeah, seeing a popt-1.17 tag would be cool, too.)
input poptOption array:
{NULL, 'A', POPT_ARG_STRING, &a, 0, "A", "GUID"},
{NULL, 'C', POPT_ARG_STRING, &c, 0, "C"},
$ ./myapp -?
-A=X GUID A
-C STRING C
$ ./myapp --usage
Usage: myapp [-A=GUID] [-C=STRING]
'=' is generally not used with short options. Drop it.
---
popthelp.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Index: popt/popthelp.c
===================================================================
--- popt.orig/popthelp.c
+++ popt/popthelp.c
@@ -460,7 +460,8 @@ assert(t); /* XXX can't happen */
/* XXX argDescrip[0] determines "--foo=bar" or "--foo bar". */
if (!strchr(" =(", argDescrip[0]))
*le++ = ((poptArgType(opt) == POPT_ARG_MAINCALL) ? ' ' :
- (poptArgType(opt) == POPT_ARG_ARGV) ? ' ' : '=');
+ (poptArgType(opt) == POPT_ARG_ARGV) ? ' ' :
+ opt->longName == NULL ? ' ' : '=');
le = stpcpy(leo = le, argDescrip);
/* Adjust for (possible) wide characters. */
@@ -754,7 +755,7 @@ static size_t singleOptionUsage(FILE * f
if (argDescrip) {
/* XXX argDescrip[0] determines "--foo=bar" or "--foo bar". */
- if (!strchr(" =(", argDescrip[0])) fprintf(fp, "=");
+ if (!strchr(" =(", argDescrip[0])) fputc(opt->longName == NULL ? ' ' : '=', fp);
fprintf(fp, "%s", argDescrip);
}
fprintf(fp, "]");