void ft_printf_add_width(t_pf *list) { unsigned char *n_str; int i; i = 0; n_str = (unsigned char*)malloc(list->width); if (list->minus == 1) ft_printf_flag_minus(list, n_str); else { while (i < (list->width - list->len)) { n_str[i] = ' '; i++; } while (i < list->width) { n_str[i] = list->buff[i - (list->width - list->len)]; i++; } n_str[i] = '\0'; list->len = list->width; free(list->buff); list->buff = n_str; } }
int ft_printf_o_z(t_cmd s, va_list arg) { int wc; size_t nb; wc = 0; nb = va_arg(arg, size_t); s.prcsn = ft_get_stoct_width(nb) > s.max_field_conv ? 0 : s.prcsn; wc += ft_printf_is_hash_op(nb, &s, ft_get_stoct_width(nb)); ft_printf_right_justification_num(s, &wc, ft_get_stoct_width(nb)); ft_printf_flag_null(s, &wc, ft_get_stoct_width(nb)); ft_printf_flag_hash_o(&wc, ft_get_stoct_width(nb), s); ft_printf_flag_prcsn_num(s, &wc, ft_get_stoct_width(nb)); ft_printf_putoct_inc_wc(nb, &wc); ft_printf_flag_minus(s, &wc); return (wc); }
int ft_printf_d_no(t_cmd s, va_list arg) { int wc; int nb; wc = 0; nb = va_arg(arg, int); wc = nb < 0 ? wc + 1 : wc; ft_printf_flag_space(nb, &wc, ft_get_nb_width(nb), s); ft_printf_right_justification_num(s, &wc, ft_get_nb_width(nb)); if (nb < 0) { write(1, "-", 1); nb *= -1; } s.prcsn = ft_get_nb_width(nb) > s.max_field_conv ? 0 : s.prcsn; ft_printf_flag_null(s, &wc, ft_get_nb_width(nb)); ft_printf_flag_prcsn_num(s, &wc, ft_get_nb_width(nb)); ft_putnbr(nb); wc += ft_get_nb_width(nb); ft_printf_flag_minus(s, &wc); return (wc); }