Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site masscomp.UUCP
Path: utzoo!watmath!clyde!bonnie!masscomp!z
From: z@masscomp.UUCP (Steve Zimmerman)
Newsgroups: net.emacs
Subject: Re: CCA Emacs: Speedup Kills Apropos
Message-ID: <155@masscomp.UUCP>
Date: Thu, 29-Nov-84 09:10:33 EST
Article-I.D.: masscomp.155
Posted: Thu Nov 29 09:10:33 1984
Date-Received: Fri, 30-Nov-84 07:21:19 EST
References: <53@mit-athena.ARPA>
Organization: Masscomp - Westford, MA
Lines: 34

> A while ago we received some changes to speed up emacs and then some
> changes to take care of problems .cshrc produced output.
> 
> Once these changes are incorporated ? does not print the full help
> message until after ?I has been typed.  Likewise ?A leads to an
> inglorious death for emacs unless ?I is first entered.
> 
> The reason is that the above changes made efgets look for 
> ".cshrc sourced" when a file is being read in.  There is an assumption
> that the file being read has been `globbed' for * or ? or escape
> completion which would have meant sourcing .cshrc.


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