Mercurial > pidgin.yaz
diff src/xmlnode.c @ 10423:3232e1a33899
[gaim-migrate @ 11675]
Set version numbers for all our xml files
Use xmlnode for writing accounts.xml
Add 2 conveniencey helper functions to xmlnode
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sun, 26 Dec 2004 18:38:22 +0000 |
parents | 5b7a74d397cc |
children | 108151be77a3 |
line wrap: on
line diff
--- a/src/xmlnode.c Sun Dec 26 05:56:18 2004 +0000 +++ b/src/xmlnode.c Sun Dec 26 18:38:22 2004 +0000 @@ -38,6 +38,7 @@ new_node(const char *name, XMLNodeType type) { xmlnode *node = g_new0(xmlnode, 1); + if(name) node->name = g_strdup(name); node->type = type; @@ -53,7 +54,23 @@ return new_node(name, XMLNODE_TYPE_TAG); } -xmlnode *xmlnode_new_child(xmlnode *parent, const char *name) +xmlnode* +xmlnode_new_with_data(const char *name, const char *data, size_t size) +{ + xmlnode *node; + + g_return_val_if_fail(name != NULL, NULL); + g_return_val_if_fail(data != NULL, NULL); + g_return_val_if_fail(size != 0, NULL); + + node = new_node(name, XMLNODE_TYPE_TAG); + xmlnode_insert_data(node, data, size); + + return node; +} + +xmlnode * +xmlnode_new_child(xmlnode *parent, const char *name) { xmlnode *node; @@ -67,6 +84,25 @@ return node; } +xmlnode * +xmlnode_new_child_with_data(xmlnode *parent, const char *name, + const char *data, size_t size) +{ + xmlnode *node; + + g_return_val_if_fail(parent != NULL, NULL); + g_return_val_if_fail(name != NULL, NULL); + g_return_val_if_fail(data != NULL, NULL); + g_return_val_if_fail(size != 0, NULL); + + node = new_node(name, XMLNODE_TYPE_TAG); + xmlnode_insert_data(node, data, size); + + xmlnode_insert_child(parent, node); + + return node; +} + void xmlnode_insert_child(xmlnode *parent, xmlnode *child) { @@ -162,7 +198,8 @@ return NULL; } -void xmlnode_free(xmlnode *node) +void +xmlnode_free(xmlnode *node) { xmlnode *x, *y; @@ -243,7 +280,8 @@ return g_string_free(str, FALSE); } -static gchar *xmlnode_to_str_helper(xmlnode *node, int *len, gboolean formatting, int depth) +static gchar * +xmlnode_to_str_helper(xmlnode *node, int *len, gboolean formatting, int depth) { GString *text = g_string_new(""); xmlnode *c; @@ -313,11 +351,15 @@ return g_string_free(text, FALSE); } -gchar *xmlnode_to_str(xmlnode *node, int *len) { +gchar * +xmlnode_to_str(xmlnode *node, int *len) +{ return xmlnode_to_str_helper(node, len, FALSE, 0); } -gchar *xmlnode_to_formatted_str(xmlnode *node, int *len) { +gchar * +xmlnode_to_formatted_str(xmlnode *node, int *len) +{ gchar *xml, *xml_with_declaration; xml = xmlnode_to_str_helper(node, len, TRUE, 0); @@ -395,7 +437,8 @@ }; -xmlnode *xmlnode_from_str(const char *str, size_t size) +xmlnode * +xmlnode_from_str(const char *str, size_t size) { struct _xmlnode_parser_data *xpd = g_new0(struct _xmlnode_parser_data, 1); xmlnode *ret; @@ -418,7 +461,8 @@ return ret; } -xmlnode *xmlnode_copy(xmlnode *src) +xmlnode * +xmlnode_copy(xmlnode *src) { xmlnode *ret; xmlnode *child; @@ -451,7 +495,9 @@ return ret; } -xmlnode *xmlnode_get_next_twin(xmlnode *node) { +xmlnode * +xmlnode_get_next_twin(xmlnode *node) +{ xmlnode *sibling; const char *ns = xmlnode_get_attrib(node, "xmlns"); @@ -470,4 +516,3 @@ return NULL; } -