コード例 #1
0
ファイル: print_p.c プロジェクト: Truphino/ft_printf
int			print_p(t_data *data, va_list arg)
{
	ft_printchar('0', data);
	ft_printchar('x', data);
	data->len_mod = 8;
	return (print_x(data, arg));
}
コード例 #2
0
ファイル: ft_printwchar.c プロジェクト: Truphino/ft_printf
void		ft_printwchar(wchar_t c, t_data *data)
{
	if (c <= 127)
		ft_printchar(c, data);
	else if (c <= 2047)
	{
		ft_printchar(((c >> 6) & 31) | 192, data);
		ft_printchar((c & 63) | 128, data);
	}
コード例 #3
0
ファイル: print_s.c プロジェクト: Truphino/ft_printf
int				print_s(t_data *data, va_list arg)
{
	int			i;
	char		*str;

	if (data->len_mod == 8)
		return (print_ls(data, arg));
	str = va_arg(arg, char *);
	if (!str)
	{
		ft_printstr("(null)", data);
		return (1);
	}
	if (data->prec != -1)
		i = data->field - ft_min(ft_strlen(str), data->prec);
	else
		i = data->field - ft_strlen(str);
	if ((data->flag & 4) != 0)
		ft_printstr(str, data);
	while (i-- > 0)
		ft_printchar(' ', data);
	if ((data->flag & 4) == 0)
		ft_printstr(str, data);
	return (1);
}
コード例 #4
0
ファイル: print_x.c プロジェクト: Truphino/push_swap
int			print_lx(t_data *data, va_list arg)
{
    char	*nb;
    int		i;
    char	*mod;

    nb = what_uconv(arg, data, 16);
    if (ft_strcmp(nb, "0") == 0 && data->prec == 0)
        ft_str_empty(nb);
    mod = ((data->flag & 1) && ft_strcmp(nb, "0") != 0) ? "0X" : NULL;
    ft_strupper(nb);
    if (nb[0] == '-')
        i = data->field - ft_max(ft_strlen(nb) + ft_strnlen(mod),
                                 data->prec + 1);
    else
        i = data->field - ft_max(ft_strlen(nb), data->prec);
    if (data->prec != -1 && ((data->flag & 2) != 0))
        data->flag = data->flag - 2;
    if ((data->flag & 4) != 0)
        print_nb_str(nb, data, mod);
    while ((i-- > 0) && (data->flag & 2) == 0)
        ft_printchar(' ', data);
    if ((data->flag & 4) == 0)
        print_nb_str(nb, data, mod);
    free(nb);
    return (1);
}
コード例 #5
0
ファイル: ft_inner.c プロジェクト: Dakalo36/21sh
static	int	specifier(va_list ap, char scf)
{
	if (scf == 'c' || scf == 'C')
		return (ft_printchar(ap));
	if (scf == 's' || scf == 'S')
		return (ft_printstr(ap));
	if (scf == 'd' || scf == 'i')
		return (ft_printdec(ap));
	if (scf == 'u' || scf == 'U')
		return (ft_printnbr(ap, scf));
	if (scf == 'x' || scf == 'X' || scf == 'p')
		return (ft_printnbr(ap, scf));
	if (scf == 'o' || scf == 'O')
		return (ft_printnbr(ap, scf));
	else
		return (0);
}
コード例 #6
0
ファイル: print_s.c プロジェクト: Truphino/ft_printf
int				print_ls(t_data *data, va_list arg)
{
	int			i;
	wchar_t		*str;

	str = va_arg(arg, wchar_t *);
	if (!str)
	{
		ft_printstr("(null)", data);
		return (1);
	}
	i = data->field - sizewstr(str);
	if ((data->flag & 4) != 0)
		ft_printwstr(str, data);
	while (i-- > 0)
		ft_printchar(' ', data);
	if ((data->flag & 4) == 0)
		ft_printwstr(str, data);
	return (1);
}