--- rxvt-unicode/src/main.C 2006/01/17 10:14:26 1.182 +++ rxvt-unicode/src/main.C 2006/01/17 15:17:39 1.185 @@ -215,7 +215,7 @@ privileged_utmp (RESTORE); #endif - pty.put (); + delete pty; pty = 0; } rxvt_term::~rxvt_term () @@ -511,6 +511,8 @@ } #endif + pty = rxvt_new_ptytty (); + create_windows (argc, argv); dDisp; @@ -545,8 +547,8 @@ free (cmd_argv); - if (pty.pty >= 0) - pty_ev.start (pty.pty, EVENT_READ); + if (pty->pty >= 0) + pty_ev.start (pty->pty, EVENT_READ); check_ev.start (); @@ -715,25 +717,6 @@ #endif } -#ifdef UTMP_SUPPORT -void -rxvt_term::privileged_utmp (rxvt_privaction action) -{ - if (OPTION (Opt_utmpInhibit) - || !pty.name || !*pty.name) - return; - - rxvt_privileges (RESTORE); - - if (action == SAVE) - pty.login (cmd_pid, OPTION (Opt_loginShell), rs[Rs_display_name]); - else - pty.logout (); - - rxvt_privileges (IGNORE); -} -#endif - /*----------------------------------------------------------------------*/ /* * window size/position calculcations for XSizeHint and other storage. @@ -876,7 +859,7 @@ void rxvt_term::tt_winch () { - if (pty.pty < 0) + if (pty->pty < 0) return; struct winsize ws; @@ -885,7 +868,7 @@ ws.ws_row = nrow; ws.ws_xpixel = width; ws.ws_ypixel = height; - (void)ioctl (pty.pty, TIOCSWINSZ, &ws); + (void)ioctl (pty->pty, TIOCSWINSZ, &ws); #if 0 // TIOCSWINSZ⎈ is supposed to do this automatically and correctly