2000-02-18 03:38:33 +08:00
|
|
|
/*
|
|
|
|
* Copyright (c) 1987, 1993, 1994, 1996
|
|
|
|
* The Regents of the University of California. All rights reserved.
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions
|
|
|
|
* are met:
|
|
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer.
|
|
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
|
|
* documentation and/or other materials provided with the distribution.
|
2020-01-29 02:54:53 +08:00
|
|
|
* 3. Neither the name of the University nor the names of its contributors
|
2000-02-18 03:38:33 +08:00
|
|
|
* may be used to endorse or promote products derived from this software
|
|
|
|
* without specific prior written permission.
|
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
|
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
* SUCH DAMAGE.
|
|
|
|
*/
|
|
|
|
|
2021-11-09 11:22:27 +08:00
|
|
|
#ifdef _LIBC
|
2006-01-06 01:35:14 +08:00
|
|
|
#include_next "getopt.h"
|
|
|
|
#else
|
2000-02-18 03:38:33 +08:00
|
|
|
#ifndef __GETOPT_H__
|
|
|
|
#define __GETOPT_H__
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
* Makefile.in (DLL_OFILES): Add getopt.o and iruserok.o.
* cygwin.din: Export __check_rhosts_file, __rcmd_errstr, optarg,
opterr, optind, optopt, optreset, getopt, getopt_long, iruserok
and ruserok.
* getopt.c: Moved from lib to here. Define opt* variables as
dllexport.
* iruserok.c: Moved from lib to here. Rearrange function order.
Prefer using 64/32 bit functions.
* syscalls.cc (shell_fp): Define as struct __sFILE64.
(getusershell): Use fopen64 instead of fopen.
* winsup.h: Add declarations for seteuid32, fopen64,
cygwin_gethostbyname and cygwin_inet_addr.
* include/getopt.h: Declare opt* variables dllimport.
* include/cygwin/version.h: Bump API minor number.
2003-09-11 03:13:05 +08:00
|
|
|
#ifndef __INSIDE_CYGWIN__
|
|
|
|
extern int __declspec(dllimport) opterr; /* if error message should be printed */
|
|
|
|
extern int __declspec(dllimport) optind; /* index into parent argv vector */
|
|
|
|
extern int __declspec(dllimport) optopt; /* character checked for validity */
|
|
|
|
extern int __declspec(dllimport) optreset; /* reset getopt */
|
|
|
|
extern char __declspec(dllimport) *optarg; /* argument associated with option */
|
|
|
|
#endif
|
2000-02-18 03:38:33 +08:00
|
|
|
|
|
|
|
int getopt (int, char * const *, const char *);
|
|
|
|
|
2001-12-18 05:34:59 +08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* __GETOPT_H__ */
|
|
|
|
|
|
|
|
#ifndef __UNISTD_GETOPT__
|
|
|
|
#ifndef __GETOPT_LONG_H__
|
|
|
|
#define __GETOPT_LONG_H__
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
struct option {
|
|
|
|
const char *name;
|
|
|
|
int has_arg;
|
|
|
|
int *flag;
|
|
|
|
int val;
|
|
|
|
};
|
|
|
|
|
2001-09-19 09:07:11 +08:00
|
|
|
int getopt_long (int, char *const *, const char *, const struct option *, int *);
|
2006-01-09 20:41:54 +08:00
|
|
|
int getopt_long_only (int, char *const *, const char *, const struct option *, int *);
|
|
|
|
|
2001-12-27 01:48:44 +08:00
|
|
|
#ifndef HAVE_DECL_GETOPT
|
2001-12-31 12:00:07 +08:00
|
|
|
#define HAVE_DECL_GETOPT 1
|
2001-12-27 01:48:44 +08:00
|
|
|
#endif
|
2000-02-18 03:38:33 +08:00
|
|
|
|
|
|
|
#define no_argument 0
|
|
|
|
#define required_argument 1
|
|
|
|
#define optional_argument 2
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2001-12-18 05:34:59 +08:00
|
|
|
#endif /* __GETOPT_LONG_H__ */
|
|
|
|
#endif /* __UNISTD_GETOPT__ */
|
2006-01-06 01:35:14 +08:00
|
|
|
#endif /*_INSIDE_NEWLIB*/
|