aboutsummaryrefslogtreecommitdiff
path: root/src/free_node.c
diff options
context:
space:
mode:
authorChristopher Uhlig2024-10-17 15:32:43 +0200
committerChristopher Uhlig2024-10-17 15:32:43 +0200
commitc1ac406e52fe273a0e14b0f079b522e58c04acd3 (patch)
tree05d2a6c6c838ade625baf9a13e3a6ff0a3663739 /src/free_node.c
parent9298e72de61af5311678c656c12fc177589671a7 (diff)
parent92bdbf67adaf09d1c831db3cee9456e9c447063f (diff)
downloadminishell-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.c23
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);
}