Loading...
--- /dev/null
+++ Libc/Libc-763.12/stdlib/FreeBSD/getopt.c.patch
@@ -0,0 +1,59 @@
+--- getopt.c.bsdnew 2009-11-13 14:11:48.000000000 -0800
++++ getopt.c 2009-11-13 14:11:48.000000000 -0800
+@@ -44,16 +44,24 @@ __FBSDID("$FreeBSD: src/lib/libc/stdlib/
+
+ #include "libc_private.h"
+
++#ifndef BUILDING_VARIANT
+ int opterr = 1, /* if error message should be printed */
+ optind = 1, /* index into parent argv vector */
+ optopt, /* character checked for validity */
+ optreset; /* reset getopt */
+ char *optarg; /* argument associated with option */
++#endif /* !BUILDING_VARIANT */
+
+ #define BADCH (int)'?'
+ #define BADARG (int)':'
+ #define EMSG ""
+
++#if __DARWIN_UNIX03
++#define PROGNAME nargv[0]
++#else
++#define PROGNAME _getprogname()
++#endif
++
+ /*
+ * getopt --
+ * Parse argc/argv argument vector.
+@@ -99,8 +107,8 @@ getopt(nargc, nargv, ostr)
+ ++optind;
+ if (opterr && *ostr != ':')
+ (void)fprintf(stderr,
+- "%s: illegal option -- %c\n", _getprogname(),
+- optopt);
++ "%s: illegal option -- %c\n",
++ PROGNAME, optopt);
+ return (BADCH);
+ }
+
+@@ -119,13 +127,19 @@ getopt(nargc, nargv, ostr)
+ optarg = nargv[optind];
+ else {
+ /* option-argument absent */
++#if __DARWIN_UNIX03
++ /* Yes, the standard will put optind past the last
++ argument */
++ ++optind;
++ optarg = NULL;
++#endif /* __DARWIN_UNIX03 */
+ place = EMSG;
+ if (*ostr == ':')
+ return (BADARG);
+ if (opterr)
+ (void)fprintf(stderr,
+ "%s: option requires an argument -- %c\n",
+- _getprogname(), optopt);
++ PROGNAME, optopt);
+ return (BADCH);
+ }
+ place = EMSG;