Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
yabtaour
GitHub Repository: yabtaour/Minishell-42
Path: blob/main/delete_quotes/delete_quotes_utils.c
1407 views
1
/* ************************************************************************** */
2
/* */
3
/* ::: :::::::: */
4
/* delete_quotes_utils.c :+: :+: :+: */
5
/* +:+ +:+ +:+ */
6
/* By: yabtaour <[email protected]> +#+ +:+ +#+ */
7
/* +#+#+#+#+#+ +#+ */
8
/* Created: 2022/07/26 18:16:03 by yabtaour #+# #+# */
9
/* Updated: 2022/07/26 19:36:12 by yabtaour ### ########.fr */
10
/* */
11
/* ************************************************************************** */
12
13
#include "../minishell.h"
14
15
int ft_real_len(char *cmd)
16
{
17
int len;
18
int flag_d;
19
int flag_s;
20
int i;
21
22
i = 0;
23
len = 0;
24
flag_d = 0;
25
flag_s = 0;
26
while (cmd[i])
27
{
28
if (cmd[i] == '"' && flag_s == 0)
29
{
30
len++;
31
flag_d = ft_change_flag(flag_d);
32
}
33
if (cmd[i] == '\'' && flag_d == 0)
34
{
35
len++;
36
flag_s = ft_change_flag(flag_s);
37
}
38
i++;
39
}
40
return (len);
41
}
42
43
int ft_len(char *cmd)
44
{
45
int i;
46
int flag_s;
47
int flag_d;
48
int len;
49
50
i = 0;
51
flag_d = 0;
52
flag_s = 0;
53
len = 0;
54
while (cmd[i])
55
{
56
if (cmd[i] == '"' && flag_s == 0)
57
{
58
len++;
59
flag_d = ft_change_flag(flag_d);
60
}
61
if (cmd[i] == '\'' && flag_d == 0)
62
{
63
len++;
64
flag_s = ft_change_flag(flag_s);
65
}
66
i++;
67
}
68
return (len);
69
}
70
71
int *ft_fill_index(int *index, char *cmd)
72
{
73
int i;
74
int len;
75
int flag_d;
76
int flag_s;
77
78
i = -1;
79
len = 0;
80
flag_d = 0;
81
flag_s = 0;
82
while (cmd[++i])
83
{
84
if (cmd[i] == '"' && flag_s == 0)
85
{
86
index[len] = i;
87
len++;
88
flag_d = ft_change_flag(flag_d);
89
}
90
if (cmd[i] == '\'' && flag_d == 0)
91
{
92
index[len] = i;
93
len++;
94
flag_s = ft_change_flag(flag_s);
95
}
96
}
97
return (index);
98
}
99
100
int *ft_get_index(char *cmd, int type)
101
{
102
int *index;
103
104
index = NULL;
105
if (type == 1)
106
{
107
index = malloc (sizeof(int) * ft_len(cmd));
108
if (!index)
109
exit (1);
110
index = ft_fill_index(index, cmd);
111
}
112
return (index);
113
}
114
115