diff --git a/philo/log.c b/philo/log.c index 2395e87..6214505 100644 --- a/philo/log.c +++ b/philo/log.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/07 16:12:20 by adjoly #+# #+# */ -/* Updated: 2024/08/12 19:38:58 by adjoly ### ########.fr */ +/* Updated: 2024/08/13 10:22:30 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,6 +28,8 @@ bool print_err(uint8_t error) printf(ERR_MAX_MEAL); else if (error == 5) printf(ERR_NB_ARG); + else if (error == 6) + printf(ERR_ARG); return (true); } diff --git a/philo/parsing.c b/philo/parsing.c index 00875be..99355dc 100644 --- a/philo/parsing.c +++ b/philo/parsing.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/08 15:30:46 by adjoly #+# #+# */ -/* Updated: 2024/08/12 19:39:43 by adjoly ### ########.fr */ +/* Updated: 2024/08/13 10:32:25 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,6 +14,7 @@ #include "philo_msg.h" bool print_err(uint8_t error); +bool check_args(char **av); bool check_av(char **av) { @@ -85,5 +86,7 @@ t_pdata philo_parse(char **av, int ac) data.philo_nbr = 0; if (!(ac > 4 && ac <= 6)) return (ret_err(data, 5)); + if (check_args(av)) + return (ret_err(data, 6)); return (fill_pdata(av)); } diff --git a/philo/parsing2.c b/philo/parsing2.c new file mode 100644 index 0000000..cddfe82 --- /dev/null +++ b/philo/parsing2.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* parsing2.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/08/13 10:25:34 by adjoly #+# #+# */ +/* Updated: 2024/08/13 10:33:07 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "philo.h" + +int ft_isdigit(int c) +{ + return (c >= '0' && c <= '9'); +} + +bool check_args(char **av) +{ + char **tmp; + char *a; + + tmp = av; + while (*tmp) + { + a = *tmp; + while (*a) + { + if (!ft_isdigit(*a)) + return (true); + a++; + } + tmp++; + } + return (false); +} diff --git a/philo/philo_msg.h b/philo/philo_msg.h index 3b52cd8..fa53ca7 100644 --- a/philo/philo_msg.h +++ b/philo/philo_msg.h @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/07 17:50:46 by adjoly #+# #+# */ -/* Updated: 2024/08/12 17:32:08 by adjoly ### ########.fr */ +/* Updated: 2024/08/13 10:19:13 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,5 +25,6 @@ # define ERR_MAX_SLEEP_TIME "Time to sleep too long < INT_MAX\n" // err 3 # define ERR_MAX_MEAL "Too much meal < 1000\n" // err 4 # define ERR_NB_ARG "Invalid number of args need to be 4 or 5\n" // err 5 +# define ERR_ARG "Invalid argument\n" #endif