Mercurial > pidgin
comparison src/xmlnode.c @ 10331:20df7dd1c57c
[gaim-migrate @ 11538]
Something I love about g_string's
committer: Tailor Script <tailor@pidgin.im>
| author | Mark Doliner <mark@kingant.net> |
|---|---|
| date | Thu, 09 Dec 2004 00:44:58 +0000 |
| parents | ad7fab671e6f |
| children | 5b7a74d397cc |
comparison
equal
deleted
inserted
replaced
| 10330:4f5a7ddd3161 | 10331:20df7dd1c57c |
|---|---|
| 222 | 222 |
| 223 char * | 223 char * |
| 224 xmlnode_get_data(xmlnode *node) | 224 xmlnode_get_data(xmlnode *node) |
| 225 { | 225 { |
| 226 GString *str = NULL; | 226 GString *str = NULL; |
| 227 char *ret = NULL; | |
| 228 xmlnode *c; | 227 xmlnode *c; |
| 229 | 228 |
| 230 g_return_val_if_fail(node != NULL, NULL); | 229 g_return_val_if_fail(node != NULL, NULL); |
| 231 | 230 |
| 232 | 231 |
| 236 str = g_string_new(""); | 235 str = g_string_new(""); |
| 237 str = g_string_append_len(str, c->data, c->data_sz); | 236 str = g_string_append_len(str, c->data, c->data_sz); |
| 238 } | 237 } |
| 239 } | 238 } |
| 240 | 239 |
| 241 if(str) { | 240 if (str == NULL) |
| 242 ret = str->str; | 241 return NULL; |
| 243 g_string_free(str, FALSE); | 242 |
| 244 } | 243 return g_string_free(str, FALSE); |
| 245 | |
| 246 return ret; | |
| 247 } | 244 } |
| 248 | 245 |
| 249 static char *xmlnode_to_str_helper(xmlnode *node, int *len, gboolean formatting, int depth) | 246 static char *xmlnode_to_str_helper(xmlnode *node, int *len, gboolean formatting, int depth) |
| 250 { | 247 { |
| 251 char *ret; | |
| 252 GString *text = g_string_new(""); | 248 GString *text = g_string_new(""); |
| 253 xmlnode *c; | 249 xmlnode *c; |
| 254 char *node_name, *esc, *esc2, *tab = NULL; | 250 char *node_name, *esc, *esc2, *tab = NULL; |
| 255 gboolean need_end = FALSE, pretty = formatting; | 251 gboolean need_end = FALSE, pretty = formatting; |
| 256 #ifdef _WIN32 | 252 #ifdef _WIN32 |
| 309 g_free(node_name); | 305 g_free(node_name); |
| 310 | 306 |
| 311 if(tab) | 307 if(tab) |
| 312 g_free(tab); | 308 g_free(tab); |
| 313 | 309 |
| 314 ret = text->str; | |
| 315 if(len) | 310 if(len) |
| 316 *len = text->len; | 311 *len = text->len; |
| 317 g_string_free(text, FALSE); | 312 |
| 318 return ret; | 313 return g_string_free(text, FALSE); |
| 319 } | 314 } |
| 320 | 315 |
| 321 char *xmlnode_to_str(xmlnode *node, int *len) { | 316 char *xmlnode_to_str(xmlnode *node, int *len) { |
| 322 return xmlnode_to_str_helper(node, len, FALSE, 0); | 317 return xmlnode_to_str_helper(node, len, FALSE, 0); |
| 323 } | 318 } |
