Deleted Added
full compact
38c38
< __FBSDID("$FreeBSD: head/lib/libstand/printf.c 185037 2008-11-18 00:01:16Z delphij $");
---
> __FBSDID("$FreeBSD: head/lib/libstand/printf.c 209837 2010-07-08 22:21:18Z jkim $");
162c162
< int jflag, tflag, zflag;
---
> int cflag, hflag, jflag, tflag, zflag;
165c165
< int retval = 0;
---
> int stop = 0, retval = 0;
182c182
< while ((ch = (u_char)*fmt++) != '%') {
---
> while ((ch = (u_char)*fmt++) != '%' || stop) {
190c190
< jflag = 0; tflag = 0; zflag = 0;
---
> cflag = 0; hflag = 0; jflag = 0; tflag = 0; zflag = 0;
237c237
< num = va_arg(ap, int);
---
> num = (u_int)va_arg(ap, int);
280a281,287
> case 'h':
> if (hflag) {
> hflag = 0;
> cflag = 1;
> } else
> hflag = 1;
> goto reswitch;
299a307,310
> else if (hflag)
> *(va_arg(ap, short *)) = retval;
> else if (cflag)
> *(va_arg(ap, char *)) = retval;
370a382,385
> else if (hflag)
> num = (u_short)va_arg(ap, int);
> else if (cflag)
> num = (u_char)va_arg(ap, int);
384a400,403
> else if (hflag)
> num = (short)va_arg(ap, int);
> else if (cflag)
> num = (char)va_arg(ap, int);
392c411,412
< p = ksprintn(nbuf, num, base, &tmp, upper);
---
> p = ksprintn(nbuf, num, base, &n, upper);
> tmp = 0;
402,404c422,428
< if (!ladjust && width && (width -= tmp) > 0)
< while (width--)
< PCHAR(padc);
---
> if (!ladjust && padc == '0')
> dwidth = width - tmp;
> width -= tmp + MAX(dwidth, n);
> dwidth -= n;
> if (!ladjust)
> while (width-- > 0)
> PCHAR(' ');
414a439,440
> while (dwidth-- > 0)
> PCHAR('0');
419,421c445,447
< if (ladjust && width && (width -= tmp) > 0)
< while (width--)
< PCHAR(padc);
---
> if (ladjust)
> while (width-- > 0)
> PCHAR(' ');
426a453,459
> /*
> * Since we ignore an formatting argument it is no
> * longer safe to obey the remaining formatting
> * arguments as the arguments will no longer match
> * the format specs.
> */
> stop = 1;