[comp.emacs] CCA Emacs bogosity

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