]> git.saurik.com Git - wxWidgets.git/blobdiff - src/tiff/tif_compress.c
Probably a bug in the MINGW32 header.
[wxWidgets.git] / src / tiff / tif_compress.c
index 10e5e9ffe30ba5ea569aba08dee9cdca3a9bb55c..dbc73c6f50368c486402281bf33db9237281ff15 100644 (file)
@@ -36,13 +36,21 @@ TIFFNoEncode(TIFF* tif, char* method)
 {
        const TIFFCodec* c = TIFFFindCODEC(tif->tif_dir.td_compression);
 
-       if (c)
-               TIFFError(tif->tif_name, "%s %s encoding is not implemented",
-                   c->name, method);
-       else
+       if (c) { 
+         if (! strncmp(c->name, "LZW", 3) ){ 
+           TIFFError(tif->tif_name, 
+                     "%s %s encoding is no longer implemented due to Unisys patent enforcement", 
+                     c->name, method); 
+         } else { 
+           TIFFError(tif->tif_name, "%s %s encoding is not implemented",
+                     c->name, method);
+         }
+       }
+       else { 
                TIFFError(tif->tif_name,
-                   "Compression scheme %u %s encoding is not implemented",
+                         "Compression scheme %u %s encoding is not implemented",
                    tif->tif_dir.td_compression, method);
+       }
        return (-1);
 }
 
@@ -125,11 +133,13 @@ static void _TIFFvoid(TIFF* tif) { (void) tif; }
 void
 _TIFFSetDefaultCompressionState(TIFF* tif)
 {
+       tif->tif_decodestatus = TRUE;
        tif->tif_setupdecode = _TIFFtrue;
        tif->tif_predecode = _TIFFNoPreCode;
        tif->tif_decoderow = _TIFFNoRowDecode;
        tif->tif_decodestrip = _TIFFNoStripDecode;
        tif->tif_decodetile = _TIFFNoTileDecode;
+       tif->tif_encodestatus = TRUE;
        tif->tif_setupencode = _TIFFtrue;
        tif->tif_preencode = _TIFFNoPreCode;
        tif->tif_postencode = _TIFFtrue;
@@ -147,7 +157,7 @@ _TIFFSetDefaultCompressionState(TIFF* tif)
 int
 TIFFSetCompressionScheme(TIFF* tif, int scheme)
 {
-       const TIFFCodec *c = TIFFFindCODEC(scheme);
+       const TIFFCodec *c = TIFFFindCODEC((uint16) scheme);
 
        _TIFFSetDefaultCompressionState(tif);
        /*
@@ -200,9 +210,11 @@ TIFFRegisterCODEC(uint16 scheme, const char* name, TIFFInitMethod init)
                cd->info->init = init;
                cd->next = registeredCODECS;
                registeredCODECS = cd;
-       } else
+       } else {
                TIFFError("TIFFRegisterCODEC",
                    "No space to register compression scheme %s", name);
+               return NULL;
+       }
        return (cd->info);
 }