chris@eneevax.UUCP (05/30/84)
I was just poking through the source to /bin/mail (4.1BSD). Lookie here:
if (strncmp(name, "researc", 7)) {
strcpy(rsys, "research");
if (*name != '!')
--name;
goto skip;
}
Now what is *that* doing in there, after all this time?! This is fine
for Bell Labs but gollee gee whiz, at least it ought to be ``#ifdef''ed.
Amazed at what still lurks in the hearts of machines,
--
In-Real-Life: Chris Torek, Univ of MD Comp Sci (301) 454-7690
UUCP: {seismo,allegra,brl-bmd}!umcp-cs!chris
CSNet: chris@umcp-cs ARPA: chris@maryland
mp@whuxle.UUCP (Mark Plotnick) (05/30/84)
Then there's always the expression 'value("henry")' in ucbmail/collect.c. At one point a certain emacs that controlled subprocesses via pipes would actually set up your subshell with "henry" in the environment, so that Mail would work right!
avak@inmet.UUCP (06/05/84)
#R:whuxle:-41400:inmet:10300020:000:981 inmet!avak Jun 4 11:20:00 1984 If I recall correctly, "henry" is an undocumented mail variable, which if set will cause mail to treat redirected standard input the same as when standard input is the terminal. Specifically, "henry" will cause the "~" escapes to work when they appear in a file. My guess is that someone named Henry wanted this feature, and so the author put it in as a favor, but didn't really believe in it. I found the "feature" useful in a case where a script is sending mail, but where I don't want the "set record" in my .mailrc to give me copies. The "set henry" allows an "~:unset record" to do the job. I say "feature" because I would have prefered mail to not even notice that standard input was a file. (The "ls" command also behaves differently when its standard output is not the terminal.) Such cleverness detracts from the otherwise brilliant concept of standard input/output and redirection. (I lived for years with IBM's TSO. Nuff said??) Arra Avakian Intermetrics, Inc.