src/xmlnode.c

changeset 10331
9955b6f7c998
parent 9838
7320c7b02aac
child 10415
faceb835eb87
equal deleted inserted replaced
10330:6497dacdf912 10331:9955b6f7c998
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 }

mercurial