penneyj@servio.UUCP (D. Jason Penney) (11/07/89)
My circumstances are a little complicated, but the problem is simple enough once I've explained it. I have a program driving a pseudo-tty which is running a shell. Within this pseudo-tty, I want all programs (such as vi) to know how many rows and columns they are dealing with. Just to complicate matters, suppose the original "physical" tty is something weird, like a window under sunview. Even worse, the window can be resized. In point of fact, if I "rlogin" to our AIX system using a SunView window, the resulting AIX session gets everything right. I can test it by climbing into vi and either typing away madly in insert mode, or examining the terminal height using ":se window". I can climb out of vi, resize my window (on the Sun, now), climb back into vi and see that AIX has properly registered the new window size. In a BSD system like SunOS, I use the TIOGCWINSZ and TIOCSWINSZ ioctl's to read the window's current size and to propogate it to the pseudo-tty. I even have a SIGWINCH to let me know when to do the ioctl's. I've RTFM'd the AIX Tech Ref until I'm blue in the face, and the solution still escapes me. I find it interesting that the BSD rlogin program is handshaking properly to the AIX rlogind. I would appreciate some one with the appropriate expertise (System V or AIX) or access to the source code to let me know exactly what I should be doing to 1) read my terminal characteristics (rows and columns) and, just as important, 2) propogate them to my pseudo-tty. As a bonus, it would be pleasant to know how to detect when the window size has changed (SIGWINCH). Please e-mail to me at the address below. Thanks in advance. -- D. Jason Penney Ph: (503) 629-8383 Beaverton, OR 97006 uucp: ...uunet!servio!penneyj STANDARD DISCLAIMER: Should I or my opinions be caught or killed, the company will disavow any knowledge of my actions...