in the tga code which shows on big endian machines.
{
0, /* channels set */
0, 0, 0, /* xsize, ysize, bytes */
- ~0, /* ch_mask */
+ ~0U, /* ch_mask */
i_8_bits, /* bits */
i_direct_type, /* type */
0, /* virtual */
{
0, /* channels set */
0, 0, 0, /* xsize, ysize, bytes */
- ~0, /* ch_mask */
+ ~0U, /* ch_mask */
i_16_bits, /* bits */
i_direct_type, /* type */
0, /* virtual */
{
0, /* channels set */
0, 0, 0, /* xsize, ysize, bytes */
- ~0, /* ch_mask */
+ ~0U, /* ch_mask */
i_double_bits, /* bits */
i_direct_type, /* type */
0, /* virtual */
{
0, /* channels set */
0, 0, 0, /* xsize, ysize, bytes */
- ~0, /* ch_mask */
+ ~0U, /* ch_mask */
i_8_bits, /* bits */
i_palette_type, /* type */
1, /* virtual */
{
0, /* channels set */
0, 0, 0, /* xsize, ysize, bytes */
- ~0, /* ch_mask */
+ ~0U, /* ch_mask */
i_8_bits, /* bits */
i_palette_type, /* type */
0, /* virtual */
s->len = (s->hdr &~(1<<7))+1;
s->state = (s->hdr & (1<<7)) ? Rle : Raw;
+ {
+ static cnt = 0;
+ printf("%04d %s: %d\n", cnt++, s->state==Rle?"RLE":"RAW", s->len);
+ }
if (s->state == Rle && s->ig->readcb(s->ig, s->cval, s->bytepp) != s->bytepp) return 0;
break;
int nxtrip = find_repeat(buf+cp*s->bytepp, pixels-cp, s->bytepp);
tlen = (nxtrip == -1) ? pixels-cp : nxtrip;
while(tlen) {
- int clen = (tlen>128) ? 128 : tlen;
+ unsigned char clen = (tlen>128) ? 128 : tlen;
clen--;
if (s->ig->writecb(s->ig, &clen, 1) != 1) return 0;
clen++;
tlen = find_span(buf+cp*s->bytepp, pixels-cp, s->bytepp);
if (tlen <3) continue;
while (tlen) {
- int clen = (tlen>128) ? 128 : tlen;
+ unsigned char clen = (tlen>128) ? 128 : tlen;
clen = (clen - 1) | 0x80;
if (s->ig->writecb(s->ig, &clen, 1) != 1) return 0;
clen = (clen & ~0x80) + 1;