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++; } }
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); }