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