This commit is contained in:
kinou-p 2021-11-29 14:41:57 +01:00
parent d572e07e85
commit ce24b2642a
4 changed files with 51 additions and 18 deletions

View File

@ -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

View File

@ -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;
swap = *list_a;
*list_a = (*list_a)->next;
ft_lstadd_front(list_b, swap);
}

View File

@ -15,20 +15,44 @@
int is_nbr(int nbrarg, char **list)
{
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);
}

View File

@ -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