1 /* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 /*
3  *     Copyright 2013 Couchbase, Inc.
4  *
5  *   Licensed under the Apache License, Version 2.0 (the "License");
6  *   you may not use this file except in compliance with the License.
7  *   You may obtain a copy of the License at
8  *
9  *       http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *   Unless required by applicable law or agreed to in writing, software
12  *   distributed under the License is distributed on an "AS IS" BASIS,
13  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *   See the License for the specific language governing permissions and
15  *   limitations under the License.
16  */
17 #pragma once
18 
19 #include <platform/visibility.h>
20 
21 #ifdef  __cplusplus
22 extern "C" {
23 #endif
24 
25 #define no_argument 0
26 #define required_argument 1
27 #define optional_argument 2
28 
29     struct option {
30         const char *name;
31         int has_arg;
32         int *flag;
33         int val;
34     };
35 
36     PLATFORM_PUBLIC_API
37     extern char *optarg;
38     PLATFORM_PUBLIC_API
39     extern int opterr;
40     PLATFORM_PUBLIC_API
41     extern int optind;
42     PLATFORM_PUBLIC_API
43     extern int optopt;
44 
45     PLATFORM_PUBLIC_API
46     extern int getopt_long(int argc, char **argv, const char *optstring,
47                            const struct option *longopts, int *longindex);
48 
49     PLATFORM_PUBLIC_API
50     extern int getopt(int argc, char **argv, const char *optstring);
51 
52 #ifdef  __cplusplus
53 }
54 #endif
55