summary refs log tree commit diff
path: root/posix
diff options
context:
space:
mode:
Diffstat (limited to 'posix')
-rw-r--r--posix/getopt.c18
-rw-r--r--posix/getopt_init.c2
2 files changed, 14 insertions, 6 deletions
diff --git a/posix/getopt.c b/posix/getopt.c
index 88fde7c809..0a658b684c 100644
--- a/posix/getopt.c
+++ b/posix/getopt.c
@@ -2,9 +2,9 @@
    NOTE: getopt is now part of the C library, so if you don't know what
    "Keep this file name-space clean" means, talk to drepper@gnu.org
    before changing it!
-   Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
-   This file is part of the GNU C Library.
+   Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001
    	Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -253,8 +253,10 @@ static int last_nonopt;
 /* Bash 2.0 gives us an environment variable containing flags
    indicating ARGV elements that should not be considered arguments.  */
 
+#ifdef USE_NONOPTION_FLAGS
 /* Defined in getopt_init.c  */
 extern char *__getopt_nonoption_flags;
+#endif
 
 static int nonoption_flags_max_len;
 static int nonoption_flags_len;
@@ -278,13 +280,17 @@ store_args_and_env (int argc, char *const *argv)
 text_set_element (__libc_subinit, store_args_and_env);
 # endif /* text_set_element */
 
-# define SWAP_FLAGS(ch1, ch2) \
+# ifdef USE_NONOPTION_FLAGS
+#  define SWAP_FLAGS(ch1, ch2) \
   if (nonoption_flags_len > 0)						      \
     {									      \
       char __tmp = __getopt_nonoption_flags[ch1];			      \
       __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2];	      \
       __getopt_nonoption_flags[ch2] = __tmp;				      \
     }
+# else
+#  define SWAP_FLAGS(ch1, ch2)
+# endif
 #else	/* !_LIBC */
 # define SWAP_FLAGS(ch1, ch2)
 #endif	/* _LIBC */
@@ -316,7 +322,7 @@ exchange (argv)
      It leaves the longer segment in the right place overall,
      but it consists of two parts that need to be swapped next.  */
 
-#ifdef _LIBC
+#if defined _LIBC && defined USE_NONOPTION_FLAGS
   /* First make sure the handling of the `__getopt_nonoption_flags'
      string can work normally.  Our top argument must be in the range
      of the string.  */
@@ -420,7 +426,7 @@ _getopt_initialize (argc, argv, optstring)
   else
     ordering = PERMUTE;
 
-#ifdef _LIBC
+#if defined _LIBC && defined USE_NONOPTION_FLAGS
   if (posixly_correct == NULL
       && argc == original_argc && argv == original_argv)
     {
@@ -539,7 +545,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
      Either it does not have option syntax, or there is an environment flag
      from the shell indicating it is not an option.  The later information
      is only used when the used in the GNU libc.  */
-#ifdef _LIBC
+#if defined _LIBC && defined USE_NONOPTION_FLAGS
 # define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0'	      \
 		      || (optind < nonoption_flags_len			      \
 			  && __getopt_nonoption_flags[optind] == '1'))
diff --git a/posix/getopt_init.c b/posix/getopt_init.c
index dd3d433460..d460098c8a 100644
--- a/posix/getopt_init.c
+++ b/posix/getopt_init.c
@@ -18,6 +18,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#ifdef USE_NONOPTION_FLAGS
 /* Attention: this file is *not* necessary when the GNU getopt functions
    are used outside the GNU libc.  Some additional functionality of the
    getopt functions in GNU libc require this additional work.  */
@@ -71,3 +72,4 @@ __getopt_clean_environment (char **env)
 	/* Continue the loop in case the name appears again.  */
       }
 }
+#endif	/* USE_NONOPTION_FLAGS */