aboutsummaryrefslogtreecommitdiff
path: root/lib/mprintf.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2007-11-20 10:03:33 +0000
committerDaniel Stenberg <daniel@haxx.se>2007-11-20 10:03:33 +0000
commit2f928797cf18d41d4ae0114958cfedac3fcd6c13 (patch)
treeb90f1358face05c76a91e478ed04cf3feec9c70e /lib/mprintf.c
parentf3f06e823c7bc912094f5a7b63bf480fc191e211 (diff)
fix the treatment of the parameter-based precision, as in "%.*s%s" as
previously the second %s would wrongly get the numerical argument that is used for the variable precision for the first %s...
Diffstat (limited to 'lib/mprintf.c')
-rw-r--r--lib/mprintf.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/mprintf.c b/lib/mprintf.c
index b3fc33922..bba1a6481 100644
--- a/lib/mprintf.c
+++ b/lib/mprintf.c
@@ -686,8 +686,11 @@ static int dprintf_formatf(
width = p->width;
/* pick up the specified precision */
- if(p->flags & FLAGS_PRECPARAM)
+ if(p->flags & FLAGS_PRECPARAM) {
prec = vto[p->precision].data.num;
+ param_num++; /* since the precision is extraced from a parameter, we
+ must skip that to get to the next one properly */
+ }
else if(p->flags & FLAGS_PREC)
prec = p->precision;
else