fix: signal set exit code
This commit is contained in:
		
							
								
								
									
										11
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								main.c
									
									
									
									
									
								
							@ -6,7 +6,7 @@
 | 
				
			|||||||
/*   By: cchauvet <cchauvet@student.42angoulem      +#+  +:+       +#+        */
 | 
					/*   By: cchauvet <cchauvet@student.42angoulem      +#+  +:+       +#+        */
 | 
				
			||||||
/*                                                +#+#+#+#+#+   +#+           */
 | 
					/*                                                +#+#+#+#+#+   +#+           */
 | 
				
			||||||
/*   Created: 2023/02/16 15:16:14 by cchauvet          #+#    #+#             */
 | 
					/*   Created: 2023/02/16 15:16:14 by cchauvet          #+#    #+#             */
 | 
				
			||||||
/*   Updated: 2023/02/24 11:04:40 by cchauvet         ###   ########.fr       */
 | 
					/*   Updated: 2023/03/28 14:35:13 by cchauvet         ###   ########.fr       */
 | 
				
			||||||
/*                                                                            */
 | 
					/*                                                                            */
 | 
				
			||||||
/* ************************************************************************** */
 | 
					/* ************************************************************************** */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -99,6 +99,10 @@ void	ft_ctrlc(int num)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	t_data	*data;
 | 
						t_data	*data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (num == SIGQUIT)
 | 
				
			||||||
 | 
							return ;
 | 
				
			||||||
 | 
						data = ft_get_data();
 | 
				
			||||||
 | 
						data->exit_code = 130;
 | 
				
			||||||
	if (*ft_get_heredoc() != -1)
 | 
						if (*ft_get_heredoc() != -1)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		close(*ft_get_heredoc());
 | 
							close(*ft_get_heredoc());
 | 
				
			||||||
@ -106,10 +110,8 @@ void	ft_ctrlc(int num)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		data = ft_get_data();
 | 
					 | 
				
			||||||
		if (data->child_pid > 1)
 | 
							if (data->child_pid > 1)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			kill(data->child_pid, num);
 | 
					 | 
				
			||||||
			data->child_pid = 0;
 | 
								data->child_pid = 0;
 | 
				
			||||||
			ft_putchar_fd('\n', 1);
 | 
								ft_putchar_fd('\n', 1);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@ -127,10 +129,11 @@ void	ft_quit(int num)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	t_data	*data;
 | 
						t_data	*data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						(void) num;
 | 
				
			||||||
	data = ft_get_data();
 | 
						data = ft_get_data();
 | 
				
			||||||
 | 
						data->exit_code = 131;
 | 
				
			||||||
	if (data->child_pid > 1)
 | 
						if (data->child_pid > 1)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		kill(data->child_pid, num);
 | 
					 | 
				
			||||||
		ft_printf("Quit (core dumped)\n");
 | 
							ft_printf("Quit (core dumped)\n");
 | 
				
			||||||
		data->child_pid = 0;
 | 
							data->child_pid = 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user