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); }
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, "")); }