[kazehakase-svn] [3100] * src/kz-xml.c (kz_xml_node_insert_before): ref and ...

Back to archive index

svnno****@sourc***** svnno****@sourc*****
Fri Mar 30 09:14:13 JST 2007


Revision: 3100
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=kazehakase&view=rev&rev=3100
Author:   kous
Date:     2007-03-30 09:14:13 +0900 (Fri, 30 Mar 2007)

Log Message:
-----------
* src/kz-xml.c (kz_xml_node_insert_before): ref and ...
(kz_xml_node_remove_child): ... unref.

* src/kz-xml.[ch] (kz_xml_set_root_element): added.

* src/bookmarks/kz-xbel.c (kz_xbel_insert_xml_node): made new
<xbel> root element if root element doesn't exist.

Modified Paths:
--------------
    kazehakase/trunk/ChangeLog
    kazehakase/trunk/src/bookmarks/kz-xbel.c
    kazehakase/trunk/src/kz-xml.c
    kazehakase/trunk/src/kz-xml.h

Modified: kazehakase/trunk/ChangeLog
===================================================================
--- kazehakase/trunk/ChangeLog	2007-03-29 23:49:03 UTC (rev 3099)
+++ kazehakase/trunk/ChangeLog	2007-03-30 00:14:13 UTC (rev 3100)
@@ -1,5 +1,13 @@
 2007-03-30  Kouhei Sutou  <kou****@cozmi*****>
 
+	* src/kz-xml.c (kz_xml_node_insert_before): ref and ...
+	(kz_xml_node_remove_child): ... unref.
+
+	* src/kz-xml.[ch] (kz_xml_set_root_element): added.
+
+	* src/bookmarks/kz-xbel.c (kz_xbel_insert_xml_node): made new
+	<xbel> root element if root element doesn't exist.
+
 	* autogen.sh: improved error handling.
 
 	* autogen.sh, configure.ac: used intltoolize and glib-gettetize.

Modified: kazehakase/trunk/src/bookmarks/kz-xbel.c
===================================================================
--- kazehakase/trunk/src/bookmarks/kz-xbel.c	2007-03-29 23:49:03 UTC (rev 3099)
+++ kazehakase/trunk/src/bookmarks/kz-xbel.c	2007-03-30 00:14:13 UTC (rev 3100)
@@ -1580,6 +1580,11 @@
 		g_return_if_fail(KZ_IS_XML(xml));
 
 		parent_node = kz_xml_get_root_element(xml);
+		if (!parent_node)
+		{
+			parent_node = kz_xml_element_node_new("xbel");
+			kz_xml_set_root_element(xml, parent_node);
+		}
 		g_return_if_fail (kz_xml_node_name_is(parent_node, "xbel"));
 	}
 

Modified: kazehakase/trunk/src/kz-xml.c
===================================================================
--- kazehakase/trunk/src/kz-xml.c	2007-03-29 23:49:03 UTC (rev 3099)
+++ kazehakase/trunk/src/kz-xml.c	2007-03-30 00:14:13 UTC (rev 3100)
@@ -789,7 +789,29 @@
 	return NULL;
 }
 
+void
+kz_xml_set_root_element (KzXML *xml, KzXMLNode *node)
+{
+	KzXMLNode *prev_node;
+	g_return_if_fail(KZ_IS_XML(xml));
 
+	prev_node = kz_xml_node_first_child(xml->root);
+	for (; prev_node; prev_node = kz_xml_node_next(prev_node))
+	{
+		if (prev_node->type == KZ_XML_NODE_ELEMENT)
+		{
+			break;
+		}
+	}
+
+	if (prev_node)
+		kz_xml_node_remove_child(xml->root, prev_node);
+
+	if (node)
+		kz_xml_node_append_child(xml->root, node);
+}
+
+
 gboolean
 kz_xml_node_is_element (KzXMLNode *node)
 {
@@ -825,6 +847,7 @@
 	}
 	node->children = g_list_insert_before(node->children, list, child);
 	child->parent = node;
+	kz_xml_node_ref(child);
 }
 
 
@@ -836,6 +859,7 @@
 
 	node->children = g_list_remove(node->children, child);
 	child->parent = NULL;
+	kz_xml_node_unref(child);
 
 	return child;
 }

Modified: kazehakase/trunk/src/kz-xml.h
===================================================================
--- kazehakase/trunk/src/kz-xml.h	2007-03-29 23:49:03 UTC (rev 3099)
+++ kazehakase/trunk/src/kz-xml.h	2007-03-30 00:14:13 UTC (rev 3100)
@@ -112,6 +112,8 @@
 KzXMLNode   *kz_xml_node_new               (KzXML         *xml,
 					    KzXMLNodeType  type);
 KzXMLNode   *kz_xml_get_root_element       (KzXML         *xml);
+void         kz_xml_set_root_element       (KzXML         *xml,
+					    KzXMLNode     *node);
 KzXMLNode   *kz_xml_node_ref               (KzXMLNode     *node);
 void         kz_xml_node_unref             (KzXMLNode     *node);
 gboolean     kz_xml_node_is_element        (KzXMLNode     *node);




More information about the Kazehakase-cvs mailing list
Back to archive index