From 20d4c4f5e10a0d3dcab0a64357a394d8873f959a Mon Sep 17 00:00:00 2001 From: yosyo Date: Mon, 15 Jul 2024 18:41:44 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=E2=9C=A8=E3=80=8D=20feat(env/env=5Fcm?= =?UTF-8?q?ds):=20now=20create=20value=20if=20non-existent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/env/env_cmd.c | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/src/env/env_cmd.c b/src/env/env_cmd.c index 9d25b6d..59e68d5 100644 --- a/src/env/env_cmd.c +++ b/src/env/env_cmd.c @@ -6,7 +6,7 @@ /* By: mmoussou name, name)) - env = env->next; - if (!env) + tmp_env = env; + while (tmp_env && ft_strcmp(tmp_env->name, name)) + tmp_env = tmp_env->next; + if (!tmp_env) + { + ft_envadd_back(&env, ft_envnew(name, content)); return (-1); - new_content = ft_calloc(1, ft_strlen(env->content) + ft_strlen(content)); + } + new_content = ft_calloc(1, ft_strlen(tmp_env->content) + + ft_strlen(content)); if (!new_content) return (-1); - ft_strlcpy(new_content, env->content, ft_strlen(env->content) + 1); - ft_strlcpy(new_content + ft_strlen(env->content), + ft_strlcpy(new_content, tmp_env->content, ft_strlen(tmp_env->content) + 1); + ft_strlcpy(new_content + ft_strlen(tmp_env->content), content, ft_strlen(content) + 1); - free(env->content); - env->content = new_content; + free(tmp_env->content); + tmp_env->content = new_content; return (0); } int env_edit(char *name, char *content, t_env *env) { - while (env && ft_strcmp(env->name, name)) - env = env->next; - if (!env) + t_env *tmp_env; + + tmp_env = env; + while (tmp_env && ft_strcmp(tmp_env->name, name)) + tmp_env = tmp_env->next; + if (!tmp_env) + { + ft_envadd_back(&env, ft_envnew(name, content)); return (-1); - free(env->content); - env->content = content; + } + free(tmp_env->content); + tmp_env->content = content; return (0); }