/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* check.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: cchauvet fd_in[0] = ft_heredoc(data, redirection); } static void ft_check_infile(t_data *data, t_cmd *cmd, char *redirection_identifier, char *redirection) { if (ft_strcmp(redirection_identifier, "<") == 0) { if (ft_file_is_readable(data, redirection)) cmd->fd_in[0] = open(redirection, O_RDONLY); else cmd->fd_in[0] = -2; } } static void ft_check_outfile(t_data *data, t_cmd *cmd, char *redirection_identifier, char *redirection) { if (ft_strcmp(redirection_identifier, ">") == 0) { if (ft_file_is_writable(data, redirection)) cmd->fd_out[0] = open(redirection, O_WRONLY | O_TRUNC | O_CREAT, 0644); else cmd->fd_out[0] = -2; } } static void ft_check_outfile_append(t_data *data, t_cmd *cmd, char *redirection_identifier, char *redirection) { if (ft_strcmp(redirection_identifier, ">>") == 0) { if (ft_file_is_writable(data, redirection)) cmd->fd_out[0] = open(redirection, O_WRONLY | O_APPEND | O_CREAT, 0644); else cmd->fd_out[0] = -2; } } void ft_check_redirection(t_data *data, t_cmd *cmd, char *redirection_identifier, char *redirection) { ft_check_heredoc(data, cmd, redirection_identifier, redirection); ft_check_infile(data, cmd, redirection_identifier, redirection); ft_check_outfile(data, cmd, redirection_identifier, redirection); ft_check_outfile_append(data, cmd, redirection_identifier, redirection); }