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
|
/*
Copyright (c) 1990-2005 Info-ZIP. All rights reserved.
See the accompanying file LICENSE, version 2004-May-22 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.info-zip.org/pub/infozip/license.html
*/
#ifndef VMS
# define VMS 1
#endif
#if (defined(__VMS_VER) && !defined(__CRTL_VER))
# define __CRTL_VER __VMS_VER
#endif
#if (defined(__VMS_VERSION) && !defined(VMS_VERSION))
# define VMS_VERSION __VMS_VERSION
#endif
#if !(defined(__DECC) || defined(__DECCXX) || defined(__GNUC__))
/* VAX C does not properly support the void keyword. (Only functions
are allowed to have the type "void".) */
# ifndef NO_TYPEDEF_VOID
# define NO_TYPEDEF_VOID
# endif
# define NO_FCNTL_H /* VAXC does not supply fcntl.h. */
#endif /* VAX C */
#define NO_UNISTD_H
#define USE_CASE_MAP
#define PROCNAME(n) (action == ADD || action == UPDATE ? wild(n) : \
procname(n, 1))
#include <types.h>
#include <stat.h>
#include <unixio.h>
#if defined(__GNUC__) && !defined(ZCRYPT_INTERNAL)
# include <unixlib.h> /* ctermid() declaration needed in ttyio.c */
#endif
#ifdef ZCRYPT_INTERNAL
# include <unixlib.h> /* getpid() declaration for srand seed */
#endif
#if defined(_MBCS)
# undef _MBCS /* Zip on VMS does not support MBCS */
#endif
#if !defined(NO_EF_UT_TIME) && !defined(USE_EF_UT_TIME)
# if (defined(__CRTL_VER) && (__CRTL_VER >= 70000000))
# define USE_EF_UT_TIME
# endif
#endif
#if defined(VMS_PK_EXTRA) && defined(VMS_IM_EXTRA)
# undef VMS_IM_EXTRA /* PK style takes precedence */
#endif
#if !defined(VMS_PK_EXTRA) && !defined(VMS_IM_EXTRA)
# define VMS_PK_EXTRA 1 /* PK style VMS support is default */
#endif
#define unlink delete
#define NO_SYMLINK
#define SSTAT vms_stat
#define EXIT(exit_code) vms_exit(exit_code)
#define RETURN(exit_code) return (vms_exit(exit_code), 1)
#ifdef __DECC
/* File open callback ID values. */
# define FOPM_ID 1
# define FOPR_ID 2
# define FOPW_ID 3
/* File open callback ID storage. */
extern int fopm_id;
extern int fopr_id;
extern int fopw_id;
/* File open callback ID function. */
extern int acc_cb();
/* Option macros for zfopen().
* General: Stream access
* Output: fixed-length, 512-byte records.
*
* Callback function (DEC C only) sets deq, mbc, mbf, rah, wbh, ...
*/
# define FOPM "r+b", "ctx=stm", "rfm=fix", "mrs=512", "acc", acc_cb, &fopm_id
# define FOPR "rb", "ctx=stm", "acc", acc_cb, &fopr_id
# define FOPW "wb", "ctx=stm", "rfm=fix", "mrs=512", "acc", acc_cb, &fopw_id
#else /* def __DECC */ /* (So, GNU C, VAX C, ...)*/
# define FOPM "r+b", "ctx=stm", "rfm=fix", "mrs=512"
# define FOPR "rb", "ctx=stm"
# define FOPW "wb", "ctx=stm", "rfm=fix", "mrs=512"
#endif /* def __DECC */
|