libidav/resource.c

changeset 140
0a06bed068a1
parent 139
c6424aebcf5e
child 143
d8b01bed3d83
equal deleted inserted replaced
139:c6424aebcf5e 140:0a06bed068a1
365 if(r != 0) { 365 if(r != 0) {
366 break; 366 break;
367 } 367 }
368 } 368 }
369 369
370 if(r < 0 || !resource->next) { 370 if(r < 0) {
371 // insert child before resource 371 // insert child before resource
372 child->prev = resource->prev; 372 child->prev = resource->prev;
373 child->next = resource; 373 child->next = resource;
374 if(resource->prev) { 374 if(resource->prev) {
375 resource->prev->next = child; 375 resource->prev->next = child;
376 } else { 376 } else {
377 parent->children = child; 377 parent->children = child;
378 } 378 }
379 resource->prev = child; 379 resource->prev = child;
380 break;
381 } if(!resource->next) {
382 // append child
383 child->prev = resource;
384 child->next = NULL;
385 resource->next = child;
380 break; 386 break;
381 } else { 387 } else {
382 resource = resource->next; 388 resource = resource->next;
383 } 389 }
384 } 390 }

mercurial