[freetds] getopt compatibility

ZIGLIO, Frediano, VF-IT Frediano.Ziglio at vodafone.com
Wed May 28 04:53:28 EDT 2008


> 
> 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.  :-)
> 

I think this patch summarize the thread. It works on HP-UX 11.11 and
Linux glibc 2.5

freddy77
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vedi.diff.gz
Type: application/x-gzip
Size: 1652 bytes
Desc: vedi.diff.gz
Url : http://lists.ibiblio.org/pipermail/freetds/attachments/20080528/265f06d1/attachment.gz 


More information about the FreeTDS mailing list