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);