Ejemplo n.º 1
0
int					ft_print_wstr(va_list *list_args, t_args *arg)
{
	wchar_t	*wstr;
	int		ret;

	wstr = ft_wstrdup(va_arg(*list_args, wchar_t *));
	(wstr == NULL) ? wstr = ft_wstrdup(L"(null)") : 0;
	ret = ft_wstrlen(wstr);
	if (ret < arg->precis || arg->val_prec == 0)
	{
		if (ret > arg->precis || ret < arg->field)
		{
			if (arg->val_field && !arg->val_minus && arg->val_z)
				ft_printnchar(arg->field - ret, '0');
			if (arg->val_field && !arg->val_minus && !arg->val_z)
				ft_printnchar(arg->field - ret, ' ');
		}
		ft_putwstr(wstr);
		if (arg->val_field == 1 && arg->val_minus == 1)
			ft_printnchar(arg->field - ret, ' ');
	}
	else
		ret = ft_ret_wstr(arg, wstr);
	free(wstr);
	return (ft_retfield(arg, ret));
}
Ejemplo n.º 2
0
size_t				wstr_conv(va_list *ap, int *i, t_opt *data)
{
	wchar_t			*str;
	long			ret;
	int				minus;

	minus = 0;
	ret = 0;
	if (data)
		str = NULL;
	str = va_arg(*ap, wchar_t*);
	if (!str)
	{
		ret += write(1, "(null)", 6);
		*i = *i + 1;
		return (ret);
	}
	ret += ft_wstrlen(str);
	minus = apply_wminus(data, &ret, str);
	if (minus == 0)
	{
		apply_wminsize(data, &ret);
		ft_putwstr(str);
	}
	*i = *i + 1;
	return (ret);
}
Ejemplo n.º 3
0
static int			ft_printbigs(t_param *ptr, int ret)
{
	if (ft_findflag(ptr, '-') != -1)
		ret += ft_putwstr(ptr->wstring);
	while (ptr->width-- > ft_wstrlen(ptr->wstring))
	{
		if (ft_findflag(ptr, '0') != -1 || ft_findflag(ptr, 'O') != -1)
			ft_putchar('0');
		else
			ft_putchar(' ');
		ret++;
	}
	if (ft_findflag(ptr, '-') == -1)
		ret += ft_putwstr(ptr->wstring);
	return (ret);
}
Ejemplo n.º 4
0
int		putoptswstr(t_opts *opts, wchar_t *wstr)
{
	int	len;

	len = ft_wstrlen(wstr);
	ft_putwstr(wstr);
	freewstr(wstr);
	if (len == 0 && opts->type == 'C')
	{
		ft_putwchar(0);
		return (1);
	}
	return (len);
}
Ejemplo n.º 5
0
static int	precision_handling_minus_ls(t_env *env, wchar_t *s, int precision)
{
	int		size;

	size = 0;
	if (precision >= 0 && precision < (int)ft_strwlen(s))
	{
		size += ft_putwstr_part(s, precision);
		size += print_width_s(env->width->value - precision, env);
	}
	else
	{
		size += ft_putwstr(s);
		size += print_width_s(env->width->value - ft_strwlen(s), env);
	}
	return (size);
}
Ejemplo n.º 6
0
void	ftpf_convert_s(va_list *ap, t_ftpf_env *e)
{
	ftpf_manage_lenmod_s(ap, e);
	ftpf_process_flags(e);
	e->precision = 0;
	ftpf_process_output_rules(e);
	if (!e->neg)
		ftpf_manage_field_width(e);
	if ((!ft_strcmp(e->mod, "l") || e->conversion == 'S') && !(e->isnull))
	{
		ft_putwstr(e->param->ws);
		ft_memdel((void**)&e->param->ws);
	}
	else
	{
		ft_putstr(e->param->s);
		ft_memdel((void**)&e->param->s);
	}
	if (e->neg)
		ftpf_manage_field_width(e);
}
Ejemplo n.º 7
0
int	ft_putwstr_pf(va_list ap, int nbb)
{
	size_t	i;
	wchar_t	*str;

	i = 0;
	str = va_arg(ap, wchar_t *);
	printf("\n%S\n\n", str);
	exit(-1);
	while (i++ < nbb - ft_wcslen(str))
		ft_putchar(' ');
	if (str)
	{
		ft_putwstr(str);
		return (ft_wcslen(str) + i);
	}
	else
	{
		ft_putstr("(null)");
		return (6 + i);
	}
}
Ejemplo n.º 8
0
int		ft_checkbs1a2b(t_numb *e)
{
	int	cnt;

	cnt = 0;
	while ((e->w - e->g) > 0)
	{
		cnt++;
		ft_putchar('0');
		(e->w)--;
	}
	if (e->ss)
	{
		cnt = cnt + ft_putwstr(e->ss);
	}
	else
	{
		ft_putstr("(null)");
		cnt = cnt + 6;
	}
	return (cnt);
}