On Fri, Mar 10, 2017 at 05:52:02PM -0600, Rob King wrote:
Hello,
The class "vt100|vt100-am" terminfo entry has as its rs2
sequence "rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h". This resets all of
the various DEC private modes to their default values. This is the
only reset string currently defined for the VT100.
This sequence does not appear to reset scrolling margins. As the
top and bottom margins are settable via escape sequences, it is
possible to get the terminal in a state where scrolling is invalid
and not fixable via the reset utility.
scrolling margins - ok: csr is in the terminal description, and
there's no existing terminal emulator lacking the feature.
The reset string likewise does not exit out of VT52 emulation
mode, which is also something that is settable via software and
therefore a place where a user could get "stuck" and beyond the
reach of "reset".
This is more of a problem, since several terminal descriptions
inherit from vt100 (and like some programs that I don't have
to mention), most of those didn't bother to implement a workable
vt52 emulation. So... resetting vt52 back to vt100 would introduce
a change that can't be tested.
I would recommend, if possible, updating the reset string to
something like "\E<\Ec", which would exit VT52 emulation mode (if
the terminal is in such a state) and then use the RIS (Reset to
Initial State) sequence to completely reset the terminal state.
that's harder (no pun intended). For a real vt100, that would act
as if you power-cycled the terminal, interrupting the connection.
I keep this in mind:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=60377
though the particular "rs2" string we're discussing predates ncurses,
first seen in 4.0BSD, around 1980.
If this is not desirable due to the side-effects of the RIS
sequence (which causes the POST to execute), perhaps the existing
reset string could be modified to include "\E<\E[r", to get the
terminal in ANSI mode and reset its scrolling margins. The "\E<"
would need to be the first component of the reset string, since the
following components would not be recognized in VT52 mode.
I'm inclined to incorporate it, but changing the use's for the existing
stuff to avoid changing old entries.