# HG changeset patch # User Jim Meyering # Date 774108712 0 # Node ID 1a287047bd80d51bbfc495aea6ea68df71ed33c0 # Parent 761dc74b75b41c4d6e0db0b88d19dafb58c2955a merge with 1.10e diff --git a/lib/getopt.c b/lib/getopt.c --- a/lib/getopt.c +++ b/lib/getopt.c @@ -158,6 +158,9 @@ { REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER } ordering; + +/* Value of POSIXLY_CORRECT environment variable. */ +static char *posixly_correct; #if defined (__GNU_LIBRARY__) || defined (__sgi) /* We want to avoid inclusion of string.h with non-GNU libraries @@ -289,6 +292,8 @@ nextchar = NULL; + posixly_correct = getenv ("POSIXLY_CORRECT"); + /* Determine how to handle the ordering of options and nonoptions. */ if (optstring[0] == '-') @@ -301,7 +306,7 @@ ordering = REQUIRE_ORDER; ++optstring; } - else if (getenv ("POSIXLY_CORRECT") != NULL) + else if (posixly_correct != NULL) ordering = REQUIRE_ORDER; else ordering = PERMUTE; @@ -609,8 +614,11 @@ { if (opterr) { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, "%s: illegal option -- %c\n", argv[0], c); + if (posixly_correct) + /* 1003.2 specifies the format of this message. */ + fprintf (stderr, "%s: illegal option -- %c\n", argv[0], c); + else + fprintf (stderr, "%s: invalid option -- %c\n", argv[0], c); } optopt = c; return '?';