/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ps_rot.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: tmaze +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/02/21 16:07:55 by tmaze #+# #+# */ /* Updated: 2019/03/02 16:32:04 by tmaze ### ########.fr */ /* */ /* ************************************************************************** */ #include "push_swap.h" void ps_rot(t_psdata *data, char c) { t_stack *s; t_stack *tmp; size_t *size; if (c == 'a') s = data->a; if (c == 'a') size = &(data->size_a); else if (c == 'b') s = data->b; if (c == 'b') size = &(data->size_b); if (s != NULL && *size > 2) { s = s->next; tmp = ps_stkpop(data, c); tmp->next = NULL; while (s->next != NULL) s = s->next; s->next = tmp; (*size)++; } else if (s != NULL && *size == 2) ps_swap(data, c); } void ps_rrot(t_psdata *data) { ps_rot(data, 'a'); ps_rot(data, 'b'); }