summaryrefslogtreecommitdiffstatshomepage
path: root/py/pfenv_printf.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-11-26 21:17:16 +0200
committerDamien George <damien.p.george@gmail.com>2014-11-27 17:38:03 +0000
commitdf732bb01b5703eb1a7b643b98606358e6911aa5 (patch)
tree1faf41b8bb95caac7c35b29335aff25ed64b8a88 /py/pfenv_printf.c
parent1eca32836d558287b404e84a8364d9088e07695a (diff)
downloadmicropython-df732bb01b5703eb1a7b643b98606358e6911aa5.tar.gz
micropython-df732bb01b5703eb1a7b643b98606358e6911aa5.zip
pfenv_printf: Properly implement %p format specifier.
Previously, it truncated pointer value to 32 bits on 64-bit systems.
Diffstat (limited to 'py/pfenv_printf.c')
-rw-r--r--py/pfenv_printf.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/py/pfenv_printf.c b/py/pfenv_printf.c
index 003314e8f5..c0e826a5d2 100644
--- a/py/pfenv_printf.c
+++ b/py/pfenv_printf.c
@@ -146,13 +146,15 @@ int pfenv_vprintf(const pfenv_t *pfenv, const char *fmt, va_list args) {
chrs += pfenv_print_int(pfenv, va_arg(args, int), 1, 10, 'a', flags, fill, width);
break;
case 'x':
- case 'p': // ?
chrs += pfenv_print_int(pfenv, va_arg(args, int), 0, 16, 'a', flags, fill, width);
break;
case 'X':
- case 'P': // ?
chrs += pfenv_print_int(pfenv, va_arg(args, int), 0, 16, 'A', flags, fill, width);
break;
+ case 'p':
+ case 'P': // don't bother to handle upcase for 'P'
+ chrs += pfenv_print_int(pfenv, va_arg(args, mp_uint_t), 0, 16, 'a', flags, fill, width);
+ break;
#if MICROPY_PY_BUILTINS_FLOAT
case 'e':
case 'E':