Re: gengetopt: initialization of args_info_help[]
Lorenzo Bettini <[email protected]> Tue, 16 Dec 2008 12:49:02 +0100
| Newsgroups | gmane.comp.gnu.gengetopt.general |
|---|---|
| Message-ID | <[email protected]> |
Andre Noll wrote: > On 09:30, Lorenzo Bettini wrote: >>> So for N parsers, I have to allocate N args_info structures and call >>> N init functions even in the case I just want to print the short help. >>> Is this behaviour intended? >>> >> I never thought about such a situation actually; I think that that init >> help function might be made public and callable from outside > > Yes, that would be easiest, one just has to remove the static > keyword in the .c file and add the function prototype to the .h file. > > Alternativly one could change the cmdline_parser_init function so that > it just calls init_help() if called with a NULL pointer. Currently, > such a usage would lead to a segfault. > mh... probably the first alternative has a cleaner semantics >>> An alternative would be to initialize also the short help by using >>> string literals, just like the detailed help. The duplicated strings >>> would not increase code size because the compiler should be smart >>> enough to put identical strings into memory only once. >> please, do not ask for that ;-) ;-) >> this behavior was requested by other users and it was quite a nightmare >> to implement it, so I wouldn't want to go back ;-) > > OK, so I won't argue for this alternative any more :) But out of > curiosity, what were the problems in inplementing it this way? actually, I don't remember all the details now, but the problem was in the generation of code and keeping tracking of all kinds of options and performing the right assignments... cheers Lorenzo -- Lorenzo Bettini, PhD in Computer Science, DI, Univ. Torino ICQ# lbetto, 16080134 (GNU/Linux User # 158233) HOME: http://www.lorenzobettini.it MUSIC: http://www.purplesucker.com http://www.myspace.com/supertrouperabba BLOGS: http://tronprog.blogspot.com http://longlivemusic.blogspot.com http://www.gnu.org/software/src-highlite http://www.gnu.org/software/gengetopt http://www.gnu.org/software/gengen http://doublecpp.sourceforge.net