Remove commented out code.
[geeqie.git] / src / exif.c
index fdb099a..dff35ed 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Geeqie
  * (C) 2006 John Ellis
- *  Copyright (C) 2008 - 2009 The Geeqie Team
+ *  Copyright (C) 2008 - 2012 The Geeqie Team
  *
  *  Authors:
  *    Support for Exif file format, originally written by Eric Swalens.
@@ -73,6 +73,7 @@
 
 #include "main.h"
 #include "exif-int.h"
+#include "jpeg_parser.h"
 
 #include "format_raw.h"
 #include "ui_fileops.h"
@@ -927,7 +928,7 @@ static gint exif_parse_IFD_entry(ExifData *exif, guchar *tiff, guint offset,
        if (data_length > 4)
                {
                data_offset = data_val;
-               if (size < data_offset + data_length)
+               if (size < data_offset || size < data_offset + data_length)
                        {
                        log_printf("warning: exif tag %s data will overrun end of file, ignored.\n", marker->key);
                        return -1;
@@ -1086,7 +1087,7 @@ static gint exif_jpeg_parse(ExifData *exif,
                return -2;
                }
 
-       if (exif_jpeg_segment_find(data, size, JPEG_MARKER_APP1,
+       if (jpeg_segment_find(data, size, JPEG_MARKER_APP1,
                                   "Exif\x00\x00", 6,
                                   &seg_offset, &seg_length))
                {
@@ -1280,11 +1281,6 @@ ExifData *exif_read(gchar *path, gchar *sidecar_path, GHashTable *modified_xmp)
 
        if (exif) exif->items = g_list_reverse(exif->items);
 
-#if 0
-       exif_write_data_list(exif, stdout, TRUE);
-       exif_write_data_list(exif, stdout, FALSE);
-#endif
-
        return exif;
 }
 
@@ -1458,6 +1454,7 @@ gchar *exif_item_get_data_as_text(ExifItem *item)
 gint exif_item_get_integer(ExifItem *item, gint *value)
 {
        if (!item) return FALSE;
+       if (!item->elements) return FALSE;
 
        switch (item->format)
                {
@@ -1516,7 +1513,7 @@ gchar *exif_get_tag_description_by_key(const gchar *key)
        i = 0;
        while (ExifKnownGPSInfoMarkersList[i].tag > 0)
        {
-          if (strcmp(key, ExifKnownGPSInfoMarkersList[i].key) == 0) return _(ExifKnownGPSInfoMarkersList[i].description);
+          if (strcmp(key, ExifKnownGPSInfoMarkersList[i].key) == 0) return g_strdup(_(ExifKnownGPSInfoMarkersList[i].description));
           i++;
        }
 
@@ -1582,13 +1579,13 @@ void exif_write_data_list(ExifData *exif, FILE *f, gint human_readable_list)
 
 gboolean exif_write(ExifData *exif)
 {
-       log_printf("Not compiled with EXIF write support");
+       log_printf("Not compiled with EXIF write support\n");
        return FALSE;
 }
 
 gboolean exif_write_sidecar(ExifData *exif, gchar *path)
 {
-       log_printf("Not compiled with EXIF write support");
+       log_printf("Not compiled with EXIF write support\n");
        return FALSE;
 }
 
@@ -1606,7 +1603,7 @@ GList *exif_get_metadata(ExifData *exif, const gchar *key, MetadataFormat format
        if (!key) return NULL;
        
        /* convert xmp key to exif key */
-       if (strcmp(key, ORIENTATION_KEY) == 0) key = "Exif.Image.Orientation";
+       if (strcmp(key, "Xmp.tiff.Orientation") == 0) key = "Exif.Image.Orientation";
        
        if (format == METADATA_FORMATTED)
                {