py: Make REPL printing function print repr of object, not str.
Addresses issue #1014.
diff --git a/py/modbuiltins.c b/py/modbuiltins.c
index d537d49..b876ca3 100644
--- a/py/modbuiltins.c
+++ b/py/modbuiltins.c
@@ -442,7 +442,17 @@
STATIC mp_obj_t mp_builtin___repl_print__(mp_obj_t o) {
if (o != mp_const_none) {
- mp_builtin_print(1, &o, (mp_map_t*)&mp_const_empty_map);
+ #if MICROPY_PY_IO
+ extern mp_uint_t mp_sys_stdout_obj; // type is irrelevant, just need pointer
+ pfenv_t pfenv;
+ pfenv.data = &mp_sys_stdout_obj;
+ pfenv.print_strn = (void (*)(void *, const char *, mp_uint_t))mp_stream_write;
+ mp_obj_print_helper((void (*)(void *env, const char *fmt, ...))pfenv_printf, &pfenv, o, PRINT_REPR);
+ mp_stream_write(&mp_sys_stdout_obj, "\n", 1);
+ #else
+ mp_obj_print(o, PRINT_REPR);
+ printf("\n");
+ #endif
}
return mp_const_none;
}