summaryrefslogblamecommitdiffstats
path: root/package/imagemagick/imagemagick-zlib-fix.patch
blob: 1a147af1d0fcdb5a6322d2aae799a4bb53117286 (plain) (tree)


































































































































































































































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