#include "push_swap.h" // check more error void is_valid(int ac, char **av) { if (ac < 2) ps_stop(NULL, NULL, 1); (void)av; } int check_flag(int *ac, char ***av) { if (ft_strcmp((*av)[1], "-p") != 0) return (0); (*av)++; (*ac)--; return (1); } t_stack *init_stack(int ac, char **av) { t_stack *start; t_stack *tmp; tmp = NULL; while (--ac) { start = ft_calloc(1, sizeof(t_stack)); if (!start) ps_stop(NULL, NULL, 2); start->n = ft_atoi(av[ac]); start->next = tmp; tmp = start; } return (start); } /* ** the chained list "solution" is created with specials first two elements : ** they are pointers to stack a and b, so it can be accessed by fill_solution() */ t_list *launch_algo(t_stack **a, t_stack **b, int flag) { t_list *solution; solution = ft_lstnew(a); ft_lstadd_back(&solution, ft_lstnew(b)); if (flag) fill_solution(solution, "start"); // hugo_sort(a, b, solution); bubble_sort(a, b, solution); return (solution); } int main(int ac, char **av) { t_stack *a; t_stack *b; t_list *solution; int flag; is_valid(ac, av); flag = check_flag(&ac, &av); a = init_stack(ac, av); b = NULL; solution = launch_algo(&a, &b, flag); print_result(solution, flag); ps_stop(NULL, solution, 0); return (0); }