Skip to content

Commit df732bb

Browse files
pfalcondpgeorge
authored andcommitted
pfenv_printf: Properly implement %p format specifier.
Previously, it truncated pointer value to 32 bits on 64-bit systems.
1 parent 1eca328 commit df732bb

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

py/pfenv_printf.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,13 +146,15 @@ int pfenv_vprintf(const pfenv_t *pfenv, const char *fmt, va_list args) {
146146
chrs += pfenv_print_int(pfenv, va_arg(args, int), 1, 10, 'a', flags, fill, width);
147147
break;
148148
case 'x':
149-
case 'p': // ?
150149
chrs += pfenv_print_int(pfenv, va_arg(args, int), 0, 16, 'a', flags, fill, width);
151150
break;
152151
case 'X':
153-
case 'P': // ?
154152
chrs += pfenv_print_int(pfenv, va_arg(args, int), 0, 16, 'A', flags, fill, width);
155153
break;
154+
case 'p':
155+
case 'P': // don't bother to handle upcase for 'P'
156+
chrs += pfenv_print_int(pfenv, va_arg(args, mp_uint_t), 0, 16, 'a', flags, fill, width);
157+
break;
156158
#if MICROPY_PY_BUILTINS_FLOAT
157159
case 'e':
158160
case 'E':

0 commit comments

Comments
 (0)