| 331 g_return_val_if_fail(node != NULL, NULL); |
331 g_return_val_if_fail(node != NULL, NULL); |
| 332 |
332 |
| 333 for(c = node->child; c; c = c->next) { |
333 for(c = node->child; c; c = c->next) { |
| 334 if(c->type == XMLNODE_TYPE_DATA) { |
334 if(c->type == XMLNODE_TYPE_DATA) { |
| 335 if(!str) |
335 if(!str) |
| 336 str = g_string_new(""); |
336 str = g_string_new_len(c->data, c->data_sz); |
| 337 str = g_string_append_len(str, c->data, c->data_sz); |
337 else |
| |
338 str = g_string_append_len(str, c->data, c->data_sz); |
| 338 } |
339 } |
| 339 } |
340 } |
| 340 |
341 |
| 341 if (str == NULL) |
342 if (str == NULL) |
| 342 return NULL; |
343 return NULL; |
| 343 |
344 |
| 344 return g_string_free(str, FALSE); |
345 return g_string_free(str, FALSE); |
| |
346 } |
| |
347 |
| |
348 char * |
| |
349 xmlnode_get_data_unescaped(xmlnode *node) |
| |
350 { |
| |
351 char *escaped = xmlnode_get_data(node); |
| |
352 |
| |
353 char *unescaped = escaped ? purple_unescape_html(escaped) : NULL; |
| |
354 |
| |
355 g_free(escaped); |
| |
356 |
| |
357 return unescaped; |
| 345 } |
358 } |
| 346 |
359 |
| 347 static char * |
360 static char * |
| 348 xmlnode_to_str_helper(xmlnode *node, int *len, gboolean formatting, int depth) |
361 xmlnode_to_str_helper(xmlnode *node, int *len, gboolean formatting, int depth) |
| 349 { |
362 { |