diff --git a/builds/push_swap.o b/builds/push_swap.o index 16c3d97..7118121 100644 Binary files a/builds/push_swap.o and b/builds/push_swap.o differ diff --git a/builds/stop.o b/builds/stop.o index 8f27a04..dfcc914 100644 Binary files a/builds/stop.o and b/builds/stop.o differ diff --git a/push_swap b/push_swap index a01a326..3fbf108 100755 Binary files a/push_swap and b/push_swap differ diff --git a/srcs/push_swap.c b/srcs/push_swap.c index e1d41e0..269e58a 100644 --- a/srcs/push_swap.c +++ b/srcs/push_swap.c @@ -1,13 +1,5 @@ #include "push_swap.h" -// check more error -void is_valid(int ac, char **av) -{ - if (ac < 2) - ps_stop(NULL, 1); - (void)av; -} - int check_flag(int *ac, char ***av) { if (ft_strcmp((*av)[1], "-p") == 0) @@ -32,19 +24,16 @@ t_stack *fill_stack(t_stack *list, char *nb) new = ft_calloc(1, sizeof(t_stack)); if (!new) - ps_stop((t_list *)list, 2); - -/* - if (ft_isnumber(nb) == 0) - ps_stop((t_list *)list, 2); - nbl = ft_atol(nb); - if (nbl < INT_MIN || nbl > INT_MAX) - ps_stop((t_list *)list, 2); - new->n = nbl; - new->limit = 0; + ps_stop((t_list *)list, 3); new->next = list; list = new; -*/ + if (ft_isnumber(nb) == 0) + ps_stop((t_list *)list, 3); + nbl = ft_atol(nb); + if (nbl < INT_MIN || nbl > INT_MAX) + ps_stop((t_list *)list, 3); + list->n = nbl; + list->limit = 0; return (list); } @@ -102,7 +91,8 @@ int main(int ac, char **av) t_list *solution; int flag; - is_valid(ac, av); + if (ac < 2) + ps_stop(NULL, 1); flag = check_flag(&ac, &av); a = init_stack(ac, av); b = NULL; diff --git a/srcs/stop.c b/srcs/stop.c index bc3e803..2f0b264 100644 --- a/srcs/stop.c +++ b/srcs/stop.c @@ -4,22 +4,22 @@ void ps_error(int err) { if (err == 1) ft_printf("usage :\nlaunch executable : ./push_swap [flag -p] nb nb nb nb nb ...\n"); - if (err == 2) + if (err >= 2) ft_putstr_fd("Error\n", 2); exit(0); } /* -** if err < 0, the parameter list is just a t_stack *list ** if err = 0, the list are freed but the program doesn't stop -** if err > 0, a message is printed and the program stop +** if err = 1, 2 or 3, a message is printed and the program stop +** if err = 3, the parameter list is just a t_stack *list */ void ps_stop(t_list *lst, int err) { t_stack **a; t_stack **b; - if (err < 0) + if (err == 3) ft_lstclear(&lst, NULL); else if (lst) { diff --git a/tester.sh b/tester.sh index 1402dda..0e675b9 100644 --- a/tester.sh +++ b/tester.sh @@ -12,15 +12,19 @@ WHITE='\033[1;37m' NC='\033[0m' # usage of arguments -if [ $# -eq 2 ] +if [ $# -eq 1 ] then - PRGM=$1 # path to program - SIZE=$2 # size of the list + SIZE=$1 # size of the list +elif [ $# -eq 2 ] +then + FLAG=$1 # flag for leaks and errors // not in use so far + SIZE=$2 else echo "usage : ./tester.sh path/to/push_swap size_of_list" exit 0 fi +PRGM=push_swap # path to program # range of random numbers RANGE=$(($SIZE * 2))