From 47442d9f526c7118b56c7cd963862256a3154a54 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky <pfalcon@users.sourceforge.net> Date: Wed, 13 Apr 2016 11:46:18 +0300 Subject: [PATCH] lib/utils/printf: Rework overriding printer of DEBUG_printf(). By default it uses mp_plat_print, but a port may override it to another value with MICROPY_DEBUG_PRINTER_DEST. --- esp8266/mpconfigport.h | 1 + lib/utils/printf.c | 11 ++++------- unix/mpconfigport.h | 4 +++- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/esp8266/mpconfigport.h b/esp8266/mpconfigport.h index 764ce7667..7d5914191 100644 --- a/esp8266/mpconfigport.h +++ b/esp8266/mpconfigport.h @@ -9,6 +9,7 @@ #define MICROPY_EMIT_INLINE_THUMB (0) #define MICROPY_MEM_STATS (0) #define MICROPY_DEBUG_PRINTERS (1) +#define MICROPY_DEBUG_PRINTER_DEST mp_debug_print #define MICROPY_ENABLE_GC (1) #define MICROPY_STACK_CHECK (1) #define MICROPY_REPL_EVENT_DRIVEN (0) diff --git a/lib/utils/printf.c b/lib/utils/printf.c index 136056a3e..308525b6e 100644 --- a/lib/utils/printf.c +++ b/lib/utils/printf.c @@ -59,14 +59,11 @@ int vprintf(const char *fmt, va_list ap) { int DEBUG_printf(const char *fmt, ...) { va_list ap; va_start(ap, fmt); - #if defined(MICROPY_DEBUG_STDERR) && MICROPY_DEBUG_STDERR - // Printing debug to stderr may give a chance tests which - // check stdout to pass, etc. - extern const mp_print_t mp_stderr_print; - int ret = mp_vprintf(&mp_stderr_print, fmt, ap); - #else - int ret = mp_vprintf(&mp_plat_print, fmt, ap); + #ifndef MICROPY_DEBUG_PRINTER_DEST + #define MICROPY_DEBUG_PRINTER_DEST mp_plat_print #endif + extern const mp_print_t MICROPY_DEBUG_PRINTER_DEST; + int ret = mp_vprintf(&MICROPY_DEBUG_PRINTER_DEST, fmt, ap); va_end(ap); return ret; } diff --git a/unix/mpconfigport.h b/unix/mpconfigport.h index daaac4395..1a6eb6f8d 100644 --- a/unix/mpconfigport.h +++ b/unix/mpconfigport.h @@ -51,7 +51,9 @@ #define MICROPY_MALLOC_USES_ALLOCATED_SIZE (1) #define MICROPY_MEM_STATS (1) #define MICROPY_DEBUG_PRINTERS (1) -#define MICROPY_DEBUG_STDERR (1) +// Printing debug to stderr may give tests which +// check stdout a chance to pass, etc. +#define MICROPY_DEBUG_PRINTER_DEST mp_stderr_print #define MICROPY_USE_READLINE_HISTORY (1) #define MICROPY_HELPER_REPL (1) #define MICROPY_REPL_EMACS_KEYS (1) -- GitLab