From ce24b2642af49a601ad46698f5f88f90f413749f Mon Sep 17 00:00:00 2001 From: kinou-p Date: Mon, 29 Nov 2021 14:41:57 +0100 Subject: [PATCH] second --- Makefile | 4 ++-- process.c | 15 ++++++++++----- push_swap.c | 48 +++++++++++++++++++++++++++++++++++++----------- push_swap.h | 2 ++ 4 files changed, 51 insertions(+), 18 deletions(-) diff --git a/Makefile b/Makefile index c9eb6e6..3288bfc 100644 --- a/Makefile +++ b/Makefile @@ -12,10 +12,10 @@ NAME = push_swap SRCS = push_swap.c \ - utils.c \ + process.c\ main.c OBJS = ${SRCS:.c=.o} -CFLAGS = -Wall -Wextra -Werror +CFLAGS = -Wall -Wextra RM = rm -rf LIBFT = ./libft diff --git a/process.c b/process.c index d89de05..dc06e90 100644 --- a/process.c +++ b/process.c @@ -12,7 +12,7 @@ #include "push_swap.h" -void ft_sa_sb(t_list **list, t_list **process) +void ft_sa_sb(t_list **list, t_list **process, char *type) { t_list *swap; @@ -22,7 +22,7 @@ void ft_sa_sb(t_list **list, t_list **process) (*list)->next->next = swap; } -void ft_ra_rb(t_list **list, t_list **process) +void ft_ra_rb(t_list **list, t_list **process, char *type) { t_list *swap; @@ -34,13 +34,18 @@ void ft_ra_rb(t_list **list, t_list **process) void ft_pa(t_list **list_a, t_list **list_b, t_list **process) { - ft_lstadd_front(list_a, *list_b); - + t_list *swap; + swap = *list_b; + *list_b = (*list_b)->next; + ft_lstadd_front(list_a, swap); } void ft_pb(t_list **list_a, t_list **list_b, t_list **process) { - t_list *swap; + t_list *swap; + swap = *list_a; + *list_a = (*list_a)->next; + ft_lstadd_front(list_b, swap); } diff --git a/push_swap.c b/push_swap.c index b211103..bb45b0b 100644 --- a/push_swap.c +++ b/push_swap.c @@ -14,21 +14,45 @@ int is_nbr(int nbrarg, char **list) { - int i; + int i; + char *save; + save = *list; i = 0; while (nbrarg) { i = 0; - *list++; - while ((*list)[i]) + save++; + while (save[i]) { - if (((*list)[i] < '0' || (*list)[i] > '9') && (*list)[i] != '-') + if ((save[i] < '0' || save[i] > '9') && save[i] != '-') return (0); i++; } nbrarg--; - + } + return (1); +} + +int is_double(int nbrarg, char **list) +{ + int i; + int j; + char *save; + + i = 0; + j = 0; + save = *list + 1; + while (save + j + 1) + { + while (j + i + save) + { + i++; + if (ft_strncmp(save + j, save + j + i, ft_strlen(save)) == 0) + return (0); + } + j++; + i = 0; } return (1); } @@ -37,24 +61,26 @@ int push_swap(int nbrarg, char **list) { t_list *start; - if (is_nbr(nbrarg++, list) == 0) + start = 0; + if (!is_nbr(nbrarg++, list) || !is_double(nbrarg++, list)) { ft_putstr_fd("Error\n", 2); return (0); } - start = set_list(nbrarg++, list++) + start = set_list(nbrarg++, list); return (1); } -int set_list(int nbrarg, char **list) +t_list *set_list(int nbrarg, char **list) { t_list *start; - start = ft_lstnew(&ft_atoi(*list)) + (*list)++; + start = ft_lstnew(*list); while (nbrarg) { - *list++; - ft_lstadd_back(&start, ft_lstnew(&ft_atoi(*list))); + (*list)++; + ft_lstadd_back(&start, ft_lstnew(*list)); } return (start); } diff --git a/push_swap.h b/push_swap.h index 3d301f5..d41e2ce 100644 --- a/push_swap.h +++ b/push_swap.h @@ -19,5 +19,7 @@ int push_swap(int nbrarg, char **list); int is_nbr(int nbrarg, char **list); +t_list *set_list(int nbrarg, char **list); + #endif \ No newline at end of file