| [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; |
| } |