| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /* ************************************************************************** */
- /* */
- /* ::: :::::::: */
- /* ft_take_opts.c :+: :+: :+: */
- /* +:+ +:+ +:+ */
- /* By: bchanot <bchanot@student.42.fr> +#+ +:+ +#+ */
- /* +#+#+#+#+#+ +#+ */
- /* Created: 2018/01/04 20:23:10 by bchanot #+# #+# */
- /* Updated: 2018/10/14 03:22:26 by bchanot ### ########.fr */
- /* */
- /* ************************************************************************** */
- #include "libft.h"
- t_bool ft_check_opts(char **tab, const char *opt)
- {
- size_t i;
- if (!tab)
- return (false);
- i = 0;
- while (tab[i])
- {
- if (ft_strlen(opt) > 1)
- {
- if (!ft_strncmp(tab[i], "--", 2) &&
- !ft_strcmp(tab[i] + 2, opt))
- return (true);
- }
- else
- {
- if (ft_strncmp(tab[i], "--", 2))
- {
- if (ft_cptchar(tab[i], *opt) > 0)
- return (true);
- }
- }
- i++;
- }
- return (false);
- }
- static char **ft_get_opts_begin(int ac, char **av, char **tab)
- {
- size_t index;
- int i;
- i = 0;
- index = 0;
- while (i < ac)
- {
- if (av[i][0] == '-')
- {
- if (av[i][1] && av[i][1] == '-' && av[i][2] == 0)
- break ;
- else if (av[i][1])
- {
- tab[index] = ft_strdup(av[i]);
- index++;
- }
- }
- else
- break ;
- i++;
- }
- tab[index] = 0;
- return (tab);
- }
- char **ft_take_opts_begin(int ac, char **av)
- {
- size_t index;
- char **tab;
- int i;
- i = 0;
- index = 0;
- if (ac < 1)
- return (NULL);
- while (i < ac)
- {
- if (av[i][0] == '-')
- {
- if (av[i][1] && av[i][1] == '-' && av[i][2] == 0)
- break ;
- index++;
- }
- else
- break ;
- i++;
- }
- if (!(tab = (char **)ft_memalloc(sizeof(char *) * (index + 1))))
- return (NULL);
- return (ft_get_opts_begin(ac, av, tab));
- }
|