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.