Re: getopt compatibility
"James K. Lowden" <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <[email protected]> |
ZIGLIO, Frediano, VF-IT wrote: > > > > ZIGLIO, Frediano, VF-IT wrote: > > > In tsql > > > getopt is restarted to read options. It's currently > > > restarted using GNU getopt way, that is setting optind with 0. > > > > Looking at the code, I think the most portable choice -- and > > probably the > > least work -- is to refactor tsql.c: call getopt(3) in only > > one place, and > > don't reset optind/optreset. > > ehm.... that is only for main argc/argv ?? So ... are you suggesting I should read the code before offering advice? Don't you understand how much harder that is? OK, I see: the "go flags". www.opengroup.org/onlinepubs/ 000095399/functions/getopt.html There is no standard for resetting getopt. Do what you think is easiest or most interesting. I don't see the need -- unless you want to -- to develop an autoconf test for this. (A quick search didn't turn up anything, and "getopt" doesn't appear in the autoconf info file. It seems it's a void that needs filling.) The quickest and least kludgy answer is probably to write a function: static int reset_getopt(); that does what you want, complete with all the #ifs you need. :-/ At least it won't be very big! >>> try to detect HP-UX and reset optind with 1? ISTR we already test HP/UX symbols somewhere? > > I think refactoring is best because otherwise you need an > > autoconf test ... > > with a bunch of #define macros. It would look like > > src/tds/net.c. :-( > > I know.. net.c is ugly but it does a lot of system optimizations and all > contained in a single file... all others use mainly plain C and some > allocation/deallocation function... Yeah, a dancing bear: not graceful, but impressive that it does what it does. Regards, --jkl