15 |
|
#include "color.h" |
16 |
|
|
17 |
|
#define MINELEN 8 /* minimum scanline length for encoding */ |
18 |
< |
#define MAXELEN 0x7ffe /* maximum scanline length for encoding */ |
18 |
> |
#define MAXELEN 0x7fff /* maximum scanline length for encoding */ |
19 |
|
#define MINRUN 4 /* minimum run length */ |
20 |
|
|
21 |
|
#ifndef frexp |
100 |
|
register FILE *fp; |
101 |
|
{ |
102 |
|
register int i, j; |
103 |
< |
int code; |
103 |
> |
int code, val; |
104 |
|
/* determine scanline type */ |
105 |
|
if (len < MINELEN | len > MAXELEN) |
106 |
|
return(oldreadcolrs(scanline, len, fp)); |
127 |
|
if ((code = getc(fp)) == EOF) |
128 |
|
return(-1); |
129 |
|
if (code > 128) { /* run */ |
130 |
< |
scanline[j++][i] = getc(fp); |
131 |
< |
for (code &= 127; --code; j++) |
132 |
< |
scanline[j][i] = scanline[j-1][i]; |
130 |
> |
code &= 127; |
131 |
> |
val = getc(fp); |
132 |
> |
while (code--) |
133 |
> |
scanline[j++][i] = val; |
134 |
|
} else /* non-run */ |
135 |
|
while (code--) |
136 |
|
scanline[j++][i] = getc(fp); |