From 1b67cccd710f6fe2e14c26e7eae85dfa43f6a7d6 Mon Sep 17 00:00:00 2001 From: David Gailleton Date: Mon, 8 Dec 2025 14:50:55 +0100 Subject: [PATCH 1/2] reverse rotate function --- stack_functions/rev_rotate.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 stack_functions/rev_rotate.c diff --git a/stack_functions/rev_rotate.c b/stack_functions/rev_rotate.c new file mode 100644 index 0000000..e0b5175 --- /dev/null +++ b/stack_functions/rev_rotate.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* rev_rotate.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dgaillet +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/12/08 14:43:45 by dgaillet #+# #+# */ +/* Updated: 2025/12/08 14:50:40 by dgaillet ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include "push_swap.h" + +void rra(t_stacks *stacks) +{ + if (stacks->a && stacks->a->previous) + stacks->a = stacks->a->previous; +} + +void rrb(t_stacks *stacks) +{ + if (stacks->b && stacks->b->previous) + stacks->b = stacks->b->previous; +} + +void rrr(t_stacks *stacks) +{ + rra(stacks); + rrb(stacks); +} From d840b06756a182f4cadc52f4ba13874948cc7ff1 Mon Sep 17 00:00:00 2001 From: David Gailleton Date: Mon, 8 Dec 2025 14:53:01 +0100 Subject: [PATCH 2/2] fix rotates functions --- stack_functions/rev_rotate.c | 6 +++--- stack_functions/rotate.c | 10 +++------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/stack_functions/rev_rotate.c b/stack_functions/rev_rotate.c index e0b5175..fe9e664 100644 --- a/stack_functions/rev_rotate.c +++ b/stack_functions/rev_rotate.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/12/08 14:43:45 by dgaillet #+# #+# */ -/* Updated: 2025/12/08 14:50:40 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/12/08 14:52:53 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -14,13 +14,13 @@ void rra(t_stacks *stacks) { - if (stacks->a && stacks->a->previous) + if (stacks && stacks->a && stacks->a->previous) stacks->a = stacks->a->previous; } void rrb(t_stacks *stacks) { - if (stacks->b && stacks->b->previous) + if (stacks && stacks->b && stacks->b->previous) stacks->b = stacks->b->previous; } diff --git a/stack_functions/rotate.c b/stack_functions/rotate.c index ea412af..d330a9d 100644 --- a/stack_functions/rotate.c +++ b/stack_functions/rotate.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/12/08 14:32:10 by dgaillet #+# #+# */ -/* Updated: 2025/12/08 14:42:04 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/12/08 14:52:37 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -14,17 +14,13 @@ void ra(t_stacks *stacks) { - if (!stacks) - return ; - if (stacks->a->next) + if (stacks && stacks->a && stacks->a->next) stacks->a = stacks->a->next; } void rb(t_stacks *stacks) { - if (!stacks) - return ; - if (stacks->b->next) + if (stacks && stacks->b && stacks->b->next) stacks->b = stacks->b->next; }