[comp.emacs] The three major MicroEMACS 3.10 bugs I've found

keith@sdscal.UUCP (Keith Jones) (01/12/90)

Yo people.  I posted to the net about a week ago concerning a bug in
MicroEMACS 3.10.  Well folks, I tracked it down two or three days after. 
So, to make up for wasting bandwidth, I'll tell you all about the bugs I've
found so you don't have to look for them yourselves.

1) display.c:vteeol().  The original code did 'while (vtcol < term.t_ncol)'
   which dumps a core when vtcol is less than zero (this is the bug I posted
   about).  The fix is simple.  Inside the while loop, before doing
   vp->v_text[vtcol] = ' ', just make sure that vtcol >= 0.

2) eval.c:desvars().  The outseq string is too small to accomodate the
   contents of the $kill variable.  Fixed by increasing it's size to 256
   from 80 (actually, the string need only be 142 chars long or so but 256
   seems like such a nice round number).  This led to a fix in
   eval.c:getkill() that terminates the string getkill() returns with a null
   byte (the string should also be declared static but I've had no problems
   with it as it was originally so I didn't change it).

3) While in the message line entering a search string or something, you can
   press ^U to erase the string and start over.  A bug in display.c:mlout()
   causes core dumps here where the code says "*lastptr++ = c".  The fix
   involves checking the contents of c for a '\b' character.  If it is, then
   decrement lastptr if it is > &lastmesg[0].  Otherwise, do *lastptr++ = c.

Those are all the major bugs I've found.  The major inconveniences I've
found are another (much longer) story.

Keith.

-- 
Keith Jones			...!calgary!spycal!sdscal!keith
Stream Data Systems		I don't have a signature because my pen
Calgary, Alberta, Canada	keeps scratching up my monitor.