diff --git a/src/common/imagjpeg.cpp b/src/common/imagjpeg.cpp index c92e115396..86f864b753 100644 --- a/src/common/imagjpeg.cpp +++ b/src/common/imagjpeg.cpp @@ -26,6 +26,22 @@ #include "wx/module.h" #endif +// A hack based on one from tif_jpeg.c to overcome the problem on Windows +// of rpcndr.h defining boolean with a different type to the jpeg headers. +// +// This hack is only necessary for an external jpeg library, the builtin one +// usually used on Windows doesn't use the type boolean, so always works. +// +#if defined wxHACK_BOOLEAN || defined __RPCNDR_H__ || defined __WINE_RPCNDR_H + #define HAVE_BOOLEAN + + #ifdef wxHACK_BOOLEAN + #define boolean wxHACK_BOOLEAN + #else + #define boolean int + #endif +#endif + extern "C" { #if defined(__WXMSW__) diff --git a/src/tiff/tif_jpeg.c b/src/tiff/tif_jpeg.c index 6f3d652920..2942823dbc 100644 --- a/src/tiff/tif_jpeg.c +++ b/src/tiff/tif_jpeg.c @@ -59,9 +59,14 @@ int TIFFFillTile(TIFF*, ttile_t); http://bugzilla.remotesensing.org/show_bug.cgi?id=188 */ -#if defined(__RPCNDR_H__) -#define HAVE_BOOLEAN -#define boolean unsigned int +#if defined wxHACK_BOOLEAN || defined __RPCNDR_H__ || defined __WINE_RPCNDR_H + #define HAVE_BOOLEAN + + #ifdef wxHACK_BOOLEAN + #define boolean wxHACK_BOOLEAN + #else + #define boolean int + #endif #endif #include "jpeglib.h"