Exemple #1
0
void	ft_check_conv(t_printf *s, const char *format, va_list ap)
{
	s->i++;
	ft_setflags(s);
	while (ft_isflag(&s->i, format))
	{
		ft_check_flags(s, format, ap);
	}
	if (ft_isconv(s->i, format))
	{
		if (format[s->i] == '%')
			ft_putpercent(s);
		else if (format[s->i] == 'c')
			ft_putchar_pf(ap, s);
		else if (format[s->i] == 's' || format[s->i] == 'i')
			ft_putstr_pf(ap, s);
		else if (format[s->i] == 'd')
			ft_which_digit(ap, s);
		else if (format[s->i] == 'x')
			ft_which_hexa_min(ap, s);
		else if (format[s->i] == 'X')
			ft_which_hexa_maj(ap, s);
		else if (format[s->i] == 'o')
			ft_put_octa(ap, s);
		s->i++;
	}
}
Exemple #2
0
const char	*ft_check_conversion(const char *format, va_list ap)
{
	t_flags		flags;

	ft_bzero(&flags, sizeof(flags));
	flags.preci = -1;
	while (ft_is_prefix(*format) == 1)
	{
		format = ft_check_flags(format, &flags);
		format = ft_check_field(format, &flags);
		format = ft_check_preci(format, &flags);
		format = ft_check_modif(format, &flags);
	}
	ft_do_conversion(*format, &flags, ap);
	return (format);
}