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

Bug#347308: possible cause of xterm's problems with early resize



Package: xterm
Version: 225-1

I'm seeing this problem with etch and 225-1 taken from unstable.
As I was finaly able to reproduce it relatively often using
/proc/sys/vm/drop_caches (with that it happens around every forth or
fith time I try directly after droping caches, otherwise is exactly
has the problem when I'm doing something else, so quite a Heisenbug).

I think the cause for this is that after the fork the child does many
things and then sets the terminal size to the value before the fork,
while the parent might already process X events in between and change
the terminal to the final value.

The following patch makes the problem go away for me. (Though it might
have other side-effects, that code with all it #if's and if's is quite
hard to read, but using pts it works like a charm for me).

diff -r -u o/xterm-225/main.c xterm-225/main.c
--- o/xterm-225/main.c	2007-03-24 16:26:47.000000000 +0100
+++ xterm-225/main.c	2007-04-24 12:37:42.000000000 +0200
@@ -4282,10 +4282,6 @@
 #if OPT_PTY_HANDSHAKE
 	    if (resource.ptyHandshake) {
 #ifdef TTYSIZE_STRUCT
-		i = SET_TTYSIZE(0, ts);
-		TRACE(("spawn SET_TTYSIZE %dx%d return %d\n",
-		       TTYSIZE_ROWS(ts),
-		       TTYSIZE_COLS(ts), i));
 #endif /* TTYSIZE_STRUCT */
 	    }
 #endif /* OPT_PTY_HANDSHAKE */


Hochachtungsvoll,
	Bernhard R. Link



Reply to: