diff --git a/.cache/clangd/index/ft_freetab.c.634110A41B036729.idx b/.cache/clangd/index/ft_freetab.c.634110A41B036729.idx new file mode 100644 index 0000000..8f7b072 Binary files /dev/null and b/.cache/clangd/index/ft_freetab.c.634110A41B036729.idx differ diff --git a/.cache/clangd/index/libft.h.F7455B850A972A1D.idx b/.cache/clangd/index/libft.h.F7455B850A972A1D.idx index a24faff..d980302 100644 Binary files a/.cache/clangd/index/libft.h.F7455B850A972A1D.idx and b/.cache/clangd/index/libft.h.F7455B850A972A1D.idx differ diff --git a/.cache/clangd/index/main.c.259C23514E408AC0.idx b/.cache/clangd/index/main.c.259C23514E408AC0.idx index 87663a2..829a1c3 100644 Binary files a/.cache/clangd/index/main.c.259C23514E408AC0.idx and b/.cache/clangd/index/main.c.259C23514E408AC0.idx differ diff --git a/.cache/clangd/index/parsing.c.B79530D8B421E683.idx b/.cache/clangd/index/parsing.c.B79530D8B421E683.idx new file mode 100644 index 0000000..67e46c7 Binary files /dev/null and b/.cache/clangd/index/parsing.c.B79530D8B421E683.idx differ diff --git a/.cache/clangd/index/parsing.h.E14E231C05813896.idx b/.cache/clangd/index/parsing.h.E14E231C05813896.idx new file mode 100644 index 0000000..0e748c4 Binary files /dev/null and b/.cache/clangd/index/parsing.h.E14E231C05813896.idx differ diff --git a/compile_commands.json b/compile_commands.json index ee1a673..30dade1 100644 --- a/compile_commands.json +++ b/compile_commands.json @@ -14,8 +14,46 @@ "src/main.c", "-c", "-o", - "obj/main.o" + "obj/src/main.o" ], "file": "src/main.c" + }, + { + "directory": "/nfs/homes/adjoly/Documents/pipex", + "arguments": [ + "cc", + "-I", + "include/", + "-I", + "libft/", + "-Werror", + "-Wall", + "-Wextra", + "-g", + "src/parsing/parsing.c", + "-c", + "-o", + "obj/src/parsing/parsing.o" + ], + "file": "src/parsing/parsing.c" + }, + { + "directory": "/nfs/homes/adjoly/Documents/pipex", + "arguments": [ + "cc", + "-I", + "include/", + "-I", + "libft/", + "-Werror", + "-Wall", + "-Wextra", + "-g", + "src/utils/ft_freetab.c", + "-c", + "-o", + "obj/src/utils/ft_freetab.o" + ], + "file": "src/utils/ft_freetab.c" } ] diff --git a/src/parsing/parsing.h b/include/parsing.h similarity index 87% rename from src/parsing/parsing.h rename to include/parsing.h index e9852ba..6d3dfd3 100644 --- a/src/parsing/parsing.h +++ b/include/parsing.h @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/28 16:54:40 by adjoly #+# #+# */ -/* Updated: 2024/03/28 22:37:29 by adjoly ### ########.fr */ +/* Updated: 2024/03/29 10:41:40 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,5 +20,7 @@ typedef struct s_pcmd } t_pcmd; void ft_freearr(char **arr); +t_pcmd split_cmd(char *cmd_av); +t_pcmd *parse_cmd(int ac, char **av); #endif diff --git a/src/pipex.h b/include/pipex.h similarity index 100% rename from src/pipex.h rename to include/pipex.h diff --git a/obj/src/main.o b/obj/src/main.o index 7e42941..6065fca 100644 Binary files a/obj/src/main.o and b/obj/src/main.o differ diff --git a/obj/src/parsing/parsing.o b/obj/src/parsing/parsing.o new file mode 100644 index 0000000..5bcd4a8 Binary files /dev/null and b/obj/src/parsing/parsing.o differ diff --git a/obj/src/utils/ft_freetab.o b/obj/src/utils/ft_freetab.o new file mode 100644 index 0000000..f8b2a9c Binary files /dev/null and b/obj/src/utils/ft_freetab.o differ diff --git a/pipex b/pipex index 0f714d9..62e9c4c 100755 Binary files a/pipex and b/pipex differ diff --git a/src/main.c b/src/main.c index 03d9803..6c3294a 100644 --- a/src/main.c +++ b/src/main.c @@ -6,14 +6,40 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/21 10:03:04 by adjoly #+# #+# */ -/* Updated: 2024/03/28 23:04:32 by adjoly ### ########.fr */ +/* Updated: 2024/03/30 13:22:17 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" +#include "parsing.h" int main(int ac, char **av) { - ft_putstr_fd(*av, 1); - return (ac); + t_pcmd *cmd; + t_pcmd *tmp; + char **option_tmp; + + cmd = parse_cmd(ac, av); + tmp = cmd; + while (tmp && (*tmp).cmd) + { + ft_printf("cmd : %s\n", (*tmp).cmd); + option_tmp = (*tmp).option; + while (*option_tmp) + { + ft_printf("%s\n", *option_tmp); + option_tmp++; + } + tmp++; + } + tmp = cmd; + while (tmp && (*tmp).cmd) + { + if (tmp->option) + ft_freearr(tmp->option); + free(tmp->cmd); + tmp++; + } + free(cmd); + return (EXIT_SUCCESS); } diff --git a/src/parsing/parsing.c b/src/parsing/parsing.c index fce33e2..eb8845c 100644 --- a/src/parsing/parsing.c +++ b/src/parsing/parsing.c @@ -6,29 +6,42 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/22 21:13:26 by adjoly #+# #+# */ -/* Updated: 2024/03/28 22:37:50 by adjoly ### ########.fr */ +/* Updated: 2024/03/30 12:01:17 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ - #include "parsing.h" #include "libft.h" -t_pcmd split_cmd(char *cmd) +t_pcmd split_cmd(char *cmd_av) { char **split; + char **tmp_split; t_pcmd cmd; - split = ft_split(cmd, 32); + split = ft_split(cmd_av, 32); + tmp_split = split; + cmd.cmd = *tmp_split; + tmp_split++; + cmd.option = tmp_split; + return (cmd); } t_pcmd *parse_cmd(int ac, char **av) { char **tmp; - - tmp = av + 1; + t_pcmd *cmd_arr; + t_pcmd *cmd_tmp; + + (void)ac; + cmd_arr = ft_calloc(10000, 1); + cmd_tmp = cmd_arr; + tmp = av + 2; while (*tmp) { + *cmd_tmp = split_cmd(*tmp); + cmd_tmp++; tmp++; } + return (cmd_arr); } diff --git a/src/utils/ft_freetab.c b/src/utils/ft_freetab.c index 324f693..6a0e435 100644 --- a/src/utils/ft_freetab.c +++ b/src/utils/ft_freetab.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/28 22:34:09 by adjoly #+# #+# */ -/* Updated: 2024/03/28 22:36:50 by adjoly ### ########.fr */ +/* Updated: 2024/03/30 11:58:39 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,9 +17,10 @@ void ft_freearr(char **arr) char **tmp; tmp = arr; - while(*tmp) + while(tmp && *tmp) { free(*tmp); tmp++; } + free(arr); }