[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [TERMINFO BUG?] VT100 reset string ignores scrolling margins and VT5
Re: [TERMINFO BUG?] VT100 reset string ignores scrolling margins and VT52 mode
Sat, 11 Mar 2017 17:48:02 -0500
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.
Thomas E. Dickey <address@hidden>
Description: Digital signature