unzip/cmsmvs/vmmvs.h

97 lines
2.6 KiB
C

/*
Copyright (c) 1990-2008 Info-ZIP. All rights reserved.
See the accompanying file LICENSE, version 2007-Mar-04 or later
(the contents of which are also included in unzip.h) for terms of use.
If, for some reason, all these files are missing, the Info-ZIP license
also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
*/
/* vmmvs.h: include file for both VM/CMS and MVS ports of UnZip */
#ifndef __vmmvs_h /* prevent multiple inclusions */
#define __vmmvs_h
#ifndef NULL
# define NULL (zvoid *)0
#endif
#ifdef MVS
# define _POSIX_SOURCE /* tell MVS we want full definitions */
# define NO_STRNICMP /* MVS has no strnicmp() */
# include <features.h>
/* MVS complains if a function has the same name as a csect. */
# if defined(__UNZIP_C)
# pragma csect(STATIC,"unzip_s")
# elif defined(__CRC32_C)
# pragma csect(STATIC,"crc32_s")
# elif defined(__ENVARGS_C)
# pragma csect(STATIC,"envarg_s")
# elif defined(__EXPLODE_C)
# pragma csect(STATIC,"explod_s")
# elif defined(__INFLATE_C)
# pragma csect(STATIC,"inflat_s")
# elif defined(__MATCH_C)
# pragma csect(STATIC,"match_s")
# elif defined(__UNREDUCE_C)
# pragma csect(STATIC,"unredu_s")
# elif defined(__UNSHRINK_C)
# pragma csect(STATIC,"unshri_s")
# elif defined(__ZIPINFO_C)
# pragma csect(STATIC,"zipinf_s")
# endif
#endif /* MVS */
#include <time.h> /* the usual non-BSD time functions */
#ifdef VM_CMS
# include "vmstat.h"
#endif
#ifdef MVS
# include <sys/stat.h>
#endif
#define PASSWD_FROM_STDIN
/* Kludge until we know how to open a non-echo tty channel */
#define EBCDIC
/* In the context of Info-ZIP, a portable "text" mode file implies the use of
an ASCII-compatible (ISO 8859-1, or other extended ASCII) code page. */
#ifdef MORE
# undef MORE
#endif
/* Workarounds for missing RTL functionality */
#define isatty(t) 1
#ifdef UNZIP /* definitions for UNZIP */
#define INBUFSIZ 8192
#define USE_STRM_INPUT
#define USE_FWRITE
#define PATH_MAX 128
#ifndef QUERY_TRNEWLN
# define QUERY_TRNEWLN /* terminate interaction queries with '\n' */
#endif
#ifndef DATE_FORMAT
# define DATE_FORMAT DF_MDY
#endif
#define lenEOL 1
/* The use of "ebcdic[LF]" is not reliable; VM/CMS C/370 uses the
* EBCDIC specific "NL" ('NewLine') control character (and not the EBCDIC
* equivalent of the ASCII "LF" ('LineFeed')) as line terminator!
* To work around this problem, we explicitely emit the C compiler's native
* '\n' line terminator.
*/
#if 0
#define PutNativeEOL *q++ = native(LF);
#else
#define PutNativeEOL *q++ = '\n';
#endif
#endif /* UNZIP */
#endif /* !__vmmvs_h */