| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 | /* Internal declarations for getopt.   Copyright (C) 1989-1994,1996-1999,2001,2003,2004   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   License as published by the Free Software Foundation; either   version 2.1 of the License, or (at your option) any later version.   The GNU C Library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with the GNU C Library; if not, write to the Free   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA.  */#ifndef _GETOPT_INT_H#define _GETOPT_INT_H	1extern int _getopt_internal (int ___argc, char *const *___argv,			     const char *__shortopts,		             const struct option *__longopts, int *__longind,			     int __long_only) attribute_hidden;/* Reentrant versions which can handle parsing multiple argument   vectors at the same time.  *//* For __ordering member */enum {	REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER};/* Data type for reentrant functions.  */struct _getopt_data{  /* These have exactly the same meaning as the corresponding global     variables, except that they are used for the reentrant     versions of getopt.  */  int optind;  int opterr;  char *optarg;  smalluint optopt; /* we store characters here, a byte is enough */  /* Internal members.  */  /* True if the internal members have been initialized.  */  smallint __initialized;  /* Describe how to deal with options that follow non-option ARGV-elements.     If the caller did not specify anything,     the default is REQUIRE_ORDER if the environment variable     POSIXLY_CORRECT is defined, PERMUTE otherwise.     REQUIRE_ORDER means don't recognize them as options;     stop option processing when the first non-option is seen.     This is what Unix does.     This mode of operation is selected by either setting the environment     variable POSIXLY_CORRECT, or using `+' as the first character     of the list of option characters.     PERMUTE is the default.  We permute the contents of ARGV as we     scan, so that eventually all the non-options are at the end.     This allows options to be given in any order, even with programs     that were not written to expect this.     RETURN_IN_ORDER is an option available to programs that were     written to expect options and other ARGV-elements in any order     and that care about the ordering of the two.  We describe each     non-option ARGV-element as if it were the argument of an option     with character code 1.  Using `-' as the first character of the     list of option characters selects this mode of operation.     The special argument `--' forces an end of option-scanning regardless     of the value of `ordering'.  In the case of RETURN_IN_ORDER, only     `--' can cause `getopt' to return -1 with `optind' != ARGC.  */  smallint __ordering;  /* If the POSIXLY_CORRECT environment variable is set.  */  smallint __posixly_correct;  /* The next char to be scanned in the option-element     in which the last option character we returned was found.     This allows us to pick up the scan where we left off.     If this is zero, or a null string, it means resume the scan     by advancing to the next ARGV-element.  */  char *__nextchar;  /* Handle permutation of arguments.  */  /* Describe the part of ARGV that contains non-options that have     been skipped.  `first_nonopt' is the index in ARGV of the first     of them; `last_nonopt' is the index after the last of them.  */  int __first_nonopt;  int __last_nonopt;#if defined _LIBC && defined USE_NONOPTION_FLAGS  int __nonoption_flags_max_len;  int __nonoption_flags_len;# endif};/* The initializer is necessary to set OPTIND and OPTERR to their   default values and to clear the initialization flag.  */#define _GETOPT_DATA_INITIALIZER	{ 1, 1 }#if 0 /* first is static on uClibc, the others not used */extern int _getopt_internal_r (int ___argc, char *const *___argv,			       const char *__shortopts,			       const struct option *__longopts, int *__longind,			       int __long_only, struct _getopt_data *__data);extern int _getopt_long_r (int ___argc, char *const *___argv,			   const char *__shortopts,			   const struct option *__longopts, int *__longind,			   struct _getopt_data *__data);extern int _getopt_long_only_r (int ___argc, char *const *___argv,				const char *__shortopts,				const struct option *__longopts,				int *__longind,				struct _getopt_data *__data);#endif#endif /* getopt_int.h */
 |