The real problem is that efgets() is looking for ".cshrc sourced" from
all streams, not just the C shell pipe. This problem was noted early on
and a fix was sent out; you apparently didn't get it. The fix is to
replace the "do" loop in efgets() with the following:
do {
if (iop == cshout && sindex(s, ".cshrc sourced"))
srclook = 0;
cs = s;
while (--n>0 && (c = getc(iop))>=0) {
*cs++ = c;
if (c=='\n')
break;
}
if (c<0 && cs==s)
return(NULL);
*cs++ = '\0';
} while (srclook && iop == cshout);
Steve Zimmerman