aboutsummaryrefslogtreecommitdiff
path: root/src/environment.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-02-28 09:41:52 +0100
committerCharles <sircharlesaze@gmail.com>2020-02-28 12:38:58 +0100
commitcc1b57c96cc8c0fdd53e781b54a83bb9c743179a (patch)
treeb58d43c6fc5b3b57cdeb28f9a21f421d3400196c /src/environment.c
parent83e7d63bc9c2d4a246df3cc8555127f3b956f960 (diff)
downloadminishell-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.c56
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); */
+/* } */