librsvg r1203 - trunk



Author: doml
Date: Thu Feb 19 23:29:16 2009
New Revision: 1203
URL: http://svn.gnome.org/viewvc/librsvg?rev=1203&view=rev

Log:
2009-02-19  Christian Persch  <chpe gnome org>

        * rsvg-base.c: better error messages. Bug #567307



Modified:
   trunk/ChangeLog
   trunk/rsvg-base.c

Modified: trunk/rsvg-base.c
==============================================================================
--- trunk/rsvg-base.c	(original)
+++ trunk/rsvg-base.c	Thu Feb 19 23:29:16 2009
@@ -1058,6 +1058,24 @@
     return g_quark_from_string ("rsvg-error-quark");
 }
 
+static void
+rsvg_set_error (GError **error, xmlParserCtxtPtr ctxt)
+{
+  xmlErrorPtr xerr;
+
+  xerr = xmlCtxtGetLastError (ctxt);
+  if (xerr) {
+    g_set_error (error, rsvg_error_quark (), 0,
+                 _("Error domain %d code %d on line %d column %d of %s: %s"),
+                 xerr->domain, xerr->code,
+                 xerr->line, xerr->int2,
+                 xerr->file ? xerr->file : "data",
+                 xerr->message ? xerr->message: "-");
+  } else {
+    g_set_error (error, rsvg_error_quark (), 0, _("Error parsing XML data"));
+  }
+}
+
 static gboolean
 rsvg_handle_write_impl (RsvgHandle * handle, const guchar * buf, gsize count, GError ** error)
 {
@@ -1079,7 +1097,7 @@
 
     result = xmlParseChunk (handle->priv->ctxt, (char *) buf, count, 0);
     if (result != 0) {
-        g_set_error (error, rsvg_error_quark (), 0, _("Error parsing XML data"));
+        rsvg_set_error (error, handle->priv->ctxt);
         return FALSE;
     }
 
@@ -1113,7 +1131,7 @@
         xmlFreeDoc (xmlDoc);
 
         if (result != 0) {
-            g_set_error (error, rsvg_error_quark (), 0, _("Error parsing XML data"));
+            rsvg_set_error (error, handle->priv->ctxt);
             return FALSE;
         }
     }



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