12311Sjkh/* Copyright 1993,1994 by Paul Vixie
22311Sjkh * All rights reserved
32311Sjkh *
42311Sjkh * Distribute freely, except: don't remove my name from the source or
52311Sjkh * documentation (don't take credit for my work), mark your changes (don't
62311Sjkh * get me blamed for your possible bugs), don't alter or remove this
72311Sjkh * notice.  May be sold if buildable source is provided to buyer.  No
82311Sjkh * warrantee of any kind, express or implied, is included with this
92311Sjkh * software; use at your own risk, responsibility for damages (if any) to
102311Sjkh * anyone resulting from the use of this software rests entirely with the
112311Sjkh * user.
122311Sjkh *
132311Sjkh * Send bug reports, bug fixes, enhancements, requests, flames, etc., and
142311Sjkh * I'll try to keep a version up to date.  I can be reached as follows:
152311Sjkh * Paul Vixie          <paul@vix.com>          uunet!decwrl!vixie!paul
162311Sjkh */
172311Sjkh
182311Sjkh/*
1950479Speter * $FreeBSD: stable/11/usr.sbin/cron/cron/compat.h 358255 2020-02-23 03:13:38Z kevans $
202311Sjkh */
212311Sjkh
222311Sjkh#ifndef __P
232311Sjkh# ifdef __STDC__
242311Sjkh#  define __P(x) x
252311Sjkh# else
262311Sjkh#  define __P(x) ()
272311Sjkh#  define const
282311Sjkh# endif
292311Sjkh#endif
302311Sjkh
312311Sjkh#if defined(UNIXPC) || defined(unixpc)
322311Sjkh# define UNIXPC 1
332311Sjkh# define ATT 1
342311Sjkh#endif
352311Sjkh
362311Sjkh#if defined(hpux) || defined(_hpux) || defined(__hpux)
372311Sjkh# define HPUX 1
382311Sjkh# define seteuid(e) setresuid(-1,e,-1)
392311Sjkh# define setreuid(r,e)	setresuid(r,e,-1)
402311Sjkh#endif
412311Sjkh
422311Sjkh#if defined(_IBMR2)
432311Sjkh# define AIX 1
442311Sjkh#endif
452311Sjkh
462311Sjkh#if defined(__convex__)
472311Sjkh# define CONVEX 1
482311Sjkh#endif
492311Sjkh
502311Sjkh#if defined(sgi) || defined(_sgi) || defined(__sgi)
512311Sjkh# define IRIX 1
522311Sjkh/* IRIX 4 hdrs are broken: one cannot #include both <stdio.h>
532311Sjkh * and <stdlib.h> because they disagree on system(), perror().
542311Sjkh * Therefore we must zap the "const" keyword BEFORE including
552311Sjkh * either of them.
562311Sjkh */
572311Sjkh# define const
582311Sjkh#endif
592311Sjkh
602311Sjkh#if defined(_UNICOS)
612311Sjkh# define UNICOS 1
622311Sjkh#endif
632311Sjkh
642311Sjkh#ifndef POSIX
652311Sjkh# if (BSD >= 199103) || defined(__linux) || defined(ultrix) || defined(AIX) ||\
662311Sjkh	defined(HPUX) || defined(CONVEX) || defined(IRIX)
672311Sjkh#  define POSIX
682311Sjkh# endif
692311Sjkh#endif
702311Sjkh
712311Sjkh#ifndef BSD
722311Sjkh# if defined(ultrix)
732311Sjkh#  define BSD 198902
742311Sjkh# endif
752311Sjkh#endif
762311Sjkh
772311Sjkh/*****************************************************************/
782311Sjkh
792311Sjkh#if (!defined(BSD) || (BSD < 198902)) && !defined(__linux) && \
802311Sjkh	!defined(IRIX) && !defined(NeXT) && !defined(HPUX)
812311Sjkh# define NEED_STRCASECMP
822311Sjkh#endif
832311Sjkh
842311Sjkh#if (!defined(BSD) || (BSD < 198911)) && !defined(__linux) &&\
852311Sjkh	!defined(IRIX) && !defined(UNICOS) && !defined(HPUX)
862311Sjkh# define NEED_STRDUP
872311Sjkh#endif
882311Sjkh
892311Sjkh#if (!defined(BSD) || (BSD < 198911)) && !defined(POSIX) && !defined(NeXT)
902311Sjkh# define NEED_STRERROR
912311Sjkh#endif
922311Sjkh
932311Sjkh#if defined(HPUX) || defined(AIX) || defined(UNIXPC)
942311Sjkh# define NEED_FLOCK
952311Sjkh#endif
962311Sjkh
972311Sjkh#ifndef POSIX
982311Sjkh# define NEED_SETSID
992311Sjkh#endif
1002311Sjkh
1012311Sjkh#if (defined(POSIX) && !defined(BSD)) && !defined(__linux)
1022311Sjkh# define NEED_GETDTABLESIZE
1032311Sjkh#endif
1042311Sjkh
1058169Sache#ifdef POSIX
1068169Sache#include <unistd.h>
1078169Sache#ifdef _POSIX_SAVED_IDS
1082311Sjkh# define HAVE_SAVED_UIDS
1092311Sjkh#endif
1108169Sache#endif
1112311Sjkh
1122311Sjkh#if !defined(ATT) && !defined(__linux) && !defined(IRIX) && !defined(UNICOS)
1132311Sjkh# define USE_SIGCHLD
1142311Sjkh#endif
1152311Sjkh
1162311Sjkh#if !defined(AIX) && !defined(UNICOS)
1172311Sjkh# define SYS_TIME_H 1
1182311Sjkh#else
1192311Sjkh# define SYS_TIME_H 0
1202311Sjkh#endif
1212311Sjkh
1222311Sjkh#if defined(BSD) && !defined(POSIX)
1232311Sjkh# define USE_UTIMES
1242311Sjkh#endif
1252311Sjkh
1262311Sjkh#if defined(AIX) || defined(HPUX) || defined(IRIX)
1272311Sjkh# define NEED_SETENV
1282311Sjkh#endif
1292311Sjkh
1302311Sjkh#if !defined(UNICOS) && !defined(UNIXPC)
1312311Sjkh# define HAS_FCHOWN
1322311Sjkh#endif
1332311Sjkh
1342311Sjkh#if !defined(UNICOS) && !defined(UNIXPC)
1352311Sjkh# define HAS_FCHMOD
1362311Sjkh#endif
137