simon-git: putty (master): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Wed Jun 19 07:04:09 BST 2019


TL;DR:
  71e42b04 Refactor terminal input to remove ldiscucs.c.
  9fccb065 Rework handling of the SRM escape sequence.
  e3a14e1a Withdraw support for the DECEDM escape sequence.
  9dcf781d Make the w32old build warning-clean.

Repository:     https://git.tartarus.org/simon/putty.git
On the web:     https://git.tartarus.org/?p=simon/putty.git
Branch updated: master
Committer:      Simon Tatham <anakin at pobox.com>
Date:           2019-06-19 07:04:09

commit 71e42b04a57479f9966208134703b95fc0bc3573
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=71e42b04a57479f9966208134703b95fc0bc3573;hp=c800834d639840ed9f1fb94fdf2b44fe820c0b80
Author: Simon Tatham <anakin at pobox.com>
Date:   Mon Jun 17 20:13:55 2019 +0100

    Refactor terminal input to remove ldiscucs.c.
    
    The functions that previously lived in it now live in terminal.c
    itself; they've been renamed term_keyinput and term_keyinputw, and
    their function is to add data to the terminal's user input buffer from
    a char or wchar_t string respectively.
    
    They sit more comfortably in terminal.c anyway, because their whole
    point is to translate into the character encoding that the terminal is
    currently configured to use. Also, making them part of the terminal
    code means they can also take care of calling term_seen_key_event(),
    which simplifies most of the call sites in the GTK and Windows front
    ends.
    
    Generation of text _inside_ terminal.c, from responses to query escape
    sequences, is therefore not done by calling those external entry
    points: we send those responses directly to the ldisc, so that they
    don't count as keypresses for all the user-facing purposes like bell
    overload handling and scrollback reset. To make _that_ convenient,
    I've arranged that most of the code that previously lived in
    lpage_send and luni_send is now in separate translation functions, so
    those can still be called from situations where you're not going to do
    the default thing with the translated data.
    
    (However, pasted data _does_ still count as close enough to a keypress
    to call term_seen_key_event - but it clears the 'interactive' flag
    when the data is passed on to the line discipline, which tweaks a
    minor detail of control-char handling in line ending mode but mostly
    just means pastes aren't interrupted.)

 Recipe           |   2 +-
 ldiscucs.c       |  83 -----------------------------------
 putty.h          |   9 +---
 terminal.c       | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 unix/gtkwin.c    |  19 +++-----
 windows/window.c |  55 ++++++++---------------
 6 files changed, 149 insertions(+), 149 deletions(-)

commit 9fccb065a67c283d978b2e3394d6fff69b4f4f30
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=9fccb065a67c283d978b2e3394d6fff69b4f4f30;hp=71e42b04a57479f9966208134703b95fc0bc3573
Author: Simon Tatham <anakin at pobox.com>
Date:   Mon Jun 17 20:21:06 2019 +0100

    Rework handling of the SRM escape sequence.
    
    This sequence (ESC[12l, ESC[12h) enables and disables local echo in
    the terminal. We were previously implementing it by gatewaying it
    directly through to the local echo facility in the line discipline,
    which in turn would pass it on to the terminal it was running in (if
    it was Plink).
    
    This seems to be at odds with how other terminals do it: they treat
    SRM as its own entirely separate thing, in which the terminal
    _emulator_ performs its own echoing of input keypress data,
    independently of whether the Unix terminal device (or closest
    equivalent) is doing the same thing or not.
    
    Now we're doing it the same way as everyone else (or at least I think
    so): the new internal terminal function that the term_keyinput pair
    feed to is also implementing SRM-driven local echo as another of its
    side effects. One observable effect is that SRM now doesn't interfere
    with the termios settings of the terminal it's running in; another is
    that the echo now only applies to real keypress data, and not
    sequences auto-generated by the terminal.

 terminal.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++---------------
 terminal.h |  5 ++---
 2 files changed, 54 insertions(+), 19 deletions(-)

commit e3a14e1ad6844b8dd4d4e9bb179080d10d00e451
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=e3a14e1ad6844b8dd4d4e9bb179080d10d00e451;hp=9fccb065a67c283d978b2e3394d6fff69b4f4f30
Author: Simon Tatham <anakin at pobox.com>
Date:   Mon Jun 17 20:49:46 2019 +0100

    Withdraw support for the DECEDM escape sequence.
    
    Having decided that the terminal's local echo setting shouldn't be
    allowed to propagate through to termios, I think the local edit
    setting shouldn't either. Also, no other terminal emulator I know
    seems to implement this sequence, and if you enable it, things get
    very confused in general. I think it's generally better off absent; if
    somebody turns out to have been using it, then we'll at least be able
    to find out what it's good for.

 ldisc.c            |  6 ++----
 putty.h            |  1 -
 terminal.c         | 15 ---------------
 terminal.h         |  1 -
 unix/uxplink.c     |  4 ----
 windows/winplink.c |  4 ----
 6 files changed, 2 insertions(+), 29 deletions(-)

commit 9dcf781d01fd4f8551c926911d6c130e3f6e2f42
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=9dcf781d01fd4f8551c926911d6c130e3f6e2f42;hp=e3a14e1ad6844b8dd4d4e9bb179080d10d00e451
Author: Simon Tatham <anakin at pobox.com>
Date:   Wed Jun 19 06:49:24 2019 +0100

    Make the w32old build warning-clean.
    
    Normally I never notice warnings in this build, because it runs inside
    bob and dumps all the warnings in a part of the build log I never look
    at. But I've had these fixes lying around for a while and should
    commit them.
    
    They're benign: all we need is an explicit declaration of strtoumax to
    replace the one that stdlib.h doesn't provide, and a couple more of
    those annoying NO_TYPECHECK modifiers on GET_WINDOWS_FUNCTION calls.

 defs.h           | 3 ++-
 windows/winnet.c | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)



More information about the tartarus-commits mailing list