set optopt in getopt_long
authorRich Felker <dalias@aerifal.cx>
Sun, 21 Dec 2014 00:49:19 +0000 (19:49 -0500)
committerRich Felker <dalias@aerifal.cx>
Sun, 21 Dec 2014 00:49:19 +0000 (19:49 -0500)
this is undocumented but possibly expected behavior of GNU
getopt_long, and useful when error message printing has been
suppressed.

src/misc/getopt_long.c

index 45992f8..e5a4a75 100644 (file)
@@ -76,6 +76,7 @@ static int __getopt_long_core(int argc, char *const *argv, const char *optstring
                if (cnt==1) {
                        i = match;
                        optind++;
+                       optopt = longopts[i].val;
                        if (*opt == '=') {
                                if (!longopts[i].has_arg) {
                                        if (optstring[0] == ':' || !opterr)