/ push_swap / push_swap / checker_utils_bonus.c
checker_utils_bonus.c
 1  /* ************************************************************************** */
 2  /*                                                                            */
 3  /*                                                        :::      ::::::::   */
 4  /*   checker_bonus_utils.c                              :+:      :+:    :+:   */
 5  /*                                                    +:+ +:+         +:+     */
 6  /*   By: gychoi <gychoi@student.42seoul.kr>         +#+  +:+       +#+        */
 7  /*                                                +#+#+#+#+#+   +#+           */
 8  /*   Created: 2022/12/04 18:48:17 by gychoi            #+#    #+#             */
 9  /*   Updated: 2022/12/07 20:01:43 by gychoi           ###   ########.fr       */
10  /*                                                                            */
11  /* ************************************************************************** */
12  
13  #include "checker_bonus.h"
14  
15  static void	run_command(char *line, t_deque *deque_a, t_deque *deque_b)
16  {
17  	if (ft_strncmp(line, "sa\n", 3) == 0)
18  		silent_sa(deque_a);
19  	else if (ft_strncmp(line, "sb\n", 3) == 0)
20  		silent_sb(deque_b);
21  	else if (ft_strncmp(line, "ss\n", 3) == 0)
22  		silent_ss(deque_a, deque_b);
23  	else if (ft_strncmp(line, "pa\n", 3) == 0)
24  		silent_pa(deque_a, deque_b);
25  	else if (ft_strncmp(line, "pb\n", 3) == 0)
26  		silent_pb(deque_a, deque_b);
27  	else if (ft_strncmp(line, "rra\n", 4) == 0)
28  		silent_rra(deque_a);
29  	else if (ft_strncmp(line, "rrb\n", 4) == 0)
30  		silent_rrb(deque_b);
31  	else if (ft_strncmp(line, "rrr\n", 4) == 0)
32  		silent_rrr(deque_a, deque_b);
33  	else if (ft_strncmp(line, "ra\n", 3) == 0)
34  		silent_ra(deque_a);
35  	else if (ft_strncmp(line, "rb\n", 3) == 0)
36  		silent_rb(deque_b);
37  	else if (ft_strncmp(line, "rr\n", 3) == 0)
38  		silent_rr(deque_a, deque_b);
39  	else
40  		ps_error();
41  }
42  
43  void	read_commands(char *line, t_deque *deque_a, t_deque *deque_b)
44  {
45  	while (1)
46  	{
47  		line = get_next_line(0);
48  		if (!line)
49  			break ;
50  		if (ft_strncmp(line, "\n", 1) == 0)
51  		{
52  			free(line);
53  			break ;
54  		}
55  		run_command(line, deque_a, deque_b);
56  		free(line);
57  	}
58  }