diff src/image-overlay.c @ 1288:10073464e6aa

use metadata_read_* functions where possible switch exiv2 to utf8 charset support for exiv2 formatting that depends on other tags: http://dev.robotbattle.com/bugs/view.php?id=0000516
author nadvornik
date Sat, 07 Feb 2009 19:01:21 +0000
parents 8b89e3ff286b
children 7ac9664242b2
line wrap: on
line diff
--- a/src/image-overlay.c	Fri Feb 06 23:49:03 2009 +0000
+++ b/src/image-overlay.c	Sat Feb 07 19:01:21 2009 +0000
@@ -178,7 +178,7 @@
 
 	g_assert(fd);
 
-	keywords = metadata_read_list(fd, KEYWORD_KEY);
+	keywords = metadata_read_list(fd, KEYWORD_KEY, METADATA_PLAIN);
 
 	if (keywords)
 		{
@@ -278,24 +278,14 @@
 			}
 		else if (strcmp(name, "comment") == 0)
 			{
-			data = metadata_read_string(imd->image_fd, COMMENT_KEY);
+			data = metadata_read_string(imd->image_fd, COMMENT_KEY, METADATA_PLAIN);
 			}
 		else
 			{
-			/*
-			   keywords and comment can't be read between exif_read_fd and exif_free_fd calls
-			   because fd->exif does not count references
-			   on the other hand, it is OK to call it in the loop because it is cached
-			*/
-			   
-			ExifData *exif;
-			exif = exif_read_fd(imd->image_fd);
-
 			data = g_strdup(g_hash_table_lookup(vars, name));
 			if (data && strcmp(name, "zoom") == 0) imd->overlay_show_zoom = TRUE;
-			if (!data && exif)
-				data = exif_get_data_as_text(exif, name);
-			exif_free_fd(imd->image_fd, exif);
+			if (!data)
+				data = metadata_read_string(imd->image_fd, name, METADATA_FORMATTED);
 			}
 	
 		if (data && *data && limit > 0 && strlen(data) > limit + 3)