Fix and refactor command input, parsing, buffering and execution
cbuf: refactor and fix parsing of text blocks into the linked list
Simplifies the parsing to a single loop with less state tracking. Reorganises the code for readability.
Fixes #378 (closed)
cbuf: use standard parsing and buffering of deferred strings
Fixes #377 (closed)
Matches div0-stable in that the deferred string is not parsed until execution time and is printed verbatim in the pending command list.
Also fixes unsafe linked list removal and removes its workaround.
Slightly improves timing precsion and PRVM_64 / 32 support.
cbuf: fix a 1 frame delay of keybind inputs
This was a regression (from div0-stable) introduced in the refactoring.
cbuf: prepend keybind commands instead of appending to skip waits
This prevents user inputs being delayed by wait
commands that other
sources may have added to the buffer.
cbuf: catch runaway command loops, respects -norunaway cmdline arg
Prevents DP from spinlocking permanently.