Use util_clip_triangle() in pan_item_tri_new()
[geeqie.git] / src / exiv2.cc
index 42ce72d..e42f1af 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#include <config.h>
-
-#ifdef HAVE_EXIV2
+#include "exif.h"
 
-// Don't include the <exiv2/version.hpp> file directly
-// Early Exiv2 versions didn't have version.hpp and the macros.
-#include <exiv2/exiv2.hpp>
-#include <iostream>
+#include <algorithm>
+#include <cstdint>
+#include <cstring>
+#include <exception>
+#include <list>
+#include <memory>
 #include <string>
+#include <utility>
+#include <vector>
 
-#if EXIV2_TEST_VERSION(0,27,0)
-#define HAVE_EXIV2_ERROR_CODE
-#endif
-
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#if EXIV2_TEST_VERSION(0,27,0)
-#define EXV_PACKAGE "exiv2"
-#endif
+#include <config.h>
 
+#include <exiv2/exiv2.hpp>
 #include <glib.h>
-
-#include "exif.h"
+#ifdef ENABLE_NLS
+#  include <libintl.h>
+#endif
 
 #include "debug.h"
 #include "filedata.h"
 #include "filefilter.h"
 #include "misc.h"
 #include "options.h"
+#include "typedefs.h"
 #include "ui-fileops.h"
 
+struct ExifItem;
+
+#if EXIV2_TEST_VERSION(0,27,0)
+#define HAVE_EXIV2_ERROR_CODE
+#endif
+
+#if EXIV2_TEST_VERSION(0,27,0)
+#define EXV_PACKAGE "exiv2"
+#endif
+
 #if EXIV2_TEST_VERSION(0,28,0)
 #define AnyError Error
 #define AutoPtr UniquePtr
@@ -327,14 +330,15 @@ public:
                        copyXmpToExif(xmpData_, exifData_);
                        Exiv2::Image *image = imageData_->image();
 
+                       if (!image)
 #ifdef HAVE_EXIV2_ERROR_CODE
-#if EXIV2_TEST_VERSION(0,28,0)
-            if (!image) throw Exiv2::Error(Exiv2::ErrorCode::kerInputDataReadFailed);
-#else
-                       if (!image) throw Exiv2::Error(Exiv2::kerInputDataReadFailed);
-#endif
+#  if EXIV2_TEST_VERSION(0,28,0)
+                               throw Exiv2::Error(Exiv2::ErrorCode::kerInputDataReadFailed);
+#  else
+                               throw Exiv2::Error(Exiv2::kerInputDataReadFailed);
+#  endif
 #else
-                       if (!image) throw Exiv2::Error(21);
+                               throw Exiv2::Error(21);
 #endif
                        image->setExifData(exifData_);
                        image->setIptcData(iptcData_);
@@ -643,7 +647,7 @@ char *exif_item_get_data(ExifItem *item, guint *data_len)
                auto md = reinterpret_cast<Exiv2::Metadatum *>(item);
                if (data_len) *data_len = md->size();
                auto data = static_cast<char *>(g_malloc(md->size()));
-               long res = md->copy(reinterpret_cast<Exiv2::byte *>(data), Exiv2::littleEndian /* should not matter */);
+               auto res = md->copy(reinterpret_cast<Exiv2::byte *>(data), Exiv2::littleEndian /* should not matter */);
                g_assert(res == md->size());
                return data;
        }
@@ -950,7 +954,11 @@ static GList *exif_add_value_to_glist(GList *list, Exiv2::Metadatum &item, Metad
        else
                {
                /* read as a list */
-               gint i;
+#if EXIV2_TEST_VERSION(0,28,0)
+               size_t i;
+#else
+               long i;
+#endif
                for (i = 0; i < item.count(); i++)
                        list = g_list_append(list, utf8_validate_or_convert(item.toString(i).c_str()));
                }
@@ -1121,5 +1129,4 @@ void exif_free_preview(const guchar *buf)
        delete[] static_cast<const Exiv2::byte*>(buf);
 }
 
-#endif /* HAVE_EXIV2 */
 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */