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 -----
