-/* Declarations for getopt.
- Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2013 Free
- Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#ifndef _GL_GETOPT_H
-
-#if __GNUC__ >= 3
-#pragma GCC system_header
-#endif
-
-
-/* The include_next requires a split double-inclusion guard. We must
- also inform the replacement unistd.h to not recursively use
- <getopt.h>; our definitions will be present soon enough. */
-#if HAVE_GETOPT_H
-# define _GL_SYSTEM_GETOPT
-# ifndef __GNUC__
-# include <next_getopt.h>
-# else
-# include_next <getopt.h>
-# endif
-# undef _GL_SYSTEM_GETOPT
-#endif
-
-#ifndef _GL_GETOPT_H
-
-#ifndef __need_getopt
-# define _GL_GETOPT_H 1
-#endif
-
-/* Standalone applications should #define __GETOPT_PREFIX to an
- identifier that prefixes the external functions and variables
- defined in this header. When this happens, include the
- headers that might declare getopt so that they will not cause
- confusion if included after this file (if the system had <getopt.h>,
- we have already included it). Then systematically rename
- identifiers so that they do not collide with the system functions
- and variables. Renaming avoids problems with some compilers and
- linkers. */
-#if defined __GETOPT_PREFIX && !defined __need_getopt
-# if !HAVE_GETOPT_H
-# include <stdlib.h>
-# include <stdio.h>
-# include <unistd.h>
-# endif
-# undef __need_getopt
-# undef getopt
-# undef getopt_long
-# undef getopt_long_only
-# undef optarg
-# undef opterr
-# undef optind
-# undef optopt
-# undef option
-# define __GETOPT_CONCAT(x, y) x ## y
-# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)
-# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
-# define getopt __GETOPT_ID (getopt)
-# define getopt_long __GETOPT_ID (getopt_long)
-# define getopt_long_only __GETOPT_ID (getopt_long_only)
-# define optarg __GETOPT_ID (optarg)
-# define opterr __GETOPT_ID (opterr)
-# define optind __GETOPT_ID (optind)
-# define optopt __GETOPT_ID (optopt)
-# define option __GETOPT_ID (option)
-# define _getopt_internal __GETOPT_ID (getopt_internal)
-#endif
-
-/* Standalone applications get correct prototypes for getopt_long and
- getopt_long_only; they declare "char **argv". libc uses prototypes
- with "char *const *argv" that are incorrect because getopt_long and
- getopt_long_only can permute argv; this is required for backward
- compatibility (e.g., for LSB 2.0.1).
-
- This used to be '#if defined __GETOPT_PREFIX && !defined __need_getopt',
- but it caused redefinition warnings if both unistd.h and getopt.h were
- included, since unistd.h includes getopt.h having previously defined
- __need_getopt.
-
- The only place where __getopt_argv_const is used is in definitions
- of getopt_long and getopt_long_only below, but these are visible
- only if __need_getopt is not defined, so it is quite safe to rewrite
- the conditional as follows:
-*/
-#if !defined __need_getopt
-# if defined __GETOPT_PREFIX
-# define __getopt_argv_const /* empty */
-# else
-# define __getopt_argv_const const
-# endif
-#endif
-
-/* If __GNU_LIBRARY__ is not already defined, either we are being used
- standalone, or this is the first header included in the source file.
- If we are being used with glibc, we need to include <features.h>, but
- that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
- not defined, include <ctype.h>, which will pull in <features.h> for us
- if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
- doesn't flood the namespace with stuff the way some other headers do.) */
-#if !defined __GNU_LIBRARY__
-# include <ctype.h>
-#endif
-
-#ifndef __THROW
-# ifndef __GNUC_PREREQ
-# define __GNUC_PREREQ(maj, min) (0)
-# endif
-# if defined __cplusplus && __GNUC_PREREQ (2,8)
-# define __THROW throw ()
-# else
-# define __THROW
-# endif
-#endif
-
-/* The definition of _GL_ARG_NONNULL is copied here. */
-/* A C macro for declaring that specific arguments must not be NULL.
- Copyright (C) 2009-2012 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
- that the values passed as arguments n, ..., m must be non-NULL pointers.
- n = 1 stands for the first argument, n = 2 for the second argument etc. */
-#ifndef _GL_ARG_NONNULL
-# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
-# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
-# else
-# define _GL_ARG_NONNULL(params)
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* For communication from 'getopt' to the caller.
- When 'getopt' finds an option that takes an argument,
- the argument value is returned here.
- Also, when 'ordering' is RETURN_IN_ORDER,
- each non-option ARGV-element is returned here. */
-
-extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
- This is used for communication to and from the caller
- and for communication between successive calls to 'getopt'.
-
- On entry to 'getopt', zero means this is the first call; initialize.
-
- When 'getopt' returns -1, this is the index of the first of the
- non-option elements that the caller should itself scan.
-
- Otherwise, 'optind' communicates from one call to the next
- how much of ARGV has been scanned so far. */
-
-extern int optind;
-
-/* Callers store zero here to inhibit the error message 'getopt' prints
- for unrecognized options. */
-
-extern int opterr;
-
-/* Set to an option character which was unrecognized. */
-
-extern int optopt;
-
-#ifndef __need_getopt
-/* Describe the long-named options requested by the application.
- The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
- of 'struct option' terminated by an element containing a name which is
- zero.
-
- The field 'has_arg' is:
- no_argument (or 0) if the option does not take an argument,
- required_argument (or 1) if the option requires an argument,
- optional_argument (or 2) if the option takes an optional argument.
-
- If the field 'flag' is not NULL, it points to a variable that is set
- to the value given in the field 'val' when the option is found, but
- left unchanged if the option is not found.
-
- To have a long-named option do something other than set an 'int' to
- a compiled-in constant, such as set a value from 'optarg', set the
- option's 'flag' field to zero and its 'val' field to a nonzero
- value (the equivalent single-letter option character, if there is
- one). For long options that have a zero 'flag' field, 'getopt'
- returns the contents of the 'val' field. */
-
-# if !GNULIB_defined_struct_option
-struct option
-{
- const char *name;
- /* has_arg can't be an enum because some compilers complain about
- type mismatches in all the code that assumes it is an int. */
- int has_arg;
- int *flag;
- int val;
-};
-# define GNULIB_defined_struct_option 1
-# endif
-
-/* Names for the values of the 'has_arg' field of 'struct option'. */
-
-# define no_argument 0
-# define required_argument 1
-# define optional_argument 2
-#endif /* need getopt */
-
-
-/* Get definitions and prototypes for functions to process the
- arguments in ARGV (ARGC of them, minus the program name) for
- options given in OPTS.
-
- Return the option character from OPTS just read. Return -1 when
- there are no more options. For unrecognized options, or options
- missing arguments, 'optopt' is set to the option letter, and '?' is
- returned.
-
- The OPTS string is a list of characters which are recognized option
- letters, optionally followed by colons, specifying that that letter
- takes an argument, to be placed in 'optarg'.
-
- If a letter in OPTS is followed by two colons, its argument is
- optional. This behavior is specific to the GNU 'getopt'.
-
- The argument '--' causes premature termination of argument
- scanning, explicitly telling 'getopt' that there are no more
- options.
-
- If OPTS begins with '-', then non-option arguments are treated as
- arguments to the option '\1'. This behavior is specific to the GNU
- 'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in
- the environment, then do not permute arguments. */
-
-extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
- __THROW _GL_ARG_NONNULL ((2, 3));
-
-#ifndef __need_getopt
-extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv,
- const char *__shortopts,
- const struct option *__longopts, int *__longind)
- __THROW _GL_ARG_NONNULL ((2, 3));
-extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,
- const char *__shortopts,
- const struct option *__longopts, int *__longind)
- __THROW _GL_ARG_NONNULL ((2, 3));
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/* Make sure we later can get all the definitions and declarations. */
-#undef __need_getopt
-
-#endif /* _GL_GETOPT_H */
-#endif /* _GL_GETOPT_H */
+/* Declarations for getopt.\r
+ Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2013 Free Software\r
+ Foundation, Inc.\r
+ This file is part of the GNU C Library.\r
+\r
+ This program is free software: you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 3 of the License, or\r
+ (at your option) any later version.\r
+\r
+ This program is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */\r
+\r
+#ifndef _GL_GETOPT_H\r
+\r
+#if __GNUC__ >= 3\r
+#pragma GCC system_header\r
+#endif\r
+\r
+\r
+/* The include_next requires a split double-inclusion guard. We must\r
+ also inform the replacement unistd.h to not recursively use\r
+ <getopt.h>; our definitions will be present soon enough. */\r
+#if HAVE_GETOPT_H\r
+# define _GL_SYSTEM_GETOPT\r
+# ifndef __GNUC__\r
+# include <next_getopt.h>\r
+# else\r
+# include_next <getopt.h>\r
+# endif\r
+# undef _GL_SYSTEM_GETOPT\r
+#endif\r
+\r
+#ifndef _GL_GETOPT_H\r
+\r
+#ifndef __need_getopt\r
+# define _GL_GETOPT_H 1\r
+#endif\r
+\r
+/* Standalone applications should #define __GETOPT_PREFIX to an\r
+ identifier that prefixes the external functions and variables\r
+ defined in this header. When this happens, include the\r
+ headers that might declare getopt so that they will not cause\r
+ confusion if included after this file (if the system had <getopt.h>,\r
+ we have already included it). Then systematically rename\r
+ identifiers so that they do not collide with the system functions\r
+ and variables. Renaming avoids problems with some compilers and\r
+ linkers. */\r
+#if defined __GETOPT_PREFIX && !defined __need_getopt\r
+# if !HAVE_GETOPT_H\r
+# define __need_system_stdlib_h\r
+# include <stdlib.h>\r
+# undef __need_system_stdlib_h\r
+# include <stdio.h>\r
+# include <unistd.h>\r
+# endif\r
+# undef __need_getopt\r
+# undef getopt\r
+# undef getopt_long\r
+# undef getopt_long_only\r
+# undef optarg\r
+# undef opterr\r
+# undef optind\r
+# undef optopt\r
+# undef option\r
+# define __GETOPT_CONCAT(x, y) x ## y\r
+# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)\r
+# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)\r
+# define getopt __GETOPT_ID (getopt)\r
+# define getopt_long __GETOPT_ID (getopt_long)\r
+# define getopt_long_only __GETOPT_ID (getopt_long_only)\r
+# define optarg __GETOPT_ID (optarg)\r
+# define opterr __GETOPT_ID (opterr)\r
+# define optind __GETOPT_ID (optind)\r
+# define optopt __GETOPT_ID (optopt)\r
+# define option __GETOPT_ID (option)\r
+# define _getopt_internal __GETOPT_ID (getopt_internal)\r
+#endif\r
+\r
+/* Standalone applications get correct prototypes for getopt_long and\r
+ getopt_long_only; they declare "char **argv". libc uses prototypes\r
+ with "char *const *argv" that are incorrect because getopt_long and\r
+ getopt_long_only can permute argv; this is required for backward\r
+ compatibility (e.g., for LSB 2.0.1).\r
+\r
+ This used to be '#if defined __GETOPT_PREFIX && !defined __need_getopt',\r
+ but it caused redefinition warnings if both unistd.h and getopt.h were\r
+ included, since unistd.h includes getopt.h having previously defined\r
+ __need_getopt.\r
+\r
+ The only place where __getopt_argv_const is used is in definitions\r
+ of getopt_long and getopt_long_only below, but these are visible\r
+ only if __need_getopt is not defined, so it is quite safe to rewrite\r
+ the conditional as follows:\r
+*/\r
+#if !defined __need_getopt\r
+# if defined __GETOPT_PREFIX\r
+# define __getopt_argv_const /* empty */\r
+# else\r
+# define __getopt_argv_const const\r
+# endif\r
+#endif\r
+\r
+/* If __GNU_LIBRARY__ is not already defined, either we are being used\r
+ standalone, or this is the first header included in the source file.\r
+ If we are being used with glibc, we need to include <features.h>, but\r
+ that does not exist if we are standalone. So: if __GNU_LIBRARY__ is\r
+ not defined, include <ctype.h>, which will pull in <features.h> for us\r
+ if it's from glibc. (Why ctype.h? It's guaranteed to exist and it\r
+ doesn't flood the namespace with stuff the way some other headers do.) */\r
+#if !defined __GNU_LIBRARY__\r
+# include <ctype.h>\r
+#endif\r
+\r
+#ifndef __THROW\r
+# ifndef __GNUC_PREREQ\r
+# define __GNUC_PREREQ(maj, min) (0)\r
+# endif\r
+# if defined __cplusplus && __GNUC_PREREQ (2,8)\r
+# define __THROW throw ()\r
+# else\r
+# define __THROW\r
+# endif\r
+#endif\r
+\r
+/* The definition of _GL_ARG_NONNULL is copied here. */\r
+/* A C macro for declaring that specific arguments must not be NULL.\r
+ Copyright (C) 2009-2013 Free Software Foundation, Inc.\r
+\r
+ This program is free software: you can redistribute it and/or modify it\r
+ under the terms of the GNU General Public License as published\r
+ by the Free Software Foundation; either version 3 of the License, or\r
+ (at your option) any later version.\r
+\r
+ This program is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
+ General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */\r
+\r
+/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools\r
+ that the values passed as arguments n, ..., m must be non-NULL pointers.\r
+ n = 1 stands for the first argument, n = 2 for the second argument etc. */\r
+#ifndef _GL_ARG_NONNULL\r
+# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3\r
+# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))\r
+# else\r
+# define _GL_ARG_NONNULL(params)\r
+# endif\r
+#endif\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+/* For communication from 'getopt' to the caller.\r
+ When 'getopt' finds an option that takes an argument,\r
+ the argument value is returned here.\r
+ Also, when 'ordering' is RETURN_IN_ORDER,\r
+ each non-option ARGV-element is returned here. */\r
+\r
+extern char *optarg;\r
+\r
+/* Index in ARGV of the next element to be scanned.\r
+ This is used for communication to and from the caller\r
+ and for communication between successive calls to 'getopt'.\r
+\r
+ On entry to 'getopt', zero means this is the first call; initialize.\r
+\r
+ When 'getopt' returns -1, this is the index of the first of the\r
+ non-option elements that the caller should itself scan.\r
+\r
+ Otherwise, 'optind' communicates from one call to the next\r
+ how much of ARGV has been scanned so far. */\r
+\r
+extern int optind;\r
+\r
+/* Callers store zero here to inhibit the error message 'getopt' prints\r
+ for unrecognized options. */\r
+\r
+extern int opterr;\r
+\r
+/* Set to an option character which was unrecognized. */\r
+\r
+extern int optopt;\r
+\r
+#ifndef __need_getopt\r
+/* Describe the long-named options requested by the application.\r
+ The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector\r
+ of 'struct option' terminated by an element containing a name which is\r
+ zero.\r
+\r
+ The field 'has_arg' is:\r
+ no_argument (or 0) if the option does not take an argument,\r
+ required_argument (or 1) if the option requires an argument,\r
+ optional_argument (or 2) if the option takes an optional argument.\r
+\r
+ If the field 'flag' is not NULL, it points to a variable that is set\r
+ to the value given in the field 'val' when the option is found, but\r
+ left unchanged if the option is not found.\r
+\r
+ To have a long-named option do something other than set an 'int' to\r
+ a compiled-in constant, such as set a value from 'optarg', set the\r
+ option's 'flag' field to zero and its 'val' field to a nonzero\r
+ value (the equivalent single-letter option character, if there is\r
+ one). For long options that have a zero 'flag' field, 'getopt'\r
+ returns the contents of the 'val' field. */\r
+\r
+# if !GNULIB_defined_struct_option\r
+struct option\r
+{\r
+ const char *name;\r
+ /* has_arg can't be an enum because some compilers complain about\r
+ type mismatches in all the code that assumes it is an int. */\r
+ int has_arg;\r
+ int *flag;\r
+ int val;\r
+};\r
+# define GNULIB_defined_struct_option 1\r
+# endif\r
+\r
+/* Names for the values of the 'has_arg' field of 'struct option'. */\r
+\r
+# define no_argument 0\r
+# define required_argument 1\r
+# define optional_argument 2\r
+#endif /* need getopt */\r
+\r
+\r
+/* Get definitions and prototypes for functions to process the\r
+ arguments in ARGV (ARGC of them, minus the program name) for\r
+ options given in OPTS.\r
+\r
+ Return the option character from OPTS just read. Return -1 when\r
+ there are no more options. For unrecognized options, or options\r
+ missing arguments, 'optopt' is set to the option letter, and '?' is\r
+ returned.\r
+\r
+ The OPTS string is a list of characters which are recognized option\r
+ letters, optionally followed by colons, specifying that that letter\r
+ takes an argument, to be placed in 'optarg'.\r
+\r
+ If a letter in OPTS is followed by two colons, its argument is\r
+ optional. This behavior is specific to the GNU 'getopt'.\r
+\r
+ The argument '--' causes premature termination of argument\r
+ scanning, explicitly telling 'getopt' that there are no more\r
+ options.\r
+\r
+ If OPTS begins with '-', then non-option arguments are treated as\r
+ arguments to the option '\1'. This behavior is specific to the GNU\r
+ 'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in\r
+ the environment, then do not permute arguments. */\r
+\r
+extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)\r
+ __THROW _GL_ARG_NONNULL ((2, 3));\r
+\r
+#ifndef __need_getopt\r
+extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv,\r
+ const char *__shortopts,\r
+ const struct option *__longopts, int *__longind)\r
+ __THROW _GL_ARG_NONNULL ((2, 3));\r
+extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,\r
+ const char *__shortopts,\r
+ const struct option *__longopts, int *__longind)\r
+ __THROW _GL_ARG_NONNULL ((2, 3));\r
+\r
+#endif\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+/* Make sure we later can get all the definitions and declarations. */\r
+#undef __need_getopt\r
+\r
+#endif /* _GL_GETOPT_H */\r
+#endif /* _GL_GETOPT_H */\r