Mercurial > pidgin.yaz
diff src/xmlnode.c @ 7642:9008b5be4275
[gaim-migrate @ 8285]
let the xmlnode stuff handle embedded NULLs (i'll need this later)
committer: Tailor Script <tailor@pidgin.im>
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Wed, 26 Nov 2003 17:28:13 +0000 |
parents | af889fd531d0 |
children | fa6395637e2c |
line wrap: on
line diff
--- a/src/xmlnode.c Wed Nov 26 16:33:40 2003 +0000 +++ b/src/xmlnode.c Wed Nov 26 17:28:13 2003 +0000 @@ -233,7 +233,7 @@ return ret; } -char *xmlnode_to_str(xmlnode *node) +char *xmlnode_to_str(xmlnode *node, int *len) { char *ret; GString *text = g_string_new(""); @@ -264,12 +264,13 @@ for(c = node->child; c; c = c->next) { if(c->type == NODE_TYPE_TAG) { - esc = xmlnode_to_str(c); - g_string_append_printf(text, "%s", esc); + int esc_len; + esc = xmlnode_to_str(c, &esc_len); + text = g_string_append_len(text, esc, esc_len); g_free(esc); } else if(c->type == NODE_TYPE_DATA) { esc = g_markup_escape_text(c->data, c->data_sz); - g_string_append_printf(text, "%s", esc); + text = g_string_append(text, esc); g_free(esc); } } @@ -282,6 +283,8 @@ g_free(node_name); ret = text->str; + if(len) + *len = text->len; g_string_free(text, FALSE); return ret; }