Exemplo n.º 1
0
void	fill_it(t_flags *flags, int size)
{
	if (flags->optzero && !(flags->prec) && (!(flags->optmin)))
		ft_filler('0', size);
	else
		ft_filler(' ', size);
}
Exemplo n.º 2
0
void	tool2_x_no_flags(t_flags *flags, int size, char *str, int *tab)
{
	ft_filler(' ', flags->width - flags->precision);
	ft_filler('0', flags->precision - size);
	ft_putstr(str);
	tab[1] += flags->width;
}
Exemplo n.º 3
0
void	tool2_x_shap(t_flags *flags, int size, char *str, int *tab)
{
	ft_filler(' ', flags->width - (flags->precision + 2));
	flags->type == 'x' ? ft_putstr("0x") : ft_putstr("0X");
	ft_filler('0', flags->precision - size);
	ft_putstr(str);
	tab[1] += flags->width;
}
Exemplo n.º 4
0
void	print_x_flag_sharp(t_flags *flags, int *tab, char *str)
{
	int size;

	size = ft_strlen(str);
	if (!flags->width && flags->o_point && (!flags->precision ||
		flags->precision == 0))
		return ;
	else if (flags->width && flags->width > (size + 2) && (!flags->precision ||
		flags->precision <= size))
	{
		ft_filler(' ', flags->width - (size + 2));
		flags->type == 'x' ? ft_putstr("0x") : ft_putstr("0X");
		ft_putstr(str);
		tab[1] += flags->width;
	}
	else if (flags->precision && flags->precision > size &&
		(!flags->width || flags->width <= (flags->precision + 2)))
		tool1_x_shap(flags, size, str, tab);
	else if (flags->width && flags->precision &&
		flags->width > (flags->precision + 2) && flags->precision > size)
		tool2_x_shap(flags, size, str, tab);
	else
		tool3_x_shap(flags, size, str, tab);
}
Exemplo n.º 5
0
void	print_x_no_flags(t_flags *flags, int *tab, char *str,
	unsigned long long int value)
{
	int size;

	size = ft_strlen(str);
	if (flags->width && flags->width > size && (!flags->precision ||
	flags->precision <= size))
	{
		ft_filler(' ', flags->width - size);
		ft_putstr(str);
		tab[1] += flags->width;
	}
	else if (flags->precision && flags->precision > size &&
		(!flags->width || flags->width <= flags->precision))
		tool1_x_no_flags(flags, size, str, tab);
	else if (flags->width && flags->precision &&
		flags->width > flags->precision && flags->precision > size)
		tool2_x_no_flags(flags, size, str, tab);
	else if (flags->empty_w == 1 && flags->o_point && (flags->empty_p == 0 ||
		(flags->empty_p == 1 && flags->precision == 0)) && value == 0)
		return ;
	else
	{
		ft_putstr(str);
		tab[1] += size;
	}
}
Exemplo n.º 6
0
void	print_loct(t_flags *flags, int *i, unsigned long long pt, char *str)
{
	int size;

	size = 0;
	pt > 0 && flags->optsharp ? (size += 1) : (size += 0);
	ft_linttoct(pt, str);
	size += ft_strlen(str);
	if (flags->min_size > size + flags->prec)
		ft_filler(' ', flags->min_size - flags->prec);
	if (flags->prec)
	{
		ft_filler('0', flags->prec - size);
		size += flags->prec - size;
	}
	ft_putstr(str);
	if (flags->min_size > flags->prec + size)
		size += flags->min_size - size;
	i[1] += size;
}
Exemplo n.º 7
0
void	print_x_flag_min(t_flags *flags, int *tab, char *str,
	unsigned long long int value)
{
	int size;

	size = ft_strlen(str);
	if (flags->width && flags->width > size && (!flags->precision ||
		flags->precision < size || flags->width > flags->precision))
	{
		if (flags->precision && flags->precision > size)
			ft_filler('0', flags->precision - size);
		ft_putstr(str);
		if (flags->precision && flags->precision > size)
			ft_filler(' ', flags->width - flags->precision);
		else
			ft_filler(' ', flags->width - size);
		tab[1] += flags->width;
	}
	else
		print_x_no_flags(flags, tab, str, value);
}
Exemplo n.º 8
0
void	print_x_flag_zero(t_flags *flags, int *tab, char *str,
	unsigned long long int value)
{
	int size;

	size = ft_strlen(str);
	if (flags->width && !flags->o_point && !flags->precision &&
		flags->width > size)
	{
		ft_filler('0', flags->width - size);
		ft_putstr(str);
		tab[1] += flags->width;
	}
	else
		print_x_no_flags(flags, tab, str, value);
}