X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d7c429142df39ccb1e8a4f68c4e2bb0ab7c2083a..7198c3368055d88249a338eb33b21f051f674806:/src/jpeg/jmorecfg.h diff --git a/src/jpeg/jmorecfg.h b/src/jpeg/jmorecfg.h index 29b33d0235..c4a5d33b08 100644 --- a/src/jpeg/jmorecfg.h +++ b/src/jpeg/jmorecfg.h @@ -130,6 +130,7 @@ typedef char JOCTET; */ /* UINT8 must hold at least the values 0..255. */ +#ifndef __WINE_BASETSD_H #ifdef HAVE_UNSIGNED_CHAR typedef unsigned char UINT8; @@ -155,39 +156,21 @@ typedef unsigned int UINT16; typedef short INT16; #endif -#if defined( __GNUWIN32__ ) || defined( __MINGW32__ ) || defined( __CYGWIN__ ) -#include -#else -#undef wxCHECK_W32API_VERSION -#define wxCHECK_W32API_VERSION(maj, min) (0) -#endif +#endif /* __WINE_BASETSD_H */ /* INT32 must hold at least signed 32-bit values. */ -/* you may define INT32_DEFINED if it is already defined somewhere */ -#ifndef INT32_DEFINED -#ifdef XMD_H -/* X11/xmd.h correctly defines INT32 */ -#define INT32_DEFINED -/* Note: GnuPRO 00r1 should be tested because it does NOT define INT32 in windows.h */ -/* For this compiler, set the following test to 0. */ -#elif (_MSC_VER >= 1200) || (__BORLANDC__ >= 0x550) \ - || wxCHECK_W32API_VERSION( 0, 5 ) \ - || ((defined(__MINGW32__) || defined(__CYGWIN__)) \ - && ((__GNUC__>2) || ((__GNUC__==2) && (__GNUC_MINOR__>=95)))) \ - || (defined(__MWERKS__) && defined(__WXMSW__)) - -/* INT32 is defined in windows.h for these compilers */ -#define INT32_DEFINED -#include -#endif -#endif /* !INT32_DEFINED */ - -#ifndef INT32_DEFINED -typedef long INT32; -#endif - -#undef INT32_DEFINED +/* + VZ: due to the horrible mess resulting in INT32 being defined in windows.h + for some compilers but not for the other ones, I have globally replace + INT32 with JPEG_INT32 in libjpeg code to avoid the eight level ifdef + which used to be here. The problem is that, of course, now we'll have + conflicts when upgrading to the next libjpeg release -- however + considering their frequency (1 in the last 5 years) it seems that + it is not too high a price to pay for the clean compilation with all + versions of mingw32 and cygwin + */ +typedef long JPEG_INT32; /* Datatype used for image dimensions. The JPEG standard only supports * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore @@ -277,9 +260,29 @@ typedef unsigned int JDIMENSION; * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. */ +#if 0 #ifndef HAVE_BOOLEAN typedef int boolean; #endif +#endif + +/* + * Notes about boolean above: + * + * The main conflict we see is with the Windows headers of some compilers that + * have a different definition of boolean. Therefore boolean has been replaced + * with wxjpeg_boolean throughout the jpeg sources. The alternative would have + * been to make the definition here the same as the Windows definition. It's + * not enough to just define HAVE_BOOLEAN when using the jpeg library, the + * definition of boolean must match when the jpeg library is compiled too. + * + * System jepg libs won't have this type, of course, so to use test + * HAVE_WXJPEG_BOOLEAN and fall back to boolean when not defined. + */ + +typedef int wxjpeg_boolean; +#define HAVE_WXJPEG_BOOLEAN + #ifndef FALSE /* in case these macros already exist */ #define FALSE 0 /* values of boolean */ #endif