On Mon, 2002-04-01 at 00:56, [EMAIL PROTECTED] wrote: > I checked my copy of source which I got via "apt-get source glibc" > with timestamps shown [way] below. Both my header and source files have > references to the 'GNU Lesser General Public License': > > glibc-2.2.5/posix/getopt.c > # The GNU C Library is free software; you can redistribute it and/or > # modify it under the terms of the GNU Lesser General Public > # License as published by the Free Software Foundation; either > # version 2.1 of the License, or (at your option) any later version.
At the time that this topic came up previously, in which we decided the license was debatable, I don't believe glibc's getopt.c nor getopt.h had this text. I just examined my system, and it matches your text. So that presents an easy enough solution :) libiberty's getopt.c (from, say, gcc-3.0.3) still has the GPL text. <snip> > Okay so I've now stumbled on a copy of the ISO draft standard, > dated about the middle of January 1999. Thanks for the link, > I'll keep that in mind if I ever need the 'real thing'. > > I agree 100% const is not part of main in the standard. > > However, I found that > int main(int argc, char **argv, char **envp); > is listed as a 'common extension' it appears that the ISO rule is > extensions which can not cause a valid ISO C program to break when > compiled in that environment are allowed by the standard. (In > my opinion since main with envp isn't defined by the standard the > programs that use that form of main are not ISO C programs even through > every other line may be ISO C ;) Absolutely. In fact, this is how the language lawyers on comp.lang.c, and the standard's developers in comp.std.c view this. The fact that this is a common extension does not mean that it won't cause a valid ISO C program to break. Because that version of main() doesn't match the allowed forms by the standard, it requires a diagnostic message in conforming implementations, and if the program compiles, the behavior is undefined. Note: since you're reading from the C9x draft... C99 adds extra verbage allowing arbitrary "implementation-defined" versions of main(); basically, the impact is that a conformant compiler is now allowed to accept those without a warning, and the behavior is no longer undefined (its implementation-defined). However, there is only one C99-conforming compiler in existance at the moment, and chances are very good you're not using it (it's not gcc - gcc still seems to be depressingly distant from a conformant C99 implementation). <snip> Micah _______________________________________________ vox-tech mailing list [EMAIL PROTECTED] http://lists.lugod.org/mailman/listinfo/vox-tech
