]> git.saurik.com Git - wxWidgets.git/blobdiff - src/tiff/libtiff/tif_dumpmode.c
Merged libtiff 4.0.3 changes into the trunk.
[wxWidgets.git] / src / tiff / libtiff / tif_dumpmode.c
index fb21ffe2fd3d96ef5c9b0f46245cb207f549f59e..a94cf0b34a92c41378bc5916e7d3fc84813f1ea9 100644 (file)
@@ -1,4 +1,4 @@
-/* $Header: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dumpmode.c,v 1.4 2005/12/21 12:23:13 joris Exp $ */
+/* $Header: /cvs/maptools/cvsroot/libtiff/libtiff/tif_dumpmode.c,v 1.14 2011-04-02 20:54:09 bfriesen Exp $ */
 
 /*
  * Copyright (c) 1988-1997 Sam Leffler
  */
 #include "tiffiop.h"
 
+static int
+DumpFixupTags(TIFF* tif)
+{
+       (void) tif;
+       return (1);
+}
+
 /*
  * Encode a hunk of pixels.
  */
 static int
-DumpModeEncode(TIFF* tif, tidata_t pp, tsize_t cc, tsample_t s)
+DumpModeEncode(TIFF* tif, uint8* pp, tmsize_t cc, uint16 s)
 {
        (void) s;
        while (cc > 0) {
-               tsize_t n;
+               tmsize_t n;
 
                n = cc;
                if (tif->tif_rawcc + n > tif->tif_rawdatasize)
                        n = tif->tif_rawdatasize - tif->tif_rawcc;
 
-                assert( n > 0 );
-                
+               assert( n > 0 );
+
                /*
                 * Avoid copy if client has setup raw
                 * data buffer to avoid extra copy.
@@ -68,13 +75,24 @@ DumpModeEncode(TIFF* tif, tidata_t pp, tsize_t cc, tsample_t s)
  * Decode a hunk of pixels.
  */
 static int
-DumpModeDecode(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s)
+DumpModeDecode(TIFF* tif, uint8* buf, tmsize_t cc, uint16 s)
 {
+       static const char module[] = "DumpModeDecode";
        (void) s;
        if (tif->tif_rawcc < cc) {
-               TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
-                   "DumpModeDecode: Not enough data for scanline %d",
-                   tif->tif_row);
+#if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
+               TIFFErrorExt(tif->tif_clientdata, module,
+"Not enough data for scanline %lu, expected a request for at most %I64d bytes, got a request for %I64d bytes",
+                            (unsigned long) tif->tif_row,
+                            (signed __int64) tif->tif_rawcc,
+                            (signed __int64) cc);
+#else
+               TIFFErrorExt(tif->tif_clientdata, module,
+"Not enough data for scanline %lu, expected a request for at most %lld bytes, got a request for %lld bytes",
+                            (unsigned long) tif->tif_row,
+                            (signed long long) tif->tif_rawcc,
+                            (signed long long) cc);
+#endif
                return (0);
        }
        /*
@@ -84,7 +102,7 @@ DumpModeDecode(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s)
        if (tif->tif_rawcp != buf)
                _TIFFmemcpy(buf, tif->tif_rawcp, cc);
        tif->tif_rawcp += cc;
-       tif->tif_rawcc -= cc;
+       tif->tif_rawcc -= cc;  
        return (1);
 }
 
@@ -106,12 +124,20 @@ int
 TIFFInitDumpMode(TIFF* tif, int scheme)
 {
        (void) scheme;
+       tif->tif_fixuptags = DumpFixupTags;  
        tif->tif_decoderow = DumpModeDecode;
        tif->tif_decodestrip = DumpModeDecode;
        tif->tif_decodetile = DumpModeDecode;
        tif->tif_encoderow = DumpModeEncode;
        tif->tif_encodestrip = DumpModeEncode;
-       tif->tif_encodetile = DumpModeEncode;
+       tif->tif_encodetile = DumpModeEncode; 
        tif->tif_seek = DumpModeSeek;
        return (1);
 }
+/*
+ * Local Variables:
+ * mode: c
+ * c-basic-offset: 8
+ * fill-column: 78
+ * End:
+ */