mirror of
https://github.com/KeyZox71/ft_minipowershell.git
synced 2025-05-11 23:18:46 +02:00
「✨」 feat: __to_redir and __to_redir_sign work
This commit is contained in:
@ -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);
|
||||
}
|
||||
}*/
|
||||
|
Reference in New Issue
Block a user