Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
getopt_W32.h
1 /* $NetBSD: getopt.h,v 1.4 2000/07/07 10:43:54 ad Exp $ */
2 /* $FreeBSD: src/include/getopt.h,v 1.1 2002/09/29 04:14:30 eric Exp $ */
3 
4 /*-
5  * Copyright (c) 2000 The NetBSD Foundation, Inc.
6  * All rights reserved.
7  *
8  * This code is derived from software contributed to The NetBSD Foundation
9  * by Dieter Baron and Thomas Klausner.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  * notice, this list of conditions and the following disclaimer.
16  * 2. Redistributions in binary form must reproduce the above copyright
17  * notice, this list of conditions and the following disclaimer in the
18  * documentation and/or other materials provided with the distribution.
19  * 3. All advertising materials mentioning features or use of this software
20  * must display the following acknowledgement:
21  * This product includes software developed by the NetBSD
22  * Foundation, Inc. and its contributors.
23  * 4. Neither the name of The NetBSD Foundation nor the names of its
24  * contributors may be used to endorse or promote products derived
25  * from this software without specific prior written permission.
26  *
27  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
28  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
29  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
31  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37  * POSSIBILITY OF SUCH DAMAGE.
38  */
39 /* I (friso) found this on the net and adapted it to our needs
40  - removed GETOP_API declspec(dllimport)
41  - changed names to *_W32, adapted includes
42  2005/10: DLL fixes (Jan Woetzel)
43 */
44 
45 #ifndef _GETOPT_H_
46 #define _GETOPT_H_
47 
48 #if defined(_WIN32) && defined(__cplusplus)
49 extern "C" {
50 #endif // defined(_WIN32) && defined(__cplusplus)
51 
52 
53 #define __P(args) args
54 
55 
56 #include <bias_config.h>
57 
58 /*
59  * Gnu like getopt_long() and BSD4.4 getsubopt()/optreset extensions
60  */
61 #if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)
62 # define no_argument 0
63 # define required_argument 1
64 # define optional_argument 2
65 
66  struct option {
67  /* name of long option */
68  const char *name;
69  /*
70  * one of no_argument, required_argument, and optional_argument:
71  * whether option takes an argument
72  */
73  int has_arg;
74  /* if not NULL, set *flag to val when option found */
75  int *flag;
76  /* if flag not NULL, value to set *flag to; else return value */
77  int val;
78  };
79 
80 BIASCommon_EXPORT int getopt_long (int, char * const *, const char *, const struct option *, int *);
81 
82 #endif // !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)
83 
84 
85 #ifdef _WIN32
86 /* These are global getopt variables */
87 
88 // DLL (JW)
89 BIASCommon_EXPORT extern int opterr; /* if error message should be printed */
90 BIASCommon_EXPORT extern int optind; /* index into parent argv vector */
91 BIASCommon_EXPORT extern int optopt; /* character checked for validity */
92 BIASCommon_EXPORT extern int optreset; /* reset getopt */
93 BIASCommon_EXPORT extern char* optarg; /* argument associated with option */
94 
95 /* Original getopt */
96 BIASCommon_EXPORT int getopt (int, char * const *, const char *);
97 
98 //__END_DECLS
99 
100 #endif // _WIN32
101 
102 
103 #if defined(_WIN32) && defined(__cplusplus)
104 } // of extern "C"
105 #endif // defined(_WIN32) && defined(__cplusplus)
106 
107 #endif // !_GETOPT_H_
108 
int val
Definition: getopt_W32.h:77
const char * name
Definition: getopt_W32.h:68
int * flag
Definition: getopt_W32.h:75
int has_arg
Definition: getopt_W32.h:73