Subject: Re: the recent changes to stdlib.h/unistd.h
To: matthew green <mrg@eterna.com.au>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: tech-userlevel
Date: 02/03/1998 10:39:10
On Tue, 03 Feb 1998 21:46:14 +1100 
 matthew green <mrg@eterna.com.au> wrote:

 > i believe that these changes will break a lot of third party software.  perry
 > had to fix a fair amount of our programs, and at least one of these was *not*
 > `just prototypes'.  the definitions of optind and optarg are no longer in
 > <stdlib.h> ...
 > 
 > do we care?  i think we should...

The getopt(3) related things are _supposed_ to be in <unistd.h>, and that
is where they have been documented for quite some time.  Having the
declarations in two places (<stdlib.h> and <unistd.h>) is completely
broken, IMO.

If 3rd party software has any hope of running on e.g. Solaris or other
standards-conforming systems, they're going to be pulling in the correct
headers anyhow.

A fair number of 3rd party programs also manually do: "extern int optind;",
the same way some programs do "extern int errno;", so it's not really an
issue for them.

My take: the documentation has said the Right Thing for some time.  We've
greatly exceeded the "one release" leeway for interface deprecation on
some of these.

Jason R. Thorpe                                       thorpej@nas.nasa.gov
NASA Ames Research Center                            Home: +1 408 866 1912
NAS: M/S 258-5                                       Work: +1 650 604 0935
Moffett Field, CA 94035                             Pager: +1 415 428 6939