# HG changeset patch # User Rasmus Thomsen # Date 1546796431 0 # Node ID d38b56bd8f22835d0bfe911241ff4c87724c961d # Parent 0149f1ddb2977566049a236fffd41ba83853b340 Fix #654, 655: fix build against exiv2-0.27.x https://github.com/BestImageViewer/geeqie/pull/655 diff -r 0149f1ddb297 -r d38b56bd8f22 src/exiv2.cc --- a/src/exiv2.cc Sun Jan 06 17:17:20 2019 +0000 +++ b/src/exiv2.cc Sun Jan 06 17:40:31 2019 +0000 @@ -22,17 +22,25 @@ #ifdef HAVE_EXIV2 -#include -#include +// Don't include the file directly +// Early Exiv2 versions didn't have version.hpp and the macros. +#include #include #include // EXIV2_TEST_VERSION is defined in Exiv2 0.15 and newer. +#ifdef EXIV2_VERSION #ifndef EXIV2_TEST_VERSION -# define EXIV2_TEST_VERSION(major,minor,patch) \ +#define EXIV2_TEST_VERSION(major,minor,patch) \ ( EXIV2_VERSION >= EXIV2_MAKE_VERSION(major,minor,patch) ) #endif +#else +#define EXIV2_TEST_VERSION(major,minor,patch) (false) +#endif +#if EXIV2_TEST_VERSION(0,27,0) +#define HAVE_EXIV2_ERROR_CODE +#endif #include #include @@ -40,27 +48,8 @@ #include #include -#if !EXIV2_TEST_VERSION(0,17,90) -#include -#include -#include -#include -#include -#include -#if EXIV2_TEST_VERSION(0,16,0) -#include -#endif -#if EXIV2_TEST_VERSION(0,13,0) -#include -#endif -#include -#else -#include -#endif - -#if EXIV2_TEST_VERSION(0,17,0) -#include -#include +#if EXIV2_TEST_VERSION(0,27,0) +#define EXV_PACKAGE "exiv2" #endif extern "C" { @@ -374,7 +363,11 @@ #endif Exiv2::Image *image = imageData_->image(); +#ifdef HAVE_EXIV2_ERROR_CODE + if (!image) throw Exiv2::Error(Exiv2::ErrorCode::kerInputDataReadFailed); +#else if (!image) throw Exiv2::Error(21); +#endif image->setExifData(exifData_); image->setIptcData(iptcData_); #if EXIV2_TEST_VERSION(0,16,0) @@ -394,8 +387,12 @@ sidecar->setXmpData(xmpData_); sidecar->writeMetadata(); #else +#ifdef HAVE_EXIV2_ERROR_CODE + throw Exiv2::Error(Exiv2::ErrorCode::kerNotAnImage, "xmp"); +#else throw Exiv2::Error(3, "xmp"); #endif +#endif } }