Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
yabtaour
GitHub Repository: yabtaour/Minishell-42
Path: blob/main/builtin/export/export_utils2.c
1407 views
1
/* ************************************************************************** */
2
/* */
3
/* ::: :::::::: */
4
/* export_utils2.c :+: :+: :+: */
5
/* +:+ +:+ +:+ */
6
/* By: ssabbaji <[email protected]> +#+ +:+ +#+ */
7
/* +#+#+#+#+#+ +#+ */
8
/* Created: 2022/07/27 17:56:24 by yabtaour #+# #+# */
9
/* Updated: 2022/09/25 17:34:54 by ssabbaji ### ########.fr */
10
/* */
11
/* ************************************************************************** */
12
13
#include "../../minishell.h"
14
15
void ft_swap_name(t_env *clone1, t_env *clone2)
16
{
17
char *name_tmp;
18
19
name_tmp = ft_substr(clone1->name, 0, ft_strlen(clone1->name));
20
if (clone1->name)
21
free(clone1->name);
22
clone1->name = ft_substr(clone2->name, 0, ft_strlen(clone2->name));
23
if (clone2->name)
24
free(clone2->name);
25
clone2->name = ft_substr(name_tmp, 0, ft_strlen(name_tmp));
26
if (name_tmp)
27
free(name_tmp);
28
}
29
30
void ft_swap_value(t_env *clone1, t_env *clone2)
31
{
32
char *value_tmp;
33
int len;
34
35
len = ft_strlen(clone1->value);
36
value_tmp = ft_substr(clone1->value, 0, len);
37
if (clone1->value)
38
free(clone1->value);
39
len = ft_strlen(clone2->value);
40
clone1->value = ft_substr(clone2->value, 0, len);
41
if (clone2->value)
42
free(clone2->value);
43
len = ft_strlen(value_tmp);
44
clone2->value = ft_substr(value_tmp, 0, len);
45
if (value_tmp)
46
free(value_tmp);
47
}
48
49
void ft_sort_original(t_data *data)
50
{
51
t_env *env_clone;
52
t_env *env_clone2;
53
54
env_clone = data->lst_env;
55
while (env_clone)
56
{
57
env_clone2 = env_clone->next;
58
while (env_clone2)
59
{
60
if (ft_strcmp(env_clone->name, env_clone2->name) > 0)
61
{
62
ft_swap_name(env_clone, env_clone2);
63
ft_swap_value(env_clone, env_clone2);
64
}
65
env_clone2 = env_clone2->next;
66
}
67
env_clone = env_clone->next;
68
}
69
}
70
71
void ft_sort_env(t_data *data)
72
{
73
t_env *env_clone;
74
75
env_clone = data->lst_env;
76
ft_sort_original(data);
77
}
78
79