| 598 */ |
598 */ |
| 599 static void |
599 static void |
| 600 msim_convert_xmlnode(MsimSession *session, GString *out, xmlnode *root, MSIM_XMLNODE_CONVERT f, int nodes_processed) |
600 msim_convert_xmlnode(MsimSession *session, GString *out, xmlnode *root, MSIM_XMLNODE_CONVERT f, int nodes_processed) |
| 601 { |
601 { |
| 602 xmlnode *node; |
602 xmlnode *node; |
| 603 gchar *begin, *inner, *end, *tmp; |
603 gchar *begin, *end, *tmp; |
| 604 int descended = nodes_processed; |
604 int descended = nodes_processed; |
| 605 |
605 |
| 606 if (!root || !root->name) |
606 if (!root || !root->name) |
| 607 return; |
607 return; |
| 608 |
608 |
| 609 purple_debug_info("msim", "msim_convert_xmlnode: got root=%s\n", |
609 purple_debug_info("msim", "msim_convert_xmlnode: got root=%s\n", |
| 610 root->name); |
610 root->name); |
| 611 |
611 |
| 612 begin = inner = end = NULL; |
612 begin = end = NULL; |
| 613 |
613 |
| 614 if (descended == 0) /* We've not formatted this yet.. :) */ |
614 if (descended == 0) /* We've not formatted this yet.. :) */ |
| 615 descended = f(session, root, &begin, &end); /* Get the value that our format function has already descended for us */ |
615 descended = f(session, root, &begin, &end); /* Get the value that our format function has already descended for us */ |
| 616 |
616 |
| 617 g_string_append(out, begin); |
617 g_string_append(out, begin); |