--- psiconv/trunk/lib/psiconv/parse_image.c 1999/10/11 16:15:14 12 +++ psiconv/trunk/lib/psiconv/parse_image.c 1999/10/11 18:19:09 13 @@ -52,7 +52,7 @@ *length = len; psiconv_progress(lev+1,off+len-1,"End of mbm jumptable section " - "(total length: %08x", len); + "(total length: %08x)", len); return res; } @@ -64,7 +64,7 @@ int res = 0; int len = 0; int read_err = 0; - psiconv_u32 size,offset,picsize,temp,datasize,pixelnr,datanr; + psiconv_u32 size,offset,picsize,temp,datasize,pixelnr,datanr,linelen; psiconv_u8 marker; int i; @@ -78,7 +78,7 @@ psiconv_progress(lev+2,off+len,"Going to read pixel data offset"); offset = psiconv_read_u32(buf,lev+2,off+len); - if (size != 0x28) { + if (offset != 0x28) { psiconv_warn(lev+2,off+len, "Paint data section data offset has unexpected value"); psiconv_debug(lev+2,off+len, @@ -97,7 +97,8 @@ psiconv_debug(lev+2,off+len,"Picture Y size: %08x:",(*result)->ysize); len += 4; - picsize = (*result)->ysize * (*result)->xsize; + picsize = (*result)->ysize * (*result)->xsize * 2; + linelen = (*result)->xsize; psiconv_progress(lev+2,off+len,"Going to read 6 unused longs"); for (i = 0 ; i < 6; i++) { @@ -173,7 +174,7 @@ read_err = 1; } else { temp = psiconv_read_u8(buf,lev+3,off+len+datanr); - for (i = 0; i < marker; i++) { + for (i = 0; i < marker; i++) { (*result)->red[pixelnr + i*4] = (*result)->green[pixelnr + i*4] = (*result)->blue[pixelnr + i*4] = @@ -210,7 +211,7 @@ *length = len; psiconv_progress(lev+1,off+len-1,"End of paint data section " - "(total length: %08x", len); + "(total length: %08x)", len); return res; }