Re: getopt compatibility
"James K. Lowden" <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <[email protected]> |
ZIGLIO, Frediano, VF-IT wrote:
> Testing for HP-UX from code is not that
> difficult and optreset variable can be tested quite easily in autoconf,
> something like
>
> static int
> reset_getopt(void)
> {
> #if hpux
> optind = 1;
> #else
> #if HAVE_OPTRESET
> optreset = 1;
> #endif
> optind = 0;
> #endif
> }
www.gnu.org/software/libtool/manual/libc/Getopt.htm
Actually, this is going to be much easier than you think.
1. tsql appears to be wrong: GNU says "The initial value of this variable
is 1." Not zero.
2. NetBSD, HP/UX, and opengroup.org all say the same thing.
I tested getopt(3) on a RHEL system; setting optind to 1 caused it to
parse again from the beginning.
3. I think it's legal in C to declare
extern int optreset;
without ever having:
int optreset;
so there's no need even to test HAVE_OPTRESET:
static int
reset_getopt(void)
{
optreset = 1;
optind = 1;
}
which of course means we don't need the funciton at all. :-)
Regards,
--jkl