| 36 char *str; |
36 char *str; |
| 37 |
37 |
| 38 g_return_val_if_fail(xml != NULL, FALSE); |
38 g_return_val_if_fail(xml != NULL, FALSE); |
| 39 g_return_val_if_fail(var != NULL, FALSE); |
39 g_return_val_if_fail(var != NULL, FALSE); |
| 40 |
40 |
| 41 if (childName != NULL) |
41 if (childName != NULL) { |
| 42 { |
|
| 43 xml = purple_xmlnode_get_child(xml, childName); |
42 xml = purple_xmlnode_get_child(xml, childName); |
| 44 if (xml == NULL) |
43 if (xml == NULL) |
| 45 return FALSE; |
44 return FALSE; |
| 46 } |
45 } |
| 47 |
46 |
| 95 gboolean ggp_xml_set_string(PurpleXmlNode *xml, gchar *childName, const gchar *val) |
94 gboolean ggp_xml_set_string(PurpleXmlNode *xml, gchar *childName, const gchar *val) |
| 96 { |
95 { |
| 97 g_return_val_if_fail(xml != NULL, FALSE); |
96 g_return_val_if_fail(xml != NULL, FALSE); |
| 98 g_return_val_if_fail(val != NULL, FALSE); |
97 g_return_val_if_fail(val != NULL, FALSE); |
| 99 |
98 |
| 100 if (childName != NULL) |
99 if (childName != NULL) { |
| 101 { |
|
| 102 PurpleXmlNode *child = purple_xmlnode_get_child(xml, childName); |
100 PurpleXmlNode *child = purple_xmlnode_get_child(xml, childName); |
| 103 if (child == NULL) |
101 if (child == NULL) |
| 104 child = purple_xmlnode_new_child(xml, childName); |
102 child = purple_xmlnode_new_child(xml, childName); |
| 105 xml = child; |
103 xml = child; |
| 106 } |
104 } |
| 124 } |
122 } |
| 125 |
123 |
| 126 void ggp_xmlnode_remove_children(PurpleXmlNode *xml) |
124 void ggp_xmlnode_remove_children(PurpleXmlNode *xml) |
| 127 { |
125 { |
| 128 PurpleXmlNode *child = xml->child; |
126 PurpleXmlNode *child = xml->child; |
| 129 while (child) |
127 while (child) { |
| 130 { |
|
| 131 PurpleXmlNode *next = child->next; |
128 PurpleXmlNode *next = child->next; |
| 132 if (child->type != PURPLE_XMLNODE_TYPE_ATTRIB) |
129 if (child->type != PURPLE_XMLNODE_TYPE_ATTRIB) |
| 133 purple_xmlnode_free(child); |
130 purple_xmlnode_free(child); |
| 134 child = next; |
131 child = next; |
| 135 } |
132 } |
| 140 PurpleXmlNode *child; |
137 PurpleXmlNode *child; |
| 141 unsigned int count = 0; |
138 unsigned int count = 0; |
| 142 |
139 |
| 143 g_return_val_if_fail(xml != NULL, 0); |
140 g_return_val_if_fail(xml != NULL, 0); |
| 144 |
141 |
| 145 if (childName) |
142 if (childName) { |
| 146 { |
|
| 147 child = purple_xmlnode_get_child(xml, childName); |
143 child = purple_xmlnode_get_child(xml, childName); |
| 148 while (child) |
144 while (child) { |
| 149 { |
|
| 150 child = purple_xmlnode_get_next_twin(child); |
145 child = purple_xmlnode_get_next_twin(child); |
| 151 count++; |
146 count++; |
| 152 } |
147 } |
| 153 } |
148 } else { |
| 154 else |
|
| 155 { |
|
| 156 child = xml->child; |
149 child = xml->child; |
| 157 while (child) |
150 while (child) { |
| 158 { |
|
| 159 child = child->next; |
151 child = child->next; |
| 160 count++; |
152 count++; |
| 161 } |
153 } |
| 162 } |
154 } |
| 163 |
155 |