[comp.os.minix] Elvis and SIGALRM

cwr@pnet01.cts.com (Will Rose) (01/22/91)

Elvis (and vi) use SIGALRM to cope with the ESC character, which may be
either a mode switch or the start of a terminal escape sequence.  (Since
escape seqences are generated by a single keystroke, they arrive quickly.
If ESC isn't followed by anything for, say, one second then it's assumed
to be a mode switch.)
 
It looks as if Elvis getting an alarm when it's not expected, and is failing
to catch it.  Elvis then dies, and the user is left with a tty in raw mode.
(See Rochkind, Advanced Unix Programming, p. 220 et seq.).
 
Why this should be so isn't clear, except that programs on the borderline
of time and space behave oddly.  Do you have enough main memory for all the
processes running, and does each program have enough stack space?  When
compiling Elvis 1.3 under 1.5.10 I got a binary that almost worked, but
which actually crashed and dumped core when I entered any character.  If
you've rebuilt Elvis, you may be facing a similar weird situation.
 
Good luck - Will
 
-----------------------------------------------------------------------
"You think that your career    | Will Rose
 will suffer if Dr. Kenworthy  |
 learns you have the poisoned  | UUCP:{nosc ucsd hplabs!hp-sdd}!crash!pnet01!c
 corpse of our fiancee in the  | ARPA:crash!pnet01!cwr@nosc.mil
 ice box?"                     | INET:cwr@pnet01.cts.com
 Evelyn Waugh, "The Loved One" |

UUCP: {nosc ucsd hplabs!hp-sdd}!crash!pnet01!cwr
ARPA: crash!pnet01!cwr@nosc.mil
INET: cwr@pnet01.cts.com

wayne@csri.toronto.edu (Wayne Hayes) (01/23/91)

You're using an old version of elvis.  I used to have that problem, but
the one I'm using now (version 1.4) has that bug fixed and has more
features like macros, and you can also use the cursor keys to move
around while in insert mode (ie, you don't have to press ESC any more
to cursor around the file!)  Go get the new  sources from plains.nodak.edu
in the file pub/Minix/all.contrib/elvis-1.4.tar.Z.  If you can't, mail
me and I'll send you the sources.  BTW, I'm running it on Minix-386.
The Makefile.mix sez it should compile under PC Minix with the 64K limit.
(It compiles under Coherent, so it should work on Minix-PC.)

-- 
"Dad, what should I be when I grow up?"
"Honest." -- Robert M. Pirsig, _Zen and the Art of Motorcycle Maintenence_.

Wayne Hayes	INTERNET: wayne@csri.utoronto.ca	CompuServe: 72401,3525