185 |
|
int i, j; |
186 |
|
int code, val; |
187 |
|
/* determine scanline type */ |
188 |
< |
if ((len < MINELEN) | (len > MAXELEN)) |
189 |
< |
return(oldreadcolrs(scanline, len, fp)); |
188 |
> |
if (len <= 0) |
189 |
> |
return(0); |
190 |
|
if ((i = getc(fp)) == EOF) |
191 |
|
return(-1); |
192 |
< |
if (i != 2) { |
193 |
< |
ungetc(i, fp); |
194 |
< |
return(oldreadcolrs(scanline, len, fp)); |
195 |
< |
} |
192 |
> |
scanline[0][RED] = i; |
193 |
|
scanline[0][GRN] = getc(fp); |
194 |
|
scanline[0][BLU] = getc(fp); |
195 |
|
if ((i = getc(fp)) == EOF) |
196 |
|
return(-1); |
197 |
< |
if ((scanline[0][GRN] != 2) | ((scanline[0][BLU] & 0x80) != 0)) { |
198 |
< |
scanline[0][RED] = 2; |
197 |
> |
if ((scanline[0][RED] != 2) | (scanline[0][GRN] != 2) | |
198 |
> |
(scanline[0][BLU] & 0x80)) { |
199 |
|
scanline[0][EXP] = i; |
200 |
|
return(oldreadcolrs(scanline+1, len-1, fp)); |
201 |
|
} |