case l_intmax_t:
case l_size_t:
case l_longdouble:
+ case l_ptrdiff_t:
return 0;
default:
return -1;
* '-' beats '0'.
*/
if(c->flags & f_left) {
- if(pad && do_pad(s, ' ', pad) < 0) return -1;
if(sign && do_write(s, &sign, 1)) return -1;
if(xform && do_write(s, c->specifier->xform, xform)) return -1;
if(prec && do_pad(s, '0', prec) < 0) return -1;
if(ndigits && do_write(s, digits + dp, ndigits)) return -1;
+ if(pad && do_pad(s, ' ', pad) < 0) return -1;
} else if(c->flags & f_zero) {
if(sign && do_write(s, &sign, 1)) return -1;
if(xform && do_write(s, c->specifier->xform, xform)) return -1;
if(prec && do_pad(s, '0', prec) < 0) return -1;
if(ndigits && do_write(s, digits + dp, ndigits)) return -1;
} else {
+ if(pad && do_pad(s, ' ', pad) < 0) return -1;
if(sign && do_write(s, &sign, 1)) return -1;
if(xform && do_write(s, c->specifier->xform, xform)) return -1;
if(prec && do_pad(s, '0', prec) < 0) return -1;
if(ndigits && do_write(s, digits + dp, ndigits)) return -1;
- if(pad && do_pad(s, ' ', pad) < 0) return -1;
}
return 0;
}
} else
pad = 0;
if(c->flags & f_left) {
- if(pad && do_pad(s, ' ', pad) < 0) return -1;
if(do_write(s, str, len) < 0) return -1;
+ if(pad && do_pad(s, ' ', pad) < 0) return -1;
} else {
- if(do_write(s, str, len) < 0) return -1;
if(pad && do_pad(s, ' ', pad) < 0) return -1;
+ if(do_write(s, str, len) < 0) return -1;
}
return 0;
} else
pad = 0;
if(c->flags & f_left) {
- if(pad && do_pad(s, ' ', pad) < 0) return -1;
if(do_write(s, &ch, 1) < 0) return -1;
+ if(pad && do_pad(s, ' ', pad) < 0) return -1;
} else {
- if(do_write(s, &ch, 1) < 0) return -1;
if(pad && do_pad(s, ' ', pad) < 0) return -1;
+ if(do_write(s, &ch, 1) < 0) return -1;
}
return 0;
}
++ptr;
c->precision = -1;
} else
- return -1;
+ c->precision = 0;
c->flags |= f_precision;
}
/* length modifier */