From cc1b57c96cc8c0fdd53e781b54a83bb9c743179a Mon Sep 17 00:00:00 2001 From: Charles Date: Fri, 28 Feb 2020 09:41:52 +0100 Subject: Added environment and state Also dummy files eval.c parse.c --- src/environment.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'src/environment.c') diff --git a/src/environment.c b/src/environment.c index e69de29..a39b246 100644 --- a/src/environment.c +++ b/src/environment.c @@ -0,0 +1,56 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* environment.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/28 09:21:24 by cacharle #+# #+# */ +/* Updated: 2020/02/28 12:30:55 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +#define MS_ENVIRONMENT_HT_SIZE 2048 + +t_ftht *ms_environment_from_array(const char **envp) +{ + t_ftht *environment; + int i; + char *key; + char *value; + /* int equal_pos; */ + + if (envp == NULL) + return (NULL); + if ((environment = ft_htnew(MS_ENVIRONMENT_HT_SIZE)) == NULL) + return (NULL); + i = -1; + while (envp[++i] != NULL) + { + // free stuff on error + if ((value = ft_strchr(envp[i], '=')) == NULL) + return (NULL); + if ((key = ft_strndup(envp[i], ft_strspn(envp[i], "="))) == NULL) + return (NULL); + if ((value = ft_strdup(value)) == NULL) + return (NULL); + if (ft_htset(environment, key, value, ms_ht_del_str_entry) == NULL) + return (NULL); + } + return (environment); +} + +char **ms_environment_to_array(t_ftht *environment) +{ + (void)environment; + // need ft_htlen + return (NULL); + +} + +/* void ms_environment_destroy(t_ftht *environment) */ +/* { */ +/* ft_htdestroy(environment, ms_ht_del_str_entry); */ +/* } */ -- cgit