diff --git a/include/builtins.h b/include/builtins.h index 31715ff..890e264 100644 --- a/include/builtins.h +++ b/include/builtins.h @@ -6,7 +6,7 @@ /* By: mmoussou 0) - { - tmp = env[y]; - env[y] = env[y + 1]; - env[y + 1] = tmp; - } - y++; - } - i--; - } -} - void env_print_in_order(t_env *env_l) { char **env; @@ -66,7 +42,7 @@ int export_value(char *arg, t_env *env) name = ft_strdup(arg); if (name) add_to_env(name, NULL, env); - return (-1); + return (0); } name = ft_calloc(sizeof(char), ft_strchr(arg, '=') - arg + 1); content = ft_calloc(sizeof(char), ft_strlen(ft_strchr(arg, '='))); @@ -82,6 +58,20 @@ int export_value(char *arg, t_env *env) return (0); } +void append_process(char *name, char *content, t_env *env_t, t_env *env) +{ + if (env_t) + { + if (env_t->content) + env_append(name, content, env); + else + env_edit(name, content, env); + free(name); + } + else + ft_envadd_back(&env, ft_envnew(name, content)); +} + int export_append_value(char *arg, t_env *env) { char *name; @@ -101,10 +91,7 @@ int export_append_value(char *arg, t_env *env) env_t = env; while (env_t && ft_strcmp(env_t->name, name)) env_t = env_t->next; - if (env_t) - env_append(name, content, env); - else - ft_envadd_back(&env, ft_envnew(name, content)); + append_process(name, content, env_t, env); return (0); } diff --git a/src/builtins/ft_export_utils.c b/src/builtins/ft_export_utils.c index 6166166..efa7128 100644 --- a/src/builtins/ft_export_utils.c +++ b/src/builtins/ft_export_utils.c @@ -6,7 +6,7 @@ /* By: mmoussou name, name)) env_t = env_t->next; if (env_t) - env_edit(name, content, env); + { + if (content) + env_edit(name, content, env); + free(name); + } else ft_envadd_back(&env, ft_envnew(name, content)); } diff --git a/src/builtins/ft_export_utils2.c b/src/builtins/ft_export_utils2.c new file mode 100644 index 0000000..dcdcc96 --- /dev/null +++ b/src/builtins/ft_export_utils2.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_export_utils2.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mmoussou 0) + { + tmp = env[y]; + env[y] = env[y + 1]; + env[y + 1] = tmp; + } + y++; + } + i--; + } +} diff --git a/src/env/env_cmd.c b/src/env/env_cmd.c index d8f3ca3..0d9c8ac 100644 --- a/src/env/env_cmd.c +++ b/src/env/env_cmd.c @@ -6,7 +6,7 @@ /* By: mmoussou content) - + ft_strlen(content)); + + ft_strlen(content) + 1); if (!new_content) return (-1); ft_strlcpy(new_content, tmp_env->content, ft_strlen(tmp_env->content) + 1); @@ -37,6 +37,7 @@ int env_append(char *name, char *content, t_env *env) content, ft_strlen(content) + 1); free(tmp_env->content); tmp_env->content = new_content; + free(content); return (0); } diff --git a/src/exec/format_quotes.c b/src/exec/format_quotes.c index 083763f..6f03d75 100644 --- a/src/exec/format_quotes.c +++ b/src/exec/format_quotes.c @@ -6,60 +6,43 @@ /* By: mmoussou