The Magic of Curses 119 bleep Unix decides the size of my terminal and what should I do about it, and used Zmacs, like I should have done in the first place. The wizard answered my mail with a marginally cryptic “Unix defaults, probably. Did you check the stty rows & columns settings?” I should have known better, but I never do, so I went to ask him what that really meant. We logged into the offending Sun, and sure enough, typing “stty all” revealed that Unix thought the terminal was 10 lines high. So I say, “Why is it not sufficient to set my env vars?” “Because the information’s stored in different places. You have to run tset.” “But I do, in my login file.” “Hmmm, so you do. tset with no args. I wonder what that does?” “Beats me, I just copied this file from other old Unices that I had accounts on. Perhaps if I feel ambitious I should look up the docu- mentation on tset? Or would that confuse me further?” “No, don't do that, it’s useless.” “Well, what should I do here? What do you do in your init file?” He prints out his init file. “Oh, I just have this magic set of cryptic shell code here. I don't know how it works, I’ve just been carrying it around for years…” Grrr. At this point I decided it was futile to try to understand any of this (if even the local wizard doesn't understand it, mere mortals should probably not even try) and went back to my office to fix my init file to brute-force the settings I wanted. I log in, and say “stty all,” and lo! It now thinks my terminal is 48 lines high! But wait a second, that’s the value we typed in just a few minutes ago. Smelling something rotten in the state of the software, I tried a few experiments. Turns out a bunch of your terminal settings get set in some low-level terminal-port object or someplace, and nobody bothers to initialize them when you log in. You can easily get somebody else’s leftover stuff from their last session. And, since information about terminal characteristics is strewn all over the place, rather than being kept in some central place, there are all kinds
120 Terminal Insanity of ad hoc things to bash one piece of database into conformance with others. Bleah. I dunno, maybe this is old news to some of you, but I find it pretty appalling. Makes me almost wish for my VMS machine back.