123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- /*
- Copyright (c) 1990-2009 Info-ZIP. All rights reserved.
- See the accompanying file LICENSE, version 2009-Jan-02 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
- */
- /*---------------------------------------------------------------------------
- OpenVMS specific configuration section (included by unzpriv.h):
- ---------------------------------------------------------------------------*/
- #ifndef __vmscfg_h /* Prevent (unlikely) multiple inclusions. */
- #define __vmscfg_h
- /* Workaround for broken header files of older DECC distributions
- * that are incompatible with the /NAMES=AS_IS qualifier. */
- #define cma$tis_errno_get_addr CMA$TIS_ERRNO_GET_ADDR
- /* LARGE FILE SUPPORT - 10/6/04 EG */
- /* This needs to be set before the includes so they set the right sizes */
- #ifdef NO_LARGE_FILE_SUPPORT
- # ifdef LARGE_FILE_SUPPORT
- # undef LARGE_FILE_SUPPORT
- # endif
- #endif
- #ifdef LARGE_FILE_SUPPORT
- # define _LARGEFILE /* Define the pertinent macro. */
- /* LARGE_FILE_SUPPORT implies ZIP64_SUPPORT,
- unless explicitly disabled by NO_ZIP64_SUPPORT.
- */
- # ifdef NO_ZIP64_SUPPORT
- # ifdef ZIP64_SUPPORT
- # undef ZIP64_SUPPORT
- # endif
- # else
- # ifndef ZIP64_SUPPORT
- # define ZIP64_SUPPORT
- # endif
- # endif
- #endif /* def LARGE_FILE_SUPPORT */
- /* 2007-02-22 SMS.
- * Enable symbolic links according to the available C RTL support,
- * unless prohibited by the user defining NO_SYMLINKS.
- */
- #if !defined(__VAX) && defined(__CRTL_VER) && __CRTL_VER >= 70301000
- # ifndef NO_SYMLINKS
- # define SYMLINKS
- # endif
- #endif
- #ifdef SYMLINKS
- # include <unistd.h>
- #endif
- # include <types.h> /* GRR: experimenting... */
- # include <stat.h>
- # include <time.h> /* the usual non-BSD time functions */
- # include <file.h> /* same things as fcntl.h has */
- # include <unixio.h>
- # include <rms.h>
- /* Define maximum path length according to NAM[L] member size. */
- # ifndef NAM_MAXRSS
- # ifdef NAML$C_MAXRSS
- # define NAM_MAXRSS NAML$C_MAXRSS
- # else
- # define NAM_MAXRSS NAM$C_MAXRSS
- # endif
- # endif
- # define _MAX_PATH (NAM_MAXRSS+1) /* to define FILNAMSIZ below */
- # ifdef RETURN_CODES /* VMS interprets standard PK return codes incorrectly */
- # define RETURN(ret) return_VMS(__G__ (ret)) /* verbose version */
- # define EXIT(ret) return_VMS(__G__ (ret))
- # else
- # define RETURN return_VMS /* quiet version */
- # define EXIT return_VMS
- # endif
- # ifdef VMSCLI
- # define USAGE(ret) VMSCLI_usage(__G__ (ret))
- # endif
- # define DIR_BEG '['
- # define DIR_END ']'
- # define DIR_EXT ".dir"
- # ifndef UZ_FNFILTER_REPLACECHAR
- /* We use '?' instead of the single char wildcard '%' as "unprintable
- * charcode" placeholder, because '%' is valid for ODS-5 names but '?'
- * is invalid. This choice may allow easier detection of "unprintables"
- * when reading the fnfilter() output.
- */
- # define UZ_FNFILTER_REPLACECHAR '?'
- # endif
- # ifndef DATE_FORMAT
- # define DATE_FORMAT DF_MDY
- # endif
- # define lenEOL 1
- # define PutNativeEOL *q++ = native(LF);
- # define SCREENSIZE(ttrows, ttcols) screensize(ttrows, ttcols)
- # define SCREENWIDTH 80
- # define SCREENLWRAP screenlinewrap()
- # if (defined(__VMS_VERSION) && !defined(VMS_VERSION))
- # define VMS_VERSION __VMS_VERSION
- # endif
- # if (defined(__VMS_VER) && !defined(__CRTL_VER))
- # define __CRTL_VER __VMS_VER
- # endif
- # if ((!defined(__CRTL_VER)) || (__CRTL_VER < 70000000))
- # define NO_GMTIME /* gmtime() of earlier VMS C RTLs is broken */
- # else
- # if (!defined(NO_EF_UT_TIME) && !defined(USE_EF_UT_TIME))
- # define USE_EF_UT_TIME
- # endif
- # if (!defined(HAVE_STRNICMP) && !defined(NO_STRNICMP))
- # define HAVE_STRNICMP
- # ifdef STRNICMP
- # undef STRNICMP
- # endif
- # define STRNICMP strncasecmp
- # endif
- # endif
- # ifndef HAVE_STRNICMP /* use our private zstrnicmp() */
- # define NO_STRNICMP /* unless explicitly overridden */
- # endif
- # if (!defined(NOTIMESTAMP) && !defined(TIMESTAMP))
- # define TIMESTAMP
- # endif
- # define SET_DIR_ATTRIB
- # define RESTORE_UIDGID
- /* VMS is run on little-endian processors with 4-byte ints:
- * enable the optimized CRC-32 code */
- # ifdef IZ_CRC_BE_OPTIMIZ
- # undef IZ_CRC_BE_OPTIMIZ
- # endif
- # if !defined(IZ_CRC_LE_OPTIMIZ) && !defined(NO_CRC_OPTIMIZ)
- # define IZ_CRC_LE_OPTIMIZ
- # endif
- # if !defined(IZ_CRCOPTIM_UNFOLDTBL) && !defined(NO_CRC_OPTIMIZ)
- # define IZ_CRCOPTIM_UNFOLDTBL
- # endif
- /* Enable "better" unprintable charcodes filtering in fnfilter().
- * (On VMS, the isprint() implementation seems to detect 8-bit printable
- * characters even for the default "C" locale. A previous localization
- * setup by calling setlocale() is not neccessary.) */
- # if (!defined(NO_WORKING_ISPRINT) && !defined(HAVE_WORKING_ISPRINT))
- # define HAVE_WORKING_ISPRINT
- # endif
- #ifdef NO_OFF_T
- typedef long zoff_t;
- #else
- typedef off_t zoff_t;
- #endif
- #define ZOFF_T_DEFINED
- typedef struct stat z_stat;
- #define Z_STAT_DEFINED
- #ifdef __DECC
- /* File open callback ID values. */
- # define OPENR_ID 1
- /* File open callback ID storage. */
- extern int openr_id;
- /* File open callback function. */
- extern int acc_cb();
- /* Option macros for open().
- * General: Stream access
- *
- * Callback function (DEC C only) sets deq, mbc, mbf, rah, wbh, ...
- */
- # define OPNZIP_RMS_ARGS "ctx=stm", "acc", acc_cb, &openr_id
- #else /* !__DECC */ /* (So, GNU C, VAX C, ...)*/
- # define OPNZIP_RMS_ARGS "ctx=stm"
- #endif /* ?__DECC */
- #endif /* !__vmscfg_h */
|