Path: blob/master/philo_bonus/ft_parsing_bonus.c
882 views
/* ************************************************************************** */1/* */2/* ::: :::::::: */3/* ft_parsing_bonus.c :+: :+: :+: */4/* +:+ +:+ +:+ */5/* By: yabtaour <[email protected]> +#+ +:+ +#+ */6/* +#+#+#+#+#+ +#+ */7/* Created: 2022/05/23 00:06:59 by yabtaour #+# #+# */8/* Updated: 2022/05/23 00:07:01 by yabtaour ### ########.fr */9/* */10/* ************************************************************************** */11#include "philosophers_bonus.h"1213int ft_check_args(char **arguments)14{15int i;16int j;1718i = 0;19while (arguments[i])20{21j = 0;22while (arguments[i][j])23{24if ((arguments[i][j] != '+') && (arguments[i][j] > '9'25|| arguments[i][j] < '0'))26{27free_split(arguments);28return (0);29}30j++;31}32i++;33}34return (1);35}3637int ft_check_plus(char **arguments)38{39int i;40int j;4142i = 0;43while (arguments[i])44{45j = 0;46while (arguments[i][j])47{48if (arguments[i][j] == '+')49{50if (arguments[i][j + 1] > '9' || arguments[i][j + 1] < '0')51{52free_split(arguments);53return (0);54}55}56j++;57}58i++;59}60return (1);61}6263int ft_check_max(char **arg)64{65int i;66int j;67int found;6869i = 1;70j = 0;71found = 0;72while (arg[i])73{74j = 0;75while (arg[i][j])76{77if (found != 1 && ft_d(arg[i][j]))78found = 1;79if (found == 1 && arg[i][j] == ' ' && ft_d(arg[i][j + 1]))80return (0);81j++;82}83i++;84if (found == 1)85found = 0;86else87return (0);88}89return (1);90}9192int ft_parsing(t_data *data)93{94data->args = ft_join_args(data->argv, data->argc);95if (!data->args)96return (0);97data->arguments = ft_split(data->args, ' ');98if (!data->arguments)99{100free(data->args);101return (0);102}103free(data->args);104if (!ft_check_args(data->arguments))105return (0);106if (!ft_check_plus(data->arguments))107return (0);108if (!ft_check_max(data->arguments))109return (0);110free_split(data->arguments);111return (1);112}113114115