From e947183aab281ce185e5ec29d0638994eed40d01 Mon Sep 17 00:00:00 2001 From: David GAILLETON Date: Sat, 17 Jan 2026 16:36:59 +0100 Subject: [PATCH] FIX: parsing cleanup --- flags/algorithms_sort.c | 7 +---- flags/flag.c | 57 ++++-------------------------------- includes/flags.h | 6 ++-- main.c | 12 ++------ parsing/checker.c | 64 ----------------------------------------- parsing/parsing.c | 21 ++++++++++++++ 6 files changed, 31 insertions(+), 136 deletions(-) delete mode 100644 parsing/checker.c diff --git a/flags/algorithms_sort.c b/flags/algorithms_sort.c index 8b0bfc6..c06ed73 100644 --- a/flags/algorithms_sort.c +++ b/flags/algorithms_sort.c @@ -46,14 +46,10 @@ void complex(t_stacks *stacks) radix(stacks); } -void adaptive(t_stacks *stacks, char **tab) +void adaptive(t_stacks *stacks) { - int i; float disorder; - i = 0; - while (!ft_isdigit(tab[i][0]) && tab[i]) - i++; disorder = stacks->disorder; if (disorder < 0.2) simple(stacks); @@ -61,5 +57,4 @@ void adaptive(t_stacks *stacks, char **tab) medium(stacks); else complex(stacks); - return ; } diff --git a/flags/flag.c b/flags/flag.c index e6f386a..c84cb0d 100644 --- a/flags/flag.c +++ b/flags/flag.c @@ -26,61 +26,14 @@ int calcul_mod(int argc, char **argv) return (mod); } -int pos_flag(char **argv, int mod) +void flags(t_stacks *stacks) { - if (mod == 1 || mod == 4) - { - if (!ft_strncmp(argv[1], "--bench", 20)) - return (1); - } - else if (mod == 2 || mod == 5) - { - if (!ft_strncmp(argv[1], "--bench", 20)) - return (1); - else - return (2); - } - return (0); -} - -int pos_bench(char **argv, int mod) -{ - if (mod == 1 || mod == 4) - { - if (ft_strncmp(argv[1], "--bench", 20)) - return (1); - } - else if (mod == 2 || mod == 5) - { - if (ft_strncmp(argv[1], "--bench", 20)) - return (1); - else - return (2); - } - return (0); -} - -void flags(int pos, int pos_b, char **argv, t_stacks *stacks) -{ - if (ft_strncmp(argv[pos], "--simple", 30) && pos > 0) - { - stacks->algo = 1; + if (stacks->algo == 1) simple(stacks); - } - else if (ft_strncmp(argv[pos], "--medium", 30) && pos > 0) - { - stacks->algo = 2; + if (stacks->algo == 1) medium(stacks); - } - else if (ft_strncmp(argv[pos], "--complex", 30) && pos > 0) - { - stacks->algo = 3; + if (stacks->algo == 1) complex(stacks); - } - else if (ft_strncmp(argv[pos], "--adaptive", 30) && pos > 0) - adaptive(stacks, argv); else - adaptive(stacks, argv); - if (pos_b > 0) - stacks->bench = 1; + adaptive(stacks); } diff --git a/includes/flags.h b/includes/flags.h index 7e2cc2b..ac0e262 100644 --- a/includes/flags.h +++ b/includes/flags.h @@ -16,10 +16,8 @@ void simple(t_stacks *stacks); void medium(t_stacks *stacks); void complex(t_stacks *stacks); -void adaptive(t_stacks *stacks, char **tab); -void flags(int pos, int pos_b, char **argv, t_stacks *stacks); -int pos_bench(char **argv, int mod); -int pos_flag(char **argv, int mod); +void adaptive(t_stacks *stacks); +void flags(t_stacks *stacks); int calcul_mod(int argc, char **argv); void print_bench(t_stacks *stacks); diff --git a/main.c b/main.c index 0accbde..9551759 100644 --- a/main.c +++ b/main.c @@ -27,16 +27,8 @@ static int push_swap(char **tab, int len, int mod) if (!stacks) return (0); indexer(stacks); - if (check_order(stacks->a)) - { - flags(0, pos_bench(tab, mod), tab, stacks); - if (stacks->bench == 1) - print_bench(stacks); - free_all(stacks); - return (0); - } - stacks->disorder = compute_disorder(tab, wich_mod(mod)); - flags(pos_flag(tab, mod), pos_bench(tab, mod), tab, stacks); + if (!check_order(stacks->a)) + flags(stacks); if (stacks->bench == 1) print_bench(stacks); free_all(stacks); diff --git a/parsing/checker.c b/parsing/checker.c deleted file mode 100644 index 4e44e87..0000000 --- a/parsing/checker.c +++ /dev/null @@ -1,64 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* checker.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: dgaillet +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2026/01/08 12:37:12 by dgaillet #+# #+# */ -/* Updated: 2026/01/08 13:17:36 by dgaillet ### ########lyon.fr */ -/* */ -/* ************************************************************************** */ - -#include "push_swap.h" -#include "parsing.h" - -static int check_digits(char *str) -{ - int i; - - i = 0; - while (str[i]) - { - if (!ft_isdigit(str[i]) && str[i] != ' ') - return (0); - i++; - } - return (1); -} - -static int check_flags(char *str) -{ - if (!ft_strncmp("--simple", str, ft_strlen(str))) - return (1); - else if (!ft_strncmp("--medium", str, ft_strlen(str))) - return (1); - else if (!ft_strncmp("--complex", str, ft_strlen(str))) - return (1); - else if (!ft_strncmp("--adaptative", str, ft_strlen(str))) - return (1); - return (0); -} - -int checker(int argc, char **argv) -{ - int i; - int methods_flag; - int bench; - - bench = 0; - methods_flag = 0; - i = 0; - while (++i < argc) - { - if (check_flags(argv[1]) && !methods_flag) - methods_flag = 1; - else if (!ft_strncmp("--bench", argv[1], ft_strlen(argv[1])) && !bench) - bench = 1; - else if (check_digits(argv[1])) - continue ; - else - return (0); - } - return (1); -} diff --git a/parsing/parsing.c b/parsing/parsing.c index 68ddb8c..71f0c8e 100644 --- a/parsing/parsing.c +++ b/parsing/parsing.c @@ -65,6 +65,25 @@ static void set_t_stacks(t_stacks *stacks) stacks->rrr = 0; } +static void set_flags(int argc, char **argv, t_stacks *stacks) +{ + int i; + + i = 1; + while (i < argc) + { + if (ft_strncmp(argv[i], "--simple", ft_strlen(argv[i]))) + stacks->algo = 1; + else if (ft_strncmp(argv[i], "--medium", ft_strlen(argv[i]))) + stacks->algo = 2; + else if (ft_strncmp(argv[i], "--complex", ft_strlen(argv[i]))) + stacks->algo = 3; + if (ft_strncmp(argv[i], "--bench", ft_strlen(argv[i]))) + stacks->bench = 1; + i++; + } +} + t_stacks *init_stacks(int argc, char **argv, int mod) { t_stacks *stacks; @@ -81,5 +100,7 @@ t_stacks *init_stacks(int argc, char **argv, int mod) return (NULL); } stacks->a = a; + set_flags(argc, argv, stacks); + stacks->disorder = compute_disorder(argv, wich_mod(mod)); return (stacks); }