Porting the 4.3BSD-Tahoe `window' to a Sun
Greg Earle
earle at mahendo.Jpl.Nasa.Gov
Sat Jan 21 18:21:06 AEST 1989
Recently I decided to try my hand at porting the 4.3BSD-Tahoe version of
`window' to a Sun-3, running SunOS 4.0.1+. After a wee bit of hacking,
and the not-inconsiderable help of Guy Harris, I had a version that would
work fine, when using pty's for the screen windows. However, when I
attempt to have it use UNIX domain socketpairs for the windows (i.e.,
specify `pty = no' in ~/.windowrc), I get very strange behavior:
The window is allocated properly, and a shell is spawned for it. Yet,
no shell prompt shows up in the window, and keyboard input (when that window is
selected) doesn't seem to go anywhere. Yet if I kill the spawned csh
from another place, `window' knows that the child has been killed, and I
get the expected `Process died. Command?' prompt in the command window.
It's as if the spawned csh is orphaned out in the Twilight Zone, with its
stdin and stdout disconnected from everything.
An `sps -avl' immediately after an initial creation of a socketpair() based
window, and a pty-based window, shows:
Ty User Status Fl Nice Virt Res %M Time Child %C Proc# Command
p0. * SELECT 152 400 6 0.8 2 1770 window
* RSOCKT 64 344 5 1.2 5 1771 csh
p4. * RTTYP4 64 352 5 1.2 5 1773 -sh
Other than the `csh' instead of `-sh' (??), this looks pretty reasonable
to me.
[I'd show an `sps -avle' to see the environments of each are any different,]
[but sps' -e option has a bug that causes a Bus Error, at least on the Sun.]
[On a somewhat related note, compiling `window' with gcc causes it to botch]
[the termcap string for inverse video, at least inside the xterm I was ]
[testing it in. ]
Any ideas?
--
Greg Earle earle at Sun.COM
Sun Microsystems poseur!earle at mahendo.JPL.NASA.GOV
Los Angeles Consulting earle%mahendo at elroy.JPL.NASA.GOV
...!{cit-vax,ames}!elroy!poseur!earle ...!sun!tsunami!valley!poseur!earle
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list