summaryrefslogtreecommitdiff
path: root/command_handling.c
diff options
context:
space:
mode:
authorDominik Kaiser2024-04-16 09:54:27 +0200
committerGitHub2024-04-16 09:54:27 +0200
commit94bcf24c78d02e9220fdb49fa14c70e5594afe40 (patch)
treeb2e20f9eecdd4199a33d33af7c69a7a0a4a82bff /command_handling.c
parent05ed24cc61175dd74056bd0b2ecd509b995784f8 (diff)
parenta596331e31bf46d5083e1486b240fbcc76bc908e (diff)
downloadpush_swap-94bcf24c78d02e9220fdb49fa14c70e5594afe40.tar.gz
push_swap-94bcf24c78d02e9220fdb49fa14c70e5594afe40.zip
Merge pull request #3 from dpu-kaiser/merge-master-into-quicksort
Add changes from master to quicksort branch
Diffstat (limited to 'command_handling.c')
-rw-r--r--command_handling.c29
1 files changed, 14 insertions, 15 deletions
diff --git a/command_handling.c b/command_handling.c
index e4dc476..0b5f335 100644
--- a/command_handling.c
+++ b/command_handling.c
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/13 14:38:47 by dkaiser #+# #+# */
-/* Updated: 2024/04/15 16:35:05 by dkaiser ### ########.fr */
+/* Updated: 2024/04/16 09:27:41 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -38,32 +38,31 @@ static void run_for_both(t_stack *stack_a, t_stack *stack_b,
f(stack_b);
}
-void run_command(t_stack *stack_a, t_stack *stack_b, t_list **cmds,
- enum e_pscmd cmd)
+void run_command(t_psdata *data, enum e_pscmd cmd)
{
if (cmd == SA)
- stack_swap(stack_a);
+ stack_swap(data->a);
else if (cmd == SB)
- stack_swap(stack_b);
+ stack_swap(data->b);
else if (cmd == SS)
- run_for_both(stack_a, stack_b, stack_swap);
+ run_for_both(data->a, data->b, stack_swap);
else if (cmd == PA)
- stack_push(stack_a, stack_b);
+ stack_push(data->a, data->b);
else if (cmd == PB)
- stack_push(stack_b, stack_a);
+ stack_push(data->b, data->a);
else if (cmd == RA)
- stack_rotate(stack_a);
+ stack_rotate(data->a);
else if (cmd == RB)
- stack_rotate(stack_b);
+ stack_rotate(data->b);
else if (cmd == RR)
- run_for_both(stack_a, stack_b, stack_rotate);
+ run_for_both(data->a, data->b, stack_rotate);
else if (cmd == RRA)
- stack_rrotate(stack_a);
+ stack_rrotate(data->a);
else if (cmd == RRB)
- stack_rrotate(stack_b);
+ stack_rrotate(data->b);
else if (cmd == RRR)
- run_for_both(stack_a, stack_b, stack_rrotate);
- add_cmd_to_queue(cmds, cmd);
+ run_for_both(data->a, data->b, stack_rrotate);
+ add_cmd_to_queue(&data->cmds, cmd);
}
static void print_cmd(void *ptr_cmd)