--- /dev/null
+#include "libft/libft.h"
+#include "push_swap.h"
+
+static int add_cmd_to_queue(t_list **cmds, enum e_pscmd cmd)
+{
+ t_list *new_elem;
+ enum e_pscmd *ptr_cmd;
+
+ ptr_cmd = malloc(sizeof(enum e_pscmd));
+ if (!ptr_cmd)
+ return 1;
+
+ new_elem = ft_lstnew(ptr_cmd);
+ if (!new_elem)
+ {
+ free(ptr_cmd);
+ return 1;
+ }
+ ft_lstadd_back(cmds, new_elem);
+ return 0;
+}
+
+void run_command(t_list **stack_a, t_list **stack_b, t_list **cmds, enum e_pscmd cmd)
+{
+ if (cmd == SA)
+ ;
+ else if (cmd == SB)
+ ;
+ else if (cmd == SS)
+ ;
+ else if (cmd == PA)
+ ;
+ else if (cmd == PB)
+ ;
+ else if (cmd == RA)
+ ;
+ else if (cmd == RB)
+ ;
+ else if (cmd == RR)
+ ;
+ else if (cmd == RRA)
+ ;
+ else if (cmd == RRB)
+ ;
+ else if (cmd == RRR)
+ ;
+ add_cmd_to_queue(cmds, cmd);
+}
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/12 17:03:30 by dkaiser #+# #+# */
-/* Updated: 2024/04/12 18:49:56 by dkaiser ### ########.fr */
+/* Updated: 2024/04/12 18:55:38 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
t_list *stack_a;
stack_a = create_stack(argc, argv);
- ft_lstiter(stack_a, print_content);
if (!stack_a)
- return 1; // TODO: Print error message
+ {
+ ft_putendl_fd("Error", 2);
+ return 1;
+ }
+
+ ft_lstiter(stack_a, print_content);
// TODO: Sort stack
// TODO: Optimize commands
// TODO: Print commands
+
+ return 0;
}
--- /dev/null
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* stack_utils.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2024/04/12 20:31:30 by dkaiser #+# #+# */
+/* Updated: 2024/04/12 20:50:17 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "libft/libft.h"
+#include "push_swap.h"
+
+void stack_swap(t_list **stack)
+{
+ t_list *first_elem;
+
+ first_elem = *stack;
+ *stack = (*stack)->next;
+ first_elem->next = (*stack)->next;
+ (*stack)->next = first_elem;
+}
+
+void stack_push(t_list **dst_stack, t_list **src_stack)
+{
+ t_list *elem;
+
+ elem = *src_stack;
+ *src_stack = elem->next;
+ ft_lstadd_front(dst_stack, elem);
+}
+
+void stack_rotate(t_list **stack)
+{
+ t_list *first_elem;
+
+ first_elem = *stack;
+ *stack = (*stack)->next;
+ first_elem->next = NULL;
+ ft_lstlast(*stack)->next = first_elem;
+}
+
+void stack_rrotate(t_list **stack)
+{
+ t_list *first_elem;
+
+ first_elem = *stack;
+ while((*stack)->next->next)
+ *stack = (*stack)->next;
+ (*stack)->next->next = first_elem;
+ (*stack)->next = NULL;
+}