/** * xmlListLinkReverseSearch: * @param l a list * @param data a data * * Search data in the list processing backward * * Returns the link containing the data or NULL */ static xmlLinkPtr xmlListLinkReverseSearch(xmlListPtr list, void *data) { xmlLinkPtr lk; lk = xmlListHigherSearch(list, data); if (lk == list->sentinel) return NULL; else { if (list->linkCompare(lk->data, data) ==0) return lk; return NULL; } }
/** * xmlListAppend: * @param l a list * @param data the data * * Insert data in the ordered list at the end for this value * * Returns 0 in case of success, 1 in case of failure */ XMLPUBFUNEXPORT int xmlListAppend(xmlListPtr list, void *data) { xmlLinkPtr lkPlace, lkNew; lkPlace = xmlListHigherSearch(list, data); /* Add the new link */ lkNew = (xmlLinkPtr) xmlMalloc(sizeof(xmlLink)); if (lkNew == NULL) { xmlGenericError(xmlGenericErrorContext, EMBED_ERRTXT("Cannot initialize memory for new link")); return (0); } lkNew->data = data; lkNew->next = lkPlace->next; (lkPlace->next)->prev = lkNew; lkPlace->next = lkNew; lkNew->prev = lkPlace; return 1; }
/** * xmlListAppend: * @l: a list * @data: the data * * Insert data in the ordered list at the end for this value * * Returns 0 in case of success, 1 in case of failure */ int xmlListAppend(xmlListPtr l, void *data) { xmlLinkPtr lkPlace, lkNew; if (l == NULL) return(1); lkPlace = xmlListHigherSearch(l, data); /* Add the new link */ lkNew = (xmlLinkPtr) xmlMalloc(sizeof(xmlLink)); if (lkNew == NULL) { xmlGenericError(xmlGenericErrorContext, "Cannot initialize memory for new link"); return (1); } lkNew->data = data; lkNew->next = lkPlace->next; (lkPlace->next)->prev = lkNew; lkPlace->next = lkNew; lkNew->prev = lkPlace; return 0; }