diff options
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/unistd/getopt-susv3.c | 9 | ||||
| -rw-r--r-- | libc/unistd/getopt.c | 10 | 
2 files changed, 14 insertions, 5 deletions
| diff --git a/libc/unistd/getopt-susv3.c b/libc/unistd/getopt-susv3.c index 0d57dce20..32f699a8e 100644 --- a/libc/unistd/getopt-susv3.c +++ b/libc/unistd/getopt-susv3.c @@ -33,6 +33,7 @@  #include <unistd.h>  #include <string.h>  #include <stdio.h> +#include <getopt.h>  libc_hidden_proto(fprintf)  libc_hidden_proto(strchr) @@ -53,10 +54,18 @@ static const char missing[] = "%s: option requires an argument -- %c\n";  static const char illegal[] = "%s: illegal option -- %c\n";  #endif +libc_hidden_proto(opterr)  int opterr = 1; +libc_hidden_data_def(opterr) +libc_hidden_proto(optind)  int optind = 1; +libc_hidden_data_def(optind) +libc_hidden_proto(optopt)  int optopt = 0; +libc_hidden_data_def(optopt) +libc_hidden_proto(optarg)  char *optarg = NULL; +libc_hidden_data_def(optarg)  int getopt(int argc, char * const argv[], const char *optstring)  { diff --git a/libc/unistd/getopt.c b/libc/unistd/getopt.c index 770345a08..640115910 100644 --- a/libc/unistd/getopt.c +++ b/libc/unistd/getopt.c @@ -67,10 +67,6 @@ libc_hidden_proto(strlen)  libc_hidden_proto(strncmp)  libc_hidden_proto(getenv)  libc_hidden_proto(fprintf) -libc_hidden_proto(optarg) -libc_hidden_proto(opterr) -libc_hidden_proto(optind) -libc_hidden_proto(optopt)  libc_hidden_proto(stderr)  extern int _getopt_internal (int argc, char *const *argv, const char *optstring,  @@ -83,6 +79,7 @@ extern int _getopt_internal (int argc, char *const *argv, const char *optstring,     Also, when `ordering' is RETURN_IN_ORDER,     each non-option ARGV-element is returned here.  */ +libc_hidden_proto(optarg)  char *optarg = NULL;  libc_hidden_data_def(optarg) @@ -99,12 +96,14 @@ libc_hidden_data_def(optarg)     how much of ARGV has been scanned so far.  */  /* 1003.2 says this must be 1 before any call.  */ +libc_hidden_proto(optind)  int optind = 1;  libc_hidden_data_def(optind)  /* Callers store zero here to inhibit the error message     for unrecognized options.  */ +libc_hidden_proto(opterr)  int opterr = 1;  libc_hidden_data_def(opterr) @@ -112,6 +111,7 @@ libc_hidden_data_def(opterr)     This must be initialized on some systems to avoid linking in the     system's own getopt implementation.  */ +libc_hidden_proto(optopt)  int optopt = '?';  libc_hidden_data_def(optopt) @@ -327,7 +327,7 @@ static const char *_getopt_initialize (attribute_unused int argc, attribute_unus     If LONG_ONLY is nonzero, '-' as well as '--' can introduce     long-named options.  */ -int attribute_hidden _getopt_internal (int argc, char *const *argv, const char *optstring,  +int _getopt_internal (int argc, char *const *argv, const char *optstring,   	const struct option *longopts, int *longind, int long_only)  {      int print_errors = opterr; | 
