Files correlati : pdflib Ricompilazione Demo : [ ] Commento : Aggiornata PDFlib git-svn-id: svn://10.65.10.50/trunk@17433 c028cbd2-c16b-5b4b-a496-9718f37d4682
463 lines
11 KiB
C
Executable File
463 lines
11 KiB
C
Executable File
/*---------------------------------------------------------------------------*
|
|
| PDFlib - A library for generating PDF on the fly |
|
|
+---------------------------------------------------------------------------+
|
|
| Copyright (c) 1997-2006 Thomas Merz and PDFlib GmbH. All rights reserved. |
|
|
+---------------------------------------------------------------------------+
|
|
| |
|
|
| This software is subject to the PDFlib license. It is NOT in the |
|
|
| public domain. Extended versions and commercial licenses are |
|
|
| available, please check http://www.pdflib.com. |
|
|
| |
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
/* $Id: pc_config.h,v 1.3 2008-10-20 14:35:00 guy Exp $
|
|
*
|
|
* PDFlib portability and configuration definitions
|
|
*
|
|
*/
|
|
|
|
#ifndef PC_CONFIG_H
|
|
#define PC_CONFIG_H
|
|
|
|
/* ------------------------ feature configuration ------------------- */
|
|
|
|
/* zlib compression support */
|
|
#define HAVE_LIBZ
|
|
|
|
/* ---------------------------- platform definitions ------------------------ */
|
|
|
|
/* #undef this if your platform doesn't support environment variables */
|
|
#define HAVE_ENVVARS
|
|
|
|
/* Compilers which are not strictly ANSI conforming can set PDF_VOLATILE
|
|
* to an empty value.
|
|
*/
|
|
#ifndef PDF_VOLATILE
|
|
#define PDF_VOLATILE volatile
|
|
#endif
|
|
|
|
/*
|
|
* Define for compiler supporting file open function _wfopen
|
|
* for Unicode filenames.
|
|
*/
|
|
#undef PDC_UNICODE_FILENAME
|
|
|
|
/*
|
|
* Define whether function char *strerror(int errnum)
|
|
* is available in the C runtime system
|
|
*/
|
|
#define PDC_HAS_STRERROR
|
|
|
|
|
|
/* ---------------------------------- WIN32 -------------------------------- */
|
|
|
|
/* try to identify Windows compilers */
|
|
|
|
#if (defined _WIN32 || defined __WATCOMC__ || defined __BORLANDC__ || \
|
|
(defined(__MWERKS__) && defined(__INTEL__))) && !defined WIN32
|
|
#define WIN32
|
|
#endif /* <Windows compiler> && !defined WIN32 */
|
|
|
|
#ifdef WIN32
|
|
#define WRITEMODE "wb"
|
|
#define APPENDMODE "ab"
|
|
|
|
#ifdef _MSC_VER
|
|
#define _LARGEFILE_SOURCE
|
|
#endif
|
|
|
|
#undef PDC_PATHSEP
|
|
#define PDC_PATHSEP "\\"
|
|
|
|
#undef PDC_PATHSEP_ALT
|
|
#define PDC_PATHSEP_ALT "/"
|
|
|
|
#if defined(_WIN32_WCE) && (_WIN32_WCE >= 300)
|
|
#define PDF_PLATFORM "Windows CE"
|
|
#define WINCE
|
|
#undef HAVE_SETLOCALE
|
|
#undef HAVE_ENVVARS
|
|
#else
|
|
#if defined(WIN64)
|
|
#define PDF_PLATFORM "Win64"
|
|
#else
|
|
#define PDF_PLATFORM "Win32"
|
|
#endif
|
|
#endif
|
|
|
|
#define PDC_TMPDIR_ENV "TMP"
|
|
|
|
/* file open function "_wfopen" for Unicode filenames is available.
|
|
**/
|
|
#if defined(_MSC_VER) && !defined(PDF_WIN98)
|
|
#define PDC_UNICODE_FILENAME
|
|
#endif
|
|
|
|
#endif /* WIN32 */
|
|
|
|
/* some standard C library functions (eg. localtime()) are not reentrant
|
|
** and must be replaced with their "_r" equivalent (eg. localtime_r()).
|
|
*/
|
|
#if !defined(WIN32) && !defined(__MVS__) && !defined(OS_ZOS_SASC) &&\
|
|
!(defined(__MWERKS__) && (defined(__POWERPC__) || defined(__MC68K__)))
|
|
#define PDC_NEEDS_R_FUNCTIONS
|
|
#endif
|
|
|
|
/* --------------------------------- Cygnus -------------------------------- */
|
|
|
|
#ifdef __CYGWIN__
|
|
#define WRITEMODE "wb"
|
|
#define APPENDMODE "ab"
|
|
#ifdef DLL_EXPORT
|
|
#define PDFLIB_EXPORTS
|
|
#endif
|
|
|
|
#endif /* __CYGWIN__ */
|
|
|
|
/* ---------------------------------- DJGPP -------------------------------- */
|
|
|
|
#ifdef __DJGPP__
|
|
#define WRITEMODE "wb"
|
|
#define APPENDMODE "ab"
|
|
#define PDF_PLATFORM "Win32/DJGPP"
|
|
#endif /* __DJGPP__ */
|
|
|
|
/* ----------------------------------- OS/2 -------------------------------- */
|
|
|
|
/*
|
|
* Try to identify OS/2 compilers.
|
|
*/
|
|
|
|
#if (defined __OS2__ || defined __EMX__) && !defined OS2
|
|
#define OS2
|
|
#endif
|
|
|
|
#ifdef OS2
|
|
#define WRITEMODE "wb"
|
|
#define APPENDMODE "ab"
|
|
#define PDF_PLATFORM "OS/2"
|
|
#endif /* OS2 */
|
|
|
|
/* --------------------------------- Mac OS X ------------------------------- */
|
|
|
|
/* try to identify the Mac OS X command line compiler */
|
|
|
|
#if defined(__APPLE__) && (defined(__ppc__) || \
|
|
defined(__i386__) || defined(__ppc64__) || defined(__x86_64__))
|
|
|
|
#define MACOSX
|
|
|
|
/* Mac OS X 10.2 (Jaguar) defines this, but we use it for Mac OS 9 below */
|
|
#undef MAC
|
|
|
|
#if !defined(PDF_PLATFORM) && defined(PDF_MAC_PLATFORM)
|
|
|
|
#if defined(__ppc__)
|
|
#define PDF_PLATFORM PDF_MAC_PLATFORM" ppc"
|
|
#endif /* __ppc__ */
|
|
|
|
#if defined(__ppc64__)
|
|
#define PDF_PLATFORM PDF_MAC_PLATFORM" ppc64"
|
|
#endif /* __ppc64__ */
|
|
|
|
#if defined(__x86_64__)
|
|
#define PDF_PLATFORM PDF_MAC_PLATFORM" 64"
|
|
#endif /* __x86_64__ */
|
|
|
|
#if !defined(PDF_PLATFORM)
|
|
#define PDF_PLATFORM PDF_MAC_PLATFORM
|
|
#endif
|
|
|
|
#endif /* PDF_PLATFORM */
|
|
|
|
#ifndef PDF_PLATFORM
|
|
#define PDF_PLATFORM "Mac OS X"
|
|
#endif
|
|
#endif /* Mac OS X */
|
|
|
|
/* --------------------------------- Mac OS 9 ------------------------------- */
|
|
|
|
/* try to identify Mac OS 9 compilers */
|
|
|
|
#if (defined macintosh || defined __POWERPC__ || defined __CFM68K__) && \
|
|
!defined MAC && !defined MACOSX && !defined __BEOS__
|
|
#define MAC
|
|
#endif
|
|
|
|
/*
|
|
* Byte order
|
|
* WORDS_BIGENDIAN will be set by the configure script on most platforms.
|
|
* Only on platforms where there is no configure script we must set the
|
|
* endianness explicitly (most importantly CodeWarrior on the Mac)
|
|
*
|
|
* And we have to explicitly set it on Platforms where crosscompiling
|
|
* is used (like Mac to create Universal Binaries)
|
|
*/
|
|
#undef PDC_ISBIGENDIAN
|
|
#if defined(__APPLE__)
|
|
# if defined(__POWERPC__) || defined(__MC68K__) \
|
|
|| defined(__ppc64__) || defined(__ppc__)
|
|
# define PDC_ISBIGENDIAN 1
|
|
# else
|
|
# define PDC_ISBIGENDIAN 0
|
|
# endif
|
|
#else /* MAC */
|
|
# if defined(WORDS_BIGENDIAN)
|
|
# define PDC_ISBIGENDIAN 1
|
|
# else
|
|
# define PDC_ISBIGENDIAN 0
|
|
# endif
|
|
#endif /* MAC */
|
|
|
|
|
|
|
|
#if defined(MAC) && !defined(__ppc64__)
|
|
#define WRITEMODE "wb"
|
|
#define APPENDMODE "ab"
|
|
#define PDC_PATHSEP ":"
|
|
|
|
#undef HAVE_ENVVARS
|
|
|
|
#define PDF_PLATFORM "Mac OS 9"
|
|
#endif /* MAC */
|
|
|
|
#if defined(MAC) || defined(MACOSX)
|
|
|
|
/* ------------------ Carbon Handling for both Mac OS 9 and X --------------- */
|
|
|
|
/*
|
|
* By default we always build a carbonized version of the library,
|
|
* but allow non-Carbon builds to be triggered by setting the
|
|
* PDF_TARGET_API_MAC_CLASSIC symbol externally.
|
|
*/
|
|
|
|
#ifdef PDF_TARGET_API_MAC_CLASSIC
|
|
#undef PDF_TYPE1_HOSTFONT_SUPPORTED
|
|
#define PDF_ALLOW_MAC_DEPR_FUNCS
|
|
#else
|
|
#define PDF_TARGET_API_MAC_CARBON
|
|
#endif
|
|
|
|
#if defined(PDF_TARGET_API_MAC_CARBON) && !defined(TARGET_API_MAC_CARBON)
|
|
#define TARGET_API_MAC_CARBON 1
|
|
#endif
|
|
|
|
/* ---------------- Enabling special MAC functionality --------------------- */
|
|
|
|
#ifdef PDF_TARGET_API_MAC_CARBON
|
|
|
|
/* It must be distinguished between 32-bit and 64-bit Mac OS X versions,
|
|
* because PDFlib uses MAC API functions, especially the old QuickDraw
|
|
* functions, which are not available on 64-bit Mac OS X platforms.
|
|
* These functions are already deprecated from Mac OS X v10.4 and
|
|
* shall be disabled also for 32-bit versions in future releases.
|
|
* Therefore we set the define PDF_MACATS_SUPPORTED for all CPU versions.
|
|
*
|
|
* PDF_MACATS_SUPPORTED:
|
|
* - ATS font handling (each type of host font name support possible)
|
|
*
|
|
* PDF_ALLOW_MAC_DEPR_FUNCS:
|
|
* - Only QuickDraw font names possible
|
|
* - FileSpec instead of FileRef functions (also in ATS)
|
|
* - File type creation (PDF_FILETYPE_SUPPORTED) for PDF files, otherwise none
|
|
* - Global variable __MacOSErrNo for special error codes supported
|
|
*
|
|
* PDF_MAC_LEGACY:
|
|
* Differentiates between the two versions above (compiler define).
|
|
*
|
|
* PDF_MAC_NOCORESERVICES:
|
|
* Disables PDF_FEATURE_HOSTFONT (see pc_core.h) and PDF_FILETYPE_SUPPORTED
|
|
* (see pc_output.c) (compiler define). This is relevant for the PHP wrapper
|
|
* on MAC (see bug #1588).
|
|
*
|
|
*/
|
|
|
|
#if defined(PDF_MAC_LEGACY)
|
|
#define PDF_ALLOW_MAC_DEPR_FUNCS
|
|
#else
|
|
#define PDF_MACATS_SUPPORTED
|
|
#endif /* PDF_MAC_LEGACY */
|
|
|
|
#endif /* PDF_TARGET_API_MAC_CARBON */
|
|
|
|
#endif /* MAC || MACOSX */
|
|
|
|
/* ----------------------------------- BeOS --------------------------------- */
|
|
|
|
#ifdef __BEOS__
|
|
#define PDF_PLATFORM "BeOS"
|
|
#endif /* __BEOS__ */
|
|
|
|
/* --------------------------------- AS/400 --------------------------------- */
|
|
|
|
/* try to identify the AS/400 compiler */
|
|
|
|
#if defined __ILEC400__ && !defined AS400
|
|
#define AS400
|
|
#endif
|
|
|
|
#ifdef AS400
|
|
|
|
#pragma comment(copyright, \
|
|
"(C) PDFlib GmbH, Muenchen, Germany (www.pdflib.com)")
|
|
|
|
#if (_OS400_TGTVRM__>440)
|
|
# ifndef _LARGE_FILE_API
|
|
#error You need to compile this module with DEFINE(_LARGE_FILE_API)
|
|
# endif
|
|
# ifndef __TERASPACE__
|
|
#error You need to compile this module with TERASPACE(*YES *TSIFC)
|
|
STGMDL(*TERASPACE)
|
|
# endif
|
|
#endif
|
|
|
|
#define READTMODE "rb"
|
|
#define WRITEMODE "wb"
|
|
#define APPENDMODE "ab"
|
|
|
|
#define PDF_PLATFORM "iSeries"
|
|
|
|
#define WORDS_BIGENDIAN
|
|
#undef PDC_ISBIGENDIAN
|
|
#define PDC_ISBIGENDIAN 1
|
|
|
|
#endif /* AS400 */
|
|
|
|
/* --------------------- S/390 with Unix System Services -------------------- */
|
|
|
|
#ifdef OS390
|
|
|
|
#define WRITEMODE "wb"
|
|
#define APPENDMODE "ab"
|
|
|
|
#undef WORDS_BIGENDIAN
|
|
#define WORDS_BIGENDIAN
|
|
#undef PDC_ISBIGENDIAN
|
|
#define PDC_ISBIGENDIAN 1
|
|
|
|
#define PDC_NO_VSNPRINTF
|
|
|
|
#endif /* OS390 */
|
|
|
|
/* -------------------------------- S/390 with MVS -------------------------- */
|
|
|
|
/* try to identify MVS (__MVS__ is #defined on USS and MVS!)
|
|
* I370 is used by SAS C
|
|
*/
|
|
|
|
#if !defined(OS390) && (defined __MVS__ || defined I370) && !defined MVS
|
|
#define MVS
|
|
#endif
|
|
|
|
#ifdef MVS
|
|
|
|
#if defined(I370)
|
|
#define PDC_FILEQUOT ""
|
|
#else
|
|
#define READBMODE "rb,byteseek"
|
|
#define READBMODE_PLUS "rb+,byteseek"
|
|
#define PDC_FILEQUOT "'"
|
|
#endif
|
|
#define WRITEMODE "wb"
|
|
#define WRITEMODE_V "wb,recfm=v"
|
|
#define APPENDMODE "ab"
|
|
|
|
#undef PDC_PATHSEP
|
|
#define PDC_PATHSEP "("
|
|
|
|
#undef PDC_PATHTERM
|
|
#define PDC_PATHTERM ")"
|
|
|
|
#define PDF_PLATFORM "zSeries MVS"
|
|
#define PDF_OS390_MVS_RESOURCE
|
|
|
|
#define WORDS_BIGENDIAN
|
|
#undef PDC_ISBIGENDIAN
|
|
#define PDC_ISBIGENDIAN 1
|
|
|
|
#define PDC_NO_VSNPRINTF
|
|
|
|
#endif /* MVS */
|
|
|
|
/* ------------------------------------ VMS --------------------------------- */
|
|
|
|
/* No special handling required */
|
|
|
|
#ifdef VMS
|
|
/* Usually this will come from the build process */
|
|
#ifndef PDF_PLATFORM
|
|
#define PDF_PLATFORM "VMS"
|
|
#endif
|
|
#define PDC_TMPDIR_ENV "SYS$SCRATCH"
|
|
#define PDC_PATHSEP_LOG ":"
|
|
|
|
#define PDC_NO_VSNPRINTF
|
|
|
|
#endif /* VMS */
|
|
|
|
/* --------------------------------- Defaults ------------------------------- */
|
|
|
|
/* boolean for function fileno() exists
|
|
*/
|
|
#ifndef PDC_FILENO_EXISTS
|
|
#define PDC_FILENO_EXISTS 1
|
|
#endif /* !PDC_FILENO_EXISTS */
|
|
|
|
#ifndef READTMODE
|
|
#define READTMODE "r"
|
|
#endif /* !READTMODE */
|
|
|
|
#ifndef READBMODE
|
|
#define READBMODE "rb"
|
|
#endif /* !READBMODE */
|
|
|
|
#ifndef READBMODE_PLUS
|
|
#define READBMODE_PLUS "rb+"
|
|
#endif /* !READBMODE_PLUS */
|
|
|
|
#ifndef WRITEMODE
|
|
#define WRITEMODE "wb"
|
|
#endif /* !WRITEMODE */
|
|
|
|
#ifndef WRITEMODE_V
|
|
#define WRITEMODE_V "wb"
|
|
#endif /* !WRITEMODE_V */
|
|
|
|
#ifndef APPENDMODE
|
|
#define APPENDMODE "ab"
|
|
#endif /* !APPENDMODE */
|
|
|
|
#ifndef PDC_PATHSEP
|
|
#define PDC_PATHSEP "/"
|
|
#endif /* !PDC_PATHSEP */
|
|
|
|
#ifndef PDC_PATHSEP_ALT
|
|
#define PDC_PATHSEP_ALT "\\"
|
|
#endif /* !PDC_PATHSEP_ALT */
|
|
|
|
#ifndef PDC_TMPDIR_ENV
|
|
#define PDC_TMPDIR_ENV "TMPDIR"
|
|
#endif /* !PDC_TMPDIR_ENV */
|
|
|
|
#ifdef _DEBUG
|
|
#define DEBUG
|
|
#endif /* _DEBUG */
|
|
|
|
#ifdef DEBUG
|
|
#define PDC_DEBUG
|
|
#endif /* DEBUG */
|
|
|
|
#define PDC_SCHAR_MIN (-128)
|
|
#define PDC_SCHAR_MAX 127
|
|
#define PDC_UCHAR_MAX 255
|
|
#define PDC_SHRT_MIN (-32768)
|
|
#define PDC_SHRT_MAX 32767
|
|
#define PDC_USHRT_MAX 65535
|
|
#define PDC_INT_MIN (-PDC_INT_MAX - 1)
|
|
#define PDC_INT_MAX 2147483647
|
|
#define PDC_UINT_MAX 4294967295U
|
|
|
|
#define PDC_OFFSET(type, field) ((unsigned int) &(((type *)NULL)->field))
|
|
|
|
#endif /* PC_CONFIG_H */
|