#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.
++optind;
if (opterr && *ostr != ':')
(void)fprintf(stderr,
- "%s: illegal option -- %c\n", _getprogname(),
- optopt);
+ "%s: illegal option -- %c\n",
+ PROGNAME, optopt);
return (BADCH);
}
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;