[libgsf] xml: debug code.
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgsf] xml: debug code.
- Date: Wed, 4 Mar 2015 22:44:13 +0000 (UTC)
commit 780d25818e62fd4450a77b9207030ec2a587a891
Author: Morten Welinder <terra gnome org>
Date: Wed Mar 4 17:43:58 2015 -0500
xml: debug code.
gsf/gsf-libxml.c | 55 ++++++++++++++++++++++++++++-------------------------
1 files changed, 29 insertions(+), 26 deletions(-)
---
diff --git a/gsf/gsf-libxml.c b/gsf/gsf-libxml.c
index c741032..5b820cf 100644
--- a/gsf/gsf-libxml.c
+++ b/gsf/gsf-libxml.c
@@ -560,7 +560,7 @@ gsf_xml_probe (GsfInput *input, GsfXMLProbeFunc func)
* @start: callback for the node opening
* @end: callback for node end
* @has_content: whether the node has content
- * @check_children_for_ns: whetehr to check namespace for children
+ * @check_children_for_ns: whether to check namespace for children
* @share_children_with_parent: whether to share children with parent.
**/
@@ -590,6 +590,7 @@ typedef struct {
gboolean initialized;
gint unknown_depth; /* handle recursive unknown tags */
gboolean from_unknown_handler;
+ gboolean debug_parsing;
GSList *extension_stack; /* stack of GsfXMLInExtension */
} GsfXMLInInternal;
@@ -619,11 +620,10 @@ static void
push_child (GsfXMLInInternal *state, GsfXMLInNode const *node, int default_ns_id,
xmlChar const **attrs, GsfXMLInExtension *ext)
{
-#ifdef DEBUG_PUSH_POP
- g_printerr ("push: %-*s%s\n",
- (int)g_slist_length (state->pub.node_stack), "",
- node->name);
-#endif
+ if (state->debug_parsing)
+ g_printerr ("push: %-*s%s\n",
+ (int)g_slist_length (state->pub.node_stack), "",
+ node->name);
if (node->has_content == GSF_XML_CONTENT) {
if (state->pub.content->len) {
@@ -699,6 +699,22 @@ lookup_child (GsfXMLInInternal *state, int default_ns_id,
}
static void
+gsf_xml_dump_state (GsfXMLInInternal *state)
+{
+ GSList *ptr = state->pub.node_stack = g_slist_reverse (state->pub.node_stack);
+ if (ptr != NULL) /* skip toplevel catch all */
+ ptr = ptr->next;
+ for (;ptr != NULL && ptr != NULL; ptr = ptr->next) {
+ GsfXMLInNodeInternal const *node = ptr->data;
+ if (node != NULL)
+ g_printerr ("%s -> ", node_name (&node->pub));
+ }
+ if (state->pub.node != NULL)
+ g_printerr ("%s\n", node_name (state->pub.node));
+ state->pub.node_stack = g_slist_reverse (state->pub.node_stack);
+}
+
+static void
gsf_xml_in_start_element (GsfXMLInInternal *state, xmlChar const *name, xmlChar const **attrs)
{
GsfXMLInNSInstance *inst;
@@ -757,7 +773,7 @@ gsf_xml_in_start_element (GsfXMLInInternal *state, xmlChar const *name, xmlChar
if (NULL == tmp) {
char *s = g_strdup (ns_ptr[0] + 6);
g_hash_table_replace (state->ns_unknowns, s, s);
- if (gsf_debug_flag ("ns"))
+ if (gsf_debug_flag ("xml-ns"))
g_warning ("Unknown namespace uri = '%s'", ns_ptr[1]);
}
}
@@ -813,20 +829,7 @@ gsf_xml_in_start_element (GsfXMLInInternal *state, xmlChar const *name, xmlChar
return;
g_printerr ("Unexpected element '%s' in state : \n\t", name);
- ptr = state->pub.node_stack = g_slist_reverse (state->pub.node_stack);
- if (ptr != NULL) /* skip toplevel catch all */
- ptr = ptr->next;
- for (;ptr != NULL && ptr != NULL; ptr = ptr->next) {
- node = ptr->data;
- if (node != NULL) {
-/* FIXME FIXME FIXME if we really want this do we also want namespaces ? */
- g_printerr ("%s -> ", node_name (&node->pub));
- }
- }
- if (state->pub.node != NULL) {
- g_printerr ("%s\n", node_name (state->pub.node));
- }
- state->pub.node_stack = g_slist_reverse (state->pub.node_stack);
+ gsf_xml_dump_state (state);
}
static void
@@ -880,11 +883,10 @@ gsf_xml_in_end_element (GsfXMLInInternal *state,
g_slist_free (node->extensions);
node->extensions = NULL;
-#ifdef DEBUG_PUSH_POP
- g_printerr (" pop: %-*s%s\n",
- (int)g_slist_length (state->pub.node_stack) - 1, "",
- node->pub.name);
-#endif
+ if (state->debug_parsing)
+ g_printerr (" pop: %-*s%s\n",
+ (int)g_slist_length (state->pub.node_stack) - 1, "",
+ node->pub.name);
/* pop the state stack */
ext = state->extension_stack->data;
@@ -954,6 +956,7 @@ gsf_xml_in_start_document (GsfXMLInInternal *state)
g_free, NULL);
state->contents_stack = NULL;
state->from_unknown_handler = FALSE;
+ state->debug_parsing = gsf_debug_flag ("xml-parsing");
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]