|
From: | Lorenzo Bettini |
Subject: | Re: [help-gengetopt] make cmd_line_list and cmd_line_list_tmp static? |
Date: | Sun, 14 May 2006 15:31:06 +0200 |
User-agent: | Thunderbird 1.5.0.2 (X11/20060501) |
Andre Noll wrote:
On 12:41, Lorenzo Bettini wrote:that would be the other possibility I was thinking of... but I'm quite scared of writing another version of getopt with the same semantics... would you be interested in that?on what happend during the first call. How about coding up an own version of getopt() with sane semantics?Something like the attached? This is glibc's getopt() and getopt_long() in a single file, with its monster getopt_internal_r() function split up into three smaller functions, and some glibc cruft removed.
Hiso I used the file you sent me and modified it so that the initialization takes place when optind is 1 (and not 0).
I also modified the file and renamed the getopt stuffs with the prefix custom_; I then made everything static and include the contents of this file in the generated C files (in case conf or string parsers are generated). The customized version of getopt_long is then used by conf and string parsers and everything seems to work now and also valgrind does not find anything evil.
I also tested these features with the test_multiple_parsers test program that uses three parsers (and calls the string parsers many times).
you can find this new version here http://rap.dsi.unifi.it/~bettini/gengetopt-2.17rc.tar.gzthis fix makes it work, but I'd still hear from the libc people in order to understand whether their getopt implementation was intended like that.
I hope to hear from you soon! thanks again Lorenzo -- +-----------------------------------------------------+ | Lorenzo Bettini ICQ# lbetto, 16080134 | | PhD in Computer Science | | Dip. Sistemi e Informatica, Univ. di Firenze | | Florence - Italy (GNU/Linux User # 158233) | | Home Page : http://www.lorenzobettini.it | | http://music.dsi.unifi.it XKlaim language | | http://www.purplesucker.com Deep Purple Cover Band | | http://www.gnu.org/software/src-highlite | | http://www.gnu.org/software/gengetopt | | http://www.lorenzobettini.it/software/gengen | | http://www.lorenzobettini.it/software/doublecpp | +-----------------------------------------------------+
[Prev in Thread] | Current Thread | [Next in Thread] |