1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /*
- * This file is part of the UCB release of Plan 9. It is subject to the license
- * terms in the LICENSE file found in the top-level directory of this
- * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
- * part of the UCB release of Plan 9, including this file, may be copied,
- * modified, propagated, or distributed except according to the terms contained
- * in the LICENSE file.
- */
- #include <u.h>
- #include <libc.h>
- #include <draw.h>
- /*
- * compressed data are seuences 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(uint8_t *buf, int n)
- {
- uint8_t *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;
- }
|