diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-02-28 09:41:52 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-02-28 12:38:58 +0100 |
| commit | cc1b57c96cc8c0fdd53e781b54a83bb9c743179a (patch) | |
| tree | b58d43c6fc5b3b57cdeb28f9a21f421d3400196c /src/environment.c | |
| parent | 83e7d63bc9c2d4a246df3cc8555127f3b956f960 (diff) | |
| download | minishell-cc1b57c96cc8c0fdd53e781b54a83bb9c743179a.tar.gz minishell-cc1b57c96cc8c0fdd53e781b54a83bb9c743179a.tar.bz2 minishell-cc1b57c96cc8c0fdd53e781b54a83bb9c743179a.zip | |
Added environment and state
Also dummy files eval.c parse.c
Diffstat (limited to 'src/environment.c')
| -rw-r--r-- | src/environment.c | 56 |
1 files changed, 56 insertions, 0 deletions
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 <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* 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); */ +/* } */ |
