[PATCH] Fix build with recent versions of zlib
From upstream:
r6633 + r6636 @ https://www.imagemagick.org/subversion/ImageMagick
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
magick/blob.c | 68 ++++++++++++++++++++++++++++++++++------------------------
1 file changed, 40 insertions(+), 28 deletions(-)
Index: ImageMagick-6.7.2-10/magick/blob.c
===================================================================
--- ImageMagick-6.7.2-10.orig/magick/blob.c
+++ ImageMagick-6.7.2-10/magick/blob.c
@@ -120,8 +120,20 @@
StreamType
type;
- FILE
- *file;
+ union {
+ FILE
+ *file;
+
+#if defined(MAGICKCORE_ZLIB_DELEGATE)
+ gzFile
+ gzfile;
+#endif
+
+#if defined(MAGICKCORE_BZLIB_DELEGATE)
+ BZFILE
+ *bzfile;
+#endif
+ };
struct stat
properties;
@@ -505,14 +517,14 @@
case ZipStream:
{
#if defined(MAGICKCORE_ZLIB_DELEGATE)
- (void) gzerror(image->blob->file,&status);
+ (void) gzerror(image->blob->gzfile,&status);
#endif
break;
}
case BZipStream:
{
#if defined(MAGICKCORE_BZLIB_DELEGATE)
- (void) BZ2_bzerror((BZFILE *) image->blob->file,&status);
+ (void) BZ2_bzerror(image->blob->bzfile,&status);
#endif
break;
}
@@ -546,14 +558,14 @@
case ZipStream:
{
#if defined(MAGICKCORE_ZLIB_DELEGATE)
- status=gzclose(image->blob->file);
+ status=gzclose(image->blob->gzfile);
#endif
break;
}
case BZipStream:
{
#if defined(MAGICKCORE_BZLIB_DELEGATE)
- BZ2_bzclose((BZFILE *) image->blob->file);
+ BZ2_bzclose(image->blob->bzfile);
#endif
break;
}
@@ -843,7 +855,7 @@
status;
status=0;
- (void) BZ2_bzerror((BZFILE *) image->blob->file,&status);
+ (void) BZ2_bzerror(image->blob->bzfile,&status);
image->blob->eof=status == BZ_UNEXPECTED_EOF ? MagickTrue : MagickFalse;
#endif
break;
@@ -2486,8 +2498,8 @@
((int) magick[2] == 0x08))
{
(void) fclose(image->blob->file);
- image->blob->file=(FILE *) gzopen(filename,type);
- if (image->blob->file != (FILE *) NULL)
+ image->blob->gzfile=gzopen(filename,type);
+ if (image->blob->gzfile != (gzFile) NULL)
image->blob->type=ZipStream;
}
#endif
@@ -2495,8 +2507,8 @@
if (strncmp((char *) magick,"BZh",3) == 0)
{
(void) fclose(image->blob->file);
- image->blob->file=(FILE *) BZ2_bzopen(filename,type);
- if (image->blob->file != (FILE *) NULL)
+ image->blob->bzfile=BZ2_bzopen(filename,type);
+ if (image->blob->bzfile != (BZFILE *) NULL)
image->blob->type=BZipStream;
}
#endif
@@ -2555,8 +2567,8 @@
{
if (mode == WriteBinaryBlobMode)
type="wb";
- image->blob->file=(FILE *) gzopen(filename,type);
- if (image->blob->file != (FILE *) NULL)
+ image->blob->gzfile=gzopen(filename,type);
+ if (image->blob->gzfile != (gzFile) NULL)
image->blob->type=ZipStream;
}
else
@@ -2564,8 +2576,8 @@
#if defined(MAGICKCORE_BZLIB_DELEGATE)
if (LocaleCompare(extension,".bz2") == 0)
{
- image->blob->file=(FILE *) BZ2_bzopen(filename,type);
- if (image->blob->file != (FILE *) NULL)
+ image->blob->bzfile=BZ2_bzopen(filename,type);
+ if (image->blob->bzfile != (BZFILE *) NULL)
image->blob->type=BZipStream;
}
else
@@ -2771,12 +2783,12 @@
{
default:
{
- count=(ssize_t) gzread(image->blob->file,q,(unsigned int) length);
+ count=(ssize_t) gzread(image->blob->gzfile,q,(unsigned int) length);
break;
}
case 2:
{
- c=gzgetc(image->blob->file);
+ c=gzgetc(image->blob->gzfile);
if (c == EOF)
break;
*q++=(unsigned char) c;
@@ -2784,7 +2796,7 @@
}
case 1:
{
- c=gzgetc(image->blob->file);
+ c=gzgetc(image->blob->gzfile);
if (c == EOF)
break;
*q++=(unsigned char) c;
@@ -2799,7 +2811,7 @@
case BZipStream:
{
#if defined(MAGICKCORE_BZLIB_DELEGATE)
- count=(ssize_t) BZ2_bzread((BZFILE *) image->blob->file,q,(int) length);
+ count=(ssize_t) BZ2_bzread(image->blob->bzfile,q,(int) length);
#endif
break;
}
@@ -3527,7 +3539,7 @@
case ZipStream:
{
#if defined(MAGICKCORE_ZLIB_DELEGATE)
- if (gzseek(image->blob->file,(off_t) offset,whence) < 0)
+ if (gzseek(image->blob->gzfile,(off_t) offset,whence) < 0)
return(-1);
#endif
image->blob->offset=TellBlob(image);
@@ -3791,14 +3803,14 @@
case ZipStream:
{
#if defined(MAGICKCORE_ZLIB_DELEGATE)
- status=gzflush(image->blob->file,Z_SYNC_FLUSH);
+ status=gzflush(image->blob->gzfile,Z_SYNC_FLUSH);
#endif
break;
}
case BZipStream:
{
#if defined(MAGICKCORE_BZLIB_DELEGATE)
- status=BZ2_bzflush((BZFILE *) image->blob->file);
+ status=BZ2_bzflush(image->blob->bzfile);
#endif
break;
}
@@ -3865,7 +3877,7 @@
case ZipStream:
{
#if defined(MAGICKCORE_ZLIB_DELEGATE)
- offset=(MagickOffsetType) gztell(image->blob->file);
+ offset=(MagickOffsetType) gztell(image->blob->gzfile);
#endif
break;
}
@@ -4014,20 +4026,20 @@
{
default:
{
- count=(ssize_t) gzwrite(image->blob->file,(void *) data,
+ count=(ssize_t) gzwrite(image->blob->gzfile,(void *) data,
(unsigned int) length);
break;
}
case 2:
{
- c=gzputc(image->blob->file,(int) *p++);
+ c=gzputc(image->blob->gzfile,(int) *p++);
if (c == EOF)
break;
count++;
}
case 1:
{
- c=gzputc(image->blob->file,(int) *p++);
+ c=gzputc(image->blob->gzfile,(int) *p++);
if (c == EOF)
break;
count++;
@@ -4041,8 +4053,8 @@
case BZipStream:
{
#if defined(MAGICKCORE_BZLIB_DELEGATE)
- count=(ssize_t) BZ2_bzwrite((BZFILE *) image->blob->file,(void *) data,
- (int) length);
+ count=(ssize_t) BZ2_bzwrite(image->blob->bzfile,(void *) data,(int)
+ length);
#endif
break;
}