[gthumb] Fixed bug 582004, exif orientation tag handling broke in trunk



commit 03b9bafeddb6e6a456f1626d881a26f15370a95d
Author: Michael J. Chudobiak <mjc avtechpulse com>
Date:   Mon May 11 08:13:33 2009 -0400

    Fixed bug 582004, exif orientation tag handling broke in trunk
---
 libgthumb/gth-exiv2-utils.cpp |   22 ++++++++++------------
 1 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/libgthumb/gth-exiv2-utils.cpp b/libgthumb/gth-exiv2-utils.cpp
index 308bb6c..cbe6951 100644
--- a/libgthumb/gth-exiv2-utils.cpp
+++ b/libgthumb/gth-exiv2-utils.cpp
@@ -598,28 +598,26 @@ write_metadata (const char *from_file,
 			if (metadatum->full_name != NULL
                             && metadatum->raw_value != NULL) {
 				if (g_str_has_prefix (metadatum->full_name, "Exif")) {
-                                        // Remove existing tags of the same type
                                         Exiv2::ExifData::iterator iter = ed.findKey (Exiv2::ExifKey (metadatum->full_name));
                                         if (iter != ed.end ())
-                                                ed.erase (iter);
-                                        // Add tag
-					ed[metadatum->full_name] = metadatum->raw_value;
+                                                (*iter).setValue (metadatum->raw_value);
+					else
+						ed[metadatum->full_name] = metadatum->raw_value;
 				}
+
 				else if (g_str_has_prefix (metadatum->full_name, "Iptc")) {
-                                        // Remove existing tags of the same type
                                         Exiv2::IptcData::iterator iter = id.findKey (Exiv2::IptcKey (metadatum->full_name));
                                         if (iter != id.end ())
-                                                id.erase (iter);
-                                        // Add tag
-					id[metadatum->full_name] = metadatum->raw_value;
+						(*iter).setValue (metadatum->raw_value);
+					else
+						id[metadatum->full_name] = metadatum->raw_value;
 		        	}
 				else if (g_str_has_prefix (metadatum->full_name, "Xmp")) {
-                                        // Remove existing tags of the same type
                                         Exiv2::XmpData::iterator iter = xd.findKey (Exiv2::XmpKey (metadatum->full_name));
                                         if (iter != xd.end ())
-                                                xd.erase (iter);
-                                        // Add tag
-					xd[metadatum->full_name] = metadatum->raw_value;
+                                                (*iter).setValue (metadatum->raw_value);
+					else
+						xd[metadatum->full_name] = metadatum->raw_value;
 		        	}
 			}
 		}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]