aboutsummaryrefslogtreecommitdiff
path: root/src/free_node.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/free_node.c')
-rw-r--r--src/free_node.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/free_node.c b/src/free_node.c
index 6eae059..e62d6cb 100644
--- a/src/free_node.c
+++ b/src/free_node.c
@@ -3,10 +3,10 @@
/* ::: :::::::: */
/* free_node.c :+: :+: :+: */
/* +:+ +:+ +:+ */
-/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* By: chuhlig <chuhlig@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/27 11:41:46 by dkaiser #+# #+# */
-/* Updated: 2024/08/11 12:26:20 by dkaiser ### ########.fr */
+/* Updated: 2025/01/25 11:39:01 by chuhlig ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,6 +14,7 @@
static void free_pipe_node(t_node *node);
static void free_cmd_node(t_node *node);
+static void free_file(void *arg);
void free_node(t_node *node)
{
@@ -23,8 +24,6 @@ void free_node(t_node *node)
free_cmd_node(node);
else if (node->type == STRING_NODE)
free(node->content.string);
- else
- panic(UNREACHABLE);
free(node);
}
@@ -49,6 +48,17 @@ static void free_cmd_node(t_node *node)
&& 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)
+ && node->content.cmd.redirs[1].specifier != NULL)
free(node->content.cmd.redirs[1].specifier);
+ if (node->content.cmd.create_files != NULL)
+ ft_lstclear(&node->content.cmd.create_files, free_file);
+}
+
+static void free_file(void *arg)
+{
+ t_redirection *file;
+
+ file = (t_redirection *)arg;
+ free(file->specifier);
+ free(file);
}