Пример #1
0
void		ft_printchar(char c, t_stock *stock)
{
	int		size;
	int		spacenum;

	size = 1;
	spacenum = 0;
	if (stock->size_min > 2147483647)
		stock->size_min = 0;
	if (stock->size_min > size)
		spacenum = stock->size_min - size;
	if ((stock->flags & 1) == 1)
	{
		ft_putchar(c);
		ft_putspace(spacenum);
	}
	else
	{
		if ((stock->flags & 2) == 0)
			ft_putspace(spacenum);
		else
			ft_putzero(spacenum, stock, 'c');
		ft_putchar(c);
	}
	stock->i += spacenum + 1;
}
Пример #2
0
void	ft_printoctal(uintmax_t nbr, t_stock *stock)
{
	int		spacenum;
	int		size;

	spacenum = 0;
	size = ft_nbrsizeoctal(nbr);
	if (stock->size_min > size && stock->size_min <= 2147483647)
		spacenum = stock->size_min - size;
	if ((stock->flags & 16) != 0)
		spacenum -= 1;
	if ((stock->flags & 1) == 0)
	{
		if ((stock->flags & 2) == 0)
			ft_putspace(spacenum);
		else
			ft_putzero(spacenum, stock, 'c');
		ft_printadd(stock, 'o');
		ft_converttooctal(nbr);
	}
	else
	{
		ft_printadd(stock, 'o');
		ft_converttooctal(nbr);
		ft_putspace(spacenum);
	}
	stock->i += spacenum + size;
}
Пример #3
0
static void		before_nbr(t_env *env)
{
	if (FNDFLAGS[1] == -1 && NBR != -1 && NBR > ft_nbrlen((int)ARG))
	{
		if (FNDFLAGS[3] == 1 && (int)ARG > 0)
			NBR = NBR - 1;
		NBR = NBR - ft_nbrlen((int)ARG);
		RET = RET + ft_putspace(NBR);
	}
	else if (FNDFLAGS[4] == 1 && FNDFLAGS[3] == -1 && ((int)ARG >= 0))
	{
		RET = RET + ft_putchar(' ');
		NBR = NBR - 1;
	}
	if ((FNDFLAGS[3] == 1) && ((int)ARG >= 0))
	{
		if (env->putneg != 1)
		{
			RET = RET + ft_putchar('+');
			NBR = NBR - 1;
		}
	}
	if (NBR != -1 && NBR > ft_nbrlen((int)ARG))
	{
		if (FNDFLAGS[1] == 1 && FNDFLAGS[2] != 1)
			ft_putzero(env);
	}
}
Пример #4
0
static void		after_nbr(t_env *env)
{
	if ((FNDFLAGS[4] == 1 && NBR == -1))
		if ((int)ARG > 0)
			RET = RET + ft_putchar(' ');
	if (NBR != -1 && NBR > ft_nbrlen((int)ARG))
	{
		if (FNDFLAGS[2] == -1 && (FNDFLAGS[3] == 1) && ((int)ARG > 0))
			NBR = NBR - 1;
		if (FNDFLAGS[1] == 1 && FNDFLAGS[2] != 1)
			ft_putzero(env);
		else
			RET = RET + ft_putspace(NBR - ARGLEN);
	}
}