/* * NuLib2 * Copyright (C) 2000-2007 by Andy McFadden, All Rights Reserved. * This is free software; you can redistribute it and/or modify it under the * terms of the BSD License, see the file COPYING. * * This was adapted from gzip's "tailor.h" and NuLib's "nudefs.h". */ #ifndef NULIB2_SYSDEFS_H #define NULIB2_SYSDEFS_H #ifdef HAVE_CONFIG_H # include #endif #ifdef DEBUG_VERBOSE # define DEBUG_MSGS #endif /* these should exist everywhere */ #include #include #include #include #include #include #include #include /* basic Win32 stuff -- info-zip has much more complete defs */ #if defined(_WIN32) || defined(MSDOS) # define WINDOWS_LIKE # ifndef HAVE_CONFIG_H # define HAVE_FCNTL_H # define HAVE_MALLOC_H # define HAVE_STDLIB_H # define HAVE_SYS_STAT_H # undef HAVE_SYS_TIME_H # define HAVE_SYS_TYPES_H # undef HAVE_UNISTD_H # undef HAVE_UTIME_H # define HAVE_SYS_UTIME_H # define HAVE_WINDOWS_H # define HAVE_FDOPEN # undef HAVE_FTRUNCATE # define HAVE_MEMMOVE # undef HAVE_MKSTEMP # define HAVE_MKTIME # define HAVE_SNPRINTF # undef HAVE_STRCASECMP # undef HAVE_STRNCASECMP # define HAVE_STRERROR # define HAVE_STRTOUL # define HAVE_VSNPRINTF # define SNPRINTF_DECLARED # define VSNPRINTF_DECLARED # define SPRINTF_RETURNS_INT # define inline /*Visual C++6.0 can't inline ".c" files*/ # define mode_t int # endif # include # include # define FOPEN_WANTS_B # define HAVE_CHSIZE # if _MSC_VER < 1900 /* no snprintf until Visual Studio 2015 */ # define snprintf _snprintf # define vsnprintf _vsnprintf # endif #endif #ifdef HAVE_MALLOC_H # include #endif #ifdef HAVE_STDLIB_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef HAVE_SYS_TIME_H # include #endif #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_UNISTD_H # include #endif #if defined(WINDOWS_LIKE) # ifndef F_OK # define F_OK 00 # endif # ifndef R_OK # define R_OK 04 # endif #endif #if defined(__unix__) || defined(__unix) || defined(__BEOS__) || \ defined(__hpux) || defined(_AIX) || defined(__APPLE__) # define UNIX_LIKE #endif #if defined(__MSDOS__) && !defined(MSDOS) # define MSDOS #endif #if defined(__OS2__) && !defined(OS2) # define OS2 #endif #if defined(OS2) && defined(MSDOS) /* MS C under OS/2 */ # undef MSDOS #endif /* this ought to get trimmed down */ #ifdef MSDOS # ifndef __GNUC__ # ifdef __TURBOC__ # define NO_OFF_T # ifdef __BORLANDC__ # define DIRENT # else # define NO_UTIME # endif # else /* MSC */ # define HAVE_SYS_UTIME_H # define NO_UTIME_H # endif # endif # define PATH_SEP '\\' # define PATH_SEP2 '/' # define PATH_SEP3 ':' # ifdef MAX_PATH # define MAX_PATH_LEN MAX_PATH # else # define MAX_PATH_LEN 128 # endif # define NO_MULTIPLE_DOTS # define MAX_EXT_CHARS 3 # define NO_CHOWN # define PROTO # ifndef HAVE_CONFIG_H # define STDC_HEADERS # endif # define NO_SIZE_CHECK # define SYSTEM_DEFAULT_EOL "\r\n" #endif #ifdef WIN32 /* Windows 95/98/NT */ # define HAVE_SYS_UTIME_H # define NO_UTIME_H # define PATH_SEP '\\' # define PATH_SEP2 '/' # define PATH_SEP3 ':' # ifdef MAX_PATH # define MAX_PATH_LEN MAX_PATH # else # define MAX_PATH_LEN 260 # endif # define PROTO # define STDC_HEADERS # define SYSTEM_DEFAULT_EOL "\r\n" #endif #ifdef MACOS # define PATH_SEP ':' # define NO_CHOWN # define NO_UTIME # define SYSTEM_DEFAULT_EOL "\r" #endif #if defined(__APPLE__) && defined(__MACH__) /* OS X */ # define MAC_LIKE # define UNIX_LIKE #endif /* not currently using filesystem resource forks */ //#if defined(__ORCAC__) || defined(MAC_LIKE) //# define HAS_RESOURCE_FORKS //#endif #if defined(APW) || defined(__ORCAC__) # define __appleiigs__ # pragma lint -1 # pragma memorymodel 1 # pragma optimize 7 /*# pragma debug 25 */ # define PATH_SEP ':' # define SYSTEM_DEFAULT_EOL "\r" # ifdef GNO # define HAS_DIRENT # endif #endif #ifdef __GNUC__ /* this was missing from BeOS __MWERKS__, and probably others */ # define HAS__FUNCTION__ #endif /* general defaults, mainly for UNIX */ #ifndef PATH_SEP # define PATH_SEP '/' #endif #ifndef SYSTEM_DEFAULT_EOL # define SYSTEM_DEFAULT_EOL "\n" #endif #ifndef MAX_PATH_LEN # define MAX_PATH_LEN 1024 #endif #endif /*NULIB2_SYSDEFS_H*/