.
[gnulib.git] / lib / getopt.c
index c7fbc2d..ac0d6f3 100644 (file)
 #endif
 
 #ifdef HAVE_CONFIG_H
-#if defined (emacs) || defined (CONFIG_BROKETS)
-/* We use <config.h> 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 <config.h>
-#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;
 \f
 #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 '?';