/**
 * xmlListReverseSearch:
 * @param l a list
 * @param data a search value
 *
 * Search the list in reverse order for an existing value of data
 *
 * Returns the value associated to data or NULL in case of error
 */
void *
xmlListReverseSearch(xmlListPtr list, void *data)
{
    xmlLinkPtr lk;
    lk = xmlListLinkReverseSearch(list, data);
    if (lk)
        return (lk->data);
    return NULL;
}
Exemple #2
0
/**
 * xmlListReverseSearch:
 * @l:  a list
 * @data:  a search value
 *
 * Search the list in reverse order for an existing value of @data
 *
 * Returns the value associated to @data or NULL in case of error
 */
void *
xmlListReverseSearch(xmlListPtr l, void *data) 
{
    xmlLinkPtr lk;
    if (l == NULL)
        return(NULL);
    lk = xmlListLinkReverseSearch(l, data);
    if (lk)
        return (lk->data);
    return NULL;
}
/**
 * xmlListRemoveLast:
 * @param l a list
 * @param data list data
 *
 * Remove the last instance associated to data in the list
 *
 * Returns 1 if a deallocation occured, or 0 if not found
 */
int
xmlListRemoveLast(xmlListPtr list, void *data)
{
    xmlLinkPtr lk;

    /*Find the last instance of this data */
    lk = xmlListLinkReverseSearch(list, data);
    if (lk != NULL) {
    xmlLinkDeallocator(list, lk);
        return 1;
    }
    return 0;
}
Exemple #4
0
int
xmlListRemoveLast(xmlListPtr l, void *data)
{
    xmlLinkPtr lk;
    
    if (l == NULL)
        return(0);
    
    lk = xmlListLinkReverseSearch(l, data);
    if (lk != NULL) {
	xmlLinkDeallocator(l, lk);
        return 1;
    }
    return 0;
}