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;
	}
}
Beispiel #2
0
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);
}
Beispiel #3
0
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);
}