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