aboutsummaryrefslogtreecommitdiff
path: root/src/environment.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/environment.c')
-rw-r--r--src/environment.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/environment.c b/src/environment.c
index a39b246..90cac86 100644
--- a/src/environment.c
+++ b/src/environment.c
@@ -21,7 +21,7 @@ t_ftht *ms_environment_from_array(const char **envp)
char *key;
char *value;
/* int equal_pos; */
-
+
if (envp == NULL)
return (NULL);
if ((environment = ft_htnew(MS_ENVIRONMENT_HT_SIZE)) == NULL)
@@ -32,12 +32,14 @@ t_ftht *ms_environment_from_array(const char **envp)
// free stuff on error
if ((value = ft_strchr(envp[i], '=')) == NULL)
return (NULL);
- if ((key = ft_strndup(envp[i], ft_strspn(envp[i], "="))) == NULL)
+ if ((key = ft_strndup(envp[i], ft_strcspn(envp[i], "="))) == NULL)
return (NULL);
- if ((value = ft_strdup(value)) == NULL)
+ /* printf("%s -- %d\n", envp[i], strcspn(envp[i], "=")); */
+ if ((value = ft_strdup(value + 1)) == NULL)
return (NULL);
if (ft_htset(environment, key, value, ms_ht_del_str_entry) == NULL)
return (NULL);
+ free(key);
}
return (environment);
}
@@ -49,8 +51,3 @@ char **ms_environment_to_array(t_ftht *environment)
return (NULL);
}
-
-/* void ms_environment_destroy(t_ftht *environment) */
-/* { */
-/* ft_htdestroy(environment, ms_ht_del_str_entry); */
-/* } */