Exemplo n.º 1
0
int			fpf_check(t_flag *f, va_list *ap)
{
	fpf_check_initialize(f);
	while (f->frmt[f->ndx] == '#' || f->frmt[f->ndx] == '0'
		|| f->frmt[f->ndx] == '-' || f->frmt[f->ndx] == '+'
		|| f->frmt[f->ndx] == ' ' || f->frmt[f->ndx] == 'h'
		|| f->frmt[f->ndx] == 'l' || f->frmt[f->ndx] == 'j'
		|| f->frmt[f->ndx] == 'z' || f->frmt[f->ndx] == '.'
		|| f->frmt[f->ndx] == '*' || fpf_isdigit(f->frmt[f->ndx]))
	{
		fpf_check_flag(f);
		fpf_check_width(f, ap);
		fpf_check_precision(f, ap);
		fpf_check_modifier(f);
	}
	if (f->ndx == fpf_strlen(f->frmt))
		return (-1);
	return (0);
}
Exemplo n.º 2
0
static int				unsigned_helper(PF *argument)
{
	ssize_t				len;
	int					nullstr;

	if (!argument->arg)
		return (-1);
	len = (ssize_t)fpf_strlen(argument->arg);
	nullstr = (len == 1 && argument->arg[0] == '0') ? 0 : 1;
	if (argument->flags[2] == 1)
	{
		if (argument->spec == 'o' || argument->spec == 'O')
		{
			if (argument->flags[0] <= len && argument->arg[0] != '0')
				argument->flags[0] = len + 1;
		}
		else if (argument->spec == 'x' && nullstr != 0)
			return (fpf_print_number(argument, "0x"));
		else if (argument->spec == 'X' && nullstr != 0)
			return (fpf_print_number(argument, "0X"));
	}
	return (fpf_print_number(argument, ""));
}