diff --git a/drivers/console/multi_console.c b/drivers/console/multi_console.c index a68a018e7..e3fb749ba 100644 --- a/drivers/console/multi_console.c +++ b/drivers/console/multi_console.c @@ -6,6 +6,7 @@ #include #include +#include #include @@ -96,10 +97,17 @@ int console_putc(int c) if ((err == ERROR_NO_VALID_CONSOLE) || (ret < err)) err = ret; } - return err; } +int putchar(int c) +{ + if (console_putc(c) == 0) + return c; + else + return EOF; +} + int console_getc(void) { int err = ERROR_NO_VALID_CONSOLE; diff --git a/lib/libc/putchar.c b/lib/libc/putchar.c index 037e28ac4..3472b2436 100644 --- a/lib/libc/putchar.c +++ b/lib/libc/putchar.c @@ -6,15 +6,9 @@ #include -#include - -int putchar(int c) +int __putchar(int c) { - int res; - if (console_putc((unsigned char)c) >= 0) - res = c; - else - res = EOF; - - return res; + return c; } + +int putchar(int c) __attribute__((weak,alias("__putchar")));