Rien à dire :')

This commit is contained in:
Etienne Rey-bethbeder 2023-03-23 17:21:32 +01:00
parent 3b1ba673f7
commit 8e1c7369d4
5 changed files with 23 additions and 16 deletions

View file

@ -6,7 +6,7 @@
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */ /* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/03/20 09:48:45 by erey-bet #+# #+# */ /* Created: 2023/03/20 09:48:45 by erey-bet #+# #+# */
/* Updated: 2023/03/21 15:29:21 by erey-bet ### ########.fr */ /* Updated: 2023/03/23 17:15:05 by erey-bet ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -105,8 +105,7 @@ int main(int argc, char *argv[], char **env)
return (free_all(&data)); return (free_all(&data));
} }
else if (parsing(argc, argv, env, &data)) else if (parsing(argc, argv, env, &data))
return (free_all(&data)); return (1);
data.argc = argc;
if (verification_command(argv, data)) if (verification_command(argv, data))
return (free_all(&data)); return (free_all(&data));
if (pipex(argc, data)) if (pipex(argc, data))

View file

@ -6,7 +6,7 @@
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */ /* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/01/19 17:03:01 by erey-bet #+# #+# */ /* Created: 2023/01/19 17:03:01 by erey-bet #+# #+# */
/* Updated: 2023/03/21 15:16:49 by erey-bet ### ########.fr */ /* Updated: 2023/03/23 17:14:59 by erey-bet ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -16,6 +16,7 @@ int parsing(int argc, char *argv[], char **env, t_data *data)
{ {
int i; int i;
data->argc = argc;
data->fd2 = open(argv[argc - 1], O_WRONLY | O_TRUNC | O_CREAT, 0644); data->fd2 = open(argv[argc - 1], O_WRONLY | O_TRUNC | O_CREAT, 0644);
if (data->fd2 < 0) if (data->fd2 < 0)
return (print_error(0, argv[argc - 1])); return (print_error(0, argv[argc - 1]));
@ -27,12 +28,14 @@ int parsing(int argc, char *argv[], char **env, t_data *data)
return (1); return (1);
data->flgs = ft_calloc(argc - 2, sizeof(char *)); data->flgs = ft_calloc(argc - 2, sizeof(char *));
if (!data->flgs) if (!data->flgs)
return (1); return (free_all(data));
i = -1; i = -1;
while (++i < argc - 3) while (++i < argc - 3)
{ {
data->cmds[i] = get_command(argv[2 + i]); data->cmds[i] = get_command(argv[2 + i]);
data->flgs[i] = ft_split(argv[2 + i], ' '); data->flgs[i] = ft_split(argv[2 + i], ' ');
if (!data->cmds[i] || !data->flgs[i])
return (free_all(data));
} }
data->env = env; data->env = env;
return (0); return (0);

View file

@ -6,7 +6,7 @@
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */ /* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/14 15:46:08 by erey-bet #+# #+# */ /* Created: 2023/02/14 15:46:08 by erey-bet #+# #+# */
/* Updated: 2023/03/22 16:24:46 by erey-bet ### ########.fr */ /* Updated: 2023/03/23 17:17:24 by erey-bet ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -64,10 +64,13 @@ void free_flgs(t_data *data)
y = -1; y = -1;
while (++y < data->argc - 3) while (++y < data->argc - 3)
{ {
i = -1; if (data->flgs[y])
while (data->flgs[y][++i]) {
free(data->flgs[y][i]); i = -1;
free(data->flgs[y]); while (data->flgs[y][++i])
free(data->flgs[y][i]);
free(data->flgs[y]);
}
} }
free(data->flgs); free(data->flgs);
} }
@ -86,7 +89,8 @@ int free_all(t_data *data)
{ {
i = -1; i = -1;
while (++i < data->argc - 3) while (++i < data->argc - 3)
free(data->cmds[i]); if (data->cmds[i])
free(data->cmds[i]);
free(data->cmds); free(data->cmds);
} }
return (1); return (1);

View file

View file

@ -6,7 +6,7 @@
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */ /* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/01/19 17:03:01 by erey-bet #+# #+# */ /* Created: 2023/01/19 17:03:01 by erey-bet #+# #+# */
/* Updated: 2023/03/21 15:58:19 by erey-bet ### ########.fr */ /* Updated: 2023/03/23 17:04:19 by erey-bet ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -62,9 +62,11 @@ char *cmd_exist(char **env, char **cmd, int y, char **s)
{ {
char *path; char *path;
size_t i; size_t i;
size_t len;
i = 4; i = 4;
while (i < ft_strlen(*env)) len = ft_strlen(*env);
while (i < len)
{ {
test_acces(s, cmd, &path, &y); test_acces(s, cmd, &path, &y);
if (path) if (path)
@ -72,7 +74,7 @@ char *cmd_exist(char **env, char **cmd, int y, char **s)
*s = ft_calloc(ft_strlen(*env) + 1, 1); *s = ft_calloc(ft_strlen(*env) + 1, 1);
if (*s == NULL) if (*s == NULL)
return (NULL); return (NULL);
while ((*env)[++i] != ':') while ((*env)[++i] != ':' && i < len)
(*s)[y++] = (*env)[i]; (*s)[y++] = (*env)[i];
} }
free(*s); free(*s);
@ -87,8 +89,7 @@ char *find_command(char **env, char *cmd)
while (*env != NULL) while (*env != NULL)
{ {
if (ft_strnstr(*env, "PATH=/", ft_strlen(*env)) if (ft_strnstr(*env, "PATH=", 6))
&& ft_strchr(*env, ':') > 0)
break ; break ;
env++; env++;
} }