1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
/*
Copyright (c) 1990-1999 Info-ZIP. All rights reserved.
See the accompanying file LICENSE, version 1999-Oct-05 or later
(the contents of which are also included in zip.h) for terms of use.
If, for some reason, both of these files are missing, the Info-ZIP license
also may be found at: ftp://ftp.cdrom.com/pub/infozip/license.html
*/
/* Include file for VM/CMS and MVS */
/* This is normally named osdep.h on most systems. Since CMS */
/* generally doesn't support directories, it's been given a unique */
/* name to avoid confusion. */
#ifndef __cmsmvs_h /* prevent multiple inclusions */
#define __cmsmvs_h
#ifdef MVS
# define _POSIX_SOURCE /* tell MVS we want full definitions */
# include <features.h>
#endif /* MVS */
#include <time.h> /* the usual non-BSD time functions */
/* cstat.h is not required for MVS and actually gets in the way. Is it
* needed for CMS?
*/
#ifdef MVS
# include <sys/stat.h>
# include <sys/modes.h>
#else /* !MVS */
# include "cstat.h"
#endif
/* Newer compiler version defines something for us */
#if defined(__VM__) && !defined(VM_CMS)
# define VM_CMS
#endif
#define CMS_MVS
#define EBCDIC
#ifndef MVS /* MVS has perfectly good definitions for the following */
# define NO_UNISTD_H
# define NO_FCNTL_H
#endif /*MVS */
/* If we're generating a stand-alone CMS module, patch in */
/* a new main() function before the real main() for arg parsing. */
#ifdef CMS_STAND_ALONE
# define USE_ZIPMAIN
#endif
#ifndef NULL
# define NULL 0
#endif
#define PASSWD_FROM_STDIN
/* Kludge until we know how to open a non-echo tty channel */
/* definition for ZIP */
#define getch() getc(stdin)
#define native(c) ebcdic[(c)]
#define MAXPATHLEN 128
#define NO_RMDIR
#define NO_MKTEMP
#define USE_CASE_MAP
#ifndef MVS /* MVS has perfectly good definitions for the following */
# define fileno(x) (char *)(x)
# define fdopen fopen
# define unlink remove
# define link rename
# define utime(f,t)
# define isatty(t) 1
#endif /*MVS */
#ifdef ZCRYPT_INTERNAL
# define ZCR_SEED2 (unsigned)3141592654L /* use PI as seed pattern */
#endif
#ifdef MVS
# if defined(__CRC32_C)
# pragma csect(STATIC,"crc32_s")
# elif defined(__DEFLATE_C)
# pragma csect(STATIC,"deflat_s")
# elif defined(__ZIPFILE_C)
# pragma csect(STATIC,"zipfil_s")
# elif defined(__ZIPUP_C)
# pragma csect(STATIC,"zipup_s")
# endif
#endif /* MVS */
/* end defines for ZIP */
/* definitions for UNZIP */
#ifdef UNZIP
#define INBUFSIZ 8192
#define USE_STRM_INPUT
#define USE_FWRITE
#define PATH_MAX 128
#endif /* UNZIP */
#if 0 /*$RGH$*/
/* RECFM=F, LRECL=1 works for sure */
#define FOPR "rb,recfm=fb"
#define FOPM "r+"
#define FOPW "wb,recfm=fb,lrecl=1"
#define FOPWT "w"
#endif
/* Try allowing ZIP files to be RECFM=V with "byteseek" for CMS, recfm=U for MVS */
#define FOPR "rb,byteseek"
#define FOPM "r+,byteseek"
#ifdef MVS
#define FOPW "wb,recfm=u,byteseek"
#else /* !MVS */
#define FOPW "wb,recfm=v,lrecl=32760,byteseek"
#endif /* MVS */
#if 0
#define FOPW_TMP "w,byteseek"
#else
#define FOPW_TMP "w,type=memory(hiperspace)"
#endif
#define CBSZ 0x40000
#define ZBSZ 0x40000
#endif /* !__cmsmvs_h */
|