Skip to content

Fix and refactor command input, parsing, buffering and execution

bones_was_here requested to merge bones_was_here/cbuf_fixes into master

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.

cmd: inline Arg helper funcs

Merge request reports