simon-git: putty (main): Simon Tatham
Commits to Tartarus hosted VCS
tartarus-commits at lists.tartarus.org
Mon Sep 25 21:02:39 BST 2023
TL;DR:
6a6efd36 Further reorganisations of seen_disp_event().
Repository: https://git.tartarus.org/simon/putty.git
On the web: https://git.tartarus.org/?p=simon/putty.git
Branch updated: main
Committer: Simon Tatham <anakin at pobox.com>
Date: 2023-09-25 21:02:39
commit 6a6efd36aa846c581446afab8c48210cfa4300db
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=6a6efd36aa846c581446afab8c48210cfa4300db;hp=aa1552bc8227f70674ccf20838b141abfd170434
Author: Simon Tatham <anakin at pobox.com>
Date: Mon Sep 25 20:43:55 2023 +0100
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.
terminal/terminal.c | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
More information about the tartarus-commits
mailing list