SMOLNET PORTAL home about changes
/*****************************************************************************
 * JLWilkinson 25-Sep-1995  Use __VMS instead of VMS as trigger for VMS items
 * F.Macrides 24-Jul-1995   Don't typedef pid_t on VMS for DECC v5 or greater.
 */
/********************************************************************
 * lindner
 * 3.34
 * 1995/02/01 21:46:25
 * /home/arcwelder/GopherSrc/CVS/gopher+/object/compatible.h,v
 * Exp
 *
 * Paul Lindner, University of Minnesota CIS.
 *
 * Copyright 1991, 1992 by the Regents of the University of Minnesota
 * see the file "Copyright" in the distribution for conditions of use.
 *********************************************************************
 * MODULE: compatible.h
 * Header file to make things compatible and define stuff in compatible.c
 *********************************************************************
 * Revision History:
 * compatible.h,v
 * Revision 3.34  1995/02/01  21:46:25  lindner
 * Remove f from fgetpwent prototype
 *
 * Revision 3.33  1995/02/01  21:43:55  lindner
 * Add ultrix to machines that don't have fgetpwent
 *
 * Revision 3.32  1994/12/15  17:30:16  lindner
 * A replacement fgetpwent
 *
 * Revision 3.31  1994/11/24  08:09:53  lindner
 * Back to regular
 *
 * Revision 3.30  1994/11/18  22:04:33  lindner
 * Fix for FreeWAIS on NeXT machines
 *
 * Revision 3.29  1994/10/13  05:26:58  lindner
 * Add case for sequents
 *
 * Revision 3.28  1994/08/19  16:27:07  lindner
 * mktime() addition, sequent handling
 *
 * Revision 3.27  1994/07/22  17:19:08  lindner
 * AUX doesn't have strcoll
 *
 * Revision 3.26  1994/07/21  22:18:07  lindner
 * Add NO_PUTENV, NO_STRCOLL
 *
 * Revision 3.25  1994/07/06  02:59:12  lindner
 * DECC has strftime()
 *
 * Revision 3.24  1994/06/29  06:40:57  lindner
 * ifndef NO_UNISTD_H, include it so we can use POSIX stuff
 * use POSIX alternatives for getdtablesize()
 * ifdef _POSIX_SOURCE use POSIX functions like getcwd(), etc. (Coopersmith)
 *
 * Revision 3.23  1994/05/14  04:14:40  lindner
 * Fix for svr4.2 on unisys
 *
 * Revision 3.22  1994/05/11  02:41:57  lindner
 * Automagically define NO_VFORK for SCO
 *
 * Revision 3.21  1994/04/25  03:36:17  lindner
 * eliminate redefinition of open to open_vmsopt() for ALPHA (Fote)
 *
 * Revision 3.20  1994/04/08  20:05:56  lindner
 * gcc -Wall fixes
 *
 * Revision 3.19  1994/04/01  04:44:49  lindner
 * Fix for VMS
 *
 * Revision 3.18  1994/03/17  04:38:21  lindner
 * VMS weird directory routines
 *
 * Revision 3.17  1994/03/08  07:28:42  lindner
 * Fix for vfork on Aix
 *
 * Revision 3.16  1994/03/08  03:23:50  lindner
 * Waitpid for vms
 *
 * Revision 3.15  1994/03/07  04:43:54  lindner
 * Add pid_t, vfork
 *
 * Revision 3.14  1993/11/05  07:24:15  lindner
 * Fixes for NeXTs
 *
 * Revision 3.13  1993/10/27  18:51:12  lindner
 * Updates for VMS files/records
 *
 * Revision 3.12  1993/09/28  19:23:56  lindner
 * update for VMS getwd()
 *
 * Revision 3.11  1993/08/16  19:40:58  lindner
 * Fixes for Sequent Dynix
 *
 * Revision 3.10  1993/08/03  20:57:42  lindner
 * Really fix it for hocky pucks
 *
 * Revision 3.9  1993/08/03  06:43:48  lindner
 * Compatibility fix for hpux and seteguid
 *
 * Revision 3.8  1993/07/27  05:30:29  lindner
 * Mondo Debug overhaul from Mitra
 *
 * Revision 3.7  1993/07/20  23:33:27  lindner
 * Fix for NeXTs and pid_t
 *
 * Revision 3.6  1993/07/14  20:37:40  lindner
 * Fixes for VMS
 *
 * Revision 3.5  1993/07/07  19:29:19  lindner
 * Added LINGER compatibility option
 *
 * Revision 3.4  1993/06/22  05:53:19  lindner
 * Added getdtablesize() option
 *
 * Revision 3.3  1993/06/15  06:12:14  lindner
 * Updates for Solaris
 *
 * Revision 3.2  1993/04/15  21:36:33  lindner
 * Emulation of geteuid calls for HPs
 *
 * Revision 3.1.1.1  1993/02/11  18:03:05  lindner
 * Gopher+1.2beta release
 *
 * Revision 1.7  1993/01/14  21:58:02  lindner
 * Added #define that makes compatible compile fine under UCX
 *
 * Revision 1.6  1993/01/11  19:56:20  lindner
 * Fixed prototype for strcasecmp
 *
 * Revision 1.5  1993/01/09  02:25:57  lindner
 * Added definition for SIG_ERR for systems that don't have it.
 *
 * Revision 1.4  1993/01/08  23:17:20  lindner
 * Added more mods for VMS.
 *
 * Revision 1.3  1993/01/06  23:09:44  lindner
 * Added definition for AIX370 for strdup()
 *
 * Revision 1.2  1992/12/31  04:42:02  lindner
 * Changes for VMS, new switch NO_STRCASECMP
 *
 * Revision 1.1  1992/12/10  23:27:52  lindner
 * gopher 1.1 release
 *
 *
 *********************************************************************/
/*
 * Protoize a little 
 */

#ifndef compatible_h_
#define compatible_h_

/******************** get Unix standard definitions **/
#if defined(NO_UNISTD_H) || defined(NeXT) || defined(__VMS)
#  undef  NO_UNISTD_H
#  define NO_UNISTD_H 1
#else
#  include <unistd.h> 
#endif

/******************** for SIG_ERR **/
#include <signal.h>

#if !defined(SIG_ERR) && defined(sequent) && defined(BADSIG)
#  define SIG_ERR  BADSIG
#endif

#ifndef SIG_ERR
#  if defined(sequent) && defined(BADSIG)
#    define SIG_ERR	    BADSIG
#  else
#    ifdef __STDC__
#      define SIG_ERR         ((void (*) (int))-1)
#    else
#      define SIG_ERR         ((void (*) ())-1)
#    endif        /* __STDC__ */
#  endif
#endif        /* SIG_ERR */



/******************** for strstr() **/

#if defined(NOSTRSTR) || (defined(mips) && !defined(ultrix)) || defined(sequent) || defined(n16) || defined(sony_news)
#undef  NOSTRSTR
#define NOSTRSTR
char *strstr();
#endif

/******************** for tempnam() **/

#if defined(__convex__) || defined(NeXT) || defined(sequent) || defined(__VMS) || defined(NO_TEMPNAM)
#undef  NO_TEMPNAM
#define NO_TEMPNAM
char *tempnam();
#endif

/******************************** for strdup() **/

#if defined(mips) || defined(ultrix) || defined(NeXT) || defined(sony_news) || defined(sequent) || defined (__VMS) || defined(_AUX_SOURCE) || defined(_AIX370) || defined(NO_STRDUP) 
#  undef  NO_STRDUP
#  define NO_STRDUP
   char *strdup();
#endif

/********************** For bzero()/bcopy() etc */

#if defined(USG) || defined(NO_BZERO) || defined(_SEQUENT_) || defined(__VMS) || defined(__svr4__) 

#define bzero(a,b)   memset(a,'\0',b)
#define bcopy(a,b,c) memcpy(b,a,c)
     
#endif

/********************* For getwd() */

#if defined(M_XENIX) || defined(hpux) || defined(USG) || defined(NO_GETWD) ||      defined(__svr4__) || defined(__VMS) || defined(_POSIX_SOURCE)
# define getwd(a) getcwd(a,sizeof(a))
#endif

/********************* For tzset() */

#if defined(NO_TZSET) || defined(sequent)
#undef  NO_TZSET
#define NO_TZSET
void tzset();
#endif

/******************** For strcasecmp() */

#if defined(NO_STRCASECMP) || defined(__VMS) || defined(__USLC__)
#  undef NO_STRCASECMP
#  define NO_STRCASECMP
int strcasecmp();
#endif

/******************** For geteuid() */

#if defined(NO_SETEUID) || defined (__hpux)
# undef   NO_SETEUID
# define  NO_SETEUID


#define seteuid(x) setresuid(-1,x,-1)
#define setegid(x) setresgid(-1,x,-1)  

#endif


#if defined(_SEQUENT_)
# undef   NO_SETEUID
# define  NO_SETEUID

#define seteuid(x) setreuid(-1,x)
#define setegid(x) setregid(-1,x)

#endif

/********************* For getdtablesize() **/
#if defined(NO_GETDTABLESIZE) || defined(_POSIX_SOURCE) || defined(_XOPEN_SOURCE)
#undef NO_GETDTABLESIZE

# ifdef _SC_OPEN_MAX	/* prefered POSIX method */
#  define    getdtablesize()	sysconf(_SC_OPEN_MAX) 
# else /* if !defined(systems_without_limits.h) */
#  include <limits.h>
#  ifdef _POSIX_OPEN_MAX    /* alternate POSIX method */
#   define   getdtablesize()	(_POSIX_OPEN_MAX)
#  else
#   define NO_GETDTABLESIZE 1
int getdtablesize();
#  endif
# endif
#endif

/********************* For VMS */

#if defined(__VMS)
#  include <stdio.h>

#  define popen(a,b) fopen(a,b)
#  define pclose(a)  fclose(a)
#  define unlink delete

#  define fopen fopen_VMSopt
   FILE *fopen_VMSopt();
#ifndef __ALPHA
#  define open open_VMSopt
   int open_VMSopt();
#endif

#  if defined(UCX)
#    define closenet close
#  endif

   FILE *fopen_VAR();
   FILE *fopen_FIX();

#else
   /* non-VMS systems don't need a special netclose either */
#  define closenet close

#endif  /** VMS **/


/**********  For linger setsockopt() ***/

#if defined(linux) || defined(_SEQUENT_)
#  define NO_LINGER
#endif

/********** For NeXTs **************/
#ifdef NeXT
#  define ANSI_LIKE  /** freeWAIS bastards! **/
#endif

/********* Systems that can't set proctitles *******/
#if defined(_AUX_SOURCE) || defined(__svr4__) || defined(apollo)
#   undef SETPROCTITLE
#endif

/********* Fix for old stat.h stuff on bsd (I think) ******/
#if defined(NeXT) || defined(sequent) || defined(NO_NEWSTATDOTH)
#define S_IXUSR S_IEXEC
#endif

#if defined(NO_VFORK) || defined(_AUX_SOURCE) || defined(sgi) || defined(_AIX) || defined(M_XENIX)
#   define vfork fork
#endif

#ifdef __VMS
#include <types.h>
#ifndef __DEV_T 
  typedef int pid_t;
#endif
#endif

#if defined(NeXT) || defined(sequent) || defined(NO_PID_T)
  typedef int pid_t;
#endif

/********* strftime() - should be present in ANSI C libraries ******/
#ifndef __DECC
#if defined(sequent) || defined(NO_STRFTIME) || defined(__VMS)
#  undef NO_STRFTIME
#  define NO_STRFTIME
   int strftime();
#endif
#endif /* __DECC */

/********* mktime() - should be present in ANSI C libraries ******/
#if defined(NO_MKTIME) || defined(sequent)
#  undef NO_MKTIME
#  define NO_MKTIME
#endif


/********* strcoll - should be present in ANSI C libraries ******/
#if defined(NO_STRCOLL) || defined(sequent) || defined(__VMS) || defined(_AUX_SOURCE)
#  define strcoll strcmp
#endif


/******** putenv, in most systems except old BSD... *********/
#if defined(NO_PUTENV) || defined(NeXT) || defined(sequent)
#  undef NO_PUTENV
#  define NO_PUTENV
   int putenv();
#endif

/******* fgetpwent(), sortof non-standard BSD derived fcn *******/
#if defined(NO_FGETPWENT) || defined(_AIX) || defined(ultrix)
#  undef  NO_FGETPWENT
#  define NO_FGETPWENT
#  include <pwd.h>

   struct passwd *fgetpwent();
#endif

#endif  /* compatible_h_ */
.
Response: text/plain
Original URLgopher://bitreich.org/9/gopher2007/2007-gopher-mirror/gop...
Content-Typetext/plain; charset=utf-8