ben@catnip.UUCP (12/25/86)
There is a bug in the recently distributed Unix ARC that will cause it to fail when extracting long files, in partcular, files whose size cannot be expressed as a 16 bit quantity. The problem is in the dos2long conversion in arcunix.c. The offending code as it originally appears #define dos2long(x) ((unsigned char)(x)[0] + ((unsigned char)(x)[1]<<8) + \ ((unsigned char)(x)[2]<<16) + \ ((unsigned char)(x)[3]<<24)) will shift (x)[2] and (x)[3] straight into the bit bucket. I just casted them to long to rectify the problem. #define dos2long(x) ((unsigned char)(x)[0] + ((unsigned char)(x)[1]<<8) + \ ((long)(unsigned char)(x)[2]<<16) + \ ((long)(unsigned char)(x)[3]<<24)) ---- arc now appears to run fine under SCO Xenix. -- Ben Broder {ihnp4,decvax} !hjuxa!catnip!ben {houxm,clyde}/