[Bug libc/11039] getopt mishandles optstring of "+:"

ebb9 at byu dot net sourceware-bugzilla@sourceware.org
Wed Dec 2 22:17:00 GMT 2009


------- Additional Comments From ebb9 at byu dot net  2009-12-02 22:17 -------
Another related problem, which is also fixed by the previously posted patch:

$ cat foo.c
#include <unistd.h>
#include <stdio.h>
int
main (int argc, char **argv)
{
  int i, c;
  for (i = 0; i <= 1; i++)
    {
      optind = i;
      c = getopt (argc, argv, "+a");
      if (c == -1)
        printf ("got -1, optind %d\n", optind);
      else
        printf ("got %c, optind %d\n", c, optind);
    }
  return 0;
}
$ ./foo -+
foo: invalid option -- '+'
got ?, optind 2
got +, optind 2

Expected behavior is for the error message to occur twice on stderr, with both
passes returning '?'.


-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=11039

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the Glibc-bugs mailing list