」 feat: __to_redir and __to_redir_sign work

This commit is contained in:
2024-05-25 14:06:42 +02:00
parent 6a8a6382bd
commit f88e6380c0
6 changed files with 41 additions and 29 deletions

View File

@ -6,11 +6,12 @@
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/20 21:05:04 by adjoly #+# #+# */
/* Updated: 2024/05/23 20:12:03 by adjoly ### ########.fr */
/* Updated: 2024/05/25 14:05:02 by adjoly ### ########.fr */
/* */
/* ************************************************************************** */
#include "tokenizer.h"
#include "parsing.h"
t_redirection_sign __to_redir_sign(char *redir_sign)
{
@ -18,41 +19,35 @@ t_redirection_sign __to_redir_sign(char *redir_sign)
return (INFILE);
else if (redir_sign[0] == '<' && redir_sign[1] == '<')
return (HEREDOC);
else if (redir_sign[0] == '>' && redir_sign[1] != '>')
else if (redir_sign[0] == '>' && redir_sign[1] == '>')
return (OUT_APPEND);
else if (redir_sign[0] == '>' && redir_sign[1] != '>')
return (OUTFILE);
return (0);
}
t_redirection *__to_redir(char *redir_s)
t_redirection *__to_redir(char *redir_s)
{
char *tmp;
t_redirection *redir;
char *start_of_filename;
char *filename;
char *tmp;
redir = ft_calloc(sizeof(t_redirection), 1);
redir->sign = __to_redir_sign(redir_s);
tmp = redir_s;
if (!redir->sign)
return (NULL);
if (redir->sign % 2)
tmp++;
if (redir->sign == HEREDOC || redir->sign == OUT_APPEND)
redir_s += 2;
else
tmp += 2;
while (*tmp && *tmp != ' ')
redir_s++;
while (*redir_s && *redir_s == ' ')
redir_s++;
tmp = redir_s;
while (*tmp && ft_isalnum(*tmp))
tmp++;
start_of_filename = tmp;
while (*tmp && !ft_isalnum(*tmp))
tmp++;
filename = ft_calloc(tmp - start_of_filename + 1, sizeof(char));
ft_strlcpy(filename, start_of_filename, (tmp - start_of_filename));
redir->file_name = filename;
redir->file_name = ft_calloc(tmp - redir_s + 1, sizeof(char));
ft_strlcpy(redir->file_name, redir_s, tmp - redir_s + 1);
return (redir);
}
t_token *__to_token(char *cmd)
/*t_token *__to_token(char *cmd)
{
char *tmp;
t_token *token;
@ -74,4 +69,4 @@ t_token *__to_token(char *cmd)
tmp++;
}
return (token);
}
}*/