+ TODO : need refactoring and fix to valgrind invalid read size + redirections() WIP + Generic ft_dup_2d_arr(), ft_split_quotes(), ft_strdup_quotes() + shell_loop() continue on error + various small fix
52 lines
1.5 KiB
C
52 lines
1.5 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* alloc_cmd_array.c :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: lperrey <lperrey@student.42.fr> +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* Created: 2021/11/02 22:46:23 by lperrey #+# #+# */
|
|
/* Updated: 2021/11/11 08:47:46 by lperrey ### ########.fr */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#include "minishell.h"
|
|
|
|
size_t count_pipes(t_token *token)
|
|
{
|
|
size_t count;
|
|
|
|
count = 0;
|
|
while (token)
|
|
{
|
|
if (token->id == T_PIPE)
|
|
count++;
|
|
token = token->next;
|
|
}
|
|
return (count);
|
|
}
|
|
|
|
t_cmd **alloc_cmd_array(size_t cmd_nbr)
|
|
{
|
|
t_cmd **cmd_arr;
|
|
size_t i;
|
|
|
|
cmd_arr = ft_calloc(cmd_nbr + 1, sizeof (void *));
|
|
if (!cmd_arr)
|
|
return (ft_retp_perror(NULL, "alloc_cmd()"));
|
|
i = 0;
|
|
while (i < cmd_nbr)
|
|
{
|
|
cmd_arr[i] = ft_calloc(1, sizeof (*cmd_arr[i]));
|
|
if (!cmd_arr[i])
|
|
{
|
|
ft_free_2d_arr(cmd_arr);
|
|
return (ft_retp_perror(NULL, "alloc_cmd()"));
|
|
}
|
|
cmd_arr[i]->fd_in = STDIN_FILENO;
|
|
cmd_arr[i]->fd_out = STDOUT_FILENO;
|
|
i++;
|
|
}
|
|
return (cmd_arr);
|
|
}
|