Beispiel #1
0
void			add_conv_string(t_string *t, char *s)
{
	size_t	len;

	load(t);
	len = ft_strlen(s);
	if (t->zero > 0 || !ft_strcmp(t->sub_num, ".0") \
		|| !ft_strcmp(t->sub_num, "0.0"))
	{
		s_trunc(&s, t->zero, t->wtmp);
		len = ft_strlen(s);
	}
	else if (ft_strlen(t->sub_num) > 0 \
		&& t->sub_num[ft_strlen(t->sub_num) - 1] == '.' && t->is_big != 5)
	{
		s = ft_strnew(0);
		len = 0;
	}
	if ((t->space -= len) < 0)
		return ((void)add_string(t, s, 0));
	if (t->left == 0)
		fill_character(t, t->pad);
	add_string(t, s, 0);
	if (t->left)
		fill_character(t, t->pad);
}
Beispiel #2
0
void			add_conv_wchar(t_string *t, wchar_t c)
{
	load(t);
	if ((t->space -= 1) < 0)
		return (add_wchar(t, c));
	if (t->left == 0)
		fill_character(t, t->pad);
	add_wchar(t, c);
	if (t->left)
		fill_character(t, t->pad);
}
Beispiel #3
0
static void		s_not_left(void)
{
	sgt_printf()->flags.width -= ft_strlen(sgt_printf()->work_buffer)
		+ sgt_printf()->flags.prec;
	s_if_flags();
	if (sgt_printf()->flags.pad == ' ')
	{
		fill_character(' ');
		sgt_printf()->flags.width = 0;
	}
	s_flags();
	s_alt();
	sgt_printf()->flags.width += sgt_printf()->flags.prec;
	fill_character('0');
	add_string(sgt_printf()->work_buffer);
}