🔨」 fix: fixed some things.

This commit is contained in:
2024-07-21 17:59:29 +02:00
parent 7483029244
commit 3b6d4bfca2
3 changed files with 51 additions and 14 deletions

View File

@ -6,7 +6,7 @@
/* By: mmoussou <mmoussou@student.42angouleme.fr +#+ +:+ +#+ */ /* By: mmoussou <mmoussou@student.42angouleme.fr +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/04/24 11:18:04 by adjoly #+# #+# */ /* Created: 2024/04/24 11:18:04 by adjoly #+# #+# */
/* Updated: 2024/07/21 13:09:17 by mmoussou ### ########.fr */ /* Updated: 2024/07/21 17:47:45 by adjoly ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View File

@ -6,17 +6,51 @@
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/25 15:06:15 by adjoly #+# #+# */ /* Created: 2024/05/25 15:06:15 by adjoly #+# #+# */
/* Updated: 2024/07/15 16:22:01 by adjoly ### ########.fr */ /* Updated: 2024/07/21 17:51:56 by adjoly ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
#include "tokenizer.h" #include "tokenizer.h"
#include <stdio.h> #include <stdio.h>
#include "parsing.h"
size_t __cpy_arg(char *dst, char *src);
size_t __get_len_arg(char *s);
char *__redir_filename_cpy(char *redir_s)
{
char *filename;
size_t len;
size_t i;
size_t j;
char *tmp;
tmp = ft_calloc(__get_len_arg(redir_s) + 1, sizeof(char));
len = __cpy_arg(tmp, redir_s);
printf("%zu\n", len);
i = 0;
j = 0;
filename = ft_calloc(len + 1, sizeof(char));
while (i < len)
{
if (tmp[i] == DOUBLE || tmp[i] == SINGLE)
i++;
else
{
filename[j] = tmp[i];
i++;
j++;
}
}
filename[j] = 0;
free(tmp);
return (filename);
}
t_redirection *__to_redir(char *redir_s) t_redirection *__to_redir(char *redir_s)
{ {
t_redirection *redir; t_redirection *redir;
char *tmp; // char *tmp;
redir = ft_calloc(sizeof(t_redirection), 1); redir = ft_calloc(sizeof(t_redirection), 1);
redir->sign = __to_redir_sign(redir_s); redir->sign = __to_redir_sign(redir_s);
@ -27,12 +61,13 @@ t_redirection *__to_redir(char *redir_s)
redir_s++; redir_s++;
while (*redir_s && *redir_s == ' ') while (*redir_s && *redir_s == ' ')
redir_s++; redir_s++;
tmp = redir_s; // tmp = redir_s;
if (!ft_isalnum(*tmp) && *tmp != '/' && *tmp != '.') //if (!ft_isalnum(*tmp) && *tmp != '/' && *tmp != '.')
return (redir); //return (redir);
while (*tmp && (ft_isalnum(*tmp) || *tmp == '/' || *tmp == '.')) //while (*tmp && (ft_isalnum(*tmp) || *tmp == '/' || *tmp == '.'))
tmp++; // tmp++;
redir->file_name = ft_calloc(tmp - redir_s + 1, sizeof(char)); //redir->file_name = ft_calloc(tmp - redir_s + 1, sizeof(char));
ft_strlcpy(redir->file_name, redir_s, tmp - redir_s + 1); //ft_strlcpy(redir->file_name, redir_s, tmp - redir_s + 1);
redir->file_name = __redir_filename_cpy(redir_s);
return (redir); return (redir);
} }

View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/20 21:05:04 by adjoly #+# #+# */ /* Created: 2024/05/20 21:05:04 by adjoly #+# #+# */
/* Updated: 2024/07/18 17:00:51 by adjoly ### ########.fr */ /* Updated: 2024/07/21 17:58:47 by adjoly ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -15,6 +15,8 @@
#include "parsing.h" #include "parsing.h"
#include <stdio.h> #include <stdio.h>
size_t __get_len_arg(char *s);
size_t __get_sizeof_redir(char *redir_s, t_redirection *redir) size_t __get_sizeof_redir(char *redir_s, t_redirection *redir)
{ {
size_t i; size_t i;
@ -23,15 +25,15 @@ size_t __get_sizeof_redir(char *redir_s, t_redirection *redir)
if (!redir_s || !redir) if (!redir_s || !redir)
return (0); return (0);
else if (redir->sign == OUT_APPEND || redir->sign == HEREDOC) else if (redir->sign == OUT_APPEND || redir->sign == HEREDOC)
i = 2; i = 1;
else else
i = 0; i = 0;
if (!redir->file_name) if (!redir->file_name)
return (i); return (i);
tmp = redir_s; tmp = redir_s + i;
while (*++tmp && *tmp == ' ') while (*++tmp && *tmp == ' ')
i++; i++;
i += ft_strlen(redir->file_name); i += __get_len_arg(tmp);
return (i); return (i);
} }