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

Maximiliano Curia maxy at moszumanska.debian.org
Thu Jul 13 17:37:23 UTC 2017


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

The following commit has been merged in the master branch:
commit 7eac9bbe9268d9b690a8919f107a717322b91e54
Author: Andreas Huggel <ahuggel at gmx.net>
Date:   Wed Jan 18 11:34:45 2006 +0000

    Fixes for MinGW and MSVC
---
 msvc/exiv2lib/exiv2lib.vcproj |  3 +++
 msvc/exivsimple/exivsimple.h  |  2 +-
 src/Makefile                  | 38 +++++++++++++++++++++++++-------------
 src/crwimage.cpp              | 15 ++++++++-------
 src/types.cpp                 | 23 +++++++++++++++++++++++
 src/types.hpp                 |  8 ++++++++
 6 files changed, 68 insertions(+), 21 deletions(-)

diff --git a/msvc/exiv2lib/exiv2lib.vcproj b/msvc/exiv2lib/exiv2lib.vcproj
index 3f7f8f4..9cfc6e8 100644
--- a/msvc/exiv2lib/exiv2lib.vcproj
+++ b/msvc/exiv2lib/exiv2lib.vcproj
@@ -254,6 +254,9 @@
 				RelativePath="..\..\src\jpgimage.cpp">
 			</File>
 			<File
+				RelativePath="..\..\src\localtime.c">
+			</File>
+			<File
 				RelativePath="..\..\src\makernote.cpp">
 				<FileConfiguration
 					Name="Debug|Win32">
diff --git a/msvc/exivsimple/exivsimple.h b/msvc/exivsimple/exivsimple.h
index 1da365a..f66ce83 100644
--- a/msvc/exivsimple/exivsimple.h
+++ b/msvc/exivsimple/exivsimple.h
@@ -53,7 +53,7 @@ extern "C"
 enum DllTypeId { invalidTypeId, unsignedByte, asciiString, unsignedShort, 
                 unsignedLong, unsignedRational, invalid6, undefined, 
                 signedShort, signedLong, signedRational, 
-                string, date, time,
+                string, isoDate, isoTime,
                 lastTypeId };
 
 typedef bool (CALLBACK* METAENUMPROC)(const char *key, const char *value, void *user);
diff --git a/src/Makefile b/src/Makefile
index a0069c5..fc404a6 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -55,15 +55,19 @@ CCSRC = basicio.cpp canonmn.cpp crwimage.cpp datasets.cpp error.cpp exif.cpp \
 	makernote.cpp metadatum.cpp nikonmn.cpp olympusmn.cpp panasonicmn.cpp \
 	sigmamn.cpp sonymn.cpp tags.cpp types.cpp value.cpp
 
+# Add library C source files to this list
+ifndef HAVE_TIMEGM
+CSRC = localtime.c
+endif
+
 # Add source files of simple applications to this list
-BINSRC = addmoddel.cpp dataarea-test.cpp exifcomment.cpp exifdata-test.cpp \
-         exifprint.cpp ifd-test.cpp iotest.cpp iptceasy.cpp iptcprint.cpp \
-         iptctest.cpp key-test.cpp makernote-test.cpp taglist.cpp write-test.cpp \
-         write2-test.cpp crwparse.cpp crwedit.cpp 
+BINSRC = addmoddel.cpp crwedit.cpp crwparse.cpp dataarea-test.cpp \
+         exifcomment.cpp exifdata-test.cpp exifprint.cpp ifd-test.cpp iotest.cpp \
+         iptceasy.cpp iptcprint.cpp iptctest.cpp key-test.cpp makernote-test.cpp \
+         taglist.cpp write-test.cpp write2-test.cpp
 
 # Main source file of the Exiv2 application
 EXIV2MAIN = exiv2.cpp
-
 # Add additional source files of the Exiv2 application to this list
 EXIV2SRC = actions.cpp utils.cpp
 # C source files of the Exiv2 application
@@ -73,7 +77,6 @@ endif
 
 # State the main source file of the metacopy application here
 MCMAIN = metacopy.cpp
-
 # Add additional source files of the metacopy application to this list
 MCSRC = utils.cpp
 
@@ -105,13 +108,17 @@ CCHDR := $(CCHDR) $(CCSRC:.cpp=.hpp)
 CCOBJ = $(CCSRC:.cpp=.o)
 CCLOBJ = $(CCSRC:.cpp=.lo)
 
-SRC = $(CCSRC)
+COBJ = $(CSRC:.c=.o)
+CLOBJ = $(CSRC:.c=.lo)
+
+SRC = $(CCSRC) $(CSRC)
 HDR = $(CCHDR)
-OBJ = $(CCOBJ)
-LOBJ = $(CCLOBJ)
+OBJ = $(CCOBJ) $(COBJ)
+LOBJ = $(CCLOBJ) $(CLOBJ)
 
 DEPDIR = .deps
-DEP = $(CCSRC:%.cpp=$(DEPDIR)/%.d) $(BINSRC:%.cpp=$(DEPDIR)/%.d) \
+DEP = $(CCSRC:%.cpp=$(DEPDIR)/%.d) $(CSRC:%.c=$(DEPDIR)/%.d) \
+      $(BINSRC:%.cpp=$(DEPDIR)/%.d) \
       $(EXIV2MAIN:%.cpp=$(DEPDIR)/%.d) $(EXIV2SRC:%.cpp=$(DEPDIR)/%.d) \
       $(EXIVCSRC:%.c=$(DEPDIR)/%.d) $(MCMAIN:%.cpp=$(DEPDIR)/%.d) \
       $(MCSRC:%.cpp=$(DEPDIR)/%.d) $(DEPDIR)/path-test.d
@@ -143,11 +150,16 @@ LINK.cc = $(CXX) $(CXXFLAGS) $(LDLIBS) $(LDFLAGS) -rpath $(libdir)
 
 # ******************************************************************************
 # Rules
-$(OBJ): %.o: %.cpp
+$(CCOBJ): %.o: %.cpp
 	@$(LIBTOOL) --mode=compile $(COMPILE.cc) -o $@ $<
 	@$(MAKEDEPEND)
 	@$(POSTDEPEND)
 
+$(COBJ): %.o: %.c
+	@$(LIBTOOL) --mode=compile $(COMPILE.c) -o $@ $<
+	@$(MAKEDEPEND)
+	@$(POSTDEPEND)
+
 $(sort $(BINOBJ) $(EXIV2OBJ) $(MCOBJ) path-test.o): %.o: %.cpp
 	$(COMPILE.cc) -o $@ $<
 	@$(MAKEDEPEND)
@@ -241,7 +253,7 @@ uninstall: uninstall-lib
 	-rmdir $(DESTDIR)$(bindir)
 
 ctags:
-	ebrowse $(CCHDR) $(CCSRC)
+	ebrowse $(HDR) $(SRC)
 #	ctags-exuberant --extra=+q -e *
 #	ctags-exuberant --extra=+q *
 
@@ -253,7 +265,7 @@ mostlyclean:
 	$(RM) $(CCSRC:.cpp=.ii)
 	$(RM) lib
 	$(RM) path-test.o
-	$(RM) $(CCSRC:%.cpp=.libs/%.d)
+	$(RM) $(CCSRC:%.cpp=.libs/%.d) $(CSRC:%.c=.libs/%.d)
 	@$(LIBTOOL) --mode=clean $(RM) $(LOBJ) $(sort $(BINOBJ) $(EXIV2OBJ) $(EXIV2COBJ) $(MCOBJ))
 
 clean: mostlyclean
diff --git a/src/crwimage.cpp b/src/crwimage.cpp
index afb3031..9d3ff45 100644
--- a/src/crwimage.cpp
+++ b/src/crwimage.cpp
@@ -38,7 +38,6 @@ EXIV2_RCSID("@(#) $Id$");
 #ifdef _MSC_VER
 # include "exv_msvc.h"
 #else
-# define _XOPEN_SOURCE /* glibc2 needs this for strptime */
 # include "exv_conf.h"
 #endif
 
@@ -57,6 +56,7 @@ EXIV2_RCSID("@(#) $Id$");
 #include <cstring>
 #include <ctime>
 #include <cmath>
+#include <cassert>
 #ifndef EXV_HAVE_TIMEGM
 # include "timegm.h"
 #endif
@@ -242,7 +242,7 @@ namespace Exiv2 {
         // Write new buffer to file
         BasicIo::AutoPtr tempIo(io_->temporary()); // may throw
         assert (tempIo.get() != 0);
-        tempIo->write(&blob[0], blob.size());
+        tempIo->write(&blob[0], static_cast<long>(blob.size()));
         io_->close();
         io_->transfer(*tempIo); // may throw
 
@@ -1004,7 +1004,7 @@ namespace Exiv2 {
         if (tm) {
             const size_t m = 20;
             char s[m];
-            std::strftime(s, m, "%Y:%m:%d %T", tm);
+            std::strftime(s, m, "%Y:%m:%d %H:%M:%S", tm);
 
             ExifKey key(pCrwMapping->tag_, ExifTags::ifdItem(pCrwMapping->ifdId_));
             AsciiValue value;
@@ -1132,7 +1132,7 @@ namespace Exiv2 {
         CiffComponent* cc = pHead->findComponent(pCrwMapping->crwTagId_, 
                                                  pCrwMapping->crwDir_);
         if (!comment.empty()) {
-            uint32_t size = comment.size();
+            uint32_t size = static_cast<uint32_t>(comment.size());
             if (cc && cc->size() > size) size = cc->size();
             DataBuf buf(size);
             memset(buf.pData_, 0x0, buf.size_);
@@ -1197,7 +1197,7 @@ namespace Exiv2 {
         }
         if (buf.size_ > 0) {
             // Write the number of shorts to the beginning of buf
-            us2Data(buf.pData_, buf.size_, pHead->byteOrder());
+            us2Data(buf.pData_, static_cast<uint16_t>(buf.size_), pHead->byteOrder());
             pHead->add(pCrwMapping->crwTagId_, pCrwMapping->crwDir_, buf);
         }
         else {
@@ -1217,8 +1217,9 @@ namespace Exiv2 {
         const ExifData::const_iterator ed = image.exifData().findKey(key);
         if (ed != image.exifData().end()) {
             struct tm tm;
-            char* p = strptime(ed->toString().c_str(), "%Y:%m:%d %T", &tm);
-            if (p != 0) t = timegm(&tm);
+            memset(&tm, 0x0, sizeof(tm));
+            int rc = exifTime(ed->toString().c_str(), &tm);
+            if (rc == 0) t = timegm(&tm);
         }
         if (t != 0) {
             DataBuf buf(12);
diff --git a/src/types.cpp b/src/types.cpp
index 2f4d2b1..7bc26b2 100644
--- a/src/types.cpp
+++ b/src/types.cpp
@@ -40,6 +40,9 @@ EXIV2_RCSID("@(#) $Id$");
 #include <sstream>
 #include <utility>
 #include <cctype>
+#include <ctime>
+#include <cstdio>
+#include <cassert>
 
 // *****************************************************************************
 // class member definitions
@@ -311,4 +314,24 @@ namespace Exiv2 {
         return true;
     } // isHex
 
+    int exifTime(const char* buf, struct tm* tm)
+    {
+        assert(buf != 0);
+        assert(tm != 0);
+        int rc = 1;
+        int year, mon, mday, hour, min, sec;
+        int scanned = sscanf(buf, "%4d:%2d:%2d %2d:%2d:%2d",
+                             &year, &mon, &mday, &hour, &min, &sec);
+        if (scanned == 6) {
+            tm->tm_year = year - 1900;
+            tm->tm_mon  = mon - 1;
+            tm->tm_mday = mday;
+            tm->tm_hour = hour;
+            tm->tm_min  = min;
+            tm->tm_sec  = sec;
+            rc = 0;
+        }
+        return rc;
+    } // exifTime
+
 }                                       // namespace Exiv2
diff --git a/src/types.hpp b/src/types.hpp
index 2266525..44330e7 100644
--- a/src/types.hpp
+++ b/src/types.hpp
@@ -48,6 +48,7 @@
 #ifdef EXV_HAVE_STDINT_H
 # include <stdint.h>
 #endif
+#include <ctime>
 
 // MSVC doesn't provide C99 types, but it has MS specific variants
 #ifdef _MSC_VER
@@ -284,6 +285,13 @@ namespace Exiv2 {
                size_t size =0,
                const std::string& prefix ="");
 
+    /*!
+      @brief Converts a string in the form "%Y:%m:%d %H:%M:%S", e.g.,
+             "2007:05:24 12:31:55" to broken down time format, 
+             returns 0 if successful, else 1.
+     */
+    int exifTime(const char* buf, struct tm* tm);
+
 // *****************************************************************************
 // template and inline definitions
 

-- 
exiv2 packaging



More information about the pkg-kde-commits mailing list