/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* cmd_optimization.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: dkaiser content); else return NO_CMD; } void optimize_commands(t_psdata *data) { t_list *cur; t_list *last; int optimizations; cur = data->cmds; last = cur; optimizations = 0; while (cur->next) { if ((get_cmd(cur) == PA && get_cmd(cur->next) == PB) || (get_cmd(cur) == PB && get_cmd(cur->next) == PA)) { last->next = cur->next->next; ft_lstdelone(cur->next, free); ft_lstdelone(cur, free); optimizations++; } last = last->next; cur = last->next; } if (optimizations) optimize_commands(data); }