#include "libft.h" void ft_slist_rm(t_slist **lst, void *data, int (*cmp)(void *, void *), void (*del)(void *)) { t_slist *curr = *lst; t_slist *prev = NULL; while (curr) { if (cmp(curr->data, data) == 0) { if (prev) prev->next = curr->next; else *lst = curr->next; if (del) del(curr->data); free(curr); return; } prev = curr; curr = curr->next; } }