Basic Image AlgorithmS Library
2.8.0
Main Page
Related Pages
Modules
Classes
Examples
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
Base
Common
getopt_W32.cpp
1
// must be first:
2
//#include <precompiled.h>
3
4
/*
5
* Copyright (c) 1987, 1993, 1994
6
* The Regents of the University of California. All rights reserved.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
* 1. Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* 2. Redistributions in binary form must reproduce the above copyright
14
* notice, this list of conditions and the following disclaimer in the
15
* documentation and/or other materials provided with the distribution.
16
* 3. All advertising materials mentioning features or use of this software
17
* must display the following acknowledgement:
18
* This product includes software developed by the University of
19
* California, Berkeley and its contributors.
20
* 4. Neither the name of the University nor the names of its contributors
21
* may be used to endorse or promote products derived from this software
22
* without specific prior written permission.
23
*
24
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34
* SUCH DAMAGE.
35
*/
36
37
//#include <bias_config.h>
38
39
#include "getopt_W32.h"
40
#include <stdio.h>
41
#include <stdlib.h>
42
#include <string.h>
43
44
// DLL (JW)
45
46
BIASCommon_EXPORT
int
opterr = 1;
/* if error message should be printed */
47
BIASCommon_EXPORT
int
optind = 1;
/* index into parent argv vector */
48
BIASCommon_EXPORT
int
optopt;
/* character checked for validity */
49
BIASCommon_EXPORT
int
optreset;
/* reset getopt */
50
BIASCommon_EXPORT
char
* optarg;
/* argument associated with option */
51
52
#define BADCH (int)'?'
53
#define BADARG (int)':'
54
#define EMSG ""
55
56
/*
57
* getopt --
58
* Parse argc/argv argument vector.
59
*/
60
int
61
getopt(
int
nargc,
62
char
*
const
*nargv,
63
const
char
*ostr )
64
{
65
static
char
*place = EMSG;
/* option letter processing */
66
char
*oli;
/* option letter list index */
67
68
if
(optreset || !*place) {
/* update scanning pointer */
69
optreset = 0;
70
if
(optind >= nargc || *(place = nargv[optind]) !=
'-'
) {
71
place = EMSG;
72
return
(-1);
73
}
74
if
(place[1] && *++place ==
'-'
) {
/* found "--" */
75
++optind;
76
place = EMSG;
77
return
(-1);
78
}
79
}
80
/* option letter okay? */
81
optopt = (int)*place;
82
place++;
83
oli = (
char
*)strchr(ostr, optopt);
84
if
(optopt == (
int
)
':'
||
85
!oli )
86
{
87
/*
88
* if the user didn't specify '-' as an option,
89
* assume it means -1.
90
*/
91
if
(optopt == (
int
)
'-'
)
92
return
(-1);
93
if
(!*place)
94
++optind;
95
if
(opterr && *ostr !=
':'
&& optopt != BADCH)
96
(void)fprintf(stderr,
"%s: illegal option -- %c\n"
,
97
"progname"
, optopt);
98
return
(BADCH);
99
}
100
if
(*++oli !=
':'
) {
/* don't need argument */
101
optarg = NULL;
102
if
(!*place)
103
++optind;
104
}
105
else
{
/* need an argument */
106
if
(*place)
/* no white space */
107
optarg = place;
108
else
if
(nargc <= ++optind) {
/* no arg */
109
place = EMSG;
110
if
(*ostr ==
':'
)
111
return
(BADARG);
112
if
(opterr)
113
(void)fprintf(stderr,
114
"%s: option requires an argument -- %c\n"
,
115
"progname"
, optopt);
116
return
(BADCH);
117
}
118
else
/* white space */
119
optarg = nargv[optind];
120
place = EMSG;
121
++optind;
122
}
123
return
(optopt);
/* dump back option letter */
124
}
Generated on Tue Feb 6 2018 02:01:31 for Basic Image AlgorithmS Library by
1.8.5