#include <unistd.h>

/*
** Copia local de ft_putchar: el enunciado solo permite entregar este archivo.
** Escribe un unico caracter en la salida estandar.
*/
static void	put_char(char c)
{
	write(1, &c, 1);
}

/*
** Imprime un entero sin signo digito a digito.
** Es recursiva para que el digito mas significativo salga primero: primero
** se resuelve el numero dividido entre 10 y despues se escribe el resto.
*/
static void	put_unsigned(unsigned int number)
{
	if (number >= 10)
		put_unsigned(number / 10);
	put_char('0' + number % 10);
}

/*
** Muestra cualquier valor posible de un int.
** El negativo se convierte a unsigned antes de cambiarle el signo: asi
** INT_MIN, que no cabe en un int positivo, tampoco desborda.
*/
void	ft_putnbr(int nb)
{
	if (nb < 0)
	{
		put_char('-');
		put_unsigned(-(unsigned int)nb);
	}
	else
		put_unsigned((unsigned int)nb);
}
