Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 30 Sep 2012 19:54:35 -0400
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Subject: Re: better compatibility with bsd getopt()

On Sun, Sep 30, 2012 at 07:53:22PM -0400, Rich Felker wrote:
> On Sun, Sep 30, 2012 at 11:32:44PM +0200, Daniel Cegiełka wrote:
> > 2012/9/30 Rich Felker <dalias@...ifal.cx>:
> > 
> > >> OpenBSD solves gnu reset option in this way:
> > >>
> > >>       /*
> > >>        * XXX Some GNU programs (like cvs) set optind to 0 instead of
> > >>        * XXX using optreset.  Work around this braindamage.
> > >>        */
> > >>       if (optind == 0)
> > >>               optind = optreset = 1;
> > >
> > > Except the BSD way is the braindamaged one because it violates the
> > > namespace. The GNU way simply defines something that was previously
> > > undefined by the standard without affecting the namespace.
> > >
> > > If needed, I think it's possible to support both, with some weak
> > > symbol hacks...
> > 
> > sample solution for gnu/bsd getopt() - of course this patch needs this
> > weak symbol hacks...
> 
> One more question... is optreset supposed to be declared in a header?
> Or is the application responsible for declaring it?

Never mind -- I missed that you had it in the header this time. :)

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.