diff options
author | Erik Andersen <andersen@codepoet.org> | 2000-05-19 05:35:19 +0000 |
---|---|---|
committer | Erik Andersen <andersen@codepoet.org> | 2000-05-19 05:35:19 +0000 |
commit | 330fd2b5767110f29544131d4c72c77e0506b6df (patch) | |
tree | aa360774a903d3ebb0b2b5f3031c2e359f9c3afb /gunzip.c | |
parent | d356c6e9d1bc091c64200ecc401aa9b6ffb53151 (diff) |
More libc portability updates, add in the website (which has not been
archived previously). Wrote 'which' during the meeting today.
-Erik
Diffstat (limited to 'gunzip.c')
-rw-r--r-- | gunzip.c | 151 |
1 files changed, 11 insertions, 140 deletions
@@ -367,25 +367,23 @@ void send_bits (int value, int length); unsigned bi_reverse (unsigned value, int length); void bi_windup (void); void copy_block (char *buf, unsigned len, int header); -extern int (*read_buf) (char *buf, unsigned size); /* in util.c: */ -extern int copy (int in, int out); extern ulg updcrc (uch * s, unsigned n); extern void clear_bufs (void); -extern int fill_inbuf (int eof_ok); +static int fill_inbuf (int eof_ok); extern void flush_outbuf (void); -extern void flush_window (void); +static void flush_window (void); extern void write_buf (int fd, void * buf, unsigned cnt); #ifndef __linux__ -extern char *basename (char *fname); +static char *basename (char *fname); #endif /* not __linux__ */ -extern void read_error (void); -extern void write_error (void); +void read_error_msg (void); +void write_error_msg (void); /* in inflate.c */ -extern int inflate (void); +static int inflate (void); /* #include "lzw.h" */ @@ -450,133 +448,6 @@ extern int unlzw (int in, int out); # undef LZW #endif -/* #include "getopt.h" */ - -/* Declarations for getopt. - Copyright (C) 1989, 1990, 1991, 1992, 1993 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 2, 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, write to the Free Software - Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -#ifndef _GETOPT_H -#define _GETOPT_H 1 - -#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 { -#if __STDC__ - const char *name; -#else - char *name; -#endif - /* 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 - -#if __STDC__ || defined(PROTO) -#if defined(__GNU_LIBRARY__) -/* Many other libraries have conflicting prototypes for getopt, with - differences in the consts, in stdlib.h. To avoid compilation - errors, only prototype getopt for the GNU C library. */ - extern int getopt(int argc, char *const *argv, const char *shortopts); -#endif /* not __GNU_LIBRARY__ */ - extern int getopt_long(int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind); - extern int getopt_long_only(int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, - int *longind); - -/* Internal only. Users should not call this directly. */ - extern int _getopt_internal(int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, - int *longind, int long_only); -#else /* not __STDC__ */ - extern int getopt(); - extern int getopt_long(); - extern int getopt_long_only(); - - extern int _getopt_internal(); -#endif /* not __STDC__ */ - -#ifdef __cplusplus -} -#endif -#endif /* _GETOPT_H */ #include <time.h> #include <fcntl.h> #include <unistd.h> @@ -1161,7 +1032,7 @@ unsigned n; /* number of bytes in s[] */ /* =========================================================================== * Clear input and output buffers */ -void clear_bufs() +void clear_bufs(void) { outcnt = 0; insize = inptr = 0; @@ -1189,7 +1060,7 @@ int eof_ok; /* set if EOF acceptable as a result */ if (insize == 0) { if (eof_ok) return EOF; - read_error(); + read_error_msg(); } bytes_in += (ulg) insize; inptr = 1; @@ -1240,7 +1111,7 @@ unsigned cnt; while ((n = write(fd, buf, cnt)) != cnt) { if (n == (unsigned) (-1)) { - write_error(); + write_error_msg(); } cnt -= n; buf = (void *) ((char *) buf + n); @@ -1306,7 +1177,7 @@ const char *reject; /* ======================================================================== * Error handlers. */ -void read_error() +void read_error_msg() { fprintf(stderr, "\n"); if (errno != 0) { @@ -1317,7 +1188,7 @@ void read_error() abort_gzip(); } -void write_error() +void write_error_msg() { fprintf(stderr, "\n"); perror(""); |