[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TERMINFO BUG?] VT100 reset string ignores scrolling margins and VT5

From: Rob King
Subject: Re: [TERMINFO BUG?] VT100 reset string ignores scrolling margins and VT52 mode
Date: Sat, 11 Mar 2017 17:46:20 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0


I see your point about the "\E<" and "\Ec" reset sequences. I think it may still be worthwhile to add "\Er" to the rs2 sequence, though, since as you said all of the emulators claiming to be a VT100 at least nominally support it.


On 03/11/2017 04:48 PM, Thomas Dickey wrote:
On Fri, Mar 10, 2017 at 05:52:02PM -0600, Rob King wrote:
     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:


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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]