/* Copyright 1993,1994 by Paul Vixie
* Distribute freely, except: don't remove my name from the source or
* documentation (don't take credit for my work), mark your changes (don't
* get me blamed for your possible bugs), don't alter or remove this
* notice. May be sold if buildable source is provided to buyer. No
* warrantee of any kind, express or implied, is included with this
* software; use at your own risk, responsibility for damages (if any) to
* anyone resulting from the use of this software rests entirely with the
* Send bug reports, bug fixes, enhancements, requests, flames, etc., and
* I'll try to keep a version up to date. I can be reached as follows:
* Paul Vixie <paul@vix.com> uunet!decwrl!vixie!paul
#if defined(POSIX) || defined(ATT)
# define DIR_T struct dirent
# define TZONE(tm) tzname[(tm).tm_isdst]
# define WAIT_T union wait
#if !defined(POSIX) && !defined(ATT)
extern struct tm
*localtime();
extern struct passwd
*getpwnam();
extern void perror(), exit(), free();
extern char *getenv(), *strcpy(), *strchr(), *strtok();
extern void *malloc(), *realloc();
# define WAIT_T union wait
# define DIR_T struct direct
# define TZONE(tm) (tm).tm_zone
/* getopt() isn't part of POSIX. some systems define it in <stdlib.h> anyway.
* of those that do, some complain that our definition is different and some
* do not. to add to the misery and confusion, some systems define getopt()
* in ways that we cannot predict or comprehend, yet do not define the adjunct
* external variables needed for the interface.
#if (!defined(BSD) || (BSD < 198911)) && !defined(ATT) && !defined(UNICOS)
int getopt
__P((int, char * const *, const char *));
#if (!defined(BSD) || (BSD < 199103))
extern int optind
, opterr
, optopt
;
# define WEXITSTATUS(x) (((x) >> 8) & 0xff)
# define WTERMSIG(x) ((x) & 0x7f)
# define WCOREDUMP(x) ((x) & 0x80)
# define WEXITSTATUS(x) ((x).w_retcode)
# define WTERMSIG(x) ((x).w_termsig)
# define WCOREDUMP(x) ((x).w_coredump)
#define WIFSIGNALED(x) (WTERMSIG(x) != 0)
#define WIFEXITED(x) (WTERMSIG(x) == 0)
extern int strcasecmp
__P((char *, char *));
extern char *strdup
__P((char *));
extern char *strerror
__P((int));
extern int flock
__P((int, int));
extern int setsid
__P((void));
#ifdef NEED_GETDTABLESIZE
extern int getdtablesize
__P((void));
extern int setenv
__P((char *, char *, int));
extern PID_T vfork
__P((void));