minishell/src/environment/environment_get_arr.c
2025-02-26 15:27:53 +01:00

41 lines
1.6 KiB
C

/* ************************************************************************** */
/* */
/* :::::::: */
/* environment_get_arr.c :+: :+: */
/* +:+ */
/* By: willem <willem@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/02/08 13:59:48 by willem #+# #+# */
/* Updated: 2025/02/26 14:45:35 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
#include "minishell.h"
char **environment_get_arr(t_minishell *minishell)
{
char **arr;
t_environment *env;
int i;
t_list *environment;
environment = minishell->environment;
arr = malloc_safe(minishell,
sizeof(char *) * (ft_lstsize(environment) + 1));
i = 0;
while (environment != NULL)
{
env = (t_environment *)environment->content;
arr[i] = malloc_safe(minishell,
ft_strlen(env->name) + ft_strlen(env->value) + 2);
ft_strlcpy(arr[i], env->name, ft_strlen(env->name) + 1);
ft_strlcat(arr[i], "=", ft_strlen(env->name) + 2);
ft_strlcat(arr[i], env->value,
ft_strlen(env->name) + ft_strlen(env->value) + 2);
environment = environment->next;
i++;
}
arr[i] = NULL;
return (arr);
}