Force all input through buffer unless flushing buffer. #2754
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #2753 (I hope - I can't test it because I couldn't cause the bug in the first place - I need @JonnyOThan to test it for me.)
Now the only input that is allowed to immediately get
sent to the interpreter is that which came FROM the
buffer flusher routine ProcessUnconsmedInput(). It
uses flags that allow its input to come through
directly, but everything else that types input is
now required to queue it (so it will pass through
ProcessUnconsumedInput() a moment later). Hypothetically
this should fix the ability for input to skip the buffer
and jump in line.
The one exception is the immediate characters related
to terminal closing or program interruption like CTRL-C.
They are allowed to jump in out of order and happen immediately.
And in the case of CTRL-C, it also flushes whatever was in the
buffer so if you typed anything ahead it will no longer
get executed after a CTRL-C like it used to.