[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:46:56 UTC 2017


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=4585803

The following commit has been merged in the master branch:
commit 458580373a3136b7762fd3be95fd491773e1928f
Author: Robin Mills <robin at clanmills.com>
Date:   Thu Sep 15 13:15:48 2016 +0000

    #1108 Enhanced pngimage::printStructure() to display checksum
---
 src/pngimage.cpp | 26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

diff --git a/src/pngimage.cpp b/src/pngimage.cpp
index 800c422..2415538 100644
--- a/src/pngimage.cpp
+++ b/src/pngimage.cpp
@@ -220,15 +220,17 @@ namespace Exiv2 {
             const std::string iccKey  = "icc";
             const std::string softKey = "Software";
 
-            if ( option == kpsBasic || option == kpsRecursive ) {
+            bool bPrint = option == kpsBasic || option == kpsRecursive ;
+            if ( bPrint ) {
                 out << "STRUCTURE OF PNG FILE: " << io_->path() << std::endl;
-                out << " address | index | chunk_type |  length | data" << std::endl;
+                out << " address | index | chunk_type |  length | data                           | checksum" << std::endl;
             }
 
             long       index   = 0;
             const long imgSize = io_->size();
             DataBuf    cheaderBuf(8);
 
+
             while( !io_->eof() && ::strcmp(chType,"IEND") ) {
                 size_t address = io_->tell();
 
@@ -259,11 +261,8 @@ namespace Exiv2 {
                 io_->read(buff.pData_,blen);
                 io_->seek(restore, BasicIo::beg);
                 dataString  = Internal::binaryToString(buff, blen);
-
-                if ( option == kpsBasic || option == kpsRecursive )
-                    out << Internal::stringFormat("%8d | %5d | %10s |%8d | "
-                              ,(uint32_t)address, index++,chType,dataOffset)
-                                    << dataString << std::endl;
+                while ( dataString.size() < 32 ) dataString += ' ';
+                dataString  = dataString.substr(0,30);
 
 
                 // chunk type
@@ -335,7 +334,18 @@ namespace Exiv2 {
                     }
                     delete[] data;
                 }
-                io_->seek(dataOffset + 4 , BasicIo::cur);
+                io_->seek(dataOffset, BasicIo::cur);
+
+                byte checksum[4];
+                io_->read(checksum,4);
+                if ( bPrint ) {
+                    out << Internal::stringFormat("%8d | %5d | %10s |%8d | "
+                              ,(uint32_t)address, index++,chType,dataOffset)
+                        << dataString
+                        << Internal::stringFormat(" | 0x%02x%02x%02x%02x"
+                              ,checksum[0],checksum[1],checksum[2],checksum[3])
+                        << std::endl;
+                }
                 if (io_->error()) throw Error(14);
             }
         }

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list