Source: putty
Version: 0.62-9
Severity: normal

Dear Maintainer,

I sent this to upstream a while ago but got no response.  I'm reporting
it here mostly so I can point at it from other bug resports.

Note that the test sequence I gave seems to work intermittently when I
try it under pterm: some of the time I get an 80-column window and some
of the time a 90-column one.

---------- Forwarded message ----------
From: Samuel Bronson <naes...@gmail.com>
Date: Sun, Jan 1, 2012 at 9:52 AM
Subject: annoyance: DECCOLM (80/132 column) switching cannot be disabled 
(whereas it is disabled by default in xterm)
To: pu...@projects.tartarus.org


PuTTY seems a bit over-eager when it comes to DECCOLM (80/132 column)
switching. Compare the results of the following commands under PuTTY
(with remote-resize enabled, obviously) and xterm:

$ echo -ne '\e[?40l' && echo -ne '\e[8;24;90t' && echo -ne '\e[?3l'
$ echo $COLUMNS

(Note: running them separately is important; neither zsh nor bash
updates $COLUMNS in mid-command: you would just see the number of
columns you had started with if you ran them in one go.)

Explanation of escape sequences (based on
http://invisible-island.net/xterm/ctlseqs/ctlseqs.html as always):

 1. (CSI ? 4 0 l) "Disallow 80 → 132 Mode", just in case that somehow
got turned on.

 2. (CSI 8 ; Sm t) resizes the terminal (to 90x24 in this case)

 3. (CSI ? 3 l) rendered by termcmp -i as {DEC-COLM}; listed in
ctlseqs as: "80 Column Mode (DECCOLM)".

In xterm, sequence 3 does nothing, since sequence 1 turned it off:

        case 3:         /* DECCOLM                      */
            if (screen->c132) {
                ClearScreen(xw);
                CursorSet(screen, 0, 0, xw->flags);
                if ((j = IsSM()? 132 : 80) !=
                    ((xw->flags & IN132COLUMNS) ? 132 : 80) ||
                    j != MaxCols(screen))
                    RequestResize(xw, -1, j, True);
                (*func) (&xw->flags, IN132COLUMNS);
            }
            break;

        case 40:                /* 132 column mode              */
            set_bool_mode(screen->c132);
            update_allow132();
            break;

The reason this is annoying is that it causes the "reset" command to
resize the terminal to 80 columns, whether I use TERM=xterm or
TERM=putty (in fact, most entries in the database seem to have
{DEC-COLM} in the reset sequence, in some form or other).

% infocmp -i xterm
is2: {DECSTR}{DEC-COLM;SCLM}{rmir}{DECPNM}
rs1: {RIS}
rs2: {is2}
smcup: {DEC+1049}
rmcup: {DEC-1049}
% infocmp -i putty
is2: {SC}{RSR}{SGR0}{DEC+AWM}{DEC-CKM;SCLM;OM}{rmir}{RC}{DECPNM}\E]R
rs2: {DECANSI}\E["p\E[50;6"p{RIS}{DEC-COLM}\E]R{DEC-1000}
smcup: {DEC+47}
rmcup: {ED2}{DEC-47}

I am actually very happy to have discovered that this is a problem
with putty's implementation of DECCOLM, because now I at least have
some hope of getting {DEC-COLM} removed from the rs2 string; all I ask
of you is that you add it to the wishlist page.


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to