Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!steinmetz!davidsen
From: davidsen@steinmetz.steinmetz.UUCP (William E. Davidsen Jr)
Newsgroups: comp.emacs
Subject: Re: MicroEMACS works but eats CPU on SysV
Message-ID: <7986@steinmetz.steinmetz.UUCP>
Date: Wed, 25-Nov-87 16:05:48 EST
Article-I.D.: steinmet.7986
Posted: Wed Nov 25 16:05:48 1987
Date-Received: Sun, 29-Nov-87 08:47:51 EST
References: <1107@sugar.UUCP> <422@cimcor.UUCP>
Reply-To: davidsen@kbsvax.steinmetz.UUCP (William E. Davidsen Jr)
Organization: General Electric CRD, Schenectady, NY
Lines: 61
Keywords: MicroEMACS, Microport, USG


  I posted this once before and mailed a copy to the author.  This is
the fix for the polling in SysV as well as some other bugs.  Each fix is
carefully documented describing what it fixes. 

----------------------------------------------------------------
Reason for change:

  Addition of this change allows the emacs.rc file to be in the login
directory rather than the current directory.  Could also be
"sys$login:[bin]" or something like that. 

Changes to epath.h:
70a71
> 	"sys$login:",

Reason for change:

  When the VT100 option is selected there is a missing "{". Rather than
put it in both places, which messes up my formatter, I placed it on a
line by itself.

  Second change allows RETURN to be a quoted character in search or
replace strings without being turned into a newline. This makes adding
or deleting returns from files much easier.

Changes to input.c:
357c357
< 	if (c == metac) {
---
> 	if (c == metac)
358a359
> 	{
413c414
< 		if (c == (CTRL | 0x4d))
---
> 		if (c == (CTRL | 0x4d) && !quotef)

Reason for change:

  When the USG (SysIII/V) option is selected, stdin is placed in polling
mode without setting the flag to indicate that this has been done.  This
causes all input to be done in polling mode, making CPU time = the clock
time.  While this is not obvious on a single user system, on a large
system it is not acceptable.  This change sets the polling flag when
polling mode is used.  There was also some code to loop on input, caused
by the polling flag error.  I removed it. 

Changes to termio.c:
431,432c431
< 		while (read(0, &kbdq, 1) != 1)
< 			;
---
> 		read(0, &kbdq, 1);
489a489
> 		kbdpoll = TRUE;

-- 
	bill davidsen		(wedu@ge-crd.arpa)
  {uunet | philabs | seismo}!steinmetz!crdos1!davidsen
"Stupidity, like virtue, is its own reward" -me