From 2930755dd34ac8410ddd5ba6932af030eeb6be59 Mon Sep 17 00:00:00 2001 From: Camille Chauvet Date: Mon, 6 Mar 2023 16:43:50 +0100 Subject: [PATCH] fix --- .nfs00000000098c82b700000161 | Bin 112656 -> 0 bytes file.c | 26 ++------------- infile.c | 4 +-- outfile.c | 59 ++++++++++++++++++++++++----------- t | 0 5 files changed, 44 insertions(+), 45 deletions(-) delete mode 100755 .nfs00000000098c82b700000161 delete mode 100644 t diff --git a/.nfs00000000098c82b700000161 b/.nfs00000000098c82b700000161 deleted file mode 100755 index eaadc7c8de128f39ba2e573d134e1c2fe583889f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112656 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 diff --git a/file.c b/file.c index 9b3e201..d0bc35c 100644 --- a/file.c +++ b/file.c @@ -39,37 +39,17 @@ int ft_file_is_writable(const char *path) int writeable; int fd; - fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0644); + fd = open(path, O_WRONLY | O_CREAT, 0644); if (fd == -1) { ft_eprintf("minishell: %s: Permission denied\n", path); - return (-1); + return (0); } writeable = write(fd, "", 0); if (writeable == -1) { ft_eprintf("minishell: %s: Permission denied\n", path); - return (-1); - } - return (fd); -} - -int ft_file_is_appendable(const char *path) -{ - int writeable; - int fd; - - fd = open(path, O_WRONLY | O_CREAT | O_APPEND, 0644); - if (fd == -1) - { - ft_eprintf("minishell: %s: Permission denied\n", path); - return (-1); - } - writeable = write(fd, "", 0); - if (writeable == -1) - { - ft_eprintf("minishell: %s: Permission denied\n", path); - return (-1); + return (0); } return (fd); } diff --git a/infile.c b/infile.c index 98af4d2..2f17bc8 100644 --- a/infile.c +++ b/infile.c @@ -40,6 +40,7 @@ static int ft_infile_is_valid(t_data *data, const char *line) ft_quote_remover(path); if (ft_file_is_readable(path) == 0) { + data->exit_code = 1; free(path); ft_freer_tab_ultimate(1, tab); return (0); @@ -130,10 +131,7 @@ int ft_infile(t_data *data, char *line) int fd; if (ft_infile_is_valid(data, line) == 0) - { - data->exit_code = 2; return (-2); - } fd = ft_get_infile(data, line); if (fd == -2) return (-2); diff --git a/outfile.c b/outfile.c index 1f8a510..35938e8 100644 --- a/outfile.c +++ b/outfile.c @@ -1,20 +1,21 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* outfile.c :+: :+: :+: */ +/* infile.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: cchauvet ') { - if (tab[i + 1] != NULL && !ft_contain_only_str(tab[i + 1], "| <>")) - continue ; - ft_eprintf("minishell: %s: must be followed by an outfile\n", tab[i]); - ft_freer_tab_ultimate(1, tab); - return (0); + path = ft_env_filler(data, tab[i + 1]); + if (path == NULL) + return (0); + ft_quote_remover(path); + if (ft_file_is_writable(path) == 0) + { + data->exit_code = 1; + free(path); + ft_freer_tab_ultimate(1, tab); + return (0); + } + if (ft_contain_only_str(path, "| >>")) + { + free(path); + ft_eprintf("minishell: %s: must be followed by an outfile\n", path); + ft_freer_tab_ultimate(1, tab); + return (0); + } + free(path); } } ft_freer_tab_ultimate(1, tab); return (1); } -static int ft_get_outfile(const char *line) +static int ft_get_outfile(t_data *data, const char *line) { size_t i; int fd; char **tab; + char *path; tab = ft_split_quoted(line, ' '); if (tab == NULL) @@ -53,17 +69,22 @@ static int ft_get_outfile(const char *line) ft_eprintf("minishell: malloc failed\n"); return (-2); } - fd = 1; + fd = 0; i = 0; while (tab[i + 1] != NULL) { if (tab[i][0] == '>') - if (fd != 1) + if (fd != 0) close(fd); + path = ft_env_filler(data, tab[i + 1]); + if (path == NULL) + return (-2); + ft_quote_remover(path); if (ft_strcmp(">", tab[i]) == 0) - fd = ft_file_is_writable(ft_quote_remover(tab[i + 1])); + fd = open(path, O_TRUNC | O_CREAT | O_WRONLY, 0644); else if (ft_strcmp(">>", tab[i]) == 0) - fd = ft_file_is_appendable(ft_quote_remover(tab[i + 1])); + fd = open(path, O_CREAT | O_APPEND, 0644); + free(path); i++; } ft_freer_tab_ultimate(1, tab); @@ -87,8 +108,11 @@ static int ft_remove_outfile(char *line) while (tab[i] != NULL) { if (tab[i][0] == '>') + { ft_strshift(line + y, (-1) * (ft_strlen(tab[i]) + ft_strlen(tab[i + 1]) + 1 + (line[ft_strlen(tab[i]) + ft_strlen(tab[i + 1]) + 1] != '\0'))); + i++; + } else y = y + ft_strlen(tab[i]) + (y != 0); i++; @@ -101,12 +125,9 @@ int ft_outfile(t_data *data, char *line) { int fd; - if (ft_outfile_is_valid(line) == 0) - { - data->exit_code = 2; + if (ft_outfile_is_valid(data, line) == 0) return (-2); - } - fd = ft_get_outfile(line); + fd = ft_get_outfile(data, line); if (fd == -2) return (-2); ft_remove_outfile(line); diff --git a/t b/t deleted file mode 100644 index e69de29..0000000