| 3 | 
  | 
   "Keep this file name-space clean" means, talk to drepper@gnu.org | 
| 4 | 
  | 
   before changing it! | 
| 5 | 
  | 
   Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001 | 
| 6 | 
< | 
        Free Software Foundation, Inc. | 
| 6 | 
> | 
   Free Software Foundation, Inc. | 
| 7 | 
  | 
   This file is part of the GNU C Library. | 
| 8 | 
  | 
 | 
| 9 | 
  | 
   The GNU C Library is free software; you can redistribute it and/or | 
| 155 | 
  | 
 | 
| 156 | 
  | 
/* Describe how to deal with options that follow non-option ARGV-elements. | 
| 157 | 
  | 
 | 
| 158 | 
< | 
   If the caller did not specify anything, | 
| 159 | 
< | 
   the default is REQUIRE_ORDER if the environment variable | 
| 160 | 
< | 
   POSIXLY_CORRECT is defined, PERMUTE otherwise. | 
| 158 | 
> | 
If the caller did not specify anything, | 
| 159 | 
> | 
the default is REQUIRE_ORDER if the environment variable | 
| 160 | 
> | 
POSIXLY_CORRECT is defined, PERMUTE otherwise. | 
| 161 | 
  | 
 | 
| 162 | 
< | 
   REQUIRE_ORDER means don't recognize them as options; | 
| 163 | 
< | 
   stop option processing when the first non-option is seen. | 
| 164 | 
< | 
   This is what Unix does. | 
| 165 | 
< | 
   This mode of operation is selected by either setting the environment | 
| 166 | 
< | 
   variable POSIXLY_CORRECT, or using `+' as the first character | 
| 167 | 
< | 
   of the list of option characters. | 
| 162 | 
> | 
REQUIRE_ORDER means don't recognize them as options; | 
| 163 | 
> | 
stop option processing when the first non-option is seen. | 
| 164 | 
> | 
This is what Unix does. | 
| 165 | 
> | 
This mode of operation is selected by either setting the environment | 
| 166 | 
> | 
variable POSIXLY_CORRECT, or using `+' as the first character | 
| 167 | 
> | 
of the list of option characters. | 
| 168 | 
  | 
 | 
| 169 | 
< | 
   PERMUTE is the default.  We permute the contents of ARGV as we scan, | 
| 170 | 
< | 
   so that eventually all the non-options are at the end.  This allows options | 
| 171 | 
< | 
   to be given in any order, even with programs that were not written to | 
| 172 | 
< | 
   expect this. | 
| 169 | 
> | 
PERMUTE is the default.  We permute the contents of ARGV as we scan, | 
| 170 | 
> | 
so that eventually all the non-options are at the end.  This allows options | 
| 171 | 
> | 
to be given in any order, even with programs that were not written to | 
| 172 | 
> | 
expect this. | 
| 173 | 
  | 
 | 
| 174 | 
< | 
   RETURN_IN_ORDER is an option available to programs that were written | 
| 175 | 
< | 
   to expect options and other ARGV-elements in any order and that care about | 
| 176 | 
< | 
   the ordering of the two.  We describe each non-option ARGV-element | 
| 177 | 
< | 
   as if it were the argument of an option with character code 1. | 
| 178 | 
< | 
   Using `-' as the first character of the list of option characters | 
| 179 | 
< | 
   selects this mode of operation. | 
| 174 | 
> | 
RETURN_IN_ORDER is an option available to programs that were written | 
| 175 | 
> | 
to expect options and other ARGV-elements in any order and that care about | 
| 176 | 
> | 
the ordering of the two.  We describe each non-option ARGV-element | 
| 177 | 
> | 
as if it were the argument of an option with character code 1. | 
| 178 | 
> | 
Using `-' as the first character of the list of option characters | 
| 179 | 
> | 
selects this mode of operation. | 
| 180 | 
  | 
 | 
| 181 | 
< | 
   The special argument `--' forces an end of option-scanning regardless | 
| 182 | 
< | 
   of the value of `ordering'.  In the case of RETURN_IN_ORDER, only | 
| 183 | 
< | 
   `--' can cause `getopt' to return -1 with `optind' != ARGC.  */ | 
| 181 | 
> | 
The special argument `--' forces an end of option-scanning regardless | 
| 182 | 
> | 
of the value of `ordering'.  In the case of RETURN_IN_ORDER, only | 
| 183 | 
> | 
`--' can cause `getopt' to return -1 with `optind' != ARGC.  */ | 
| 184 | 
  | 
 | 
| 185 | 
  | 
static enum | 
| 186 | 
< | 
{ | 
| 187 | 
< | 
  REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER | 
| 188 | 
< | 
} ordering; | 
| 186 | 
> | 
  { | 
| 187 | 
> | 
    REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER | 
| 188 | 
> | 
  } ordering; | 
| 189 | 
  | 
 | 
| 190 | 
  | 
/* Value of POSIXLY_CORRECT environment variable.  */ | 
| 191 | 
  | 
static char *posixly_correct; | 
| 268 | 
  | 
# endif | 
| 269 | 
  | 
 | 
| 270 | 
  | 
# ifdef USE_NONOPTION_FLAGS | 
| 271 | 
< | 
#  define SWAP_FLAGS(ch1, ch2) \ | 
| 272 | 
< | 
  if (nonoption_flags_len > 0)                                                \ | 
| 273 | 
< | 
    {                                                                         \ | 
| 274 | 
< | 
      char __tmp = __getopt_nonoption_flags[ch1];                             \ | 
| 275 | 
< | 
      __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2];          \ | 
| 276 | 
< | 
      __getopt_nonoption_flags[ch2] = __tmp;                                  \ | 
| 271 | 
> | 
#  define SWAP_FLAGS(ch1, ch2)                                          \ | 
| 272 | 
> | 
  if (nonoption_flags_len > 0)                                          \ | 
| 273 | 
> | 
    {                                                                   \ | 
| 274 | 
> | 
      char __tmp = __getopt_nonoption_flags[ch1];                       \ | 
| 275 | 
> | 
      __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2];    \ | 
| 276 | 
> | 
      __getopt_nonoption_flags[ch2] = __tmp;                            \ | 
| 277 | 
  | 
    } | 
| 278 | 
  | 
# else | 
| 279 | 
  | 
#  define SWAP_FLAGS(ch1, ch2) | 
| 533 | 
  | 
     from the shell indicating it is not an option.  The later information | 
| 534 | 
  | 
     is only used when the used in the GNU libc.  */ | 
| 535 | 
  | 
#if defined _LIBC && defined USE_NONOPTION_FLAGS | 
| 536 | 
< | 
# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0'       \ | 
| 537 | 
< | 
                      || (optind < nonoption_flags_len                        \ | 
| 536 | 
> | 
# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ | 
| 537 | 
> | 
                      || (optind < nonoption_flags_len                  \ | 
| 538 | 
  | 
                          && __getopt_nonoption_flags[optind] == '1')) | 
| 539 | 
  | 
#else | 
| 540 | 
  | 
# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') | 
| 621 | 
  | 
 | 
| 622 | 
  | 
  /* Check whether the ARGV-element is a long option. | 
| 623 | 
  | 
 | 
| 624 | 
< | 
     If long_only and the ARGV-element has the form "-f", where f is | 
| 625 | 
< | 
     a valid short option, don't consider it an abbreviated form of | 
| 626 | 
< | 
     a long option that starts with f.  Otherwise there would be no | 
| 627 | 
< | 
     way to give the -f short option. | 
| 624 | 
> | 
  If long_only and the ARGV-element has the form "-f", where f is | 
| 625 | 
> | 
  a valid short option, don't consider it an abbreviated form of | 
| 626 | 
> | 
  a long option that starts with f.  Otherwise there would be no | 
| 627 | 
> | 
  way to give the -f short option. | 
| 628 | 
  | 
 | 
| 629 | 
< | 
     On the other hand, if there's a long option "fubar" and | 
| 630 | 
< | 
     the ARGV-element is "-fu", do consider that an abbreviation of | 
| 631 | 
< | 
     the long option, just like "--fu", and not "-f" with arg "u". | 
| 629 | 
> | 
  On the other hand, if there's a long option "fubar" and | 
| 630 | 
> | 
  the ARGV-element is "-fu", do consider that an abbreviation of | 
| 631 | 
> | 
  the long option, just like "--fu", and not "-f" with arg "u". | 
| 632 | 
  | 
 | 
| 633 | 
< | 
     This distinction seems to be the most useful approach.  */ | 
| 633 | 
> | 
  This distinction seems to be the most useful approach.  */ | 
| 634 | 
  | 
 | 
| 635 | 
  | 
  if (longopts != NULL | 
| 636 | 
  | 
      && (argv[optind][1] == '-' | 
| 726 | 
  | 
                { | 
| 727 | 
  | 
                  if (print_errors) | 
| 728 | 
  | 
                    fprintf (stderr, | 
| 729 | 
< | 
                           _("%s: option `%s' requires an argument\n"), | 
| 730 | 
< | 
                           argv[0], argv[optind - 1]); | 
| 729 | 
> | 
                             _("%s: option `%s' requires an argument\n"), | 
| 730 | 
> | 
                             argv[0], argv[optind - 1]); | 
| 731 | 
  | 
                  nextchar += strlen (nextchar); | 
| 732 | 
  | 
                  optopt = pfound->val; | 
| 733 | 
  | 
                  return optstring[0] == ':' ? ':' : '?'; | 
| 884 | 
  | 
                  { | 
| 885 | 
  | 
                    if (print_errors) | 
| 886 | 
  | 
                      fprintf (stderr, _("\ | 
| 887 | 
< | 
%s: option `-W %s' doesn't allow an argument\n"), | 
| 887 | 
> | 
 %s: option `-W %s' doesn't allow an argument\n"), | 
| 888 | 
  | 
                               argv[0], pfound->name); | 
| 889 | 
  | 
 | 
| 890 | 
  | 
                    nextchar += strlen (nextchar); | 
| 915 | 
  | 
              } | 
| 916 | 
  | 
            return pfound->val; | 
| 917 | 
  | 
          } | 
| 918 | 
< | 
          nextchar = NULL; | 
| 919 | 
< | 
          return 'W';   /* Let the application handle it.   */ | 
| 918 | 
> | 
        nextchar = NULL; | 
| 919 | 
> | 
        return 'W';     /* Let the application handle it.   */ | 
| 920 | 
  | 
      } | 
| 921 | 
  | 
    if (temp[1] == ':') | 
| 922 | 
  | 
      { |