int handle_o_zero_d(intmax_t d, t_data *t, t_conv *c) { if (t->o_zero && d < 0 && !t->prec && !t->width && return_char(c->b_t_conv, '.')) return (ft_strlen(ft_itoa_ll(d))); else if (d < 0 && t->prec) return (neg_and_prec(d, t)); else if (d == 0 && !t->prec && return_char(c->b_t_conv, '.')) { if (t->width) ft_putchar(' '); return (t->width ? 1 : 0); } else if (t->o_zero && t->width && d < 0 && !t->o_minus) return (c->d ? ft_strlen((ft_itoa_ll(d))) : t->width - ft_strlen(ft_itoa_ll(d)) + 1); else ft_putnbr_ll(d); return (ft_strlen(ft_itoa_ll(d))); }
int handle_width_u(int len, t_data *t, uintmax_t d, t_conv *c) { int i; char ch; int ret; ch = ' '; if (t->o_zero && !t->o_minus) ch = '0'; ret = 0; ret += t->width - len; if (t->prec > len) ret = t->width - (len - (len - t->prec)); i = ret; if (i < 0 || (t->width > t->prec && return_char(c->b_t_conv, '.') && d == 0)) return (0); while (i--) ft_putchar(ch); return (ret); }
void return_input() { return_char(input_char); //vraceni znaku na vstup }