forsyth20121205-174063a80cc13 years agoHistory
37 lines · 666 B · C
RawDownload
#include "lib9.h"#include "draw.h" /* * compressed data are sequences of byte codes.   * if the first byte b has the 0x80 bit set, the next (b^0x80)+1 bytes * are data.  otherwise, it's two bytes specifying a previous string to repeat. */void_twiddlecompressed(uchar *buf, int n){	uchar *ebuf;	int j, k, c; 	ebuf = buf+n;	while(buf < ebuf){		c = *buf++;		if(c >= 128){			k = c-128+1;			for(j=0; j<k; j++, buf++)				*buf ^= 0xFF;		}else			buf++;	}} int_compblocksize(Rectangle r, int depth){	int bpl; 	bpl = bytesperline(r, depth);	bpl = 2*bpl;	/* add plenty extra for blocking, etc. */	if(bpl < NCBLOCK)		return NCBLOCK;	return bpl;}