summaryrefslogtreecommitdiff
path: root/command_handling.c
diff options
context:
space:
mode:
authorDominik Kaiser2024-04-17 10:00:27 +0200
committerGitHub2024-04-17 10:00:27 +0200
commit09176f10ff4fbde374825a064241cdc3ff163623 (patch)
tree1202c4465fc1ce80cc74bbca9a7fbcb9a4ccad25 /command_handling.c
parentc16af7775f6d4bb56bb8a0891ec646032f442993 (diff)
parentca607daf01f965a0a07263f57cdc1274e3a24fe8 (diff)
downloadpush_swap-09176f10ff4fbde374825a064241cdc3ff163623.tar.gz
push_swap-09176f10ff4fbde374825a064241cdc3ff163623.zip
Merge branch 'master' into add_2op_optimization
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)