#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 una combinacion. El separador va delante de todas menos la primera,
** para que la salida no termine en ", ".
*/
static void	print_combination(char a, char b, char c, int first)
{
	if (!first)
	{
		put_char(',');
		put_char(' ');
	}
	put_char(a);
	put_char(b);
	put_char(c);
}

/*
** Tres bucles anidados, uno por digito, con cada digito por delante del
** anterior. Asi no se repite ninguna combinacion y salen en orden.
** La 'a' no pasa de '7' porque detras hacen falta dos digitos mas.
*/
void	ft_print_comb(void)
{
	char	a;
	char	b;
	char	c;
	int		first;

	first = 1;
	a = '0';
	while (a <= '7')
	{
		b = a + 1;
		while (b <= '8')
		{
			c = b + 1;
			while (c <= '9')
			{
				print_combination(a, b, c, first);
				first = 0;
				c++;
			}
			b++;
		}
		a++;
	}
	put_char('\n');
}
