Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
yabtaour
GitHub Repository: yabtaour/Minishell-42
Path: blob/main/builtin/export/export_utils4.c
1407 views
1
/* ************************************************************************** */
2
/* */
3
/* ::: :::::::: */
4
/* export_utils4.c :+: :+: :+: */
5
/* +:+ +:+ +:+ */
6
/* By: ssabbaji <[email protected]> +#+ +:+ +#+ */
7
/* +#+#+#+#+#+ +#+ */
8
/* Created: 2022/10/02 10:38:50 by ssabbaji #+# #+# */
9
/* Updated: 2022/10/02 10:38:53 by ssabbaji ### ########.fr */
10
/* */
11
/* ************************************************************************** */
12
13
#include "../../minishell.h"
14
15
int ft_check_concate(char *name)
16
{
17
if (name[ft_strlen(name) - 1] == '+')
18
return (1);
19
return (0);
20
}
21
22
void ft_new_concate(t_data *data, char *name, char *value)
23
{
24
ft_add_new_env(data, name, value);
25
if (name)
26
free(name);
27
if (value)
28
free(value);
29
}
30
31
char *ft_get_concate_name(char *name)
32
{
33
char *temp;
34
35
temp = ft_substr(name, 0, ft_strlen(name) - 1);
36
free(name);
37
name = ft_strdup(temp);
38
free(temp);
39
return (name);
40
}
41
42
void ft_concatenate(t_data *data, char *name, char *value)
43
{
44
char *temp;
45
t_env *env_clone;
46
47
env_clone = data->lst_env;
48
name = ft_get_concate_name(name);
49
if (ft_name_exists(data, name))
50
{
51
while (env_clone)
52
{
53
if (!ft_strcmp(env_clone->name, name))
54
{
55
temp = env_clone->value;
56
env_clone->value = ft_strjoin(temp, value);
57
break ;
58
}
59
env_clone = env_clone->next;
60
}
61
free(name);
62
free(value);
63
}
64
else
65
ft_new_concate(data, name, value);
66
}
67
68