Skip to content

Commit e2def9d

Browse files
Darknet added to the repo
1 parent 104d424 commit e2def9d

File tree

2,041 files changed

+414178
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,041 files changed

+414178
-0
lines changed

darknet/3rdparty/getopt/getopt.c

+498
Large diffs are not rendered by default.

darknet/3rdparty/getopt/getopt.h

+228
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,228 @@
1+
#ifdef _MSC_VER
2+
#ifndef __GETOPT_H__
3+
/**
4+
* DISCLAIMER
5+
* This file is part of the mingw-w64 runtime package.
6+
*
7+
* The mingw-w64 runtime package and its code is distributed in the hope that it
8+
* will be useful but WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESSED OR
9+
* IMPLIED ARE HEREBY DISCLAIMED. This includes but is not limited to
10+
* warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11+
*/
12+
/*
13+
* Copyright (c) 2002 Todd C. Miller <Todd.Miller@courtesan.com>
14+
*
15+
* Permission to use, copy, modify, and distribute this software for any
16+
* purpose with or without fee is hereby granted, provided that the above
17+
* copyright notice and this permission notice appear in all copies.
18+
*
19+
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
20+
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
21+
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
22+
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
23+
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
24+
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
25+
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
26+
*
27+
* Sponsored in part by the Defense Advanced Research Projects
28+
* Agency (DARPA) and Air Force Research Laboratory, Air Force
29+
* Materiel Command, USAF, under agreement number F39502-99-1-0512.
30+
*/
31+
/*-
32+
* Copyright (c) 2000 The NetBSD Foundation, Inc.
33+
* All rights reserved.
34+
*
35+
* This code is derived from software contributed to The NetBSD Foundation
36+
* by Dieter Baron and Thomas Klausner.
37+
*
38+
* Redistribution and use in source and binary forms, with or without
39+
* modification, are permitted provided that the following conditions
40+
* are met:
41+
* 1. Redistributions of source code must retain the above copyright
42+
* notice, this list of conditions and the following disclaimer.
43+
* 2. Redistributions in binary form must reproduce the above copyright
44+
* notice, this list of conditions and the following disclaimer in the
45+
* documentation and/or other materials provided with the distribution.
46+
*
47+
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
48+
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
49+
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
50+
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
51+
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
52+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
53+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
54+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
55+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
56+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
57+
* POSSIBILITY OF SUCH DAMAGE.
58+
*/
59+
60+
#define __GETOPT_H__
61+
62+
/* All the headers include this file. */
63+
#include <crtdefs.h>
64+
#include <errno.h>
65+
#include <stdarg.h>
66+
#include <stdio.h>
67+
#include <stdlib.h>
68+
#include <string.h>
69+
#define WIN32_LEAN_AND_MEAN
70+
#include <windows.h>
71+
72+
#ifdef __cplusplus
73+
extern "C" {
74+
#endif
75+
76+
#define REPLACE_GETOPT /* use this getopt as the system getopt(3) */
77+
78+
//extern int optind; /* index of first non-option in argv */
79+
//extern int optopt; /* single option character, as parsed */
80+
//extern int opterr; /* flag to enable built-in diagnostics... */
81+
// /* (user may set to zero, to suppress) */
82+
//
83+
//extern char *optarg; /* pointer to argument of current option */
84+
85+
#define PRINT_ERROR ((opterr) && (*options != ':'))
86+
87+
#define FLAG_PERMUTE 0x01 /* permute non-options to the end of argv */
88+
#define FLAG_ALLARGS 0x02 /* treat non-options as args to option "-1" */
89+
#define FLAG_LONGONLY 0x04 /* operate as getopt_long_only */
90+
91+
/* return values */
92+
#define BADCH (int)'?'
93+
#define BADARG ((*options == ':') ? (int)':' : (int)'?')
94+
#define INORDER (int)1
95+
96+
#ifndef __CYGWIN__
97+
#define __progname __argv[0]
98+
#else
99+
extern char __declspec(dllimport) * __progname;
100+
#endif
101+
102+
#ifdef __CYGWIN__
103+
static char EMSG[] = "";
104+
#else
105+
#define EMSG ""
106+
#endif
107+
108+
static int getopt_internal(int, char* const*, const char*,
109+
const struct option*, int*, int);
110+
static int parse_long_options(char* const*, const char*,
111+
const struct option*, int*, int);
112+
static int gcd(int, int);
113+
static void permute_args(int, int, int, char* const*);
114+
115+
static char* place = EMSG; /* option letter processing */
116+
117+
/* XXX: set optreset to 1 rather than these two */
118+
static int nonopt_start = -1; /* first non option argument (for permute) */
119+
static int nonopt_end = -1; /* first option after non options (for permute) */
120+
121+
/* Error messages */
122+
static const char recargchar[] = "option requires an argument -- %c";
123+
static const char recargstring[] = "option requires an argument -- %s";
124+
static const char ambig[] = "ambiguous option -- %.*s";
125+
static const char noarg[] = "option doesn't take an argument -- %.*s";
126+
static const char illoptchar[] = "unknown option -- %c";
127+
static const char illoptstring[] = "unknown option -- %s";
128+
129+
static void _vwarnx(const char* fmt, va_list ap);
130+
131+
static void warnx(const char* fmt, ...);
132+
133+
/*
134+
* Compute the greatest common divisor of a and b.
135+
*/
136+
static int gcd(int a, int b);
137+
138+
/*
139+
* Exchange the block from nonopt_start to nonopt_end with the block
140+
* from nonopt_end to opt_end (keeping the same order of arguments
141+
* in each block).
142+
*/
143+
static void permute_args(int panonopt_start, int panonopt_end, int opt_end, char* const* nargv);
144+
145+
#ifdef REPLACE_GETOPT
146+
/*
147+
* getopt --
148+
* Parse argc/argv argument vector.
149+
*
150+
* [eventually this will replace the BSD getopt]
151+
*/
152+
int getopt(int nargc, char* const* nargv, const char* options);
153+
#endif /* REPLACE_GETOPT */
154+
155+
//extern int getopt(int nargc, char * const *nargv, const char *options);
156+
157+
#ifdef _BSD_SOURCE
158+
/*
159+
* BSD adds the non-standard `optreset' feature, for reinitialisation
160+
* of `getopt' parsing. We support this feature, for applications which
161+
* proclaim their BSD heritage, before including this header; however,
162+
* to maintain portability, developers are advised to avoid it.
163+
*/
164+
#define optreset __mingw_optreset
165+
extern int optreset;
166+
#endif
167+
#ifdef __cplusplus
168+
}
169+
#endif
170+
/*
171+
* POSIX requires the `getopt' API to be specified in `unistd.h';
172+
* thus, `unistd.h' includes this header. However, we do not want
173+
* to expose the `getopt_long' or `getopt_long_only' APIs, when
174+
* included in this manner. Thus, close the standard __GETOPT_H__
175+
* declarations block, and open an additional __GETOPT_LONG_H__
176+
* specific block, only when *not* __UNISTD_H_SOURCED__, in which
177+
* to declare the extended API.
178+
*/
179+
#endif /* !defined(__GETOPT_H__) */
180+
181+
#if !defined(__UNISTD_H_SOURCED__) && !defined(__GETOPT_LONG_H__)
182+
#define __GETOPT_LONG_H__
183+
184+
#ifdef __cplusplus
185+
extern "C" {
186+
#endif
187+
188+
/*
189+
* parse_long_options --
190+
* Parse long options in argc/argv argument vector.
191+
* Returns -1 if short_too is set and the option does not match long_options.
192+
*/
193+
/* static int parse_long_options(char* const* nargv, const char* options, const struct option* long_options, int* idx, int short_too); */
194+
195+
/*
196+
* getopt_internal --
197+
* Parse argc/argv argument vector. Called by user level routines.
198+
*/
199+
/* static int getopt_internal(int nargc, char* const* nargv, const char* options, const struct option* long_options, int* idx, int flags); */
200+
201+
/*
202+
* getopt_long --
203+
* Parse argc/argv argument vector.
204+
*/
205+
int getopt_long(int nargc, char* const* nargv, const char* options, const struct option* long_options, int* idx);
206+
207+
/*
208+
* getopt_long_only --
209+
* Parse argc/argv argument vector.
210+
*/
211+
int getopt_long_only(int nargc, char* const* nargv, const char* options, const struct option* long_options, int* idx);
212+
213+
/*
214+
* Previous MinGW implementation had...
215+
*/
216+
#ifndef HAVE_DECL_GETOPT
217+
/*
218+
* ...for the long form API only; keep this for compatibility.
219+
*/
220+
#define HAVE_DECL_GETOPT 1
221+
#endif
222+
223+
#ifdef __cplusplus
224+
}
225+
#endif
226+
227+
#endif /* !defined(__UNISTD_H_SOURCED__) && !defined(__GETOPT_LONG_H__) */
228+
#endif
182 KB
Binary file not shown.
81 KB
Binary file not shown.

0 commit comments

Comments
 (0)