diff --git a/src/builtins/ft_export.c b/src/builtins/ft_export.c index aa461b9..cb28571 100644 --- a/src/builtins/ft_export.c +++ b/src/builtins/ft_export.c @@ -6,7 +6,7 @@ /* By: mmoussou name, "_")) { - ar[i] = ft_calloc(1, ft_vstrlen(2, env->name, env->content) + 2); + ar[i] = ft_calloc(1, ft_vstrlen(2, env->name, env->content) + 4); if (!ar[i]) { ft_free("a", ar); @@ -54,11 +56,12 @@ char **env_get_list(t_env *env) void add_to_env(char *name, char *content, t_env *env) { - if (!content) - content = ft_calloc(1, 1); - if (!content) - return ; - if (env_get_value(name, env)) + t_env *env_t; + + env_t = env; + while (env_t && ft_strcmp(env_t->name, name)) + env_t = env_t->next; + if (env_t) env_edit(name, content, env); else ft_envadd_back(&env, ft_envnew(name, content)); diff --git a/src/env/env_setters.c b/src/env/env_setters.c index 08bea34..bb90241 100644 --- a/src/env/env_setters.c +++ b/src/env/env_setters.c @@ -6,7 +6,7 @@ /* By: mmoussou content) + { + env = env->next; continue ; + } ar[i] = ft_calloc(1, ft_vstrlen(2, env->name, env->content) + 2); if (!ar[i]) {