/[LeafOK_CVS]/pvpgn-1.7.4/src/compat/getopt.h
ViewVC logotype

Annotation of /pvpgn-1.7.4/src/compat/getopt.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (vendor branch)
Tue Jun 6 03:41:38 2006 UTC (19 years, 9 months ago) by sysadm
Branch: GNU, MAIN
CVS Tags: arelease, HEAD
Changes since 1.1: +0 -0 lines
Content type: text/x-chdr
no message

1 sysadm 1.1 /* Declarations for getopt.
2     Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.
3    
4     This file is part of the GNU C Library. Its master source is NOT part of
5     the C library, however. The master source lives in /gd/gnu/lib.
6    
7     The GNU C Library is free software; you can redistribute it and/or
8     modify it under the terms of the GNU Library General Public License as
9     published by the Free Software Foundation; either version 2 of the
10     License, or (at your option) any later version.
11    
12     The GNU C Library is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15     Library General Public License for more details.
16    
17     You should have received a copy of the GNU Library General Public
18     License along with the GNU C Library; see the file COPYING.LIB. If not,
19     write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20     Boston, MA 02111-1307, USA. */
21    
22     #ifndef _PVPGN_GETOPT_H_
23     #define _PVPGN_GETOPT_H_ 1
24    
25     #include "common/setup_before.h"
26    
27     #ifdef HAVE_UNISTD_H
28     # include <unistd.h>
29     #endif
30    
31     #ifndef HAVE_GETOPT
32    
33     #ifdef __cplusplus
34     extern "C" {
35     #endif
36    
37     /* For communication from `getopt' to the caller.
38     When `getopt' finds an option that takes an argument,
39     the argument value is returned here.
40     Also, when `ordering' is RETURN_IN_ORDER,
41     each non-option ARGV-element is returned here. */
42    
43     extern char *optarg;
44    
45     /* Index in ARGV of the next element to be scanned.
46     This is used for communication to and from the caller
47     and for communication between successive calls to `getopt'.
48    
49     On entry to `getopt', zero means this is the first call; initialize.
50    
51     When `getopt' returns -1, this is the index of the first of the
52     non-option elements that the caller should itself scan.
53    
54     Otherwise, `optind' communicates from one call to the next
55     how much of ARGV has been scanned so far. */
56    
57     extern int optind;
58    
59     /* Callers store zero here to inhibit the error message `getopt' prints
60     for unrecognized options. */
61    
62     extern int opterr;
63    
64     /* Set to an option character which was unrecognized. */
65    
66     extern int optopt;
67    
68     /* Describe the long-named options requested by the application.
69     The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
70     of `struct option' terminated by an element containing a name which is
71     zero.
72    
73     The field `has_arg' is:
74     no_argument (or 0) if the option does not take an argument,
75     required_argument (or 1) if the option requires an argument,
76     optional_argument (or 2) if the option takes an optional argument.
77    
78     If the field `flag' is not NULL, it points to a variable that is set
79     to the value given in the field `val' when the option is found, but
80     left unchanged if the option is not found.
81    
82     To have a long-named option do something other than set an `int' to
83     a compiled-in constant, such as set a value from `optarg', set the
84     option's `flag' field to zero and its `val' field to a nonzero
85     value (the equivalent single-letter option character, if there is
86     one). For long options that have a zero `flag' field, `getopt'
87     returns the contents of the `val' field. */
88    
89     struct option
90     {
91     #if defined (__STDC__) && __STDC__
92     const char *name;
93     #else
94     char *name;
95     #endif
96     /* has_arg can't be an enum because some compilers complain about
97     type mismatches in all the code that assumes it is an int. */
98     int has_arg;
99     int *flag;
100     int val;
101     };
102    
103     /* Names for the values of the `has_arg' field of `struct option'. */
104    
105     #define no_argument 0
106     #define required_argument 1
107     #define optional_argument 2
108    
109     #ifdef WIN32
110     #define extern
111     #endif
112    
113     #if defined (__STDC__) && __STDC__
114     #ifdef __GNU_LIBRARY__
115     /* Many other libraries have conflicting prototypes for getopt, with
116     differences in the consts, in stdlib.h. To avoid compilation
117     errors, only prototype getopt for the GNU C library. */
118     extern int getopt (int argc, char *const *argv, const char *shortopts);
119     #else /* not __GNU_LIBRARY__ */
120     extern int getopt ();
121     #endif /* __GNU_LIBRARY__ */
122     extern int getopt_long (int argc, char *const *argv, const char *shortopts,
123     const struct option *longopts, int *longind);
124     extern int getopt_long_only (int argc, char *const *argv,
125     const char *shortopts,
126     const struct option *longopts, int *longind);
127    
128     /* Internal only. Users should not call this directly. */
129     extern int _getopt_internal (int argc, char *const *argv,
130     const char *shortopts,
131     const struct option *longopts, int *longind,
132     int long_only);
133     #else /* not __STDC__ */
134     extern int getopt ();
135     extern int getopt_long ();
136     extern int getopt_long_only ();
137    
138     extern int _getopt_internal ();
139     #endif /* __STDC__ */
140    
141     #ifdef WIN32
142     #undef extern
143     #endif
144    
145     #ifdef __cplusplus
146     }
147     #endif
148    
149     #endif /* !HAVE_GETOPT */
150    
151     #endif /* _PVPGN_GETOPT_H_ */

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1