diff --git a/Shell.c b/Shell.c index 5286bd4..06ebe8e 100644 --- a/Shell.c +++ b/Shell.c @@ -342,6 +342,14 @@ void shell_task() shellbuf[count] = rxchar; shell_putc(rxchar); count++; + + // If we're using buffered output, flush the output buffer so the user gets immediate feedback on their key press + if (obhandle != 0) { + if (obhandle->shell_bwriter != 0) + obhandle->shell_bwriter(obhandle->outbuffer, obhandle->buffercount); + // and clear counter + obhandle->buffercount = 0; + } } } // Check if a full command is available on the buffer to process @@ -509,6 +517,14 @@ static void shell_prompt() #else shell_print((const char *) "device>"); #endif + + // If we're using buffered output, flush the output buffer so the user gets immediate feedback on their key press + if (obhandle != 0) { + if (obhandle->shell_bwriter != 0) + obhandle->shell_bwriter(obhandle->outbuffer, obhandle->buffercount); + // and clear counter + obhandle->buffercount = 0; + } } /*-------------------------------------------------------------*