/* ************************************************************************** */ /* LE - / */ /* / */ /* ft_get_colors.c .:: .:/ . .:: */ /* +:+:+ +: +: +:+:+ */ /* By: rbousset +:+ +: +: +:+ */ /* #+# #+ #+ #+# */ /* Created: 2020/02/02 17:19:25 by rbousset #+# ## ## #+# */ /* Updated: 2020/02/02 17:19:25 by rbousset ### #+. /#+ ###.fr */ /* / */ /* / */ /* ************************************************************************** */ #include #include #include static int ft_check_digits(const char *word) { size_t i; i = 0; while (ft_isdigit(word[i])) i++; if (i != ft_strlen(word)) return (-1); return (0); } int ft_get_f_color(char **words, t_cub *clist) { char **num; if (!(*words) || !words[1] || words[2]) return (-1); if (!(num = ft_split(words[1], ','))) return (-1); if (!num[0] || !num[1] || !num[2] || num[3] || ft_check_digits(num[0]) || ft_check_digits(num[1]) || ft_check_digits(num[2]) || ft_atoi(num[0]) > 255 || ft_atoi(num[1]) > 255 || ft_atoi(num[2]) > 255) { ft_free_words(num); return (-1); } clist->f_color = ft_atoi(num[0]); clist->f_color *= 1000; clist->f_color += ft_atoi(num[1]); clist->f_color *= 1000; clist->f_color += ft_atoi(num[2]); ft_free_words(num); return (0); } int ft_get_c_color(char **words, t_cub *clist) { char **num; if (!(*words) || ft_strcmp(*words, "C") || !words[1] || words[2]) return (-1); if (!(num = ft_split(words[1], ','))) return (-1); if (!num[0] || !num[1] || !num[2] || num[3] || ft_check_digits(num[0]) || ft_check_digits(num[1]) || ft_check_digits(num[2]) || ft_atoi(num[0]) > 255 || ft_atoi(num[1]) > 255 || ft_atoi(num[2]) > 255) { ft_free_words(num); return (-1); } clist->c_color = ft_atoi(num[0]); clist->c_color *= 1000; clist->c_color += ft_atoi(num[1]); clist->c_color *= 1000; clist->c_color += ft_atoi(num[2]); ft_free_words(num); return (0); }