Hello. I emailed Jason Ish about this bug, however he says that
he does not have time to work on this port.

Thanks,
-Nate

----- Forwarded message from Nathan Houghton <[email protected]> -----

Date: Sat, 21 Aug 2010 15:27:42 -0400
From: Nathan Houghton <[email protected]>
To: Jason Ish <[email protected]>
Subject: OpenBSD Port: rxvt race causes winsize of terminal to be incorrect

Hi Jason,

Here is a bug report for the openbsd rxvt port.. I initially
submitted it using sendbug, but was instructed to send it on to
you.

>Number:         6450
>Category:       ports
>Synopsis:       rxvt race causes winsize of terminal to be
incorrect
>Confidential:   yes
>Severity:       serious
>Priority:       medium
>Responsible:    bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   unknown
>Arrival-Date:   Sat Aug 21 17:20:01 GMT 2010
>Closed-Date:    Sat Aug 21 11:42:46 MDT 2010
>Last-Modified:  Sat Aug 21 11:42:46 MDT 2010
>Originator:     
>Release:        
>Organization:
>Environment:
        System      : OpenBSD 4.5
        Details     : OpenBSD 4.5-stable (GENERIC) #2: Tue Aug 17
23:04:08 EDT 2010

[email protected]:/usr/src/sys/arch/i386/compile/GENERIC

        Architecture: OpenBSD.i386
        Machine     : i386
>Description:
        A race condition exists in rxvt during startup that can
        cause the terminal size to be set (with ioctl TIOCSWINSZ)
        to the size determined by the rxvt window size, followed
        by setting the terminal size to 80x24, resulting in a
large
        rxvt window that has only an 80x24 size terminal usable
        inside.
>How-To-Repeat:
        Use a window manager such as scrotwm that will
immediately
        resize the terminal window when it is launched. Simply
        launch rxvt. Inside rxvt run something like vi, or use
        TIOCGWINSZ to get the terminal size. It will be set to
        80x24. After a window resize the terminal size will be
        corrected.
>Fix:

Don't call rxvt_tt_winsize in both processes during
initialization.
        
--- src/init.c.orig     Sat Aug 21 00:30:38 2010
+++ src/init.c  Sat Aug 21 00:30:56 2010
@@ -1316,6 +1316,9 @@
 /* need to trap SIGURG for SVR4 (Unixware) rlogin */
 /* signal (SIGURG, SIG_DFL); */
 
+/* set window size */
+    rxvt_tt_winsize(STDIN_FILENO, r->TermWin.ncol,
r->TermWin.nrow);
+
 #ifndef __QNX__
 /* spin off the command interpreter */
     switch (r->h->cmd_pid = fork()) {
@@ -1398,9 +1401,6 @@
        }
 #endif                         /* SRIOCSREDIR */
     }
-
-    /* set window size */
-    rxvt_tt_winsize(STDIN_FILENO, r->TermWin.ncol,
r->TermWin.nrow);
 
 /* reset signals and spin off the command interpreter */
     signal(SIGINT, SIG_DFL);


-Nate

----- End forwarded message -----

Reply via email to