Example #1
0
int			pf_unsignedint(t_printf *p)
{
	char		*s;
	char		*tmp;
	char		pad;
	int			s_len;

	if (!(s = (PID->precision == 0 && PID->base != 10 && PID->fmt->uim == 0
				? ft_strnew(0)
				: ft_uintmax_to_ascii(PID->fmt->uim, PID->base, PID->xbase))))
		return (-1);
	pad = (PID->f_zero != -1 ? '0' : ' ');
	s_len = ft_strlen(s);
	if (PID->precision > s_len || PID->f_alt == 8)
		if ((s_len = add_prec(&s, PID->precision - s_len, PID->f_alt)) == -1)
			return (-1);
	if (PID->f_alt != -1 && (PID->base == 16 || PID->base == 2))
		if ((s_len = add_alt(&s, PID->xbase, PID->f_alt, p->type)) == -1)
			return (-1);
	if (PID->field_width > s_len &&
			(tmp = ft_strofchars(pad, p->pid->field_width - s_len)))
		if ((s_len = add_fieldwidth(&s, &tmp, p)) == -1)
			return (-1);
	ft_putstr(s);
	free(s);
	return (s_len);
}
Example #2
0
int		convert_unsigned(va_list arg, t_infos *infos)
{
	unsigned long int	u;
	char				*ret;

	u = va_arg(arg, unsigned long int);
	if (infos->modif[0] == 'h' && infos->conv == 'u')
	{
		if (infos->modif[1] == 'h' && infos->conv == 'u')
			u = (unsigned char)u;
		else
			u = (unsigned short)u;
	}
	if (infos->conv == 'u' && is_modif(infos->modif[0]) == 0)
		ret = ft_uitoa((unsigned int)u);
	else
		ret = ft_uitoa_long(u);
	if (u == 0)
		ret = "0";
	if (infos->prec > 0 && (size_t)infos->prec > ft_strlen(ret))
		ret = add_prec(ret, infos->prec);
	if (infos->width > 0 && (size_t)infos->width > ft_strlen(ret))
		ret = add_width(ret, infos->width, infos->flag);
	if (u == 0 && (infos->prec == -2 || infos->prec == -3))
		ret = "";
	ft_putstr(ret);
	return (ft_strlen(ret));
}
Example #3
0
//-------------------------set_next_exception----------------------------------
void SafePointNode::set_next_exception(SafePointNode* n) {
    assert(!n || n->Opcode() == Op_SafePoint, "correct value for next_exception");
    if (len() == req()) {
        if (n != NULL)  add_prec(n);
    } else {
        set_prec(req(), n);
    }
}
Example #4
0
char	*add_octal_conv(t_infos *infos, char *ret, unsigned long int o)
{
	if (o == 0)
		ret = "0";
	if (infos->flag[0] == '#' && o != 0)
		ret = add_sharp_octal(ret);
	if (infos->prec > 0 && (size_t)infos->prec > ft_strlen(ret))
		ret = add_prec(ret, infos->prec);
	if (infos->width > 0 && (size_t)infos->width > ft_strlen(ret))
		ret = add_width(ret, infos->width, infos->flag);
	if (o == 0 && (infos->prec == -2 || infos->prec == -3)
			&& infos->flag[0] != '#')
		ret = "";
	return (ret);
}
Example #5
0
int		convert_int(va_list arg, t_infos *infos)
{
	long long int	integer;
	char			*ret;

	integer = va_arg(arg, long long int);
	if (integer == 0)
		ret = "0";
	ret = define_modif_int(infos, integer);
	ret = add_flag_integer(infos->flag, ret);
	if (infos->prec > 0 && (size_t)infos->prec > ft_strlen(ret))
		ret = add_prec(ret, infos->prec);
	if (infos->width > 0 && (size_t)infos->width > ft_strlen(ret))
		ret = add_width(ret, infos->width, infos->flag);
	if (integer == 0 && (infos->prec == -2 || infos->prec == -3))
		ret = "";
	ft_putstr(ret);
	return (ft_strlen(ret));
}