diff options
| author | Christopher Uhlig | 2024-10-17 15:32:43 +0200 |
|---|---|---|
| committer | Christopher Uhlig | 2024-10-17 15:32:43 +0200 |
| commit | c1ac406e52fe273a0e14b0f079b522e58c04acd3 (patch) | |
| tree | 05d2a6c6c838ade625baf9a13e3a6ff0a3663739 /src/free_node.c | |
| parent | 9298e72de61af5311678c656c12fc177589671a7 (diff) | |
| parent | 92bdbf67adaf09d1c831db3cee9456e9c447063f (diff) | |
| download | minishell-c1ac406e52fe273a0e14b0f079b522e58c04acd3.tar.gz minishell-c1ac406e52fe273a0e14b0f079b522e58c04acd3.zip | |
Merge branch 'env' of https://github.com/dpu-kaiser/minishell into env
Diffstat (limited to 'src/free_node.c')
| -rw-r--r-- | src/free_node.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/src/free_node.c b/src/free_node.c index 8f32c12..6eae059 100644 --- a/src/free_node.c +++ b/src/free_node.c @@ -6,21 +6,18 @@ /* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/06/27 11:41:46 by dkaiser #+# #+# */ -/* Updated: 2024/06/28 14:55:50 by dkaiser ### ########.fr */ +/* Updated: 2024/08/11 12:26:20 by dkaiser ### ########.fr */ /* */ /* ************************************************************************** */ #include "ast.h" -static void free_assign_node(t_node *node); static void free_pipe_node(t_node *node); static void free_cmd_node(t_node *node); void free_node(t_node *node) { - if (node->type == ASSIGN_NODE) - free_assign_node(node); - else if (node->type == PIPE_NODE) + if (node->type == PIPE_NODE) free_pipe_node(node); else if (node->type == CMD_NODE) free_cmd_node(node); @@ -31,12 +28,6 @@ void free_node(t_node *node) free(node); } -static void free_assign_node(t_node *node) -{ - free(node->content.assign.var); - free(node->content.assign.value); -} - static void free_pipe_node(t_node *node) { free_node(node->content.pipe.left); @@ -48,12 +39,16 @@ static void free_cmd_node(t_node *node) int i; i = 0; - while (node->content.cmd.args[i] != NULL) + while (node->content.cmd.args != NULL && node->content.cmd.args[i] != NULL) { free(node->content.cmd.args[i]); i++; } free(node->content.cmd.args); - free(node->content.cmd.redirs[0].specifier); - free(node->content.cmd.redirs[1].specifier); + if (node->content.cmd.redirs[0].type != 0 + && node->content.cmd.redirs[0].specifier != NULL) + free(node->content.cmd.redirs[0].specifier); + if (node->content.cmd.redirs[1].type != 0 + && node->content.cmd.redirs[0].specifier != NULL) + free(node->content.cmd.redirs[1].specifier); } |
