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