-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrederction_f.c
More file actions
93 lines (87 loc) · 2.43 KB
/
Copy pathrederction_f.c
File metadata and controls
93 lines (87 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* rederction_f.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: ssamadi <ssamadi@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/05/15 16:13:50 by ssamadi #+# #+# */
/* Updated: 2021/05/28 16:16:39 by ssamadi ### ########.fr */
/* */
/* ************************************************************************** */
#include "minishell_hr.h"
int valid_rdr(char c)
{
if (c == '|' || c == ';' || c == '>' || c == '<')
return (-1);
return (0);
}
int check_rdr(char *s, int i)
{
if (s[i] == '>' && s[i + 1] == '>')
return (2);
else if (s[i] == '>')
return (1);
else if (s[i] == '<')
return (0);
return (1);
}
void err_hvtp(char c0, char c1)
{
write(2, "minishell: syntax error near unexpected token ", 46);
write(2, "`", 1);
write(2, &c0, 1);
write(2, &c1, 1);
write(2, "'", 1);
write(2, "\n", 1);
}
void hald_valid_tp(char c0, char c1, char c2)
{
if (c0 == ';' && c1 == ';')
err_hvtp(c0, c1);
else if (c1 == '|' && c2 == '|')
{
write(2, "minishell: syntax error near unexpected token ", 46);
write(2, "`", 1);
write(2, &c1, 1);
write(2, &c2, 1);
write(2, "'", 1);
write(2, "\n", 1);
g_all->staus_code = 258;
}
else
{
write(2, "minishell: syntax error near unexpected token ", 46);
write(2, "`", 1);
write(2, &c1, 1);
write(2, "'", 1);
write(2, "\n", 1);
g_all->staus_code = 258;
}
}
int valid_type(char c0, char c1, char c2)
{
if (c1 == '>' && c2 == '<')
{
write(2, "minishell: syntax error near unexpected token ", 46);
write(2, "`", 1);
write(2, &c1, 1);
write(2, "'", 1);
write(2, "\n", 1);
g_all->staus_code = 258;
}
else if ((c1 == '>' || c1 == '<')
&& (c2 == '>' || c2 == '<'))
{
write(2, "minishell: syntax error near unexpected token ", 46);
write(2, "`", 1);
write(2, &c1, 1);
write(2, &c2, 1);
write(2, "'", 1);
write(2, "\n", 1);
g_all->staus_code = 258;
}
else
hald_valid_tp(c0, c1, c2);
return (-1);
}