You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by cc...@apache.org on 2016/04/14 04:59:24 UTC
incubator-mynewt-core git commit: Fix for tinyprintf multiple integer
args.
Repository: incubator-mynewt-core
Updated Branches:
refs/heads/develop 4e5462f34 -> 963874bef
Fix for tinyprintf multiple integer args.
This is a fix for the previous tinyprintf fix
(4e5462f341361ed8aa380d31766d95fa8a8107fd). Weird things would happen
when a printf string contained multiple integer format specifiers.
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/963874be
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/963874be
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/963874be
Branch: refs/heads/develop
Commit: 963874befe1c0915fce520a48d3f0809eb5acc37
Parents: 4e5462f
Author: Christopher Collins <cc...@apache.org>
Authored: Wed Apr 13 19:58:14 2016 -0700
Committer: Christopher Collins <cc...@apache.org>
Committed: Wed Apr 13 19:58:14 2016 -0700
----------------------------------------------------------------------
libs/baselibc/src/tinyprintf.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/963874be/libs/baselibc/src/tinyprintf.c
----------------------------------------------------------------------
diff --git a/libs/baselibc/src/tinyprintf.c b/libs/baselibc/src/tinyprintf.c
index d57b2dd..42bd7cd 100644
--- a/libs/baselibc/src/tinyprintf.c
+++ b/libs/baselibc/src/tinyprintf.c
@@ -186,33 +186,33 @@ static unsigned putchw(FILE *putp, struct param *p)
}
static unsigned long long
-intarg(int lng, int sign, va_list va)
+intarg(int lng, int sign, va_list *va)
{
unsigned long long val;
switch (lng) {
case 0:
if (sign) {
- val = va_arg(va, int);
+ val = va_arg(*va, int);
} else {
- val = va_arg(va, unsigned int);
+ val = va_arg(*va, unsigned int);
}
break;
case 1:
if (sign) {
- val = va_arg(va, long);
+ val = va_arg(*va, long);
} else {
- val = va_arg(va, unsigned long);
+ val = va_arg(*va, unsigned long);
}
break;
case 2:
default:
if (sign) {
- val = va_arg(va, long long);
+ val = va_arg(*va, long long);
} else {
- val = va_arg(va, unsigned long long);
+ val = va_arg(*va, unsigned long long);
}
break;
}
@@ -274,25 +274,25 @@ size_t tfp_format(FILE *putp, const char *fmt, va_list va)
goto abort;
case 'u':
p.base = 10;
- ui2a(intarg(lng, 0, va), &p);
+ ui2a(intarg(lng, 0, &va), &p);
written += putchw(putp, &p);
break;
case 'd':
case 'i':
p.base = 10;
- i2a(intarg(lng, 1, va), &p);
+ i2a(intarg(lng, 1, &va), &p);
written += putchw(putp, &p);
break;
case 'x':
case 'X':
p.base = 16;
p.uc = (ch == 'X');
- i2a(intarg(lng, 0, va), &p);
+ ui2a(intarg(lng, 0, &va), &p);
written += putchw(putp, &p);
break;
case 'o':
p.base = 8;
- i2a(intarg(lng, 0, va), &p);
+ ui2a(intarg(lng, 0, &va), &p);
written += putchw(putp, &p);
break;
case 'c':