Пример #1
0
int		ft_put_long(t_param *data, void *nbr)
{
	int		size;
	int		min;

	size = 0;
	min = printf_fill_nbrlen(data, nbr);
	if (!(data->param & PARAM_MI))
		size += printf_fill(min);
	if (!(data->param & PARAM_L))
		size += ft_put_long_sub(data, nbr);
	else if (data->param & PARAM_L)
	{
		if (data->param & PARAM_PL)
			size += printf_putchar('+');
		else if (data->param & PARAM_WH && *(long *)nbr >= 0)
			size += printf_putchar(' ');
		if (data->param & PARAM_D || data->param & PARAM_I)
			size += ft_putlong(*(long *)nbr, 0);
		else if (data->param & PARAM_U)
			size += ft_putlong(*(unsigned long *)nbr, 0);
	}
	if (data->param & PARAM_MI)
		size += printf_fill(min);
	return (size);
}
Пример #2
0
void			ft_putuint(unsigned int nbr)
{
	if (nbr > 9)
	{
		ft_putlong(nbr / 10);
		ft_putlong(nbr % 10);
	}
	else
		ft_putchar(nbr + '0');
}
Пример #3
0
int		ft_put_long_sub(t_param *data, void *nbr)
{
	int		size;

	size = 0;
	if (data->param & PARAM_PL)
		size += printf_putchar('+');
	else if (data->param & PARAM_WH && *(int *)nbr >= 0)
		size += printf_putchar(' ');
	if (data->param & PARAM_D || data->param & PARAM_I)
		size += ft_putlong(*(int *)nbr, 0);
	else if (data->param & PARAM_U)
		size += ft_putlong(*(unsigned int *)nbr, 0);
	return (size);
}
Пример #4
0
void			ft_putlong(long nbr)
{
	if (nbr < 0)
	{
		ft_putchar('-');
		nbr = nbr * -1;
	}
	if (nbr > 9)
	{
		ft_putlong(nbr / 10);
		ft_putlong(nbr % 10);
	}
	else
		ft_putchar(nbr + '0');
}
Пример #5
0
void		ft_putlong(long n)
{
	unsigned long	r;

	r = (unsigned long)n;
	if (n < 0)
	{
		ft_putchar('-');
		r = (unsigned long)-n;
	}
	if (r >= 10)
	{
		ft_putlong(r / 10);
		ft_putlong(r % 10);
	}
	else
		ft_putchar('0' + (char)r);
}
Пример #6
0
int		ft_putlong(long n, int size)
{
	if (n < 0)
	{
		write(1, "-", 1);
		n *= -1;
		size += 1;
	}
	if (n >= 10)
		size = ft_putlong(n / 10, size);
	size += printf_putchar(n % 10 + '0');
	return (size);
}