ddj@brunix.UUCP (Dave Johnson) (10/01/85)
After an hour or two of bug-chasing, I tracked down the cause of the recently reported checksum errors in "xbin". The problem showed up when there was a run of three or more 0x90 characters. The sequence 0x90NN indicates that the previous character should be repeated NN times, with the exception that 0x9000 specifies a literal 0x90. The bug was when a literal 0x90 was supposed to be repeated, the character before the 0x90 was used instead. So where 2090009003 should have produced a 20 and 3- 90's, it came out 20 90 20 20. Here is the fix to version 2.1, if you can't get 2.3 right away: *** xbin.c Tue Oct 1 01:16:20 1985 --- xbin.c.fixed Tue Oct 1 01:17:21 1985 *************** *** 545,550 if ((rep = getq_raw()) == EOF) return EOF; if (rep == 0) { return RUNCHAR; } else { --- 545,551 ----- if ((rep = getq_raw()) == EOF) return EOF; if (rep == 0) { + lastc = RUNCHAR; return RUNCHAR; } else { Source for version 2.3 (there was no 2.2) is in net.sources.mac and should be archived on [sumex]<info-mac>unix-xbin.shar. In addition to the above-described bug fix, this version includes fixes people have sent me during the last 6 months or so, and the performance improvements done by Dan LaLiberte at UIUC (sorry for the delay...). Dave Johnson Brown University Computer Science ddj%brown@csnet-relay.ARPA {ihnp4,decvax,allegra,ulysses,linus}!brunix!ddj