~vcs-imports/putty/master

Viewing all changes in revision 6758.

  • Committer: Simon Tatham
  • Date: 2023-09-25 19:43:55 UTC
  • Revision ID: git-v1:6a6efd36aa846c581446afab8c48210cfa4300db
Further reorganisations of seen_disp_event().

Shortly after the previous commit I spotted another definitely missing
display update: if you send the byte 0x7F, aka 'destructive
backspace', then the display didn't update immediately.

That was two in a row, so I did an eyeball review of the whole
terminal state machine to the best of my ability. Found a couple more
borderline ones, but also, found that the entire VT52 sub-state-
machine had a blanket seen_disp_event which really _shouldn't_ have
been there, because half the VT52 sequences aren't actually display-
modifying updates.

To make this _slightly_ less error-prone, I've sunk a number of
seen_disp_update calls into subroutines that aren't the top-level
term_out(). For example, erase_lots(), scroll(), move() and
swap_screen() now all call seen_disp_update within themselves, so
their call sites don't all have to remember to.

There are probably further bugs after this upheaval, but I think it's
moving in generally the right direction.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: