comparison libpurple/xmlnode.c @ 19484:472bcd9d502e

propagate from branch 'im.pidgin.pidgin' (head 384c9116031084a2f41659dc9e9a4aa7bba55d86) to branch 'im.pidgin.soc.2007.xmpp' (head 3826e19f149ec8f3f701f463eec7825eed512d05)
author Evan Schoenberg <evan.s@dreskin.net>
date Mon, 27 Aug 2007 21:59:11 +0000
parents 5c1ed6296b56 1c97caf1ebbb
children 1d2002a5735e
comparison
equal deleted inserted replaced
19279:39779b201e7c 19484:472bcd9d502e
270 270
271 /* if we're part of a tree, remove ourselves from the tree first */ 271 /* if we're part of a tree, remove ourselves from the tree first */
272 if(NULL != node->parent) { 272 if(NULL != node->parent) {
273 if(node->parent->child == node) { 273 if(node->parent->child == node) {
274 node->parent->child = node->next; 274 node->parent->child = node->next;
275 if (node->parent->lastchild == node)
276 node->parent->lastchild = node->next;
275 } else { 277 } else {
276 xmlnode *prev = node->parent->child; 278 xmlnode *prev = node->parent->child;
277 while(prev && prev->next != node) { 279 while(prev && prev->next != node) {
278 prev = prev->next; 280 prev = prev->next;
279 } 281 }
280 if(prev) { 282 if(prev) {
281 prev->next = node->next; 283 prev->next = node->next;
284 if (node->parent->lastchild == node)
285 node->parent->lastchild = prev;
282 } 286 }
283 } 287 }
284 } 288 }
285 289
286 /* now free our children */ 290 /* now free our children */