diff options
author | Eric Andersen <andersen@codepoet.org> | 2001-01-11 11:42:17 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2001-01-11 11:42:17 +0000 |
commit | ae97a89e1a1a9833080dccc81f6cd26784e1b964 (patch) | |
tree | 6ff1ddc7e3980591c7fd0bbd5d9b8ac82da12886 /include | |
parent | abdc3e4d06db2b9d93c509774fc7c4fde918ec8e (diff) |
A large update from Manuel Novoa III <mnovoa3@bellsouth.net>.
Diffstat (limited to 'include')
-rw-r--r-- | include/getopt.h | 105 | ||||
-rw-r--r-- | include/stdio.h | 14 | ||||
-rw-r--r-- | include/sys/param.h | 2 |
3 files changed, 104 insertions, 17 deletions
diff --git a/include/getopt.h b/include/getopt.h index a4cb95496..725d9cbd4 100644 --- a/include/getopt.h +++ b/include/getopt.h @@ -1,18 +1,109 @@ -/* Copyright (C) 1996 Robert de Bath <rdebath@cix.compulink.co.uk> - * This file is part of the Linux-8086 C library and is distributed - * under the GNU Library General Public License. - */ +/* Declarations for getopt. + Copyright (C) 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc. -#ifndef __GETOPT_H -#define __GETOPT_H +This file is part of the GNU C Library. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library 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 +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 675 Mass Ave, +Cambridge, MA 02139, USA. */ + +#ifndef _GETOPT_H +#define _GETOPT_H 1 #include <features.h> +#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 EOF, 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; +/* 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. */ + +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; +}; + +/* Names for the values of the `has_arg' field of `struct option'. */ + +#define no_argument 0 +#define required_argument 1 +#define optional_argument 2 + extern int getopt __P((int argc, char *const *argv, const char *shortopts)); +extern int getopt_long __P((int argc, char *const *argv, const char *shortopts, + const struct option *longopts, int *longind)); +extern int getopt_long_only __P((int argc, char *const *argv, + const char *shortopts, + const struct option *longopts, int *longind)); + +#ifdef __cplusplus +} +#endif -#endif /* __GETOPT_H */ +#endif /* _GETOPT_H */ diff --git a/include/stdio.h b/include/stdio.h index a7a468788..01f6667ef 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -105,16 +105,12 @@ typedef struct __stdio_file FILE; #include <bits/stdio_lim.h> #undef __need_FOPEN_MAX - -/* Standard streams. */ -extern FILE stdin[1]; /* Standard input stream. */ -extern FILE stdout[1]; /* Standard output stream. */ -extern FILE stderr[1]; /* Standard error output stream. */ +/* Standard streams (internal). */ +extern FILE _stdio_streams[3]; /* C89/C99 say they're macros. Make them happy. */ -#define stdin stdin -#define stdout stdout -#define stderr stderr - +#define stdin (_stdio_streams) +#define stdout (_stdio_streams+1) +#define stderr (_stdio_streams+2) /* Remove file FILENAME. */ extern int remove __P ((__const char *__filename)); diff --git a/include/sys/param.h b/include/sys/param.h index 511c2ae1e..c59222cd4 100644 --- a/include/sys/param.h +++ b/include/sys/param.h @@ -9,7 +9,7 @@ #include <features.h> #include <limits.h> #include <linux/limits.h> -#include <linux/param.h> +#include <asm/param.h> #include <sys/types.h> |