Mercurial > hg > th-libs
changeset 244:59c45e295524
Initialize and check precision.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 16 Feb 2016 16:30:51 +0200 |
parents | 5049c220d2ae |
children | c8595941852b |
files | th_string.c |
diffstat | 1 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/th_string.c Tue Feb 16 16:30:26 2016 +0200 +++ b/th_string.c Tue Feb 16 16:30:51 2016 +0200 @@ -243,7 +243,7 @@ { char padMode = ' ', padChar = 0; BOOL sign = FALSE; - int width = 0, prec = 0; + int width = 0, prec = -1; fmt++; @@ -281,6 +281,7 @@ if (!th_isdigit(*fmt)) goto out; + prec = 0; while (th_isdigit(*fmt)) prec = prec * 10 + (*fmt++ - '0'); } @@ -296,7 +297,7 @@ case 'u': case 'd': - if (padMode != '0' && padMode != '-' && padMode != ' ') + if ((padMode != '0' && padMode != '-' && padMode != ' ') || prec >= 0) goto out; if ((ret = th_vput_itoa(ctx, vputch, va_arg(ap, unsigned int), @@ -306,7 +307,7 @@ case 'x': case 'X': - if (padMode != '0' && padMode != '-' && padMode != ' ') + if ((padMode != '0' && padMode != '-' && padMode != ' ') || prec >= 0) goto out; if ((ret = th_vput_itoa(ctx, vputch, va_arg(ap, unsigned int),