Paul Knowles wrote on 2005-12-15: > ******* Problem #1 > struct argp{ > ... > /* A vector of argp_children structures, terminated by a member with a 0 > argp field, pointing to child argps should be parsed with this one. Any > conflicts are resolved in favor of this argp, or early argps in the > CHILDREN list. This field is useful if you use libraries that supply > their own argp structure, which you want to use in conjunction with your > own. */ > __const struct argp_child *children; > ... > } > > In my opinion, much better would be > struct argp_child **children; > for the reason that multiparser structures can then have an easy to > use, scalable, interface. By adding a function to add children, much > of the complexity of the multiparser setup will go away.
Sorry, I don't understand. The argp facility is meant for a set of options known when the program starts. (Otherwise how do you manage to write a manual page for the program?) Do you mean to add options dynamically? > ******* Problem #2 > > Word wrapping should look at the COLUMNS environment variable to > determine word wrap unless rmargin=N was explicitly set by the user in > ARGP_HELP_FMT. It is silly that help text gets garbled and squashed > up into 79 columns on my 110 column xterms and that the resizing is > not automagic. I agree. But you can get the desired behaviour yourself: Put the value of getenv("COLUMNS") into ARGP_HELP_FMT. Roughly like this: const char *columns = getenv ("COLUMNS"); if (columns != NULL && columns[0] != '\0') { int icolumns = atoi (columns); if (icolumns >= 70) /* argp_help doesn't work well when there are too few columns */ { const char *old_fmt = getenv ("ARGP_HELP_FMT"); char *new_fmt = concatenate ("rmargin=", atoi (icolumns), old_fmt != NULL && old_fmt[0] != '\0' ? concatenate (",", old_fmt) : ""); setenv ("ARGP_HELP_FMT", new_fmt, 1); } } > ******* Problem 3; > I believe I have also stumbled on an output formatting problem, but > the code to duplicate a test case of this is not yet ready. Can you provide the test case, please? Bruno _______________________________________________ bug-gnulib mailing list bug-gnulib@gnu.org http://lists.gnu.org/mailman/listinfo/bug-gnulib