[gimp/metadata-browser] Bug 680432 - metadata.exe keeps dying



commit 40bfa16c404e896ccb3e858c49d4b7e858025ff0
Author: Michael Natterer <mitch gimp org>
Date:   Tue Jul 31 15:14:20 2012 +0200

    Bug 680432 - metadata.exe keeps dying
    
    Based on a patch by Hartmut Kuhse, run all strings through
    gimp_any_to_utf8() which always returns something that's UTF-8, even
    if it's only "(invalid UTF-8 String)". Better than crashing.

 plug-ins/metadata/xmp-encode.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/plug-ins/metadata/xmp-encode.c b/plug-ins/metadata/xmp-encode.c
index df642e0..109cfaa 100644
--- a/plug-ins/metadata/xmp-encode.c
+++ b/plug-ins/metadata/xmp-encode.c
@@ -95,6 +95,7 @@ gen_element (GString     *buffer,
 {
   const gchar *attr_name;
   const gchar *attr_value;
+  gchar       *utf8 = NULL;
   va_list      args;
 
   while (indent--)
@@ -114,8 +115,11 @@ gen_element (GString     *buffer,
   va_end (args);
 
   if (value && *value)
+    utf8 = gimp_any_to_utf8 (value, -1,  NULL);
+
+  if (utf8 && *utf8)
     {
-      gchar *escaped_value = g_markup_escape_text (value, -1);
+      gchar *escaped_value = g_markup_escape_text (utf8, -1);
 
       g_string_append_printf (buffer, ">%s</%s:%s>\n",
                               escaped_value, prefix, name);
@@ -125,6 +129,8 @@ gen_element (GString     *buffer,
     {
       g_string_append (buffer, " />\n");
     }
+
+  g_free (utf8);
 }
 
 static void



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