| 54 |
56 |
| 55 if (succ) |
57 if (succ) |
| 56 *var = val; |
58 *var = val; |
| 57 return succ; |
59 return succ; |
| 58 } |
60 } |
| |
61 |
| |
62 gboolean ggp_xml_set_string(xmlnode *xml, gchar *childName, const gchar *val) |
| |
63 { |
| |
64 g_return_val_if_fail(xml != NULL, FALSE); |
| |
65 g_return_val_if_fail(val != NULL, FALSE); |
| |
66 |
| |
67 if (childName != NULL) |
| |
68 { |
| |
69 xmlnode *child = xmlnode_get_child(xml, childName); |
| |
70 if (child == NULL) |
| |
71 child = xmlnode_new_child(xml, childName); |
| |
72 xml = child; |
| |
73 } |
| |
74 |
| |
75 ggp_xmlnode_remove_children(xml); |
| |
76 xmlnode_insert_data(xml, val, -1); |
| |
77 |
| |
78 return TRUE; |
| |
79 } |
| |
80 |
| |
81 gboolean ggp_xml_set_bool(xmlnode *xml, gchar *childName, gboolean val) |
| |
82 { |
| |
83 return ggp_xml_set_string(xml, childName, val ? "true" : "false"); |
| |
84 } |
| |
85 |
| |
86 gboolean ggp_xml_set_uint(xmlnode *xml, gchar *childName, unsigned int val) |
| |
87 { |
| |
88 gchar buff[20]; |
| |
89 g_snprintf(buff, sizeof(buff), "%u", val); |
| |
90 return ggp_xml_set_string(xml, childName, buff); |
| |
91 } |
| |
92 |
| |
93 void ggp_xmlnode_remove_children(xmlnode *xml) |
| |
94 { |
| |
95 xmlnode *child = xml->child; |
| |
96 while (child) |
| |
97 { |
| |
98 xmlnode *next = child->next; |
| |
99 if (child->type != XMLNODE_TYPE_ATTRIB) |
| |
100 xmlnode_free(child); |
| |
101 child = next; |
| |
102 } |
| |
103 } |