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