X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fgetopt.c;h=ac0d6f3f78d10a96c5e529f1da58bb21d48b2c80;hb=880bff095c4a832c6ca0e899485da94a2fa34758;hp=c7fbc2d8013c5fe63bc51827a67215c402384a5a;hpb=cba9751a5c129f78d162fbe541a2f50ea1753e93;p=gnulib.git diff --git a/lib/getopt.c b/lib/getopt.c index c7fbc2d80..ac0d6f3f7 100644 --- a/lib/getopt.c +++ b/lib/getopt.c @@ -27,14 +27,7 @@ #endif #ifdef HAVE_CONFIG_H -#if defined (emacs) || defined (CONFIG_BROKETS) -/* We use instead of "config.h" so that a compilation - using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h - (which it would do because it found this file in $srcdir). */ #include -#else -#include "config.h" -#endif #endif #ifndef __STDC__ @@ -158,6 +151,9 @@ static enum { 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 +285,8 @@ _getopt_initialize (optstring) nextchar = NULL; + posixly_correct = getenv ("POSIXLY_CORRECT"); + /* Determine how to handle the ordering of options and nonoptions. */ if (optstring[0] == '-') @@ -301,7 +299,7 @@ _getopt_initialize (optstring) ordering = REQUIRE_ORDER; ++optstring; } - else if (getenv ("POSIXLY_CORRECT") != NULL) + else if (posixly_correct != NULL) ordering = REQUIRE_ORDER; else ordering = PERMUTE; @@ -609,8 +607,11 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) { 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 '?';