roy@phri.UUCP (Roy Smith) (06/22/87)
I just noticed an interesting bogosity with CCA emacs (version 162.43z). For some reason that I cannot fathom, the authors decided to invent an environment variable called "henry" and set it equal to "1". I don't think I would be in serious violation of my non-disclosure agreement if I revealed that the following source line exists, in e_init.c: ppc[i++] = "henry=1"; /* Thank you, Robert Henry */ OK, it's not a big deal, but it certainly seems to violate the rule of least astonishment. As long as you're just editing files, you won't notice anything, but I was trying to debug some sendmail problems, using Stephen Schaefer's "see" program (which prints out its argv, environment, and stdin). I was doing this inside an emacs shell window and was quite surprised to discover "henry=1" in the environment printout. I don't know who Robert Henry is, but obviously he's somebody the author wanted to thank. Couldn't he have thought of a way to express his appreciation without having mucked up my environment? If you can't resist this cuteness, at least document it and make it a feature! -- Roy Smith, {allegra,cmcl2,philabs}!phri!roy System Administrator, Public Health Research Institute 455 First Avenue, New York, NY 10016
joe@haddock.UUCP (Joe Chapman) (06/22/87)
You seem to have found a tiny bit of historical cruft: in some old versions of the ucb Mail program there was a hack, due to Mr Henry, which told Mail to run as if at a terminal even if isatty(0) was false. This was done by setting the environment variable "henry" to 1. You want to do this if, e.g., you're talking to Mail via a pipe and you want to have tilde escapes interpreted. I don't think that henry=1 has any effect anymore---at least it doesn't under 4.3 Mail or SV mailx. -- Joe Chapman harvard!ima!joe
sch@sequent.UUCP (Steve Hemminger) (06/22/87)
Unix Trivia Time: "Who is henry, and why is he important?" In 4.1 BSD mail, the ~ commands only work on stdin if it is a tty (unless henry is set).
chris@mimsy.UUCP (Chris Torek) (06/24/87)
In article <2750@phri.UUCP> roy@phri.UUCP (Roy Smith) writes: >... For some reason that I cannot fathom, the authors decided to >invent an environment variable called "henry" and set it equal to "1". > ppc[i++] = "henry=1"; /* Thank you, Robert Henry */ >... I don't know who Robert Henry is, but obviously he's somebody the >author wanted to thank. Couldn't he have thought of a way to express his >appreciation without having mucked up my environment? Well, yes. Henry's thanks must be put in one of two places. The environment is one. To tell you the other would give it away. >If you can't resist this cuteness, at least document it and make it a >feature! /* you are not supposed to understand this */ Oh, all right. Another Unix joke out of the closet.... It seems that, back in the days of 4.1BSD or earlier, and quite possibly in 4.2BSD as well, though it is gone in 4.3BSD, /usr/ucb/Mail would not accept tilde escapes if its input were not from a terminal. When using a pipe to /usr/ucb/Mail there was no way to set, e.g., the `Cc' header line. Robert Henry objected to this behaviour. Someone, probably Kurt Shoens, `fixed' this by allowing tilde escapes in piped input as well as that from a terminal, but only if the `henry' option were set. Hence, the other place for Henry's thanks is in your own .mailrc. 4.3BSD Mail always acts as though the henry flag were set. Sigh. Next thing you know someone will change the name of the `BUGS' manual section to `RESTRICTIONS'. . . . :-) -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690) Domain: chris@mimsy.umd.edu Path: seismo!mimsy!chris