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

Bug#932569: xterm: Returning from Tek mode using escape sequence reports incorrect terminal size



Package: xterm
Version: 344-1
Severity: normal

Dear Maintainer,

Executing the following 4 commands in xterm:

stty -a | grep rows
printf "\033[?38h"
printf "\033\003"
stty -a | grep rows

to get it to switch in and then out of Tek mode using the escape
sequences results in the following pair of stty outputs:

speed 38400 baud; rows 24; columns 80; line = 0;
speed 38400 baud; rows 37; columns 75; line = 0;

where the first is the correct size for the VT window.  In the second
line the size of the Tek window is being reported even though xterm is
in VT mode.

Some perusal of the changes between stretch (where this worked
properly) and buster indicates this may be related to the changes in
the xterm-327y patchset released as part of xterm-328, corresponding
to the following changelog entry:

"improve integration between configure-events and updates for reported
screensize, in particular when switching between vt100 and tek4014
modes."

I was able to apparently fix the problem with the following one-line
change:

diff -ru xterm-344.orig/Tekproc.c xterm-344/Tekproc.c
--- xterm-344.orig/Tekproc.c	2018-06-25 16:14:43.000000000 -0400
+++ xterm-344/Tekproc.c	2019-07-20 12:16:17.775381703 -0400
@@ -1369,6 +1369,7 @@
 	    Ttoggled = True;
 	}
 	TEK4014_ACTIVE(xw) = False;
+	xtermSetWinSize(xw);
     } else {
 	TEK4014_ACTIVE(xw) = False;
 	if (VWindow(TScreenOf(xw)) == 0) {

Given the complexity of the source code I can't guarantee this is the
proper fix, so somebody more familiar with the internals may need to
take a look at it.

Many thanks,

Jonathan Irwin


-- System Information:
Debian Release: 10.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-5-amd64 (SMP w/6 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages xterm depends on:
ii  libc6           2.28-10
ii  libfontconfig1  2.13.1-2
ii  libfreetype6    2.9.1-3
ii  libice6         2:1.0.9-2
ii  libtinfo6       6.1+20181013-2
ii  libutempter0    1.1.6-3
ii  libx11-6        2:1.6.7-1
ii  libxaw7         2:1.0.13-1+b2
ii  libxft2         2.3.2-2
ii  libxinerama1    2:1.1.4-2
ii  libxmu6         2:1.1.2-2+b3
ii  libxpm4         1:3.5.12-1
ii  libxt6          1:1.1.5-1+b3
ii  xbitmaps        1.1.1-2

Versions of packages xterm recommends:
ii  x11-utils  7.7+4

Versions of packages xterm suggests:
pn  xfonts-cyrillic  <none>

-- no debconf information


Reply to: