]> git.proxmox.com Git - mirror_smartmontools-debian.git/blob - getopt/getopt.h
import smartmontools 7.0
[mirror_smartmontools-debian.git] / getopt / getopt.h
1 /* Declarations for getopt.
2 Copyright (C) 1989-2018 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4 Unlike the bulk of the getopt implementation, this file is NOT part
5 of gnulib; gnulib also has a getopt.h but it is different.
6
7 The GNU C Library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the 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 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with the GNU C Library; if not, see
19 <http://www.gnu.org/licenses/>. */
20
21 #ifndef _GETOPT_H
22 #define _GETOPT_H 1
23
24 #ifndef _GETOPT_STANDALONE
25 #include <features.h>
26 #endif
27
28 // From <sys/cdefs.h>:
29 #ifndef __BEGIN_DECLS
30 # ifdef __cplusplus
31 # define __BEGIN_DECLS extern "C" {
32 # define __END_DECLS }
33 # else
34 # define __BEGIN_DECLS
35 # define __END_DECLS
36 # endif
37 #endif
38 #ifndef __THROW
39 # ifdef __cplusplus
40 # define __THROW throw()
41 # elif defined(__GNUC__)
42 # define __THROW __attribute__ ((__nothrow__))
43 # else
44 # define __THROW
45 # endif
46 #endif
47 #ifndef __nonnull
48 # ifdef __GNUC__
49 # define __nonnull(x) __attribute__ ((__nonnull__ x))
50 # else
51 # define __nonnull(x)
52 # endif
53 #endif
54
55 /* The type of the 'argv' argument to getopt_long and getopt_long_only
56 is properly 'char **', since both functions may write to the array
57 (in order to move all the options to the beginning). However, for
58 compatibility with old versions of LSB, glibc has to use 'char *const *'
59 instead. */
60 #ifndef __getopt_argv_const
61 # define __getopt_argv_const const
62 #endif
63
64 #include <bits/getopt_core.h>
65 #include <bits/getopt_ext.h>
66
67 #endif /* getopt.h */