From 06f7c2548f68ec2786eec97219b55cd095de450d Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Thu, 8 Aug 2024 17:10:25 +0200 Subject: Add data structure and prototypes for env --- include/env.h | 23 +++++++++++++++++++++++ include/minishell.h | 3 ++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 include/env.h diff --git a/include/env.h b/include/env.h new file mode 100644 index 0000000..1ea6f2e --- /dev/null +++ b/include/env.h @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* env.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser # include -- cgit v1.2.3 From a0016dffa6c5412d7c53b3d9040b837299c50159 Mon Sep 17 00:00:00 2001 From: Christopher Uhlig Date: Thu, 17 Oct 2024 14:32:28 +0200 Subject: added env linked lis c file --- src/env.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/env.c diff --git a/src/env.c b/src/env.c new file mode 100644 index 0000000..2403329 --- /dev/null +++ b/src/env.c @@ -0,0 +1,53 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* env.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: chuhlig +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/10/17 14:31:07 by chuhlig #+# #+# */ +/* Updated: 2024/10/17 14:31:50 by chuhlig ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "env.h" + +void getenvlst(t_env **env, char **en)// seperated name and value +{ + char *tmp; + int i; + t_env *current; + + i = 0; + while (en[i] != NULL) + { + tmp = ft_strchr(en[i], '='); + tmp = '\0'; + current = *env; + current = malloc(sizeof(t_env)); + current->name = ft_strdup(en[i]); + current->value = ft_strdup(tmp + 1); + current->next = *env; + *env = current; + i++; + } + return (0); +} + + +void free_envlst(t_env **env) +{ + t_env *cur; + t_env *new; + + cur = *env; + while (cur) + { + new = cur->next; + free(cur->name); + free(cur->value); + free(cur); + cur = new; + } + +} \ No newline at end of file -- cgit v1.2.3 From 9298e72de61af5311678c656c12fc177589671a7 Mon Sep 17 00:00:00 2001 From: Christopher Uhlig Date: Thu, 17 Oct 2024 15:32:02 +0200 Subject: fixed normitte and fixed return issue --- src/env.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/env.c b/src/env.c index 2403329..8105bf4 100644 --- a/src/env.c +++ b/src/env.c @@ -6,17 +6,17 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/17 14:31:07 by chuhlig #+# #+# */ -/* Updated: 2024/10/17 14:31:50 by chuhlig ### ########.fr */ +/* Updated: 2024/10/17 15:18:44 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ #include "env.h" -void getenvlst(t_env **env, char **en)// seperated name and value +void getenvlst(t_env **env, char **en) { char *tmp; int i; - t_env *current; + t_env *current; i = 0; while (en[i] != NULL) @@ -24,21 +24,19 @@ void getenvlst(t_env **env, char **en)// seperated name and value tmp = ft_strchr(en[i], '='); tmp = '\0'; current = *env; - current = malloc(sizeof(t_env)); - current->name = ft_strdup(en[i]); - current->value = ft_strdup(tmp + 1); - current->next = *env; - *env = current; + current = malloc(sizeof(t_env)); + current->name = ft_strdup(en[i]); + current->value = ft_strdup(tmp + 1); + current->next = *env; + *env = current; i++; } - return (0); } - void free_envlst(t_env **env) { t_env *cur; - t_env *new; + t_env *new; cur = *env; while (cur) @@ -49,5 +47,4 @@ void free_envlst(t_env **env) free(cur); cur = new; } - } \ No newline at end of file -- cgit v1.2.3 From e6e8051fbda53a75332e09f917e74d687f467a8a Mon Sep 17 00:00:00 2001 From: Christopher Uhlig Date: Thu, 17 Oct 2024 15:38:15 +0200 Subject: changed prototypes in header file --- include/env.h | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/include/env.h b/include/env.h index 12d8db0..5a65333 100644 --- a/include/env.h +++ b/include/env.h @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* env.h :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: dkaiser +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/08 16:53:39 by dkaiser #+# #+# */ -/* Updated: 2024/09/13 16:26:16 by dkaiser ### ########.fr */ +/* Updated: 2024/10/17 15:37:32 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,9 +17,6 @@ typedef struct s_env struct s_env *next; } t_env; -char *env_get(t_env *env, char *name); -void env_export(t_env *env, char *name, char *value); -void env_unset(t_env *env, char *name); -char **env_to_strlst(t_env *env); -t_env **env_from_strlst(char **lst); +void getenvlst(t_env **env, char **en); +void free_envlst(t_env **env); -- cgit v1.2.3 From d05140c9c6bacce28b37124fbda48ea3a39ac486 Mon Sep 17 00:00:00 2001 From: Christopher Uhlig Date: Thu, 17 Oct 2024 15:48:50 +0200 Subject: fixed *tmp and added libft in env header --- include/env.h | 4 +++- src/env.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/include/env.h b/include/env.h index 5a65333..e774002 100644 --- a/include/env.h +++ b/include/env.h @@ -6,10 +6,12 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/08 16:53:39 by dkaiser #+# #+# */ -/* Updated: 2024/10/17 15:37:32 by chuhlig ### ########.fr */ +/* Updated: 2024/10/17 15:47:30 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ +#include "libft.h" + typedef struct s_env { char *name; diff --git a/src/env.c b/src/env.c index 8105bf4..c71b2cb 100644 --- a/src/env.c +++ b/src/env.c @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/17 14:31:07 by chuhlig #+# #+# */ -/* Updated: 2024/10/17 15:18:44 by chuhlig ### ########.fr */ +/* Updated: 2024/10/17 15:47:11 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,7 +22,7 @@ void getenvlst(t_env **env, char **en) while (en[i] != NULL) { tmp = ft_strchr(en[i], '='); - tmp = '\0'; + *tmp = '\0'; current = *env; current = malloc(sizeof(t_env)); current->name = ft_strdup(en[i]); -- cgit v1.2.3