Exemplo n.º 1
0
void	ft_putoctal(unsigned int n)
{
	if (n >= 8)
	{
		ft_putoctal(n / 8);
		ft_putoctal(n % 8);
	}
	else
	{
		ft_putchar(48 + n);
	}
}
Exemplo n.º 2
0
int			print_precision_o(unsigned int nb, int size, t_env *env)
{
	int		i;

	i = 0;
	while (i < (env->precision->value - size))
	{
		ft_putchar('0');
		i++;
	}
	ft_putoctal(nb);
	return (i);
}
Exemplo n.º 3
0
static void	ft_putoctal(unsigned int nb)
{
	size_t	beg;
	size_t	end;
	char	*base;

	base = "01234567";
	end = nb % 8;
	beg = (nb - end) / 8;
	if (beg)
		ft_putoctal(beg);
	ft_putchar(base[end]);
}
Exemplo n.º 4
0
void					print_octal(va_list *valist, t_spec_flags *opts)
{
	uintmax_t	octal;
	int			octlen;

	octal = printf_uintcast(valist, opts);
	octlen = MAX((int)opts->precision, ft_octlen(octal) + opts->sharp);
	if (!opts->minus)
		ft_putnchar(opts->width - octlen, opts->zero ? '0' : ' ');
	ft_putnchar(opts->precision - ft_octlen(octal) - opts->sharp, '0');
	if (opts->sharp && octal != 0)
		ft_putchar('0');
	if (!opts->precision_set || octal != 0)
		ft_putoctal(octal);
	if (opts->minus)
		ft_putnchar(opts->width - octlen, ' ');
}