fix: env file
This commit is contained in:
parent
a9df160295
commit
3e656abf5d
29
env/env_fill.c
vendored
29
env/env_fill.c
vendored
@ -6,7 +6,7 @@
|
||||
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2023/02/16 16:29:08 by cchauvet #+# #+# */
|
||||
/* Updated: 2023/03/27 16:42:27 by cchauvet ### ########.fr */
|
||||
/* Updated: 2023/03/29 19:06:44 by cchauvet ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -26,7 +26,7 @@ static char *ft_getkey(const char *str)
|
||||
else
|
||||
{
|
||||
i = 1;
|
||||
while (str[i] != '\0' && !ft_is_in("$?\'\"", str[i]))
|
||||
while (str[i] != '\0' && !ft_is_in("$?\'\" ", str[i]))
|
||||
i++;
|
||||
key = ft_strndup(str + 1, i - 1);
|
||||
}
|
||||
@ -73,12 +73,25 @@ static char *ft_getvalue_by_str(t_data *data, const char *str,
|
||||
return (value);
|
||||
}
|
||||
|
||||
char *ft_str_formator(t_data *data, char *str, size_t *i)
|
||||
{
|
||||
char *value;
|
||||
size_t key_len;
|
||||
char *out;
|
||||
|
||||
value = ft_getvalue_by_str(data, str + *i, &key_len);
|
||||
if (value == NULL)
|
||||
return (NULL);
|
||||
out = ft_strreplace(str, value, *i, key_len + *i);
|
||||
*i = *i + ft_strlen(value);
|
||||
free(value);
|
||||
return (out);
|
||||
}
|
||||
|
||||
char *ft_env_filler(t_data *data, const char *str)
|
||||
{
|
||||
char *out;
|
||||
char *temp;
|
||||
char *value;
|
||||
size_t key_len;
|
||||
size_t i;
|
||||
|
||||
out = ft_strdup(str);
|
||||
@ -91,14 +104,10 @@ char *ft_env_filler(t_data *data, const char *str)
|
||||
i++;
|
||||
while (out[i] == '$')
|
||||
{
|
||||
value = ft_getvalue_by_str(data, out + i, &key_len);
|
||||
if (value == NULL)
|
||||
return (NULL);
|
||||
temp = ft_strreplace(out, value, i, key_len + i);
|
||||
i = i + ft_strlen(value);
|
||||
ft_freer_ultimate(2, value, out);
|
||||
temp = ft_str_formator(data, out, &i);
|
||||
if (temp == NULL)
|
||||
return (NULL);
|
||||
free(out);
|
||||
out = temp;
|
||||
}
|
||||
if (out[i] != '\0')
|
||||
|
Loading…
Reference in New Issue
Block a user