getopt: Add missing POSIX optopt
authorAlan Cox <alan@linux.intel.com>
Tue, 26 Jun 2018 20:25:10 +0000 (21:25 +0100)
committerAlan Cox <alan@linux.intel.com>
Tue, 26 Jun 2018 20:25:10 +0000 (21:25 +0100)
Library/include/getopt.h
Library/include/stdlib.h
Library/libs/getopt.c

index 374acc5..b089346 100644 (file)
@@ -7,6 +7,7 @@
 extern char *optarg;
 extern int opterr;
 extern int optind;
+extern int optopt;
 
 extern int getopt(int __argc, char *__argv[], char *__shortopts);
 
index 4d78fb4..bc94413 100644 (file)
@@ -89,10 +89,7 @@ extern void qsort(void *__base, size_t __num, size_t __size, cmp_func_t __cmp);
 
 #define mb_len(a,b)    strnlen(a,b)
 
-extern int opterr;
-extern int optind;
-extern char *optarg;
-extern int getopt(int __argc, char *__argv[], char *__optstring);
+#include <getopt.h>
 
 extern char *getpass(char *__prompt);
 
index abbfabd..c02ef29 100644 (file)
@@ -18,6 +18,7 @@
 
 int   opterr = 1;              /* error => print message */
 int   optind = 1;              /* next argv[] index */
+int   optopt;
 const char *optarg = NULL;     /* option parameter if any */
 
 static int Err(const char *name, const char *mess, int c)
@@ -30,6 +31,7 @@ static int Err(const char *name, const char *mess, int c)
                     name, mess, c
          );
    }
+   optopt = c;
    return '?';                 /* erroneous-option marker */
 }