95 lines · 3.0 KB · C
RawDownload
#ifndef __GETOPT_H__/** * DISCLAIMER * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 runtime package. * * The mingw-w64 runtime package and its code is distributed in the hope that it  * will be useful but WITHOUT ANY WARRANTY.  ALL WARRANTIES, EXPRESSED OR  * IMPLIED ARE HEREBY DISCLAIMED.  This includes but is not limited to  * warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #define __GETOPT_H__ /* All the headers include this file. */#include <crtdefs.h> #ifdef __cplusplusextern "C" {#endif extern int optind;		/* index of first non-option in argv      */extern int optopt;		/* single option character, as parsed     */extern int opterr;		/* flag to enable built-in diagnostics... */				/* (user may set to zero, to suppress)    */ extern char *optarg;		/* pointer to argument of current option  */ extern int getopt(int nargc, char * const *nargv, const char *options); #ifdef _BSD_SOURCE/* * BSD adds the non-standard `optreset' feature, for reinitialisation * of `getopt' parsing.  We support this feature, for applications which * proclaim their BSD heritage, before including this header; however, * to maintain portability, developers are advised to avoid it. */# define optreset  __mingw_optresetextern int optreset;#endif#ifdef __cplusplus}#endif/* * POSIX requires the `getopt' API to be specified in `unistd.h'; * thus, `unistd.h' includes this header.  However, we do not want * to expose the `getopt_long' or `getopt_long_only' APIs, when * included in this manner.  Thus, close the standard __GETOPT_H__ * declarations block, and open an additional __GETOPT_LONG_H__ * specific block, only when *not* __UNISTD_H_SOURCED__, in which * to declare the extended API. */#if !defined(__UNISTD_H_SOURCED__) && !defined(__GETOPT_LONG_H__)#define __GETOPT_LONG_H__ #ifdef __cplusplusextern "C" {#endif struct option		/* specification for a long form option...	*/{  const char *name;		/* option name, without leading hyphens */  int         has_arg;		/* does it take an argument?		*/  int        *flag;		/* where to save its status, or NULL	*/  int         val;		/* its associated status value		*/}; enum    		/* permitted values for its `has_arg' field...	*/{  no_argument = 0,      	/* option never takes an argument	*/  required_argument,		/* option always requires an argument	*/  optional_argument		/* option may take an argument		*/}; extern int getopt_long(int nargc, char * const *nargv, const char *options,    const struct option *long_options, int *idx);extern int getopt_long_only(int nargc, char * const *nargv, const char *options,    const struct option *long_options, int *idx);/* * Previous MinGW implementation had... */#ifndef HAVE_DECL_GETOPT/* * ...for the long form API only; keep this for compatibility. */# define HAVE_DECL_GETOPT	1#endif #ifdef __cplusplus}#endif #endif /* !defined(__UNISTD_H_SOURCED__) && !defined(__GETOPT_LONG_H__) */ #endif /* !defined(__GETOPT_H__) */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t