X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fao_stdio.c;h=045dff09f340e92b7b32b62ba2ceb914cfc2724f;hp=7bc416e1cf2a35ccce874033f61bf583e2f93830;hb=f7ff3278bb670df59d7425a014cfe8e3718fea3f;hpb=ca5d323a3d206050d95f52a61e92c69e1f54e7b5 diff --git a/src/ao_stdio.c b/src/ao_stdio.c index 7bc416e1..045dff09 100644 --- a/src/ao_stdio.c +++ b/src/ao_stdio.c @@ -38,7 +38,8 @@ putchar(char c) void flush(void) { - stdios[ao_cur_stdio].flush(); + if (stdios[ao_cur_stdio].flush) + stdios[ao_cur_stdio].flush(); } __xdata uint8_t ao_stdin_ready; @@ -49,6 +50,7 @@ getchar(void) __reentrant char c; int8_t stdio = ao_cur_stdio; + EA = 0; for (;;) { c = stdios[stdio].pollchar(); if (c != AO_READ_AGAIN) @@ -58,6 +60,7 @@ getchar(void) __reentrant if (stdio == ao_cur_stdio) ao_sleep(&ao_stdin_ready); } + EA = 1; ao_cur_stdio = stdio; return c; }