From 3b6d4bfca243bdcf396dc6700f399e86d61cad3d Mon Sep 17 00:00:00 2001 From: Adam Joly Date: Sun, 21 Jul 2024 17:59:29 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=94=A8=E3=80=8D=20fix:=20fixed?= =?UTF-8?q?=20some=20things.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.c | 2 +- src/parsing/tokenizer/__to_redir.c | 53 +++++++++++++++++++++++++----- src/parsing/tokenizer/__to_token.c | 10 +++--- 3 files changed, 51 insertions(+), 14 deletions(-) diff --git a/src/main.c b/src/main.c index db5eea1..a6524fe 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: mmoussou +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 +#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 *redir; - char *tmp; +// char *tmp; redir = ft_calloc(sizeof(t_redirection), 1); redir->sign = __to_redir_sign(redir_s); @@ -27,12 +61,13 @@ t_redirection *__to_redir(char *redir_s) redir_s++; while (*redir_s && *redir_s == ' ') redir_s++; - tmp = redir_s; - if (!ft_isalnum(*tmp) && *tmp != '/' && *tmp != '.') - return (redir); - while (*tmp && (ft_isalnum(*tmp) || *tmp == '/' || *tmp == '.')) - tmp++; - redir->file_name = ft_calloc(tmp - redir_s + 1, sizeof(char)); - ft_strlcpy(redir->file_name, redir_s, tmp - redir_s + 1); +// tmp = redir_s; + //if (!ft_isalnum(*tmp) && *tmp != '/' && *tmp != '.') + //return (redir); + //while (*tmp && (ft_isalnum(*tmp) || *tmp == '/' || *tmp == '.')) + // tmp++; + //redir->file_name = ft_calloc(tmp - redir_s + 1, sizeof(char)); + //ft_strlcpy(redir->file_name, redir_s, tmp - redir_s + 1); + redir->file_name = __redir_filename_cpy(redir_s); return (redir); } diff --git a/src/parsing/tokenizer/__to_token.c b/src/parsing/tokenizer/__to_token.c index 2231449..336f914 100644 --- a/src/parsing/tokenizer/__to_token.c +++ b/src/parsing/tokenizer/__to_token.c @@ -6,7 +6,7 @@ /* 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 +size_t __get_len_arg(char *s); + size_t __get_sizeof_redir(char *redir_s, t_redirection *redir) { size_t i; @@ -23,15 +25,15 @@ size_t __get_sizeof_redir(char *redir_s, t_redirection *redir) if (!redir_s || !redir) return (0); else if (redir->sign == OUT_APPEND || redir->sign == HEREDOC) - i = 2; + i = 1; else i = 0; if (!redir->file_name) return (i); - tmp = redir_s; + tmp = redir_s + i; while (*++tmp && *tmp == ' ') i++; - i += ft_strlen(redir->file_name); + i += __get_len_arg(tmp); return (i); }