Bug 521591 – g_markup_parse_context_parse() creates GError message that
authorMurray Cumming <murrayc@murrayc.com>
Tue, 11 Mar 2008 15:43:25 +0000 (15:43 +0000)
committerMurray Cumming <murrayc@src.gnome.org>
Tue, 11 Mar 2008 15:43:25 +0000 (15:43 +0000)
2008-03-11  Murray Cumming  <murrayc@murrayc.com>

Bug 521591 – g_markup_parse_context_parse() creates GError message that
is invalid UTF8.

* glib/gmarkup.c (set_error): Make sure that the GError::message is
valid UTF-8 even if it is complaining about invalid UTF-8 in the
markup text, using _g_utf8_make_valid().

svn path=/trunk/; revision=6680

ChangeLog
glib/gmarkup.c

index 05b1464..61b0eca 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-03-11  Murray Cumming  <murrayc@murrayc.com>
+
+       Bug 521591 – g_markup_parse_context_parse() creates GError message that 
+       is invalid UTF8.
+
+       * glib/gmarkup.c (set_error): Make sure that the GError::message is 
+       valid UTF-8 even if it is complaining about invalid UTF-8 in the 
+       markup text, using _g_utf8_make_valid().
+
 2008-03-10  Matthias Clasen  <mclasen@redhat.com>
        
        * === Released 2.16.1 ===
index e1e9aa5..f3e8c1f 100644 (file)
@@ -215,14 +215,20 @@ set_error (GMarkupParseContext *context,
 {
   GError *tmp_error;
   gchar *s;
+  gchar *s_valid;
   va_list args;
 
   va_start (args, format);
   s = g_strdup_vprintf (format, args);
   va_end (args);
 
-  tmp_error = g_error_new_literal (G_MARKUP_ERROR, code, s);
+  /* Make sure that the GError message is valid UTF-8 even if it is 
+   * complaining about invalid UTF-8 in the markup: */
+  s_valid = _g_utf8_make_valid (s);
+  tmp_error = g_error_new_literal (G_MARKUP_ERROR, code, s_valid);
+
   g_free (s);
+  g_free (s_valid);
 
   g_prefix_error (&tmp_error,
                   _("Error on line %d char %d: "),